Replace battle maps 65 and 66 with hand-painted assets

This commit is contained in:
2026-07-09 23:43:29 +09:00
parent 57f4c0fd41
commit 3009ea3fe7
11 changed files with 31 additions and 178 deletions

View File

@@ -1,98 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2080 1792" role="img" aria-labelledby="title desc">
<title id="title">Weishui north bank pressure map</title>
<desc id="desc">Original tactical battlefield map with Wei River crossings, north bank delay camps, signal towers, forward Shu camps, villages, wooded ridges, roads, cliffs, and fortified palisades.</desc>
<defs>
<linearGradient id="ground" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#455044"/>
<stop offset="0.5" stop-color="#6f7766"/>
<stop offset="1" stop-color="#9a7b58"/>
</linearGradient>
<linearGradient id="river" x1="0" x2="1" y1="0" y2="0">
<stop offset="0" stop-color="#213c54"/>
<stop offset="0.46" stop-color="#527f8b"/>
<stop offset="1" stop-color="#a6b9ab"/>
</linearGradient>
<linearGradient id="road" x1="0" x2="1" y1="0" y2="0">
<stop offset="0" stop-color="#a46b44"/>
<stop offset="0.52" stop-color="#dbbd78"/>
<stop offset="1" stop-color="#8a6040"/>
</linearGradient>
<filter id="grain" x="-10%" y="-10%" width="120%" height="120%">
<feTurbulence type="fractalNoise" baseFrequency="0.011" numOctaves="4" seed="65"/>
<feColorMatrix type="saturate" values="0.22"/>
<feBlend mode="multiply" in2="SourceGraphic"/>
</filter>
<filter id="mist" x="-6%" y="-6%" width="112%" height="112%">
<feGaussianBlur stdDeviation="2.4"/>
</filter>
</defs>
<rect width="2080" height="1792" fill="url(#ground)"/>
<path d="M0 542 C252 448 462 520 692 612 C934 708 1138 674 1366 578 C1600 482 1838 522 2080 432" fill="none" stroke="url(#river)" stroke-width="112" stroke-linecap="round"/>
<path d="M0 694 C284 608 506 690 746 780 C986 870 1200 824 1438 728 C1674 634 1884 678 2080 604" fill="none" stroke="#2e6c7d" stroke-width="72" stroke-linecap="round" opacity="0.9"/>
<path d="M112 1658 C324 1510 542 1402 790 1244 C1054 1076 1342 954 1602 790 C1802 664 1940 594 2072 530" fill="none" stroke="url(#road)" stroke-width="50" stroke-linecap="round"/>
<path d="M352 1532 C564 1434 770 1306 992 1128 C1208 954 1422 918 1662 760 C1860 630 1968 538 2078 466" fill="none" stroke="#c98f5e" stroke-width="32" stroke-linecap="round"/>
<path d="M598 1680 C748 1516 918 1380 1136 1260 C1390 1120 1608 1052 1790 900 C1930 784 2012 676 2078 640" fill="none" stroke="#e4c17d" stroke-width="28" stroke-linecap="round"/>
<path d="M732 1250 C892 1110 1028 982 1218 866 C1414 744 1594 662 1780 528" fill="none" stroke="#ecd394" stroke-width="22" stroke-linecap="round" opacity="0.88"/>
<g fill="#334632" opacity="0.9">
<path d="M0 0 L608 0 L486 240 L650 472 L352 616 L0 508 Z"/>
<path d="M704 0 L1248 0 L1102 306 L842 462 L660 230 Z"/>
<path d="M1378 0 L2080 0 L2080 350 L1888 292 L1640 418 L1450 240 Z"/>
<path d="M0 780 L438 740 L318 1036 L512 1292 L0 1410 Z"/>
<path d="M1570 830 L2080 696 L2080 1260 L1788 1164 L1506 1252 Z"/>
</g>
<g fill="#24362f" opacity="0.84">
<ellipse cx="316" cy="876" rx="276" ry="154"/>
<ellipse cx="652" cy="1114" rx="266" ry="148"/>
<ellipse cx="1128" cy="1358" rx="336" ry="164"/>
<ellipse cx="1574" cy="1216" rx="298" ry="140"/>
<ellipse cx="1132" cy="790" rx="302" ry="136"/>
<ellipse cx="1674" cy="540" rx="246" ry="116"/>
</g>
<g fill="#7b5d3d" stroke="#2f2318" stroke-width="8">
<rect x="252" y="1500" width="302" height="154" rx="6"/>
<rect x="640" y="1302" width="310" height="164" rx="6"/>
<rect x="1056" y="1114" width="320" height="172" rx="6"/>
<rect x="1450" y="846" width="350" height="190" rx="6"/>
<rect x="1780" y="594" width="312" height="174" rx="6"/>
</g>
<g fill="#553b33" stroke="#241915" stroke-width="10">
<path d="M1468 492 L1712 438 L1858 582 L1784 766 L1524 804 L1382 642 Z"/>
<path d="M1022 780 L1268 730 L1416 864 L1340 1048 L1074 1082 L932 920 Z"/>
<path d="M1648 222 L1902 188 L2070 326 L2002 504 L1734 538 L1580 382 Z"/>
<path d="M1214 1328 L1448 1286 L1592 1414 L1522 1574 L1266 1604 L1130 1452 Z"/>
<path d="M1710 1068 L1960 1028 L2074 1170 L2026 1332 L1768 1358 L1640 1206 Z"/>
<path d="M1846 804 L2060 770 L2078 924 L1908 974 L1768 902 Z"/>
</g>
<g fill="#e2c68a" stroke="#58442c" stroke-width="7">
<rect x="166" y="1376" width="132" height="88" rx="5"/>
<rect x="540" y="1202" width="142" height="90" rx="5"/>
<rect x="828" y="1032" width="150" height="94" rx="5"/>
<rect x="1302" y="920" width="156" height="96" rx="5"/>
<rect x="1574" y="670" width="146" height="92" rx="5"/>
<rect x="1884" y="414" width="136" height="86" rx="5"/>
</g>
<g opacity="0.28" stroke="#eef0dd" stroke-width="5" stroke-linecap="round" filter="url(#mist)">
<path d="M132 302 C342 244 508 260 724 326"/>
<path d="M742 526 C956 466 1144 490 1368 552"/>
<path d="M1210 202 C1406 154 1608 174 1806 238"/>
<path d="M1308 1138 C1494 1086 1716 1110 1930 1174"/>
</g>
<g fill="#dfbe6d" stroke="#4a3320" stroke-width="5">
<circle cx="364" cy="1510" r="23"/>
<circle cx="450" cy="1534" r="18"/>
<circle cx="718" cy="1328" r="22"/>
<circle cx="1148" cy="1146" r="23"/>
<circle cx="1538" cy="870" r="22"/>
<circle cx="1906" cy="608" r="23"/>
<circle cx="1888" cy="1106" r="21"/>
<circle cx="1962" cy="840" r="19"/>
</g>
<g opacity="0.64" fill="#79312d">
<path d="M374 1450 l66 22 -66 20 z"/>
<path d="M732 1264 l70 22 -70 20 z"/>
<path d="M1164 1084 l70 22 -70 20 z"/>
<path d="M1570 814 l70 22 -70 20 z"/>
<path d="M1902 1044 l62 20 -62 18 z"/>
</g>
<rect width="2080" height="1792" 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: 18 MiB

