#pragma once #include "Item.h" class WeaponItem : public Item { private: float damage; const Tier* tier; public: WeaponItem(int id, const Tier* tier); virtual float getTierDamage(); virtual float getDestroySpeed(std::shared_ptr itemInstance, Tile* tile); virtual bool hurtEnemy(std::shared_ptr itemInstance, std::shared_ptr mob, std::shared_ptr attacker); virtual bool mineBlock(std::shared_ptr itemInstance, Level* level, int tile, int x, int y, int z, std::shared_ptr owner); virtual bool isHandEquipped(); virtual UseAnim getUseAnimation(std::shared_ptr itemInstance); virtual int getUseDuration(std::shared_ptr itemInstance); virtual std::shared_ptr use( std::shared_ptr instance, Level* level, std::shared_ptr player); virtual bool canDestroySpecial(Tile* tile); virtual int getEnchantmentValue(); const Tier* getTier(); bool isValidRepairItem(std::shared_ptr source, std::shared_ptr repairItem); attrAttrModMap* getDefaultAttributeModifiers(); };