re: the player-facing chatter partition; correcting the wingman claim

The 13 tables that voice every player-facing event are all
PresetMessage_Katana_*, the PLAYER's own sets -- unit-group-table.md already
names the link (DeltaSaber_T_Player carries msg=MessageSet_Katana).  Exact
partition: 13 voice all 14 events, 131 voice none, 0 voice some, and no
non-Katana table voices any of them.  CharacterKATANA is the only speaker
exclusive to the set.

Corrects preset-message-rules.md, which called those the wingman tables.  The
wingman roster is owned by isl-condition-builtins.md (UNITS: Bird1-Sandra ...
Rhino2-Katana, Rhino3-Ellen) and needed no experiment.

Residual: Katana_09_S10-1 and Katana_14_S16-2 voice none of the 14.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
Claude (auto)
2026-08-27 17:42:28 +00:00
parent b710c9b9f0
commit 36f97c6322
5 changed files with 155 additions and 7 deletions

View File

@@ -67,10 +67,12 @@ mismatches. That is what pins the pairing. The second element of each pair is
The full census with per-event table counts is in the artefact. The shape of
that census is itself informative:
* **Player-facing events are voiced only by the wingman tables.** Every
`LOCKON_1..12`, `LOCKON_UP`, `LOCKON_DOWN`, `PLAYER_HP_LESS_10/30/50` and
`PLAYER_AMMO_LESS_00/10/40` record carries lines in **exactly 13** of the 144
tables the same 13 as `ORDER_WINGMAN_{FORMATION,ATTACK,COVER,EXTENDED}`.
* **Player-facing events are voiced only by the PLAYER's own tables** — see
"the player-facing partition" below. Every `LOCKON_1..12`, `LOCKON_UP`,
`LOCKON_DOWN`, `PLAYER_HP_LESS_10/30/50` and `PLAYER_AMMO_LESS_00/10/40`
record carries lines in **exactly 13** of the 144 tables, the same 13 as
`ORDER_WINGMAN_{FORMATION,ATTACK,COVER,EXTENDED}`. (❌ An earlier revision of
this document called those "the wingman tables". They are not.)
* The squad/squadron order events carry lines in **7** tables each.
* Generic combat events are near-universal: `DAMAGED_BY_PLAYER_GREATER_50` 128,
`DAMAGED` 124, `HP_LESS_10` and `HP_LESS_50` 121 each.
@@ -532,8 +534,58 @@ among *higher*-priority pending nodes) that makes `+20` a ducking level: raised
while a higher-priority line plays, released when it retires. The exact
attenuation is not established here.
## ✅ The player-facing partition — and a correction
**Settled 2026-08-27.** The 13 tables that voice every player-facing event are
**all `PresetMessage_Katana_NN_S<stage>-<phase>.tbl`** — the player character's
own chatter sets.
| | |
|---|---|
| tables voicing **all 14** player-facing events | **13** |
| tables voicing **none** | **131** |
| tables voicing **some** | **0** |
Zero partials: the split is exact, not a tendency. And it is not merely that few
others voice them — **none of the 129 non-Katana tables voices *any* of the 14**.
There are **15** Katana tables in total; the two that voice none are
`Katana_09_S10-1` and `Katana_14_S16-2`, and they are all-or-nothing like
everything else. Why those two stage-phases opt out is not established.
Of the 15 speakers named across the 13, **`CharacterKATANA` is the only one
exclusive to them**; the other 14 all appear in other tables too.
[`unit-group-table.md`](unit-group-table.md) supplies the link that makes this
make sense — the player's own flight in Stage 02 reads
```
unit=UN_f001_TCAF_DeltaSaber_T_Player msg=MessageSet_Katana id=Character_Player_Test
unit=UN_f001_TCAF_DeltaSaber_T msg=MessageSet_Ellen id=ELLEN
```
so `MessageSet_Katana` is the message set attached to the **player craft**.
`LOCKON_*` is the player's own lock-on callout, `PLAYER_AMMO_LESS_*` the player's
own ammunition, and `ORDER_WINGMAN_*` the player *issuing* an order — all of
which belong on the player's set and nowhere else.
### ❌ Correction, and the doc that already owned the question
The question this iteration set out to answer — "which of the 49 speakers are
wingmen" — was **already answered elsewhere and did not need this experiment**.
[`isl-condition-builtins.md`](isl-condition-builtins.md) owns it: the `UNITS`
record in `GP_HANGAR_ARSENAL.pak` is seven fields pairing a craft slot with a
pilot — `Bird1-Sandra`, `Bird2-Billy`, `Bird3-Antonius`, `Bird4-Carl`,
`Rhino1-Raymond`, `Rhino2-Katana`, `Rhino3-Ellen` — and it names that **the
wingman roster**. [`hangar-loadout-system.md`](hangar-loadout-system.md) owns the
`PlayerSET_*` rows that go with it.
So the earlier phrasing here was wrong twice over: the 13 are the **player's**
tables, not wingman tables, and the wingman roster is a separate, already-settled
list in which `Rhino2-Katana` is the player's own slot.
## 🟡 Not settled
* The *policy* the seven fields drive — see "what this does not settle" above.
* Which of the 49 speakers is a wingman — the "13 tables" partition above is a
count, not a verified roster.
* Why `Katana_09_S10-1` and `Katana_14_S16-2` opt out of the player-facing
events entirely.