View File

@@ -1,77 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2112 1824" role="img" aria-label="Wuzhang Plains final battle map">
<defs>
<linearGradient id="ground" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#5e7747"/>
<stop offset="0.52" stop-color="#7b8a55"/>
<stop offset="1" stop-color="#4b6040"/>
</linearGradient>
<linearGradient id="river" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#334f6d"/>
<stop offset="0.5" stop-color="#557d98"/>
<stop offset="1" stop-color="#293f59"/>
</linearGradient>
<filter id="softShadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="7" stdDeviation="8" flood-color="#172016" flood-opacity="0.36"/>
</filter>
</defs>
<rect width="2112" height="1824" fill="url(#ground)"/>
<path d="M0 356 C360 324 582 414 880 382 C1188 350 1460 292 2112 342 L2112 520 C1588 486 1248 536 912 566 C594 594 324 512 0 552 Z" fill="url(#river)" opacity="0.92"/>
<path d="M0 588 C376 548 622 652 930 610 C1242 568 1532 520 2112 584 L2112 760 C1568 726 1260 776 930 808 C602 840 332 744 0 790 Z" fill="url(#river)" opacity="0.85"/>
<g fill="#34472f" opacity="0.72">
<path d="M0 0 H686 C600 132 482 224 252 286 C140 316 62 338 0 366 Z"/>
<path d="M1500 0 H2112 V520 C1978 440 1858 362 1754 256 C1662 162 1574 86 1500 0 Z"/>
<path d="M1640 1022 C1816 944 1978 970 2112 1050 V1824 H1772 C1748 1608 1644 1448 1518 1326 C1430 1240 1462 1102 1640 1022 Z"/>
</g>
<g fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M124 1664 C346 1584 512 1508 708 1396 C928 1270 1100 1208 1300 1090 C1462 994 1660 868 1972 744" stroke="#c0a368" stroke-width="54" opacity="0.72"/>
<path d="M536 1714 C570 1442 594 1206 630 1012 C666 818 706 672 770 520" stroke="#b99660" stroke-width="42" opacity="0.62"/>
<path d="M972 1648 C1000 1390 1028 1164 1080 974 C1134 782 1202 630 1308 458" stroke="#b99660" stroke-width="42" opacity="0.62"/>
<path d="M1618 1450 C1644 1250 1674 1044 1728 872 C1788 686 1854 548 1968 394" stroke="#b99660" stroke-width="40" opacity="0.58"/>
</g>
<g filter="url(#softShadow)">
<g fill="#7f6a45" stroke="#30271d" stroke-width="10">
<rect x="326" y="1408" width="324" height="188" rx="8"/>
<rect x="756" y="1208" width="360" height="198" rx="8"/>
<rect x="1178" y="990" width="368" height="202" rx="8"/>
<rect x="1648" y="548" width="332" height="224" rx="8"/>
</g>
<g fill="#a64e3b" stroke="#2b1714" stroke-width="8">
<path d="M388 1396 L426 1324 L464 1396 Z"/>
<path d="M850 1192 L890 1116 L930 1192 Z"/>
<path d="M1304 972 L1346 890 L1388 972 Z"/>
<path d="M1766 532 L1810 448 L1854 532 Z"/>
</g>
</g>
<g fill="#2e5833" opacity="0.8">
<circle cx="144" cy="1254" r="42"/>
<circle cx="226" cy="1322" r="38"/>
<circle cx="310" cy="1244" r="48"/>
<circle cx="604" cy="1128" r="38"/>
<circle cx="690" cy="1064" r="44"/>
<circle cx="1480" cy="1286" r="48"/>
<circle cx="1582" cy="1212" r="44"/>
<circle cx="1868" cy="986" r="50"/>
<circle cx="1984" cy="1048" r="42"/>
</g>
<g fill="#d6c184" stroke="#42351f" stroke-width="6">
<rect x="226" y="1512" width="58" height="42"/>
<rect x="310" y="1494" width="58" height="42"/>
<rect x="786" y="1302" width="62" height="46"/>
<rect x="882" y="1278" width="62" height="46"/>
<rect x="1280" y="1086" width="66" height="48"/>
<rect x="1380" y="1058" width="66" height="48"/>
<rect x="1744" y="660" width="68" height="50"/>
<rect x="1854" y="638" width="68" height="50"/>
</g>
<g opacity="0.36">
<path d="M120 1746 C420 1628 766 1514 1116 1324 C1480 1128 1744 938 2044 760" fill="none" stroke="#1f2a1f" stroke-width="18"/>
<path d="M0 1774 H2112" stroke="#263528" stroke-width="18"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 MiB

View File

@@ -14,8 +14,8 @@ import sixtyFirstBattleMapUrl from '../../assets/images/battle/sixty-first-battl
import sixtySecondBattleMapUrl from '../../assets/images/battle/sixty-second-battle-map.webp';
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 sixtyFifthBattleMapUrl from '../../assets/images/battle/sixty-fifth-battle-map.webp';
import sixtySixthBattleMapUrl from '../../assets/images/battle/sixty-sixth-battle-map.webp';
import fiftySeventhBattleMapUrl from '../../assets/images/battle/fifty-seventh-battle-map.webp';
import fiftySixthBattleMapUrl from '../../assets/images/battle/fifty-sixth-battle-map.webp';
import fifthBattleMapUrl from '../../assets/images/battle/fifth-battle-map.webp';