Replace battle maps 63 and 64 with hand-painted assets

This commit is contained in:
2026-07-09 23:27:31 +09:00
parent 17c5cbf1ea
commit 57f4c0fd41
11 changed files with 35 additions and 198 deletions

View File

@@ -1,96 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 1760" role="img" aria-labelledby="title desc">
<title id="title">Weishui camps map</title>
<desc id="desc">Original tactical battlefield map with Wei River crossings, Shu supply camps, Wei fortified palisades, signal towers, villages, cliffs, roads, and winter ridges.</desc>
<defs>
<linearGradient id="ground" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#4b594a"/>
<stop offset="0.45" stop-color="#77806a"/>
<stop offset="1" stop-color="#9a805e"/>
</linearGradient>
<linearGradient id="river" x1="0" x2="1" y1="0" y2="0">
<stop offset="0" stop-color="#1f405a"/>
<stop offset="0.45" stop-color="#4b7f90"/>
<stop offset="1" stop-color="#9ab5a8"/>
</linearGradient>
<linearGradient id="road" x1="0" x2="1" y1="0" y2="0">
<stop offset="0" stop-color="#b27a4d"/>
<stop offset="0.52" stop-color="#dfbf7b"/>
<stop offset="1" stop-color="#946842"/>
</linearGradient>
<filter id="grain" x="-10%" y="-10%" width="120%" height="120%">
<feTurbulence type="fractalNoise" baseFrequency="0.012" numOctaves="4" seed="64"/>
<feColorMatrix type="saturate" values="0.18"/>
<feBlend mode="multiply" in2="SourceGraphic"/>
</filter>
<filter id="mist" x="-6%" y="-6%" width="112%" height="112%">
<feGaussianBlur stdDeviation="2.2"/>
</filter>
</defs>
<rect width="2048" height="1760" fill="url(#ground)"/>
<path d="M0 426 C250 328 432 414 640 510 C870 618 1060 574 1284 492 C1528 404 1754 462 2048 344" fill="none" stroke="url(#river)" stroke-width="102" stroke-linecap="round"/>
<path d="M0 560 C292 482 474 580 700 668 C936 760 1118 710 1346 628 C1592 540 1812 584 2048 496" fill="none" stroke="#2c6678" stroke-width="64" stroke-linecap="round" opacity="0.92"/>
<path d="M110 1580 C322 1428 548 1308 790 1160 C1058 996 1324 894 1568 752 C1778 630 1900 560 2040 520" fill="none" stroke="url(#road)" stroke-width="48" stroke-linecap="round"/>
<path d="M250 1422 C458 1322 684 1194 884 1014 C1078 842 1302 810 1532 664 C1748 526 1898 442 2030 384" fill="none" stroke="#c98f5e" stroke-width="30" stroke-linecap="round"/>
<path d="M420 1680 C560 1500 728 1370 952 1246 C1198 1110 1452 1058 1642 914 C1840 764 1940 626 2044 586" fill="none" stroke="#dfb96d" stroke-width="30" stroke-linecap="round"/>
<path d="M610 1234 C760 1100 856 950 1038 840 C1224 728 1428 650 1620 520" fill="none" stroke="#ead08e" stroke-width="24" stroke-linecap="round" opacity="0.92"/>
<g fill="#344734" opacity="0.9">
<path d="M0 0 L610 0 L498 226 L650 440 L360 574 L0 472 Z"/>
<path d="M732 0 L1210 0 L1074 292 L840 430 L676 218 Z"/>
<path d="M1334 0 L2048 0 L2048 300 L1878 258 L1646 382 L1448 226 Z"/>
<path d="M0 722 L436 696 L320 982 L510 1226 L0 1342 Z"/>
<path d="M1546 780 L2048 658 L2048 1222 L1774 1128 L1512 1208 Z"/>
</g>
<g fill="#26372f" opacity="0.82">
<ellipse cx="316" cy="812" rx="270" ry="152"/>
<ellipse cx="630" cy="1050" rx="252" ry="142"/>
<ellipse cx="1110" cy="1300" rx="324" ry="160"/>
<ellipse cx="1522" cy="1164" rx="282" ry="136"/>
<ellipse cx="1116" cy="734" rx="286" ry="132"/>
<ellipse cx="1638" cy="492" rx="232" ry="112"/>
</g>
<g fill="#75593c" stroke="#2f2318" stroke-width="8">
<rect x="238" y="1426" width="286" height="150" rx="6"/>
<rect x="612" y="1236" width="294" height="160" rx="6"/>
<rect x="1014" y="1052" width="306" height="166" rx="6"/>
<rect x="1390" y="798" width="336" height="184" rx="6"/>
<rect x="1714" y="548" width="302" height="168" rx="6"/>
</g>
<g fill="#563d35" stroke="#241915" stroke-width="10">
<path d="M1450 460 L1686 414 L1824 552 L1758 728 L1506 762 L1372 612 Z"/>
<path d="M986 742 L1222 696 L1360 826 L1294 1000 L1040 1032 L912 880 Z"/>
<path d="M1636 196 L1878 168 L2024 292 L1960 460 L1716 496 L1568 354 Z"/>
<path d="M1176 1268 L1400 1230 L1532 1352 L1468 1508 L1228 1534 L1102 1392 Z"/>
<path d="M1712 1012 L1940 980 L2040 1112 L1998 1266 L1756 1284 L1642 1146 Z"/>
</g>
<g fill="#e4c88c" stroke="#58442c" stroke-width="7">
<rect x="166" y="1304" width="126" height="86" rx="5"/>
<rect x="516" y="1142" width="136" height="88" rx="5"/>
<rect x="800" y="988" width="142" height="90" rx="5"/>
<rect x="1260" y="878" width="152" height="94" rx="5"/>
<rect x="1508" y="626" width="142" height="90" rx="5"/>
<rect x="1820" y="376" width="132" height="84" rx="5"/>
</g>
<g opacity="0.26" stroke="#eef0dd" stroke-width="5" stroke-linecap="round" filter="url(#mist)">
<path d="M124 244 C326 194 482 206 684 266"/>
<path d="M732 466 C930 414 1110 430 1318 492"/>
<path d="M1200 158 C1382 116 1580 132 1760 194"/>
<path d="M1320 1086 C1490 1040 1690 1058 1902 1122"/>
</g>
<g fill="#d9b65f" stroke="#4a3320" stroke-width="5">
<circle cx="340" cy="1436" r="22"/>
<circle cx="418" cy="1462" r="18"/>
<circle cx="688" cy="1266" r="21"/>
<circle cx="1108" cy="1080" r="22"/>
<circle cx="1476" cy="822" r="20"/>
<circle cx="1844" cy="562" r="22"/>
<circle cx="1858" cy="1046" r="20"/>
</g>
<g opacity="0.62" fill="#74302c">
<path d="M346 1378 l62 20 -62 20 z"/>
<path d="M700 1204 l66 20 -66 20 z"/>
<path d="M1122 1018 l68 20 -68 20 z"/>
<path d="M1510 766 l68 20 -68 20 z"/>
<path d="M1848 984 l58 18 -58 18 z"/>
</g>
<rect width="2048" height="1760" fill="url(#ground)" opacity="0.06" filter="url(#grain)"/>
</svg>

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 MiB

