Support group battle preparation powers
Verify and publish checkpoint container / container (push) Successful in 10m57s

This commit is contained in:
Quintine committed 2026-10-28 23:42:41 +11:00
1 parent d8d2e7207b
commit 83ccd71821
10 files changed
+405 -26

No files matched your search

+12 -7
View File
@@ -753,6 +753,7 @@ import { isAlliedShipmentVisit, makeBasicAlliedShipment, quoteBasicAlliedShipmen
type BasicAlliedShipment } from './allied-separation';
import { answerCoalitionAdmission, beginCoalitionAdmission, coalitionGroups, coalitionOf,
leaveCoalition, CoalitionAllianceError, type CoalitionState, type CoalitionTransition } from './coalition-alliance';
import { coalitionBattleBeneficiary } from './coalition-battle-preparation';
import { reconcileCoalitionEscrow, setCoalitionPledge, type CoalitionEscrowMembership,
type CoalitionEscrowState } from './coalition-escrow';
import { CoalitionFundingError, quoteCoalitionFunding, settleCoalitionFunding,
@@ -30596,6 +30597,15 @@ function currentCombatResponseQuote(
status: g.status,
phase: g.phase,
advanced: g.advanced,
coalitionState: g.coalitionState,
expansions: g.expansions,
homeworlds: g.homeworlds,
nexusCards: g.nexusCards,
leaderSkills: g.leaderSkills,
techTokens: g.techTokens,
strongholdCards: g.strongholdCards,
ecazTreachery: g.ecazTreachery,
discoveryEnabled: g.discoveryEnabled,
turn: g.turn,
...(g.battle?.ecazOccupy ? { ecazOccupy: ecazBattleProfile(g)! } : {}),
territoryIds: combatLocations(g).map((t) => t.id),
@@ -30603,6 +30613,7 @@ function currentCombatResponseQuote(
id: p.id,
faction: p.faction,
ally: p.ally,
allySinceTurn: p.allySinceTurn,
specialKaramaUsed: p.specialKaramaUsed,
})),
battle: g.battle,
@@ -30690,13 +30701,7 @@ function battlePreparation(g: Game, kind: 'voice' | 'prescience', fresh = false)
}
const owner = byFaction(g, kind === 'voice' ? 'beneGesserit' : 'atreides');
const combatants = [b.attacker, b.defender];
const beneficiary =
owner &&
(combatants.includes(owner.id)
? owner.id
: owner.ally && combatants.includes(owner.ally)
? owner.ally
: null);
const beneficiary = owner && coalitionBattleBeneficiary(g, owner.id, combatants[0], combatants[1]);
if (owner && beneficiary) {
const target = b.attacker === beneficiary ? b.defender : b.attacker;
const occupation = kind === 'voice'