feat: started work on enemy rifleman
This commit is contained in:
parent
2f6c7e13e5
commit
c4bd5edb54
26
modules/wave_survival/enemies/enemy_rifleman.cpp
Normal file
26
modules/wave_survival/enemies/enemy_rifleman.cpp
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#include "enemy_rifleman.h"
|
||||
|
||||
void EnemyRifleman::_bind_methods() {
|
||||
}
|
||||
|
||||
void EnemyRifleman::on_child_entered() {
|
||||
}
|
||||
|
||||
void EnemyRifleman::ready() {
|
||||
}
|
||||
|
||||
void EnemyRifleman::_notification(int what) {
|
||||
if (Engine::get_singleton()->is_editor_hint()) {
|
||||
return;
|
||||
}
|
||||
switch (what) {
|
||||
default:
|
||||
return;
|
||||
case NOTIFICATION_ENTER_TREE:
|
||||
enter_tree();
|
||||
return;
|
||||
case NOTIFICATION_READY:
|
||||
ready();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,10 +2,55 @@
|
|||
#define ENEMY_RIFLEMAN_H
|
||||
|
||||
#include "wave_survival/enemy_body.h"
|
||||
#include "wave_survival/state.h"
|
||||
class AnimationPlayer;
|
||||
class NavigationAgent3D;
|
||||
|
||||
class EnemyRifleman : public EnemyBody {
|
||||
GDCLASS(EnemyRifleman, EnemyBody);
|
||||
static void _bind_methods();
|
||||
void on_child_entered();
|
||||
void enter_tree();
|
||||
void ready();
|
||||
|
||||
protected:
|
||||
void _notification(int what);
|
||||
};
|
||||
|
||||
/* ============================== STATES ============================== */
|
||||
|
||||
class RiflemanState : public State {
|
||||
GDCLASS(RiflemanState, State);
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
virtual void set_target(Node *target) override;
|
||||
EnemyRifleman *get_target() const;
|
||||
NpcUnit *get_unit() const;
|
||||
NavigationAgent3D *get_agent() const;
|
||||
AnimationPlayer *get_anim() const;
|
||||
|
||||
private:
|
||||
EnemyRifleman *target{ nullptr };
|
||||
};
|
||||
|
||||
class RiflemanPatrolState : public RiflemanState {
|
||||
GDCLASS(RiflemanPatrolState, RiflemanState);
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
virtual void enter_state() override;
|
||||
virtual void process(double delta) override;
|
||||
};
|
||||
|
||||
class RiflemanSeekState : public RiflemanState {
|
||||
GDCLASS(RiflemanSeekState, RiflemanState);
|
||||
static void _bind_methods();
|
||||
};
|
||||
|
||||
class RiflemanFireState : public RiflemanState {
|
||||
GDCLASS(RiflemanFireState, RiflemanState);
|
||||
static void _bind_methods();
|
||||
};
|
||||
|
||||
#endif // !ENEMY_RIFLEMAN_H
|
||||
|
|
|
|||
Loading…
Reference in a new issue