View File

@@ -1,97 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2016 1728" role="img" aria-labelledby="title desc">
<title id="title">Lucheng pursuit map</title>
<desc id="desc">Original tactical battlefield map with Lucheng pursuit roads, Shu return camps, Wei blocking forts, signal towers, rivers, villages, ridge gates, and supply routes.</desc>
<defs>
<linearGradient id="ground" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#3f4d42"/>
<stop offset="0.48" stop-color="#6d7557"/>
<stop offset="1" stop-color="#a2875c"/>
</linearGradient>
<linearGradient id="river" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#213e5a"/>
<stop offset="0.52" stop-color="#3b7081"/>
<stop offset="1" stop-color="#88aaa0"/>
</linearGradient>
<linearGradient id="road" x1="0" x2="1" y1="0" y2="0">
<stop offset="0" stop-color="#bf9360"/>
<stop offset="0.5" stop-color="#e0bd79"/>
<stop offset="1" stop-color="#a4714e"/>
</linearGradient>
<filter id="grain" x="-10%" y="-10%" width="120%" height="120%">
<feTurbulence type="fractalNoise" baseFrequency="0.011" numOctaves="4" seed="63"/>
<feColorMatrix type="saturate" values="0.2"/>
<feBlend mode="multiply" in2="SourceGraphic"/>
</filter>
<filter id="soft" x="-4%" y="-4%" width="108%" height="108%">
<feGaussianBlur stdDeviation="1.3"/>
</filter>
</defs>
<rect width="2016" height="1728" fill="url(#ground)"/>
<path d="M118 94 C332 220 270 468 530 620 C808 782 714 1050 1010 1196 C1272 1326 1274 1514 1580 1612 C1762 1670 1900 1686 1984 1708" fill="none" stroke="url(#river)" stroke-width="82" stroke-linecap="round"/>
<path d="M1088 0 C1012 214 1098 390 1018 560 C940 730 1056 894 958 1088 C876 1252 902 1430 778 1668" fill="none" stroke="#2a6674" stroke-width="50" stroke-linecap="round" opacity="0.9"/>
<path d="M126 1510 C370 1358 620 1304 836 1138 C1062 964 1318 918 1510 734 C1700 552 1840 384 1996 292" fill="none" stroke="url(#road)" stroke-width="46" stroke-linecap="round"/>
<path d="M220 1352 C458 1268 650 1158 810 980 C1014 754 1230 790 1446 616 C1648 452 1818 310 2002 164" fill="none" stroke="#b17f55" stroke-width="30" stroke-linecap="round"/>
<path d="M520 1600 C642 1430 792 1356 994 1226 C1198 1094 1432 1090 1602 932 C1770 774 1862 612 2002 550" fill="none" stroke="#d7ad6b" stroke-width="30" stroke-linecap="round"/>
<path d="M692 1208 C824 1042 894 914 1046 770 C1202 622 1380 520 1560 370" fill="none" stroke="#e4c37d" stroke-width="24" stroke-linecap="round" opacity="0.95"/>
<path d="M424 990 C626 922 820 880 1028 812 C1260 736 1490 656 1694 508" fill="none" stroke="#c18f5d" stroke-width="22" stroke-linecap="round" opacity="0.82"/>
<g fill="#314333" opacity="0.92">
<path d="M0 0 L514 0 L392 230 L542 420 L284 548 L0 442 Z"/>
<path d="M664 0 L1086 0 L954 266 L748 408 L596 216 Z"/>
<path d="M1194 0 L2016 0 L2016 344 L1814 286 L1592 404 L1398 230 Z"/>
<path d="M1508 590 L2016 470 L2016 1030 L1730 936 L1460 1010 Z"/>
<path d="M0 632 L442 690 L278 954 L470 1190 L0 1276 Z"/>
</g>
<g fill="#21362e" opacity="0.78">
<ellipse cx="314" cy="780" rx="248" ry="154"/>
<ellipse cx="618" cy="1032" rx="238" ry="140"/>
<ellipse cx="1248" cy="1270" rx="326" ry="158"/>
<ellipse cx="1606" cy="1116" rx="254" ry="132"/>
<ellipse cx="1054" cy="682" rx="268" ry="134"/>
<ellipse cx="1480" cy="462" rx="210" ry="110"/>
</g>
<g fill="#745b41" stroke="#2f241d" stroke-width="8">
<rect x="250" y="1398" width="260" height="144" rx="6"/>
<rect x="596" y="1204" width="276" height="156" rx="6"/>
<rect x="984" y="1018" width="292" height="162" rx="6"/>
<rect x="1340" y="770" width="318" height="176" rx="6"/>
<rect x="1686" y="410" width="278" height="162" rx="6"/>
</g>
<g fill="#5a3d34" stroke="#251b16" stroke-width="10">
<path d="M1404 428 L1636 386 L1774 510 L1714 682 L1468 718 L1332 586 Z"/>
<path d="M946 704 L1174 660 L1304 786 L1246 960 L1002 990 L874 842 Z"/>
<path d="M1582 154 L1814 130 L1956 250 L1892 406 L1658 442 L1510 308 Z"/>
<path d="M1138 1228 L1354 1194 L1484 1312 L1424 1462 L1188 1486 L1060 1346 Z"/>
<path d="M1718 940 L1920 912 L2010 1036 L1966 1186 L1740 1204 L1636 1076 Z"/>
</g>
<g fill="#e3ca8f" stroke="#5a452f" stroke-width="7">
<rect x="170" y="1282" width="124" height="84" rx="5"/>
<rect x="500" y="1126" width="132" height="86" rx="5"/>
<rect x="762" y="968" width="138" height="88" rx="5"/>
<rect x="1222" y="858" width="148" height="92" rx="5"/>
<rect x="1462" y="580" width="138" height="88" rx="5"/>
<rect x="1764" y="316" width="128" height="82" rx="5"/>
</g>
<g opacity="0.24" stroke="#eff0dc" stroke-width="4" stroke-linecap="round" filter="url(#soft)">
<path d="M134 242 C320 198 456 202 642 250"/>
<path d="M728 444 C900 392 1088 404 1276 462"/>
<path d="M1178 158 C1342 118 1530 132 1710 184"/>
<path d="M1288 1056 C1460 1020 1642 1034 1852 1090"/>
</g>
<g fill="#daba6a" stroke="#4a3422" stroke-width="5">
<circle cx="334" cy="1410" r="22"/>
<circle cx="404" cy="1438" r="18"/>
<circle cx="666" cy="1234" r="21"/>
<circle cx="1074" cy="1044" r="22"/>
<circle cx="1418" cy="792" r="20"/>
<circle cx="1778" cy="428" r="22"/>
<circle cx="1838" cy="976" r="19"/>
</g>
<g opacity="0.6" fill="#77302d">
<path d="M332 1348 l58 18 -58 18 z"/>
<path d="M680 1176 l62 18 -62 18 z"/>
<path d="M1086 986 l66 20 -66 20 z"/>
<path d="M1452 734 l66 20 -66 20 z"/>
<path d="M1830 910 l54 18 -54 18 z"/>
</g>
<rect width="2016" height="1728" fill="url(#ground)" opacity="0.06" filter="url(#grain)"/>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 MiB

View File

@@ -12,8 +12,8 @@ import fiftyNinthBattleMapUrl from '../../assets/images/battle/fifty-ninth-battl
import sixtiethBattleMapUrl from '../../assets/images/battle/sixtieth-battle-map.webp';
import sixtyFirstBattleMapUrl from '../../assets/images/battle/sixty-first-battle-map.webp';
import sixtySecondBattleMapUrl from '../../assets/images/battle/sixty-second-battle-map.webp';
import sixtyThirdBattleMapUrl from '../../assets/images/battle/sixty-third-battle-map.svg';
import sixtyFourthBattleMapUrl from '../../assets/images/battle/sixty-fourth-battle-map.svg';
import sixtyThirdBattleMapUrl from '../../assets/images/battle/sixty-third-battle-map.webp';
import sixtyFourthBattleMapUrl from '../../assets/images/battle/sixty-fourth-battle-map.webp';
import sixtyFifthBattleMapUrl from '../../assets/images/battle/sixty-fifth-battle-map.svg';
import sixtySixthBattleMapUrl from '../../assets/images/battle/sixty-sixth-battle-map.svg';
import fiftySeventhBattleMapUrl from '../../assets/images/battle/fifty-seventh-battle-map.webp';