Compose selected E1/E2 independent cards with Nexus rules
Retain selected decks and original optional modules through normal setup, distinguish native Ixian Betrayal from absent-faction replacement, route explicit CHOAM fuel before printed effects, and preserve native No-Field invoices and pair continuation. Connect canonical native cancellation stock and existing human/minimal AI consumers. Validation: 194 affected tests across 19 files, types/lint/build, bounded native invoice review and seven finite original-action/rendered-control programmes. Runtime ec5ad6c18996d8d958ec0d01132ef3e3ea6d23d36188902eca9a63d4db2efbf8; documentation-only proof overlay a5892004937434429916496497c07a3838a324b4a5d64d4a0eb804ab5212d5bd. Other envelopes, full combinations, comprehensive assurance and deployed acceptance remain open. No saved-room/provider changes.
This commit is contained in:
1 parent
999edb67e6
commit
8422cf1f2d
20 files changed
+1413
-97
No files matched your search
@@ -1,5 +1,5 @@
|
||||
import { FACTIONS } from './catalog';
|
||||
import { classicIndependentNexusProfile, classicNexusCoreProfile, mixedE3NexusRosterProfile } from './faction-module-profile';
|
||||
import { independentNexusProfile, classicNexusCoreProfile, nexusCoreProfile, mixedE3NexusRosterProfile } from './faction-module-profile';
|
||||
import { classicDiscoveryLeaderSkillsProfile } from './discovery-module-profile';
|
||||
|
||||
/** Public configuration only; never gate a skill on a hidden card or random deal. */
|
||||
@@ -68,7 +68,7 @@ export function classicNexusLeaderSkillsProfile(game: LeaderSkillProfile): boole
|
||||
|
||||
/** Fresh classic Nexus/Skills composed only with the bounded Guild Betrayal preview. */
|
||||
export function guildBetrayalNexusLeaderSkillsProfile(game: LeaderSkillProfile): boolean {
|
||||
if (game.guildBetrayalPreview && classicNexusCoreProfile(game))
|
||||
if (game.guildBetrayalPreview && nexusCoreProfile(game))
|
||||
return game.players!.some(player => player.faction === 'guild');
|
||||
if (game.expansions.length || !game.guildBetrayalPreview || game.homeworlds ||
|
||||
game.techTokens || game.strongholdCards || game.semutaPreview ||
|
||||
@@ -463,7 +463,7 @@ function homeworldLeaderSkillModulesSupported(game: LeaderSkillProfile): boolean
|
||||
/** Original Homeworld/Skills under the existing classic or native Nexus roster contracts. */
|
||||
export function homeworldLeaderSkillsProfile(game: LeaderSkillProfile): boolean {
|
||||
if (!game.homeworlds) return false;
|
||||
if (classicNexusCoreProfile(game)) return true;
|
||||
if (nexusCoreProfile(game)) return true;
|
||||
if (game.expansions.length) return nativeExpansionLeaderSkillsProfile(game);
|
||||
if (!homeworldLeaderSkillModulesSupported(game)) return false;
|
||||
const players = game.players!;
|
||||
@@ -479,7 +479,7 @@ export function homeworldLeaderSkillsProfile(game: LeaderSkillProfile): boolean
|
||||
|
||||
/** Independent cards with registered selected-family all14 setup and original module/role guards. */
|
||||
export function independentTreacheryLeaderSkillsProfile(game: LeaderSkillProfile): boolean {
|
||||
if (classicIndependentNexusProfile(game)) return true;
|
||||
if (independentNexusProfile(game)) return true;
|
||||
if (game.ecazTreachery !== true || game.expansions.length > 3 ||
|
||||
typeof game.advanced !== 'boolean' || !game.players ||
|
||||
game.players.length < (game.techTokens ? 3 : 2) || game.players.length > 6 ||
|
||||
|
||||
Reference in new issue
Block a user