Preserve committed Guild transport through advisor conversion responses
Offer mandatory advisor conversion prevention after Guild cross-shipment and reserve returns. Keep original permission/rate/income, payment, physical pieces and shipment use; bind the exact group to one transport parent and resume original arrival/Intrusion once. Ordinary movement stays unused and the existing provisional continuously-alone duration remains. Preserve old ground receipts, private projection behavior and all transport/module guards. Validation: 17 files243/243, types/lint/build, eight native transport/response/GameTable SSR journeys and eight existing-profile paths. Genuine36/42-action sources earn original counters/cards and actual paid-shipment Intrusion. Preserve the unaffordable full-price cross outcome and prove the affordable return. No saved-room/D1/restart/deployment operation; broader producers, full modes and browser/deployed acceptance remain open.
This commit is contained in:
1 parent
3aca64412f
commit
d0f52c7bae
13 files changed
+805
-43
No files matched your search
@@ -30,7 +30,9 @@ for (const kind of ['arrival', 'departure'] as const) {
|
||||
assert.deepEqual(f.game, before);
|
||||
assert.equal(pending.response?.kind, 'advisorFlip');
|
||||
assert.equal(pending.response?.automaticAdvisorFlip?.territory, f.territory);
|
||||
assert.equal(pending.response?.automaticAdvisorFlip?.mover, f.actor);
|
||||
const source = pending.response?.automaticAdvisorFlip;
|
||||
assert.ok(source?.producer === 'groundMovement');
|
||||
assert.equal(source.mover, f.actor);
|
||||
assert.equal(player(pending, f.actor).moved, player(before, f.actor).moved + 1);
|
||||
assert.equal(player(pending, f.actor).forces[f.from], undefined);
|
||||
assert.equal(player(pending, f.actor).forces[f.to], f.amount);
|
||||
|
||||
Reference in new issue
Block a user