show accumulated threat for teams in balancing target
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
#include "StationBodyComponent.h"
|
||||
#include "StationsConfig.h"
|
||||
#include "SurfaceMask.h"
|
||||
#include "ThreatCostCalculator.h"
|
||||
#include "WeaponComponent.h"
|
||||
|
||||
ArenaSimulation::ArenaSimulation(const GameConfig& gameConfig,
|
||||
@@ -64,6 +65,24 @@ ArenaSimulation::ArenaSimulation(const GameConfig& gameConfig,
|
||||
m_salvagerSystem = std::make_unique<SalvagerSystem>(m_admin);
|
||||
m_repairSystem = std::make_unique<RepairSystem>(m_admin);
|
||||
|
||||
// Static accumulated threat per team: sum of count * per-ship threat cost
|
||||
// (REQ-MOD-THREAT) over the configured ship roster. Ships only; HQ and
|
||||
// defence stations are excluded. Level-independent, so computed once here.
|
||||
for (int ti = 0; ti < 2; ++ti)
|
||||
{
|
||||
double teamThreat = 0.0;
|
||||
for (const ArenaShipEntry& shipEntry : m_arenaConfig.teams[ti].ships)
|
||||
{
|
||||
const std::vector<PlacedModule>& modules = shipEntry.layout
|
||||
? shipEntry.layout->placedModules
|
||||
: std::vector<PlacedModule>{};
|
||||
const double shipThreat = calculateShipThreatCost(
|
||||
m_gameConfig.threatCosts, m_gameConfig, shipEntry.schematicId, modules);
|
||||
teamThreat += shipThreat * shipEntry.count;
|
||||
}
|
||||
m_teamThreat[ti] = teamThreat;
|
||||
}
|
||||
|
||||
placeStructures();
|
||||
spawnShips();
|
||||
|
||||
@@ -460,6 +479,7 @@ void ArenaSimulation::updateStatus()
|
||||
{
|
||||
ArenaStatus::TeamStatus& teamStatus = newStatus.teams[ti];
|
||||
teamStatus.name = m_arenaConfig.teams[ti].name;
|
||||
teamStatus.threatLevel = m_teamThreat[ti];
|
||||
|
||||
// HQ entry (always first).
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user