diff --git a/docs/battle-map-terrain-atlas-pipeline.md b/docs/battle-map-terrain-atlas-pipeline.md
index 9d6bde7..7ad10a2 100644
--- a/docs/battle-map-terrain-atlas-pipeline.md
+++ b/docs/battle-map-terrain-atlas-pipeline.md
@@ -2,7 +2,7 @@
## Scope
-The first fifteen 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 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
@@ -32,6 +32,11 @@ python scripts/generate-handpaint-map-sample.py --map twelfth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map thirteenth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map fourteenth --webp-quality 90
python scripts/generate-handpaint-map-sample.py --map fifteenth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map sixteenth --webp-quality 90
+python scripts/generate-handpaint-map-sample.py --map seventeenth --webp-quality 90
+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
```
## Current Assets
@@ -51,6 +56,11 @@ python scripts/generate-handpaint-map-sample.py --map fifteenth --webp-quality 9
- `src/assets/images/battle/thirteenth-battle-map.webp`
- `src/assets/images/battle/fourteenth-battle-map.webp`
- `src/assets/images/battle/fifteenth-battle-map.webp`
+- `src/assets/images/battle/sixteenth-battle-map.webp`
+- `src/assets/images/battle/seventeenth-battle-map.webp`
+- `src/assets/images/battle/eighteenth-battle-map.webp`
+- `src/assets/images/battle/nineteenth-battle-map.webp`
+- `src/assets/images/battle/twentieth-battle-map.webp`
## QA Outputs
@@ -82,5 +92,15 @@ python scripts/generate-handpaint-map-sample.py --map fifteenth --webp-quality 9
- `docs/fourteenth-battle-map-handpaint-preview.png`
- `docs/fifteenth-battle-map-handpaint-before-after.png`
- `docs/fifteenth-battle-map-handpaint-preview.png`
+- `docs/sixteenth-battle-map-handpaint-before-after.png`
+- `docs/sixteenth-battle-map-handpaint-preview.png`
+- `docs/seventeenth-battle-map-handpaint-before-after.png`
+- `docs/seventeenth-battle-map-handpaint-preview.png`
+- `docs/eighteenth-battle-map-handpaint-before-after.png`
+- `docs/eighteenth-battle-map-handpaint-preview.png`
+- `docs/nineteenth-battle-map-handpaint-before-after.png`
+- `docs/nineteenth-battle-map-handpaint-preview.png`
+- `docs/twentieth-battle-map-handpaint-before-after.png`
+- `docs/twentieth-battle-map-handpaint-preview.png`
Browser screenshots are saved per verification run after build/deploy.
diff --git a/docs/eighteenth-battle-map-handpaint-before-after.png b/docs/eighteenth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..3196676
Binary files /dev/null and b/docs/eighteenth-battle-map-handpaint-before-after.png differ
diff --git a/docs/eighteenth-battle-map-handpaint-preview.png b/docs/eighteenth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..7c6af3a
Binary files /dev/null and b/docs/eighteenth-battle-map-handpaint-preview.png differ
diff --git a/docs/nineteenth-battle-map-handpaint-before-after.png b/docs/nineteenth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..b967842
Binary files /dev/null and b/docs/nineteenth-battle-map-handpaint-before-after.png differ
diff --git a/docs/nineteenth-battle-map-handpaint-preview.png b/docs/nineteenth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..694141d
Binary files /dev/null and b/docs/nineteenth-battle-map-handpaint-preview.png differ
diff --git a/docs/seventeenth-battle-map-handpaint-before-after.png b/docs/seventeenth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..559d7aa
Binary files /dev/null and b/docs/seventeenth-battle-map-handpaint-before-after.png differ
diff --git a/docs/seventeenth-battle-map-handpaint-preview.png b/docs/seventeenth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..c8f3b2b
Binary files /dev/null and b/docs/seventeenth-battle-map-handpaint-preview.png differ
diff --git a/docs/sixteenth-battle-map-handpaint-before-after.png b/docs/sixteenth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..87c1851
Binary files /dev/null and b/docs/sixteenth-battle-map-handpaint-before-after.png differ
diff --git a/docs/sixteenth-battle-map-handpaint-preview.png b/docs/sixteenth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..577072d
Binary files /dev/null and b/docs/sixteenth-battle-map-handpaint-preview.png differ
diff --git a/docs/twentieth-battle-map-handpaint-before-after.png b/docs/twentieth-battle-map-handpaint-before-after.png
new file mode 100644
index 0000000..56df291
Binary files /dev/null and b/docs/twentieth-battle-map-handpaint-before-after.png differ
diff --git a/docs/twentieth-battle-map-handpaint-preview.png b/docs/twentieth-battle-map-handpaint-preview.png
new file mode 100644
index 0000000..43eb11f
Binary files /dev/null and b/docs/twentieth-battle-map-handpaint-preview.png differ
diff --git a/scripts/generate-handpaint-map-sample.py b/scripts/generate-handpaint-map-sample.py
index 1ce90ce..4c12c3c 100644
--- a/scripts/generate-handpaint-map-sample.py
+++ b/scripts/generate-handpaint-map-sample.py
@@ -154,6 +154,51 @@ MAP_CONFIGS = {
"before": BATTLE_IMAGE_DIR / "fifteenth-battle-map.svg",
"seed": 240844,
},
+ "sixteenth": {
+ "slug": "sixteenth-battle-map",
+ "terrain_export": "sixteenthBattleMap",
+ "units_export": "sixteenthBattleUnits",
+ "ally_positions_export": "sixteenthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "sixteenth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "sixteenth-battle-map.svg",
+ "seed": 240854,
+ },
+ "seventeenth": {
+ "slug": "seventeenth-battle-map",
+ "terrain_export": "seventeenthBattleMap",
+ "units_export": "seventeenthBattleUnits",
+ "ally_positions_export": "seventeenthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "seventeenth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "seventeenth-battle-map.svg",
+ "seed": 240864,
+ },
+ "eighteenth": {
+ "slug": "eighteenth-battle-map",
+ "terrain_export": "eighteenthBattleMap",
+ "units_export": "eighteenthBattleUnits",
+ "ally_positions_export": "eighteenthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "eighteenth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "eighteenth-battle-map.svg",
+ "seed": 240874,
+ },
+ "nineteenth": {
+ "slug": "nineteenth-battle-map",
+ "terrain_export": "nineteenthBattleMap",
+ "units_export": "nineteenthBattleUnits",
+ "ally_positions_export": "nineteenthBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "nineteenth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "nineteenth-battle-map.svg",
+ "seed": 240884,
+ },
+ "twentieth": {
+ "slug": "twentieth-battle-map",
+ "terrain_export": "twentiethBattleMap",
+ "units_export": "twentiethBattleUnits",
+ "ally_positions_export": "twentiethBattleAllyPositions",
+ "out": BATTLE_IMAGE_DIR / "twentieth-battle-map.webp",
+ "before": BATTLE_IMAGE_DIR / "twentieth-battle-map.svg",
+ "seed": 240894,
+ },
}
diff --git a/src/assets/images/battle/eighteenth-battle-map.svg b/src/assets/images/battle/eighteenth-battle-map.svg
deleted file mode 100644
index de447bd..0000000
--- a/src/assets/images/battle/eighteenth-battle-map.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
diff --git a/src/assets/images/battle/eighteenth-battle-map.webp b/src/assets/images/battle/eighteenth-battle-map.webp
new file mode 100644
index 0000000..7ece4c1
Binary files /dev/null and b/src/assets/images/battle/eighteenth-battle-map.webp differ
diff --git a/src/assets/images/battle/nineteenth-battle-map.svg b/src/assets/images/battle/nineteenth-battle-map.svg
deleted file mode 100644
index 5780372..0000000
--- a/src/assets/images/battle/nineteenth-battle-map.svg
+++ /dev/null
@@ -1,95 +0,0 @@
-
diff --git a/src/assets/images/battle/nineteenth-battle-map.webp b/src/assets/images/battle/nineteenth-battle-map.webp
new file mode 100644
index 0000000..e154e52
Binary files /dev/null and b/src/assets/images/battle/nineteenth-battle-map.webp differ
diff --git a/src/assets/images/battle/seventeenth-battle-map.svg b/src/assets/images/battle/seventeenth-battle-map.svg
deleted file mode 100644
index 33792ea..0000000
--- a/src/assets/images/battle/seventeenth-battle-map.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
diff --git a/src/assets/images/battle/seventeenth-battle-map.webp b/src/assets/images/battle/seventeenth-battle-map.webp
new file mode 100644
index 0000000..83bcc5a
Binary files /dev/null and b/src/assets/images/battle/seventeenth-battle-map.webp differ
diff --git a/src/assets/images/battle/sixteenth-battle-map.svg b/src/assets/images/battle/sixteenth-battle-map.svg
deleted file mode 100644
index 06475dd..0000000
--- a/src/assets/images/battle/sixteenth-battle-map.svg
+++ /dev/null
@@ -1,89 +0,0 @@
-
diff --git a/src/assets/images/battle/sixteenth-battle-map.webp b/src/assets/images/battle/sixteenth-battle-map.webp
new file mode 100644
index 0000000..c71f90f
Binary files /dev/null and b/src/assets/images/battle/sixteenth-battle-map.webp differ
diff --git a/src/assets/images/battle/twentieth-battle-map.svg b/src/assets/images/battle/twentieth-battle-map.svg
deleted file mode 100644
index 9f7e0fa..0000000
--- a/src/assets/images/battle/twentieth-battle-map.svg
+++ /dev/null
@@ -1,98 +0,0 @@
-
diff --git a/src/assets/images/battle/twentieth-battle-map.webp b/src/assets/images/battle/twentieth-battle-map.webp
new file mode 100644
index 0000000..1487633
Binary files /dev/null and b/src/assets/images/battle/twentieth-battle-map.webp differ
diff --git a/src/game/data/battleMapAssets.ts b/src/game/data/battleMapAssets.ts
index a59dc7e..1ba5c11 100644
--- a/src/game/data/battleMapAssets.ts
+++ b/src/game/data/battleMapAssets.ts
@@ -1,5 +1,5 @@
import eighthBattleMapUrl from '../../assets/images/battle/eighth-battle-map.webp';
-import eighteenthBattleMapUrl from '../../assets/images/battle/eighteenth-battle-map.svg';
+import eighteenthBattleMapUrl from '../../assets/images/battle/eighteenth-battle-map.webp';
import eleventhBattleMapUrl from '../../assets/images/battle/eleventh-battle-map.webp';
import fiftiethBattleMapUrl from '../../assets/images/battle/fiftieth-battle-map.svg';
import fiftyFirstBattleMapUrl from '../../assets/images/battle/fifty-first-battle-map.svg';
@@ -33,12 +33,12 @@ import fortySixthBattleMapUrl from '../../assets/images/battle/forty-sixth-battl
import fortyThirdBattleMapUrl from '../../assets/images/battle/forty-third-battle-map.svg';
import fourteenthBattleMapUrl from '../../assets/images/battle/fourteenth-battle-map.webp';
import fourthBattleMapUrl from '../../assets/images/battle/fourth-battle-map.webp';
-import nineteenthBattleMapUrl from '../../assets/images/battle/nineteenth-battle-map.svg';
+import nineteenthBattleMapUrl from '../../assets/images/battle/nineteenth-battle-map.webp';
import ninthBattleMapUrl from '../../assets/images/battle/ninth-battle-map.webp';
import secondBattleMapUrl from '../../assets/images/battle/second-battle-map.webp';
import seventhBattleMapUrl from '../../assets/images/battle/seventh-battle-map.webp';
-import seventeenthBattleMapUrl from '../../assets/images/battle/seventeenth-battle-map.svg';
-import sixteenthBattleMapUrl from '../../assets/images/battle/sixteenth-battle-map.svg';
+import seventeenthBattleMapUrl from '../../assets/images/battle/seventeenth-battle-map.webp';
+import sixteenthBattleMapUrl from '../../assets/images/battle/sixteenth-battle-map.webp';
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';
@@ -53,7 +53,7 @@ import thirtySeventhBattleMapUrl from '../../assets/images/battle/thirty-seventh
import thirtySixthBattleMapUrl from '../../assets/images/battle/thirty-sixth-battle-map.svg';
import thirtyThirdBattleMapUrl from '../../assets/images/battle/thirty-third-battle-map.svg';
import thirdBattleMapUrl from '../../assets/images/battle/third-battle-map.webp';
-import twentiethBattleMapUrl from '../../assets/images/battle/twentieth-battle-map.svg';
+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';