Enable Basic Kull preview with Tech Tokens
Verify and publish checkpoint container / container (push) Canceled after 0s
Verify and publish checkpoint container / container (push) Canceled after 0s
This commit is contained in:
1 parent
92d5c0ac2e
commit
16f10beecf
11 files changed
+375
-18
No files matched your search
@@ -1,4 +1,5 @@
|
||||
import { FACTIONS } from './catalog';
|
||||
import { basicKullTechRoster } from './kull-default-profile';
|
||||
|
||||
/** Public lobby configuration only; physical freshness is checked by the initializer. */
|
||||
export type FactionModuleProfile = {
|
||||
@@ -134,13 +135,13 @@ export function selectedPhaseModuleRoster(
|
||||
/** Keep unrelated overlays outside this phase-only permission. Semuta's caller
|
||||
* additionally retains its old roster envelope below, rather than inheriting
|
||||
* new selected-family admission through its explicit context flag. */
|
||||
function phaseModuleContext(game: FactionModuleProfile, semuta = false, independent = false): boolean {
|
||||
function phaseModuleContext(game: FactionModuleProfile, semuta = false, independent = false, kull = false): boolean {
|
||||
return typeof game.advanced === 'boolean' &&
|
||||
!(game.strongholdCards && !game.advanced) && !game.leaderSkills &&
|
||||
!game.homeworlds && !game.nexusCards && !game.discoveryEnabled && !game.discoveries &&
|
||||
!game.discoveryStash && !game.greatMaker && (independent ? game.ecazTreachery === true : !game.ecazTreachery) &&
|
||||
(!game.semutaPreview || (semuta && game.semutaPreview === true)) &&
|
||||
!game.advancedPreview && !game.kullPreview && !game.nexusKullPreview &&
|
||||
!game.advancedPreview && (!game.kullPreview || kull) && !game.nexusKullPreview &&
|
||||
!game.guildBetrayalPreview && !game.richeseBetrayalPreview &&
|
||||
!game.nexusIxianReplacementPreview && !game.nexusIxianBetrayalPreview &&
|
||||
!game.nexusHarkonnenBetrayalPreview;
|
||||
@@ -183,7 +184,9 @@ function legacySemutaTechRoster(game: FactionModuleProfile): boolean {
|
||||
/** Tech-only Basic/Advanced or original Advanced Strongholds at three-six seats.
|
||||
* Explicit Semuta validation keeps its earlier family/native/Harkonnen scope. */
|
||||
export function nativeFactionTechProfile(game: FactionModuleProfile, semuta = false): boolean {
|
||||
return !!game && phaseModuleContext(game, semuta) && !!game.techTokens &&
|
||||
const kull = !!game && !semuta && game.kullPreview === true && basicKullTechRoster(game) &&
|
||||
!game.sandtrout && !game.spiceBankerIncomePreview;
|
||||
return !!game && phaseModuleContext(game, semuta, false, kull) && !!game.techTokens &&
|
||||
(semuta ? legacySemutaTechRoster(game) :
|
||||
selectedPhaseModuleRoster(game) && game.players.length >= 3);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user