Unify Iron Coast mission names and cinematic mission previews

This commit is contained in:
raptorreplica committed 2026-10-19 00:10:38 +11:00
1 parent 668b3ff86d
commit 2d95e145a5
406 files changed
+134963 -245

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
# Iron Coast — Mission 4: Stormwall
# Iron Coast S1 M04: Stormwall
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_4`, `pulse_cannon`, `seeker_swarm`, `ion_lance`, `iron_coast_music`.
@@ -0,0 +1,10 @@
{
"purpose": "Full RGB SD briefing for the menu; replaces inherited palette posterization",
"source": "briefing_hd.png",
"source_sha256": "cd987c13bc55bba2620379ca435c0cccf08d7564364d730c65d0be285bb82221",
"old_sd_sha256": "11c8b492cd2df36ff05eeccded9a398da4af9113194b355fb4c6630f196d167d",
"sd_sha256": "9bd490c5c341303bea69f55bc323f5cced581d64740371703f70d3e7a1012256",
"recipe": "rebuild_briefing_sd.py",
"method": "RGB 320x200 Lanczos downsample of unchanged approved HD; no image generation",
"scope": "Menu illustration only; gameplay terrain, sprites, missions and audio unchanged"
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 134 KiB

@@ -0,0 +1,10 @@
#!/usr/bin/env python3
"""Refresh only this menu briefing SD image; gameplay artwork is untouched."""
from pathlib import Path
import hashlib
from PIL import Image
root = Path(__file__).resolve().parent
source = root / "briefing_hd.png"
assert hashlib.sha256(source.read_bytes()).hexdigest() == "cd987c13bc55bba2620379ca435c0cccf08d7564364d730c65d0be285bb82221", "Unexpected HD briefing"
with Image.open(source) as image:
image.convert("RGB").resize((320,200), Image.Resampling.LANCZOS).save(root / "briefing_sd.png")
+1 -1
View File
@@ -100,7 +100,7 @@ def main():
standard.save(art / "terrain-preview-sd.png")
briefing = Image.open(art / "briefing-source-hd.png")
briefing.convert("RGBA").resize((1280,800), Image.Resampling.LANCZOS).save(art / "briefing_hd.png")
sd(briefing, (320,200), palette).save(art / "briefing_sd.png")
briefing.convert("RGBA").resize((1280,800), Image.Resampling.LANCZOS).convert("RGB").resize((320,200), Image.Resampling.LANCZOS).save(art / "briefing_sd.png")
palette_colors = {tuple(colors[i:i+3]) for i in range(0,768,3)}
rgb_pixels = standard.convert("RGB").tobytes()
sd_colors = {tuple(rgb_pixels[i:i+3]) for i in range(0,len(rgb_pixels),3)}
+1 -1
View File
@@ -40,7 +40,7 @@
"missions": [
{
"id": "iron_coast_mission_4:mission_04",
"name": "Iron Coast 4 — Stormwall",
"name": "Iron Coast S1 M04: Stormwall",
"duration": 3000,
"auto_complete": false,
"columns": 9,
+1 -1
View File
@@ -1,5 +1,5 @@
id = "iron_coast_mission_4"
name = "Iron Coast — Mission 4: Stormwall"
name = "Iron Coast S1 M04: Stormwall"
version = "1.0.1"
api_version = 1
description = "Breach a storm-lashed cliff battery, silence four emplacements and destroy the Stormwall Arsenal. Original curved and crossing fighter patrols mix with Iron Coast scouts. Includes SD/HD storm-coast art, mission-only Pulse Cannon loan, warning cues and the Iron Coast soundtrack."