diff --git a/android/Images/ReligionIcons/Buddhism.png b/android/Images/ReligionIcons/Buddhism.png new file mode 100644 index 0000000000..76aa2c34a9 Binary files /dev/null and b/android/Images/ReligionIcons/Buddhism.png differ diff --git a/android/Images/ReligionIcons/Christianity.png b/android/Images/ReligionIcons/Christianity.png new file mode 100644 index 0000000000..a074fe0bac Binary files /dev/null and b/android/Images/ReligionIcons/Christianity.png differ diff --git a/android/Images/ReligionIcons/Hinduism.png b/android/Images/ReligionIcons/Hinduism.png new file mode 100644 index 0000000000..12a6d89be0 Binary files /dev/null and b/android/Images/ReligionIcons/Hinduism.png differ diff --git a/android/Images/ReligionIcons/Islam.png b/android/Images/ReligionIcons/Islam.png new file mode 100644 index 0000000000..74f05094b7 Binary files /dev/null and b/android/Images/ReligionIcons/Islam.png differ diff --git a/android/Images/ReligionIcons/Pantheon.png b/android/Images/ReligionIcons/Pantheon.png new file mode 100644 index 0000000000..26b6691fe0 Binary files /dev/null and b/android/Images/ReligionIcons/Pantheon.png differ diff --git a/android/Images/ReligionIcons/Taoism.png b/android/Images/ReligionIcons/Taoism.png new file mode 100644 index 0000000000..0ac398c451 Binary files /dev/null and b/android/Images/ReligionIcons/Taoism.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index c30f2b8045..26307a11b6 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -6,4256 +6,4298 @@ filter: MipMapLinearLinear, MipMapLinearLinear repeat: none EmojiIcons/Gold rotate: false - xy: 1166, 58 + xy: 1816, 1495 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Production rotate: false - xy: 1701, 1310 + xy: 1759, 1306 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Turn rotate: false - xy: 1590, 100 + xy: 1674, 726 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 ImprovementIcons/Academy rotate: false - xy: 289, 1535 + xy: 289, 1531 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Ancient ruins rotate: false - xy: 1901, 1836 + xy: 1901, 1832 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Barbarian encampment rotate: false - xy: 1168, 1736 + xy: 1168, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Camp rotate: false - xy: 520, 1588 + xy: 628, 1584 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Citadel rotate: false - xy: 1060, 1628 + xy: 1276, 1624 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/City center rotate: false - xy: 1276, 1628 + xy: 397, 1476 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/City ruins rotate: false - xy: 1384, 1628 + xy: 505, 1476 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Customs house rotate: false - xy: 736, 1520 + xy: 952, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Farm rotate: false - xy: 1261, 1304 + xy: 1369, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fishing Boats rotate: false - xy: 829, 1196 + xy: 1045, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fort rotate: false - xy: 1261, 1196 + xy: 1492, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Holy site rotate: false - xy: 1600, 1542 + xy: 717, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Landmark rotate: false - xy: 428, 1048 + xy: 320, 720 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Lumber mill rotate: false - xy: 320, 724 + xy: 536, 828 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Manufactory rotate: false - xy: 428, 832 + xy: 320, 504 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Mine rotate: false - xy: 536, 508 + xy: 536, 288 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Moai rotate: false - xy: 536, 400 + xy: 514, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Oil well rotate: false - xy: 752, 872 + xy: 752, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Pasture rotate: false - xy: 752, 764 + xy: 752, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Plantation rotate: false - xy: 1076, 872 + xy: 1292, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Polder rotate: false - xy: 860, 656 + xy: 1076, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Quarry rotate: false - xy: 1076, 764 + xy: 1292, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Road rotate: false - xy: 1292, 764 + xy: 1400, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Terrace farm rotate: false - xy: 730, 224 + xy: 1378, 220 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Trading post rotate: false - xy: 760, 116 + xy: 1192, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/America rotate: false - xy: 112, 25 + xy: 112, 21 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Arabia rotate: false - xy: 212, 935 + xy: 212, 931 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Aztecs rotate: false - xy: 190, 179 + xy: 190, 175 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Babylon rotate: false - xy: 628, 1696 + xy: 628, 1692 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/China rotate: false - xy: 844, 1628 + xy: 952, 1624 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/CityState rotate: false - xy: 613, 1480 + xy: 505, 1368 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Denmark rotate: false - xy: 952, 1520 + xy: 1168, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Egypt rotate: false - xy: 937, 1304 + xy: 1045, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/England rotate: false - xy: 1153, 1304 + xy: 1261, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/France rotate: false - xy: 1369, 1196 + xy: 1492, 1624 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Germany rotate: false - xy: 1477, 1412 + xy: 1477, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Greece rotate: false - xy: 1477, 1196 + xy: 1708, 1754 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Inca rotate: false - xy: 825, 1088 + xy: 1149, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/India rotate: false - xy: 1041, 1088 + xy: 1365, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Iroquois rotate: false - xy: 1473, 1088 + xy: 328, 67 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Japan rotate: false - xy: 298, 179 + xy: 428, 1044 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Korea rotate: false - xy: 320, 1048 + xy: 536, 1044 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Mongolia rotate: false - xy: 406, 184 + xy: 622, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Persia rotate: false - xy: 968, 872 + xy: 1076, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Polynesia rotate: false - xy: 752, 548 + xy: 968, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Rome rotate: false - xy: 968, 440 + xy: 1076, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Russia rotate: false - xy: 860, 332 + xy: 968, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Siam rotate: false - xy: 1400, 656 + xy: 1292, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Songhai rotate: false - xy: 1400, 548 + xy: 1400, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Spain rotate: false - xy: 1292, 440 + xy: 1508, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/The Huns rotate: false - xy: 4, 1643 + xy: 4, 1639 size: 400, 401 orig: 400, 401 offset: 0, 0 index: -1 NationIcons/The Netherlands rotate: false - xy: 838, 224 + xy: 760, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/The Ottomans rotate: false - xy: 946, 224 + xy: 868, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Aircraft rotate: false - xy: 1816, 1750 + xy: 1816, 1727 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/BackArrow rotate: false - xy: 1816, 1634 + xy: 1208, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Banner rotate: false - xy: 1060, 1736 + xy: 1060, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Border-inner rotate: false - xy: 697, 1821 + xy: 697, 1817 size: 31, 15 orig: 31, 15 offset: 0, 0 index: -1 OtherIcons/Border-outer rotate: false - xy: 2009, 1842 + xy: 1870, 681 size: 31, 15 orig: 31, 15 offset: 0, 0 index: -1 OtherIcons/Camera rotate: false - xy: 1581, 1103 + xy: 1581, 1099 size: 25, 25 orig: 25, 25 offset: 0, 0 index: -1 OtherIcons/Circle rotate: false - xy: 1529, 1866 + xy: 1529, 1862 size: 178, 178 orig: 178, 178 offset: 0, 0 index: -1 OtherIcons/Cities rotate: false - xy: 1168, 1628 + xy: 1384, 1624 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Close rotate: false - xy: 505, 1372 + xy: 289, 1315 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Crosshair rotate: false - xy: 501, 1156 + xy: 736, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Diplomacy rotate: false - xy: 1060, 1520 + xy: 1276, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/DiplomacyW rotate: false - xy: 1168, 1520 + xy: 1384, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/DisbandUnit rotate: false - xy: 1276, 1520 + xy: 721, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Down rotate: false - xy: 510, 18 + xy: 684, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Fire rotate: false - xy: 1369, 1304 + xy: 829, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Hexagon rotate: false - xy: 4, 1395 + xy: 4, 1391 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 OtherIcons/Link rotate: false - xy: 1932, 1778 + xy: 1643, 1364 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Load rotate: false - xy: 536, 1048 + xy: 428, 828 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Lock rotate: false - xy: 428, 940 + xy: 320, 612 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/MapEditor rotate: false - xy: 320, 616 + xy: 536, 720 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/MenuIcon rotate: false - xy: 320, 400 + xy: 536, 504 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Mods rotate: false - xy: 536, 292 + xy: 544, 72 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Multiplayer rotate: false - xy: 436, 76 + xy: 644, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/New rotate: false - xy: 644, 980 + xy: 860, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Options rotate: false - xy: 968, 980 + xy: 1076, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pentagon rotate: false - xy: 1076, 980 + xy: 1184, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pillage rotate: false - xy: 1184, 980 + xy: 644, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Puppet rotate: false - xy: 1184, 872 + xy: 1400, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Quest rotate: false - xy: 968, 656 + xy: 1184, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Quickstart rotate: false - xy: 860, 548 + xy: 1076, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Resume rotate: false - xy: 752, 332 + xy: 968, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Shield rotate: false - xy: 968, 332 + xy: 1400, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Sleep rotate: false - xy: 1076, 332 + xy: 1292, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Star rotate: false - xy: 1292, 338 + xy: 1508, 658 size: 100, 94 orig: 100, 94 offset: 0, 0 index: -1 OtherIcons/Stop rotate: false - xy: 1508, 656 + xy: 838, 220 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Swap rotate: false - xy: 1508, 440 + xy: 1054, 220 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Triangle rotate: false - xy: 1715, 1866 + xy: 1715, 1862 size: 178, 178 orig: 178, 178 offset: 0, 0 index: -1 OtherIcons/Up rotate: false - xy: 1648, 100 + xy: 1674, 668 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/whiteDot rotate: false - xy: 1874, 1479 + xy: 1870, 672 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 PolicyIcons/Aesthetics rotate: false - xy: 644, 1098 + xy: 976, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Aristocracy rotate: false - xy: 1816, 1692 + xy: 1150, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Citizenship rotate: false - xy: 220, 13 + xy: 1556, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Civil Society rotate: false - xy: 278, 13 + xy: 220, 9 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Collective Rule rotate: false - xy: 1474, 158 + xy: 336, 9 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Communism rotate: false - xy: 1532, 158 + xy: 394, 9 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Constitution rotate: false - xy: 1474, 100 + xy: 452, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Cultural Diplomacy rotate: false - xy: 394, 13 + xy: 568, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Democracy rotate: false - xy: 452, 18 + xy: 626, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Educated Elite rotate: false - xy: 626, 18 + xy: 1874, 1716 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Fascism rotate: false - xy: 818, 58 + xy: 1932, 1716 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Religion rotate: false - xy: 992, 58 + xy: 1932, 1600 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Speech rotate: false - xy: 1050, 58 + xy: 1874, 1542 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Thought rotate: false - xy: 1108, 58 + xy: 1932, 1542 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Humanism rotate: false - xy: 1340, 50 + xy: 1658, 1480 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Landed Elite rotate: false - xy: 1874, 1778 + xy: 1643, 1422 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Legalism rotate: false - xy: 1874, 1720 + xy: 1585, 1306 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mandate Of Heaven rotate: false - xy: 1932, 1720 + xy: 1585, 1248 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mercantilism rotate: false - xy: 1874, 1546 + xy: 1643, 1248 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Merchant Navy rotate: false - xy: 1932, 1604 + xy: 1701, 1306 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Meritocracy rotate: false - xy: 1932, 1546 + xy: 1701, 1248 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Militarism rotate: false - xy: 1874, 1488 + xy: 1585, 1190 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Caste rotate: false - xy: 1932, 1488 + xy: 1643, 1190 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Tradition rotate: false - xy: 1600, 1484 + xy: 1701, 1190 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Monarchy rotate: false - xy: 1716, 1484 + xy: 1639, 1132 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Nationalism rotate: false - xy: 1643, 1426 + xy: 1990, 1716 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Naval Tradition rotate: false - xy: 1585, 1310 + xy: 1990, 1658 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Oligarchy rotate: false - xy: 1643, 1368 + xy: 1990, 1600 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Organized Religion rotate: false - xy: 1701, 1426 + xy: 1990, 1542 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Philantropy rotate: false - xy: 1585, 1252 + xy: 1990, 1484 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Planned Economy rotate: false - xy: 1643, 1310 + xy: 1594, 276 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Police State rotate: false - xy: 1701, 1368 + xy: 1759, 1422 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Populism rotate: false - xy: 1643, 1252 + xy: 1759, 1364 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Professional Army rotate: false - xy: 1701, 1252 + xy: 1759, 1248 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Protectionism rotate: false - xy: 1585, 1194 + xy: 1759, 1190 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Reformation rotate: false - xy: 1581, 1136 + xy: 1616, 1074 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Representation rotate: false - xy: 1697, 1136 + xy: 1674, 1074 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Republic rotate: false - xy: 1990, 1778 + xy: 1616, 958 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scholasticism rotate: false - xy: 1990, 1720 + xy: 1674, 1016 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scientific Revolution rotate: false - xy: 1990, 1662 + xy: 1732, 1074 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Secularism rotate: false - xy: 1990, 1546 + xy: 1674, 958 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Socialism rotate: false - xy: 1759, 1426 + xy: 1674, 900 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Sovereignty rotate: false - xy: 1759, 1310 + xy: 1616, 784 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Theocracy rotate: false - xy: 1602, 274 + xy: 1674, 784 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Total War rotate: false - xy: 1602, 216 + xy: 1732, 842 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Trade Unions rotate: false - xy: 1590, 158 + xy: 1616, 668 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/United Front rotate: false - xy: 1630, 42 + xy: 1732, 784 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Universal Suffrage rotate: false - xy: 1648, 158 + xy: 1616, 610 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Warrior Code rotate: false - xy: 1616, 1078 + xy: 1616, 552 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 +ReligionIcons/Buddhism + rotate: false + xy: 412, 1584 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ReligionIcons/Christianity + rotate: false + xy: 1168, 1624 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ReligionIcons/Hinduism + rotate: false + xy: 1708, 1538 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ReligionIcons/Islam + rotate: false + xy: 320, 1044 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ReligionIcons/Pantheon + rotate: false + xy: 968, 868 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ReligionIcons/Taoism + rotate: false + xy: 1162, 220 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 ResourceIcons/Aluminum rotate: false - xy: 520, 1696 + xy: 520, 1692 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Bananas rotate: false - xy: 844, 1736 + xy: 844, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cattle rotate: false - xy: 628, 1588 + xy: 736, 1624 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Coal rotate: false - xy: 613, 1372 + xy: 285, 1207 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cotton rotate: false - xy: 393, 1156 + xy: 609, 1152 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Deer rotate: false - xy: 844, 1520 + xy: 1060, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Dyes rotate: false - xy: 721, 1412 + xy: 829, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Fish rotate: false - xy: 721, 1196 + xy: 937, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Furs rotate: false - xy: 1492, 1736 + xy: 1492, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gems rotate: false - xy: 1492, 1520 + xy: 1477, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gold Ore rotate: false - xy: 1477, 1304 + xy: 1600, 1754 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Horses rotate: false - xy: 1708, 1542 + xy: 933, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Incense rotate: false - xy: 933, 1088 + xy: 1257, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Iron rotate: false - xy: 1257, 1088 + xy: 220, 67 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Ivory rotate: false - xy: 220, 71 + xy: 320, 936 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Marble rotate: false - xy: 536, 832 + xy: 428, 612 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Oil rotate: false - xy: 860, 980 + xy: 860, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Pearls rotate: false - xy: 644, 548 + xy: 644, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sheep rotate: false - xy: 1076, 440 + xy: 1076, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silk rotate: false - xy: 1292, 548 + xy: 1184, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silver rotate: false - xy: 1184, 440 + xy: 1400, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Spices rotate: false - xy: 1400, 440 + xy: 1508, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Stone rotate: false - xy: 1508, 764 + xy: 730, 220 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sugar rotate: false - xy: 1508, 548 + xy: 946, 220 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Uranium rotate: false - xy: 976, 116 + xy: 1408, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Whales rotate: false - xy: 1084, 116 + xy: 1486, 220 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wheat rotate: false - xy: 1192, 116 + xy: 1516, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wine rotate: false - xy: 1270, 224 + xy: 760, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Acquire rotate: false - xy: 4, 25 + xy: 4, 21 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/CityConnection rotate: false - xy: 397, 1480 + xy: 613, 1476 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Culture rotate: false - xy: 697, 1844 + xy: 697, 1840 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Faith rotate: false - xy: 4, 133 + xy: 4, 129 size: 178, 178 orig: 178, 178 offset: 0, 0 index: -1 StatIcons/Food rotate: false - xy: 4, 943 + xy: 4, 939 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Gold rotate: false - xy: 905, 1844 + xy: 905, 1840 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Happiness rotate: false - xy: 4, 735 + xy: 4, 731 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/InterceptRange rotate: false - xy: 1456, 42 + xy: 1585, 1422 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Malcontent rotate: false - xy: 1113, 1844 + xy: 1113, 1840 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Movement rotate: false - xy: 1585, 1368 + xy: 1990, 1774 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Population rotate: false - xy: 4, 527 + xy: 4, 523 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Production rotate: false - xy: 1321, 1844 + xy: 1321, 1840 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Range rotate: false - xy: 1643, 1194 + xy: 1755, 1132 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/RangedStrength rotate: false - xy: 1701, 1194 + xy: 1614, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Resistance rotate: false - xy: 860, 440 + xy: 1076, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Science rotate: false - xy: 4, 319 + xy: 4, 315 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Specialist rotate: false - xy: 1184, 332 + xy: 1508, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Strength rotate: false - xy: 1759, 1252 + xy: 1674, 842 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 TechIcons/Acoustics rotate: false - xy: 412, 1696 + xy: 412, 1692 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Advanced Ballistics rotate: false - xy: 1901, 1944 + xy: 1901, 1940 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Agriculture rotate: false - xy: 289, 1427 + xy: 289, 1423 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Animal Husbandry rotate: false - xy: 212, 1043 + xy: 212, 1039 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Archaeology rotate: false - xy: 212, 827 + xy: 212, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Archery rotate: false - xy: 212, 719 + xy: 212, 715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Architecture rotate: false - xy: 212, 611 + xy: 212, 607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Astronomy rotate: false - xy: 212, 503 + xy: 212, 499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Atomic Theory rotate: false - xy: 212, 287 + xy: 212, 283 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Ballistics rotate: false - xy: 736, 1736 + xy: 736, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Banking rotate: false - xy: 952, 1736 + xy: 952, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Biology rotate: false - xy: 1276, 1736 + xy: 1276, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Bronze Working rotate: false - xy: 1384, 1736 + xy: 1384, 1732 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Calendar rotate: false - xy: 412, 1588 + xy: 520, 1584 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Chemistry rotate: false - xy: 736, 1628 + xy: 844, 1624 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Chivalry rotate: false - xy: 952, 1628 + xy: 1060, 1624 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Civil Service rotate: false - xy: 397, 1372 + xy: 613, 1368 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Combined Arms rotate: false - xy: 289, 1319 + xy: 397, 1260 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Combustion rotate: false - xy: 285, 1211 + xy: 505, 1260 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Compass rotate: false - xy: 397, 1264 + xy: 613, 1260 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Computers rotate: false - xy: 505, 1264 + xy: 393, 1152 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Construction rotate: false - xy: 613, 1264 + xy: 501, 1152 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Currency rotate: false - xy: 609, 1156 + xy: 844, 1516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Drama and Poetry rotate: false - xy: 1384, 1520 + xy: 721, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Dynamite rotate: false - xy: 721, 1304 + xy: 829, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Ecology rotate: false - xy: 829, 1412 + xy: 937, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Economics rotate: false - xy: 829, 1304 + xy: 937, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Education rotate: false - xy: 937, 1412 + xy: 1045, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Electricity rotate: false - xy: 1045, 1412 + xy: 1153, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Electronics rotate: false - xy: 1045, 1304 + xy: 1153, 1300 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Engineering rotate: false - xy: 1153, 1412 + xy: 1261, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Fertilizer rotate: false - xy: 1369, 1412 + xy: 721, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Flight rotate: false - xy: 937, 1196 + xy: 1153, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Future Tech rotate: false - xy: 1492, 1628 + xy: 1477, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Guilds rotate: false - xy: 1600, 1758 + xy: 1600, 1646 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Gunpowder rotate: false - xy: 1708, 1758 + xy: 1600, 1538 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Horseback Riding rotate: false - xy: 1708, 1650 + xy: 825, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Industrialization rotate: false - xy: 1149, 1088 + xy: 1473, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Iron Working rotate: false - xy: 1365, 1088 + xy: 298, 175 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Lasers rotate: false - xy: 320, 832 + xy: 536, 936 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Machinery rotate: false - xy: 536, 940 + xy: 428, 720 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Masonry rotate: false - xy: 320, 508 + xy: 536, 612 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mass Media rotate: false - xy: 536, 724 + xy: 428, 504 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mathematics rotate: false - xy: 428, 616 + xy: 320, 288 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Metal Casting rotate: false - xy: 536, 616 + xy: 428, 396 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Metallurgy rotate: false - xy: 428, 508 + xy: 536, 396 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Military Science rotate: false - xy: 320, 292 + xy: 428, 288 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mining rotate: false - xy: 428, 400 + xy: 406, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mobile Tactics rotate: false - xy: 428, 292 + xy: 436, 72 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Nanotechnology rotate: false - xy: 544, 76 + xy: 644, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Navigation rotate: false - xy: 652, 76 + xy: 644, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Nuclear Fission rotate: false - xy: 644, 872 + xy: 752, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Nuclear Fusion rotate: false - xy: 752, 980 + xy: 644, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Optics rotate: false - xy: 644, 656 + xy: 644, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Particle Physics rotate: false - xy: 860, 872 + xy: 860, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pharmaceuticals rotate: false - xy: 860, 764 + xy: 968, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Philosophy rotate: false - xy: 752, 656 + xy: 860, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Physics rotate: false - xy: 644, 440 + xy: 752, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Plastics rotate: false - xy: 968, 764 + xy: 1184, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pottery rotate: false - xy: 644, 332 + xy: 860, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Printing Press rotate: false - xy: 1292, 980 + xy: 752, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Radar rotate: false - xy: 752, 440 + xy: 968, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Radio rotate: false - xy: 1400, 980 + xy: 860, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Railroad rotate: false - xy: 1292, 872 + xy: 752, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Refrigeration rotate: false - xy: 1076, 656 + xy: 1292, 760 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Replaceable Parts rotate: false - xy: 968, 548 + xy: 1184, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rifling rotate: false - xy: 1400, 872 + xy: 860, 328 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Robotics rotate: false - xy: 1184, 656 + xy: 1292, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rocketry rotate: false - xy: 1076, 548 + xy: 1184, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Sailing rotate: false - xy: 1400, 764 + xy: 1400, 652 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Satellites rotate: false - xy: 1292, 656 + xy: 1292, 544 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Scientific Theory rotate: false - xy: 1184, 548 + xy: 1184, 436 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Stealth rotate: false - xy: 1400, 332 + xy: 1508, 550 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steam Power rotate: false - xy: 1508, 980 + xy: 1508, 442 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steel rotate: false - xy: 1508, 872 + xy: 1508, 334 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Telecommunications rotate: false - xy: 1508, 332 + xy: 1270, 220 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/The Wheel rotate: false - xy: 1054, 224 + xy: 976, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Theology rotate: false - xy: 1162, 224 + xy: 1084, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Trapping rotate: false - xy: 868, 116 + xy: 1300, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Writing rotate: false - xy: 1378, 224 + xy: 868, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/AtollOverlay rotate: false - xy: 212, 395 + xy: 212, 391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/CityOverlay rotate: false - xy: 505, 1480 + xy: 397, 1368 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/CrosshatchHexagon rotate: false - xy: 4, 1151 + xy: 4, 1147 size: 273, 236 orig: 273, 236 offset: 0, 0 index: -1 TileSets/FantasyHex/CrosshatchHexagon rotate: false - xy: 4, 1151 + xy: 4, 1147 size: 273, 236 orig: 273, 236 offset: 0, 0 index: -1 TileSets/Default/FalloutOverlay rotate: false - xy: 1261, 1412 + xy: 1369, 1408 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Flood plainsOverlay rotate: false - xy: 1045, 1196 + xy: 1261, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/ForestOverlay rotate: false - xy: 1153, 1196 + xy: 1369, 1192 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Hexagon rotate: false - xy: 412, 1804 + xy: 412, 1800 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 TileSets/FantasyHex/Hexagon rotate: false - xy: 412, 1804 + xy: 412, 1800 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 TileSets/Default/HillOverlay rotate: false - xy: 1600, 1650 + xy: 1708, 1646 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/IceOverlay rotate: false - xy: 717, 1088 + xy: 1041, 1084 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/JungleOverlay rotate: false - xy: 328, 71 + xy: 320, 828 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/LakesOverlay rotate: false - xy: 320, 940 + xy: 428, 936 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/MarshOverlay rotate: false - xy: 428, 724 + xy: 320, 396 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/MountainOverlay rotate: false - xy: 514, 184 + xy: 652, 72 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/NaturalWonderOverlay rotate: false - xy: 622, 184 + xy: 752, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/OasisOverlay rotate: false - xy: 644, 764 + xy: 968, 976 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Railroad rotate: false - xy: 1184, 764 + xy: 1400, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Railroad rotate: false - xy: 1184, 764 + xy: 1400, 868 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-Bottom rotate: false - xy: 1816, 718 + xy: 1990, 896 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-Bottom rotate: false - xy: 1816, 718 + xy: 1990, 896 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-BottomLeft rotate: false - xy: 1816, 682 + xy: 1990, 860 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomLeft rotate: false - xy: 1816, 682 + xy: 1990, 860 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-BottomRight rotate: false - xy: 1816, 646 + xy: 1990, 824 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomRight rotate: false - xy: 1816, 646 + xy: 1990, 824 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/Default/road rotate: false - xy: 1529, 1847 + xy: 1816, 1843 size: 61, 11 orig: 61, 11 offset: 0, 0 index: -1 TileSets/FantasyHex/road rotate: false - xy: 1529, 1847 + xy: 1816, 1843 size: 61, 11 orig: 61, 11 offset: 0, 0 index: -1 TileSets/FantasyHex/Railroad rotate: false - xy: 4, 6 + xy: 1529, 1843 size: 61, 11 orig: 61, 11 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Academy rotate: false - xy: 285, 1167 + xy: 285, 1163 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Academy-Snow rotate: false - xy: 2009, 2009 + xy: 976, 11 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Aluminum rotate: false - xy: 1774, 1506 + xy: 2009, 2012 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins rotate: false - xy: 1616, 984 + xy: 1594, 240 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Jungle rotate: false - xy: 684, 292 + xy: 684, 288 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Sand rotate: false - xy: 1674, 1042 + xy: 1616, 516 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Snow rotate: false - xy: 325, 1175 + xy: 1674, 574 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins2 rotate: false - xy: 1732, 1100 + xy: 1774, 1502 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Atoll rotate: false - xy: 2009, 1901 + xy: 1056, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Bananas rotate: false - xy: 1616, 840 + xy: 1096, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barbarian encampment rotate: false - xy: 1616, 804 + xy: 2009, 1904 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barbarian encampment-Snow rotate: false - xy: 1616, 767 + xy: 1616, 407 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barringer Crater rotate: false - xy: 1616, 731 + xy: 1136, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cattle rotate: false - xy: 742, 22 + xy: 1576, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cattle+Pasture rotate: false - xy: 782, 18 + xy: 1616, 14 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cerro de Potosi rotate: false - xy: 862, 22 + xy: 1732, 596 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citadel rotate: false - xy: 982, 15 + xy: 1817, 1380 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citadel-Snow rotate: false - xy: 1022, 20 + xy: 1817, 1342 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center rotate: false - xy: 1062, 15 + xy: 1817, 1299 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Ancient era rotate: false - xy: 1102, 18 + xy: 1817, 1259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Classical era rotate: false - xy: 1142, 18 + xy: 1817, 1219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Future era rotate: false - xy: 1182, 16 + xy: 1817, 1177 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Industrial era rotate: false - xy: 1222, 17 + xy: 1813, 1136 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Information era rotate: false - xy: 1714, 1020 + xy: 1790, 1088 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Medieval era rotate: false - xy: 1754, 1024 + xy: 1790, 1048 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Modern era rotate: false - xy: 1656, 964 + xy: 1790, 1006 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Renaissance era rotate: false - xy: 1656, 924 + xy: 1790, 966 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City ruins rotate: false - xy: 1656, 888 + xy: 1790, 930 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Coal rotate: false - xy: 1656, 816 + xy: 1790, 858 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Coast rotate: false - xy: 1656, 780 + xy: 1790, 822 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cotton rotate: false - xy: 1656, 562 + xy: 1857, 1412 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Customs house rotate: false - xy: 1656, 449 + xy: 1897, 1405 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Deer rotate: false - xy: 1656, 413 + xy: 1937, 1448 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Deer+Camp rotate: false - xy: 1656, 377 + xy: 1857, 1342 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert rotate: false - xy: 1656, 341 + xy: 1897, 1369 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert+Farm rotate: false - xy: 1660, 305 + xy: 1937, 1412 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert+Flood plains+Farm rotate: false - xy: 1660, 269 + xy: 1977, 1448 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Dyes rotate: false - xy: 1754, 988 + xy: 1937, 1376 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Dyes+Plantation rotate: false - xy: 1696, 948 + xy: 1977, 1412 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/El Dorado rotate: false - xy: 1696, 911 + xy: 1857, 1269 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fallout rotate: false - xy: 1696, 868 + xy: 1897, 1290 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fish rotate: false - xy: 1696, 832 + xy: 1937, 1340 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fishing Boats rotate: false - xy: 1696, 796 + xy: 1977, 1376 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Flood plains rotate: false - xy: 1696, 760 + xy: 1857, 1233 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Forest rotate: false - xy: 1696, 684 + xy: 1937, 1300 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fort rotate: false - xy: 1696, 643 + xy: 1977, 1335 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fountain of Youth rotate: false - xy: 1696, 603 + xy: 1857, 1193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Furs rotate: false - xy: 1696, 531 + xy: 1937, 1264 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Furs+Camp rotate: false - xy: 1696, 495 + xy: 1977, 1299 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Gems rotate: false - xy: 1696, 351 + xy: 1897, 1182 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Gold Ore rotate: false - xy: 1700, 315 + xy: 1937, 1192 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grand Mesa rotate: false - xy: 1700, 275 + xy: 1977, 1187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland rotate: false - xy: 1700, 239 + xy: 1857, 1157 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Farm rotate: false - xy: 1794, 1028 + xy: 1897, 1146 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Camp rotate: false - xy: 1794, 989 + xy: 1937, 1153 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Deer+Camp rotate: false - xy: 1834, 1479 + xy: 1977, 1148 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Furs+Camp rotate: false - xy: 1817, 1440 + xy: 1656, 499 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Lumber mill rotate: false - xy: 1817, 1401 + xy: 1656, 460 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Farm rotate: false - xy: 1817, 1365 + xy: 1656, 424 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Camp rotate: false - xy: 1817, 1329 + xy: 1656, 388 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Lumber mill rotate: false - xy: 1817, 1293 + xy: 1656, 352 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Trading post rotate: false - xy: 1817, 1257 + xy: 1714, 560 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Jungle+Trading post rotate: false - xy: 1817, 1217 + xy: 1714, 520 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/GrasslandForest rotate: false - xy: 1817, 1178 + xy: 1696, 481 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Great Barrier Reef rotate: false - xy: 1736, 912 + xy: 1696, 370 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Hill rotate: false - xy: 1736, 473 + xy: 1754, 556 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillForest+Lumber mill rotate: false - xy: 1736, 437 + xy: 1754, 520 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillMarbleQuarry rotate: false - xy: 1736, 401 + xy: 1736, 484 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillMine rotate: false - xy: 1736, 365 + xy: 1736, 448 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillStoneQuarry rotate: false - xy: 1740, 329 + xy: 1736, 412 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Horses rotate: false - xy: 1262, 14 + xy: 1794, 560 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Horses+Pasture rotate: false - xy: 1302, 10 + xy: 1794, 520 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ice rotate: false - xy: 1857, 1443 + xy: 1776, 411 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Incense rotate: false - xy: 1857, 1335 + xy: 1776, 303 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Incense+Plantation rotate: false - xy: 1857, 1299 + xy: 1816, 484 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Iron rotate: false - xy: 1857, 1227 + xy: 1816, 412 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ivory rotate: false - xy: 1897, 1452 + xy: 1816, 340 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ivory+Camp rotate: false - xy: 1897, 1416 + xy: 1816, 304 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Jungle rotate: false - xy: 1937, 1412 + xy: 1830, 1009 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Krakatoa rotate: false - xy: 1977, 1414 + xy: 1830, 860 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Lakes rotate: false - xy: 1937, 1340 + xy: 1830, 788 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Landmark rotate: false - xy: 1937, 1296 + xy: 1830, 672 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Manufactory rotate: false - xy: 1977, 1223 + xy: 1874, 517 size: 32, 39 orig: 32, 39 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Marble rotate: false - xy: 1977, 1187 + xy: 1856, 445 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Marsh rotate: false - xy: 1857, 1154 + xy: 1856, 372 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mine rotate: false - xy: 1937, 1116 + xy: 1896, 445 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Moai rotate: false - xy: 1813, 1102 + xy: 1896, 336 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mount Fuji rotate: false - xy: 1422, 4 + xy: 1870, 1000 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mountain rotate: false - xy: 1933, 1072 + xy: 1870, 956 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oasis rotate: false - xy: 1662, 6 + xy: 1870, 740 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ocean rotate: false - xy: 1702, 6 + xy: 1870, 704 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Offshore Platform rotate: false - xy: 1973, 1079 + xy: 1910, 1074 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oil rotate: false - xy: 1893, 1053 + xy: 1910, 1038 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oil well rotate: false - xy: 1933, 1036 + xy: 1910, 1002 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Old Faithful rotate: false - xy: 1973, 1039 + xy: 1910, 962 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Pasture rotate: false - xy: 1834, 970 + xy: 1910, 850 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Pearls rotate: false - xy: 1776, 917 + xy: 1910, 778 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains rotate: false - xy: 1776, 773 + xy: 1973, 1112 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Farm rotate: false - xy: 1776, 737 + xy: 1950, 1074 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Forest+Camp rotate: false - xy: 1776, 697 + xy: 1950, 1034 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Forest+Lumber mill rotate: false - xy: 1776, 657 + xy: 1950, 994 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Jungle+Trading post rotate: false - xy: 1776, 617 + xy: 1950, 954 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/PlainsForest rotate: false - xy: 1776, 577 + xy: 1950, 914 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/PlainsJungle rotate: false - xy: 1776, 537 + xy: 1950, 874 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation rotate: false - xy: 1776, 501 + xy: 1950, 838 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation+Bananas rotate: false - xy: 1776, 465 + xy: 1950, 802 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation+Cotton rotate: false - xy: 1776, 429 + xy: 1950, 766 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry rotate: false - xy: 1816, 898 + xy: 1990, 1076 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry+Marble rotate: false - xy: 1816, 862 + xy: 1990, 1040 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry+Stone rotate: false - xy: 1816, 826 + xy: 1990, 1004 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Rock of Gibraltar rotate: false - xy: 1816, 606 + xy: 1990, 784 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sheep rotate: false - xy: 1816, 389 + xy: 1990, 640 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sheep+Pasture rotate: false - xy: 1874, 1006 + xy: 1892, 630 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silk rotate: false - xy: 1856, 897 + xy: 1736, 268 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silk+Plantation rotate: false - xy: 1856, 861 + xy: 1776, 267 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silver rotate: false - xy: 1856, 825 + xy: 1816, 268 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Snow rotate: false - xy: 1856, 753 + xy: 1896, 264 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Snow+Farm rotate: false - xy: 1856, 717 + xy: 1772, 231 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Spices rotate: false - xy: 1856, 645 + xy: 1856, 228 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Spices+Plantation rotate: false - xy: 1856, 609 + xy: 1896, 228 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Stone rotate: false - xy: 1856, 573 + xy: 1732, 194 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sugar rotate: false - xy: 1856, 503 + xy: 1812, 196 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sugar+Plantation rotate: false - xy: 1856, 467 + xy: 1852, 192 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Terrace farm rotate: false - xy: 1914, 964 + xy: 1852, 156 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Trading post rotate: false - xy: 1896, 892 + xy: 1972, 604 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra rotate: false - xy: 1896, 784 + xy: 1932, 156 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Farm rotate: false - xy: 1896, 748 + xy: 1972, 568 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Camp rotate: false - xy: 1896, 708 + xy: 2012, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Camp+Furs rotate: false - xy: 1896, 668 + xy: 1972, 528 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Deer+Camp rotate: false - xy: 1896, 628 + xy: 2012, 524 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Lumber mill rotate: false - xy: 1896, 588 + xy: 1972, 488 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/TundraForest rotate: false - xy: 1896, 548 + xy: 2012, 484 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Uranium rotate: false - xy: 1896, 476 + xy: 2012, 448 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Whales rotate: false - xy: 1954, 930 + xy: 1972, 344 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Whales+Fishing Boats rotate: false - xy: 1936, 892 + xy: 2012, 342 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wheat rotate: false - xy: 1936, 856 + xy: 1972, 308 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wine rotate: false - xy: 1936, 820 + xy: 2012, 306 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wine+Plantation rotate: false - xy: 1936, 784 + xy: 1972, 272 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/TopBorder rotate: false - xy: 1914, 928 + xy: 1892, 156 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/African Forest Elephant rotate: false - xy: 644, 295 + xy: 644, 291 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Anti-Aircraft Gun rotate: false - xy: 2009, 1973 + xy: 1732, 632 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Anti-Tank Gun rotate: false - xy: 1616, 948 + xy: 325, 1171 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Archer rotate: false - xy: 1772, 1100 + xy: 1016, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Artillery rotate: false - xy: 2009, 1937 + xy: 2009, 1976 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Atlatlist rotate: false - xy: 1616, 912 + xy: 1616, 480 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Axe Thrower rotate: false - xy: 1616, 876 + xy: 2009, 1940 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ballista rotate: false - xy: 2009, 1865 + xy: 1616, 444 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Battering Ram rotate: false - xy: 1616, 695 + xy: 2009, 1868 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Battleship rotate: false - xy: 1616, 659 + xy: 2009, 1832 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Bazooka rotate: false - xy: 1616, 623 + xy: 1616, 371 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Berber Cavalry rotate: false - xy: 1616, 587 + xy: 1176, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Berserker rotate: false - xy: 1616, 551 + xy: 1616, 335 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Bowman rotate: false - xy: 1616, 515 + xy: 1216, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Brute rotate: false - xy: 1616, 479 + xy: 1256, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Camel Archer rotate: false - xy: 1616, 442 + xy: 1296, 17 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cannon rotate: false - xy: 1616, 406 + xy: 1336, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Caravel rotate: false - xy: 1616, 370 + xy: 1376, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Carolean rotate: false - xy: 1616, 334 + xy: 1416, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Carrier rotate: false - xy: 1732, 1064 + xy: 1456, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cataphract rotate: false - xy: 1772, 1064 + xy: 1496, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Catapult rotate: false - xy: 1674, 1006 + xy: 1536, 18 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cavalry rotate: false - xy: 822, 22 + xy: 1674, 538 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Chariot Archer rotate: false - xy: 902, 22 + xy: 1817, 1459 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Chu-Ko-Nu rotate: false - xy: 942, 22 + xy: 1817, 1423 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/CivilianLandUnit rotate: false - xy: 1656, 852 + xy: 1790, 894 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Comanche Rider rotate: false - xy: 1656, 743 + xy: 1790, 785 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Companion Cavalry rotate: false - xy: 1656, 706 + xy: 1790, 748 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Composite Bowman rotate: false - xy: 1656, 670 + xy: 1790, 712 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Conquistador rotate: false - xy: 1656, 634 + xy: 1790, 676 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cossack rotate: false - xy: 1656, 598 + xy: 1857, 1448 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Crossbowman rotate: false - xy: 1656, 526 + xy: 1897, 1448 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cruiser rotate: false - xy: 1656, 492 + xy: 1857, 1378 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Destroyer rotate: false - xy: 1660, 233 + xy: 1857, 1306 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Dromon rotate: false - xy: 1714, 984 + xy: 1897, 1333 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Foreign Legion rotate: false - xy: 1696, 724 + xy: 1897, 1254 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Frigate rotate: false - xy: 1696, 567 + xy: 1897, 1218 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Galleass rotate: false - xy: 1696, 459 + xy: 1937, 1228 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Galley rotate: false - xy: 1696, 423 + xy: 1977, 1263 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Gatling Gun rotate: false - xy: 1696, 387 + xy: 1977, 1227 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Admiral rotate: false - xy: 1813, 1139 + xy: 1696, 442 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Artist rotate: false - xy: 1736, 948 + xy: 1696, 406 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Engineer rotate: false - xy: 1736, 876 + xy: 1696, 334 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Galleass rotate: false - xy: 1736, 840 + xy: 1656, 316 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great General rotate: false - xy: 1736, 801 + xy: 1652, 277 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Merchant rotate: false - xy: 1736, 765 + xy: 1696, 298 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Musician rotate: false - xy: 1736, 729 + xy: 1853, 1121 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Prophet rotate: false - xy: 1736, 693 + xy: 1893, 1110 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Scientist rotate: false - xy: 1736, 657 + xy: 1692, 262 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great War Infantry rotate: false - xy: 1736, 621 + xy: 1652, 241 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Writer rotate: false - xy: 1736, 585 + xy: 1692, 226 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hakkapeliitta rotate: false - xy: 1736, 549 + xy: 1772, 632 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Helicopter Gunship rotate: false - xy: 1736, 513 + xy: 1772, 596 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hoplite rotate: false - xy: 1740, 293 + xy: 1736, 376 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Horse Archer rotate: false - xy: 1740, 257 + xy: 1736, 340 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Horseman rotate: false - xy: 1740, 221 + xy: 1736, 304 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hussar rotate: false - xy: 1342, 13 + xy: 1776, 483 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hwach'a rotate: false - xy: 1382, 14 + xy: 1776, 447 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Immortal rotate: false - xy: 1857, 1407 + xy: 1776, 375 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Impi rotate: false - xy: 1857, 1371 + xy: 1776, 339 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Infantry rotate: false - xy: 1857, 1263 + xy: 1816, 448 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ironclad rotate: false - xy: 1857, 1191 + xy: 1816, 376 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Jaguar rotate: false - xy: 1937, 1452 + xy: 1830, 1085 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Janissary rotate: false - xy: 1897, 1380 + xy: 1830, 1049 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Keshik rotate: false - xy: 1977, 1452 + xy: 1830, 973 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Khan rotate: false - xy: 1897, 1341 + xy: 1830, 934 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Knight rotate: false - xy: 1937, 1376 + xy: 1830, 898 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Kris Swordsman rotate: false - xy: 1897, 1305 + xy: 1830, 824 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Lancer rotate: false - xy: 1977, 1378 + xy: 1830, 752 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/LandUnit rotate: false - xy: 1897, 1269 + xy: 1830, 716 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Landship rotate: false - xy: 1977, 1342 + xy: 1812, 636 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Landsknecht rotate: false - xy: 1897, 1233 + xy: 1812, 600 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Legion rotate: false - xy: 1937, 1260 + xy: 1852, 636 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Longbowman rotate: false - xy: 1977, 1306 + xy: 1852, 600 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Longswordsman rotate: false - xy: 1897, 1197 + xy: 1834, 564 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Machine Gun rotate: false - xy: 1937, 1224 + xy: 1834, 528 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mandekalu Cavalry rotate: false - xy: 1977, 1270 + xy: 1874, 564 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Maori Warrior rotate: false - xy: 1937, 1188 + xy: 1856, 481 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Marine rotate: false - xy: 1897, 1161 + xy: 1856, 409 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mechanized Infantry rotate: false - xy: 1937, 1152 + xy: 1856, 336 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mehal Sefari rotate: false - xy: 1977, 1151 + xy: 1856, 300 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Merchant Of Venice rotate: false - xy: 1897, 1125 + xy: 1896, 481 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Minuteman rotate: false - xy: 1977, 1115 + xy: 1896, 409 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Missile Cruiser rotate: false - xy: 1853, 1118 + xy: 1896, 373 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mobile SAM rotate: false - xy: 1812, 1066 + xy: 1896, 300 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Modern Armor rotate: false - xy: 1853, 1082 + xy: 1870, 1074 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mohawk Warrior rotate: false - xy: 1893, 1089 + xy: 1870, 1038 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Musketeer rotate: false - xy: 1462, 6 + xy: 1870, 920 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Musketman rotate: false - xy: 1502, 6 + xy: 1870, 884 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Naresuan's Elephant rotate: false - xy: 1542, 6 + xy: 1870, 848 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Nau rotate: false - xy: 1582, 6 + xy: 1870, 812 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Norwegian Ski Infantry rotate: false - xy: 1622, 6 + xy: 1870, 776 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Panzer rotate: false - xy: 1852, 1046 + xy: 1910, 926 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Paratrooper rotate: false - xy: 1834, 1010 + xy: 1910, 890 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pathfinder rotate: false - xy: 1794, 953 + xy: 1910, 814 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Persian Immortal rotate: false - xy: 1776, 881 + xy: 1910, 742 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pictish Warrior rotate: false - xy: 1776, 845 + xy: 1910, 706 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pikeman rotate: false - xy: 1776, 809 + xy: 1933, 1110 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pracinha rotate: false - xy: 1776, 393 + xy: 1950, 730 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Privateer rotate: false - xy: 1834, 934 + xy: 1950, 694 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Quinquereme rotate: false - xy: 1816, 790 + xy: 1990, 968 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Rifleman rotate: false - xy: 1816, 754 + xy: 1990, 932 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Rocket Artillery rotate: false - xy: 1816, 570 + xy: 1990, 748 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Samurai rotate: false - xy: 1816, 534 + xy: 1990, 712 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Scout rotate: false - xy: 1816, 498 + xy: 1990, 676 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Sea Beggar rotate: false - xy: 1816, 462 + xy: 1910, 670 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Settler rotate: false - xy: 1816, 425 + xy: 1950, 657 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ship of the Line rotate: false - xy: 1874, 969 + xy: 1656, 17 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Siege Tower rotate: false - xy: 1874, 933 + xy: 1932, 621 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Sipahi rotate: false - xy: 1742, 4 + xy: 1732, 230 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Slinger rotate: false - xy: 1856, 789 + xy: 1856, 264 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Spearman rotate: false - xy: 1856, 681 + xy: 1816, 232 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Submarine rotate: false - xy: 1856, 539 + xy: 1772, 197 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Swordsman rotate: false - xy: 1856, 431 + xy: 1892, 192 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Tank rotate: false - xy: 1856, 395 + xy: 1772, 161 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Tercio rotate: false - xy: 1914, 1000 + xy: 1812, 160 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Trebuchet rotate: false - xy: 1896, 856 + xy: 2012, 604 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Trireme rotate: false - xy: 1896, 820 + xy: 1932, 192 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Turtle Ship rotate: false - xy: 1896, 512 + xy: 1972, 452 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/War Chariot rotate: false - xy: 1896, 440 + xy: 1972, 416 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/War Elephant rotate: false - xy: 1896, 404 + xy: 2012, 412 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Warrior rotate: false - xy: 1954, 1000 + xy: 1972, 380 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/WaterUnit rotate: false - xy: 1954, 966 + xy: 2012, 378 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Winged Hussar rotate: false - xy: 1936, 748 + xy: 2012, 270 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Work Boats rotate: false - xy: 1936, 712 + xy: 1972, 236 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Worker rotate: false - xy: 1936, 676 + xy: 2012, 234 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy rotate: false - xy: 1816, 1808 + xy: 644, 1094 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Air Repair rotate: false - xy: 1300, 166 + xy: 1816, 1785 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Air Targeting rotate: false - xy: 1486, 274 + xy: 1034, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting rotate: false - xy: 1486, 274 + xy: 1034, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Ambush rotate: false - xy: 1358, 166 + xy: 1092, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Amphibious rotate: false - xy: 1544, 274 + xy: 1816, 1669 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Armor Plating rotate: false - xy: 1416, 166 + xy: 1816, 1611 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage rotate: false - xy: 1816, 1576 + xy: 1816, 1553 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Besiege rotate: false - xy: 1300, 108 + xy: 1266, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Siege rotate: false - xy: 1300, 108 + xy: 1266, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Blitz rotate: false - xy: 1358, 108 + xy: 1324, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding Party rotate: false - xy: 1416, 108 + xy: 1382, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment rotate: false - xy: 1486, 216 + xy: 1440, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Charge rotate: false - xy: 1544, 216 + xy: 1498, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal Raider rotate: false - xy: 336, 13 + xy: 278, 9 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Cover rotate: false - xy: 1532, 100 + xy: 510, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Discipline rotate: false - xy: 1532, 100 + xy: 510, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Drill rotate: false - xy: 568, 18 + xy: 1874, 1774 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Evasion rotate: false - xy: 684, 18 + xy: 1932, 1774 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Extended Range rotate: false - xy: 760, 58 + xy: 1874, 1658 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Operational Range rotate: false - xy: 760, 58 + xy: 1874, 1658 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Flight Deck rotate: false - xy: 876, 58 + xy: 1874, 1600 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Formation rotate: false - xy: 934, 58 + xy: 1932, 1658 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Great Generals rotate: false - xy: 1224, 58 + xy: 1874, 1484 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Quick Study rotate: false - xy: 1224, 58 + xy: 1874, 1484 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Haka War Dance rotate: false - xy: 1816, 1518 + xy: 1932, 1484 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Heal Instantly rotate: false - xy: 1282, 50 + xy: 1600, 1480 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Indirect Fire rotate: false - xy: 1398, 50 + xy: 1716, 1480 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Interception rotate: false - xy: 1514, 42 + xy: 1585, 1364 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Logistics rotate: false - xy: 1874, 1662 + xy: 1701, 1422 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/March rotate: false - xy: 1874, 1604 + xy: 1643, 1306 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Medic rotate: false - xy: 1932, 1662 + xy: 1701, 1364 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Mobility rotate: false - xy: 1658, 1484 + xy: 1581, 1132 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Morale rotate: false - xy: 1585, 1426 + xy: 1697, 1132 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Rejuvenation rotate: false - xy: 1639, 1136 + xy: 1616, 1016 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting rotate: false - xy: 1990, 1604 + xy: 1616, 900 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Sentry rotate: false - xy: 1990, 1604 + xy: 1616, 900 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Shock rotate: false - xy: 1990, 1488 + xy: 1732, 1016 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Slinger Withdraw rotate: false - xy: 1572, 42 + xy: 1616, 842 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Sortie rotate: false - xy: 1759, 1368 + xy: 1732, 958 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Supply rotate: false - xy: 1759, 1194 + xy: 1732, 900 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Survivalism rotate: false - xy: 1755, 1136 + xy: 1616, 726 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Volley rotate: false - xy: 1688, 42 + xy: 1732, 726 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack rotate: false - xy: 1616, 1020 + xy: 1674, 610 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Woodsman rotate: false - xy: 1674, 1078 + xy: 1732, 668 size: 50, 50 orig: 50, 50 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index 53ae92b2ac..f9656bd29c 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/Civ V - Vanilla/Religions.json b/android/assets/jsons/Civ V - Vanilla/Religions.json new file mode 100644 index 0000000000..b89c4eca2c --- /dev/null +++ b/android/assets/jsons/Civ V - Vanilla/Religions.json @@ -0,0 +1,7 @@ +[ + "Buddhism", + "Christianity", + "Hinduism", + "Islam", + "Taoism" +] \ No newline at end of file diff --git a/android/assets/jsons/Civ V - Vanilla/Units.json b/android/assets/jsons/Civ V - Vanilla/Units.json index bdfe604846..39b730aa29 100644 --- a/android/assets/jsons/Civ V - Vanilla/Units.json +++ b/android/assets/jsons/Civ V - Vanilla/Units.json @@ -1477,7 +1477,8 @@ { "name": "Great Prophet", "unitType": "Civilian", - "uniques": ["Can construct [Holy site] if it hasn't spread religion yet", "Can spread religion [4] times","Great Person - [Faith]", "Unbuildable"], + "uniques": ["Can construct [Holy site] if it hasn't spread religion yet", "Can spread religion [4] times", + "May found a religion", "Great Person - [Faith]", "Unbuildable"], "movement": 2 }, { diff --git a/android/assets/jsons/translations/Dutch.properties b/android/assets/jsons/translations/Dutch.properties index 44ea84c2dd..cca7e5e13c 100644 --- a/android/assets/jsons/translations/Dutch.properties +++ b/android/assets/jsons/translations/Dutch.properties @@ -723,6 +723,7 @@ Your trade mission to [civName] has earned you [goldAmount] gold and [influenceA Hurry Wonder = Versnel Wonder Spread Religion = Verkondig Religie Spread [religionName] = Verkondig [religionName] +Found a Religion = Begin een religie Your citizens have been happy with your rule for so long that the empire enters a Golden Age! = Jouw dorpelingen zijn voor zo een lange tijd blij met jouw leiderschap dat jouw rijk de Gulden Eeuw binnen gaat. You have entered the [newEra]! = Jij bent in het/de [newEra] aangekomen! [civName] has entered the [eraName]! = [civName] is aangekomen in de [eraName]! diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index bb7f920fd9..e5562f31c2 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -679,6 +679,7 @@ Your trade mission to [civName] has earned you [goldAmount] gold and [influenceA Hurry Wonder = Spread Religion = Spread [religionName] = +Found a Religion = Your citizens have been happy with your rule for so long that the empire enters a Golden Age! = You have entered the [newEra]! = [civName] has entered the [eraName]! = @@ -904,6 +905,11 @@ Unlocked at = Gain 2 free technologies = All policies adopted = +# Religions + +Choose an Icon and name for your Religion = +Found [religionName] = + # Terrains Impassable = diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index 1963a5f7df..a26ba34f35 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -395,7 +395,7 @@ object Battle { UncivGame.Current.settings.addCompletedTutorialTask("Conquer a city") } else { city.puppetCity(attackerCiv) - if (city.population.population < 4 && !city.isOriginalCapital) { + if (city.population.population < 4 && city.canBeDestroyed()) { city.annexCity() city.isBeingRazed = true } diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index c8700ded47..fc34dd1fb2 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -433,7 +433,7 @@ class CityInfo { } } else population.nextTurn(foodForNextTurn()) - if (civInfo.gameInfo.hasReligionEnabled()) religion.getAffectedBySurroundingCities() + // if (civInfo.gameInfo.hasReligionEnabled()) religion.getAffectedBySurroundingCities() if (this in civInfo.cities) { // city was not destroyed health = min(health + 20, getMaxHealth()) @@ -442,10 +442,9 @@ class CityInfo { } fun destroyCity(overrideSafeties: Boolean = false) { - // Original capitals can't be destroyed. - // Unless they are captured by a one-city-challenger for some reason. - // This was tested in the original. - if (isOriginalCapital && !overrideSafeties) return + // Original capitals and holy cities cannot be destroyed, + // unless, of course, they are captured by a one-city-challenger. + if (!canBeDestroyed() && !overrideSafeties) return for (airUnit in getCenterTile().airUnits.toList()) airUnit.destroy() //Destroy planes stationed in city @@ -594,6 +593,14 @@ class CityInfo { .filter { it.params.none { param -> param == "in this city" } } // Note that we don't query religion here, as those only have local effects (for now at least) } + + fun isHolyCity(): Boolean { + return civInfo.gameInfo.religions.values.any { it.holyCityId == id } + } + fun canBeDestroyed(): Boolean { + return !isCapital() && !isHolyCity() + } + //endregion } diff --git a/core/src/com/unciv/logic/civilization/ReligionManager.kt b/core/src/com/unciv/logic/civilization/ReligionManager.kt index bb12922af8..bf97582139 100644 --- a/core/src/com/unciv/logic/civilization/ReligionManager.kt +++ b/core/src/com/unciv/logic/civilization/ReligionManager.kt @@ -1,5 +1,6 @@ package com.unciv.logic.civilization +import com.unciv.logic.city.CityInfo import com.unciv.logic.map.MapUnit import com.unciv.models.Religion import com.unciv.models.ruleset.Belief @@ -15,7 +16,7 @@ class ReligionManager { var religion: Religion? = null // You might ask why this is the transient variable, and not the one in GameInfo. // After all, filling a hashmap is much easier than later distributing its contents over multiple classes. - // I would agree that that is better. However, there is, of course, a problem. + // There is, however, a problem. // When founding a religion, the religion of your pantheon doesn't immediately disappear. // It just stops growing. Your new religion will then have to spread out from your holy city // and convert these cities. This means, that civilizations can have multiple active religions @@ -25,9 +26,18 @@ class ReligionManager { private var greatProphetsEarned = 0 + var religionState = ReligionState.None + private set + + private var foundingCityId: String? = null + // Only used for keeping track of the city a prophet was used when founding a religion + fun clone(): ReligionManager { val clone = ReligionManager() + clone.foundingCityId = foundingCityId clone.storedFaith = storedFaith + clone.religionState = religionState + clone.greatProphetsEarned = greatProphetsEarned return clone } @@ -45,17 +55,7 @@ class ReligionManager { } fun startTurn() { - if (canGenerateProphet()) { - val prophetSpawnChange = (5f + storedFaith - faithForNextGreatProphet()) / 100f - if (Random(civInfo.gameInfo.turns).nextFloat() < prophetSpawnChange) { - val birthCity = civInfo.cities.filter { it.religion.getMajorityReligion() == religion!!.name }.random() - val prophet = civInfo.addUnit("Great Prophet", birthCity) - if (prophet == null) return - prophet.religion = religion!!.name - prophet.abilityUsedCount["Religion Spread"] = 0 - storedFaith -= faithForNextGreatProphet() - } - } + if (canGenerateProphet()) generateProphet() } fun endTurn(faithFromNewTurn: Int) { @@ -65,8 +65,8 @@ class ReligionManager { private fun faithForPantheon() = 10 + civInfo.gameInfo.civilizations.count { it.isMajorCiv() && it.religionManager.religion != null } * 5 fun canFoundPantheon(): Boolean { - if (religion != null) return false if (!civInfo.gameInfo.hasReligionEnabled()) return false + if (religionState != ReligionState.None) return false if (!civInfo.isMajorCiv()) return false if (civInfo.gameInfo.ruleSet.beliefs.values.none { isPickablePantheonBelief(it) }) return false @@ -75,7 +75,7 @@ class ReligionManager { fun isPickablePantheonBelief(belief: Belief): Boolean { if (belief.type != "Pantheon") return false - if (civInfo.gameInfo.civilizations.any { it.religionManager.religion != null && it.religionManager.religion!!.pantheonBeliefs.contains(belief.name)}) + if (civInfo.gameInfo.civilizations.any { it.religionManager.religion != null && it.religionManager.religion!!.followerBeliefs.contains(belief.name)}) return false return true } @@ -83,23 +83,101 @@ class ReligionManager { fun choosePantheonBelief(belief: Belief) { storedFaith -= faithForPantheon() religion = Religion(belief.name, civInfo.gameInfo, civInfo.civName) - religion!!.pantheonBeliefs.add(belief.name) + religion!!.followerBeliefs.add(belief.name) civInfo.gameInfo.religions[belief.name] = religion!! // This should later be changed when religions can have multiple beliefs civInfo.getCapital().religion[belief.name] = 100 // Capital is religious, other cities are not + religionState = ReligionState.Pantheon } - + // https://www.reddit.com/r/civ/comments/2m82wu/can_anyone_detail_the_finer_points_of_great/ // Game files (globaldefines.xml) - fun faithForNextGreatProphet() = ((200 + 100 * greatProphetsEarned * (greatProphetsEarned + 1)/2) * civInfo.gameInfo.gameParameters.gameSpeed.modifier).toInt() + private fun faithForNextGreatProphet() = ( + (200 + 100 * greatProphetsEarned * (greatProphetsEarned + 1) / 2) * + civInfo.gameInfo.gameParameters.gameSpeed.modifier + ).toInt() - fun canGenerateProphet(): Boolean { - if (religion == null || !religion!!.hasPantheon()) return false // First get a pantheon, then we'll talk about a real religion + private fun canGenerateProphet(): Boolean { + if (religion == null || religionState == ReligionState.None) return false // First get a pantheon, then we'll talk about a real religion if (storedFaith < faithForNextGreatProphet()) return false // In the base game, great prophets shouldn't generate anymore starting from the industrial era // This is difficult to implement in the current codebase, probably requires an additional variable in eras.json - // Also only if you either [have founded a religion] or [the max amount of religions (players/2 + 1) has not been reached]. - // As this is yet to be implemented, this function does almost nothing return true } + + private fun generateProphet() { + val prophetSpawnChange = (5f + storedFaith - faithForNextGreatProphet()) / 100f + + if (Random(civInfo.gameInfo.turns).nextFloat() < prophetSpawnChange) { + val birthCity = + if (religionState == ReligionState.Pantheon) civInfo.getCapital() + else civInfo.cities.firstOrNull { it.id == religion!!.holyCityId } + val prophet = civInfo.addUnit("Great Prophet", birthCity) + if (prophet == null) return + prophet.religion = religion!!.name + prophet.abilityUsedCount["Religion Spread"] = 0 + storedFaith -= faithForNextGreatProphet() + } + } + + fun mayUseGreatProphetAtAll(prophet: MapUnit): Boolean { + if (religion == null) return false // First found a pantheon + if (religion!!.isMajorReligion()) return false // Already created a major religion + if (prophet.abilityUsedCount["Religion Spread"] != 0) return false // Already used its power for other things + + val foundedReligionsCount = civInfo.gameInfo.civilizations.count { + it.religionManager.religion != null && it.religionManager.religion!!.isMajorReligion() + } + + if (foundedReligionsCount >= civInfo.gameInfo.civilizations.count { it.isMajorCiv() } / 2 + 1) + return false // Too bad, too many religions have already been founded. + + if (foundedReligionsCount >= civInfo.gameInfo.ruleSet.religions.count()) + return false + // Mod maker did not provide enough religions for the amount of civs present + + + return true + } + + fun mayUseGreatProphetNow(prophet: MapUnit): Boolean { + if (!mayUseGreatProphetAtAll(prophet)) return false + if (!prophet.getTile().isCityCenter()) return false + return true + } + + fun useGreatProphet(prophet: MapUnit) { + if (!mayUseGreatProphetNow(prophet)) return // How did you do this? + religionState = ReligionState.FoundingReligion + foundingCityId = prophet.getTile().getCity()!!.id + } + + fun foundReligion(iconName: String, name: String, founderBelief: String, followerBelief: String) { + val newReligion = Religion(name, civInfo.gameInfo, civInfo.civName) + newReligion.iconName = iconName + if (religion != null) { + newReligion.followerBeliefs.addAll(religion!!.followerBeliefs) + } + newReligion.followerBeliefs.add(followerBelief) + newReligion.founderBeliefs.add(founderBelief) + newReligion.holyCityId = foundingCityId + religion = newReligion + civInfo.gameInfo.religions[name] = newReligion + + religionState = ReligionState.Religion + val holyCity = civInfo.cities.firstOrNull { it.id == newReligion.holyCityId }!! + holyCity.religion.clear() + holyCity.religion[name] = 100 + + foundingCityId = null + } } + +enum class ReligionState { + None, + Pantheon, + FoundingReligion, // Great prophet used, but religion has not yet been founded + Religion, + EnhancingReligion, // Great prophet used, but religion has not yet been enhanced + EnhancedReligion +} \ No newline at end of file diff --git a/core/src/com/unciv/models/Religion.kt b/core/src/com/unciv/models/Religion.kt index 0b0ce65986..52b86a06b7 100644 --- a/core/src/com/unciv/models/Religion.kt +++ b/core/src/com/unciv/models/Religion.kt @@ -7,34 +7,39 @@ import com.unciv.models.stats.INamed /** Data object for Religions */ class Religion() : INamed { - - var pantheonBeliefs: HashSet = hashSetOf() + + override lateinit var name: String + var iconName: String = "Pantheon" + lateinit var foundingCivName: String + var holyCityId: String? = null + + var founderBeliefs: HashSet = hashSetOf() var followerBeliefs: HashSet = hashSetOf() - override lateinit var name: String - lateinit var foundingCivName: String - + + @Transient lateinit var gameInfo: GameInfo - + constructor(name: String, gameInfo: GameInfo, foundingCivName: String) : this() { this.name = name this.foundingCivName = foundingCivName this.gameInfo = gameInfo } - + fun clone(): Religion { val toReturn = Religion(name, gameInfo, foundingCivName) - toReturn.pantheonBeliefs.addAll(pantheonBeliefs) + toReturn.iconName = iconName + toReturn.holyCityId = holyCityId toReturn.founderBeliefs.addAll(founderBeliefs) toReturn.followerBeliefs.addAll(followerBeliefs) return toReturn } - + fun setTransients(gameInfo: GameInfo) { this.gameInfo = gameInfo } - + private fun getUniquesOfBeliefs(beliefs: HashSet): Sequence { val rulesetBeliefs = gameInfo.ruleSet.beliefs return beliefs.mapNotNull { @@ -42,24 +47,26 @@ class Religion() : INamed { else rulesetBeliefs[it]!!.uniqueObjects }.flatten().asSequence() } - + fun getFollowerUniques(): Sequence { - return getUniquesOfBeliefs((followerBeliefs + pantheonBeliefs).toHashSet()) + return getUniquesOfBeliefs(followerBeliefs) } - + fun getFounderUniques(): Sequence { return getUniquesOfBeliefs(founderBeliefs) } - + fun isPantheon(): Boolean { return hasPantheon() && !isMajorReligion() } - + fun isMajorReligion(): Boolean { - return founderBeliefs.isNotEmpty() && followerBeliefs.isNotEmpty() + if ("" in followerBeliefs) return true // Temporary as a result of follower beliefs not yet being implemented + return founderBeliefs.isNotEmpty() && followerBeliefs.any { gameInfo.ruleSet.beliefs[it]!!.type == "Follower"} } - + fun hasPantheon(): Boolean { - return pantheonBeliefs.isNotEmpty() + // Temporary as a result of follower beliefs not yet being implemented + return followerBeliefs.any { it != "" && gameInfo.ruleSet.beliefs[it]!!.type == "Pantheon" } } } \ No newline at end of file diff --git a/core/src/com/unciv/models/UnitAction.kt b/core/src/com/unciv/models/UnitAction.kt index 369c31a3ab..821006c021 100644 --- a/core/src/com/unciv/models/UnitAction.kt +++ b/core/src/com/unciv/models/UnitAction.kt @@ -35,5 +35,6 @@ enum class UnitActionType(val value: String) { StartGoldenAge("Start Golden Age"), HurryWonder("Hurry Wonder"), ConductTradeMission("Conduct Trade Mission"), + FoundReligion("Found a Religion"), DisbandUnit("Disband unit") } \ No newline at end of file diff --git a/core/src/com/unciv/models/ruleset/Ruleset.kt b/core/src/com/unciv/models/ruleset/Ruleset.kt index 7057417bad..2cafa3c4e1 100644 --- a/core/src/com/unciv/models/ruleset/Ruleset.kt +++ b/core/src/com/unciv/models/ruleset/Ruleset.kt @@ -45,21 +45,23 @@ class Ruleset { var modWithReligionLoaded = false var name = "" + val beliefs = LinkedHashMap() + val religions = ArrayList() val buildings = LinkedHashMap() - val terrains = LinkedHashMap() - val tileResources = LinkedHashMap() - val tileImprovements = LinkedHashMap() - val technologies = LinkedHashMap() + val difficulties = LinkedHashMap() val eras = LinkedHashMap() - val units = LinkedHashMap() - val unitPromotions = LinkedHashMap() val nations = LinkedHashMap() + val policies = LinkedHashMap() + val policyBranches = LinkedHashMap() val quests = LinkedHashMap() val specialists = LinkedHashMap() - val policyBranches = LinkedHashMap() - val policies = LinkedHashMap() - val beliefs = LinkedHashMap() - val difficulties = LinkedHashMap() + val technologies = LinkedHashMap() + val terrains = LinkedHashMap() + val tileImprovements = LinkedHashMap() + val tileResources = LinkedHashMap() + val units = LinkedHashMap() + val unitPromotions = LinkedHashMap() + val mods = LinkedHashSet() var modOptions = ModOptions() @@ -82,10 +84,12 @@ class Ruleset { difficulties.putAll(ruleset.difficulties) eras.putAll(ruleset.eras) nations.putAll(ruleset.nations) + for (nationToRemove in ruleset.modOptions.nationsToRemove) nations.remove(nationToRemove) policyBranches.putAll(ruleset.policyBranches) policies.putAll(ruleset.policies) beliefs.putAll(ruleset.beliefs) quests.putAll(ruleset.quests) + religions.addAll(ruleset.religions) specialists.putAll(ruleset.specialists) technologies.putAll(ruleset.technologies) for (techToRemove in ruleset.modOptions.techsToRemove) technologies.remove(techToRemove) @@ -95,7 +99,6 @@ class Ruleset { unitPromotions.putAll(ruleset.unitPromotions) units.putAll(ruleset.units) for (unitToRemove in ruleset.modOptions.unitsToRemove) units.remove(unitToRemove) - for (nationToRemove in ruleset.modOptions.nationsToRemove) nations.remove(nationToRemove) mods += ruleset.mods modWithReligionLoaded = modWithReligionLoaded || ruleset.modWithReligionLoaded } @@ -110,6 +113,7 @@ class Ruleset { mods.clear() nations.clear() policies.clear() + religions.clear() quests.clear() technologies.clear() terrains.clear() @@ -157,6 +161,7 @@ class Ruleset { val erasFile = folderHandle.child("Eras.json") if (erasFile.exists()) eras += createHashmap(jsonParser.getFromJson(Array::class.java, erasFile)) + val unitsFile = folderHandle.child("Units.json") if (unitsFile.exists()) units += createHashmap(jsonParser.getFromJson(Array::class.java, unitsFile)) @@ -189,6 +194,9 @@ class Ruleset { if (beliefsFile.exists()) beliefs += createHashmap(jsonParser.getFromJson(Array::class.java, beliefsFile)) + val religionsFile = folderHandle.child("Religions.json") + if (religionsFile.exists()) + religions += jsonParser.getFromJson(Array::class.java, religionsFile).toList() val nationsFile = folderHandle.child("Nations.json") if (nationsFile.exists()) { diff --git a/core/src/com/unciv/ui/cityscreen/CityScreen.kt b/core/src/com/unciv/ui/cityscreen/CityScreen.kt index f30676dc06..0e6cbe4f23 100644 --- a/core/src/com/unciv/ui/cityscreen/CityScreen.kt +++ b/core/src/com/unciv/ui/cityscreen/CityScreen.kt @@ -147,7 +147,7 @@ class CityScreen(internal val city: CityInfo): CameraStageBaseScreen() { val razeCityButton = "Raze city".toTextButton() razeCityButton.labelCell.pad(10f) razeCityButton.onClick { city.isBeingRazed = true; update() } - if (!canChangeState || city.isOriginalCapital) + if (!canChangeState || !city.canBeDestroyed()) razeCityButton.disable() razeCityButtonHolder.add(razeCityButton).colspan(cityPickerTable.columns) diff --git a/core/src/com/unciv/ui/pickerscreens/FoundReligionPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/FoundReligionPickerScreen.kt new file mode 100644 index 0000000000..7832738e56 --- /dev/null +++ b/core/src/com/unciv/ui/pickerscreens/FoundReligionPickerScreen.kt @@ -0,0 +1,99 @@ +package com.unciv.ui.pickerscreens + +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.scenes.scene2d.ui.* +import com.badlogic.gdx.utils.Align +import com.unciv.UncivGame +import com.unciv.logic.GameInfo +import com.unciv.logic.civilization.CivilizationInfo +import com.unciv.models.UncivSound +import com.unciv.models.ruleset.Belief +import com.unciv.models.translations.tr +import com.unciv.ui.utils.* +import kotlin.math.max + +class FoundReligionPickerScreen ( + private val choosingCiv: CivilizationInfo, + private val gameInfo: GameInfo +): PickerScreen() { + + // Roughly follows the layout of the original (although I suck at UI designing, so please improve this) + private val topReligionIcons = Table() // Top of the layout, contains icons for religions + private val leftChosenBeliefs: ScrollPane // Left middle part, contains buttons to select the types of beliefs to choose + private val rightBeliefsToChoose: ScrollPane // Right middle part, contains the beliefs to choose + + private val middlePanes = Table() + + private var previouslySelectedIcon: Button? = null + private var iconName: String? = null + private var religionName: String? = null + private var chosenFounderBelief: Belief? = null + private var chosenFollowerBelief: Belief? = null + + init { + closeButton.isVisible = true + setDefaultCloseAction() + + setupReligionIcons() + + leftChosenBeliefs = ScrollPane(Table()) + rightBeliefsToChoose = ScrollPane(Table()) + + middlePanes.add(leftChosenBeliefs) + middlePanes.addSeparatorVertical() + middlePanes.add(rightBeliefsToChoose) + + topTable.add(topReligionIcons).row() + // commented out, as the middle panes will always be empty for now, and this will create a random line otherwise + // topTable.addSeparator() + topTable.add(middlePanes) + + rightSideButton.label = "Choose a religion".toLabel() + rightSideButton.onClick(UncivSound.Choir) { + choosingCiv.religionManager.foundReligion(iconName!!, religionName!!, "", "", /**chosenFollowerBelief!!.name, chosenFounderBelief!!.name*/) + UncivGame.Current.setWorldScreen() + } + } + + private fun checkAndEnableRightSideButton() { + if (religionName == null) return + // check if founder belief chosen + // check if follower belief chosen + rightSideButton.enable() + } + + private fun setupReligionIcons() { + topReligionIcons.clear() + + // This should later be replaced with a user-modifiable text field, but not in this PR + val descriptionLabel = "Choose an Icon and name for your Religion".toLabel() + + val iconsTable = Table() + iconsTable.align(Align.center) + for (religionName in gameInfo.ruleSet.religions) { + if (gameInfo.religions.keys.any { it == religionName }) continue + val image = ImageGetter.getReligionIcon(religionName) + image.color = Color.BLACK + val icon = image.surroundWithCircle(60f) + val button = Button(icon, skin) + val translatedReligionName = religionName.tr() + button.onClick { + if (previouslySelectedIcon != null) { + previouslySelectedIcon!!.enable() + } + iconName = religionName + this.religionName = religionName + previouslySelectedIcon = button + button.disable() + descriptionLabel.setText(translatedReligionName) + rightSideButton.label = "Found [$translatedReligionName]".toLabel() + checkAndEnableRightSideButton() + } + if (religionName == this.religionName) button.disable() + iconsTable.add(button).pad(5f) + } + iconsTable.row() + topReligionIcons.add(iconsTable).padBottom(10f).row() + topReligionIcons.add(descriptionLabel).center() + } +} \ No newline at end of file diff --git a/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt index 50071b4039..57bf560c61 100644 --- a/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt @@ -12,7 +12,7 @@ open class PickerScreen(val disableScroll: Boolean = false) : CameraStageBaseScr protected var descriptionLabel: Label protected var rightSideGroup = VerticalGroup() protected var rightSideButton: TextButton - private var screenSplit = 0.85f + protected var screenSplit = 0.85f /** * The table displaying the choices from which to pick (usually). diff --git a/core/src/com/unciv/ui/tilegroups/CityButton.kt b/core/src/com/unciv/ui/tilegroups/CityButton.kt index 6c2b568330..6e2abb0d55 100644 --- a/core/src/com/unciv/ui/tilegroups/CityButton.kt +++ b/core/src/com/unciv/ui/tilegroups/CityButton.kt @@ -251,6 +251,13 @@ class CityButton(val city: CityInfo, private val tileGroup: WorldTileGroup): Tab nationIcon.color = secondaryColor iconTable.add(nationIcon).size(20f) } + + val cityReligionName = city.religion.getMajorityReligion() + if (cityReligionName != null) { + val cityReligion = city.civInfo.gameInfo.religions[cityReligionName]!! + val religionImage = ImageGetter.getReligionIcon(cityReligion.iconName) + iconTable.add(religionImage).size(20f).padLeft(5f).fillY() + } iconTable.pack() cityStrengthLabel.x = label.x // so it'll be aligned right above the city name diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index df79968d2d..4fee44a599 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -56,8 +56,7 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo):CameraStageBaseScreen() { private fun updateLeftSideTable() { leftSideTable.clear() for (civ in viewingCiv.gameInfo.civilizations - .filterNot { it.isDefeated() || it == viewingCiv || it.isBarbarian() || it.isSpectator() }) { - if (!viewingCiv.knows(civ)) continue + .filterNot { it.isDefeated() || it == viewingCiv || it.isBarbarian() || it.isSpectator() || viewingCiv.knows(it) }) { val civIndicator = ImageGetter.getNationIndicator(civ.nation, 100f) diff --git a/core/src/com/unciv/ui/utils/ImageGetter.kt b/core/src/com/unciv/ui/utils/ImageGetter.kt index 3834dfe443..c178bd3518 100644 --- a/core/src/com/unciv/ui/utils/ImageGetter.kt +++ b/core/src/com/unciv/ui/utils/ImageGetter.kt @@ -287,6 +287,10 @@ object ImageGetter { } return circle } + + fun getReligionIcon(iconName: String): Image { + return getImage("ReligionIcons/$iconName") + } fun getBlue() = Color(0x004085bf) diff --git a/core/src/com/unciv/ui/worldscreen/AlertPopup.kt b/core/src/com/unciv/ui/worldscreen/AlertPopup.kt index 1f8b34804e..aaab7f9d0a 100644 --- a/core/src/com/unciv/ui/worldscreen/AlertPopup.kt +++ b/core/src/com/unciv/ui/worldscreen/AlertPopup.kt @@ -142,7 +142,7 @@ class AlertPopup(val worldScreen: WorldScreen, val popupAlert: PopupAlert): Popu close() } add("Raze".toTextButton().apply { - if (city.isOriginalCapital) disable() + if (!city.canBeDestroyed()) disable() else { onClick(function = razeAction) keyPressDispatcher['r'] = razeAction diff --git a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt index ea7bd13b7f..68a7633653 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt +++ b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt @@ -19,6 +19,7 @@ import com.unciv.UncivGame import com.unciv.logic.GameInfo import com.unciv.logic.GameSaver import com.unciv.logic.civilization.CivilizationInfo +import com.unciv.logic.civilization.ReligionState import com.unciv.logic.civilization.diplomacy.DiplomaticStatus import com.unciv.models.Tutorial import com.unciv.models.UncivSound @@ -697,6 +698,11 @@ class WorldScreen(val gameInfo: GameInfo, val viewingCiv:CivilizationInfo) : Cam NextTurnAction("Found Pantheon", Color.WHITE) { game.setScreen(PantheonPickerScreen(viewingCiv, gameInfo)) } + + viewingCiv.religionManager.religionState == ReligionState.FoundingReligion -> + NextTurnAction("Found Religion", Color.WHITE) { + game.setScreen(FoundReligionPickerScreen(viewingCiv, gameInfo)) + } else -> NextTurnAction("${Fonts.turn}{Next turn}", Color.WHITE) { diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt index 688a6def13..626188ff46 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt @@ -63,6 +63,7 @@ object UnitActions { // addCreateWaterImprovements(unit, actionList) addGreatPersonActions(unit, actionList, tile) + addFoundReligionAction(unit, actionList, tile) addSpreadReligionActions(unit, actionList, tile) actionList += getImprovementConstructionActions(unit, tile) addDisbandAction(actionList, unit, worldScreen) @@ -372,7 +373,8 @@ object UnitActions { unit.civInfo.tech.addScience(unit.civInfo.tech.getScienceFromGreatScientist()) addGoldPerGreatPersonUsage(unit.civInfo) unit.destroy() - }.takeIf { unit.civInfo.tech.currentTechnologyName() != null }) + }.takeIf { unit.civInfo.tech.currentTechnologyName() != null } + ) } "Can start an []-turn golden age" -> { val turnsToGoldenAge = unique.params[0].toInt() @@ -382,7 +384,8 @@ object UnitActions { unit.civInfo.goldenAges.enterGoldenAge(turnsToGoldenAge) addGoldPerGreatPersonUsage(unit.civInfo) unit.destroy() - }.takeIf { unit.currentTile.getOwner() != null && unit.currentTile.getOwner() == unit.civInfo }) + }.takeIf { unit.currentTile.getOwner() != null && unit.currentTile.getOwner() == unit.civInfo } + ) } "Can speed up construction of a wonder" -> { val canHurryWonder = if (!tile.isCityCenter()) false @@ -400,7 +403,8 @@ object UnitActions { } addGoldPerGreatPersonUsage(unit.civInfo) unit.destroy() - }.takeIf { canHurryWonder }) + }.takeIf { canHurryWonder } + ) } "Can undertake a trade mission with City-State, giving a large sum of gold and [] Influence" -> { val canConductTradeMission = tile.owningCity?.civInfo?.isCityState() == true @@ -419,16 +423,30 @@ object UnitActions { tile.owningCity!!.civInfo.civName, NotificationIcon.Gold, NotificationIcon.Culture) addGoldPerGreatPersonUsage(unit.civInfo) unit.destroy() - }.takeIf { canConductTradeMission }) + }.takeIf { canConductTradeMission } + ) } } } + private fun addFoundReligionAction(unit: MapUnit, actionList: ArrayList, tile: TileInfo) { + if (!unit.hasUnique("May found a religion")) return // should later also include enhance religion + if (!unit.civInfo.religionManager.mayUseGreatProphetAtAll(unit)) return + actionList += UnitAction(UnitActionType.FoundReligion, + uncivSound = UncivSound.Choir, + action = { + addGoldPerGreatPersonUsage(unit.civInfo) + unit.civInfo.religionManager.useGreatProphet(unit) + unit.destroy() + }.takeIf { unit.civInfo.religionManager.mayUseGreatProphetNow(unit) } + ) + } + private fun addSpreadReligionActions(unit: MapUnit, actionList: ArrayList, tile: TileInfo) { if (!unit.hasUnique("Can spread religion [] times")) return if (unit.religion == null) return val maxReligionSpreads = unit.maxReligionSpreads() - if (!unit.abilityUsedCount.containsKey("Religion Spread")) return // This should be impossible anways, but just in case + if (!unit.abilityUsedCount.containsKey("Religion Spread")) return // This should be impossible anyways, but just in case if (maxReligionSpreads <= unit.abilityUsedCount["Religion Spread"]!!) return val city = tile.getCity() actionList += UnitAction(UnitActionType.SpreadReligion, diff --git a/docs/Credits.md b/docs/Credits.md index c0d01422d8..a84b36a2d7 100644 --- a/docs/Credits.md +++ b/docs/Credits.md @@ -178,6 +178,7 @@ Unless otherwise specified, all the following are from [the Noun Project](https: * [Fort](https://thenounproject.com/term/fort/1697645/) By Adrien Coquet * [Citadel](https://thenounproject.com/term/fort/1697646/) By Adrien Coquet * [Village](https://thenounproject.com/search/?q=city+center&i=476338) by Andrey Vasiliev +* [pumping station](https://thenounproject.com/search/?q=dike&i=555172) by Peter van Driel for Polder ## Buildings @@ -551,6 +552,14 @@ Unless otherwise specified, all the following are from [the Noun Project](https: * [Anchor](https://thenounproject.com/term/anchor/676586) by Gregor Cresnar for Amphibious * [survival knife](https://thenounproject.com/search/?q=survival&i=2663392) by b faris for Survivalism +## Religions +* [Lightning Bolt](https://thenounproject.com/search/?q=lightning+bolt&i=154820) by sian huxtable for Pantheon +* [Christianity](https://thenounproject.com/search/?q=christianity&i=181) by Public Domain Nouns for Christianity +* [Islam](https://thenounproject.com/search/?q=Islam&i=2431350) by Muhammed Riza for Islam +* [taoism](https://thenounproject.com/search/?q=Taoism&i=740812) by parkjisun for Taosim +* [Buddhism](https://thenounproject.com/search/?q=buddhism&i=38764) by Julio Yanes for Buddhism +* [Hinduism](https://thenounproject.com/search/?q=hinduism&i=20383) by Mugda Damle for Hinduism + ## Others * [Circle](https://thenounproject.com/term/circle/1841891/) By Aybige