Files
space-game/apps/viewer/src/contractsFactions.ts

168 lines
4.6 KiB
TypeScript

export interface FactionPlanningStateSnapshot {
militaryShipCount: number;
minerShipCount: number;
transportShipCount: number;
constructorShipCount: number;
controlledSystemCount: number;
targetSystemCount: number;
hasShipFactory: boolean;
oreStockpile: number;
refinedMetalsAvailableStock: number;
refinedMetalsUsageRate: number;
refinedMetalsProjectedProductionRate: number;
refinedMetalsProjectedNetRate: number;
refinedMetalsLevelSeconds: number;
refinedMetalsLevel: string;
hullpartsAvailableStock: number;
hullpartsUsageRate: number;
hullpartsProjectedProductionRate: number;
hullpartsProjectedNetRate: number;
hullpartsLevelSeconds: number;
hullpartsLevel: string;
claytronicsAvailableStock: number;
claytronicsUsageRate: number;
claytronicsProjectedProductionRate: number;
claytronicsProjectedNetRate: number;
claytronicsLevelSeconds: number;
claytronicsLevel: string;
waterAvailableStock: number;
waterUsageRate: number;
waterProjectedProductionRate: number;
waterProjectedNetRate: number;
waterLevelSeconds: number;
waterLevel: string;
}
export interface FactionStrategicPrioritySnapshot {
goalName: string;
priority: number;
}
export interface FactionCommoditySignalSnapshot {
itemId: string;
availableStock: number;
onHand: number;
productionRatePerSecond: number;
committedProductionRatePerSecond: number;
usageRatePerSecond: number;
netRatePerSecond: number;
projectedNetRatePerSecond: number;
levelSeconds: number;
level: string;
projectedProductionRatePerSecond: number;
buyBacklog: number;
reservedForConstruction: number;
}
export interface FactionThreatSignalSnapshot {
scopeId: string;
scopeKind: string;
enemyShipCount: number;
enemyStationCount: number;
}
export interface FactionBlackboardSnapshot {
planCycle: number;
updatedAtUtc: string;
targetWarshipCount: number;
hasWarIndustrySupplyChain: boolean;
hasShipyard: boolean;
hasActiveExpansionProject: boolean;
activeExpansionCommodityId?: string | null;
activeExpansionModuleId?: string | null;
activeExpansionSiteId?: string | null;
activeExpansionSystemId?: string | null;
enemyFactionCount: number;
enemyShipCount: number;
enemyStationCount: number;
militaryShipCount: number;
minerShipCount: number;
transportShipCount: number;
constructorShipCount: number;
controlledSystemCount: number;
commoditySignals: FactionCommoditySignalSnapshot[];
threatSignals: FactionThreatSignalSnapshot[];
}
export interface FactionPlanStepSnapshot {
id: string;
kind: string;
status: string;
priority: number;
commodityId?: string | null;
moduleId?: string | null;
targetFactionId?: string | null;
targetSiteId?: string | null;
blockingReason?: string | null;
notes?: string | null;
lastEvaluatedCycle: number;
dependencyStepIds: string[];
requiredFacts: string[];
producedFacts: string[];
assignedAssets: string[];
issuedTaskIds: string[];
}
export interface FactionIssuedTaskSnapshot {
id: string;
kind: string;
state: string;
objectiveId: string;
stepId: string;
priority: number;
shipRole?: string | null;
commodityId?: string | null;
moduleId?: string | null;
targetFactionId?: string | null;
targetSystemId?: string | null;
targetSiteId?: string | null;
createdAtCycle: number;
updatedAtCycle: number;
blockingReason?: string | null;
notes?: string | null;
assignedAssets: string[];
}
export interface FactionObjectiveSnapshot {
id: string;
kind: string;
state: string;
priority: number;
parentObjectiveId?: string | null;
targetFactionId?: string | null;
targetSystemId?: string | null;
targetSiteId?: string | null;
targetRegionId?: string | null;
commodityId?: string | null;
moduleId?: string | null;
budgetWeight: number;
slotCost: number;
createdAtCycle: number;
updatedAtCycle: number;
invalidationReason?: string | null;
blockingReason?: string | null;
prerequisiteObjectiveIds: string[];
assignedAssets: string[];
steps: FactionPlanStepSnapshot[];
}
export interface FactionSnapshot {
id: string;
label: string;
color: string;
credits: number;
populationTotal: number;
oreMined: number;
goodsProduced: number;
shipsBuilt: number;
shipsLost: number;
defaultPolicySetId?: string | null;
strategicAssessment?: FactionPlanningStateSnapshot | null;
strategicPriorities?: FactionStrategicPrioritySnapshot[] | null;
blackboard?: FactionBlackboardSnapshot | null;
objectives?: FactionObjectiveSnapshot[] | null;
issuedTasks?: FactionIssuedTaskSnapshot[] | null;
}
export interface FactionDelta extends FactionSnapshot {}