Commit Graph

4 Commits

Author SHA1 Message Date
type-two
6847a47fea SIDE B campaign: three Stream missions (m04 Onboarding quota race, m05 Engagement Metrics wave defence, m06 The Shuffle finale)
Adds tools/gen_sideb.py — one data-driven builder replacing the copy-pasted
gen_missionN.py pattern — and tools/smoketest.sh, which reports
PASS/FAIL/DISPLAY_UNAVAILABLE instead of the process-is-alive check that has
produced false passes twice now.

NOT verified in-game: the display went to sleep mid-session. Static checks all
pass (luac, check-yaml 0 errors, map refresh, check_assets, make) and the
already-verified m03 hangs identically, confirming it is environmental.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:35:15 +10:00
type-two
ef432e4182 Mission 03: THE DROP — campaign finale
Full base-building map against a live Stream bot holding The Algorithm behind a
defended base. Building the Mastering Studio triggers a scripted all-in
counterattack; silencing The Algorithm wins. Tick scan throttled to 1Hz.

SIDE A is now three missions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:19:43 +10:00
type-two
c09da56dbe Mission 02: CRATE DIGGERS — timed raid with no base building
Strike force + The Selector against a Stream transcoder outpost; 6-minute
countdown shown via SetMissionText, master lacquer is cut (killed) if the timer
beats you. Adds the lacquer prop (deliberately untargetable) and ScriptTriggers
on all actor templates, without which Trigger.OnKilled throws at map load.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:11:20 +10:00
type-two
93ad888c32 Round 5b: SIDE A campaign — mission 01 FIRST PRESSING with scripted objectives, briefing, timed Stream probe; shared campaign.lua, campaign rules, objectives panel, missions registry
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 19:12:35 +10:00