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
|
#define ENEMY_RIFLEMAN_H
|
||||||
|
|
||||||
#include "wave_survival/enemy_body.h"
|
#include "wave_survival/enemy_body.h"
|
||||||
|
#include "wave_survival/state.h"
|
||||||
|
class AnimationPlayer;
|
||||||
|
class NavigationAgent3D;
|
||||||
|
|
||||||
class EnemyRifleman : public EnemyBody {
|
class EnemyRifleman : public EnemyBody {
|
||||||
GDCLASS(EnemyRifleman, EnemyBody);
|
GDCLASS(EnemyRifleman, EnemyBody);
|
||||||
static void _bind_methods();
|
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
|
#endif // !ENEMY_RIFLEMAN_H
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue