#pragma once #include "Monster.h" class Silverfish : public Monster { public: eINSTANCEOF GetType() { return eTYPE_SILVERFISH; } static Entity *create(Level *level) { return new Silverfish(level); } private: int lookForFriends; public: Silverfish(Level *level); virtual int getMaxHealth(); protected: virtual bool makeStepSound(); virtual shared_ptr findAttackTarget(); virtual int getAmbientSound(); virtual int getHurtSound(); virtual int getDeathSound(); public: virtual bool hurt(DamageSource *source, int dmg); protected: virtual void checkHurtTarget(shared_ptr target, float d); virtual void playStepSound(int xt, int yt, int zt, int t); virtual int getDeathLoot(); public: virtual void tick(); protected: virtual void serverAiStep(); public: virtual float getWalkTargetValue(int x, int y, int z); protected: virtual bool isDarkEnoughToSpawn(); public: virtual bool canSpawn(); virtual MobType getMobType(); };