#pragma once #include "Item.h" class Mob; class DiggerItem : public Item { private: TileArray *tiles; protected: float speed; private: int attackDamage; protected: const Tier *tier; DiggerItem(int id, int attackDamage, const Tier *tier, TileArray *tiles); public: 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 int getAttackDamage(std::shared_ptr entity); virtual bool isHandEquipped(); virtual int getEnchantmentValue(); const Tier *getTier(); bool isValidRepairItem(std::shared_ptr source, std::shared_ptr repairItem); };