Restore native Ecaz simulation continuation and current rule fixtures
Match original Ecaz sample snapshots to their native Occupy and Advanced assassination state. Preserve older absent-power samples and resume the original scenario instead of rejecting fresh saved output. Update stale fixture reactions and module expectations while retaining meaningful Banker guidance and positive legal commitments. Correct the unsupported rules-completion claim. Validation: typecheck/lint, 173 affected tests across 16 files, bounded independent source review, and one direct Ecaz continuation completed through 178 accepted actions. Runtime fingerprint 95d009d3957650b08bb24826b70aa5f00a74cdd9992b6a6c222f0665d3e3759c; documentation-only proof update a91ab248109bee74a74373fb544027a2e7cc8f178e26d2c9dad475a9618eb64d. Full rules, comprehensive assurance and deployed acceptance remain open. No saved-room or provider changes.
This commit is contained in:
1 parent
716304bb9e
commit
178251ad35
24 files changed
+389
-128
No files matched your search
@@ -415,7 +415,7 @@ for (const advanced of [false, true]) {
|
||||
});
|
||||
}
|
||||
|
||||
void test('Ixian Nexus replacement rejects unready, expansion, native Ixian and Homeworld lobbies without reconfiguring them', t => {
|
||||
void test('Ixian Nexus replacement rejects unready, expansion and native Ixian lobbies without reconfiguring them', t => {
|
||||
const { db } = fixture(t);
|
||||
const classic = createGame('PROTOTYP', newPlayer('i', 'Atreides', 'atreides'), true);
|
||||
joinGame(classic, newPlayer('e', 'Emperor', 'emperor'));
|
||||
@@ -427,10 +427,6 @@ void test('Ixian Nexus replacement rejects unready, expansion, native Ixian and
|
||||
const native = createGame('PROTOTYP', newPlayer('i', 'Ixians', 'ixians'), true, ['ix']);
|
||||
joinGame(native, newPlayer('e', 'Emperor', 'emperor'));
|
||||
for (const p of native.players) p.ready = true;
|
||||
const homeworld = applyAction(classic, classic.host, { type: 'homeworlds', enabled: true });
|
||||
for (const p of homeworld.players) p.ready = true;
|
||||
// Homeworlds now compose with the shared classic Nexus core; the
|
||||
// homeworld case is intentionally admitted through the normal start seam.
|
||||
for (const game of [unready, expansion, native]) {
|
||||
db.prepare('UPDATE rooms SET state=? WHERE code=?').run(JSON.stringify(game), game.code);
|
||||
const rooms = db.prepare('SELECT * FROM rooms ORDER BY code').all();
|
||||
@@ -735,9 +731,8 @@ void test('Harkonnen Betrayal rejects incompatible lobbies, overlays and ordinar
|
||||
game => { game.players.splice(1); },
|
||||
game => { game.players.push(...Array.from({ length: 4 }, (_, index) => newPlayer(`extra${index}`, `Extra ${index}`, 'guild'))); },
|
||||
];
|
||||
// Original Tech3+/Advanced Strongholds2+/Homeworlds now compose with the
|
||||
// shared classic Nexus core; these modules are intentionally admitted
|
||||
// through the normal start seam rather than this explicit prototype.
|
||||
// Original Tech3+/Advanced Strongholds2+/Homeworlds are now supported by
|
||||
// the shared classic Nexus core, so they are not rejection cases.
|
||||
for (const game of changes.map(change => {
|
||||
const game = structuredClone(native);
|
||||
change(game);
|
||||
|
||||
Reference in new issue
Block a user