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);
|
||||
|
||||
Reference in New Issue
Block a user