#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; auto create_small_enemy() noexcept -> std::unique_ptr override; auto create_big_enemy() noexcept -> std::unique_ptr override; private: IEnemyFactory _small_enemy_factory; IEnemyFactory _big_enemy_factory; };