Replace battle maps 36 through 40 with hand-painted assets

This commit is contained in:
2026-07-09 18:31:33 +09:00
parent 09d012233b
commit 03cf3a4f8b
23 changed files with 76 additions and 443 deletions

View File

@@ -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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -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,
},
}

View File

@@ -1,102 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8000 6200" width="8000" height="6200">
<defs>
<linearGradient id="plain" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#887f58"/>
<stop offset="0.48" stop-color="#c1aa67"/>
<stop offset="1" stop-color="#666547"/>
</linearGradient>
<linearGradient id="water" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#18385c"/>
<stop offset="0.46" stop-color="#78b9c5"/>
<stop offset="1" stop-color="#14314d"/>
</linearGradient>
<linearGradient id="mud" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#6c5c3d"/>
<stop offset="0.5" stop-color="#a68650"/>
<stop offset="1" stop-color="#4b442f"/>
</linearGradient>
<linearGradient id="ridge" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#756d46"/>
<stop offset="0.5" stop-color="#a99a5d"/>
<stop offset="1" stop-color="#47442d"/>
</linearGradient>
<pattern id="grain" width="120" height="120" patternUnits="userSpaceOnUse">
<path d="M14 28h28M58 20h24M96 36h16M24 76h36M80 88h26M18 110h24M66 108h24" stroke="#3d3825" stroke-width="8" stroke-linecap="round" opacity="0.17"/>
<circle cx="100" cy="94" r="8" fill="#dfcc82" opacity="0.22"/>
<circle cx="34" cy="42" r="6" fill="#69613d" opacity="0.2"/>
</pattern>
<pattern id="forest" width="180" height="160" patternUnits="userSpaceOnUse">
<circle cx="34" cy="54" r="35" fill="#29411d"/>
<circle cx="76" cy="38" r="32" fill="#526f31"/>
<circle cx="116" cy="72" r="39" fill="#23361b"/>
<circle cx="144" cy="48" r="26" fill="#6c8540"/>
<path d="M34 88c34 18 76 16 110-4" stroke="#151d12" stroke-width="10" opacity="0.35"/>
</pattern>
<pattern id="stone" width="140" height="120" patternUnits="userSpaceOnUse">
<rect width="140" height="120" fill="#706657"/>
<path d="M0 40h140M0 82h140M30 0v40M94 40v42M48 82v38M118 82v38" stroke="#332e27" stroke-width="8" opacity="0.42"/>
<path d="M12 20h28M76 62h34M20 102h24" stroke="#b4a377" stroke-width="8" opacity="0.34"/>
</pattern>
<filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="12" stdDeviation="16" flood-color="#1a160d" flood-opacity="0.38"/>
</filter>
</defs>
<rect width="8000" height="6200" fill="url(#plain)"/>
<rect width="8000" height="6200" fill="url(#grain)" opacity="0.86"/>
<path d="M2140 -160 C1880 720 2280 1500 2060 2460 C1880 3260 2240 4140 2060 5480" fill="none" stroke="#16375d" stroke-width="430" stroke-linecap="round"/>
<path d="M2140 -160 C1880 720 2280 1500 2060 2460 C1880 3260 2240 4140 2060 5480" fill="none" stroke="url(#water)" stroke-width="340" stroke-linecap="round"/>
<path d="M3600 1320 C3420 2100 3740 2820 3560 3660 C3380 4440 3740 5140 3600 5980" fill="none" stroke="#16375d" stroke-width="360" stroke-linecap="round"/>
<path d="M3600 1320 C3420 2100 3740 2820 3560 3660 C3380 4440 3740 5140 3600 5980" fill="none" stroke="url(#water)" stroke-width="282" stroke-linecap="round"/>
<path d="M5160 420 C4960 1220 5320 2080 5120 3020 C4940 3880 5300 4300 5120 4840" fill="none" stroke="#16375d" stroke-width="340" stroke-linecap="round"/>
<path d="M5160 420 C4960 1220 5320 2080 5120 3020 C4940 3880 5300 4300 5120 4840" fill="none" stroke="url(#water)" stroke-width="260" stroke-linecap="round"/>
<path d="M2240 3040 C3400 2920 4700 3040 6280 3180" fill="none" stroke="#16375d" stroke-width="330" stroke-linecap="round"/>
<path d="M2240 3040 C3400 2920 4700 3040 6280 3180" fill="none" stroke="url(#water)" stroke-width="246" stroke-linecap="round"/>
<path d="M6120 4200 C6360 4800 6000 5380 6200 6320" fill="none" stroke="#16375d" stroke-width="260" stroke-linecap="round"/>
<path d="M6120 4200 C6360 4800 6000 5380 6200 6320" fill="none" stroke="url(#water)" stroke-width="194" stroke-linecap="round"/>
<path d="M-120 0 L1980 0 L1840 2860 L860 2600 L180 1680 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.84"/>
<path d="M2920 100 L6640 100 L6380 2060 L4640 1900 L3740 1340 L2820 1700 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.78"/>
<path d="M6860 -40 L8100 -40 L8060 1560 L6860 1500 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.88"/>
<path d="M3320 5400 L5320 5300 L5400 6260 L3160 6260 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.8"/>
<path d="M360 1080 C1120 820 2020 1000 2920 1140 L2880 4460 C1880 4440 960 4160 300 4520 Z" fill="url(#forest)" opacity="0.88"/>
<path d="M3040 1960 C3640 1680 4260 1900 4620 2480 L4560 4860 C3820 4920 3180 4460 2940 3880 Z" fill="url(#forest)" opacity="0.82"/>
<path d="M5200 4680 C5980 4380 6860 4480 8000 4240 L8000 6040 C6760 6040 5760 6140 5120 5940 Z" fill="url(#forest)" opacity="0.88"/>
<path d="M620 5840 C1660 5620 2920 5520 4320 5000 C5380 4620 6260 4100 7100 3360 C7420 3080 7680 2640 8060 2100" fill="none" stroke="#604a2c" stroke-width="300" stroke-linecap="round" stroke-linejoin="round" opacity="0.94"/>
<path d="M620 5840 C1660 5620 2920 5520 4320 5000 C5380 4620 6260 4100 7100 3360 C7420 3080 7680 2640 8060 2100" fill="none" stroke="#c6a363" stroke-width="190" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2240 2700 C3460 2600 4860 2700 7240 2860" fill="none" stroke="#604a2c" stroke-width="230" stroke-linecap="round" opacity="0.88"/>
<path d="M2240 2700 C3460 2600 4860 2700 7240 2860" fill="none" stroke="#c6a363" stroke-width="132" stroke-linecap="round"/>
<path d="M2320 2920 C3220 2860 4400 2940 6280 3100 L6060 3480 C4520 3300 3260 3240 2340 3380 Z" fill="url(#mud)" opacity="0.58"/>
<path d="M4800 620 C5280 980 5600 1660 5560 2420 L5120 2320 C5060 1680 4880 1120 4580 760 Z" fill="url(#mud)" opacity="0.45"/>
<rect x="6200" y="620" width="1760" height="1900" rx="24" fill="url(#stone)" filter="url(#shadow)"/>
<rect x="5520" y="1040" width="1380" height="1420" rx="24" fill="url(#stone)" opacity="0.82"/>
<rect x="6880" y="2260" width="1260" height="1880" rx="24" fill="url(#stone)" opacity="0.78"/>
<path d="M7040 3640 L7540 3440 L7920 3660 L7860 4380 L7340 4580 L6920 4180 Z" fill="#7b6748" stroke="#2f2a21" stroke-width="36" opacity="0.92"/>
<path d="M6360 750 h1440 v310 h-1440zM6400 1220 h1360M6400 1660 h1360M6400 2100 h1360" stroke="#2f2a21" stroke-width="34" fill="none" opacity="0.5"/>
<g filter="url(#shadow)">
<rect x="2200" y="5240" width="480" height="360" fill="#9b723b" stroke="#31261c" stroke-width="28"/>
<path d="M2160 5240 L2440 4940 L2720 5240 Z" fill="#c28d38" stroke="#31261c" stroke-width="28"/>
<rect x="4440" y="4560" width="560" height="400" fill="#8d7a43" stroke="#31261c" stroke-width="26"/>
<path d="M4400 4560 L4720 4260 L5040 4560 Z" fill="#b88831" stroke="#31261c" stroke-width="26"/>
<rect x="5840" y="3860" width="480" height="370" fill="#a2763b" stroke="#31261c" stroke-width="24"/>
<path d="M5800 3860 L6080 3600 L6360 3860 Z" fill="#c08c37" stroke="#31261c" stroke-width="24"/>
<rect x="7240" y="4280" width="460" height="360" fill="#8e6c36" stroke="#31261c" stroke-width="24"/>
<path d="M7200 4280 L7470 4020 L7740 4280 Z" fill="#ba8432" stroke="#31261c" stroke-width="24"/>
<rect x="6960" y="1580" width="200" height="560" fill="#5a3e25" stroke="#21170e" stroke-width="20"/>
<path d="M6800 1580 L7060 1250 L7320 1580 Z" fill="#d79c35" stroke="#21170e" stroke-width="20"/>
<circle cx="7060" cy="1210" r="88" fill="#e96f2c" opacity="0.9"/>
</g>
<g opacity="0.32" stroke="#1a3146" stroke-width="18" stroke-linecap="round">
<path d="M2360 3260 c880 160 1880 120 3080 260"/>
<path d="M2060 1260 c500 220 940 180 1420 30"/>
<path d="M5260 1280 c300 220 620 220 960 80"/>
<path d="M6160 5320 c520-150 1040-90 1520 120"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

