Files
Dune/docs/MORITANI_LEADER_SKILLS.md

13 KiB
Raw Permalink Blame History

Moritani with Leader Skills

Connected development prototype, updated18 October2026. Registered selected native Ecaz/Moritani with E1/E2/classic Basic/Advanced seats use all14 without an incidental Nexus or single-family dependency. Original Worlds/phase/independent cards compose; normal access is a preview, not full rules/publication acceptance.

Current mixed-native continuation: actual CHOAM World source3/commit1 remains in Tanks after the normal win; Mori pays no partner fee. Different unused trained Frankos Aru4 dies once and gets one physical Mentat replacement. Basic gains no assassination. Original Nexus/Discovery/Semuta, shared Duke and Advanced role guards remain. Registered scope and609/609 proof.

Native World continuation — 17 October 2026

Standalone/paired World Skills now retains optional independent cards and original phase modules without a Nexus dependency; bare native World cards also work without Skills. Real World-origin shipments, separate native fee/H returns, different unused trained-disc assassination and one Mentat replacement retain original custody. Basic gains no assassination; shared Duke and Advanced role restrictions remain. Current World contract and459/459 proof.

Paired native E3 Skills — 17 October 2026

Both native factions now compose ordinary all14 Skills without Nexus, optionally independent cards and original Tech3+/Advanced Strongholds2+. Native6/6 and Loyalty precede the actual battle. Moritani loses against Ecaz, reveals unused trained Ecaz4, returns its exact skill once and receives one physical replacement at Mentat. The existing fixture/runtime pair exposes paired:true; standalone defaults, Basic without assassination and original Advanced Harkonnen/Duke guards stay. Current scope, controls and323/323 proof. Current phase composition and471/471 proof also exercises a plain paired no-card phase loss through winner Tech and one actual Mentat replacement, without inventing an extra module dependency.

Independent Treachery composition — 17 October 2026

Fresh standalone Moritani/classic all14 Skills now retains the independent Recruits, Reinforcements and Harass & Withdraw variant, Basic/Advanced2–6, with optional original Tech3+/Advanced Strongholds2+. Original36-card setup and five eligible assignment discs, private offers, Traitors and six-force placement remain. Advanced initializes the native assassination advantage; Basic does not. The original Advanced Harkonnen, shared-Duke and mixed-family Skills guards remain.

Card fees/returns and winner skills continue before native assassination. The fee is three card-user reserves, never rescued battle dial; a successful Harass returns only that user's actual undialed forces. An eligible unused opposing trained disc returns its skill once on assassination, pays printed bounty and retains the original single Mentat replacement. Source timing interpretations remain provisional as documented in the card contracts.

Evidence: tests/fixture-moritani-independent-skills.ts and tests/moritani-independent-skills-runtime.test.ts. The genuine normal-start programme pays the native fee, returns exact sectors, loses, reveals unused Master Bewt3, returns his trained skill once and draws one replacement at actual Mentat. Four real policies choose that same legal card. Basic resolves without assassination; plain no-card/no-Skills Harkonnen retains printed4 and native capture. Frozen25-file274/274, types/lint/build and actual390px original module setup pass. Conserved hands/Traitors and scoped entropy are labelled; no full-game, calibration, deployed or played-save assurance claim follows.

Standalone module composition — 4 October 2026

The same original standalone profile now retains canonical unused Tech Tokens in Basic/Advanced3..6 and Stronghold Cards in Advanced2..6, optionally both. Exact ecaz33/all14 and original native five-disc/setup remain; Advanced still excludes Harkonnen and preserves original assassination/normal-call forfeiture. Normal unused Guild Suk saves one before eligible Master Bewt3 assassination; the exact skill returns once, printed3 pays and original winner rewards remain. Losing Moritani retains actually played Tuek Worthless income/support. Actual Mentat replaces the revealed physical card once; Collection remains separate. No E3 pair, mixture, allied Occupy skill, public start or played-save conversion. Human390px AL6WCG8B v13/Mentat verifies printed14→17 bounty, one private Caid replacement and original physical/Tech outcomes. Read the combined contract and evidence.

Advanced assassination composition — 4 October 2026

Fresh local Advanced leader-skills tables now compose all fourteen physical skills with the existing Moritani assassination preview: native Moritani and classic opponents except Harkonnen, two through six unique seats, exactly the ecaz family deck and no unrelated modules. Original five native assignment discs, starting cards, private offers, traitors and six-force placement remain. Existing Basic Moritani/Harkonnen entries are unchanged. Ecaz/Duke skill assignment and further native/module combinations are not opened by this scope.

Winner skills precede faction powers. A pending original Suk rescue or Rihani choice finishes before the loser receives Assassinate Leaders. The saved unspent receipt waits without exposing premature private choices; its later continuation cannot replay already completed casualties. The winning battle disc stays excluded under the original assassination contract. A different eligible native trained disc may die: its exact skill returns once and Moritani receives only its printed bounty. Original public set-aside and one private Mentat replacement remain; normal traitor revelation still forfeits assassination for the whole game, not just this turn.

Existing Terror death, eligible own revival/private replacement, normal+1 versus trained+3, native Suk rescue, Enemy of My Enemy and mandatory ally retention use original handlers. Ordinary winning Worthless cards may be retained; only the existing compulsory uses must be discarded. Only the battle winner receives killed-disc bounties. Explicit private Mentat and separate normal Banker opt-ins also compose with this native preview; no new Terror placement fee exists.

