#include "factory.h" #include "archer.h" #include "ballista.h" #include "barracks.h" #include "builder.h" #include "catapult.h" #include "defense_tower.h" #include "elephant.h" #include "healer.h" #include "home.h" #include "horse_archer.h" #include "horse_spearman.h" #include "horse_swordsman.h" #include "spearman.h" #include "swordsman.h" #include "units/spawn_type.h" #include "units/unit.h" namespace Game::Units { void registerBuiltInUnits(UnitFactoryRegistry ®) { reg.registerFactory(SpawnType::Archer, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Archer::Create(world, params); }); reg.registerFactory(SpawnType::Knight, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Swordsman::Create(world, params); }); reg.registerFactory(SpawnType::MountedKnight, [](Engine::Core::World &world, const SpawnParams ¶ms) { return MountedKnight::Create(world, params); }); reg.registerFactory(SpawnType::Spearman, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Spearman::Create(world, params); }); reg.registerFactory(SpawnType::HorseArcher, [](Engine::Core::World &world, const SpawnParams ¶ms) { return HorseArcher::Create(world, params); }); reg.registerFactory(SpawnType::HorseSpearman, [](Engine::Core::World &world, const SpawnParams ¶ms) { return HorseSpearman::Create(world, params); }); reg.registerFactory(SpawnType::Healer, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Healer::Create(world, params); }); reg.registerFactory(SpawnType::Catapult, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Catapult::Create(world, params); }); reg.registerFactory(SpawnType::Ballista, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Ballista::Create(world, params); }); reg.registerFactory(SpawnType::Elephant, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Elephant::Create(world, params); }); reg.registerFactory(SpawnType::Builder, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Builder::Create(world, params); }); reg.registerFactory(SpawnType::Barracks, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Barracks::Create(world, params); }); reg.registerFactory(SpawnType::DefenseTower, [](Engine::Core::World &world, const SpawnParams ¶ms) { return DefenseTower::create(world, params); }); reg.registerFactory(SpawnType::Home, [](Engine::Core::World &world, const SpawnParams ¶ms) { return Home::Create(world, params); }); } } // namespace Game::Units