View File

@@ -1,89 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7600 5800" width="7600" height="5800">
<defs>
<linearGradient id="plain" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#918558"/>
<stop offset="0.45" stop-color="#c5b06d"/>
<stop offset="1" stop-color="#6f6b45"/>
</linearGradient>
<linearGradient id="water" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#1f466b"/>
<stop offset="0.5" stop-color="#6ca6b1"/>
<stop offset="1" stop-color="#1c395a"/>
</linearGradient>
<linearGradient id="ridge" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#746b43"/>
<stop offset="0.5" stop-color="#a99b61"/>
<stop offset="1" stop-color="#49452d"/>
</linearGradient>
<pattern id="grain" width="120" height="120" patternUnits="userSpaceOnUse">
<path d="M16 24h26M58 18h20M92 32h18M26 72h30M78 82h28M18 108h20M62 106h24" stroke="#413b25" stroke-width="8" stroke-linecap="round" opacity="0.18"/>
<circle cx="102" cy="92" r="8" fill="#dfcc82" opacity="0.24"/>
<circle cx="36" cy="40" r="6" fill="#69613d" opacity="0.22"/>
</pattern>
<pattern id="forest" width="180" height="160" patternUnits="userSpaceOnUse">
<circle cx="36" cy="50" r="34" fill="#2d451f"/>
<circle cx="76" cy="36" r="31" fill="#4f6e30"/>
<circle cx="112" cy="70" r="38" fill="#263a1e"/>
<circle cx="142" cy="44" r="25" fill="#6d8640"/>
<path d="M34 84c34 18 74 17 108-4" stroke="#151d12" stroke-width="10" opacity="0.35"/>
</pattern>
<pattern id="stone" width="140" height="120" patternUnits="userSpaceOnUse">
<rect width="140" height="120" fill="#706758"/>
<path d="M0 40h140M0 82h140M30 0v40M94 40v42M48 82v38M118 82v38" stroke="#332e27" stroke-width="8" opacity="0.42"/>
<path d="M12 20h28M76 62h34M20 102h24" stroke="#b4a377" stroke-width="8" opacity="0.34"/>
</pattern>
<filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="12" stdDeviation="16" flood-color="#1a160d" flood-opacity="0.38"/>
</filter>
</defs>
<rect width="7600" height="5800" fill="url(#plain)"/>
<rect width="7600" height="5800" fill="url(#grain)" opacity="0.9"/>
<path d="M1900 -100 C1740 660 2000 1360 1870 2180 C1760 2940 2040 3660 1880 5040" fill="none" stroke="#17375d" stroke-width="350" stroke-linecap="round"/>
<path d="M1900 -100 C1740 660 2000 1360 1870 2180 C1760 2940 2040 3660 1880 5040" fill="none" stroke="url(#water)" stroke-width="270" stroke-linecap="round"/>
<path d="M4660 520 C4500 1240 4780 1960 4630 2720 C4490 3420 4810 3810 4660 4260" fill="none" stroke="#17375d" stroke-width="260" stroke-linecap="round"/>
<path d="M4660 520 C4500 1240 4780 1960 4630 2720 C4490 3420 4810 3810 4660 4260" fill="none" stroke="url(#water)" stroke-width="196" stroke-linecap="round"/>
<path d="M5740 3980 C5920 4520 5600 5140 5780 5900" fill="none" stroke="#17375d" stroke-width="240" stroke-linecap="round"/>
<path d="M5740 3980 C5920 4520 5600 5140 5780 5900" fill="none" stroke="url(#water)" stroke-width="178" stroke-linecap="round"/>
<path d="M-100 0 L1760 0 L1660 2580 L760 2350 L200 1580 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.86"/>
<path d="M2760 60 L6320 80 L6100 1880 L4380 1760 L3600 1220 L2660 1540 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.84"/>
<path d="M6420 -40 L7700 -40 L7660 1480 L6420 1460 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.9"/>
<path d="M3140 5040 L4880 5000 L4940 5860 L3000 5860 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.82"/>
<path d="M360 900 C1040 700 1860 860 2700 980 L2660 4160 C1780 4140 940 3920 320 4260 Z" fill="url(#forest)" opacity="0.9"/>
<path d="M2820 1740 C3360 1500 3980 1700 4300 2220 L4260 4500 C3580 4560 3020 4140 2760 3600 Z" fill="url(#forest)" opacity="0.86"/>
<path d="M4700 4380 C5520 4100 6480 4200 7600 4000 L7600 5660 C6420 5660 5460 5780 4660 5620 Z" fill="url(#forest)" opacity="0.9"/>
<path d="M460 5400 C1420 5260 2580 5200 3940 4720 C4980 4360 5800 3860 6620 3160 C6960 2860 7240 2460 7580 1980" fill="none" stroke="#6b522e" stroke-width="260" stroke-linecap="round" stroke-linejoin="round" opacity="0.96"/>
<path d="M460 5400 C1420 5260 2580 5200 3940 4720 C4980 4360 5800 3860 6620 3160 C6960 2860 7240 2460 7580 1980" fill="none" stroke="#c8a86b" stroke-width="176" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="5800" y="760" width="1680" height="2100" rx="24" fill="url(#stone)" filter="url(#shadow)"/>
<rect x="5120" y="840" width="1300" height="1460" rx="24" fill="url(#stone)" opacity="0.82"/>
<rect x="6460" y="2180" width="1200" height="1780" rx="24" fill="url(#stone)" opacity="0.78"/>
<path d="M6740 3380 L7220 3220 L7560 3420 L7540 4140 L7040 4320 L6640 3940 Z" fill="#7b6748" stroke="#2f2a21" stroke-width="36" opacity="0.92"/>
<g filter="url(#shadow)">
<rect x="2000" y="4840" width="460" height="350" fill="#9b723b" stroke="#31261c" stroke-width="28"/>
<path d="M1960 4840 L2230 4560 L2500 4840 Z" fill="#c28d38" stroke="#31261c" stroke-width="28"/>
<rect x="4140" y="4140" width="540" height="380" fill="#8d7a43" stroke="#31261c" stroke-width="26"/>
<path d="M4100 4140 L4410 3860 L4720 4140 Z" fill="#b88831" stroke="#31261c" stroke-width="26"/>
<rect x="5520" y="3540" width="460" height="350" fill="#a2763b" stroke="#31261c" stroke-width="24"/>
<path d="M5480 3540 L5750 3300 L6020 3540 Z" fill="#c08c37" stroke="#31261c" stroke-width="24"/>
<rect x="6900" y="3940" width="440" height="340" fill="#8e6c36" stroke="#31261c" stroke-width="24"/>
<path d="M6870 3940 L7120 3700 L7370 3940 Z" fill="#ba8432" stroke="#31261c" stroke-width="24"/>
<rect x="6640" y="1560" width="180" height="520" fill="#5a3e25" stroke="#21170e" stroke-width="20"/>
<path d="M6500 1560 L6730 1260 L6960 1560 Z" fill="#d79c35" stroke="#21170e" stroke-width="20"/>
<circle cx="6730" cy="1220" r="84" fill="#e96f2c" opacity="0.9"/>
</g>
<path d="M2600 2620 L3180 3940" stroke="#231d16" stroke-width="76" stroke-linecap="round" opacity="0.55"/>
<path d="M5580 120 L5960 900" stroke="#211a14" stroke-width="72" stroke-linecap="round" opacity="0.55"/>
<path d="M7420 3560 L7640 4220" stroke="#211a14" stroke-width="70" stroke-linecap="round" opacity="0.55"/>
<g opacity="0.2" stroke="#241e14" stroke-width="7">
<path d="M0 100H7600M0 200H7600M0 300H7600M0 400H7600M0 500H7600M0 600H7600M0 700H7600M0 800H7600M0 900H7600M0 1000H7600M0 1100H7600M0 1200H7600M0 1300H7600M0 1400H7600M0 1500H7600M0 1600H7600M0 1700H7600M0 1800H7600M0 1900H7600M0 2000H7600M0 2100H7600M0 2200H7600M0 2300H7600M0 2400H7600M0 2500H7600M0 2600H7600M0 2700H7600M0 2800H7600M0 2900H7600M0 3000H7600M0 3100H7600M0 3200H7600M0 3300H7600M0 3400H7600M0 3500H7600M0 3600H7600M0 3700H7600M0 3800H7600M0 3900H7600M0 4000H7600M0 4100H7600M0 4200H7600M0 4300H7600M0 4400H7600M0 4500H7600M0 4600H7600M0 4700H7600M0 4800H7600M0 4900H7600M0 5000H7600M0 5100H7600M0 5200H7600M0 5300H7600M0 5400H7600M0 5500H7600M0 5600H7600M0 5700H7600"/>
<path d="M100 0V5800M200 0V5800M300 0V5800M400 0V5800M500 0V5800M600 0V5800M700 0V5800M800 0V5800M900 0V5800M1000 0V5800M1100 0V5800M1200 0V5800M1300 0V5800M1400 0V5800M1500 0V5800M1600 0V5800M1700 0V5800M1800 0V5800M1900 0V5800M2000 0V5800M2100 0V5800M2200 0V5800M2300 0V5800M2400 0V5800M2500 0V5800M2600 0V5800M2700 0V5800M2800 0V5800M2900 0V5800M3000 0V5800M3100 0V5800M3200 0V5800M3300 0V5800M3400 0V5800M3500 0V5800M3600 0V5800M3700 0V5800M3800 0V5800M3900 0V5800M4000 0V5800M4100 0V5800M4200 0V5800M4300 0V5800M4400 0V5800M4500 0V5800M4600 0V5800M4700 0V5800M4800 0V5800M4900 0V5800M5000 0V5800M5100 0V5800M5200 0V5800M5300 0V5800M5400 0V5800M5500 0V5800M5600 0V5800M5700 0V5800M5800 0V5800M5900 0V5800M6000 0V5800M6100 0V5800M6200 0V5800M6300 0V5800M6400 0V5800M6500 0V5800M6600 0V5800M6700 0V5800M6800 0V5800M6900 0V5800M7000 0V5800M7100 0V5800M7200 0V5800M7300 0V5800M7400 0V5800M7500 0V5800"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

