github.com/df-mc/dragonfly@v0.9.13/server/item/enchantment/sharpness.go (about) 1 package enchantment 2 3 import ( 4 "github.com/df-mc/dragonfly/server/item" 5 "github.com/df-mc/dragonfly/server/world" 6 ) 7 8 // Sharpness is an enchantment applied to a sword or axe that increases melee damage. 9 type Sharpness struct{} 10 11 // Name ... 12 func (Sharpness) Name() string { 13 return "Sharpness" 14 } 15 16 // MaxLevel ... 17 func (Sharpness) MaxLevel() int { 18 return 5 19 } 20 21 // Cost ... 22 func (Sharpness) Cost(level int) (int, int) { 23 min := 1 + (level-1)*11 24 return min, min + 20 25 } 26 27 // Rarity ... 28 func (Sharpness) Rarity() item.EnchantmentRarity { 29 return item.EnchantmentRarityCommon 30 } 31 32 // Addend returns the additional damage when attacking with sharpness. 33 func (Sharpness) Addend(level int) float64 { 34 return float64(level) * 1.25 35 } 36 37 // CompatibleWithEnchantment ... 38 func (Sharpness) CompatibleWithEnchantment(item.EnchantmentType) bool { 39 return true 40 } 41 42 // CompatibleWithItem ... 43 func (Sharpness) CompatibleWithItem(i world.Item) bool { 44 t, ok := i.(item.Tool) 45 return ok && (t.ToolType() == item.TypeSword || t.ToolType() == item.TypeAxe) 46 }