feat: improved ops-strip with faction and stations

This commit is contained in:
2026-03-18 00:40:44 -04:00
parent ad5f733b3e
commit 00a008bda5
16 changed files with 341 additions and 175 deletions

View File

@@ -21,10 +21,7 @@ public sealed partial class ScenarioLoader
factionIds.Add(DefaultFactionId);
}
factionIds.Add(UnclaimedFactionId);
return factionIds
.Distinct(StringComparer.Ordinal)
.Select(CreateFaction)
.ToList();
}
@@ -40,13 +37,6 @@ public sealed partial class ScenarioLoader
Color = "#7ed4ff",
Credits = MinimumFactionCredits,
},
UnclaimedFactionId => new FactionRuntime
{
Id = factionId,
Label = "Unclaimed",
Color = "#7f8794",
Credits = 0f,
},
_ => new FactionRuntime
{
Id = factionId,
@@ -107,26 +97,21 @@ public sealed partial class ScenarioLoader
var claims = new List<ClaimRuntime>();
foreach (var node in nodes.Where((candidate) => candidate.Kind == SpatialNodeKind.LagrangePoint))
{
var owningFactionId = stationsByAnchorNodeId.TryGetValue(node.Id, out var station)
? station.FactionId
: UnclaimedFactionId;
var activatesAtUtc = owningFactionId == UnclaimedFactionId
? nowUtc
: nowUtc.AddSeconds(8);
var state = owningFactionId == UnclaimedFactionId
? ClaimStateKinds.Active
: ClaimStateKinds.Activating;
if (!stationsByAnchorNodeId.TryGetValue(node.Id, out var station))
{
continue;
}
claims.Add(new ClaimRuntime
{
Id = $"claim-{node.Id}",
FactionId = owningFactionId,
FactionId = station.FactionId,
SystemId = node.SystemId,
NodeId = node.Id,
BubbleId = node.BubbleId,
PlacedAtUtc = nowUtc,
ActivatesAtUtc = activatesAtUtc,
State = state,
ActivatesAtUtc = nowUtc.AddSeconds(8),
State = ClaimStateKinds.Activating,
Health = 100f,
});
}
@@ -248,11 +233,6 @@ public sealed partial class ScenarioLoader
var policies = new List<PolicySetRuntime>(factions.Count);
foreach (var faction in factions)
{
if (string.Equals(faction.Id, UnclaimedFactionId, StringComparison.Ordinal))
{
continue;
}
var policyId = $"policy-{faction.Id}";
faction.DefaultPolicySetId = policyId;
policies.Add(new PolicySetRuntime
@@ -277,11 +257,6 @@ public sealed partial class ScenarioLoader
foreach (var faction in factions)
{
if (string.Equals(faction.Id, UnclaimedFactionId, StringComparison.Ordinal))
{
continue;
}
var commander = new CommanderRuntime
{
Id = $"commander-faction-{faction.Id}",