diff options
Diffstat (limited to 'Minecraft.World/Witch.h')
| -rw-r--r-- | Minecraft.World/Witch.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Minecraft.World/Witch.h b/Minecraft.World/Witch.h new file mode 100644 index 00000000..256f358f --- /dev/null +++ b/Minecraft.World/Witch.h @@ -0,0 +1,48 @@ +#pragma once + +#include "Monster.h" +#include "RangedAttackMob.h" + +class Witch : public Monster, public RangedAttackMob +{ +public: + eINSTANCEOF GetType() { return eTYPE_WITCH; } + static Entity *create(Level *level) { return new Witch(level); } + +private: + static AttributeModifier *SPEED_MODIFIER_DRINKING; + + static const int DATA_USING_ITEM = 21; + static const int DEATH_LOOT_COUNT = 8; + static const int DEATH_LOOT[DEATH_LOOT_COUNT]; + + int usingTime; + +public: + Witch(Level *level); + +protected: + virtual void defineSynchedData(); + virtual int getAmbientSound(); + virtual int getHurtSound(); + virtual int getDeathSound(); + +public: + virtual void setUsingItem(bool isUsing); + virtual bool isUsingItem(); + +protected: + virtual void registerAttributes(); + +public: + virtual bool useNewAi(); + virtual void aiStep(); + virtual void handleEntityEvent(byte id); + +protected: + virtual float getDamageAfterMagicAbsorb(DamageSource *damageSource, float damage); + virtual void dropDeathLoot(bool wasKilledByPlayer, int playerBonusLevel); + +public: + virtual void performRangedAttack(shared_ptr<LivingEntity> target, float power); +};
\ No newline at end of file |
