Aetheria release: faction-play proof is four cuts; ammunition fact F14
F14: only three weapons draw rounds, generation stocks none and stations sell none, so the Zhestokost tender loop needs its weapons to draw a commodity first (question zhestokost-ammunition). The proof splits into four cuts along the primitives, each under a Hands budget. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
9c912daa86
commit
83459f8445
2 changed files with 42 additions and 23 deletions
|
|
@ -222,7 +222,7 @@ scripting through the extension points she built into it (ruling
|
|||
`npc-scripting-may-grow`). Legacy-first still forbids CultMesh and daemon work. This
|
||||
section maps those extension points, names the smallest set of primitives that
|
||||
carries every dynamic in `Game Design/Faction Play.md` (AetheriaLore `f3e0e6d`), and
|
||||
gives the reasons for the three proof cuts (`faction-play-1` to `-3`), which are
|
||||
gives the reasons for the four proof cuts (`faction-play-1` to `-4`), which are
|
||||
typed specs in the mind. Anchors are against `origin/master` `f1dee184`, read with
|
||||
`git show` on 2026-10-03, unless the line names a lane.
|
||||
|
||||
|
|
@ -352,6 +352,17 @@ ships and drives detection by writing `EntityInfoGathered`
|
|||
(`tests/Aetheria.Shared.Tests/IffAndCombatTests.cs:51-92`). `Agents/` is under
|
||||
`ServerShared`, so the whole graph compiles into `Aetheria.Shared` (B11).
|
||||
|
||||
**F14. Ammunition is real for three weapons, and nobody is stocked.**
|
||||
- Only DeathCluster, FastBlast+- and pretty pretty bang bang carry an `AmmoType`;
|
||||
their refs were repointed in `515859cf` (`docs/cultcache-migration-cut.md:161-163`).
|
||||
Every other weapon, Zhestokost ballistics included, reloads for free.
|
||||
- `LoadoutGenerator` puts no rounds in any cargo, and station stock is drawn from
|
||||
`EquippableItemData` only (`LoadoutGenerator.cs:98-99`), so no station sells
|
||||
rounds either. An NPC carrying one of the three ammunition weapons fires its
|
||||
first magazine and then never reloads (`InstantWeapon.cs:186-197`).
|
||||
- So Zhestokost's "magazines run low, back to the tender" has no substrate until
|
||||
its weapons draw a commodity and generation stocks it.
|
||||
|
||||
### What the extension points can carry
|
||||
|
||||
| Extension point | Carries | Cannot carry |
|
||||
|
|
@ -431,7 +442,9 @@ the nearest own station, or away from the threat. It triggers on hull fraction
|
|||
(Lucent headliners, AU haulers, Alakrita, Cryonix), or on ammunition fraction
|
||||
against the count at admission. An ammunition break-off returns to the support
|
||||
ship, which transfers rounds through `TryTransferItems` (F11) until the baseline is
|
||||
restored; then the member rejoins. This carries the Zhestokost tender loop. Support
|
||||
restored; then the member rejoins. This carries the Zhestokost tender loop, once
|
||||
Zhestokost weapons draw a commodity and generation stocks it (F14, question
|
||||
`zhestokost-ammunition`). Support
|
||||
ships use their own role doctrine: the tender follows the column's rear and flees
|
||||
early, and the column, anchored to it, follows it home.
|
||||
|
||||
|
|
@ -508,21 +521,25 @@ writer, the director becomes an input to the flight (a scripted order for named
|
|||
members that outranks doctrine), not a second writer. The tutorial cut owns that
|
||||
hook; this map records the boundary.
|
||||
|
||||
**Why the proof is three cuts.**
|
||||
**Why the proof is four cuts.** One cut would be about 2,500 lines with tests, well
|
||||
over a Hands budget, so it is split along the primitives:
|
||||
- `faction-play-1` lands the owner: doctrine, the flight as the only writer of
|
||||
`Target` and `Task`, the engagement rule with grace, hail and compliance, hull
|
||||
break-off, ping cadence, and the follow and flee states. It already makes
|
||||
Zhestokost hail before it sprays, Lucent ping and protect the brand, and AU
|
||||
`Target` and `Task`, the engagement rule with grace, hail and compliance, the
|
||||
follow state, and per-doctrine range and fire threshold. Zhestokost already hails
|
||||
before it sprays, Lucent announces itself and fires only on good odds, and AU
|
||||
escorts shoot the first contact.
|
||||
- `faction-play-2` adds slots and the duel. It needs `feedback-1`'s absorb.
|
||||
- `faction-play-3` adds roles, support generation, anchor and leash, and
|
||||
ammunition and rearm: the Zhestokost tender and the AU haulers. It ends with the
|
||||
operator's playtest of the three factions.
|
||||
- `faction-play-2` adds slots and the duel, hull break-off with the flee state, and
|
||||
ping cadence: Lucent whole. It needs `feedback-1`'s absorb.
|
||||
- `faction-play-3` adds roles, support generation, anchor and leash: the tender the
|
||||
column will not leave, and the AU haulers that run while their escorts stay close.
|
||||
- `faction-play-4` makes ammunition real for Zhestokost and closes the tender loop
|
||||
(question `zhestokost-ammunition`, F14). It ends with the operator's playtest of
|
||||
the three factions.
|
||||
|
||||
Each is sized under 200k Hands tokens. All three wait for `codex/mining` (it
|
||||
changes `Target`'s type and edits `Minion.cs`) and `codex/scenarios` (it rewrites
|
||||
admission in `Zone.cs`) to merge, because the first cut rewrites exactly those
|
||||
lines.
|
||||
Each is sized at roughly 550 to 720 lines with tests, under 200k Hands tokens. All
|
||||
four wait for `codex/mining` (it changes `Target`'s type and edits `Minion.cs`) and
|
||||
`codex/scenarios` (it rewrites admission in `Zone.cs`) to merge, because the first
|
||||
cut rewrites exactly those lines.
|
||||
|
||||
### Prior art
|
||||
|
||||
|
|
|
|||
|
|
@ -164,15 +164,17 @@ The typed target carries these as labelled statements. The reasons:
|
|||
the existing state graph through two new motor states.
|
||||
|
||||
The strand's first deliverable is the note's smallest proof: Zhestokost, Lucent
|
||||
and AU in one run, which a playtester can describe without being told. It is three
|
||||
and AU in one run, which a playtester can describe without being told. It is four
|
||||
cuts:
|
||||
1. doctrine, the flight, engagement with grace and hail, hull break-off and ping
|
||||
cadence (`faction-play-1`);
|
||||
2. pack slots and Lucent's duel (`faction-play-2`, after `feedback-1`);
|
||||
3. support ships, anchor and leash, and Zhestokost's rearm loop
|
||||
(`faction-play-3`).
|
||||
1. doctrine, the flight, and engagement with grace, hail and compliance
|
||||
(`faction-play-1`);
|
||||
2. pack slots and Lucent's duel, hull break-off and ping cadence
|
||||
(`faction-play-2`, after `feedback-1`);
|
||||
3. support ships, anchor and leash (`faction-play-3`);
|
||||
4. Zhestokost ammunition and the rearm loop, ending in the playtest
|
||||
(`faction-play-4`).
|
||||
|
||||
All three wait for the mining and scenarios lanes to merge. Relations, track
|
||||
All four wait for the mining and scenarios lanes to merge. Relations, track
|
||||
sharing between factions, distress calls and target priority come after the
|
||||
proof. The feedback and content strands leave room for faction colour and
|
||||
livery, and decide nothing about them.
|
||||
|
|
|
|||
Loading…
Reference in a new issue