Verify native zero-marker battle continuation
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-29 04:59:34 +11:00
1 parent 7e3d745807
commit 4aecf8eb9c
4 files changed
+42 -4

No files matched your search

+12 -3
View File
@@ -17,6 +17,15 @@ open mode gates.
## Current checkpoint and work ## Current checkpoint and work
**Native zero-marker battle continuation — 29 October. Prototyped / Partial.**
The existing staged zero-reserve native No-Field journey now completes the
actual Traitor decision and final battle opportunity, preserving the physical
pool with no phantom forces. Seventeen related cases and quick type/lint
checks pass. A publisher-source recheck did not resolve Reinforcements on a
Traitor win; the provisional policy remains. This is focused playability
evidence, not complete Homeworld or deployed acceptance.
[Scope](RICHESE_NO_FIELD_RULES.md#advanced-native-homeworld-marker--29-october-2026).
**Advanced native Homeworld No-Field — 29 October. Prototyped / Partial.** **Advanced native Homeworld No-Field — 29 October. Prototyped / Partial.**
A deployed marker may ship between a foreign World and native Richese, remain A deployed marker may ship between a foreign World and native Richese, remain
concealed and later leave or reveal. Native physical reserves are not duplicated concealed and later leave or reveal. Native physical reserves are not duplicated
@@ -32,9 +41,9 @@ user-authorized Advanced rulebook; Basic retains its original guard. Guild uses
the common Advanced route even if its native transport is canceled, while the common Advanced route even if its native transport is canceled, while
already-open permission responses retain their continuation. A Homeworld battle already-open permission responses retain their continuation. A Homeworld battle
plan guide also carries the selected Reinforcements reserve mix. Ninety-four plan guide also carries the selected Reinforcements reserve mix. Ninety-four
related cases, quick type/lint checks and the production build pass. Concealed related cases, quick type/lint checks and the production build pass. The later
No-Field return, wider provisional No-Field return is described above; wider interactions and deployed
interactions and deployed acceptance remain open. See [return scope](HOMEWORLD_RULES.md#advanced-native-homeworld-return--29-october-2026) acceptance remain open. See [return scope](HOMEWORLD_RULES.md#advanced-native-homeworld-return--29-october-2026)
and [guide scope](REINFORCEMENTS_RUNTIME.md#homeworld-plan-guide-with-chosen-fees--29-october-2026). and [guide scope](REINFORCEMENTS_RUNTIME.md#homeworld-plan-guide-with-chosen-fees--29-october-2026).
**Reinforcements reserve choice — 29 October. Prototyped / Partial.** **Reinforcements reserve choice — 29 October. Prototyped / Partial.**
+12
View File
@@ -170,6 +170,18 @@ now have connected development prototypes. The linked contracts supersede the
historical runtime-absence statements above within their explicit boundaries. historical runtime-absence statements above within their explicit boundaries.
Reinforcements and complete combined-module acceptance remain unfinished. Reinforcements and complete combined-module acceptance remain unfinished.
## Reinforcements Traitor source recheck — 29 October 2026
The [publisher-authored base rulebook](https://cdn.1j1ju.com/medias/37/57/71-dune-rulebook.pdf#page=11)
states that a successful Traitor caller loses nothing regardless of battle
plans. The later printed Reinforcements face requires three reserves moved to
Tanks; the Ecaz & Moritani rulebook's Treachery FAQ discusses Harass, without a
direct Reinforcements/Traitor clarification found in the reviewed material.
Both precedence readings remain plausible. The existing all-outcome charge is
still provisional; this recheck does not establish a publisher ruling or a
user decision. The older designer-linked April 2020 FAQ could not be inspected:
the publisher server returned HTTP 403, and its date predates the expansion.
## 14 September Reinforcements cost review ## 14 September Reinforcements cost review
The printed close-up at [4:24](https://www.youtube.com/watch?v=P9ZTV1uZqsM&t=264s) The printed close-up at [4:24](https://www.youtube.com/watch?v=P9ZTV1uZqsM&t=264s)
+1 -1
View File
@@ -3334,7 +3334,7 @@ These are unresolved in the cited records. Do not infer an answer from elapsed t
| --- | --- | --- | | --- | --- | --- |
| Advanced advisor / physical Ornithopter | Supplied physical28/logical26 and10/logical8 prevent advisors from granting city access, rather than banning this physical card. Both printed modes now accept advisors through normal stance/arrival/locks/cohort rules. Range3 is independent; two-group range uses current fighter city access at each group. Empty advisor arrival can flip and grant access; advisor-only city cannot. This source cutover supersedes the older guard, not a publisher card FAQ. Wider combinations and final acceptance remain due. | [Source cutover and scoped proof](RICHESE_ORNITHOPTER_ENGINE_AUDIT.md#advanced-advisor-card-movement--18-october-2026) | | Advanced advisor / physical Ornithopter | Supplied physical28/logical26 and10/logical8 prevent advisors from granting city access, rather than banning this physical card. Both printed modes now accept advisors through normal stance/arrival/locks/cohort rules. Range3 is independent; two-group range uses current fighter city access at each group. Empty advisor arrival can flip and grant access; advisor-only city cannot. This source cutover supersedes the older guard, not a publisher card FAQ. Wider combinations and final acceptance remain due. | [Source cutover and scoped proof](RICHESE_ORNITHOPTER_ENGINE_AUDIT.md#advanced-advisor-card-movement--18-october-2026) |
| Ornithopter / Hajr | Standing choose-recommended provisionally replaces one unused ordinary/Hajr entitlement by range-three or two distinct normal groups, with no retroactive credit; a later Hajr may reuse those forces. Advanced adopts supplied physical39/logical37 immediately-after-play timing with explicit online/card-group interpretation; Basic retains broader face timing. The inventory has one physical Hajr, not several copies. A genuine paid Box retrieval now permits replaying that held card for another allowance because no once-per-turn cap is established. This is an explicit replay interpretation; other recovery producers and full combinations remain open. | [Original source cutover](RICHESE_ORNITHOPTER_ENGINE_AUDIT.md#hajr-and-unused-movement-entitlements--18-october-2026) · [Physical replay and counted Cunning](RICHESE_ORNITHOPTER_ENGINE_AUDIT.md#recovered-hajr-replay--18-october-2026) | | Ornithopter / Hajr | Standing choose-recommended provisionally replaces one unused ordinary/Hajr entitlement by range-three or two distinct normal groups, with no retroactive credit; a later Hajr may reuse those forces. Advanced adopts supplied physical39/logical37 immediately-after-play timing with explicit online/card-group interpretation; Basic retains broader face timing. The inventory has one physical Hajr, not several copies. A genuine paid Box retrieval now permits replaying that held card for another allowance because no once-per-turn cap is established. This is an explicit replay interpretation; other recovery producers and full combinations remain open. | [Original source cutover](RICHESE_ORNITHOPTER_ENGINE_AUDIT.md#hajr-and-unused-movement-entitlements--18-october-2026) · [Physical replay and counted Cunning](RICHESE_ORNITHOPTER_ENGINE_AUDIT.md#recovered-hajr-replay--18-october-2026) |
| Reinforcements cost | The earlier all-outcome versus sole-Traitor-winner question remains unanswered. The bounded prototype provisionally charges on every revealed outcome, chooses normal reserves first and counts the transfer as battle losses. Same-plan Harass pays the original quote before returns; future returns cannot fund or change it. Native Advanced Occupy Stone/Mirror composition keeps the fee but ignores +2 normal score in physical-token comparison. These are product interpretations, not a new publisher ruling or user answer. Other profile/module gates remain; eligibility never depends on concealed Traitors. | [Source review](ECAZ_TREACHERY_RULES.md#14-september-reinforcements-cost-review) · [Combined policy](REINFORCEMENTS_RUNTIME.md#combined-utility-plan--16-october-2026) · [Stone composition](REINFORCEMENTS_RUNTIME.md#native-stone-composition--16-october-2026) | | Reinforcements cost | The earlier all-outcome versus sole-Traitor-winner question remains unanswered. The bounded prototype provisionally charges on every revealed outcome and counts the transfer as battle losses. The holder chooses an available ordinary/special mix; older sealed plans without a choice retain the former normal-first default. Same-plan Harass pays the original quote before returns; future returns cannot fund or change it. Native Advanced Occupy Stone/Mirror composition keeps the fee but ignores +2 normal score in physical-token comparison. These are product interpretations, not a new publisher ruling or user answer. Other profile/module gates remain; eligibility never depends on concealed Traitors. | [Source review](ECAZ_TREACHERY_RULES.md#14-september-reinforcements-cost-review) · [Combined policy](REINFORCEMENTS_RUNTIME.md#combined-utility-plan--16-october-2026) · [Stone composition](REINFORCEMENTS_RUNTIME.md#native-stone-composition--16-october-2026) |
| Harass / Stone Burner | The earlier keep-gated versus compare-after-withdrawal question is unanswered. Standing choose-recommended provisionally compares counters left after successful withdrawal. Opposing Traitor cancels the return; original fixed Occupy commitment stays. Public preflight considers possible fixed Ecaz withdrawal without hidden custody. Clean Ix priority follows its separate explicitly provisional contract; new physical commitments do not remove other profile/module limits. This is implementation interpretation, not a new publisher ruling or user answer. | [Withdrawal](HARASS_WITHDRAW_RUNTIME.md#provisional-stone-burner-timing--16-october-2026) · [Clean Ix priority](MIRROR_WEAPON_ENGINE_AUDIT.md#clean-selected-ix-composition--16-october-2026) | | Harass / Stone Burner | The earlier keep-gated versus compare-after-withdrawal question is unanswered. Standing choose-recommended provisionally compares counters left after successful withdrawal. Opposing Traitor cancels the return; original fixed Occupy commitment stays. Public preflight considers possible fixed Ecaz withdrawal without hidden custody. Clean Ix priority follows its separate explicitly provisional contract; new physical commitments do not remove other profile/module limits. This is implementation interpretation, not a new publisher ruling or user answer. | [Withdrawal](HARASS_WITHDRAW_RUNTIME.md#provisional-stone-burner-timing--16-october-2026) · [Clean Ix priority](MIRROR_WEAPON_ENGINE_AUDIT.md#clean-selected-ix-composition--16-october-2026) |
| Stone mixed-force allocation timing | The older timing question remains unanswered by a source. Under 14 October choose-recommended, new original outcome-ambiguous Stone/Mirror battles provisionally commit each ambiguous side's undialed physical total after revealed modes/actual withdrawal and decisive Traitor/explosion branches. Storm-order owners choose privately; every original required value stays sealed until all commit. The eventual winner retains all legal typed casualty choices with the count. Ordinary/invariant and unstamped legacy frames keep their existing path. Publisher physical-count text and supplied Advanced physical12/logical10 casualty timing provide the numerical rules, not this online commitment convention. | [Source, versioned procedure and bounded proof](STONE_BURNER_ENGINE_AUDIT.md#outcome-changing-physical-totals--18-october-2026) | | Stone mixed-force allocation timing | The older timing question remains unanswered by a source. Under 14 October choose-recommended, new original outcome-ambiguous Stone/Mirror battles provisionally commit each ambiguous side's undialed physical total after revealed modes/actual withdrawal and decisive Traitor/explosion branches. Storm-order owners choose privately; every original required value stays sealed until all commit. The eventual winner retains all legal typed casualty choices with the count. Ordinary/invariant and unstamped legacy frames keep their existing path. Publisher physical-count text and supplied Advanced physical12/logical10 casualty timing provide the numerical rules, not this online commitment convention. | [Source, versioned procedure and bounded proof](STONE_BURNER_ENGINE_AUDIT.md#outcome-changing-physical-totals--18-october-2026) |
| Recruits late accounting and rates | The earlier one/two-further-free question remains unanswered. The prototype preserves paid spice, deducts recorded free usage from the doubled current rate and all returns from the total cap: two-free/one-paid Atreides can take two more free. Clean classic Homeworlds now provisionally recheck native thresholds on separate accepted requests, retaining completed prices/classifications; this is not a numerical user ruling or newly found timing FAQ. Unknown ledgers, pending repricing, later Fremen grants and same-turn replay remain guarded. | [Source alternatives](RECRUITS_RULES.md), [current native runtime](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026) | | Recruits late accounting and rates | The earlier one/two-further-free question remains unanswered. The prototype preserves paid spice, deducts recorded free usage from the doubled current rate and all returns from the total cap: two-free/one-paid Atreides can take two more free. Clean classic Homeworlds now provisionally recheck native thresholds on separate accepted requests, retaining completed prices/classifications; this is not a numerical user ruling or newly found timing FAQ. Unknown ledgers, pending repricing, later Fremen grants and same-turn replay remain guarded. | [Source alternatives](RECRUITS_RULES.md), [current native runtime](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026) |
@@ -210,6 +210,23 @@ void test('a concealed native zero marker with no reserves creates public battle
'The removed zero marker creates no physical native presence after reveal.'); 'The removed zero marker creates no physical native presence after reveal.');
assert.deepEqual(inventory(game),originalInventory); assert.deepEqual(inventory(game),originalInventory);
homeworldGameIntegrity(game); homeworldGameIntegrity(game);
// Resolve the native Homeworld's actual Traitor decision and shared final
// opportunity, rather than stopping when the zero marker is revealed.
game = applyAction(game,owner,{type:'traitorCall',call:false});
while (game.battle?.outcomeWindow && !game.battle.outcomeWindow.closed) {
const window = game.battle.outcomeWindow;
const actor = [window.attacker,window.defender].find(id=>!window.ready.includes(id));
assert.ok(actor, 'The final battle opportunity must have an unfinished combatant');
game = applyAction(game,actor,{type:'battleOutcomeReady',event:window.event});
}
assert.equal(game.battle,null, 'The zero-reserve native battle must finish');
assert.equal(game.lastBattleContext!.territory,native);
assert.equal(player(game,owner).noField!.deployed,null);
assert.equal(player(game,owner).reserves,0);
assert.deepEqual(group(game,native),{normal:0,elite:0});
assert.deepEqual(inventory(game),originalInventory);
homeworldGameIntegrity(game);
}); });
void test('all four legal bot profiles offer a foreign-to-native concealed marker return', () => { void test('all four legal bot profiles offer a foreign-to-native concealed marker return', () => {