Bounded evidence: affected64/64 and CLI2/2 pass. Five genuine games finish1,425 accepted actions/no rejection,37 JSON continuations and24 battles; none opens assassination, so assassination evidence comes from controlled cases, not those natural histories. Nine controlled runtime cases exercise Suk/Rihani-before- assassination, manual/four-policy trained-disc death and one actual Mentat replacement, plus original private Mentat and normal Banker support income. Controlled positions are declared, not represented as natural phase histories.

Final native/guide25/25, types/lint/build and original CLI 7JGUWMAP v6 pass. Human390px TQH86DL4 v20 uses original admitted IDs and the declared controlled battle position, then actual normal-role plans and Hasimir6 reveal, physical Warmaster return, winner card disposal and one private native Mentat replacement. Wallet18/Tanks8/one new held Traitor remain after refresh; the owned enlarged face and detailed guide are readable at390px.

Public configuration and setup

The existing leader-skills local initializer accepts exactly ['ecaz'], Basic rules, Moritani plus base factions, and no other optional modules. It does not enable Ecaz, Advanced assassination, the separate Ecaz Treachery variant, Homeworlds, Nexus, Discoveries, Tech Tokens or Stronghold Cards with this roster. Existing base and CHOAM/Richese profiles retain their boundaries. Admission uses only public configuration, never hidden hands or the random deal.

Starting Treachery Cards and the ordinary private two-card skill offers precede Traitors. Every physical skill remains eligible for Basic Moritani assignment; there is no reduced deck or card-specific admission workaround. Moritani places its six starting forces after the other setup choices. Existing human controls, private offers, public assignments and minimal legal AI choices are reused.

Connected interactions

Shared public-profile checks connect Banker spending, Diplomat base-defense copying, Sandmaster ground/worm collection, Smuggler shipping/battle collection, Bureaucrat payment redirection and Planetologist movement across engine, projection, controls and bots. Suk casualty rescue, Rihani exchanges and Sandmaster victory spice use the same expanded battle boundary. Printed leader strength stays distinct from skill bonuses and bounty calculations.

Terror Assassination kills an ordinary skilled leader under the existing Terror rules and returns its exact physical skill once. A later own-leader revival offers an optional draw before revealing either card; the drawn choice remains private through saved continuation. Sabotage affects Treachery custody only. An Enemy of My Enemy alliance changes allies without transferring assignments. The losing ally's retention choice excludes a used Planetologist Special and a Diplomat copied Worthless card, since both must be discarded after use.

These are compositions of the recorded Leader Skills contract, Terror Assassination, enemy alliance, ally retention, Planetologist and Diplomat contracts. No new publisher ruling is asserted. Existing Atomics/Extortion, exceptional assassination pools and competing-arrival questions remain explicit.

Remaining work

The Leader Skills runtime retains guarded default Banker activation, ordinary Mentat questioning, modified Smuggler collection, captured replacement entitlement and other source gaps. Its bounded Diplomat retreat is connected for supported battles, not modified or simultaneous effects. Private Mentat and normal Banker income are available only under their separate explicit opt-ins; ordinary Mentat activation and recorded custody questions remain pending. Basic Moritani admission does not certify every valid module combination. The bounded Advanced composition above supersedes its earlier admission barrier; Ecaz and further roster/module work remain. Native Tleilaxu has its separate Advanced foreign-ghola contract. Full AI strategy and difficulty calibration still wait for feature completion.

Reproducible entry and verification

Create a fresh Basic lobby with Ecaz & Moritani selected, seat Moritani and only base opponents, and ready every human. Preserve the room cookie and run the existing backed-up, version-checked local tool:

node --import tsx tools/start-prototype.ts --profile leader-skills \
  --db PATH_TO_LOCAL_D1_SQLITE --room EIGHT_CHARACTER_CODE \
  --version CURRENT_LOBBY_VERSION --out /private/new-moritani-skills
node --import tsx tools/faction-games.ts --profile moritani-skills \
  --out /private/new-moritani-skills-samples
npm test -- moritani-skills

The sample profile runs Basic games at two through six seats, adding Emperor, Guild, Harkonnen, Fremen and Bene Gesserit in that order. It preserves all four existing difficulty profiles and verifies Treachery, skill, Traitor and force custody, rejected-action immutability and periodic JSON/private-view restoration. Separate genuine-setup focused tests include Atreides. These are legal-play samples, not calibration or exhaustive roster/skill coverage. Interrupted games can use the existing --resume path, which retains the full module and roster.

Focused regressions exercise every physical skill assignment, public guards, movement controls, legal bot choices, Terror death/Sabotage, revival, payment, battle effects, real alliances and mandatory retention exclusions. Authenticated in-memory SQLite restart and concurrent choices verify one physical assignment, private offers, preserved seats and the final Moritani placement. Conserved staged phase/battle positions are labeled rather than claimed as played games.

Private source-bound final checks, sample results, browser observations, saved-game preservation and Git delivery live under 20260921-moritani-skills outside the checkout. Actual outcomes and remaining limitations are recorded in the commit message; no saved game is reset or discarded for verification.