#ifndef ENEMY_WRETCHED_H #define ENEMY_WRETCHED_H #include "wave_survival/enemy_body.h" #include "wave_survival/state.h" class PatrolPath; class NpcUnit; class StateMachine; class EnemyWretched : public EnemyBody { GDCLASS(EnemyWretched, EnemyBody); static void _bind_methods(); void ready(); protected: void _notification(int what); }; /* ============================== STATES ============================== */ class WretchedState : public EnemyState { GDCLASS(WretchedState, State); static void _bind_methods() {} public: EnemyWretched *get_target() const; }; class WretchedPatrolState : public EnemyPatrolState { GDCLASS(WretchedPatrolState, EnemyPatrolState); static void _bind_methods() {} public: String get_next_state() const override; }; class WretchedChaseState : public EnemyChaseState { GDCLASS(WretchedChaseState, EnemyChaseState); static void _bind_methods() {} public: virtual String get_next_state() const override; }; class WretchedAttackState : public WretchedState { GDCLASS(WretchedAttackState, WretchedState); static void _bind_methods() {} public: virtual void enter_state() override; virtual String get_next_state() const override; }; #endif // !ENEMY_WRETCHED_H