Connect staged group Nexus negotiations
Verify and publish checkpoint container / container (push) Successful in 10m24s

This commit is contained in:
Quintine committed 2026-10-28 23:04:40 +11:00
1 parent 4798a3579b
commit 624f95dde4
9 files changed
+348 -14

No files matched your search

+13 -2
View File
@@ -3183,6 +3183,15 @@ function policyActions(g: GameView): Action[] {
return [];
}
if (g.phase === 1) {
const group = g.coalitionNexus;
if (group?.proposal) {
const proposal = group.proposal;
const participants = [...proposal.original.members, proposal.entrant];
return participants.includes(me.id) && !proposal.approvals.includes(me.id)
? [{type: 'coalitionAnswer', event: proposal.event, nexus: proposal.nexus,
turn: proposal.turn, accept: true, expectedRevision: group.revision}]
: [];
}
const thumper = me.hand?.find((c) => c.effect === 'thumper');
const prior = g.spiceDiscardTop[0];
if (
@@ -3217,7 +3226,8 @@ function policyActions(g: GameView): Action[] {
const card = me.hand?.find((c) => c.effect === 'harvester');
if (card) return [{ type: 'card', card: card.id }];
}
if (g.nexus && !g.spiceWindow && !me.ally) {
if (g.nexus && !g.spiceWindow && !me.ally &&
!group?.groups.some(alliance => alliance.members.includes(me.id))) {
const offer = g.players.find(
(player) => player.id !== me.id &&
g.allianceOffers[player.id] === me.id &&
@@ -3227,7 +3237,8 @@ function policyActions(g: GameView): Action[] {
if (level > 0 && !g.ready.includes(me.id) && !g.allianceOffers[me.id]) {
const target = g.players.find(
(player) => player.id !== me.id &&
!player.ally && !g.homeworldAllianceBlocks?.[player.id],
!player.ally && !g.homeworldAllianceBlocks?.[player.id] &&
!group?.groups.some(alliance => alliance.members.length === 3 && alliance.members.includes(player.id)),
);
if (target) return [{ type: 'alliance', target: target.id }];
}