diff --git a/docs/battle-map-terrain-atlas-pipeline.md b/docs/battle-map-terrain-atlas-pipeline.md
index d4b701e..8ea75d1 100644
--- a/docs/battle-map-terrain-atlas-pipeline.md
+++ b/docs/battle-map-terrain-atlas-pipeline.md
@@ -2,7 +2,7 @@
## Scope
-The first forty-six 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-eight 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
@@ -72,6 +72,8 @@ python scripts/generate-handpaint-map-sample.py --map forty-third --webp-quality
python scripts/generate-handpaint-map-sample.py --map forty-fourth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map forty-fifth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map forty-sixth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map forty-seventh --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map forty-eighth --webp-quality 90
```
Comparison example:
@@ -128,6 +130,8 @@ python scripts/generate-handpaint-map-sample.py --map thirtieth --tile-size 192
- `src/assets/images/battle/forty-fourth-battle-map.webp`
- `src/assets/images/battle/forty-fifth-battle-map.webp`
- `src/assets/images/battle/forty-sixth-battle-map.webp`
+- `src/assets/images/battle/forty-seventh-battle-map.webp`
+- `src/assets/images/battle/forty-eighth-battle-map.webp`
## QA Outputs
@@ -221,5 +225,9 @@ python scripts/generate-handpaint-map-sample.py --map thirtieth --tile-size 192
- `docs/forty-fifth-battle-map-handpaint-preview.png`
- `docs/forty-sixth-battle-map-handpaint-before-after.png`
- `docs/forty-sixth-battle-map-handpaint-preview.png`
+- `docs/forty-seventh-battle-map-handpaint-before-after.png`
+- `docs/forty-seventh-battle-map-handpaint-preview.png`
+- `docs/forty-eighth-battle-map-handpaint-before-after.png`
+- `docs/forty-eighth-battle-map-handpaint-preview.png`
Browser screenshots are saved per verification run after build/deploy.
diff --git a/docs/forty-eighth-battle-map-handpaint-before-after.png b/docs/forty-eighth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..08b9454
Binary files /dev/null and b/docs/forty-eighth-battle-map-handpaint-before-after.png differ
diff --git a/docs/forty-eighth-battle-map-handpaint-preview.png b/docs/forty-eighth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..c7acc0d
Binary files /dev/null and b/docs/forty-eighth-battle-map-handpaint-preview.png differ
diff --git a/docs/forty-seventh-battle-map-handpaint-before-after.png b/docs/forty-seventh-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..f55db2b
Binary files /dev/null and b/docs/forty-seventh-battle-map-handpaint-before-after.png differ
diff --git a/docs/forty-seventh-battle-map-handpaint-preview.png b/docs/forty-seventh-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..abd0b8a
Binary files /dev/null and b/docs/forty-seventh-battle-map-handpaint-preview.png differ
diff --git a/scripts/generate-handpaint-map-sample.py b/scripts/generate-handpaint-map-sample.py
index a96af1e..6b96d2c 100644
--- a/scripts/generate-handpaint-map-sample.py
+++ b/scripts/generate-handpaint-map-sample.py
@@ -458,6 +458,26 @@ MAP_CONFIGS = {
"seed": 241154,
"tile_size": ULTRA_LARGE_MAP_TILE_SIZE,
},
+ "forty-seventh": {
+ "slug": "forty-seventh-battle-map",
+ "terrain_export": "fortySeventhBattleMap",
+ "units_export": "fortySeventhBattleUnits",
+ "ally_positions_export": "fortySeventhBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "forty-seventh-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "forty-seventh-battle-map.svg",
+ "seed": 241164,
+ "tile_size": ULTRA_LARGE_MAP_TILE_SIZE,
+ },
+ "forty-eighth": {
+ "slug": "forty-eighth-battle-map",
+ "terrain_export": "fortyEighthBattleMap",
+ "units_export": "fortyEighthBattleUnits",
+ "ally_positions_export": "fortyEighthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "forty-eighth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "forty-eighth-battle-map.svg",
+ "seed": 241174,
+ "tile_size": ULTRA_LARGE_MAP_TILE_SIZE,
+ },
}
diff --git a/src/assets/images/battle/forty-eighth-battle-map.svg b/src/assets/images/battle/forty-eighth-battle-map.svg
deleted file mode 100644
index 3272f7f..0000000
--- a/src/assets/images/battle/forty-eighth-battle-map.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
diff --git a/src/assets/images/battle/forty-eighth-battle-map.webp b/src/assets/images/battle/forty-eighth-battle-map.webp
new file mode 100644
index 0000000..1150294
Binary files /dev/null and b/src/assets/images/battle/forty-eighth-battle-map.webp differ
diff --git a/src/assets/images/battle/forty-seventh-battle-map.svg b/src/assets/images/battle/forty-seventh-battle-map.svg
deleted file mode 100644
index 360624c..0000000
--- a/src/assets/images/battle/forty-seventh-battle-map.svg
+++ /dev/null
@@ -1,81 +0,0 @@
-
diff --git a/src/assets/images/battle/forty-seventh-battle-map.webp b/src/assets/images/battle/forty-seventh-battle-map.webp
new file mode 100644
index 0000000..19ce90f
Binary files /dev/null and b/src/assets/images/battle/forty-seventh-battle-map.webp differ
diff --git a/src/game/data/battleMapAssets.ts b/src/game/data/battleMapAssets.ts
index 2b0d3a1..c9a63a4 100644
--- a/src/game/data/battleMapAssets.ts
+++ b/src/game/data/battleMapAssets.ts
@@ -22,13 +22,13 @@ 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.webp';
-import fortyEighthBattleMapUrl from '../../assets/images/battle/forty-eighth-battle-map.svg';
+import fortyEighthBattleMapUrl from '../../assets/images/battle/forty-eighth-battle-map.webp';
import fortyFifthBattleMapUrl from '../../assets/images/battle/forty-fifth-battle-map.webp';
import fortyFirstBattleMapUrl from '../../assets/images/battle/forty-first-battle-map.webp';
import fortyFourthBattleMapUrl from '../../assets/images/battle/forty-fourth-battle-map.webp';
import fortyNinthBattleMapUrl from '../../assets/images/battle/forty-ninth-battle-map.svg';
import fortySecondBattleMapUrl from '../../assets/images/battle/forty-second-battle-map.webp';
-import fortySeventhBattleMapUrl from '../../assets/images/battle/forty-seventh-battle-map.svg';
+import fortySeventhBattleMapUrl from '../../assets/images/battle/forty-seventh-battle-map.webp';
import fortySixthBattleMapUrl from '../../assets/images/battle/forty-sixth-battle-map.webp';
import fortyThirdBattleMapUrl from '../../assets/images/battle/forty-third-battle-map.webp';
import fourteenthBattleMapUrl from '../../assets/images/battle/fourteenth-battle-map.webp';