#pragma once

#include <map>
#include <string>
#include <vector>

#include "ShipLayout.h"

struct GameConfig;

struct ThreatCostTable
{
    std::map<std::string, double> itemThreat;
    double scrapThreat = 0.0;
};

ThreatCostTable computeThreatCostTable(const GameConfig& config);

double calculateShipThreatCost(const ThreatCostTable& table,
                               const GameConfig& config,
                               const std::string& shipId,
                               const std::vector<PlacedModule>& modules);
