diff --git a/docs/battle-map-terrain-atlas-pipeline.md b/docs/battle-map-terrain-atlas-pipeline.md
index 7ad10a2..cea923c 100644
--- a/docs/battle-map-terrain-atlas-pipeline.md
+++ b/docs/battle-map-terrain-atlas-pipeline.md
@@ -2,7 +2,7 @@
## Scope
-The first twenty campaign battles now use the same hand-painted tactical map pipeline. The renderer still reads the original scenario tile coordinates and battle logic; only the map texture asset changes from flat/vector map art to low-contrast raster terrain.
+The first twenty-five campaign battles now use the same hand-painted tactical map pipeline. The renderer still reads the original scenario tile coordinates and battle logic; only the map texture asset changes from flat/vector map art to low-contrast raster terrain.
## Art Direction
@@ -37,6 +37,11 @@ python scripts/generate-handpaint-map-sample.py --map seventeenth --webp-quality
python scripts/generate-handpaint-map-sample.py --map eighteenth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map nineteenth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map twentieth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map twenty-first --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map twenty-second --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map twenty-third --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map twenty-fourth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map twenty-fifth --webp-quality 90
```
## Current Assets
@@ -61,6 +66,11 @@ python scripts/generate-handpaint-map-sample.py --map twentieth --webp-quality 9
- `src/assets/images/battle/eighteenth-battle-map.webp`
- `src/assets/images/battle/nineteenth-battle-map.webp`
- `src/assets/images/battle/twentieth-battle-map.webp`
+- `src/assets/images/battle/twenty-first-battle-map.webp`
+- `src/assets/images/battle/twenty-second-battle-map.webp`
+- `src/assets/images/battle/twenty-third-battle-map.webp`
+- `src/assets/images/battle/twenty-fourth-battle-map.webp`
+- `src/assets/images/battle/twenty-fifth-battle-map.webp`
## QA Outputs
@@ -102,5 +112,15 @@ python scripts/generate-handpaint-map-sample.py --map twentieth --webp-quality 9
- `docs/nineteenth-battle-map-handpaint-preview.png`
- `docs/twentieth-battle-map-handpaint-before-after.png`
- `docs/twentieth-battle-map-handpaint-preview.png`
+- `docs/twenty-first-battle-map-handpaint-before-after.png`
+- `docs/twenty-first-battle-map-handpaint-preview.png`
+- `docs/twenty-second-battle-map-handpaint-before-after.png`
+- `docs/twenty-second-battle-map-handpaint-preview.png`
+- `docs/twenty-third-battle-map-handpaint-before-after.png`
+- `docs/twenty-third-battle-map-handpaint-preview.png`
+- `docs/twenty-fourth-battle-map-handpaint-before-after.png`
+- `docs/twenty-fourth-battle-map-handpaint-preview.png`
+- `docs/twenty-fifth-battle-map-handpaint-before-after.png`
+- `docs/twenty-fifth-battle-map-handpaint-preview.png`
Browser screenshots are saved per verification run after build/deploy.
diff --git a/docs/twenty-fifth-battle-map-handpaint-before-after.png b/docs/twenty-fifth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..37dc72d
Binary files /dev/null and b/docs/twenty-fifth-battle-map-handpaint-before-after.png differ
diff --git a/docs/twenty-fifth-battle-map-handpaint-preview.png b/docs/twenty-fifth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..c63e21d
Binary files /dev/null and b/docs/twenty-fifth-battle-map-handpaint-preview.png differ
diff --git a/docs/twenty-first-battle-map-handpaint-before-after.png b/docs/twenty-first-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..64820bd
Binary files /dev/null and b/docs/twenty-first-battle-map-handpaint-before-after.png differ
diff --git a/docs/twenty-first-battle-map-handpaint-preview.png b/docs/twenty-first-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..a49cda4
Binary files /dev/null and b/docs/twenty-first-battle-map-handpaint-preview.png differ
diff --git a/docs/twenty-fourth-battle-map-handpaint-before-after.png b/docs/twenty-fourth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..ee53310
Binary files /dev/null and b/docs/twenty-fourth-battle-map-handpaint-before-after.png differ
diff --git a/docs/twenty-fourth-battle-map-handpaint-preview.png b/docs/twenty-fourth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..e5e9a25
Binary files /dev/null and b/docs/twenty-fourth-battle-map-handpaint-preview.png differ
diff --git a/docs/twenty-second-battle-map-handpaint-before-after.png b/docs/twenty-second-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..8c53d49
Binary files /dev/null and b/docs/twenty-second-battle-map-handpaint-before-after.png differ
diff --git a/docs/twenty-second-battle-map-handpaint-preview.png b/docs/twenty-second-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..d3d0b89
Binary files /dev/null and b/docs/twenty-second-battle-map-handpaint-preview.png differ
diff --git a/docs/twenty-third-battle-map-handpaint-before-after.png b/docs/twenty-third-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..0b5cf47
Binary files /dev/null and b/docs/twenty-third-battle-map-handpaint-before-after.png differ
diff --git a/docs/twenty-third-battle-map-handpaint-preview.png b/docs/twenty-third-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..a1ec35a
Binary files /dev/null and b/docs/twenty-third-battle-map-handpaint-preview.png differ
diff --git a/scripts/generate-handpaint-map-sample.py b/scripts/generate-handpaint-map-sample.py
index 4c12c3c..3a84fff 100644
--- a/scripts/generate-handpaint-map-sample.py
+++ b/scripts/generate-handpaint-map-sample.py
@@ -199,6 +199,51 @@ MAP_CONFIGS = {
"before": BATTLE_IMAGE_DIR / "twentieth-battle-map.svg",
"seed": 240894,
},
+ "twenty-first": {
+ "slug": "twenty-first-battle-map",
+ "terrain_export": "twentyFirstBattleMap",
+ "units_export": "twentyFirstBattleUnits",
+ "ally_positions_export": "twentyFirstBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "twenty-first-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "twenty-first-battle-map.svg",
+ "seed": 240904,
+ },
+ "twenty-second": {
+ "slug": "twenty-second-battle-map",
+ "terrain_export": "twentySecondBattleMap",
+ "units_export": "twentySecondBattleUnits",
+ "ally_positions_export": "twentySecondBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "twenty-second-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "twenty-second-battle-map.svg",
+ "seed": 240914,
+ },
+ "twenty-third": {
+ "slug": "twenty-third-battle-map",
+ "terrain_export": "twentyThirdBattleMap",
+ "units_export": "twentyThirdBattleUnits",
+ "ally_positions_export": "twentyThirdBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "twenty-third-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "twenty-third-battle-map.svg",
+ "seed": 240924,
+ },
+ "twenty-fourth": {
+ "slug": "twenty-fourth-battle-map",
+ "terrain_export": "twentyFourthBattleMap",
+ "units_export": "twentyFourthBattleUnits",
+ "ally_positions_export": "twentyFourthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "twenty-fourth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "twenty-fourth-battle-map.svg",
+ "seed": 240934,
+ },
+ "twenty-fifth": {
+ "slug": "twenty-fifth-battle-map",
+ "terrain_export": "twentyFifthBattleMap",
+ "units_export": "twentyFifthBattleUnits",
+ "ally_positions_export": "twentyFifthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "twenty-fifth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "twenty-fifth-battle-map.svg",
+ "seed": 240944,
+ },
}
diff --git a/src/assets/images/battle/twenty-fifth-battle-map.svg b/src/assets/images/battle/twenty-fifth-battle-map.svg
deleted file mode 100644
index d96bcbd..0000000
--- a/src/assets/images/battle/twenty-fifth-battle-map.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-
diff --git a/src/assets/images/battle/twenty-fifth-battle-map.webp b/src/assets/images/battle/twenty-fifth-battle-map.webp
new file mode 100644
index 0000000..ea2a421
Binary files /dev/null and b/src/assets/images/battle/twenty-fifth-battle-map.webp differ
diff --git a/src/assets/images/battle/twenty-first-battle-map.svg b/src/assets/images/battle/twenty-first-battle-map.svg
deleted file mode 100644
index 44d78f2..0000000
--- a/src/assets/images/battle/twenty-first-battle-map.svg
+++ /dev/null
@@ -1,94 +0,0 @@
-
diff --git a/src/assets/images/battle/twenty-first-battle-map.webp b/src/assets/images/battle/twenty-first-battle-map.webp
new file mode 100644
index 0000000..9fbdafe
Binary files /dev/null and b/src/assets/images/battle/twenty-first-battle-map.webp differ
diff --git a/src/assets/images/battle/twenty-fourth-battle-map.svg b/src/assets/images/battle/twenty-fourth-battle-map.svg
deleted file mode 100644
index ca557cc..0000000
--- a/src/assets/images/battle/twenty-fourth-battle-map.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-
diff --git a/src/assets/images/battle/twenty-fourth-battle-map.webp b/src/assets/images/battle/twenty-fourth-battle-map.webp
new file mode 100644
index 0000000..3c0a1d2
Binary files /dev/null and b/src/assets/images/battle/twenty-fourth-battle-map.webp differ
diff --git a/src/assets/images/battle/twenty-second-battle-map.svg b/src/assets/images/battle/twenty-second-battle-map.svg
deleted file mode 100644
index 277800b..0000000
--- a/src/assets/images/battle/twenty-second-battle-map.svg
+++ /dev/null
@@ -1,80 +0,0 @@
-
diff --git a/src/assets/images/battle/twenty-second-battle-map.webp b/src/assets/images/battle/twenty-second-battle-map.webp
new file mode 100644
index 0000000..7238195
Binary files /dev/null and b/src/assets/images/battle/twenty-second-battle-map.webp differ
diff --git a/src/assets/images/battle/twenty-third-battle-map.svg b/src/assets/images/battle/twenty-third-battle-map.svg
deleted file mode 100644
index 2e57ac6..0000000
--- a/src/assets/images/battle/twenty-third-battle-map.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-
diff --git a/src/assets/images/battle/twenty-third-battle-map.webp b/src/assets/images/battle/twenty-third-battle-map.webp
new file mode 100644
index 0000000..b21c213
Binary files /dev/null and b/src/assets/images/battle/twenty-third-battle-map.webp differ
diff --git a/src/game/data/battleMapAssets.ts b/src/game/data/battleMapAssets.ts
index 1ba5c11..996ec42 100644
--- a/src/game/data/battleMapAssets.ts
+++ b/src/game/data/battleMapAssets.ts
@@ -55,14 +55,14 @@ import thirtyThirdBattleMapUrl from '../../assets/images/battle/thirty-third-bat
import thirdBattleMapUrl from '../../assets/images/battle/third-battle-map.webp';
import twentiethBattleMapUrl from '../../assets/images/battle/twentieth-battle-map.webp';
import twentyEighthBattleMapUrl from '../../assets/images/battle/twenty-eighth-battle-map.svg';
-import twentyFifthBattleMapUrl from '../../assets/images/battle/twenty-fifth-battle-map.svg';
-import twentyFirstBattleMapUrl from '../../assets/images/battle/twenty-first-battle-map.svg';
-import twentyFourthBattleMapUrl from '../../assets/images/battle/twenty-fourth-battle-map.svg';
+import twentyFifthBattleMapUrl from '../../assets/images/battle/twenty-fifth-battle-map.webp';
+import twentyFirstBattleMapUrl from '../../assets/images/battle/twenty-first-battle-map.webp';
+import twentyFourthBattleMapUrl from '../../assets/images/battle/twenty-fourth-battle-map.webp';
import twentyNinthBattleMapUrl from '../../assets/images/battle/twenty-ninth-battle-map.svg';
-import twentySecondBattleMapUrl from '../../assets/images/battle/twenty-second-battle-map.svg';
+import twentySecondBattleMapUrl from '../../assets/images/battle/twenty-second-battle-map.webp';
import twentySeventhBattleMapUrl from '../../assets/images/battle/twenty-seventh-battle-map.svg';
import twentySixthBattleMapUrl from '../../assets/images/battle/twenty-sixth-battle-map.svg';
-import twentyThirdBattleMapUrl from '../../assets/images/battle/twenty-third-battle-map.svg';
+import twentyThirdBattleMapUrl from '../../assets/images/battle/twenty-third-battle-map.webp';
import twelfthBattleMapUrl from '../../assets/images/battle/twelfth-battle-map.webp';
export const battleMapAssets: Record = {