154 lines
9.1 KiB
Markdown
154 lines
9.1 KiB
Markdown
# Moritani with Leader Skills
|
|
|
|
Connected development prototype, 21 September 2026. Basic rules, Moritani and
|
|
two through six total seats with base-faction opponents now use the full
|
|
fourteen-card Leader Skills deck. Public starts and publication remain gated;
|
|
this integrates existing effects, not complete Leader Skills compliance.
|
|
|
|
## 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](LEADER_SKILLS_RUNTIME.md#standalone-e3-module-composition--4-october-2026).
|
|
|
|
## 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](LEADER_SKILLS_RULES.md),
|
|
[Terror Assassination](MORITANI_ASSASSINATION_SNEAK.md),
|
|
[enemy alliance](MORITANI_ENEMY_ALLIANCE.md),
|
|
[ally retention](MORITANI_ALLY_RETENTION_RULES.md),
|
|
[Planetologist](PLANETOLOGIST_RULES.md) and [Diplomat](DIPLOMAT_DEFENSE.md)
|
|
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](LEADER_SKILLS_RUNTIME.md) 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](TLEILAXU_LEADER_SKILLS.md).
|
|
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:
|
|
|
|
```sh
|
|
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.
|