diff --git a/android/Images/BorderImages/ConcaveInner.png b/android/Images/BorderImages/ConcaveInner.png new file mode 100644 index 0000000000..e3eb02826b Binary files /dev/null and b/android/Images/BorderImages/ConcaveInner.png differ diff --git a/android/Images/BorderImages/ConcaveOuter.png b/android/Images/BorderImages/ConcaveOuter.png new file mode 100644 index 0000000000..ccbb073f3c Binary files /dev/null and b/android/Images/BorderImages/ConcaveOuter.png differ diff --git a/android/Images/BorderImages/ConvexConcaveInner.png b/android/Images/BorderImages/ConvexConcaveInner.png new file mode 100644 index 0000000000..ebf42e473f Binary files /dev/null and b/android/Images/BorderImages/ConvexConcaveInner.png differ diff --git a/android/Images/BorderImages/ConvexConcaveOuter.png b/android/Images/BorderImages/ConvexConcaveOuter.png new file mode 100644 index 0000000000..2d2709369a Binary files /dev/null and b/android/Images/BorderImages/ConvexConcaveOuter.png differ diff --git a/android/Images/BorderImages/ConvexInner.png b/android/Images/BorderImages/ConvexInner.png new file mode 100644 index 0000000000..0c4690ad49 Binary files /dev/null and b/android/Images/BorderImages/ConvexInner.png differ diff --git a/android/Images/BorderImages/ConvexOuter.png b/android/Images/BorderImages/ConvexOuter.png new file mode 100644 index 0000000000..03e6826028 Binary files /dev/null and b/android/Images/BorderImages/ConvexOuter.png differ diff --git a/android/Images/OtherIcons/Border-inner.png b/android/Images/OtherIcons/Border-inner.png deleted file mode 100644 index d071ba393d..0000000000 Binary files a/android/Images/OtherIcons/Border-inner.png and /dev/null differ diff --git a/android/Images/OtherIcons/Border-outer.png b/android/Images/OtherIcons/Border-outer.png deleted file mode 100644 index b62c26f9e5..0000000000 Binary files a/android/Images/OtherIcons/Border-outer.png and /dev/null differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index 1416166d9c..82eb45016d 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -4,4328 +4,4356 @@ size: 2048, 2048 format: RGBA8888 filter: MipMapLinearLinear, MipMapLinearLinear repeat: none +BorderImages/ConcaveInner + rotate: false + xy: 4, 55 + size: 81, 15 + orig: 81, 15 + offset: 0, 0 + index: -1 +BorderImages/ConcaveOuter + rotate: false + xy: 190, 1429 + size: 81, 15 + orig: 81, 15 + offset: 0, 0 + index: -1 +BorderImages/ConvexConcaveInner + rotate: false + xy: 220, 85 + size: 81, 15 + orig: 81, 15 + offset: 0, 0 + index: -1 +BorderImages/ConvexConcaveOuter + rotate: false + xy: 328, 115 + size: 81, 15 + orig: 81, 15 + offset: 0, 0 + index: -1 +BorderImages/ConvexInner + rotate: false + xy: 1084, 1165 + size: 81, 15 + orig: 81, 15 + offset: 0, 0 + index: -1 +BorderImages/ConvexOuter + rotate: false + xy: 1192, 1273 + size: 81, 15 + orig: 81, 15 + offset: 0, 0 + index: -1 EmojiIcons/Culture rotate: false - xy: 1822, 1337 + xy: 1484, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Faith rotate: false - xy: 494, 371 + xy: 1890, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Food rotate: false - xy: 494, 197 + xy: 1142, 1049 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Gold rotate: false - xy: 926, 797 + xy: 1358, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Happiness rotate: false - xy: 278, 41 + xy: 1532, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Production rotate: false - xy: 1482, 1279 + xy: 826, 640 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Science rotate: false - xy: 1424, 1221 + xy: 660, 532 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Turn rotate: false - xy: 984, 789 + xy: 1100, 817 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 ImprovementIcons/Academy rotate: false - xy: 475, 1935 + xy: 475, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Ancient ruins rotate: false - xy: 691, 1935 + xy: 691, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Barbarian encampment rotate: false - xy: 1123, 1935 + xy: 1123, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Camp rotate: false - xy: 4, 501 + xy: 4, 510 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Citadel rotate: false - xy: 1663, 1935 + xy: 1663, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/City center rotate: false - xy: 1879, 1935 + xy: 1879, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/City ruins rotate: false - xy: 190, 1443 + xy: 190, 1452 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Customs house rotate: false - xy: 1771, 1827 + xy: 1771, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Farm rotate: false - xy: 289, 1749 + xy: 289, 1758 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fishing Boats rotate: false - xy: 298, 1425 + xy: 298, 1434 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fort rotate: false - xy: 609, 1719 + xy: 609, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Holy site rotate: false - xy: 1905, 1719 + xy: 1905, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Landmark rotate: false - xy: 1378, 1611 + xy: 1378, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Lumber mill rotate: false - xy: 1486, 1503 + xy: 1486, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Manufactory rotate: false - xy: 1594, 1503 + xy: 1594, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Mine rotate: false - xy: 622, 1395 + xy: 622, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Moai rotate: false - xy: 730, 1395 + xy: 730, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Oil well rotate: false - xy: 1702, 1395 + xy: 1702, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Pasture rotate: false - xy: 220, 1287 + xy: 220, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Plantation rotate: false - xy: 220, 639 + xy: 220, 648 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Polder rotate: false - xy: 220, 531 + xy: 220, 540 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Quarry rotate: false - xy: 328, 1101 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -ImprovementIcons/Railroad - rotate: false - xy: 328, 777 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/Railroad - rotate: false - xy: 328, 777 + xy: 328, 1110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Road rotate: false - xy: 436, 1287 + xy: 436, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Terrace farm rotate: false - xy: 544, 639 + xy: 544, 648 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Trading post rotate: false - xy: 1084, 1179 + xy: 1084, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/America rotate: false - xy: 4, 1149 + xy: 4, 1158 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Arabia rotate: false - xy: 4, 1041 + xy: 4, 1050 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Austria rotate: false - xy: 4, 933 + xy: 4, 942 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Aztecs rotate: false - xy: 907, 1935 + xy: 907, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Babylon rotate: false - xy: 4, 825 + xy: 4, 834 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Byzantium rotate: false - xy: 1231, 1935 + xy: 1231, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Carthage rotate: false - xy: 1339, 1935 + xy: 1339, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Celts rotate: false - xy: 1447, 1935 + xy: 1447, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/China rotate: false - xy: 1555, 1935 + xy: 1555, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/CityState rotate: false - xy: 691, 1827 + xy: 691, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Denmark rotate: false - xy: 112, 1257 + xy: 112, 1266 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Egypt rotate: false - xy: 112, 717 + xy: 112, 726 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/England rotate: false - xy: 112, 609 + xy: 112, 618 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Ethiopia rotate: false - xy: 112, 393 + xy: 112, 402 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/France rotate: false - xy: 825, 1719 + xy: 825, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Germany rotate: false - xy: 1149, 1719 + xy: 1149, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Greece rotate: false - xy: 1473, 1719 + xy: 1473, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Inca rotate: false - xy: 622, 1503 + xy: 622, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/India rotate: false - xy: 730, 1503 + xy: 730, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Iroquois rotate: false - xy: 838, 1503 + xy: 838, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Japan rotate: false - xy: 1054, 1611 + xy: 1054, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Korea rotate: false - xy: 1270, 1611 + xy: 1270, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Mongolia rotate: false - xy: 946, 1395 + xy: 946, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Persia rotate: false - xy: 220, 855 + xy: 220, 864 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Polynesia rotate: false - xy: 220, 423 + xy: 220, 432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Rome rotate: false - xy: 436, 1179 + xy: 436, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Russia rotate: false - xy: 544, 1287 + xy: 544, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Siam rotate: false - xy: 544, 963 + xy: 544, 972 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Songhai rotate: false - xy: 544, 855 + xy: 544, 864 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Spain rotate: false - xy: 652, 963 + xy: 652, 972 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Sweden rotate: false - xy: 976, 1179 + xy: 976, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/The Huns rotate: false - xy: 652, 747 + xy: 652, 756 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/The Maya rotate: false - xy: 760, 855 + xy: 760, 864 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/The Netherlands rotate: false - xy: 868, 963 + xy: 868, 972 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/The Ottomans rotate: false - xy: 976, 1071 + xy: 976, 1080 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Aircraft rotate: false - xy: 436, 371 + xy: 868, 806 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/ArrowLeft rotate: false - xy: 976, 905 + xy: 1300, 1306 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/ArrowRight rotate: false - xy: 397, 1759 + xy: 436, 340 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Movement rotate: false - xy: 397, 1759 + xy: 436, 340 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/BackArrow rotate: false - xy: 1987, 1927 + xy: 1987, 1936 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Banner rotate: false - xy: 4, 717 + xy: 4, 726 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -OtherIcons/Border-inner - rotate: false - xy: 436, 1402 - size: 31, 15 - orig: 31, 15 - offset: 0, 0 - index: -1 -OtherIcons/Border-outer - rotate: false - xy: 475, 1402 - size: 31, 15 - orig: 31, 15 - offset: 0, 0 - index: -1 OtherIcons/Camera rotate: false - xy: 948, 764 + xy: 1092, 690 size: 25, 25 orig: 25, 25 offset: 0, 0 index: -1 OtherIcons/Checkmark rotate: false - xy: 4, 285 + xy: 4, 294 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Circle rotate: false - xy: 289, 1857 + xy: 289, 1866 size: 178, 178 orig: 178, 178 offset: 0, 0 index: -1 OtherIcons/Cities rotate: false - xy: 4, 69 + xy: 4, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/CityState rotate: false - xy: 1474, 1337 + xy: 710, 590 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Close rotate: false - xy: 799, 1827 + xy: 799, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Crosshair rotate: false - xy: 1447, 1827 + xy: 1447, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Cultured rotate: false - xy: 1663, 1827 + xy: 1663, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Diplomacy rotate: false - xy: 112, 1149 + xy: 112, 1158 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/DiplomacyW rotate: false - xy: 112, 1041 + xy: 112, 1050 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/DisbandUnit rotate: false - xy: 112, 933 + xy: 112, 942 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Down rotate: false - xy: 1938, 1337 + xy: 1600, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/ExclamationMark rotate: false - xy: 112, 285 + xy: 112, 294 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Fire rotate: false - xy: 285, 1641 + xy: 285, 1650 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Hexagon rotate: false - xy: 4, 1795 + xy: 4, 1804 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 TileSets/Default/Hexagon rotate: false - xy: 4, 1795 + xy: 4, 1804 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 TileSets/FantasyHex/Hexagon rotate: false - xy: 4, 1795 + xy: 4, 1804 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 OtherIcons/Improvements rotate: false - xy: 510, 81 + xy: 1764, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Link rotate: false - xy: 131, 11 + xy: 151, 20 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Load rotate: false - xy: 1378, 1503 + xy: 1378, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Lock rotate: false - xy: 1486, 1611 + xy: 1486, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/MapEditor rotate: false - xy: 1702, 1611 + xy: 1702, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Maritime rotate: false - xy: 1810, 1611 + xy: 1810, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/MenuIcon rotate: false - xy: 1918, 1611 + xy: 1918, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Mercantile rotate: false - xy: 1918, 1503 + xy: 1918, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Militaristic rotate: false - xy: 514, 1395 + xy: 514, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Mods rotate: false - xy: 838, 1395 + xy: 838, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Multiplayer rotate: false - xy: 1162, 1395 + xy: 1162, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Nations rotate: false - xy: 568, 125 + xy: 610, 366 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/New rotate: false - xy: 1378, 1395 + xy: 1378, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Options rotate: false - xy: 1810, 1395 + xy: 1810, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pencil rotate: false - xy: 220, 1071 + xy: 220, 1080 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pentagon rotate: false - xy: 220, 963 + xy: 220, 972 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pillage rotate: false - xy: 220, 747 + xy: 220, 756 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Present rotate: false - xy: 220, 99 + xy: 220, 108 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Puppet rotate: false - xy: 328, 1209 + xy: 328, 1218 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Quest rotate: false - xy: 328, 993 + xy: 328, 1002 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Quickstart rotate: false - xy: 328, 885 + xy: 328, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Remove Heresy rotate: false - xy: 328, 453 + xy: 328, 462 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Resources rotate: false - xy: 328, 237 + xy: 328, 246 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Resume rotate: false - xy: 328, 129 + xy: 328, 138 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Search rotate: false - xy: 652, 1287 + xy: 652, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/SecretOptions rotate: false - xy: 436, 963 + xy: 436, 972 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Settings rotate: false - xy: 544, 1071 + xy: 544, 1080 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Shield rotate: false - xy: 760, 1287 + xy: 760, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Sleep rotate: false - xy: 436, 747 + xy: 436, 756 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Speaker rotate: false - xy: 760, 1071 + xy: 760, 1080 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Star rotate: false - xy: 436, 645 + xy: 436, 654 size: 100, 94 orig: 100, 94 offset: 0, 0 index: -1 OtherIcons/Stop rotate: false - xy: 652, 855 + xy: 652, 864 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Swap rotate: false - xy: 868, 1071 + xy: 868, 1080 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Terrains rotate: false - xy: 768, 573 + xy: 776, 466 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Triangle rotate: false - xy: 4, 1365 + xy: 4, 1374 size: 178, 178 orig: 178, 178 offset: 0, 0 index: -1 OtherIcons/Up rotate: false - xy: 1200, 1055 + xy: 1158, 809 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Wonders rotate: false - xy: 868, 855 + xy: 868, 864 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/whiteDot rotate: false - xy: 668, 183 + xy: 84, 46 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 PolicyIcons/Aesthetics rotate: false - xy: 1084, 1121 + xy: 544, 482 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Aristocracy rotate: false - xy: 760, 689 + xy: 1192, 1215 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Citizenship rotate: false - xy: 436, 255 + xy: 602, 482 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Civil Society rotate: false - xy: 436, 197 + xy: 818, 698 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Collective Rule rotate: false - xy: 436, 139 + xy: 1034, 914 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Communism rotate: false - xy: 1590, 1337 + xy: 544, 424 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Constitution rotate: false - xy: 1648, 1337 + xy: 602, 424 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Cultural Diplomacy rotate: false - xy: 1764, 1337 + xy: 1426, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Democracy rotate: false - xy: 1880, 1337 + xy: 1542, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Educated Elite rotate: false - xy: 1142, 1063 + xy: 1716, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Fascism rotate: false - xy: 494, 313 + xy: 1948, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Religion rotate: false - xy: 602, 473 + xy: 1092, 933 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Speech rotate: false - xy: 710, 581 + xy: 1150, 933 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Thought rotate: false - xy: 818, 689 + xy: 1250, 1215 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Humanism rotate: false - xy: 452, 81 + xy: 1706, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Landed Elite rotate: false - xy: 510, 23 + xy: 436, 108 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Legalism rotate: false - xy: 73, 11 + xy: 93, 20 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mandate Of Heaven rotate: false - xy: 1150, 947 + xy: 1150, 875 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mercantilism rotate: false - xy: 552, 415 + xy: 494, 340 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Merchant Navy rotate: false - xy: 552, 357 + xy: 494, 282 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Meritocracy rotate: false - xy: 552, 299 + xy: 494, 224 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Militarism rotate: false - xy: 552, 241 + xy: 494, 166 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Caste rotate: false - xy: 552, 183 + xy: 494, 108 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Tradition rotate: false - xy: 610, 415 + xy: 552, 366 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Monarchy rotate: false - xy: 610, 299 + xy: 552, 250 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Nationalism rotate: false - xy: 610, 183 + xy: 552, 134 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Naval Tradition rotate: false - xy: 568, 67 + xy: 610, 308 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Oligarchy rotate: false - xy: 568, 9 + xy: 610, 250 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Organized Religion rotate: false - xy: 626, 125 + xy: 610, 192 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Philantropy rotate: false - xy: 626, 67 + xy: 610, 134 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Planned Economy rotate: false - xy: 1308, 1279 + xy: 610, 76 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Police State rotate: false - xy: 1366, 1279 + xy: 768, 640 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Populism rotate: false - xy: 1424, 1279 + xy: 768, 582 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Professional Army rotate: false - xy: 1540, 1279 + xy: 826, 582 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Protectionism rotate: false - xy: 1598, 1279 + xy: 1200, 1157 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Reformation rotate: false - xy: 1772, 1279 + xy: 1258, 1157 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Representation rotate: false - xy: 1888, 1279 + xy: 1258, 1041 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Republic rotate: false - xy: 1308, 1221 + xy: 984, 856 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scholasticism rotate: false - xy: 1366, 1221 + xy: 984, 798 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scientific Revolution rotate: false - xy: 1482, 1221 + xy: 660, 474 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Secularism rotate: false - xy: 1598, 1221 + xy: 1208, 925 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Socialism rotate: false - xy: 1772, 1221 + xy: 1208, 867 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Sovereignty rotate: false - xy: 1888, 1221 + xy: 876, 748 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Theocracy rotate: false - xy: 826, 631 + xy: 834, 524 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Total War rotate: false - xy: 826, 573 + xy: 834, 466 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Trade Unions rotate: false - xy: 984, 847 + xy: 1042, 817 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/United Front rotate: false - xy: 1200, 1171 + xy: 1042, 759 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Universal Suffrage rotate: false - xy: 1200, 1113 + xy: 1100, 759 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Warrior Code rotate: false - xy: 1042, 831 + xy: 1158, 751 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 ReligionIcons/Buddhism rotate: false - xy: 4, 609 + xy: 4, 618 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Christianity rotate: false - xy: 4, 177 + xy: 4, 186 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Confucianism rotate: false - xy: 1015, 1827 + xy: 1015, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Enhancer rotate: false - xy: 112, 501 + xy: 112, 510 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Follower rotate: false - xy: 406, 1533 + xy: 406, 1542 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Founder rotate: false - xy: 717, 1719 + xy: 717, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Hinduism rotate: false - xy: 1797, 1719 + xy: 1797, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Islam rotate: false - xy: 946, 1611 + xy: 946, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Judaism rotate: false - xy: 1162, 1611 + xy: 1162, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Pantheon rotate: false - xy: 1918, 1395 + xy: 1918, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Religion rotate: false - xy: 328, 669 + xy: 328, 678 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Religious rotate: false - xy: 328, 669 + xy: 328, 678 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Shinto rotate: false - xy: 436, 855 + xy: 436, 864 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Sikhism rotate: false - xy: 652, 1071 + xy: 652, 1080 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Taoism rotate: false - xy: 1084, 1287 + xy: 1084, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Tengriism rotate: false - xy: 436, 537 + xy: 436, 546 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ReligionIcons/Zoroastrianism rotate: false - xy: 976, 963 + xy: 976, 972 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Aluminum rotate: false - xy: 583, 1935 + xy: 583, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Bananas rotate: false - xy: 1015, 1935 + xy: 1015, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cattle rotate: false - xy: 4, 393 + xy: 4, 402 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Citrus rotate: false - xy: 1771, 1935 + xy: 1771, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Coal rotate: false - xy: 907, 1827 + xy: 907, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Copper rotate: false - xy: 1123, 1827 + xy: 1123, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cotton rotate: false - xy: 1231, 1827 + xy: 1231, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Crab rotate: false - xy: 1339, 1827 + xy: 1339, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Deer rotate: false - xy: 1879, 1827 + xy: 1879, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Dyes rotate: false - xy: 112, 825 + xy: 112, 834 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Fish rotate: false - xy: 298, 1533 + xy: 298, 1542 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Furs rotate: false - xy: 933, 1719 + xy: 933, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gems rotate: false - xy: 1041, 1719 + xy: 1041, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gold Ore rotate: false - xy: 1365, 1719 + xy: 1365, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Horses rotate: false - xy: 514, 1611 + xy: 514, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Incense rotate: false - xy: 730, 1611 + xy: 730, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Iron rotate: false - xy: 838, 1611 + xy: 838, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Ivory rotate: false - xy: 946, 1503 + xy: 946, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Jewelry rotate: false - xy: 1054, 1503 + xy: 1054, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Marble rotate: false - xy: 1702, 1503 + xy: 1702, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Oil rotate: false - xy: 1594, 1395 + xy: 1594, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Pearls rotate: false - xy: 220, 1179 + xy: 220, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Porcelain rotate: false - xy: 220, 207 + xy: 220, 216 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Salt rotate: false - xy: 436, 1071 + xy: 436, 1080 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sheep rotate: false - xy: 652, 1179 + xy: 652, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silk rotate: false - xy: 760, 1179 + xy: 760, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silver rotate: false - xy: 868, 1287 + xy: 868, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Spices rotate: false - xy: 976, 1287 + xy: 976, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Stone rotate: false - xy: 544, 747 + xy: 544, 756 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sugar rotate: false - xy: 760, 963 + xy: 760, 972 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Truffles rotate: false - xy: 1192, 1287 + xy: 1192, 1296 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Uranium rotate: false - xy: 436, 429 + xy: 436, 438 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Whales rotate: false - xy: 544, 531 + xy: 544, 540 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wheat rotate: false - xy: 652, 639 + xy: 652, 648 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wine rotate: false - xy: 760, 747 + xy: 760, 756 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Acquire rotate: false - xy: 4, 1257 + xy: 4, 1266 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/CityConnection rotate: false - xy: 475, 1827 + xy: 475, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Culture rotate: false - xy: 1555, 1827 + xy: 1555, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Faith rotate: false - xy: 112, 177 + xy: 112, 186 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Food rotate: false - xy: 406, 1425 + xy: 406, 1434 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Gold rotate: false - xy: 1257, 1719 + xy: 1257, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Happiness rotate: false - xy: 1581, 1719 + xy: 1581, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/InterceptRange rotate: false - xy: 394, 13 + xy: 1880, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Malcontent rotate: false - xy: 1594, 1611 + xy: 1594, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Population rotate: false - xy: 220, 315 + xy: 220, 324 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Production rotate: false - xy: 328, 1317 + xy: 328, 1326 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Range rotate: false - xy: 1656, 1279 + xy: 1200, 1099 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/RangedStrength rotate: false - xy: 1714, 1279 + xy: 1200, 1041 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/ReligiousStrength rotate: false - xy: 328, 561 + xy: 328, 570 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Resistance rotate: false - xy: 328, 345 + xy: 328, 354 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Science rotate: false - xy: 544, 1179 + xy: 544, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Specialist rotate: false - xy: 868, 1179 + xy: 868, 1188 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Strength rotate: false - xy: 1946, 1279 + xy: 718, 524 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 TileSets/Default/AtollOverlay rotate: false - xy: 799, 1935 + xy: 799, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/CityOverlay rotate: false - xy: 583, 1827 + xy: 583, 1836 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/CrosshatchHexagon rotate: false - xy: 4, 1551 + xy: 4, 1560 size: 273, 236 orig: 273, 236 offset: 0, 0 index: -1 TileSets/FantasyHex/CrosshatchHexagon rotate: false - xy: 4, 1551 + xy: 4, 1560 size: 273, 236 orig: 273, 236 offset: 0, 0 index: -1 TileSets/Default/FalloutOverlay rotate: false - xy: 112, 69 + xy: 112, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Flood plainsOverlay rotate: false - xy: 393, 1641 + xy: 393, 1650 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/ForestOverlay rotate: false - xy: 501, 1719 + xy: 501, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/HillOverlay rotate: false - xy: 1689, 1719 + xy: 1689, 1728 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/IceOverlay rotate: false - xy: 514, 1503 + xy: 514, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/JungleOverlay rotate: false - xy: 1162, 1503 + xy: 1162, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/LakesOverlay rotate: false - xy: 1270, 1503 + xy: 1270, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/MarshOverlay rotate: false - xy: 1810, 1503 + xy: 1810, 1512 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/MountainOverlay rotate: false - xy: 1054, 1395 + xy: 1054, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/NaturalWonderOverlay rotate: false - xy: 1270, 1395 + xy: 1270, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/OasisOverlay rotate: false - xy: 1486, 1395 + xy: 1486, 1404 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Default/Railroad + rotate: false + xy: 328, 786 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ImprovementIcons/Railroad + rotate: false + xy: 328, 786 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Road rotate: false - xy: 4, 50 + xy: 397, 1847 size: 61, 11 orig: 61, 11 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-Bottom rotate: false - xy: 884, 577 + xy: 708, 237 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-BottomLeft rotate: false - xy: 924, 613 + xy: 788, 322 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-BottomRight rotate: false - xy: 884, 541 + xy: 708, 201 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Railroad rotate: false - xy: 397, 1817 + xy: 1300, 1364 size: 60, 32 orig: 60, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Road rotate: false - xy: 190, 1403 + xy: 436, 398 size: 60, 32 orig: 60, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Academy rotate: false - xy: 258, 1399 + xy: 4, 11 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Academy-Snow rotate: false - xy: 4, 7 + xy: 876, 705 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Aluminum rotate: false - xy: 868, 761 + xy: 1987, 1842 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins rotate: false - xy: 1258, 1193 + xy: 934, 770 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Jungle rotate: false - xy: 660, 483 + xy: 1274, 769 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Sand rotate: false - xy: 718, 545 + xy: 1042, 878 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Snow rotate: false - xy: 1042, 795 + xy: 44, 19 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins2 rotate: false - xy: 1200, 1019 + xy: 660, 438 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Atoll rotate: false - xy: 1162, 795 + xy: 1274, 733 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Bananas rotate: false - xy: 1298, 1185 + xy: 2006, 1332 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barbarian encampment rotate: false - xy: 1298, 1149 + xy: 1996, 1296 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barbarian encampment-Snow rotate: false - xy: 1338, 1184 + xy: 668, 401 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barringer Crater rotate: false - xy: 1298, 1113 + xy: 668, 365 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Bison rotate: false - xy: 1418, 1185 + xy: 668, 149 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Bison+Camp rotate: false - xy: 1378, 1113 + xy: 668, 113 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cattle rotate: false - xy: 1618, 1185 + xy: 325, 43 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cattle+Pasture rotate: false - xy: 1618, 1145 + xy: 365, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cerro de Potosi rotate: false - xy: 1658, 1149 + xy: 1014, 723 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citadel rotate: false - xy: 1738, 1178 + xy: 1308, 1263 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citadel-Snow rotate: false - xy: 1778, 1183 + xy: 1308, 1225 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citrus rotate: false - xy: 1818, 1185 + xy: 1348, 1252 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citrus+Plantation rotate: false - xy: 1858, 1185 + xy: 1388, 1252 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center rotate: false - xy: 1898, 1178 + xy: 1428, 1245 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Ancient era rotate: false - xy: 1938, 1181 + xy: 1468, 1248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Atomic era rotate: false - xy: 1338, 1070 + xy: 1508, 1246 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Classical era rotate: false - xy: 1378, 1073 + xy: 1548, 1248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Future era rotate: false - xy: 1418, 1070 + xy: 1588, 1246 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Industrial era rotate: false - xy: 1458, 1072 + xy: 1628, 1247 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Information era rotate: false - xy: 1498, 1099 + xy: 1668, 1244 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Medieval era rotate: false - xy: 1538, 1109 + xy: 1708, 1248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Modern era rotate: false - xy: 1578, 1107 + xy: 1748, 1246 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Renaissance era rotate: false - xy: 1618, 1105 + xy: 1788, 1248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City ruins rotate: false - xy: 1658, 1113 + xy: 1828, 1252 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Coal rotate: false - xy: 1738, 1142 + xy: 1908, 1252 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Coast rotate: false - xy: 1778, 1147 + xy: 1948, 1252 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cocoa rotate: false - xy: 1818, 1149 + xy: 1348, 1216 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cocoa+Plantation rotate: false - xy: 1858, 1149 + xy: 1388, 1216 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Copper rotate: false - xy: 1458, 1036 + xy: 1588, 1210 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cotton rotate: false - xy: 1538, 1073 + xy: 1668, 1208 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Crab rotate: false - xy: 1578, 1071 + xy: 1708, 1212 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Customs house rotate: false - xy: 1698, 1070 + xy: 1828, 1209 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Deer rotate: false - xy: 1738, 1106 + xy: 1868, 1216 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Deer+Camp rotate: false - xy: 1778, 1111 + xy: 1908, 1216 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert rotate: false - xy: 1818, 1113 + xy: 1948, 1216 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert+Farm rotate: false - xy: 1738, 1070 + xy: 1988, 1224 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert+Flood plains+Farm rotate: false - xy: 1778, 1075 + xy: 1788, 1178 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Dyes rotate: false - xy: 1898, 1142 + xy: 1908, 1180 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Dyes+Plantation rotate: false - xy: 1938, 1145 + xy: 1948, 1180 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/El Dorado rotate: false - xy: 1858, 1076 + xy: 1988, 1187 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fallout rotate: false - xy: 1898, 1099 + xy: 1316, 1173 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fish rotate: false - xy: 1938, 1109 + xy: 1316, 1137 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fishing Boats rotate: false - xy: 1498, 1027 + xy: 1356, 1180 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Flood plains rotate: false - xy: 1538, 1037 + xy: 1316, 1101 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Forest rotate: false - xy: 1618, 1029 + xy: 1316, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fort rotate: false - xy: 1658, 1038 + xy: 1356, 1103 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fountain of Youth rotate: false - xy: 1698, 1030 + xy: 1356, 1063 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Furs rotate: false - xy: 1778, 1039 + xy: 1324, 989 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Furs+Camp rotate: false - xy: 1818, 1041 + xy: 1324, 953 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Gems rotate: false - xy: 1898, 1027 + xy: 1364, 991 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Gold Ore rotate: false - xy: 876, 725 + xy: 1364, 916 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grand Mesa rotate: false - xy: 916, 721 + xy: 1364, 876 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland rotate: false - xy: 876, 689 + xy: 1868, 1144 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Farm rotate: false - xy: 916, 685 + xy: 1908, 1144 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Camp rotate: false - xy: 1978, 1182 + xy: 1948, 1141 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Deer+Camp rotate: false - xy: 1978, 1143 + xy: 1988, 1148 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Furs+Camp rotate: false - xy: 1978, 1104 + xy: 1396, 1169 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Lumber mill rotate: false - xy: 1978, 1065 + xy: 1396, 1130 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Truffles+Camp rotate: false - xy: 1978, 1026 + xy: 1396, 1091 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Farm rotate: false - xy: 718, 509 + xy: 1436, 1172 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Camp rotate: false - xy: 758, 537 + xy: 1436, 1136 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Lumber mill rotate: false - xy: 798, 537 + xy: 1436, 1100 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Trading post rotate: false - xy: 838, 537 + xy: 1436, 1064 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Jungle+Trading post rotate: false - xy: 758, 497 + xy: 1988, 1108 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/GrasslandForest rotate: false - xy: 798, 498 + xy: 1708, 1173 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Great Barrier Reef rotate: false - xy: 668, 411 + xy: 1828, 1137 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Hill rotate: false - xy: 1858, 1000 + xy: 1404, 1024 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillForest+Lumber mill rotate: false - xy: 1898, 991 + xy: 1404, 988 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillMarbleQuarry rotate: false - xy: 1938, 998 + xy: 1404, 952 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillMine rotate: false - xy: 1978, 990 + xy: 1404, 916 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillStoneQuarry rotate: false - xy: 1938, 962 + xy: 1404, 880 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Holy site rotate: false - xy: 1978, 946 + xy: 1444, 1020 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Horses rotate: false - xy: 1538, 1001 + xy: 1444, 876 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Horses+Pasture rotate: false - xy: 1578, 995 + xy: 1404, 840 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ice rotate: false - xy: 1698, 958 + xy: 1668, 1136 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Incense rotate: false - xy: 1818, 969 + xy: 1788, 1106 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Incense+Plantation rotate: false - xy: 1858, 964 + xy: 1828, 1101 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Iron rotate: false - xy: 1978, 910 + xy: 1948, 1066 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ivory rotate: false - xy: 1498, 991 + xy: 1314, 700 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ivory+Camp rotate: false - xy: 1538, 965 + xy: 1708, 1101 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Jungle rotate: false - xy: 1658, 926 + xy: 1828, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Krakatoa rotate: false - xy: 1818, 931 + xy: 1988, 998 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Lakes rotate: false - xy: 1898, 919 + xy: 1476, 1138 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Landmark rotate: false - xy: 684, 148 + xy: 1484, 1022 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Manufactory rotate: false - xy: 1858, 881 + xy: 1556, 1127 size: 32, 39 orig: 32, 39 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Marble rotate: false - xy: 1738, 887 + xy: 1556, 1091 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Marsh rotate: false - xy: 1898, 846 + xy: 1524, 995 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mine rotate: false - xy: 1778, 859 + xy: 1524, 851 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Moai rotate: false - xy: 1938, 781 + xy: 1564, 1054 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mount Fuji rotate: false - xy: 1458, 962 + xy: 1564, 908 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mount Kailash rotate: false - xy: 1498, 951 + xy: 1564, 868 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mount Sinai rotate: false - xy: 1538, 925 + xy: 1564, 828 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mountain rotate: false - xy: 1578, 915 + xy: 1564, 784 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oasis rotate: false - xy: 1698, 850 + xy: 1604, 923 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ocean rotate: false - xy: 1778, 823 + xy: 1604, 887 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Offshore Platform rotate: false - xy: 1818, 823 + xy: 1604, 851 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oil rotate: false - xy: 1858, 809 + xy: 1604, 815 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oil well rotate: false - xy: 1898, 774 + xy: 1604, 779 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Old Faithful rotate: false - xy: 1738, 811 + xy: 1604, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Pasture rotate: false - xy: 1778, 783 + xy: 448, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Pearls rotate: false - xy: 1858, 773 + xy: 405, 36 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains rotate: false - xy: 1818, 751 + xy: 528, 4 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Farm rotate: false - xy: 1858, 737 + xy: 568, 40 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Forest+Camp rotate: false - xy: 1898, 698 + xy: 608, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Forest+Lumber mill rotate: false - xy: 1938, 669 + xy: 708, 426 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Jungle+Trading post rotate: false - xy: 1978, 654 + xy: 708, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/PlainsForest rotate: false - xy: 455, 1777 + xy: 748, 426 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/PlainsJungle rotate: false - xy: 2004, 1319 + xy: 708, 346 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation rotate: false - xy: 2004, 1283 + xy: 568, 4 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation+Bananas rotate: false - xy: 2004, 1247 + xy: 748, 390 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation+Cotton rotate: false - xy: 1216, 875 + xy: 788, 430 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Polder rotate: false - xy: 1216, 838 + xy: 708, 309 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry rotate: false - xy: 1122, 759 + xy: 828, 430 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry+Marble rotate: false - xy: 1162, 759 + xy: 708, 273 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry+Stone rotate: false - xy: 1202, 759 + xy: 748, 318 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-Bottom rotate: false - xy: 924, 649 + xy: 748, 282 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomLeft rotate: false - xy: 924, 577 + xy: 828, 358 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomRight rotate: false - xy: 924, 541 + xy: 748, 246 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Rock of Gibraltar rotate: false - xy: 878, 501 + xy: 788, 282 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Salt rotate: false - xy: 918, 469 + xy: 708, 165 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sheep rotate: false - xy: 1242, 729 + xy: 748, 174 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sheep+Pasture rotate: false - xy: 1248, 911 + xy: 788, 206 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silk rotate: false - xy: 1282, 802 + xy: 748, 138 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silk+Plantation rotate: false - xy: 1282, 766 + xy: 788, 170 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silver rotate: false - xy: 1282, 730 + xy: 828, 213 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Snow rotate: false - xy: 958, 431 + xy: 788, 134 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Snow+Farm rotate: false - xy: 798, 462 + xy: 828, 177 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Spices rotate: false - xy: 878, 429 + xy: 788, 98 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Spices+Plantation rotate: false - xy: 918, 397 + xy: 828, 141 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sri Pada rotate: false - xy: 958, 391 + xy: 828, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Stone rotate: false - xy: 1282, 694 + xy: 788, 62 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sugar rotate: false - xy: 708, 473 + xy: 828, 65 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sugar+Plantation rotate: false - xy: 708, 437 + xy: 748, 30 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Terrace farm rotate: false - xy: 708, 293 + xy: 868, 417 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Trading post rotate: false - xy: 708, 221 + xy: 868, 345 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Truffles rotate: false - xy: 748, 389 + xy: 868, 237 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Truffles+Camp rotate: false - xy: 748, 353 + xy: 868, 201 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra rotate: false - xy: 748, 317 + xy: 868, 165 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Farm rotate: false - xy: 748, 281 + xy: 868, 129 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Camp rotate: false - xy: 748, 241 + xy: 868, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Camp+Furs rotate: false - xy: 788, 422 + xy: 868, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Deer+Camp rotate: false - xy: 828, 422 + xy: 908, 413 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Lumber mill rotate: false - xy: 788, 382 + xy: 908, 373 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Truffles+Camp rotate: false - xy: 788, 342 + xy: 908, 333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/TundraForest rotate: false - xy: 828, 382 + xy: 908, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Uluru rotate: false - xy: 828, 342 + xy: 908, 217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Uranium rotate: false - xy: 788, 270 + xy: 908, 181 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Whales rotate: false - xy: 748, 205 + xy: 868, 13 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Whales+Fishing Boats rotate: false - xy: 788, 198 + xy: 1254, 697 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wheat rotate: false - xy: 828, 200 + xy: 932, 698 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wine rotate: false - xy: 868, 393 + xy: 924, 662 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wine+Plantation rotate: false - xy: 868, 357 + xy: 924, 626 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/TopBorder rotate: false - xy: 708, 257 + xy: 868, 381 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/African Forest Elephant rotate: false - xy: 1987, 1832 + xy: 504, 401 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Anti-Aircraft Gun rotate: false - xy: 908, 761 + xy: 934, 734 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Anti-Tank Gun rotate: false - xy: 1258, 1157 + xy: 974, 762 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Archaeologist rotate: false - xy: 1082, 795 + xy: 974, 726 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Archer rotate: false - xy: 1258, 1121 + xy: 884, 669 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Artillery rotate: false - xy: 1122, 795 + xy: 884, 633 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Atlatlist rotate: false - xy: 1258, 1085 + xy: 884, 597 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Axe Thrower rotate: false - xy: 1258, 1049 + xy: 455, 1800 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ballista rotate: false - xy: 1996, 1359 + xy: 2006, 1368 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Battering Ram rotate: false - xy: 1338, 1148 + xy: 668, 329 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Battleship rotate: false - xy: 1378, 1185 + xy: 668, 293 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Bazooka rotate: false - xy: 1298, 1077 + xy: 668, 257 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Berber Cavalry rotate: false - xy: 1338, 1112 + xy: 668, 221 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Berserker rotate: false - xy: 1378, 1149 + xy: 668, 185 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Bowman rotate: false - xy: 1418, 1149 + xy: 668, 77 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Brute rotate: false - xy: 1458, 1185 + xy: 1314, 773 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Camel Archer rotate: false - xy: 1418, 1112 + xy: 1314, 736 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cannon rotate: false - xy: 1458, 1149 + xy: 892, 561 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Caravan rotate: false - xy: 1498, 1179 + xy: 455, 1758 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Caravel rotate: false - xy: 1458, 1113 + xy: 892, 525 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cargo Ship rotate: false - xy: 1498, 1143 + xy: 892, 489 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Carolean rotate: false - xy: 1538, 1185 + xy: 892, 453 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Carrier rotate: false - xy: 1538, 1149 + xy: 1996, 1260 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cataphract rotate: false - xy: 1578, 1185 + xy: 328, 79 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Catapult rotate: false - xy: 1578, 1149 + xy: 368, 79 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cavalry rotate: false - xy: 1658, 1185 + xy: 325, 7 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Chariot Archer rotate: false - xy: 1698, 1185 + xy: 1054, 723 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Chu-Ko-Nu rotate: false - xy: 1698, 1149 + xy: 1094, 723 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/CivilianLandUnit rotate: false - xy: 1698, 1113 + xy: 1868, 1252 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Comanche Rider rotate: false - xy: 1298, 1040 + xy: 1428, 1208 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Companion Cavalry rotate: false - xy: 1338, 1033 + xy: 1468, 1211 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Composite Bowman rotate: false - xy: 1378, 1037 + xy: 1508, 1210 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Conquistador rotate: false - xy: 1418, 1034 + xy: 1548, 1212 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cossack rotate: false - xy: 1498, 1063 + xy: 1628, 1211 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Crossbowman rotate: false - xy: 1618, 1069 + xy: 1748, 1210 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cruiser rotate: false - xy: 1658, 1079 + xy: 1788, 1214 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Destroyer rotate: false - xy: 1818, 1077 + xy: 1828, 1173 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Dromon rotate: false - xy: 1858, 1113 + xy: 1868, 1180 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Foreign Legion rotate: false - xy: 1578, 1035 + xy: 1356, 1144 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Frigate rotate: false - xy: 1738, 1034 + xy: 1324, 1025 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Galleass rotate: false - xy: 1858, 1040 + xy: 1324, 917 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Galley rotate: false - xy: 1898, 1063 + xy: 1324, 881 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Gatling Gun rotate: false - xy: 1938, 1073 + xy: 1364, 1027 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Giant Death Robot rotate: false - xy: 1938, 1034 + xy: 1364, 952 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Admiral rotate: false - xy: 838, 498 + xy: 1748, 1171 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Artist rotate: false - xy: 668, 447 + xy: 1788, 1142 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Engineer rotate: false - xy: 668, 375 + xy: 1868, 1108 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Galleass rotate: false - xy: 668, 339 + xy: 1908, 1108 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great General rotate: false - xy: 668, 300 + xy: 1948, 1102 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Merchant rotate: false - xy: 668, 264 + xy: 1988, 1072 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Musician rotate: false - xy: 668, 228 + xy: 1134, 715 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Prophet rotate: false - xy: 668, 192 + xy: 1174, 715 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Scientist rotate: false - xy: 1658, 1002 + xy: 1214, 715 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great War Infantry rotate: false - xy: 1698, 994 + xy: 1548, 1176 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Writer rotate: false - xy: 1738, 998 + xy: 1588, 1174 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hakkapeliitta rotate: false - xy: 1778, 1003 + xy: 1628, 1175 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Helicopter Gunship rotate: false - xy: 1818, 1005 + xy: 1668, 1172 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hoplite rotate: false - xy: 1208, 983 + xy: 1444, 984 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Horse Archer rotate: false - xy: 1208, 947 + xy: 1444, 948 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Horseman rotate: false - xy: 1208, 911 + xy: 1444, 912 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hussar rotate: false - xy: 1618, 992 + xy: 1444, 839 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hwach'a rotate: false - xy: 1658, 966 + xy: 1628, 1139 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Immortal rotate: false - xy: 1738, 962 + xy: 1708, 1137 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Impi rotate: false - xy: 1778, 967 + xy: 1748, 1135 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Infantry rotate: false - xy: 1898, 955 + xy: 1868, 1072 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Inquisitor rotate: false - xy: 1938, 926 + xy: 1908, 1072 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ironclad rotate: false - xy: 1458, 1000 + xy: 1988, 1036 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Jaguar rotate: false - xy: 1578, 959 + xy: 1748, 1099 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Janissary rotate: false - xy: 1618, 956 + xy: 1788, 1070 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Keshik rotate: false - xy: 1698, 922 + xy: 1868, 1036 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Khan rotate: false - xy: 1738, 923 + xy: 1908, 1033 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Knight rotate: false - xy: 1778, 931 + xy: 1948, 1030 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Kris Swordsman rotate: false - xy: 1858, 928 + xy: 1476, 1174 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Lancer rotate: false - xy: 1938, 890 + xy: 1476, 1102 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/LandUnit rotate: false - xy: 1978, 874 + xy: 1476, 1066 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Landship rotate: false - xy: 684, 112 + xy: 1484, 986 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Landsknecht rotate: false - xy: 684, 76 + xy: 1484, 950 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Legion rotate: false - xy: 684, 40 + xy: 1484, 914 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Longbowman rotate: false - xy: 684, 4 + xy: 1484, 878 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Longswordsman rotate: false - xy: 1202, 795 + xy: 1484, 842 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Machine Gun rotate: false - xy: 1778, 895 + xy: 1516, 1140 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mandekalu Cavalry rotate: false - xy: 1818, 895 + xy: 1516, 1104 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Maori Warrior rotate: false - xy: 1898, 883 + xy: 1516, 1068 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Marine rotate: false - xy: 1938, 854 + xy: 1524, 1032 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mechanized Infantry rotate: false - xy: 1978, 838 + xy: 1524, 959 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mehal Sefari rotate: false - xy: 1938, 818 + xy: 1524, 923 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Merchant Of Venice rotate: false - xy: 1978, 802 + xy: 1524, 887 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Minuteman rotate: false - xy: 1818, 859 + xy: 1524, 815 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Missile Cruiser rotate: false - xy: 1858, 845 + xy: 1484, 806 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Missionary rotate: false - xy: 1898, 810 + xy: 1524, 779 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mobile SAM rotate: false - xy: 1978, 766 + xy: 1564, 1018 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Modern Armor rotate: false - xy: 1378, 1001 + xy: 1564, 982 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mohawk Warrior rotate: false - xy: 1418, 998 + xy: 1564, 946 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Musketeer rotate: false - xy: 1618, 920 + xy: 1564, 748 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Musketman rotate: false - xy: 1658, 890 + xy: 1596, 1103 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Naresuan's Elephant rotate: false - xy: 1698, 886 + xy: 1604, 1067 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Nau rotate: false - xy: 1618, 884 + xy: 1604, 1031 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Norwegian Ski Infantry rotate: false - xy: 1738, 851 + xy: 1604, 995 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Nuclear Submarine rotate: false - xy: 1658, 854 + xy: 1604, 959 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Panzer rotate: false - xy: 1938, 745 + xy: 668, 41 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Paratrooper rotate: false - xy: 1978, 730 + xy: 408, 72 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pathfinder rotate: false - xy: 1818, 787 + xy: 488, 72 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Persian Immortal rotate: false - xy: 1898, 738 + xy: 445, 32 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pictish Warrior rotate: false - xy: 1938, 709 + xy: 488, 36 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pikeman rotate: false - xy: 1978, 694 + xy: 528, 40 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pracinha rotate: false - xy: 1042, 759 + xy: 748, 354 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Privateer rotate: false - xy: 1082, 759 + xy: 788, 394 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Quinquereme rotate: false - xy: 884, 649 + xy: 788, 358 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Rifleman rotate: false - xy: 884, 613 + xy: 828, 394 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Rocket Artillery rotate: false - xy: 918, 505 + xy: 828, 322 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Samurai rotate: false - xy: 878, 465 + xy: 748, 210 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Scout rotate: false - xy: 918, 433 + xy: 788, 246 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Sea Beggar rotate: false - xy: 1242, 802 + xy: 828, 286 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Settler rotate: false - xy: 1242, 765 + xy: 708, 128 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ship Of The Line rotate: false - xy: 1256, 874 + xy: 828, 249 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ship of the Line rotate: false - xy: 1256, 874 + xy: 828, 249 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Siege Tower rotate: false - xy: 1256, 838 + xy: 708, 92 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Sipahi rotate: false - xy: 958, 503 + xy: 708, 54 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Slinger rotate: false - xy: 958, 467 + xy: 748, 102 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Spearman rotate: false - xy: 838, 462 + xy: 748, 66 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Submarine rotate: false - xy: 998, 755 + xy: 365, 5 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Swordsman rotate: false - xy: 708, 401 + xy: 708, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Tank rotate: false - xy: 708, 365 + xy: 788, 26 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Tercio rotate: false - xy: 708, 329 + xy: 828, 29 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Trebuchet rotate: false - xy: 748, 461 + xy: 868, 309 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Trireme rotate: false - xy: 748, 425 + xy: 868, 273 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Turtle Ship rotate: false - xy: 788, 306 + xy: 908, 257 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/War Chariot rotate: false - xy: 828, 306 + xy: 908, 145 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/War Elephant rotate: false - xy: 828, 270 + xy: 908, 109 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Warrior rotate: false - xy: 788, 234 + xy: 908, 73 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/WaterUnit rotate: false - xy: 828, 236 + xy: 908, 39 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Winged Hussar rotate: false - xy: 868, 321 + xy: 972, 690 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Work Boats rotate: false - xy: 868, 285 + xy: 1012, 687 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Worker rotate: false - xy: 868, 249 + xy: 1052, 687 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy rotate: false - xy: 1987, 1985 + xy: 1987, 1994 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Air Repair rotate: false - xy: 1192, 1229 + xy: 652, 590 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Air Targeting rotate: false - xy: 1300, 1337 + xy: 760, 698 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting rotate: false - xy: 1300, 1337 + xy: 760, 698 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Ambush rotate: false - xy: 544, 473 + xy: 976, 914 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Anti-Armor rotate: false - xy: 544, 473 + xy: 976, 914 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Amphibious rotate: false - xy: 652, 581 + xy: 1084, 1107 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Armor Plating rotate: false - xy: 868, 797 + xy: 397, 1789 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage rotate: false - xy: 1084, 1063 + xy: 1084, 1049 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Besiege rotate: false - xy: 1358, 1337 + xy: 436, 282 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Siege rotate: false - xy: 1358, 1337 + xy: 436, 282 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Blitz rotate: false - xy: 436, 313 + xy: 1987, 1878 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding Party rotate: false - xy: 1987, 1869 + xy: 1084, 991 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment rotate: false - xy: 1084, 1005 + xy: 436, 224 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Charge rotate: false - xy: 1416, 1337 + xy: 436, 166 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal Raider rotate: false - xy: 1532, 1337 + xy: 926, 806 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Cover rotate: false - xy: 1706, 1337 + xy: 1368, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Discipline rotate: false - xy: 1706, 1337 + xy: 1368, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Drill rotate: false - xy: 1142, 1121 + xy: 1658, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Evasion rotate: false - xy: 1142, 1005 + xy: 1774, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Extended Range rotate: false - xy: 1250, 1229 + xy: 1832, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Operational Range rotate: false - xy: 1250, 1229 + xy: 1832, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Flight Deck rotate: false - xy: 494, 255 + xy: 1142, 1107 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Formation rotate: false - xy: 494, 139 + xy: 1142, 991 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Great Generals rotate: false - xy: 1034, 905 + xy: 1416, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Quick Study rotate: false - xy: 1034, 905 + xy: 1416, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Haka War Dance rotate: false - xy: 220, 41 + xy: 1474, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Heal Instantly rotate: false - xy: 336, 71 + xy: 1590, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Home Sweet Home rotate: false - xy: 394, 71 + xy: 1648, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Ignore terrain cost rotate: false - xy: 622, 1611 + xy: 622, 1620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitPromotionIcons/Indirect Fire rotate: false - xy: 336, 13 + xy: 1822, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Interception rotate: false - xy: 452, 23 + xy: 1938, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Logistics rotate: false - xy: 1092, 947 + xy: 1092, 875 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/March rotate: false - xy: 1092, 889 + xy: 209, 20 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Medic rotate: false - xy: 1150, 889 + xy: 267, 27 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Mobility rotate: false - xy: 610, 357 + xy: 552, 308 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Morale rotate: false - xy: 610, 241 + xy: 552, 192 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Pictish Courage rotate: false - xy: 626, 9 + xy: 552, 76 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Rejuvenation rotate: false - xy: 1830, 1279 + xy: 1258, 1099 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting rotate: false - xy: 1540, 1221 + xy: 1208, 983 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Sentry rotate: false - xy: 1540, 1221 + xy: 1208, 983 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Shock rotate: false - xy: 1656, 1221 + xy: 1266, 983 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Slinger Withdraw rotate: false - xy: 1714, 1221 + xy: 1266, 925 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Sortie rotate: false - xy: 1830, 1221 + xy: 1266, 867 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Supply rotate: false - xy: 1946, 1221 + xy: 776, 524 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Survivalism rotate: false - xy: 768, 631 + xy: 718, 466 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Volley rotate: false - xy: 660, 523 + xy: 1216, 809 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack rotate: false - xy: 1100, 831 + xy: 1216, 751 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Woodsman rotate: false - xy: 1158, 831 + xy: 1274, 809 size: 50, 50 orig: 50, 50 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index b0bcb1d745..5f3478d0d4 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/core/src/com/unciv/logic/HexMath.kt b/core/src/com/unciv/logic/HexMath.kt index ca62792456..f9a8db369e 100644 --- a/core/src/com/unciv/logic/HexMath.kt +++ b/core/src/com/unciv/logic/HexMath.kt @@ -184,9 +184,24 @@ object HexMath { (abs(relativeX) + abs(relativeY)).toInt() } + private val clockPositionToHexVectorMap: Map = mapOf( + 0 to Vector2(1f, 1f), // This alias of 12 makes clock modulo logic easier + 12 to Vector2(1f, 1f), + 2 to Vector2(0f, 1f), + 4 to Vector2(-1f, 0f), + 6 to Vector2(-1f, -1f), + 8 to Vector2(0f, -1f), + 10 to Vector2(1f, 0f) + ) + + /** Returns the hex-space distance corresponding to [clockPosition], or a zero vector if [clockPosition] is invalid */ + fun getClockPositionToHexVector(clockPosition: Int): Vector2 { + return clockPositionToHexVectorMap[clockPosition]?: Vector2.Zero + } + // Statically allocate the Vectors (in World coordinates) // of the 6 clock directions for border and road drawing in TileGroup - private val clockToWorldVectors: Map = mapOf( + private val clockPositionToWorldVectorMap: Map = mapOf( 2 to hex2WorldCoords(Vector2(0f, -1f)), 4 to hex2WorldCoords(Vector2(1f, 0f)), 6 to hex2WorldCoords(Vector2(1f, 1f)), @@ -194,8 +209,9 @@ object HexMath { 10 to hex2WorldCoords(Vector2(-1f, 0f)), 12 to hex2WorldCoords(Vector2(-1f, -1f)) ) - fun getClockDirectionToWorldVector(clockDirection: Int): Vector2 = - clockToWorldVectors[clockDirection] ?: Vector2.Zero + /** Returns the world/screen-space distance corresponding to [clockPosition], or a zero vector if [clockPosition] is invalid */ + fun getClockPositionToWorldVector(clockPosition: Int): Vector2 = + clockPositionToWorldVectorMap[clockPosition] ?: Vector2.Zero fun getDistanceFromEdge(vector: Vector2, mapParameters: MapParameters): Int { val x = vector.x.toInt() diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index c86e7d90f3..c7c8c41fe9 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -157,6 +157,16 @@ open class TileInfo { // We have to .toList() so that the values are stored together once for caching, // and the toSequence so that aggregations (like neighbors.flatMap{it.units} don't take up their own space + /** Returns the left shared neighbor of [this] and [neighbor] (relative to the view direction [this]->[neighbor]), or null if there is no such tile. */ + fun getLeftSharedNeighbor(neighbor: TileInfo): TileInfo? { + return tileMap.getClockPositionNeighborTile(this,(tileMap.getNeighborTileClockPosition(this, neighbor) - 2) % 12) + } + + /** Returns the right shared neighbor [this] and [neighbor] (relative to the view direction [this]->[neighbor]), or null if there is no such tile. */ + fun getRightSharedNeighbor(neighbor: TileInfo): TileInfo? { + return tileMap.getClockPositionNeighborTile(this,(tileMap.getNeighborTileClockPosition(this, neighbor) + 2) % 12) + } + @delegate:Transient val height : Int by lazy { getAllTerrains().flatMap { it.uniqueObjects } diff --git a/core/src/com/unciv/logic/map/TileMap.kt b/core/src/com/unciv/logic/map/TileMap.kt index c8c02e1e37..16e6e0871a 100644 --- a/core/src/com/unciv/logic/map/TileMap.kt +++ b/core/src/com/unciv/logic/map/TileMap.kt @@ -223,7 +223,7 @@ class TileMap { } /** - * Returns the clockPosition of [otherTile] seen from [tile]'s position + * Returns the clock position of [otherTile] seen from [tile]'s position * Returns -1 if not neighbors */ fun getNeighborTileClockPosition(tile: TileInfo, otherTile: TileInfo): Int { @@ -249,12 +249,24 @@ class TileMap { } } + /** + * Returns the neighbor tile of [tile] at [clockPosition], if it exists. + * Takes world wrap into account + * Returns null if there is no such neighbor tile or if [clockPosition] is not a valid clock position + */ + fun getClockPositionNeighborTile(tile: TileInfo, clockPosition: Int): TileInfo? { + val difference = HexMath.getClockPositionToHexVector(clockPosition) + if (difference == Vector2.Zero) return null + val possibleNeighborPosition = tile.position.cpy().add(difference) + return getIfTileExistsOrNull(possibleNeighborPosition.x.toInt(), possibleNeighborPosition.y.toInt()) + } + /** Convert relative direction of [otherTile] seen from [tile]'s position into a vector * in world coordinates of length sqrt(3), so that it can be used to go from tile center to * the edge of the hex in that direction (meaning the center of the border between the hexes) */ fun getNeighborTilePositionAsWorldCoords(tile: TileInfo, otherTile: TileInfo): Vector2 = - HexMath.getClockDirectionToWorldVector(getNeighborTileClockPosition(tile, otherTile)) + HexMath.getClockPositionToWorldVector(getNeighborTileClockPosition(tile, otherTile)) /** * Returns the closest position to (0, 0) outside the map which can be wrapped diff --git a/core/src/com/unciv/ui/tilegroups/TileGroup.kt b/core/src/com/unciv/ui/tilegroups/TileGroup.kt index 3d99b29edd..161fb234b7 100644 --- a/core/src/com/unciv/ui/tilegroups/TileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/TileGroup.kt @@ -81,8 +81,19 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, var resourceImage: Actor? = null var resource: String? = null + + class RoadImage { + var roadStatus: RoadStatus = RoadStatus.None + var image: Image? = null + } + data class BorderSegment( + var images: List, + var isLeftConcave: Boolean = false, + var isRightConcave: Boolean = false, + ) + private val roadImages = HashMap() - private val borderImages = HashMap>() // map of neighboring tile to border images + private val borderSegments = HashMap() // map of neighboring tile to border segments @Suppress("LeakingThis") // we trust TileGroupIcons not to use our `this` in its constructor except storing it for later val icons = TileGroupIcons(this) @@ -110,11 +121,6 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, var showEntireMap = UncivGame.Current.viewEntireMapForDebug var forMapEditorIcon = false - class RoadImage { - var roadStatus: RoadStatus = RoadStatus.None - var image: Image? = null - } - init { this.setSize(groupSize, groupSize) this.addActor(baseLayerGroup) @@ -290,7 +296,7 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, updatePixelMilitaryUnit(false) updatePixelCivilianUnit(false) - if (borderImages.isNotEmpty()) clearBorders() + if (borderSegments.isNotEmpty()) clearBorders() icons.update(false,false ,false, false, null) @@ -402,11 +408,11 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, } private fun clearBorders() { - for (images in borderImages.values) - for (image in images) + for (borderSegment in borderSegments.values) + for (image in borderSegment.images) image.remove() - borderImages.clear() + borderSegments.clear() } private var previousTileOwner: CivilizationInfo? = null @@ -416,7 +422,6 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, // removing all the border images and putting them back again! val tileOwner = tileInfo.getOwner() - if (previousTileOwner != tileOwner) clearBorders() previousTileOwner = tileOwner @@ -425,25 +430,65 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, val civOuterColor = tileInfo.getOwner()!!.nation.getOuterColor() val civInnerColor = tileInfo.getOwner()!!.nation.getInnerColor() for (neighbor in tileInfo.neighbors) { + var shouldRemoveBorderSegment = false + var shouldAddBorderSegment = false + + var borderSegmentShouldBeLeftConcave = false + var borderSegmentShouldBeRightConcave = false + val neighborOwner = neighbor.getOwner() - if (neighborOwner == tileOwner && borderImages.containsKey(neighbor)) // the neighbor used to not belong to us, but now it's ours - { - for (image in borderImages[neighbor]!!) - image.remove() - borderImages.remove(neighbor) + if (neighborOwner == tileOwner && borderSegments.containsKey(neighbor)) { // the neighbor used to not belong to us, but now it's ours + shouldRemoveBorderSegment = true } - if (neighborOwner != tileOwner && !borderImages.containsKey(neighbor)) { // there should be a border here but there isn't + else if (neighborOwner != tileOwner) { + val leftSharedNeighbor = tileInfo.getLeftSharedNeighbor(neighbor) + val rightSharedNeighbor = tileInfo.getRightSharedNeighbor(neighbor) + + // If a shared neighbor doesn't exist (because it's past a map edge), we act as if it's our tile for border concave/convex-ity purposes. + // This is because we do not draw borders against non-existing tiles either. + borderSegmentShouldBeLeftConcave = leftSharedNeighbor == null || leftSharedNeighbor.getOwner() == tileOwner + borderSegmentShouldBeRightConcave = rightSharedNeighbor == null || rightSharedNeighbor.getOwner() == tileOwner + + if (!borderSegments.containsKey(neighbor)) { // there should be a border here but there isn't + shouldAddBorderSegment = true + } + else if ( + borderSegmentShouldBeLeftConcave != borderSegments[neighbor]!!.isLeftConcave || + borderSegmentShouldBeRightConcave != borderSegments[neighbor]!!.isRightConcave + ) { // the concave/convex-ity of the border here is wrong + shouldRemoveBorderSegment = true + shouldAddBorderSegment = true + } + } + + if (shouldRemoveBorderSegment) { + for (image in borderSegments[neighbor]!!.images) + image.remove() + borderSegments.remove(neighbor) + } + if (shouldAddBorderSegment) { + val images = mutableListOf() + val borderSegment = BorderSegment(images, borderSegmentShouldBeLeftConcave, borderSegmentShouldBeRightConcave) + borderSegments[neighbor] = borderSegment + + val borderShapeString = when { + borderSegment.isLeftConcave && borderSegment.isRightConcave -> "Concave" + !borderSegment.isLeftConcave && !borderSegment.isRightConcave -> "Convex" + else -> "ConvexConcave" + } + val isConcaveConvex = borderSegment.isLeftConcave && !borderSegment.isRightConcave val relativeWorldPosition = tileInfo.tileMap.getNeighborTilePositionAsWorldCoords(tileInfo, neighbor) // This is some crazy voodoo magic so I'll explain. - val images = mutableListOf() - borderImages[neighbor] = images val sign = if (relativeWorldPosition.x < 0) -1 else 1 val angle = sign * (atan(sign * relativeWorldPosition.y / relativeWorldPosition.x) * 180 / PI - 90.0).toFloat() - val innerBorderImage = ImageGetter.getImage("OtherIcons/Border-inner") - innerBorderImage.width = 38f + val innerBorderImage = ImageGetter.getImage("BorderImages/${borderShapeString}Inner") + if (isConcaveConvex) { + innerBorderImage.scaleX = -innerBorderImage.scaleX + } + innerBorderImage.width = hexagonImageWidth innerBorderImage.setOrigin(Align.center) // THEN the origin is correct, innerBorderImage.rotateBy(angle) // and the rotation works. innerBorderImage.center(this) // move to center of tile @@ -452,8 +497,11 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, miscLayerGroup.addActor(innerBorderImage) images.add(innerBorderImage) - val outerBorderImage = ImageGetter.getImage("OtherIcons/Border-outer") - outerBorderImage.width = 38f + val outerBorderImage = ImageGetter.getImage("BorderImages/${borderShapeString}Outer") + if (isConcaveConvex) { + outerBorderImage.scaleX = -outerBorderImage.scaleX + } + outerBorderImage.width = hexagonImageWidth outerBorderImage.setOrigin(Align.center) // THEN the origin is correct, outerBorderImage.rotateBy(angle) // and the rotation works. outerBorderImage.center(this) // move to center of tile