namespace Decimation.Lib.Items { public abstract class DecimationTool : DecimationItem { protected virtual int MeleeDamages { get; } = 0; protected virtual int PickaxePower { get; } = 0; protected virtual int AxePower { get; } = 0; protected virtual int HammerPower { get; } = 0; protected abstract void InitTool(); protected override void Init() { item.autoReuse = true; item.useStyle = 1; item.useTurn = true; item.maxStack = 1; item.melee = true; InitTool(); item.damage = MeleeDamages; item.pick = PickaxePower; item.axe = AxePower / 5; // Axe power is multiplied by 5 for some reason item.hammer = HammerPower; if (MeleeDamages > 0) item.noMelee = false; } } }