Compose independent cards with Discovery and optional Nexus
Connect original selected-deck Discovery setup, optional Nexus/World/Skills/phase modules and physical card consumers through shared public capabilities. Retain Cunning revealed-location arrival, Sandtrout suppression, paid nested R/Harass and actual later Recruits revival. Preserve native trained-capture and unrelated-preview boundaries. Validation: frozen 15-file118/118, types/lint/build and six finite original-action/rendered-control programmes; four minimal legal policies. External smoke corrections changed no application source. Existing persistent notices also rechecked23/23. Full combinations, assurance and deployed acceptance remain open; no saved-game, restart or deployment operation.
This commit is contained in:
1 parent
b4157aaa9b
commit
677ad7aa3c
21 files changed
+1000
-37
No files matched your search
@@ -1,5 +1,5 @@
|
||||
import { FACTIONS } from './catalog';
|
||||
import { independentNexusProfile, classicNexusCoreProfile, nexusCoreProfile, mixedE3NexusRosterProfile } from './faction-module-profile';
|
||||
import { independentDiscoveryProfile, 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. */
|
||||
@@ -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 (nexusCoreProfile(game)) return true;
|
||||
if (nexusCoreProfile(game) || independentDiscoveryProfile(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 (independentNexusProfile(game)) return true;
|
||||
if (independentNexusProfile(game) || independentDiscoveryProfile(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