Replace fifteenth battle map with hand-painted asset
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
## Scope
|
||||
|
||||
The first fourteen 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 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.
|
||||
|
||||
## Art Direction
|
||||
|
||||
@@ -31,6 +31,7 @@ python scripts/generate-handpaint-map-sample.py --map eleventh --webp-quality 90
|
||||
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
|
||||
```
|
||||
|
||||
## Current Assets
|
||||
@@ -49,6 +50,7 @@ python scripts/generate-handpaint-map-sample.py --map fourteenth --webp-quality
|
||||
- `src/assets/images/battle/twelfth-battle-map.webp`
|
||||
- `src/assets/images/battle/thirteenth-battle-map.webp`
|
||||
- `src/assets/images/battle/fourteenth-battle-map.webp`
|
||||
- `src/assets/images/battle/fifteenth-battle-map.webp`
|
||||
|
||||
## QA Outputs
|
||||
|
||||
@@ -78,5 +80,7 @@ python scripts/generate-handpaint-map-sample.py --map fourteenth --webp-quality
|
||||
- `docs/thirteenth-battle-map-handpaint-preview.png`
|
||||
- `docs/fourteenth-battle-map-handpaint-before-after.png`
|
||||
- `docs/fourteenth-battle-map-handpaint-preview.png`
|
||||
- `docs/fifteenth-battle-map-handpaint-before-after.png`
|
||||
- `docs/fifteenth-battle-map-handpaint-preview.png`
|
||||
|
||||
Browser screenshots are saved per verification run after build/deploy.
|
||||
|
||||
BIN
docs/fifteenth-battle-map-handpaint-before-after.png
Normal file
BIN
docs/fifteenth-battle-map-handpaint-before-after.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
BIN
docs/fifteenth-battle-map-handpaint-preview.png
Normal file
BIN
docs/fifteenth-battle-map-handpaint-preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
@@ -145,6 +145,15 @@ MAP_CONFIGS = {
|
||||
"before": BATTLE_IMAGE_DIR / "fourteenth-battle-map.svg",
|
||||
"seed": 240834,
|
||||
},
|
||||
"fifteenth": {
|
||||
"slug": "fifteenth-battle-map",
|
||||
"terrain_export": "fifteenthBattleMap",
|
||||
"units_export": "fifteenthBattleUnits",
|
||||
"ally_positions_export": "fifteenthBattleAllyPositions",
|
||||
"out": BATTLE_IMAGE_DIR / "fifteenth-battle-map.webp",
|
||||
"before": BATTLE_IMAGE_DIR / "fifteenth-battle-map.svg",
|
||||
"seed": 240844,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="3400" height="2400" viewBox="0 0 3400 2400">
|
||||
<defs>
|
||||
<linearGradient id="plain" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#817b55"/>
|
||||
<stop offset=".48" stop-color="#b39a63"/>
|
||||
<stop offset="1" stop-color="#6f7650"/>
|
||||
</linearGradient>
|
||||
<pattern id="dust" width="72" height="72" patternUnits="userSpaceOnUse">
|
||||
<path d="M10 22h26M44 28h18M16 54h30" stroke="#2d2719" stroke-width="5" opacity=".13" fill="none"/>
|
||||
<path d="M18 10l9 8M58 42l8 8M8 64l12-8" stroke="#ead79b" stroke-width="4" opacity=".14" fill="none"/>
|
||||
</pattern>
|
||||
</defs>
|
||||
<rect width="3400" height="2400" fill="url(#plain)"/>
|
||||
<rect width="3400" height="2400" fill="url(#dust)" opacity=".68"/>
|
||||
<rect x="1390" y="90" width="250" height="2220" rx="116" fill="#5a91a4" opacity=".46"/>
|
||||
<rect x="2380" y="160" width="230" height="2060" rx="108" fill="#5c96a8" opacity=".4"/>
|
||||
<rect x="1494" y="150" width="18" height="2030" rx="9" fill="#b4dad6" opacity=".22"/>
|
||||
<rect x="2484" y="260" width="18" height="1860" rx="9" fill="#b4dad6" opacity=".18"/>
|
||||
<path d="M160 1810 L1080 1810 L1480 1450 L2150 1450 L2700 1040 L3230 1040" stroke="#cfb87c" stroke-width="76" stroke-linecap="round" opacity=".9" fill="none"/>
|
||||
<path d="M680 1730 L1350 1080 L2200 1080 L2940 880" stroke="#c7ad73" stroke-width="66" stroke-linecap="round" opacity=".78" fill="none"/>
|
||||
<path d="M2920 775 L2920 1700" stroke="#c7ad73" stroke-width="64" stroke-linecap="round" opacity=".76" fill="none"/>
|
||||
<path d="M160 1810 L1080 1810 L1480 1450 L2150 1450 L2700 1040 L3230 1040" stroke="#6d4e30" stroke-width="12" stroke-dasharray="48 50" opacity=".22" fill="none"/>
|
||||
<path d="M680 1730 L1350 1080 L2200 1080 L2940 880" stroke="#6d4e30" stroke-width="10" stroke-dasharray="42 48" opacity=".18" fill="none"/>
|
||||
<g opacity=".48">
|
||||
<ellipse cx="450" cy="330" rx="200" ry="118" fill="#6f8753"/>
|
||||
<ellipse cx="760" cy="470" rx="220" ry="126" fill="#78905b"/>
|
||||
<ellipse cx="610" cy="1260" rx="250" ry="132" fill="#708854"/>
|
||||
<ellipse cx="910" cy="1160" rx="210" ry="110" fill="#728a56"/>
|
||||
<ellipse cx="2870" cy="2040" rx="255" ry="138" fill="#748a55"/>
|
||||
</g>
|
||||
<g opacity=".28">
|
||||
<ellipse cx="910" cy="310" rx="235" ry="132" fill="#9c9365"/>
|
||||
<ellipse cx="2040" cy="2035" rx="260" ry="146" fill="#9c9365"/>
|
||||
<ellipse cx="3160" cy="230" rx="220" ry="126" fill="#9c9365"/>
|
||||
</g>
|
||||
<g opacity=".62">
|
||||
<rect x="2730" y="835" width="545" height="66" fill="#99845d"/>
|
||||
<rect x="2730" y="1480" width="545" height="66" fill="#927e58"/>
|
||||
<rect x="2710" y="885" width="66" height="620" fill="#82704e"/>
|
||||
<rect x="3226" y="885" width="66" height="620" fill="#82704e"/>
|
||||
<rect x="2850" y="1060" width="300" height="255" rx="14" fill="#a48a58"/>
|
||||
<rect x="2920" y="1145" width="160" height="106" fill="#695a40" opacity=".56"/>
|
||||
<path d="M2750 872 H3250" stroke="#dcc384" stroke-width="10" opacity=".36" fill="none"/>
|
||||
<path d="M2750 1514 H3250" stroke="#dcc384" stroke-width="10" opacity=".28" fill="none"/>
|
||||
</g>
|
||||
<g opacity=".8">
|
||||
<ellipse cx="1040" cy="1635" rx="150" ry="88" fill="#806238"/>
|
||||
<rect x="938" y="1574" width="204" height="120" fill="#a8864b"/>
|
||||
<path d="M938 1574 L1040 1502 L1142 1574Z" fill="#6c4d31"/>
|
||||
<rect x="1008" y="1618" width="62" height="76" fill="#392a1d"/>
|
||||
</g>
|
||||
<g opacity=".52">
|
||||
<path d="M1380 300 C1140 370 1020 550 1050 760" stroke="#28321f" stroke-width="18" opacity=".18" fill="none"/>
|
||||
<path d="M2300 1770 C2500 1850 2690 1870 2920 1800" stroke="#28321f" stroke-width="18" opacity=".16" fill="none"/>
|
||||
</g>
|
||||
<g opacity=".42">
|
||||
<path d="M0 0H3400V2400H0Z" fill="none" stroke="#ead6a2" stroke-width="22"/>
|
||||
<path d="M108 98H3292V2298H108Z" fill="none" stroke="#3a2c1b" stroke-width="12"/>
|
||||
</g>
|
||||
<rect width="3400" height="2400" fill="#101015" opacity=".035"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.8 KiB |
BIN
src/assets/images/battle/fifteenth-battle-map.webp
Normal file
BIN
src/assets/images/battle/fifteenth-battle-map.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
@@ -19,7 +19,7 @@ import sixtySixthBattleMapUrl from '../../assets/images/battle/sixty-sixth-battl
|
||||
import fiftySeventhBattleMapUrl from '../../assets/images/battle/fifty-seventh-battle-map.svg';
|
||||
import fiftySixthBattleMapUrl from '../../assets/images/battle/fifty-sixth-battle-map.svg';
|
||||
import fifthBattleMapUrl from '../../assets/images/battle/fifth-battle-map.webp';
|
||||
import fifteenthBattleMapUrl from '../../assets/images/battle/fifteenth-battle-map.svg';
|
||||
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 fortyEighthBattleMapUrl from '../../assets/images/battle/forty-eighth-battle-map.svg';
|
||||
|
||||
Reference in New Issue
Block a user