summaryrefslogtreecommitdiffhomepage
path: root/EnemyFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'EnemyFactory.cpp')
-rw-r--r--EnemyFactory.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/EnemyFactory.cpp b/EnemyFactory.cpp
index 8a51c3f..a154ae5 100644
--- a/EnemyFactory.cpp
+++ b/EnemyFactory.cpp
@@ -8,6 +8,7 @@
#include "Enemy.h"
#include "ExampleGenerator.h"
#include "FallingAndOscillating.h"
+#include "WaveGenerator.h"
Enemy
@@ -20,7 +21,6 @@ EnemyFactory::make_example(
auto position = std::make_shared<Vector2>(Vector2{x, y});
auto generator = std::make_shared<ExampleGenerator>(position, bullets);
auto behaviour = std::make_shared<FallingAndOscillating>(position, generator);
- generator->m_position = position;
if (mirror) {
generator->m_color = Color{100, 0, 255, 255};
generator->m_direction *= -1;
@@ -30,3 +30,18 @@ EnemyFactory::make_example(
enemy.m_hold = hold;
return enemy;
}
+
+
+Enemy
+EnemyFactory::make_waver(
+ ConstantVelocityBullet::Vector& bullets,
+ const float x, const float y,
+ const float hold)
+{
+ auto position = std::make_shared<Vector2>(Vector2{x, y});
+ auto generator = std::make_shared<WaveGenerator>(position, bullets);
+ auto behaviour = std::make_shared<Falling>(position, generator);
+ Enemy enemy(position, generator, behaviour);
+ enemy.m_hold = hold;
+ return enemy;
+}