diff --git a/docs/battle-map-terrain-atlas-pipeline.md b/docs/battle-map-terrain-atlas-pipeline.md
index 0e9c298..7ec937b 100644
--- a/docs/battle-map-terrain-atlas-pipeline.md
+++ b/docs/battle-map-terrain-atlas-pipeline.md
@@ -2,7 +2,7 @@
## Scope
-The first thirty-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.
+The first forty 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
@@ -59,6 +59,11 @@ python scripts/generate-handpaint-map-sample.py --map thirty-second --webp-quali
python scripts/generate-handpaint-map-sample.py --map thirty-third --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map thirty-fourth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map thirty-fifth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map thirty-sixth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map thirty-seventh --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map thirty-eighth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map thirty-ninth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map fortieth --webp-quality 90
```
Comparison example:
@@ -104,6 +109,11 @@ python scripts/generate-handpaint-map-sample.py --map thirtieth --tile-size 192
- `src/assets/images/battle/thirty-third-battle-map.webp`
- `src/assets/images/battle/thirty-fourth-battle-map.webp`
- `src/assets/images/battle/thirty-fifth-battle-map.webp`
+- `src/assets/images/battle/thirty-sixth-battle-map.webp`
+- `src/assets/images/battle/thirty-seventh-battle-map.webp`
+- `src/assets/images/battle/thirty-eighth-battle-map.webp`
+- `src/assets/images/battle/thirty-ninth-battle-map.webp`
+- `src/assets/images/battle/fortieth-battle-map.webp`
## QA Outputs
@@ -175,5 +185,15 @@ python scripts/generate-handpaint-map-sample.py --map thirtieth --tile-size 192
- `docs/thirty-fourth-battle-map-handpaint-preview.png`
- `docs/thirty-fifth-battle-map-handpaint-before-after.png`
- `docs/thirty-fifth-battle-map-handpaint-preview.png`
+- `docs/thirty-sixth-battle-map-handpaint-before-after.png`
+- `docs/thirty-sixth-battle-map-handpaint-preview.png`
+- `docs/thirty-seventh-battle-map-handpaint-before-after.png`
+- `docs/thirty-seventh-battle-map-handpaint-preview.png`
+- `docs/thirty-eighth-battle-map-handpaint-before-after.png`
+- `docs/thirty-eighth-battle-map-handpaint-preview.png`
+- `docs/thirty-ninth-battle-map-handpaint-before-after.png`
+- `docs/thirty-ninth-battle-map-handpaint-preview.png`
+- `docs/fortieth-battle-map-handpaint-before-after.png`
+- `docs/fortieth-battle-map-handpaint-preview.png`
Browser screenshots are saved per verification run after build/deploy.
diff --git a/docs/fortieth-battle-map-handpaint-before-after.png b/docs/fortieth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..ea7434c
Binary files /dev/null and b/docs/fortieth-battle-map-handpaint-before-after.png differ
diff --git a/docs/fortieth-battle-map-handpaint-preview.png b/docs/fortieth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..43ebe6e
Binary files /dev/null and b/docs/fortieth-battle-map-handpaint-preview.png differ
diff --git a/docs/thirty-eighth-battle-map-handpaint-before-after.png b/docs/thirty-eighth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..6c41ac7
Binary files /dev/null and b/docs/thirty-eighth-battle-map-handpaint-before-after.png differ
diff --git a/docs/thirty-eighth-battle-map-handpaint-preview.png b/docs/thirty-eighth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..659b71f
Binary files /dev/null and b/docs/thirty-eighth-battle-map-handpaint-preview.png differ
diff --git a/docs/thirty-ninth-battle-map-handpaint-before-after.png b/docs/thirty-ninth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..fadb87f
Binary files /dev/null and b/docs/thirty-ninth-battle-map-handpaint-before-after.png differ
diff --git a/docs/thirty-ninth-battle-map-handpaint-preview.png b/docs/thirty-ninth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..bc1c6ba
Binary files /dev/null and b/docs/thirty-ninth-battle-map-handpaint-preview.png differ
diff --git a/docs/thirty-seventh-battle-map-handpaint-before-after.png b/docs/thirty-seventh-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..91be8e7
Binary files /dev/null and b/docs/thirty-seventh-battle-map-handpaint-before-after.png differ
diff --git a/docs/thirty-seventh-battle-map-handpaint-preview.png b/docs/thirty-seventh-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..9e033c1
Binary files /dev/null and b/docs/thirty-seventh-battle-map-handpaint-preview.png differ
diff --git a/docs/thirty-sixth-battle-map-handpaint-before-after.png b/docs/thirty-sixth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..1cf6e8f
Binary files /dev/null and b/docs/thirty-sixth-battle-map-handpaint-before-after.png differ
diff --git a/docs/thirty-sixth-battle-map-handpaint-preview.png b/docs/thirty-sixth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..674d67a
Binary files /dev/null and b/docs/thirty-sixth-battle-map-handpaint-preview.png differ
diff --git a/scripts/generate-handpaint-map-sample.py b/scripts/generate-handpaint-map-sample.py
index 278b7c1..7ab6f08 100644
--- a/scripts/generate-handpaint-map-sample.py
+++ b/scripts/generate-handpaint-map-sample.py
@@ -346,6 +346,56 @@ MAP_CONFIGS = {
"seed": 241044,
"tile_size": LARGE_MAP_TILE_SIZE,
},
+ "thirty-sixth": {
+ "slug": "thirty-sixth-battle-map",
+ "terrain_export": "thirtySixthBattleMap",
+ "units_export": "thirtySixthBattleUnits",
+ "ally_positions_export": "thirtySixthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "thirty-sixth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "thirty-sixth-battle-map.svg",
+ "seed": 241054,
+ "tile_size": LARGE_MAP_TILE_SIZE,
+ },
+ "thirty-seventh": {
+ "slug": "thirty-seventh-battle-map",
+ "terrain_export": "thirtySeventhBattleMap",
+ "units_export": "thirtySeventhBattleUnits",
+ "ally_positions_export": "thirtySeventhBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "thirty-seventh-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "thirty-seventh-battle-map.svg",
+ "seed": 241064,
+ "tile_size": LARGE_MAP_TILE_SIZE,
+ },
+ "thirty-eighth": {
+ "slug": "thirty-eighth-battle-map",
+ "terrain_export": "thirtyEighthBattleMap",
+ "units_export": "thirtyEighthBattleUnits",
+ "ally_positions_export": "thirtyEighthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "thirty-eighth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "thirty-eighth-battle-map.svg",
+ "seed": 241074,
+ "tile_size": LARGE_MAP_TILE_SIZE,
+ },
+ "thirty-ninth": {
+ "slug": "thirty-ninth-battle-map",
+ "terrain_export": "thirtyNinthBattleMap",
+ "units_export": "thirtyNinthBattleUnits",
+ "ally_positions_export": "thirtyNinthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "thirty-ninth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "thirty-ninth-battle-map.svg",
+ "seed": 241084,
+ "tile_size": LARGE_MAP_TILE_SIZE,
+ },
+ "fortieth": {
+ "slug": "fortieth-battle-map",
+ "terrain_export": "fortiethBattleMap",
+ "units_export": "fortiethBattleUnits",
+ "ally_positions_export": "fortiethBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "fortieth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "fortieth-battle-map.svg",
+ "seed": 241094,
+ "tile_size": LARGE_MAP_TILE_SIZE,
+ },
}
diff --git a/src/assets/images/battle/fortieth-battle-map.svg b/src/assets/images/battle/fortieth-battle-map.svg
deleted file mode 100644
index 5b6ba7c..0000000
--- a/src/assets/images/battle/fortieth-battle-map.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-
diff --git a/src/assets/images/battle/fortieth-battle-map.webp b/src/assets/images/battle/fortieth-battle-map.webp
new file mode 100644
index 0000000..11436c0
Binary files /dev/null and b/src/assets/images/battle/fortieth-battle-map.webp differ
diff --git a/src/assets/images/battle/thirty-eighth-battle-map.svg b/src/assets/images/battle/thirty-eighth-battle-map.svg
deleted file mode 100644
index 6a7386a..0000000
--- a/src/assets/images/battle/thirty-eighth-battle-map.svg
+++ /dev/null
@@ -1,89 +0,0 @@
-
diff --git a/src/assets/images/battle/thirty-eighth-battle-map.webp b/src/assets/images/battle/thirty-eighth-battle-map.webp
new file mode 100644
index 0000000..5150642
Binary files /dev/null and b/src/assets/images/battle/thirty-eighth-battle-map.webp differ
diff --git a/src/assets/images/battle/thirty-ninth-battle-map.svg b/src/assets/images/battle/thirty-ninth-battle-map.svg
deleted file mode 100644
index cafb864..0000000
--- a/src/assets/images/battle/thirty-ninth-battle-map.svg
+++ /dev/null
@@ -1,89 +0,0 @@
-
diff --git a/src/assets/images/battle/thirty-ninth-battle-map.webp b/src/assets/images/battle/thirty-ninth-battle-map.webp
new file mode 100644
index 0000000..d354c3c
Binary files /dev/null and b/src/assets/images/battle/thirty-ninth-battle-map.webp differ
diff --git a/src/assets/images/battle/thirty-seventh-battle-map.svg b/src/assets/images/battle/thirty-seventh-battle-map.svg
deleted file mode 100644
index 57630b8..0000000
--- a/src/assets/images/battle/thirty-seventh-battle-map.svg
+++ /dev/null
@@ -1,87 +0,0 @@
-
diff --git a/src/assets/images/battle/thirty-seventh-battle-map.webp b/src/assets/images/battle/thirty-seventh-battle-map.webp
new file mode 100644
index 0000000..e4752bf
Binary files /dev/null and b/src/assets/images/battle/thirty-seventh-battle-map.webp differ
diff --git a/src/assets/images/battle/thirty-sixth-battle-map.svg b/src/assets/images/battle/thirty-sixth-battle-map.svg
deleted file mode 100644
index 3526b47..0000000
--- a/src/assets/images/battle/thirty-sixth-battle-map.svg
+++ /dev/null
@@ -1,70 +0,0 @@
-
diff --git a/src/assets/images/battle/thirty-sixth-battle-map.webp b/src/assets/images/battle/thirty-sixth-battle-map.webp
new file mode 100644
index 0000000..be203e3
Binary files /dev/null and b/src/assets/images/battle/thirty-sixth-battle-map.webp differ
diff --git a/src/game/data/battleMapAssets.ts b/src/game/data/battleMapAssets.ts
index 8dc2d4a..ac32337 100644
--- a/src/game/data/battleMapAssets.ts
+++ b/src/game/data/battleMapAssets.ts
@@ -21,7 +21,7 @@ import fiftySixthBattleMapUrl from '../../assets/images/battle/fifty-sixth-battl
import fifthBattleMapUrl from '../../assets/images/battle/fifth-battle-map.webp';
import fifteenthBattleMapUrl from '../../assets/images/battle/fifteenth-battle-map.webp';
import firstBattleMapUrl from '../../assets/images/battle/first-battle-map.webp';
-import fortiethBattleMapUrl from '../../assets/images/battle/fortieth-battle-map.svg';
+import fortiethBattleMapUrl from '../../assets/images/battle/fortieth-battle-map.webp';
import fortyEighthBattleMapUrl from '../../assets/images/battle/forty-eighth-battle-map.svg';
import fortyFifthBattleMapUrl from '../../assets/images/battle/forty-fifth-battle-map.svg';
import fortyFirstBattleMapUrl from '../../assets/images/battle/forty-first-battle-map.svg';
@@ -43,14 +43,14 @@ import sixthBattleMapUrl from '../../assets/images/battle/sixth-battle-map.webp'
import tenthBattleMapUrl from '../../assets/images/battle/tenth-battle-map.webp';
import thirteenthBattleMapUrl from '../../assets/images/battle/thirteenth-battle-map.webp';
import thirtiethBattleMapUrl from '../../assets/images/battle/thirtieth-battle-map.webp';
-import thirtyEighthBattleMapUrl from '../../assets/images/battle/thirty-eighth-battle-map.svg';
+import thirtyEighthBattleMapUrl from '../../assets/images/battle/thirty-eighth-battle-map.webp';
import thirtyFifthBattleMapUrl from '../../assets/images/battle/thirty-fifth-battle-map.webp';
import thirtyFirstBattleMapUrl from '../../assets/images/battle/thirty-first-battle-map.webp';
import thirtyFourthBattleMapUrl from '../../assets/images/battle/thirty-fourth-battle-map.webp';
-import thirtyNinthBattleMapUrl from '../../assets/images/battle/thirty-ninth-battle-map.svg';
+import thirtyNinthBattleMapUrl from '../../assets/images/battle/thirty-ninth-battle-map.webp';
import thirtySecondBattleMapUrl from '../../assets/images/battle/thirty-second-battle-map.webp';
-import thirtySeventhBattleMapUrl from '../../assets/images/battle/thirty-seventh-battle-map.svg';
-import thirtySixthBattleMapUrl from '../../assets/images/battle/thirty-sixth-battle-map.svg';
+import thirtySeventhBattleMapUrl from '../../assets/images/battle/thirty-seventh-battle-map.webp';
+import thirtySixthBattleMapUrl from '../../assets/images/battle/thirty-sixth-battle-map.webp';
import thirtyThirdBattleMapUrl from '../../assets/images/battle/thirty-third-battle-map.webp';
import thirdBattleMapUrl from '../../assets/images/battle/third-battle-map.webp';
import twentiethBattleMapUrl from '../../assets/images/battle/twentieth-battle-map.webp';