View File

@@ -1,89 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7800 6000" width="7800" height="6000">
<defs>
<linearGradient id="plain" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#8e8358"/>
<stop offset="0.45" stop-color="#c4ad69"/>
<stop offset="1" stop-color="#6b6846"/>
</linearGradient>
<linearGradient id="water" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#1c3a5f"/>
<stop offset="0.5" stop-color="#6eaab6"/>
<stop offset="1" stop-color="#183452"/>
</linearGradient>
<linearGradient id="ridge" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#776f46"/>
<stop offset="0.5" stop-color="#a99a5d"/>
<stop offset="1" stop-color="#49452d"/>
</linearGradient>
<pattern id="grain" width="120" height="120" patternUnits="userSpaceOnUse">
<path d="M12 28h30M60 18h22M94 34h16M22 74h36M78 86h28M18 110h24M64 106h24" stroke="#3f3924" stroke-width="8" stroke-linecap="round" opacity="0.18"/>
<circle cx="100" cy="92" r="8" fill="#dfcc82" opacity="0.24"/>
<circle cx="34" cy="42" r="6" fill="#69613d" opacity="0.22"/>
</pattern>
<pattern id="forest" width="180" height="160" patternUnits="userSpaceOnUse">
<circle cx="34" cy="54" r="35" fill="#2a421d"/>
<circle cx="76" cy="38" r="32" fill="#526f31"/>
<circle cx="116" cy="72" r="39" fill="#24371c"/>
<circle cx="144" cy="48" r="26" fill="#6d8640"/>
<path d="M34 88c34 18 76 16 110-4" stroke="#151d12" stroke-width="10" opacity="0.35"/>
</pattern>
<pattern id="stone" width="140" height="120" patternUnits="userSpaceOnUse">
<rect width="140" height="120" fill="#716757"/>
<path d="M0 40h140M0 82h140M30 0v40M94 40v42M48 82v38M118 82v38" stroke="#332e27" stroke-width="8" opacity="0.42"/>
<path d="M12 20h28M76 62h34M20 102h24" stroke="#b4a377" stroke-width="8" opacity="0.34"/>
</pattern>
<filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="12" stdDeviation="16" flood-color="#1a160d" flood-opacity="0.38"/>
</filter>
</defs>
<rect width="7800" height="6000" fill="url(#plain)"/>
<rect width="7800" height="6000" fill="url(#grain)" opacity="0.92"/>
<path d="M2020 -120 C1840 640 2130 1390 1960 2250 C1820 3020 2140 3820 1980 5160" fill="none" stroke="#17375d" stroke-width="370" stroke-linecap="round"/>
<path d="M2020 -120 C1840 640 2130 1390 1960 2250 C1820 3020 2140 3820 1980 5160" fill="none" stroke="url(#water)" stroke-width="286" stroke-linecap="round"/>
<path d="M4880 620 C4700 1360 5000 2080 4840 2880 C4700 3620 5020 4010 4880 4440" fill="none" stroke="#17375d" stroke-width="270" stroke-linecap="round"/>
<path d="M4880 620 C4700 1360 5000 2080 4840 2880 C4700 3620 5020 4010 4880 4440" fill="none" stroke="url(#water)" stroke-width="204" stroke-linecap="round"/>
<path d="M5940 4100 C6160 4700 5800 5260 6000 6100" fill="none" stroke="#17375d" stroke-width="250" stroke-linecap="round"/>
<path d="M5940 4100 C6160 4700 5800 5260 6000 6100" fill="none" stroke="url(#water)" stroke-width="184" stroke-linecap="round"/>
<path d="M-100 -20 L1880 0 L1740 2720 L820 2480 L180 1640 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.86"/>
<path d="M2860 80 L6460 100 L6240 1960 L4480 1840 L3680 1280 L2740 1640 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.84"/>
<path d="M6640 -40 L7900 -40 L7860 1480 L6640 1460 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.9"/>
<path d="M3220 5200 L5060 5160 L5140 6060 L3060 6060 Z" fill="url(#ridge)" filter="url(#shadow)" opacity="0.82"/>
<path d="M360 980 C1080 760 1940 900 2840 1060 L2800 4300 C1840 4280 960 4040 320 4380 Z" fill="url(#forest)" opacity="0.9"/>
<path d="M2920 1860 C3500 1600 4100 1800 4420 2360 L4380 4680 C3680 4740 3080 4300 2840 3740 Z" fill="url(#forest)" opacity="0.86"/>
<path d="M4920 4540 C5740 4240 6660 4320 7800 4120 L7800 5860 C6560 5860 5580 5960 4860 5780 Z" fill="url(#forest)" opacity="0.9"/>
<path d="M560 5600 C1540 5440 2740 5380 4140 4880 C5200 4500 6040 3980 6880 3260 C7200 2980 7480 2540 7820 2060" fill="none" stroke="#6b522e" stroke-width="260" stroke-linecap="round" stroke-linejoin="round" opacity="0.96"/>
<path d="M560 5600 C1540 5440 2740 5380 4140 4880 C5200 4500 6040 3980 6880 3260 C7200 2980 7480 2540 7820 2060" fill="none" stroke="#c8a86b" stroke-width="176" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5840 1780 C6280 1740 6900 1800 7560 1960" fill="none" stroke="#c8a86b" stroke-width="132" stroke-linecap="round" opacity="0.9"/>
<rect x="6000" y="600" width="1760" height="1940" rx="24" fill="url(#stone)" filter="url(#shadow)"/>
<rect x="5320" y="900" width="1340" height="1400" rx="24" fill="url(#stone)" opacity="0.82"/>
<rect x="6660" y="2100" width="1220" height="1840" rx="24" fill="url(#stone)" opacity="0.78"/>
<path d="M6820 3500 L7300 3300 L7680 3500 L7640 4240 L7120 4440 L6720 4020 Z" fill="#7b6748" stroke="#2f2a21" stroke-width="36" opacity="0.92"/>
<path d="M6150 710 h1460 v310 h-1460zM6190 1160 h1380M6190 1600 h1380M6190 2040 h1380" stroke="#2f2a21" stroke-width="34" fill="none" opacity="0.54"/>
<g filter="url(#shadow)">
<rect x="2100" y="5040" width="470" height="350" fill="#9b723b" stroke="#31261c" stroke-width="28"/>
<path d="M2060 5040 L2335 4760 L2610 5040 Z" fill="#c28d38" stroke="#31261c" stroke-width="28"/>
<rect x="4240" y="4340" width="550" height="390" fill="#8d7a43" stroke="#31261c" stroke-width="26"/>
<path d="M4200 4340 L4515 4040 L4830 4340 Z" fill="#b88831" stroke="#31261c" stroke-width="26"/>
<rect x="5620" y="3660" width="470" height="360" fill="#a2763b" stroke="#31261c" stroke-width="24"/>
<path d="M5580 3660 L5855 3420 L6130 3660 Z" fill="#c08c37" stroke="#31261c" stroke-width="24"/>
<rect x="7040" y="4100" width="450" height="350" fill="#8e6c36" stroke="#31261c" stroke-width="24"/>
<path d="M7000 4100 L7265 3840 L7530 4100 Z" fill="#ba8432" stroke="#31261c" stroke-width="24"/>
<rect x="6760" y="1560" width="190" height="540" fill="#5a3e25" stroke="#21170e" stroke-width="20"/>
<path d="M6610 1560 L6855 1250 L7100 1560 Z" fill="#d79c35" stroke="#21170e" stroke-width="20"/>
<circle cx="6855" cy="1210" r="86" fill="#e96f2c" opacity="0.9"/>
</g>
<g opacity="0.28" stroke="#2a2618" stroke-width="18" stroke-linecap="round">
<path d="M720 3200 c480-220 1020-210 1580-50"/>
<path d="M3360 3220 c340-180 720-140 1040 90"/>
<path d="M5300 2820 c360-160 800-100 1180 130"/>
<path d="M6100 5100 c460-120 920-90 1340 80"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

