Enable Semuta in public Richese Skills games
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
1972622c11
commit
b2b9a024bd
9 files changed
+285
-3
No files matched your search
+14
-1
@@ -11013,6 +11013,18 @@ function lobbyModulesSelected(g: Game): boolean {
|
||||
return !!g.lobbyOptions?.leaderSkills || !!g.lobbyOptions?.ecazTreachery || !!g.lobbyOptions?.kullPreview ||
|
||||
!!g.nexusCards || g.discoveryEnabled === true || !!g.homeworlds;
|
||||
}
|
||||
/** Fresh public Richese + Skills entry, using the already connected Semuta
|
||||
* continuation. Other family/module compositions retain their own entry. */
|
||||
function publicSemutaSkillsProfile(g: Game): boolean {
|
||||
return g.status === 'lobby' && typeof g.advanced === 'boolean' &&
|
||||
g.players.length >= 2 && g.players.length <= 6 &&
|
||||
g.expansions.length === 1 && g.expansions[0] === 'choam' && !!byFaction(g, 'richese') &&
|
||||
g.players.every(p => p.faction === 'richese' || p.faction === 'choam' || CLASSIC_FACTIONS[p.faction] === true) &&
|
||||
(!g.techTokens || g.players.length >= 3) && (!g.strongholdCards || g.advanced) &&
|
||||
!g.twoPlayerControllers && !g.shortAllianceVictory && !g.coalitionPreview &&
|
||||
!g.homeworlds && !g.nexusCards && !g.discoveryEnabled && !g.ecazTreachery &&
|
||||
!g.leaderSkills && !g.kullPreview && !g.nexusKullPreview;
|
||||
}
|
||||
/** Route a normal start through the existing genuine setup for the selected modules. */
|
||||
function startModules(state: Game): Game {
|
||||
const options = state.lobbyOptions ?? {};
|
||||
@@ -11038,7 +11050,8 @@ function startModules(state: Game): Game {
|
||||
return initializeKullGameForAudit(g);
|
||||
}
|
||||
if (options.ecazTreachery && options.leaderSkills) g.ecazTreachery = true;
|
||||
if (options.leaderSkills) return initializeLeaderSkillsGameForAudit(g);
|
||||
if (options.leaderSkills) return publicSemutaSkillsProfile(g)
|
||||
? initializeSemutaGameForAudit(g, true) : initializeLeaderSkillsGameForAudit(g);
|
||||
// Keep this selection visible to its initializer even when another module was
|
||||
// also selected; unsupported combinations must reject, not silently omit cards.
|
||||
if (options.ecazTreachery) return initializeEcazTreacheryGameForAudit(g);
|
||||
|
||||
Reference in new issue
Block a user