Match full reference demo and validate original missions, transitions and sprite rendering

This commit is contained in:
raptorreplica committed 2026-10-10 12:42:33 +11:00
1 parent 967ba69ee8
commit 0844f6dffa
21 files changed
+3984 -219

No files matched your search

+13 -1
View File
@@ -7,9 +7,12 @@ Choose **Iron Coast 1 — Breakwater** in the mission list.
Disable at least two harbor turrets and destroy the command ship to complete
the raid. Scout waves arrive during the approach; two supply depots release
repair kits. The mission grants a trial Pulse Cannon and three field repairs.
repair kits. When inventory space allows, the mission grants a trial Pulse
Cannon and three field repairs. Granted equipment remains with the pilot.
Repairs restore 25 shield when selected and used with the special button.
Victory awards 5,000 credits in addition to ordinary destruction rewards.
A full inventory can still start the mission; existing equipment is preserved
and new grants are skipped when there is no free slot.
This mission uses explicit script completion. Its duration is a catalog hint;
waiting out the timer cannot win. The boss stays in the firing corridor, and
@@ -27,3 +30,12 @@ data/misc/PALETTE_DAT` to regenerate the exact
packaged crops, SD palette conversion, HD footprints and synthesized WAVs.
See `prompts.md`, `asset-report.json`, and `docs/iron-coast.md` for provenance
and validation limits.
The release acceptance run completes with starter guns at step **882**
(shield 94) and the trial Pulse Cannon at step **786** (shield 92), both with
7,715 credits. These are deterministic headless runs on difficulty 2: initial
shield 100, held fire, position fixed at (144,160), repairs selected on step 2
and the special button pressed every 90 steps starting at step 61. They use
the mission's granted/dropped repairs; they apply no direct shield refills or
enemy damage commands. Human-play difficulty and audiovisual approval remain
subject to normal play testing.
@@ -1,12 +1,24 @@
fn on_mission_start(event, state, random) {
#{commands:[
#{op:"give_item", item:"pulse_cannon:equipment", count:1},
#{op:"give_item", item:"iron_coast_mission_1:repair", count:3},
let commands=[
#{op:"objective", key:"iron_coast_mission_1:phase", value:1},
#{op:"objective", key:"iron_coast_mission_1:turrets_required", value:2},
#{op:"objective", key:"iron_coast_mission_1:complete", value:0},
#{op:"play_sound", sound:"iron_coast_mission_1:approach"}
],state:#{dock_alarm:false,boss_alarm:false,complete:false}}
];
// A full veteran inventory must not prevent a mission from starting.
// Existing equipment may receive its normal refill without adding a slot.
let slots=event.player.inventory.len();
if event.player.inventory.contains("iron_coast_mission_1:repair") || slots<20 {
commands.push(#{op:"give_item",item:"iron_coast_mission_1:repair",count:3});
if !event.player.inventory.contains("iron_coast_mission_1:repair") {slots+=1;}
}
let trial=0;
if event.player.inventory.contains("pulse_cannon:equipment") || slots<20 {
commands.push(#{op:"give_item",item:"pulse_cannon:equipment",count:1});
trial=1;
}
commands.push(#{op:"objective",key:"iron_coast_mission_1:trial_issued",value:trial});
#{commands:commands,state:#{dock_alarm:false,boss_alarm:false,complete:false}}
}
fn on_tick(event, state, random) {