#pragma once #include "interfaces/enemy.hpp" #include "interfaces/enemy_creator.hpp" #include #include class EnemyCreator : public IEnemyCreator, public yacppdic::AutoWirable< IEnemyCreator, EnemyCreator, yacppdic::Tagged, yacppdic::Tagged> { public: EnemyCreator( IEnemyFactory small_enemy_factory, IEnemyFactory big_enemy_factory ) noexcept; std::unique_ptr create_small_enemy() noexcept override; std::unique_ptr create_big_enemy() noexcept override; private: IEnemyFactory _small_enemy_factory; IEnemyFactory _big_enemy_factory; };