54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
#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
|