Admit original Advanced Tleilaxu Ixian Nexus replacement
This commit is contained in:
1 parent
2c6bb02ccb
commit
7ef00e0a65
10 files changed
+80
-57
No files matched your search
+3
-3
@@ -9910,12 +9910,12 @@ function decideIxianNexusBetrayal(g: Game,id: string,action: Action): void {
|
||||
if (use) log(g,`${getPlayer(g,id).name} spent Ixian Nexus Betrayal to prevent the original native ${frame.source.kind} attempt.`);
|
||||
finishIxianNativeAttempt(g,frame.continuation,use);
|
||||
}
|
||||
/** Fresh classic or Basic native Tleilaxu profile; no public start or retrofit. */
|
||||
/** Fresh classic or native Tleilaxu profile; no public start or retrofit. */
|
||||
export function initializeIxianNexusReplacementGameForAudit(state: Game): Game {
|
||||
requireRule(!state.nexusIxianReplacementPreview && !state.pendingNexusIxianReplacement &&
|
||||
state.nexusIxianReplacementHistory === undefined && state.nexusIxianReplacementCursor === undefined &&
|
||||
ixianNexusReplacementModeSupported(state),
|
||||
'Ixian Nexus replacement needs a fresh classic/base or Basic Tleilaxu/Ix lobby with Nexus alone.');
|
||||
'Ixian Nexus replacement needs a fresh classic/base or Tleilaxu/Ix lobby with Nexus alone.');
|
||||
const g = initializeNexusGameForAudit(state);
|
||||
// Ix supplies Treachery here, not the optional Sandtrout Spice card.
|
||||
if (g.expansions.length) g.spiceDeck = shuffle(spiceDeck());
|
||||
@@ -9929,7 +9929,7 @@ function ixianNexusReplacementModeSupported(g: Game): boolean {
|
||||
return !!g.nexusCards && g.players.length >= 2 && g.players.length <= 6 &&
|
||||
new Set(g.players.map(p => p.faction)).size === g.players.length &&
|
||||
((!g.expansions.length && g.players.every(p => CLASSIC_FACTIONS[p.faction] === true)) ||
|
||||
(!g.advanced && g.expansions.length === 1 && g.expansions[0] === 'ix' &&
|
||||
(g.expansions.length === 1 && g.expansions[0] === 'ix' &&
|
||||
g.players.some(p => p.faction === 'tleilaxu') &&
|
||||
g.players.every(p => p.faction === 'tleilaxu' || CLASSIC_FACTIONS[p.faction] === true))) &&
|
||||
!g.homeworlds && !g.leaderSkills && !g.discoveryEnabled && !g.discoveries &&
|
||||
|
||||
+3
-3
@@ -4513,7 +4513,7 @@ export const RULE_TOPICS: RuleTopic[] = [
|
||||
summary: 'In the fresh local ixian-replacement preview, an unallied holder with Ixians absent may spend the physical Ixian Nexus to discard exactly the card just bought in a normal auction and draw the next Treachery deck card privately.',
|
||||
searchText: 'Ixian Nexus Secret Ally purchased card replacement normal auction Karama full hand empty deck same card',
|
||||
steps: [
|
||||
'This fresh local profile admits two-to-six unique classic-faction seats in Basic or Advanced with base Treachery, or additionally Basic Tleilaxu plus classic opponents with the original Ix47 deck and Ixians absent. Nexus alone; optional Sandtrout is omitted only in the fresh native variant. Advanced Tleilaxu, other native expansions, Leader Skills, Homeworlds, Semuta, Discoveries, Ecaz variants and other overlays remain guarded. No public start or saved-game upgrade.',
|
||||
'This fresh local profile admits two-to-six unique classic factions with base Treachery or native Tleilaxu plus classics with original Ix47, in Basic or Advanced, with Ixians absent and Nexus alone. Optional Sandtrout is omitted only at fresh native setup. Original native setup, Face Dancers, actual qualifying Nexus draw and normal purchased-card controls remain. Other native expansions, Leader Skills, Homeworlds, Semuta, Discoveries, Ecaz variants and other overlays remain guarded. No public start or played-save upgrade.',
|
||||
'Nexus has no starting deal. A draw requires a qualifying closing Nexus with an alliance. A two-seat profile can continue its base game but cannot naturally create an unallied Secret Ally holder; actual replacement needs at least three seats, or four for two simultaneous unallied recipients.',
|
||||
'The photographed publisher face grants an independent Secret Ally operation when Ixians are absent. Remain unallied and hold the actual singleton Ixian Nexus. Native Ixian allied replacement is a different cancelable advantage and is not removed or used as a fallback. The adopted unofficial Advanced rulebook supplies relevant core rules, not this absent Nexus face or a new Nexus ruling.',
|
||||
'Wait for a genuine normal-auction purchase, paid with spice or through Karama, including direct acquisition before a positive bid. A successful native Advanced BG Worthless-as-Karama conversion gets the same independent replacement choice after its native counter resolves. Canceling direct acquisition supplies no purchase; a canceled winning-payment conversion follows native funded spice recovery and, if bought, supplies a paid receipt instead. Cache, Black Market and special-purchase origins retain their separate guarded Nexus scope. Gifts, bonus draws, Technology swaps and old hand cards are not purchases.',
|
||||
@@ -4531,9 +4531,9 @@ export const RULE_TOPICS: RuleTopic[] = [
|
||||
checklist: [
|
||||
{ area: 'Implementation', status: 'Partial', detail: 'The bounded profile binds the exact normal purchase, physical replacement and closed history to native settlement. BG conversion and paid recovery remain source-specific. Harkonnen composes replacement before original income/bonus, preserving native bonus cancellation and capacity. Special origins and combined modules remain guarded.', evidence: ['game/nexus-ixian-replacement.ts', 'game/engine.ts', 'tools/prototype-room.ts'] },
|
||||
{ area: 'Player controls', status: 'Partial', detail: 'Neutral Purchased card choice separates buyer-only inspection and Use/Keep from public waiting. Harkonnen sees the provisional replacement-before-income/bonus explanation. Two original390px journeys exercise Use then bonus cancellation, or Keep then one allowed bonus; no overflow/browser error. Broader acceptance remains open.', evidence: ['components/nexus-ixian-replacement.tsx', 'components/game-table.tsx'] },
|
||||
{ area: 'AI', status: 'Partial', detail: 'Four minimal legal policies consume only their own projected event while the underlying auction waits. Eight original-state actions cover BG conversion, and eight more cover Basic/Advanced Harkonnen replacement/bonus continuation. Full strategy and calibration remain unfinished.', evidence: ['game/bots.ts'] },
|
||||
{ area: 'AI', status: 'Partial', detail: 'Four minimal legal policies consume only their own projected event while the underlying auction waits. Eight original actions cover BG conversion, eight cover Harkonnen bonus continuation, and eight cover Advanced native Tleilaxu-profile buyers. Full strategy and calibration remain unfinished.', evidence: ['game/bots.ts'] },
|
||||
{ area: 'Documentation', status: 'Partial', detail: 'Printed physical operation, settlement, full-hand/empty-deck rules and explicit provisional Harkonnen replacement-before-bonus policy are recorded. Cache scope, competing effects and complete-family acceptance remain separate; no publisher priority is invented.', evidence: ['docs/NEXUS_IXIAN_REPLACEMENT_RULES.md', 'docs/NEXUS_CARD_RULES.md', 'docs/RULE_DECISIONS.md'] },
|
||||
{ area: 'Verification', status: 'Partial', detail: 'Earlier base/native evidence remains historical. BG composition passes affected74/74, four original runtime paths, eight policies and two390px journeys. Harkonnen adds three meaningful cases, affected64/64, eight original runtime paths, eight policies and two390px journeys covering separate native bonus cancellation/allowance; the eight-card boundary explicitly controls conserved hand acquisition. No new saved/deployed assurance; full families/modules remain open.', evidence: ['tests/nexus-ixian-replacement.test.ts', 'tests/nexus-ixian-replacement-engine.test.ts', 'tests/fixtures/nexus-ixian-native-depleted.json', 'tests/fixture-nexus-ixian-replacement.ts', 'tests/fixture-native-ixian-replacement.ts', 'tests/native-ixian-replacement.test.ts', 'tests/bg-ixian-replacement.test.ts', 'tests/fixture-bg-ixian-replacement.ts', 'tests/harkonnen-ixian-replacement.test.ts', 'tests/fixture-harkonnen-ixian-replacement.ts'] },
|
||||
{ area: 'Verification', status: 'Partial', detail: 'Earlier evidence remains historical. BG composition passes affected74/74 and Harkonnen64/64, with their original runtime/control proof. Native Tleilaxu now exercises both modes:7 native cases and affected47/47; four original Advanced Use/Keep paths and eight legal policy actions preserve actual Thumper/Amal purchase, income and next/final-lot continuation. CLI help names both modes. No new UI or saved/deployed assurance; full families/modules remain open.', evidence: ['tests/nexus-ixian-replacement.test.ts', 'tests/nexus-ixian-replacement-engine.test.ts', 'tests/fixtures/nexus-ixian-native-depleted.json', 'tests/fixture-nexus-ixian-replacement.ts', 'tests/fixture-native-ixian-replacement.ts', 'tests/native-ixian-replacement.test.ts', 'tests/bg-ixian-replacement.test.ts', 'tests/fixture-bg-ixian-replacement.ts', 'tests/harkonnen-ixian-replacement.test.ts', 'tests/fixture-harkonnen-ixian-replacement.ts'] },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user