Martian Football: the second scenario is playable

The setup menu gains a SCENARIO group. Picking Football relayouts the
menu live: the track list swaps to the football-legal set (drops
Paingod Passage and the race build of Freezemoon Freeway, adds the
football build headmf - RPConfig per-scenario invalid lists), the
COLOR and BADGE columns become TEAM and POSITION, and the title
reads MARTIAN FOOTBALL.

The egg builder was restructured around one flat pilot table so both
scenarios share it. Football emits scenario=football, per-pilot team=
and position= entries, and the [teams] / [team::X] / [pilots::X] /
[teambitmap] blocks in RPFootballMission layout (team name bitmaps
generated by the same GDI plasma renderer as pilot names). Colors are
derived rather than chosen, as the arcade did it: the runner wears the
team runner color, crushers and blockers the team color. Multi-pod
games alternate pilots across two teams and give each team exactly one
runner, honoring the host own position pick.

Verified end to end: Football launches from the menu, the engine loads
the football mission (the cockpit shows the RUNNER - GO FOR POINTS
panel), the console marshals it to a scored finish, and the Death Race
path still passes its regression unchanged.

Known gap: lobby members cannot pick their own team or position yet -
the host pick seeds a deterministic assignment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-24 19:42:33 -05:00
co-authored by Claude Fable 5
parent 0b84b32486
commit 3194d3f973
4 changed files with 397 additions and 105 deletions
+20 -8
View File
@@ -155,12 +155,24 @@ launch flow, no in-game rejoin). Useful as a dev tool, not the product.
**C. Hybrid:** in-engine UI, but mission/egg logic in a small shared C++
library so a dev console tool and the game share one egg builder.
### Open decisions
### Open decisions — all resolved
1. Front end location — Option A (in-engine, cockpit-rendered) confirmed?
2. v1 scenario scope — Death Race only, or Football (needs teams UI) too?
3. Results screen — post-race on the cockpit displays (replaces printout)?
4. Steam model — lobby-owner-as-console confirmed? (Implies owner migration
handling later; the egg re-issue path makes host migration plausible.)
5. Pilot identity — Steam persona as pilot name; vehicle/color/badge
persisted per player (Steam Cloud later)?
1. Front end location — Option A (in-engine) **confirmed and shipped**.
2. v1 scenario scope — **both scenarios shipped** (2026-07-24). The setup
menu has a SCENARIO group; picking Football swaps the map list to the
football-legal set (no `pain`/`headoff`, adds `headmf`), replaces the
COLOR/BADGE columns with TEAM/POSITION, and the egg builder emits
`scenario=football`, per-pilot `team=`/`position=`, and the
`[teams]` / `[team::X]` / `[pilots::X]` / `[teambitmap]` blocks in
RPFootballMission's layout. Colors are derived, not chosen: the
runner wears the team's runner color, everyone else the team color.
Multi-pod games alternate pilots between two teams and auto-assign
one runner per team (the host's own position pick is honored).
*Open:* lobby members cannot yet choose their own team/position —
the host's pick seeds a deterministic assignment.
3. Results screen — **shipped**, on the cockpit displays, with the owner
publishing the score sheet to lobby members.
4. Steam model — lobby-owner-as-console **confirmed and verified** on
three machines. (Owner migration still unhandled.)
5. Pilot identity — Steam persona as pilot name **shipped**; loadout
persists in-session (Steam Cloud later).