View File

@@ -1,87 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7400 5600" width="7400" height="5600">
<defs>
<linearGradient id="plain" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#9f8f57"/>
<stop offset="0.48" stop-color="#c1ad6a"/>
<stop offset="1" stop-color="#7d7447"/>
</linearGradient>
<linearGradient id="ridge" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#766c41"/>
<stop offset="0.45" stop-color="#a99a5b"/>
<stop offset="1" stop-color="#504b31"/>
</linearGradient>
<linearGradient id="water" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#234e73"/>
<stop offset="0.5" stop-color="#5d9caa"/>
<stop offset="1" stop-color="#1d3c62"/>
</linearGradient>
<pattern id="grain" width="120" height="120" patternUnits="userSpaceOnUse">
<path d="M12 16h18M48 22h24M88 18h16M28 58h32M78 68h26M14 104h22M58 100h18" stroke="#453f27" stroke-width="8" stroke-linecap="round" opacity="0.18"/>
<circle cx="102" cy="92" r="8" fill="#e2cf85" opacity="0.26"/>
<circle cx="34" cy="34" r="6" fill="#6d653e" opacity="0.24"/>
</pattern>
<pattern id="forestDots" width="180" height="160" patternUnits="userSpaceOnUse">
<circle cx="40" cy="48" r="34" fill="#31491f"/>
<circle cx="76" cy="34" r="30" fill="#49682a"/>
<circle cx="108" cy="68" r="38" fill="#263a1d"/>
<circle cx="136" cy="42" r="24" fill="#6f8740"/>
<path d="M40 82c32 18 70 16 102-3" stroke="#151d11" stroke-width="10" opacity="0.35"/>
</pattern>
<pattern id="fortStone" width="140" height="120" patternUnits="userSpaceOnUse">
<rect width="140" height="120" fill="#6f6858"/>
<path d="M0 40h140M0 82h140M32 0v40M92 40v42M46 82v38M118 82v38" stroke="#332e27" stroke-width="8" opacity="0.42"/>
<path d="M12 20h28M76 62h34M20 102h24" stroke="#b4a377" stroke-width="8" opacity="0.34"/>
</pattern>
<filter id="softShadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="12" stdDeviation="16" flood-color="#1a160d" flood-opacity="0.38"/>
</filter>
</defs>
<rect width="7400" height="5600" fill="url(#plain)"/>
<rect width="7400" height="5600" fill="url(#grain)" opacity="0.9"/>
<path d="M1760 -80 C1670 600 1850 1190 1730 1880 C1600 2630 1820 3310 1730 4540" fill="none" stroke="#17375d" stroke-width="280" stroke-linecap="round"/>
<path d="M1760 -80 C1670 600 1850 1190 1730 1880 C1600 2630 1820 3310 1730 4540" fill="none" stroke="url(#water)" stroke-width="215" stroke-linecap="round"/>
<path d="M4250 390 C4100 1080 4360 1800 4210 2520 C4070 3180 4380 3550 4250 3940" fill="none" stroke="#17375d" stroke-width="250" stroke-linecap="round"/>
<path d="M4250 390 C4100 1080 4360 1800 4210 2520 C4070 3180 4380 3550 4250 3940" fill="none" stroke="url(#water)" stroke-width="188" stroke-linecap="round"/>
<path d="M5450 3900 C5580 4420 5330 5050 5470 5680" fill="none" stroke="#17375d" stroke-width="240" stroke-linecap="round"/>
<path d="M5450 3900 C5580 4420 5330 5050 5470 5680" fill="none" stroke="url(#water)" stroke-width="178" stroke-linecap="round"/>
<path d="M-80 0 L1650 0 L1570 2420 L760 2200 L220 1550 Z" fill="url(#ridge)" filter="url(#softShadow)" opacity="0.88"/>
<path d="M2700 40 L6050 70 L5870 1820 L4200 1700 L3500 1180 L2620 1480 Z" fill="url(#ridge)" filter="url(#softShadow)" opacity="0.86"/>
<path d="M6250 -40 L7480 -40 L7460 1540 L6260 1510 Z" fill="url(#ridge)" filter="url(#softShadow)" opacity="0.9"/>
<path d="M3050 4820 L4660 4800 L4720 5660 L2940 5660 Z" fill="url(#ridge)" filter="url(#softShadow)" opacity="0.84"/>
<path d="M360 860 C1000 680 1720 820 2460 940 L2420 3920 C1700 3900 900 3720 340 4000 Z" fill="url(#forestDots)" opacity="0.9"/>
<path d="M2730 1620 C3200 1430 3800 1620 4050 2100 L4010 4160 C3410 4220 2910 3880 2680 3420 Z" fill="url(#forestDots)" opacity="0.85"/>
<path d="M4520 4250 C5300 3980 6330 4100 7380 3950 L7380 5480 C6300 5480 5350 5580 4480 5460 Z" fill="url(#forestDots)" opacity="0.88"/>
<path d="M390 5200 C1360 5070 2450 5030 3810 4580 C4700 4300 5560 3920 6480 3180 C6810 2920 7060 2630 7360 2240" fill="none" stroke="#6f5630" stroke-width="250" stroke-linecap="round" stroke-linejoin="round" opacity="0.95"/>
<path d="M390 5200 C1360 5070 2450 5030 3810 4580 C4700 4300 5560 3920 6480 3180 C6810 2920 7060 2630 7360 2240" fill="none" stroke="#c5a66b" stroke-width="168" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5840 1790 C6280 1750 6800 1810 7270 1880" fill="none" stroke="#c5a66b" stroke-width="150" stroke-linecap="round"/>
<rect x="5600" y="860" width="1660" height="2210" rx="24" fill="url(#fortStone)" filter="url(#softShadow)"/>
<rect x="5040" y="560" width="1420" height="1420" rx="24" fill="url(#fortStone)" opacity="0.82"/>
<rect x="6150" y="2380" width="1250" height="1650" rx="24" fill="url(#fortStone)" opacity="0.78"/>
<path d="M5550 3180 L6200 3000 L7060 3200 L7130 3780 L6500 4010 L5750 3740 Z" fill="#76654a" stroke="#2f2a21" stroke-width="36" opacity="0.9"/>
<g filter="url(#softShadow)">
<rect x="1800" y="4700" width="440" height="330" fill="#a2763b" stroke="#31261c" stroke-width="28"/>
<path d="M1760 4700 L2020 4440 L2280 4700 Z" fill="#c08c37" stroke="#31261c" stroke-width="28"/>
<rect x="3990" y="4020" width="520" height="360" fill="#8f7a42" stroke="#31261c" stroke-width="26"/>
<path d="M3960 4020 L4250 3760 L4540 4020 Z" fill="#b88831" stroke="#31261c" stroke-width="26"/>
<rect x="5320" y="3420" width="420" height="330" fill="#a2763b" stroke="#31261c" stroke-width="24"/>
<path d="M5290 3420 L5530 3210 L5770 3420 Z" fill="#c08c37" stroke="#31261c" stroke-width="24"/>
<rect x="6630" y="3620" width="460" height="340" fill="#8e6c36" stroke="#31261c" stroke-width="24"/>
<path d="M6600 3620 L6860 3390 L7120 3620 Z" fill="#ba8432" stroke="#31261c" stroke-width="24"/>
</g>
<path d="M2480 2520 L3070 3860" stroke="#231d16" stroke-width="74" stroke-linecap="round" opacity="0.55"/>
<path d="M5530 120 L5870 880" stroke="#211a14" stroke-width="70" stroke-linecap="round" opacity="0.55"/>
<path d="M7200 3540 L7420 4140" stroke="#211a14" stroke-width="70" stroke-linecap="round" opacity="0.55"/>
<g opacity="0.2" stroke="#241e14" stroke-width="7">
<path d="M0 100H7400M0 200H7400M0 300H7400M0 400H7400M0 500H7400M0 600H7400M0 700H7400M0 800H7400M0 900H7400M0 1000H7400M0 1100H7400M0 1200H7400M0 1300H7400M0 1400H7400M0 1500H7400M0 1600H7400M0 1700H7400M0 1800H7400M0 1900H7400M0 2000H7400M0 2100H7400M0 2200H7400M0 2300H7400M0 2400H7400M0 2500H7400M0 2600H7400M0 2700H7400M0 2800H7400M0 2900H7400M0 3000H7400M0 3100H7400M0 3200H7400M0 3300H7400M0 3400H7400M0 3500H7400M0 3600H7400M0 3700H7400M0 3800H7400M0 3900H7400M0 4000H7400M0 4100H7400M0 4200H7400M0 4300H7400M0 4400H7400M0 4500H7400M0 4600H7400M0 4700H7400M0 4800H7400M0 4900H7400M0 5000H7400M0 5100H7400M0 5200H7400M0 5300H7400M0 5400H7400M0 5500H7400"/>
<path d="M100 0V5600M200 0V5600M300 0V5600M400 0V5600M500 0V5600M600 0V5600M700 0V5600M800 0V5600M900 0V5600M1000 0V5600M1100 0V5600M1200 0V5600M1300 0V5600M1400 0V5600M1500 0V5600M1600 0V5600M1700 0V5600M1800 0V5600M1900 0V5600M2000 0V5600M2100 0V5600M2200 0V5600M2300 0V5600M2400 0V5600M2500 0V5600M2600 0V5600M2700 0V5600M2800 0V5600M2900 0V5600M3000 0V5600M3100 0V5600M3200 0V5600M3300 0V5600M3400 0V5600M3500 0V5600M3600 0V5600M3700 0V5600M3800 0V5600M3900 0V5600M4000 0V5600M4100 0V5600M4200 0V5600M4300 0V5600M4400 0V5600M4500 0V5600M4600 0V5600M4700 0V5600M4800 0V5600M4900 0V5600M5000 0V5600M5100 0V5600M5200 0V5600M5300 0V5600M5400 0V5600M5500 0V5600M5600 0V5600M5700 0V5600M5800 0V5600M5900 0V5600M6000 0V5600M6100 0V5600M6200 0V5600M6300 0V5600M6400 0V5600M6500 0V5600M6600 0V5600M6700 0V5600M6800 0V5600M6900 0V5600M7000 0V5600M7100 0V5600M7200 0V5600M7300 0V5600"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 MiB

