Replace battle maps 53 and 54 with hand-painted assets
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
The first fifty-two 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 fifty-four 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
|
## Art Direction
|
||||||
|
|
||||||
@@ -19,6 +19,7 @@ The first fifty-two campaign battles now use the same hand-painted tactical map
|
|||||||
- Ultra large maps can use a 160px tile target through `ULTRA_LARGE_MAP_TILE_SIZE` when 176px output exceeds WebP encoder limits.
|
- Ultra large maps can use a 160px tile target through `ULTRA_LARGE_MAP_TILE_SIZE` when 176px output exceeds WebP encoder limits.
|
||||||
- Extreme large maps can use a 152px tile target through `EXTREME_LARGE_MAP_TILE_SIZE` when 160px output exceeds WebP encoder limits.
|
- Extreme large maps can use a 152px tile target through `EXTREME_LARGE_MAP_TILE_SIZE` when 160px output exceeds WebP encoder limits.
|
||||||
- Massive maps can use a 144px tile target through `MASSIVE_LARGE_MAP_TILE_SIZE` when 152px output approaches the WebP encoder edge.
|
- Massive maps can use a 144px tile target through `MASSIVE_LARGE_MAP_TILE_SIZE` when 152px output approaches the WebP encoder edge.
|
||||||
|
- Colossal maps can use a 136px tile target through `COLOSSAL_LARGE_MAP_TILE_SIZE` when 144px output hits WebP encoding error 6.
|
||||||
- Re-evaluate the tile target before a generated map's longest edge approaches roughly 16,384px at 192px per tile.
|
- Re-evaluate the tile target before a generated map's longest edge approaches roughly 16,384px at 192px per tile.
|
||||||
- Use `--tile-size` only for controlled comparisons; commit the selected production size in the map config.
|
- Use `--tile-size` only for controlled comparisons; commit the selected production size in the map config.
|
||||||
|
|
||||||
@@ -80,6 +81,8 @@ python scripts/generate-handpaint-map-sample.py --map forty-ninth --webp-quality
|
|||||||
python scripts/generate-handpaint-map-sample.py --map fiftieth --webp-quality 90
|
python scripts/generate-handpaint-map-sample.py --map fiftieth --webp-quality 90
|
||||||
python scripts/generate-handpaint-map-sample.py --map fifty-first --webp-quality 90
|
python scripts/generate-handpaint-map-sample.py --map fifty-first --webp-quality 90
|
||||||
python scripts/generate-handpaint-map-sample.py --map fifty-second --webp-quality 90
|
python scripts/generate-handpaint-map-sample.py --map fifty-second --webp-quality 90
|
||||||
|
python scripts/generate-handpaint-map-sample.py --map fifty-third --webp-quality 90
|
||||||
|
python scripts/generate-handpaint-map-sample.py --map fifty-fourth --webp-quality 90
|
||||||
```
|
```
|
||||||
|
|
||||||
Comparison example:
|
Comparison example:
|
||||||
@@ -142,6 +145,8 @@ python scripts/generate-handpaint-map-sample.py --map thirtieth --tile-size 192
|
|||||||
- `src/assets/images/battle/fiftieth-battle-map.webp`
|
- `src/assets/images/battle/fiftieth-battle-map.webp`
|
||||||
- `src/assets/images/battle/fifty-first-battle-map.webp`
|
- `src/assets/images/battle/fifty-first-battle-map.webp`
|
||||||
- `src/assets/images/battle/fifty-second-battle-map.webp`
|
- `src/assets/images/battle/fifty-second-battle-map.webp`
|
||||||
|
- `src/assets/images/battle/fifty-third-battle-map.webp`
|
||||||
|
- `src/assets/images/battle/fifty-fourth-battle-map.webp`
|
||||||
|
|
||||||
## QA Outputs
|
## QA Outputs
|
||||||
|
|
||||||
@@ -247,5 +252,9 @@ python scripts/generate-handpaint-map-sample.py --map thirtieth --tile-size 192
|
|||||||
- `docs/fifty-first-battle-map-handpaint-preview.png`
|
- `docs/fifty-first-battle-map-handpaint-preview.png`
|
||||||
- `docs/fifty-second-battle-map-handpaint-before-after.png`
|
- `docs/fifty-second-battle-map-handpaint-before-after.png`
|
||||||
- `docs/fifty-second-battle-map-handpaint-preview.png`
|
- `docs/fifty-second-battle-map-handpaint-preview.png`
|
||||||
|
- `docs/fifty-third-battle-map-handpaint-before-after.png`
|
||||||
|
- `docs/fifty-third-battle-map-handpaint-preview.png`
|
||||||
|
- `docs/fifty-fourth-battle-map-handpaint-before-after.png`
|
||||||
|
- `docs/fifty-fourth-battle-map-handpaint-preview.png`
|
||||||
|
|
||||||
Browser screenshots are saved per verification run after build/deploy.
|
Browser screenshots are saved per verification run after build/deploy.
|
||||||
|
|||||||
BIN
docs/fifty-fourth-battle-map-handpaint-before-after.png
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
docs/fifty-fourth-battle-map-handpaint-preview.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
docs/fifty-third-battle-map-handpaint-before-after.png
Normal file
|
After Width: | Height: | Size: 3.2 MiB |
BIN
docs/fifty-third-battle-map-handpaint-preview.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
@@ -21,6 +21,7 @@ VERY_LARGE_MAP_TILE_SIZE = 176
|
|||||||
ULTRA_LARGE_MAP_TILE_SIZE = 160
|
ULTRA_LARGE_MAP_TILE_SIZE = 160
|
||||||
EXTREME_LARGE_MAP_TILE_SIZE = 152
|
EXTREME_LARGE_MAP_TILE_SIZE = 152
|
||||||
MASSIVE_LARGE_MAP_TILE_SIZE = 144
|
MASSIVE_LARGE_MAP_TILE_SIZE = 144
|
||||||
|
COLOSSAL_LARGE_MAP_TILE_SIZE = 136
|
||||||
TILE = DEFAULT_TILE_SIZE
|
TILE = DEFAULT_TILE_SIZE
|
||||||
RNG = random.Random(240704)
|
RNG = random.Random(240704)
|
||||||
|
|
||||||
@@ -520,6 +521,26 @@ MAP_CONFIGS = {
|
|||||||
"seed": 241214,
|
"seed": 241214,
|
||||||
"tile_size": MASSIVE_LARGE_MAP_TILE_SIZE,
|
"tile_size": MASSIVE_LARGE_MAP_TILE_SIZE,
|
||||||
},
|
},
|
||||||
|
"fifty-third": {
|
||||||
|
"slug": "fifty-third-battle-map",
|
||||||
|
"terrain_export": "fiftyThirdBattleMap",
|
||||||
|
"units_export": "fiftyThirdBattleUnits",
|
||||||
|
"ally_positions_export": "fiftyThirdBattleAllyPositions",
|
||||||
|
"out": BATTLE_IMAGE_DIR / "fifty-third-battle-map.webp",
|
||||||
|
"before": BATTLE_IMAGE_DIR / "fifty-third-battle-map.svg",
|
||||||
|
"seed": 241224,
|
||||||
|
"tile_size": COLOSSAL_LARGE_MAP_TILE_SIZE,
|
||||||
|
},
|
||||||
|
"fifty-fourth": {
|
||||||
|
"slug": "fifty-fourth-battle-map",
|
||||||
|
"terrain_export": "fiftyFourthBattleMap",
|
||||||
|
"units_export": "fiftyFourthBattleUnits",
|
||||||
|
"ally_positions_export": "fiftyFourthBattleAllyPositions",
|
||||||
|
"out": BATTLE_IMAGE_DIR / "fifty-fourth-battle-map.webp",
|
||||||
|
"before": BATTLE_IMAGE_DIR / "fifty-fourth-battle-map.svg",
|
||||||
|
"seed": 241234,
|
||||||
|
"tile_size": COLOSSAL_LARGE_MAP_TILE_SIZE,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1158,8 +1179,8 @@ def main() -> None:
|
|||||||
|
|
||||||
config = dict(MAP_CONFIGS[args.map])
|
config = dict(MAP_CONFIGS[args.map])
|
||||||
if args.tile_size is not None:
|
if args.tile_size is not None:
|
||||||
if args.tile_size < 144:
|
if args.tile_size < 136:
|
||||||
raise ValueError("--tile-size must be 144 or greater")
|
raise ValueError("--tile-size must be 136 or greater")
|
||||||
config["tile_size"] = args.tile_size
|
config["tile_size"] = args.tile_size
|
||||||
out_path = args.out or Path(config["out"])
|
out_path = args.out or Path(config["out"])
|
||||||
before_path = args.before or Path(config["before"])
|
before_path = args.before or Path(config["before"])
|
||||||
|
|||||||
@@ -1,86 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="5400" height="4500" viewBox="0 0 10800 9000" preserveAspectRatio="none">
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="earth" x1="0" y1="0" x2="1" y2="1">
|
|
||||||
<stop offset="0" stop-color="#4a442b"/>
|
|
||||||
<stop offset="0.42" stop-color="#7b6739"/>
|
|
||||||
<stop offset="1" stop-color="#343522"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="river" x1="0" y1="0" x2="1" y2="1">
|
|
||||||
<stop offset="0" stop-color="#162f46"/>
|
|
||||||
<stop offset="0.45" stop-color="#258087"/>
|
|
||||||
<stop offset="1" stop-color="#0e2738"/>
|
|
||||||
</linearGradient>
|
|
||||||
<radialGradient id="councilGlow" cx="50%" cy="50%" r="62%">
|
|
||||||
<stop offset="0" stop-color="#d9b66e" stop-opacity=".76"/>
|
|
||||||
<stop offset=".58" stop-color="#a46f3c" stop-opacity=".36"/>
|
|
||||||
<stop offset="1" stop-color="#2f2f1e" stop-opacity="0"/>
|
|
||||||
</radialGradient>
|
|
||||||
<pattern id="canopy" width="480" height="480" patternUnits="userSpaceOnUse">
|
|
||||||
<rect width="480" height="480" fill="#20351f"/>
|
|
||||||
<path d="M20 330 C90 180 206 104 454 38 M-30 110 C100 252 250 330 520 394" stroke="#557734" stroke-width="38" stroke-linecap="round" opacity=".72"/>
|
|
||||||
<path d="M78 390 C150 278 248 208 390 138 M94 80 C200 192 304 254 430 286" stroke="#9ba35d" stroke-width="13" stroke-linecap="round" opacity=".72"/>
|
|
||||||
<circle cx="118" cy="150" r="24" fill="#121d14" opacity=".66"/>
|
|
||||||
<circle cx="348" cy="346" r="26" fill="#2b421f" opacity=".7"/>
|
|
||||||
</pattern>
|
|
||||||
<pattern id="ridge" width="380" height="380" patternUnits="userSpaceOnUse">
|
|
||||||
<rect width="380" height="380" fill="#323320"/>
|
|
||||||
<path d="M-20 92 L100 26 L240 78 L408 18 M-28 252 L116 190 L232 254 L416 172" stroke="#827958" stroke-width="32" stroke-linecap="round" opacity=".68"/>
|
|
||||||
<path d="M38 140 L166 98 L282 146 M62 300 L180 258 L318 312" stroke="#1e2314" stroke-width="18" stroke-linecap="round" opacity=".68"/>
|
|
||||||
</pattern>
|
|
||||||
<pattern id="dust" width="320" height="320" patternUnits="userSpaceOnUse">
|
|
||||||
<rect width="320" height="320" fill="#8b7142"/>
|
|
||||||
<path d="M0 88 C88 42 190 48 320 20 M-16 250 C96 206 206 214 352 158" stroke="#c19b55" stroke-width="24" opacity=".54"/>
|
|
||||||
<path d="M42 166 C122 136 218 138 304 106" stroke="#5c4a2d" stroke-width="11" opacity=".45"/>
|
|
||||||
</pattern>
|
|
||||||
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
|
|
||||||
<feDropShadow dx="0" dy="24" stdDeviation="28" flood-color="#0e140f" flood-opacity=".56"/>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<rect width="10800" height="9000" fill="url(#earth)"/>
|
|
||||||
<rect width="10800" height="9000" fill="url(#canopy)" opacity=".2"/>
|
|
||||||
<ellipse cx="6820" cy="4860" rx="2350" ry="1740" fill="url(#councilGlow)"/>
|
|
||||||
|
|
||||||
<path d="M0 8280 C1160 7820 2260 7900 3480 8140 C4660 8380 5740 8180 6800 7680 C8000 7120 9200 7040 10800 7420 L10800 9000 L0 9000 Z" fill="url(#river)" opacity=".95"/>
|
|
||||||
<path d="M7040 0 C6880 1020 7090 1840 7320 2640 C7560 3500 7500 4540 7240 5520 C7000 6420 7170 7300 7580 8460 L6940 8460 C6520 7180 6380 6120 6640 5160 C6860 4300 6900 3500 6680 2710 C6440 1840 6260 980 6460 0 Z" fill="url(#river)" opacity=".92"/>
|
|
||||||
|
|
||||||
<path d="M0 0 L3300 0 L3220 3720 C2480 3640 1780 3330 1080 2820 C620 2480 270 2330 0 2290 Z" fill="url(#ridge)" filter="url(#shadow)"/>
|
|
||||||
<path d="M3600 0 L7240 0 C7320 830 7440 1560 7640 2250 C6660 2220 5520 2040 4380 2340 C3960 2450 3700 2600 3540 2840 Z" fill="url(#ridge)" filter="url(#shadow)"/>
|
|
||||||
<path d="M7840 0 L10800 0 L10800 4200 C10040 3960 9220 3620 8440 3180 C8120 2980 7900 2780 7740 2540 Z" fill="url(#ridge)" filter="url(#shadow)"/>
|
|
||||||
<path d="M0 4900 C850 5160 1470 5560 2010 6180 C2380 6600 2860 6820 3600 6880 L0 8200 Z" fill="url(#ridge)" filter="url(#shadow)"/>
|
|
||||||
<path d="M8160 6320 C8760 6500 9340 6960 9820 7780 C10140 8330 10480 8620 10800 8720 L10800 4660 C10060 4600 9400 4840 8900 5280 C8540 5600 8300 5920 8160 6320 Z" fill="url(#ridge)" filter="url(#shadow)"/>
|
|
||||||
|
|
||||||
<path d="M980 6860 C2180 6380 3260 6420 4440 6600 C5500 6760 6320 6460 7160 5900 C8360 5100 9480 4900 10600 5100" fill="none" stroke="url(#dust)" stroke-width="470" stroke-linecap="round" opacity=".95"/>
|
|
||||||
<path d="M4100 6100 C4460 5000 4560 4040 4380 3220 C4280 2780 4420 2420 4800 2120 C5460 1600 6320 1460 7460 1660" fill="none" stroke="url(#dust)" stroke-width="390" stroke-linecap="round" opacity=".92"/>
|
|
||||||
<path d="M7320 5880 C7840 5320 8420 4800 9080 4240 C9660 3740 10100 3100 10520 2280" fill="none" stroke="url(#dust)" stroke-width="360" stroke-linecap="round" opacity=".9"/>
|
|
||||||
|
|
||||||
<g opacity=".96">
|
|
||||||
<rect x="1260" y="6180" width="1620" height="880" rx="86" fill="#36532a" stroke="#e0bb74" stroke-width="34"/>
|
|
||||||
<path d="M1440 6650 L2700 6650 M1840 6290 L1840 6960 M2300 6290 L2300 6960" stroke="#b0b870" stroke-width="44" opacity=".64"/>
|
|
||||||
<rect x="4320" y="4800" width="1740" height="1040" rx="76" fill="#324d2b" stroke="#e0bb74" stroke-width="34"/>
|
|
||||||
<path d="M4560 5340 L5860 5340 M4980 4920 L4980 5740 M5460 4920 L5460 5740" stroke="#b0b870" stroke-width="44" opacity=".62"/>
|
|
||||||
<rect x="8000" y="4380" width="1560" height="960" rx="76" fill="#31492a" stroke="#e0bb74" stroke-width="34"/>
|
|
||||||
<path d="M8260 4860 L9300 4860 M8660 4500 L8660 5260 M9060 4500 L9060 5260" stroke="#b0b870" stroke-width="44" opacity=".62"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g opacity=".96">
|
|
||||||
<rect x="3060" y="5680" width="1420" height="820" rx="44" fill="#52462a" stroke="#d18a3e" stroke-width="38"/>
|
|
||||||
<path d="M3220 6360 L4340 5800 M3240 5800 L4360 6360" stroke="#241e14" stroke-width="44" opacity=".56"/>
|
|
||||||
<rect x="6700" y="5960" width="1520" height="900" rx="44" fill="#52462a" stroke="#d18a3e" stroke-width="38"/>
|
|
||||||
<path d="M6880 6700 L8060 6060 M6900 6080 L8080 6660" stroke="#241e14" stroke-width="44" opacity=".56"/>
|
|
||||||
<rect x="8640" y="3660" width="1420" height="820" rx="44" fill="#52462a" stroke="#d18a3e" stroke-width="38"/>
|
|
||||||
<path d="M8800 4340 L9920 3780 M8840 3780 L9940 4340" stroke="#241e14" stroke-width="44" opacity=".56"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g opacity=".92">
|
|
||||||
<ellipse cx="6760" cy="4860" rx="910" ry="620" fill="#574b2f" stroke="#e7c780" stroke-width="46"/>
|
|
||||||
<ellipse cx="6760" cy="4860" rx="630" ry="390" fill="#342d20" stroke="#9d7a4a" stroke-width="26" opacity=".82"/>
|
|
||||||
<path d="M6120 4860 L7400 4860 M6760 4240 L6760 5480" stroke="#e2bf76" stroke-width="44" opacity=".45"/>
|
|
||||||
<circle cx="6760" cy="4860" r="92" fill="#d9a24e"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g opacity=".2">
|
|
||||||
<circle cx="1420" cy="920" r="560" fill="#dec273"/>
|
|
||||||
<circle cx="5700" cy="3500" r="500" fill="#dec273"/>
|
|
||||||
<circle cx="9320" cy="7080" r="560" fill="#dec273"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 6.4 KiB |
BIN
src/assets/images/battle/fifty-fourth-battle-map.webp
Normal file
|
After Width: | Height: | Size: 20 MiB |
@@ -1,75 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="5300" height="4400" viewBox="0 0 10600 8800" preserveAspectRatio="none">
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="ground" x1="0" y1="0" x2="1" y2="1">
|
|
||||||
<stop offset="0" stop-color="#574c2f"/>
|
|
||||||
<stop offset="0.45" stop-color="#746539"/>
|
|
||||||
<stop offset="1" stop-color="#3f3a27"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="water" x1="0" y1="0" x2="1" y2="1">
|
|
||||||
<stop offset="0" stop-color="#183850"/>
|
|
||||||
<stop offset="0.5" stop-color="#1f6c77"/>
|
|
||||||
<stop offset="1" stop-color="#0e2b3e"/>
|
|
||||||
</linearGradient>
|
|
||||||
<pattern id="jungle" width="420" height="420" patternUnits="userSpaceOnUse">
|
|
||||||
<rect width="420" height="420" fill="#20351f"/>
|
|
||||||
<path d="M24 270 C92 154 210 96 380 46 M-18 94 C88 210 206 270 438 338" stroke="#5f7f34" stroke-width="32" stroke-linecap="round" opacity=".7"/>
|
|
||||||
<path d="M50 348 C120 246 210 176 342 116 M86 78 C178 176 262 224 392 246" stroke="#a0a35d" stroke-width="12" stroke-linecap="round" opacity=".75"/>
|
|
||||||
<circle cx="96" cy="126" r="18" fill="#28391f" opacity=".8"/>
|
|
||||||
<circle cx="310" cy="314" r="22" fill="#111e16" opacity=".65"/>
|
|
||||||
</pattern>
|
|
||||||
<pattern id="stone" width="360" height="360" patternUnits="userSpaceOnUse">
|
|
||||||
<rect width="360" height="360" fill="#343422"/>
|
|
||||||
<path d="M10 80 L118 32 L232 72 L350 18 M-20 244 L96 198 L210 250 L382 176" stroke="#7e7656" stroke-width="28" stroke-linecap="round" opacity=".65"/>
|
|
||||||
<path d="M30 128 L146 92 L254 134 M48 292 L154 256 L302 308" stroke="#242714" stroke-width="18" stroke-linecap="round" opacity=".7"/>
|
|
||||||
</pattern>
|
|
||||||
<pattern id="roadDust" width="300" height="300" patternUnits="userSpaceOnUse">
|
|
||||||
<rect width="300" height="300" fill="#8c7441"/>
|
|
||||||
<path d="M0 84 C80 42 182 52 300 18 M-20 238 C92 196 194 208 330 154" stroke="#b79855" stroke-width="22" opacity=".55"/>
|
|
||||||
<path d="M40 154 C112 128 204 134 282 104" stroke="#5c4b2c" stroke-width="10" opacity=".45"/>
|
|
||||||
</pattern>
|
|
||||||
<filter id="softShadow" x="-20%" y="-20%" width="140%" height="140%">
|
|
||||||
<feDropShadow dx="0" dy="22" stdDeviation="26" flood-color="#0d130f" flood-opacity=".55"/>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<rect width="10600" height="8800" fill="url(#ground)"/>
|
|
||||||
<rect x="0" y="0" width="10600" height="8800" fill="url(#jungle)" opacity=".18"/>
|
|
||||||
|
|
||||||
<path d="M0 8090 C960 7820 1760 7860 2560 8030 C3600 8260 4560 8240 5440 7900 C6660 7440 7620 7360 8780 7680 C9560 7900 10140 7820 10600 7600 L10600 8800 L0 8800 Z" fill="url(#water)" opacity=".95"/>
|
|
||||||
<path d="M6920 0 C6740 900 6900 1730 7100 2440 C7320 3260 7250 4200 7040 5120 C6840 6040 6970 6940 7330 8120 L6760 8120 C6380 6800 6260 5840 6480 4900 C6670 4080 6750 3330 6540 2550 C6330 1740 6160 880 6330 0 Z" fill="url(#water)" opacity=".9"/>
|
|
||||||
<path d="M420 7550 C1420 7140 2360 7200 3340 7360 C4380 7540 5480 7260 6460 6780 C7580 6230 8680 6150 10380 6340" fill="none" stroke="#9a7a43" stroke-width="620" stroke-linecap="round" opacity=".8"/>
|
|
||||||
<path d="M1120 6810 C2140 6410 3000 6420 4040 6510 C5040 6600 6000 6240 6840 5770 C7900 5180 8900 5080 10180 5240" fill="none" stroke="#5f4f2f" stroke-width="280" stroke-linecap="round" opacity=".65"/>
|
|
||||||
|
|
||||||
<path d="M0 0 L3160 0 L3160 3600 C2420 3500 1720 3180 1060 2700 C630 2380 280 2240 0 2200 Z" fill="url(#stone)" filter="url(#softShadow)"/>
|
|
||||||
<path d="M3460 0 L7080 0 C7140 790 7240 1520 7450 2200 C6540 2140 5400 1980 4280 2260 C3900 2350 3620 2500 3460 2700 Z" fill="url(#stone)" filter="url(#softShadow)"/>
|
|
||||||
<path d="M7660 0 L10600 0 L10600 4080 C9720 3820 8940 3560 8220 3120 C7920 2940 7700 2780 7560 2520 Z" fill="url(#stone)" filter="url(#softShadow)"/>
|
|
||||||
<path d="M0 4740 C840 4980 1440 5360 1960 5950 C2300 6330 2740 6540 3460 6600 L0 7960 Z" fill="url(#stone)" filter="url(#softShadow)"/>
|
|
||||||
<path d="M7920 6080 C8520 6260 9120 6720 9560 7520 C9900 8120 10240 8420 10600 8520 L10600 4540 C9840 4480 9220 4720 8720 5140 C8360 5440 8100 5740 7920 6080 Z" fill="url(#stone)" filter="url(#softShadow)"/>
|
|
||||||
|
|
||||||
<path d="M1080 6520 C2140 6280 3140 6250 4140 6320 C5180 6400 5960 6040 6680 5600 C7840 4880 9060 4720 10220 4920" fill="none" stroke="url(#roadDust)" stroke-width="420" stroke-linecap="round" opacity=".95"/>
|
|
||||||
<path d="M3860 5880 C4180 4860 4300 3980 4140 3200 C4060 2780 4180 2420 4520 2140 C5110 1660 5940 1500 7060 1680" fill="none" stroke="url(#roadDust)" stroke-width="360" stroke-linecap="round" opacity=".9"/>
|
|
||||||
<path d="M7400 5520 C7920 4980 8420 4540 9000 4040 C9460 3640 9860 3140 10280 2460" fill="none" stroke="url(#roadDust)" stroke-width="340" stroke-linecap="round" opacity=".88"/>
|
|
||||||
|
|
||||||
<g opacity=".95">
|
|
||||||
<rect x="1200" y="5940" width="1500" height="820" rx="80" fill="#35532a" stroke="#d6b36c" stroke-width="32"/>
|
|
||||||
<path d="M1360 6400 L2540 6400 M1740 6040 L1740 6720 M2180 6040 L2180 6720" stroke="#aeb56d" stroke-width="42" opacity=".65"/>
|
|
||||||
<rect x="4050" y="4600" width="1640" height="980" rx="70" fill="#324b2a" stroke="#d6b36c" stroke-width="32"/>
|
|
||||||
<path d="M4280 5140 L5480 5140 M4680 4740 L4680 5480 M5140 4740 L5140 5480" stroke="#aeb56d" stroke-width="42" opacity=".6"/>
|
|
||||||
<rect x="7900" y="4200" width="1480" height="900" rx="70" fill="#30482a" stroke="#d6b36c" stroke-width="32"/>
|
|
||||||
<path d="M8140 4660 L9140 4660 M8520 4300 L8520 5020 M8900 4300 L8900 5020" stroke="#aeb56d" stroke-width="42" opacity=".6"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g opacity=".95">
|
|
||||||
<rect x="2920" y="5480" width="1320" height="760" rx="40" fill="#514529" stroke="#d08b3e" stroke-width="36"/>
|
|
||||||
<path d="M3060 6100 L4100 5580 M3100 5580 L4120 6100" stroke="#231e14" stroke-width="42" opacity=".55"/>
|
|
||||||
<rect x="6500" y="5760" width="1440" height="840" rx="40" fill="#514529" stroke="#d08b3e" stroke-width="36"/>
|
|
||||||
<path d="M6660 6440 L7780 5840 M6680 5860 L7800 6420" stroke="#231e14" stroke-width="42" opacity=".55"/>
|
|
||||||
<rect x="8460" y="3540" width="1320" height="760" rx="40" fill="#514529" stroke="#d08b3e" stroke-width="36"/>
|
|
||||||
<path d="M8600 4160 L9640 3640 M8640 3640 L9660 4160" stroke="#231e14" stroke-width="42" opacity=".55"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g opacity=".22">
|
|
||||||
<circle cx="1260" cy="860" r="520" fill="#d9c16f"/>
|
|
||||||
<circle cx="5580" cy="3640" r="460" fill="#d9c16f"/>
|
|
||||||
<circle cx="9060" cy="6860" r="520" fill="#d9c16f"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 6.1 KiB |
BIN
src/assets/images/battle/fifty-third-battle-map.webp
Normal file
|
After Width: | Height: | Size: 19 MiB |
@@ -4,8 +4,8 @@ import eleventhBattleMapUrl from '../../assets/images/battle/eleventh-battle-map
|
|||||||
import fiftiethBattleMapUrl from '../../assets/images/battle/fiftieth-battle-map.webp';
|
import fiftiethBattleMapUrl from '../../assets/images/battle/fiftieth-battle-map.webp';
|
||||||
import fiftyFirstBattleMapUrl from '../../assets/images/battle/fifty-first-battle-map.webp';
|
import fiftyFirstBattleMapUrl from '../../assets/images/battle/fifty-first-battle-map.webp';
|
||||||
import fiftySecondBattleMapUrl from '../../assets/images/battle/fifty-second-battle-map.webp';
|
import fiftySecondBattleMapUrl from '../../assets/images/battle/fifty-second-battle-map.webp';
|
||||||
import fiftyThirdBattleMapUrl from '../../assets/images/battle/fifty-third-battle-map.svg';
|
import fiftyThirdBattleMapUrl from '../../assets/images/battle/fifty-third-battle-map.webp';
|
||||||
import fiftyFourthBattleMapUrl from '../../assets/images/battle/fifty-fourth-battle-map.svg';
|
import fiftyFourthBattleMapUrl from '../../assets/images/battle/fifty-fourth-battle-map.webp';
|
||||||
import fiftyFifthBattleMapUrl from '../../assets/images/battle/fifty-fifth-battle-map.svg';
|
import fiftyFifthBattleMapUrl from '../../assets/images/battle/fifty-fifth-battle-map.svg';
|
||||||
import fiftyEighthBattleMapUrl from '../../assets/images/battle/fifty-eighth-battle-map.svg';
|
import fiftyEighthBattleMapUrl from '../../assets/images/battle/fifty-eighth-battle-map.svg';
|
||||||
import fiftyNinthBattleMapUrl from '../../assets/images/battle/fifty-ninth-battle-map.svg';
|
import fiftyNinthBattleMapUrl from '../../assets/images/battle/fifty-ninth-battle-map.svg';
|
||||||
|
|||||||