split off MovementSystem and AiSystem from ShipSystem
This commit is contained in:
@@ -5,10 +5,12 @@
|
||||
|
||||
#include <QVector2D>
|
||||
|
||||
#include "AiSystem.h"
|
||||
#include "Building.h"
|
||||
#include "BuildingSystem.h"
|
||||
#include "BuildingType.h"
|
||||
#include "CombatSystem.h"
|
||||
#include "MovementSystem.h"
|
||||
#include "ScrapSystem.h"
|
||||
#include "Ship.h"
|
||||
#include "ShipSystem.h"
|
||||
@@ -42,8 +44,10 @@ ArenaSimulation::ArenaSimulation(const GameConfig& gameConfig,
|
||||
m_shipSystem = std::make_unique<ShipSystem>(
|
||||
m_gameConfig, [this]() { return allocateId(); });
|
||||
|
||||
m_combatSystem = std::make_unique<CombatSystem>(m_gameConfig);
|
||||
m_scrapSystem = std::make_unique<ScrapSystem>([this]() { return allocateId(); });
|
||||
m_aiSystem = std::make_unique<AiSystem>();
|
||||
m_movementSystem = std::make_unique<MovementSystem>();
|
||||
m_combatSystem = std::make_unique<CombatSystem>(m_gameConfig);
|
||||
m_scrapSystem = std::make_unique<ScrapSystem>([this]() { return allocateId(); });
|
||||
|
||||
placeStructures();
|
||||
spawnShips();
|
||||
@@ -250,10 +254,10 @@ void ArenaSimulation::tick()
|
||||
{
|
||||
// Ship behavior systems (tick step 7).
|
||||
m_shipSystem->clearMovementIntents();
|
||||
m_shipSystem->tickHomeReturn();
|
||||
m_shipSystem->tickThreatResponse(*m_buildingSystem);
|
||||
m_shipSystem->tickRepairBehavior(*m_buildingSystem);
|
||||
m_shipSystem->tickScrapCollector(*m_scrapSystem, *m_buildingSystem);
|
||||
m_aiSystem->tickHomeReturn(*m_shipSystem);
|
||||
m_aiSystem->tickThreatResponse(*m_shipSystem, *m_buildingSystem);
|
||||
m_aiSystem->tickRepairBehavior(*m_shipSystem, *m_buildingSystem);
|
||||
m_aiSystem->tickScrapCollector(*m_shipSystem, *m_scrapSystem, *m_buildingSystem);
|
||||
|
||||
// Combat resolution (tick step 8).
|
||||
std::vector<FireEvent> fireEvents;
|
||||
@@ -265,7 +269,7 @@ void ArenaSimulation::tick()
|
||||
tickDeaths();
|
||||
|
||||
// Movement (tick step 10).
|
||||
m_shipSystem->tickMovement();
|
||||
m_movementSystem->tick(*m_shipSystem);
|
||||
|
||||
// Scrap despawn (tick step 11).
|
||||
m_scrapSystem->tickDespawn(m_currentTick);
|
||||
|
||||
@@ -14,8 +14,10 @@
|
||||
#include "GameConfig.h"
|
||||
#include "Tick.h"
|
||||
|
||||
class AiSystem;
|
||||
class BuildingSystem;
|
||||
class CombatSystem;
|
||||
class MovementSystem;
|
||||
class ShipSystem;
|
||||
class ScrapSystem;
|
||||
|
||||
@@ -81,9 +83,11 @@ private:
|
||||
|
||||
BeltSystem m_beltSystem;
|
||||
std::unique_ptr<BuildingSystem> m_buildingSystem;
|
||||
std::unique_ptr<ShipSystem> m_shipSystem;
|
||||
std::unique_ptr<CombatSystem> m_combatSystem;
|
||||
std::unique_ptr<ScrapSystem> m_scrapSystem;
|
||||
std::unique_ptr<ShipSystem> m_shipSystem;
|
||||
std::unique_ptr<AiSystem> m_aiSystem;
|
||||
std::unique_ptr<MovementSystem> m_movementSystem;
|
||||
std::unique_ptr<CombatSystem> m_combatSystem;
|
||||
std::unique_ptr<ScrapSystem> m_scrapSystem;
|
||||
|
||||
EntityId m_team1HqId;
|
||||
EntityId m_team2HqId;
|
||||
|
||||
Reference in New Issue
Block a user