View File

@@ -1,70 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="7200" height="5400" viewBox="0 0 7200 5400">
<defs>
<linearGradient id="plain" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#a1905f"/>
<stop offset="1" stop-color="#655b3a"/>
</linearGradient>
<linearGradient id="ridge" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#9b9860"/>
<stop offset="1" stop-color="#39402b"/>
</linearGradient>
<linearGradient id="fort" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#796956"/>
<stop offset="1" stop-color="#352d2a"/>
</linearGradient>
<filter id="grain">
<feTurbulence type="fractalNoise" baseFrequency="0.68" numOctaves="3" seed="36"/>
<feColorMatrix type="saturate" values="0.24"/>
<feBlend mode="multiply" in2="SourceGraphic"/>
</filter>
</defs>
<rect width="7200" height="5400" fill="url(#plain)"/>
<g filter="url(#grain)" opacity="0.42">
<rect width="7200" height="5400" fill="#94825d"/>
</g>
<path d="M0 0 C560 470 1160 930 1510 1740 C1840 2500 1770 3430 2100 4320 C2260 4740 2500 5100 3010 5400 L0 5400 Z" fill="#3f513b" opacity="0.8"/>
<path d="M2620 0 C3000 690 3720 1010 4120 1660 C4490 2260 4330 3030 4810 3730 C5180 4270 5730 4610 7200 4770 L7200 5400 L3040 5400 C2810 4890 2730 4410 2910 3900 C3130 3270 3220 2700 2990 2140 C2760 1590 2380 880 2620 0 Z" fill="#2f4535" opacity="0.86"/>
<path d="M5850 0 C6200 790 6630 1210 7200 1520 L7200 0 Z" fill="#26342e" opacity="0.92"/>
<path d="M1730 0 C1700 810 1710 1770 1730 2580 C1760 3440 1730 4070 1570 5400" fill="none" stroke="#285a70" stroke-width="165" opacity="0.82"/>
<path d="M4040 300 C4020 1050 4080 1770 4130 2460 C4190 3210 4210 3830 4060 5400" fill="none" stroke="#2d6378" stroke-width="175" opacity="0.8"/>
<path d="M5270 3920 C5230 4390 5240 4930 5290 5400" fill="none" stroke="#315d72" stroke-width="165" opacity="0.76"/>
<path d="M420 4930 C1100 4800 1600 4700 2350 4720 C3260 4740 3850 4380 4580 4000 C5340 3600 6000 3220 7040 2520" fill="none" stroke="#b8a471" stroke-width="215" opacity="0.86"/>
<path d="M2180 4640 C3070 4480 3710 4060 4370 3630 C5060 3180 5740 2800 6710 2450" fill="none" stroke="#705939" stroke-width="52" opacity="0.66"/>
<g fill="url(#fort)" stroke="#2b241f" stroke-width="34">
<rect x="5430" y="1230" width="1620" height="1900" rx="44"/>
<rect x="5000" y="830" width="1320" height="1240" rx="38"/>
<rect x="6030" y="2350" width="1120" height="1440" rx="38"/>
<rect x="5740" y="3440" width="860" height="700" rx="30"/>
</g>
<g fill="#48382e" opacity="0.76">
<rect x="5520" y="1390" width="1400" height="120"/>
<rect x="5520" y="1760" width="1400" height="95"/>
<rect x="5520" y="2140" width="1400" height="95"/>
<rect x="6120" y="2500" width="860" height="95"/>
<rect x="6120" y="2910" width="860" height="95"/>
<rect x="6120" y="3320" width="860" height="95"/>
</g>
<g fill="url(#ridge)" opacity="0.9">
<ellipse cx="940" cy="1320" rx="850" ry="570"/>
<ellipse cx="2870" cy="1130" rx="760" ry="460"/>
<ellipse cx="4810" cy="900" rx="870" ry="500"/>
<ellipse cx="3710" cy="5060" rx="820" ry="360"/>
<ellipse cx="6120" cy="900" rx="590" ry="340"/>
</g>
<g fill="#2f5f3f" opacity="0.84">
<ellipse cx="1120" cy="2820" rx="940" ry="800"/>
<ellipse cx="3100" cy="2870" rx="810" ry="700"/>
<ellipse cx="5050" cy="4740" rx="980" ry="540"/>
<ellipse cx="6380" cy="4430" rx="1020" ry="690"/>
</g>
<g fill="#a26b3a" stroke="#39271c" stroke-width="22">
<rect x="1920" y="4540" width="400" height="270" rx="24"/>
<rect x="3980" y="3920" width="320" height="250" rx="24"/>
<rect x="5080" y="3430" width="260" height="230" rx="20"/>
<rect x="6220" y="3760" width="340" height="280" rx="24"/>
</g>
<g stroke="#1f1b16" stroke-width="18" opacity="0.25">
<path d="M0 100 h7200 M0 200 h7200 M0 300 h7200 M0 400 h7200"/>
<path d="M100 0 v5400 M200 0 v5400 M300 0 v5400 M400 0 v5400"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 MiB

View File

@@ -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';