Announce leaderless Basic battle plans
Verify and publish checkpoint container / container (push) Successful in 10m50s
Verify and publish checkpoint container / container (push) Successful in 10m50s
This commit is contained in:
1 parent
3f4925e6e1
commit
2bac45b294
6 files changed
+221
-3
No files matched your search
+6
-2
@@ -983,6 +983,8 @@ export type Battle = {
|
||||
attacker: string;
|
||||
defender: string;
|
||||
plans: Record<string, Plan>;
|
||||
/** Basic declarations recorded only when a new leaderless plan is sealed. */
|
||||
basicLeaderlessAnnouncements?: string[];
|
||||
revealed: boolean;
|
||||
traitorCalls: Record<string, boolean>;
|
||||
traitorDecisionPromises?: TraitorDecisionPromise[];
|
||||
@@ -47147,8 +47149,10 @@ function applyActionInner(
|
||||
'Wait for the plan requested by special prescience.',
|
||||
);
|
||||
b.plans[id] = validatePlan(g, p, action);
|
||||
if (g.advanced && b.plans[id].leader === null)
|
||||
if (b.plans[id].leader === null) {
|
||||
if (!g.advanced) (b.basicLeaderlessAnnouncements ??= []).push(id);
|
||||
log(g, `${p.name} announced a Battle Plan without a leader or Cheap Hero; no battle cards can be played.`);
|
||||
}
|
||||
if (b.fullPlan?.target === id) {
|
||||
recordFullPlanInspection(g, b.fullPlan.owner);
|
||||
}
|
||||
@@ -49029,7 +49033,7 @@ export function viewGame(state: Game, id: string, now?: number) {
|
||||
submitted: Object.keys(b.plans),
|
||||
leaderless: g.advanced
|
||||
? Object.keys(b.plans).filter(playerId => b.plans[playerId].leader === null)
|
||||
: [],
|
||||
: (b.basicLeaderlessAnnouncements ?? []).filter(playerId => b.plans[playerId]?.leader === null),
|
||||
plans: b.revealed
|
||||
? b.plans
|
||||
: b.plans[id]
|
||||
|
||||
+1
-1
@@ -2839,7 +2839,7 @@ export const RULE_TOPICS: RuleTopic[] = [
|
||||
summary: 'Build a legal combination and decide what to keep after winning.',
|
||||
steps: [
|
||||
'Choose one weapon, one defense, both, or neither. A worthless card can occupy a weapon or defense slot.',
|
||||
'Choose an available leader or Cheap Hero when required. Without either, battle cards cannot be played. In Advanced, sealing a legal leaderless plan announces that fact to the whole table before reveal; its dial, spice and other choices remain sealed. Refresh retains the same announcement without submitting another plan.',
|
||||
'Choose an available leader or Cheap Hero when required. Without either, battle cards cannot be played. In Basic and Advanced, sealing a legal leaderless plan announces that fact to the whole table before reveal; its dial, spice and other choices remain sealed. Refresh retains the same announcement without submitting another plan.',
|
||||
'On Arrakis, a surviving leader remains in its battle territory for the rest of the Battle phase. A later Lasgun–Shield explosion there also kills previously surviving leader discs still present, even if a different leader fights that later battle. The Basic application is provisional; a successful Traitor call prevents the explosion.',
|
||||
'A loser normally discards all played cards. If allied with Moritani and the battle has a winner, the defeated ally may retain one played card that a winner could keep. A winner may discard selected played cards; Cheap Heroes are discarded after use.',
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user