allow to inspect balancing arena

This commit is contained in:
2026-05-03 21:17:43 +02:00
parent afd8cd28fa
commit 3ef32ee6ba
13 changed files with 851 additions and 4 deletions

View File

@@ -256,6 +256,7 @@ void ArenaSimulation::tick()
// Combat resolution (tick step 8).
std::vector<FireEvent> fireEvents;
m_combatSystem->tick(m_currentTick, *m_shipSystem, *m_buildingSystem, fireEvents);
m_fireEvents.insert(m_fireEvents.end(), fireEvents.begin(), fireEvents.end());
m_combatSystem->applyPendingDamage(m_currentTick, *m_shipSystem, *m_buildingSystem);
// Deaths (tick step 9, simplified).
@@ -375,6 +376,57 @@ void ArenaSimulation::tickDeaths()
}
}
void ArenaSimulation::tickOnce()
{
if (!m_finished)
{
tick();
updateStatus();
}
}
std::vector<FireEvent> ArenaSimulation::drainFireEvents()
{
std::vector<FireEvent> result;
result.swap(m_fireEvents);
return result;
}
bool ArenaSimulation::isFinished() const
{
return m_finished;
}
int ArenaSimulation::winnerTeam() const
{
return m_winnerTeam;
}
Tick ArenaSimulation::currentTick() const
{
return m_currentTick;
}
const ArenaConfig& ArenaSimulation::arenaConfig() const
{
return m_arenaConfig;
}
const BuildingSystem& ArenaSimulation::buildings() const
{
return *m_buildingSystem;
}
const ShipSystem& ArenaSimulation::ships() const
{
return *m_shipSystem;
}
const ScrapSystem& ArenaSimulation::scraps() const
{
return *m_scrapSystem;
}
void ArenaSimulation::updateStatus()
{
ArenaStatus newStatus;