Compose original mixed and paired Nexus optional modules
This commit is contained in:
1 parent
0e1797d4e0
commit
05ab2c92b0
30 files changed
+2268
-203
No files matched your search
@@ -20,6 +20,7 @@ import {
|
||||
stageAssassinationBattle,
|
||||
} from './moritani-assassinate-fixture';
|
||||
import { createStrongholdFactionsFixture } from './fixture-stronghold-factions';
|
||||
import { createPairedE3NexusSetup } from './fixture-paired-e3-nexus-modules';
|
||||
|
||||
void test('Moritani Skills sample custody checks the physical skill and Traitor inventories after genuine setup', () => {
|
||||
const game = completedMoritaniSkillsGame();
|
||||
@@ -37,6 +38,22 @@ void test('Moritani Skills sample custody checks the physical skill and Traitor
|
||||
assert.throws(() => verifySampleCustody(traitors, inventory), /traitor custody/);
|
||||
});
|
||||
|
||||
for (const skills of [false, true]) void test(`paired native Ecaz loyalty remains one physical Traitor with ${skills ? 'all14 Skills' : 'no Skills'}`, () => {
|
||||
const fixture = createPairedE3NexusSetup({ skills, homeworlds: false, discovery: false, tech: false, strongholds: false });
|
||||
const inventory = sampleInventory(fixture.offered);
|
||||
verifySampleCustody(fixture.afterSetup, inventory);
|
||||
const loyaltyCard = fixture.afterSetup.ecazLoyalty?.card;
|
||||
assert.ok(loyaltyCard);
|
||||
|
||||
const missing = structuredClone(fixture.afterSetup);
|
||||
delete missing.ecazLoyalty;
|
||||
assert.throws(() => verifySampleCustody(missing, inventory));
|
||||
|
||||
const duplicated = structuredClone(fixture.afterSetup);
|
||||
duplicated.traitorReserve!.push(loyaltyCard);
|
||||
assert.throws(() => verifySampleCustody(duplicated, inventory));
|
||||
});
|
||||
|
||||
void test('Moritani assassination samples conserve retired Traitors after real battle and Mentat replacement', () => {
|
||||
const start = assassinationGame();
|
||||
const inventory = sampleInventory(start);
|
||||
|
||||
Reference in new issue
Block a user