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