diff options
Diffstat (limited to 'Enemy.cpp')
-rw-r--r-- | Enemy.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
@@ -5,13 +5,28 @@ #include <raylib.h> +#include "Behaviour.h" #include "Generator.h" +#include "Static.h" Enemy::Enemy(std::unique_ptr<Generator> generator) : + Enemy( + std::make_shared<Vector2>(), + std::move(generator), + std::make_unique<Static>()) +{ +} + + +Enemy::Enemy( + std::shared_ptr<Vector2> position, + std::unique_ptr<Generator> generator, + std::unique_ptr<Behaviour> behaviour) : m_hold {0}, - m_position {std::make_shared<Vector2>()}, - m_generator {std::move(generator)} + m_position {position}, + m_generator {std::move(generator)}, + m_behaviour {std::move(behaviour)} { m_position->x = 400; m_position->y = 40; @@ -26,8 +41,8 @@ Enemy::update(const float dt) m_hold -= dt; return; } - if (m_generator) - m_generator->update(dt); + m_behaviour->update(dt, *m_position, *m_generator); + m_generator->update(dt); } @@ -46,3 +61,10 @@ Enemy::set_position(const float x, const float y) m_position->x = x; m_position->y = y; } + + +void +Enemy::set_hold(const float seconds) +{ + m_hold = seconds; +} |