Retune Iron Coast waves, enemy attacks and weapon presentation

This commit is contained in:
raptorreplica committed 2026-10-17 18:13:20 +11:00
1 parent 00cfcc2031
commit c4a4d821d5
145 files changed
+9242 -2951

No files matched your search

+11 -39
View File
@@ -1,45 +1,17 @@
# Iron Coast — Mission 1: Breakwater
Enable this package in the in-game Mods screen to select its seven installed dependencies automatically:
`iron_coast_scout`, `iron_coast_turret`, `iron_coast_boss`, `pulse_cannon`,
`seeker_swarm`, `ion_lance`, and `iron_coast_music`. Each package is independent and version 1.0.0.
Choose **Iron Coast 1 — Breakwater** in the mission list. The original
Coastal Steel FM soundtrack loops during flight.
API 1 package, version 1.0.1. Enable it in Mods at the main menu and apply the selection. The normal dependency selection also enables `iron_coast_scout`, `iron_coast_turret`, `iron_coast_boss`, `pulse_cannon`, `seeker_swarm`, `ion_lance`, `iron_coast_music`.
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. When inventory space allows, the mission grants a trial Pulse
Cannon loan and three field repairs. The loan is returned before the completed
flight is saved; a cannon you already own is preserved. Field repairs cost
12,500 credits each in the shop, a premium over the original 10,000-credit
hangar energy refill for use during combat.
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.
Mission `iron_coast_mission_1:mission_01`: **Iron Coast 1 — Breakwater**. Destroy two required turrets and the Command Cruiser. Required ground objectives remain reachable; escaping optional aircraft never counts as a kill. Elapsed time alone does not finish the mission.
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
surviving objective turrets stay on screen and can be hit with starter forward guns. Equipment and
mission progress remain subject to the normal mod-save compatibility checks.
Scheduled spawn totals for Training / Rookie / Veteran / Elite are **25 / 34 / 43 / 52**. These are enabled scheduled entries, not simultaneous live-enemy counts. Groups can overlap when earlier enemies survive.
The generated masters, packaged SD/HD PNGs and synthesized WAVs are included
in Git with their definitions, scripts, generator, prompts and validation
report. Original game data and the original style-reference PNGs remain
outside Git. The three
`art/*-source-hd.png` inputs were generated with the built-in imagegen tool
using the original terrain and military sprite as style/scale references.
Run `python3 mods/iron_coast_mission_1/build_assets.py --palette
../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 [Iron Coast documentation](../../docs/iron-coast.md) for provenance
and validation limits.
Align the forward guns with required targets while moving around incoming shots. If carried, select Field Repair or coolant with Cycle and use Special: they restore 25 or 30 energy respectively and consume a real item. Shop purchases and refills still cost credits.
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.
## Equipment supplied by the mission
The mission supplies three Field Repair kits when capacity allows (25 energy per real Special use) and a temporary Pulse Cannon trial if one is not already carried. The Pulse Cannon is an automatic primary; hold Fire. The trial is removed at mission end.
## Validation and history
See the [current Iron Coast retune results and limits](../../docs/iron-coast-retune.md). Package-local acceptance reports, validation results and retained test sources describe pre-retune 1.0 behavior unless a result explicitly identifies the newer package and runner. They remain historical material, not current playthrough guarantees.
+303 -41
View File
@@ -97,7 +97,7 @@
"missions": [
{
"id": "iron_coast_mission_1:mission_01",
"name": "Iron Coast 1 \u2014 Breakwater",
"name": "Iron Coast 1 — Breakwater",
"duration": 2000,
"auto_complete": false,
"columns": 9,
@@ -2699,106 +2699,368 @@
],
"spawns": [
{
"tick": 30,
"tick": 32,
"enemy": "iron_coast_scout:unit",
"x": 68,
"y": -24
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 65,
"tick": 32,
"enemy": "iron_coast_scout:unit",
"x": 200,
"y": -24
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 110,
"tick": 32,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24
"y": -24,
"difficulty": 1
},
{
"tick": 150,
"tick": 32,
"enemy": "iron_coast_scout:unit",
"x": 228,
"y": -24
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 32,
"enemy": "iron_coast_scout:unit",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 118,
"enemy": "iron_coast_scout:unit",
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 118,
"enemy": "iron_coast_scout:unit",
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 118,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24,
"difficulty": 1
},
{
"tick": 118,
"enemy": "iron_coast_scout:unit",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 118,
"enemy": "iron_coast_scout:unit",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 180,
"enemy": "iron_coast_turret:unit",
"x": 144,
"y": -32
"y": -32,
"difficulty": 0
},
{
"tick": 224,
"enemy": "base:enemy_0_73",
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 224,
"enemy": "base:enemy_0_74",
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 224,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24,
"difficulty": 1
},
{
"tick": 224,
"enemy": "base:enemy_0_73",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 224,
"enemy": "base:enemy_0_74",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 230,
"enemy": "iron_coast_mission_1:depot",
"x": 144,
"y": -32
"y": -32,
"difficulty": 0
},
{
"tick": 270,
"tick": 326,
"enemy": "iron_coast_scout:unit",
"x": 88,
"y": -24
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 305,
"tick": 326,
"enemy": "iron_coast_scout:unit",
"x": 180,
"y": -24
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 345,
"tick": 326,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24
"y": -24,
"difficulty": 1
},
{
"tick": 326,
"enemy": "iron_coast_scout:unit",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 326,
"enemy": "iron_coast_scout:unit",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 350,
"enemy": "iron_coast_turret:unit",
"x": 144,
"y": -32
"y": -32,
"difficulty": 0
},
{
"tick": 438,
"enemy": "base:enemy_0_21",
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 438,
"enemy": "base:enemy_0_22",
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 438,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24,
"difficulty": 1
},
{
"tick": 438,
"enemy": "base:enemy_0_21",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 438,
"enemy": "base:enemy_0_22",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 440,
"enemy": "iron_coast_turret:unit",
"x": 48,
"y": -32
"y": -32,
"difficulty": 0
},
{
"tick": 450,
"enemy": "iron_coast_mission_1:depot",
"x": 144,
"y": -32
},
{
"tick": 490,
"enemy": "iron_coast_scout:unit",
"x": 72,
"y": -24
},
{
"tick": 530,
"enemy": "iron_coast_scout:unit",
"x": 210,
"y": -24
"y": -32,
"difficulty": 0
},
{
"tick": 540,
"enemy": "iron_coast_turret:unit",
"x": 240,
"y": -32
"y": -32,
"difficulty": 0
},
{
"tick": 600,
"tick": 554,
"enemy": "base:enemy_0_73",
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 554,
"enemy": "base:enemy_0_74",
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 554,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24
"y": -24,
"difficulty": 1
},
{
"tick": 554,
"enemy": "base:enemy_0_73",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 554,
"enemy": "base:enemy_0_74",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 626,
"enemy": "iron_coast_scout:unit",
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 626,
"enemy": "iron_coast_scout:unit",
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 626,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24,
"difficulty": 1
},
{
"tick": 626,
"enemy": "iron_coast_scout:unit",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 626,
"enemy": "iron_coast_scout:unit",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 720,
"enemy": "iron_coast_boss:unit",
"x": 112,
"y": -64
"y": -64,
"difficulty": 0
},
{
"tick": 740,
"enemy": "base:enemy_0_21",
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 740,
"enemy": "base:enemy_0_22",
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 740,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24,
"difficulty": 1
},
{
"tick": 740,
"enemy": "base:enemy_0_21",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 740,
"enemy": "base:enemy_0_22",
"x": 264,
"y": -32,
"difficulty": 3
},
{
"tick": 860,
"enemy": "base:enemy_0_73",
"x": 64,
"y": -32,
"difficulty": 0
},
{
"tick": 860,
"enemy": "base:enemy_0_74",
"x": 216,
"y": -32,
"difficulty": 0
},
{
"tick": 860,
"enemy": "iron_coast_scout:unit",
"x": 136,
"y": -24,
"difficulty": 1
},
{
"tick": 860,
"enemy": "base:enemy_0_73",
"x": 24,
"y": -32,
"difficulty": 2
},
{
"tick": 860,
"enemy": "base:enemy_0_74",
"x": 264,
"y": -32,
"difficulty": 3
}
],
"art": {
+1 -1
View File
@@ -1,6 +1,6 @@
id = "iron_coast_mission_1"
name = "Iron Coast — Mission 1: Breakwater"
version = "1.0.0"
version = "1.0.1"
api_version = 1
description = "Raid an industrial shoreline, disable two harbor turrets and destroy the Breakwater command ship. Includes SD/HD port terrain, supply depots, a trial Pulse Cannon and synthesized mission audio."
content = "content.json"