Add Iron Coast II Black Tide eight-mission campaign

This commit is contained in:
raptorreplica committed 2026-10-11 20:08:01 +11:00
1 parent a08b932beb
commit 71cb7cdba3
4492 files changed
+164577 -45

No files matched your search

@@ -0,0 +1,901 @@
{
"difficulty": 2,
"fixture_health": 100000,
"rate": "70/3 Hz",
"rows": [
{
"damage": [
1344
],
"group_dps": 44.8,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1344
],
"group_dps": 44.8,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1344,
1024,
704,
0
],
"group_dps": 102.4,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1344,
0,
0,
0,
0,
0
],
"group_dps": 44.8,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
2038
],
"group_dps": 67.93333333333334,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
2038
],
"group_dps": 67.93333333333334,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
2040,
1024,
704,
0
],
"group_dps": 125.6,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
2038,
0,
0,
0,
0,
0
],
"group_dps": 67.93333333333334,
"item": "iron_coast_railburst:equipment",
"price": 685000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1080
],
"group_dps": 36.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1080,
0,
0,
0
],
"group_dps": 36.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1080,
540,
300,
300,
0,
0
],
"group_dps": 74.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
694
],
"group_dps": 23.133333333333333,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1774
],
"group_dps": 59.13333333333333,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1776,
0,
0,
0
],
"group_dps": 59.2,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1774,
540,
300,
300,
0,
0
],
"group_dps": 97.13333333333334,
"item": "iron_coast_depth_charge:equipment",
"price": 525000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
800
],
"group_dps": 26.666666666666668,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
800
],
"group_dps": 26.666666666666668,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
800,
800,
800,
800
],
"group_dps": 106.66666666666667,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
800,
800,
0,
0,
0,
800
],
"group_dps": 80.0,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1494
],
"group_dps": 49.8,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1494
],
"group_dps": 49.8,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1496,
800,
800,
800
],
"group_dps": 129.86666666666667,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1494,
800,
0,
0,
0,
800
],
"group_dps": 103.13333333333334,
"item": "ion_lance:equipment",
"price": 425000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1248
],
"group_dps": 41.6,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1248
],
"group_dps": 41.6,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1248,
780,
468,
312
],
"group_dps": 93.6,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1248,
468,
312,
0,
0,
780
],
"group_dps": 93.6,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
1942
],
"group_dps": 64.73333333333333,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1942
],
"group_dps": 64.73333333333333,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1944,
780,
468,
312
],
"group_dps": 116.8,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
1942,
468,
312,
0,
0,
780
],
"group_dps": 116.73333333333333,
"item": "lightning_cannon:equipment",
"price": 825000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": true
},
{
"damage": [
694
],
"group_dps": 23.133333333333333,
"item": "base:forward_guns",
"price": 12000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
694
],
"group_dps": 23.133333333333333,
"item": "base:forward_guns",
"price": 12000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "base:forward_guns",
"price": 12000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "base:forward_guns",
"price": 12000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
696,
0,
0,
0
],
"group_dps": 23.2,
"item": "base:forward_guns",
"price": 12000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
694,
0,
0,
0,
0,
0
],
"group_dps": 23.133333333333333,
"item": "base:forward_guns",
"price": 12000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
2400
],
"group_dps": 80.0,
"item": "base:death_ray",
"price": 950000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
2400
],
"group_dps": 80.0,
"item": "base:death_ray",
"price": 950000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "base:death_ray",
"price": 950000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "base:death_ray",
"price": 950000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
2400,
0,
0,
0
],
"group_dps": 80.0,
"item": "base:death_ray",
"price": 950000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
2400,
0,
0,
0,
0,
0
],
"group_dps": 80.0,
"item": "base:death_ray",
"price": 950000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
8000
],
"group_dps": 266.6666666666667,
"item": "base:forward_laser",
"price": 1750000,
"scene": "aligned_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
8000
],
"group_dps": 266.6666666666667,
"item": "base:forward_laser",
"price": 1750000,
"scene": "aligned_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "base:forward_laser",
"price": 1750000,
"scene": "off_axis_air",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
0
],
"group_dps": 0.0,
"item": "base:forward_laser",
"price": 1750000,
"scene": "off_axis_ground",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
8000,
0,
0,
0
],
"group_dps": 266.6666666666667,
"item": "base:forward_laser",
"price": 1750000,
"scene": "aligned_column",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
},
{
"damage": [
8000,
0,
0,
0,
0,
0
],
"group_dps": 266.6666666666667,
"item": "base:forward_laser",
"price": 1750000,
"scene": "ground_cluster",
"seconds": 30,
"ticks": 700,
"with_forward_guns": false
}
],
"target_size": [
32,
32
],
"package": "iron_coast_depth_charge",
"final_price": 525000,
"resale_price": 262500,
"pricing_reason": "36 ground single-target DPS and74 finite mixed-cluster ground DPS, zero air/off-axis damage, 48-tick slow cadence. Above425,000 Ion Lance26.67 single and285,000 Seeker Swarm23.4 single for local ground utility, but slower and ground-only. Below825,000 Lightning Cannon41.6 air/ground single and93.6 chain,950,000 Death Ray80 single,1,750,000 Forward Laser266.67. Forward guns add normal primary damage, not unbounded splash.",
"observation": "Actual World::step700ticks; deterministic stationary32x32 health100000 fixtures, ground scroll canceled after normal collision pass. Native original and new weapons unmodified. Forward-gun combination separately observed. Does not measure campaign difficulty or moving-target accuracy.",
"source_input_hashes": {
"mod.toml": "b0acc9149813522720ca6fc1e246a5a383e8641c89f7623558a6a5baa0e2d892",
"content.json": "1806d8451b6734096609c2188e42e002de9c82d7ac19361f51a329fe066ca07e",
"scripts/weapon.rhai": "23eb0d61ce768e6d8392b394c9274deee7ac5624915c4d3bae40e2050fef4d66"
}
}
@@ -0,0 +1,283 @@
{
"package": "iron_coast_depth_charge",
"portable_tests": {
"file": "tests/iron_coast_stage2_weapons.rs",
"passed": 9,
"balance_integration_passed": 1,
"cases": [
"independent activation and coexistence",
"shop half-price resale and duplicate rejection",
"rail aligned contact finite penetration",
"depth contact-only ground radius/falloff/cap",
"unselected/idle/misses without explosions",
"serialized state/RNG continuation and invalid-command rollback",
"explicit cooldown/reusable inventory",
"lethal primary contact continuation",
"full-slot inventory preservation",
"disable/re-enable saved equipment, exact mod pins and script state preserved without altering save"
]
},
"native_decoder_blitter_audio": {
"assets": [
{
"all_scales": [
{
"height": 16,
"painted": 147,
"scale": 1,
"width": 16
},
{
"height": 32,
"painted": 588,
"scale": 2,
"width": 32
},
{
"height": 48,
"painted": 1323,
"scale": 3,
"width": 48
},
{
"height": 64,
"painted": 2352,
"scale": 4,
"width": 64
}
],
"clear_corner_alpha": true,
"frame": 0,
"frames": 1,
"hd": false,
"kind": "equipment",
"logical_canvas": [
16,
16
],
"ordinary_palette_only": true,
"owner": "iron_coast_depth_charge",
"physical_canvas": [
16,
16
]
},
{
"all_scales": [
{
"height": 16,
"painted": 141,
"scale": 1,
"width": 16
},
{
"height": 32,
"painted": 561,
"scale": 2,
"width": 32
},
{
"height": 48,
"painted": 1252,
"scale": 3,
"width": 48
},
{
"height": 64,
"painted": 2236,
"scale": 4,
"width": 64
}
],
"clear_corner_alpha": true,
"frame": 0,
"frames": 1,
"hd": true,
"kind": "equipment",
"logical_canvas": [
16,
16
],
"ordinary_palette_only": true,
"owner": "iron_coast_depth_charge",
"physical_canvas": [
64,
64
]
},
{
"all_scales": [
{
"height": 12,
"painted": 34,
"scale": 1,
"width": 8
},
{
"height": 24,
"painted": 136,
"scale": 2,
"width": 16
},
{
"height": 36,
"painted": 306,
"scale": 3,
"width": 24
},
{
"height": 48,
"painted": 544,
"scale": 4,
"width": 32
}
],
"clear_corner_alpha": true,
"frame": 0,
"frames": 1,
"hd": false,
"kind": "projectile",
"logical_canvas": [
8,
12
],
"ordinary_palette_only": true,
"owner": "iron_coast_depth_charge",
"physical_canvas": [
8,
12
]
},
{
"all_scales": [
{
"height": 12,
"painted": 28,
"scale": 1,
"width": 8
},
{
"height": 24,
"painted": 110,
"scale": 2,
"width": 16
},
{
"height": 36,
"painted": 248,
"scale": 3,
"width": 24
},
{
"height": 48,
"painted": 444,
"scale": 4,
"width": 32
}
],
"clear_corner_alpha": true,
"frame": 0,
"frames": 1,
"hd": true,
"kind": "projectile",
"logical_canvas": [
8,
12
],
"ordinary_palette_only": true,
"owner": "iron_coast_depth_charge",
"physical_canvas": [
32,
48
]
}
],
"audio": [
{
"capture": "iron_coast_depth_charge-fire-mixed.wav",
"decoded_samples": 4630,
"decoder": "SoundBank::mod_sample",
"id": "iron_coast_depth_charge:fire",
"mixed_channels": 2,
"mixed_rate": 44100,
"mixer": "Mixer::sample through SoundBank::queue_mod",
"nonzero_output_samples": 11448,
"peak": 2688,
"source_rate": 22050
},
{
"capture": "iron_coast_depth_charge-impact-mixed.wav",
"decoded_samples": 10143,
"decoder": "SoundBank::mod_sample",
"id": "iron_coast_depth_charge:impact",
"mixed_channels": 2,
"mixed_rate": 44100,
"mixer": "Mixer::sample through SoundBank::queue_mod",
"nonzero_output_samples": 27200,
"peak": 3200,
"source_rate": 22050
}
],
"scope": "Public PNG decoder, same Host art normalization, indexed Canvas blitter and actual SoundBank/Mixer. Synthetic backgrounds; no live desktop/gameplay claim."
},
"visual_inspection": "Inspected original style references separately, all four raw masters and actual indexed SD/HD gallery at logical and4x canvases. Readable compact silhouettes, neutral metal with cyan rail/orange charge roles, transparent borders. SD colors intentionally simplified by reduction; no reserved palette effects. Captures use synthetic palette backgrounds, not a live mission or actual shop pane.",
"limitations": [
"Private desktop Host/shop screenshots are delegated to root integration review.",
"Native point collision may skip exceptionally tiny targets for the speed16 rail shot.",
"Terrain cells receive native primary damage but are not available as scripted penetration/splash snapshots."
],
"evidence_gallery_sha256": "c1b5d6ad1d286eb17fab1067143222a6071dff5e70a35d904757275767ec5a26",
"reproduction_byte_equality": {
"art/equipment-sd.png": true,
"art/equipment-hd.png": true,
"art/projectile-sd.png": true,
"art/projectile-hd.png": true,
"audio/fire.wav": true,
"audio/impact.wav": true
},
"native_build_bindings": {
"libraries": {
"raptor_replica": {
"path": "/home/quintine/Projects/RaptorReplica/RustRaptor/target/debug/libraptor_replica.rlib",
"sha256": "4fd737d3c6c808fd5de1ecfc1f9a41b0ef37e82dc1a186f005b8dc9c2360ccd5"
},
"image": {
"path": "/home/quintine/Projects/RaptorReplica/RustRaptor/target/debug/deps/libimage-25e356663b4aa6b0.rlib",
"sha256": "ea709066ea4c8c625efe3bf7f3741d7a68abfb7ef4b304837f1f0da20e5e2d58"
},
"serde_json": {
"path": "/home/quintine/Projects/RaptorReplica/RustRaptor/target/debug/deps/libserde_json-1d17875658175ae0.rlib",
"sha256": "e463d4b704418cc5a168d73818662f7a801a77d96e8ef3d6a121e90375e4532f"
}
},
"review_source_sha256": "32c4e836b7a01d159251427b2203dcf0d40f43bebef1def2f13a571e845d8ca3",
"validation_cases": [
{
"enabled": [
"iron_coast_railburst"
],
"stdout": "Validated 1 mods; 0 override(s)",
"stderr": "",
"exit_code": 0
},
{
"enabled": [
"iron_coast_depth_charge"
],
"stdout": "Validated 1 mods; 0 override(s)",
"stderr": "",
"exit_code": 0
},
{
"enabled": [
"iron_coast_railburst",
"iron_coast_depth_charge"
],
"stdout": "Validated 2 mods; 0 override(s)",
"stderr": "",
"exit_code": 0
}
],
"scope": "Frozen package copies; public asset, indexed Canvas and audio APIs; no live desktop or pilot mutations."
}
}