diff --git a/android/Images/OtherIcons/Wonders.png b/android/Images/OtherIcons/Wonders.png new file mode 100644 index 0000000000..bbe5b9b30e Binary files /dev/null and b/android/Images/OtherIcons/Wonders.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index 36c1ae6c12..888ee7ccea 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -20,42 +20,42 @@ EmojiIcons/Faith index: -1 EmojiIcons/Food rotate: false - xy: 818, 856 + xy: 926, 964 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Gold rotate: false - xy: 710, 698 + xy: 710, 640 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Happiness rotate: false - xy: 710, 524 + xy: 710, 466 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Production rotate: false - xy: 768, 566 + xy: 934, 790 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Science rotate: false - xy: 826, 682 + xy: 1888, 1322 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Turn rotate: false - xy: 420, 14 + xy: 768, 342 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -454,7 +454,7 @@ NationIcons/The Ottomans index: -1 OtherIcons/Aircraft rotate: false - xy: 976, 1130 + xy: 1084, 1238 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -468,14 +468,14 @@ OtherIcons/ArrowLeft index: -1 OtherIcons/ArrowRight rotate: false - xy: 760, 856 + xy: 868, 964 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Movement rotate: false - xy: 760, 856 + xy: 868, 964 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -839,14 +839,21 @@ OtherIcons/Triangle index: -1 OtherIcons/Up rotate: false - xy: 594, 14 + xy: 768, 168 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 +OtherIcons/Wonders + rotate: false + xy: 652, 756 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 OtherIcons/whiteDot rotate: false - xy: 964, 793 + xy: 1202, 971 size: 1, 1 orig: 1, 1 offset: 0, 0 @@ -860,7 +867,7 @@ PolicyIcons/Aesthetics index: -1 PolicyIcons/Aristocracy rotate: false - xy: 652, 698 + xy: 760, 806 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -930,42 +937,42 @@ PolicyIcons/Fascism index: -1 PolicyIcons/Free Religion rotate: false - xy: 926, 1022 + xy: 1034, 1130 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Speech rotate: false - xy: 1034, 1130 + xy: 1142, 1238 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Thought rotate: false - xy: 1142, 1238 + xy: 710, 698 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Humanism rotate: false - xy: 710, 408 + xy: 710, 350 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Landed Elite rotate: false - xy: 710, 176 + xy: 710, 118 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Legalism rotate: false - xy: 710, 118 + xy: 818, 806 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1063,133 +1070,133 @@ PolicyIcons/Philantropy index: -1 PolicyIcons/Planned Economy rotate: false - xy: 768, 740 + xy: 876, 848 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Police State rotate: false - xy: 768, 682 + xy: 934, 848 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Populism rotate: false - xy: 768, 624 + xy: 876, 790 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Professional Army rotate: false - xy: 768, 508 + xy: 1772, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Protectionism rotate: false - xy: 768, 450 + xy: 1830, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Reformation rotate: false - xy: 768, 276 + xy: 536, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Representation rotate: false - xy: 768, 160 + xy: 1714, 1294 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Republic rotate: false - xy: 768, 102 + xy: 1772, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scholasticism rotate: false - xy: 826, 740 + xy: 1830, 1288 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scientific Revolution rotate: false - xy: 826, 624 + xy: 1888, 1264 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Secularism rotate: false - xy: 826, 508 + xy: 1946, 1240 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Socialism rotate: false - xy: 826, 334 + xy: 1150, 1180 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Sovereignty rotate: false - xy: 826, 218 + xy: 768, 748 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Theocracy rotate: false - xy: 826, 44 + xy: 768, 516 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Total War rotate: false - xy: 1772, 1346 + xy: 768, 458 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Trade Unions rotate: false - xy: 1830, 1346 + xy: 768, 400 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/United Front rotate: false - xy: 478, 14 + xy: 768, 284 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Universal Suffrage rotate: false - xy: 536, 14 + xy: 768, 226 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Warrior Code rotate: false - xy: 1772, 1288 + xy: 768, 52 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1308,7 +1315,7 @@ ReligionIcons/Tengriism index: -1 ReligionIcons/Zoroastrianism rotate: false - xy: 652, 756 + xy: 760, 864 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1609,7 +1616,7 @@ StatIcons/Happiness index: -1 StatIcons/InterceptRange rotate: false - xy: 710, 292 + xy: 710, 234 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1637,14 +1644,14 @@ StatIcons/Production index: -1 StatIcons/Range rotate: false - xy: 768, 392 + xy: 420, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/RangedStrength rotate: false - xy: 768, 334 + xy: 478, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1679,7 +1686,7 @@ StatIcons/Specialist index: -1 StatIcons/Strength rotate: false - xy: 826, 160 + xy: 768, 690 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1798,21 +1805,21 @@ TileSets/Default/Road index: -1 TileSets/Default/Tiles/River-Bottom rotate: false - xy: 964, 469 + xy: 1640, 1164 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-BottomLeft rotate: false - xy: 964, 397 + xy: 1248, 1202 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/Default/Tiles/River-BottomRight rotate: false - xy: 964, 325 + xy: 1208, 1130 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -1847,14 +1854,14 @@ TileSets/FantasyHex/Road index: -1 TileSets/FantasyHex/Tiles/Academy rotate: false - xy: 868, 978 + xy: 397, 1728 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Academy-Snow rotate: false - xy: 976, 1087 + xy: 1192, 1303 size: 32, 35 orig: 32, 35 offset: 0, 0 @@ -1868,7 +1875,7 @@ TileSets/FantasyHex/Tiles/Aluminum index: -1 TileSets/FantasyHex/Tiles/Ancient ruins rotate: false - xy: 397, 1736 + xy: 652, 24 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -1882,21 +1889,21 @@ TileSets/FantasyHex/Tiles/Ancient ruins-Jungle index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Sand rotate: false - xy: 1192, 1310 + xy: 984, 978 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins-Snow rotate: false - xy: 908, 986 + xy: 1232, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ancient ruins2 rotate: false - xy: 652, 24 + xy: 1042, 1094 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -1910,1099 +1917,1099 @@ TileSets/FantasyHex/Tiles/Atoll index: -1 TileSets/FantasyHex/Tiles/Bananas rotate: false - xy: 1352, 1310 + xy: 326, 8 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barbarian encampment rotate: false - xy: 1392, 1310 + xy: 1312, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barbarian encampment-Snow rotate: false - xy: 1432, 1309 + xy: 826, 660 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Barringer Crater rotate: false - xy: 1472, 1310 + xy: 366, 8 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Bison rotate: false - xy: 1888, 1286 + xy: 826, 552 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Bison+Camp rotate: false - xy: 948, 986 + xy: 1472, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cattle rotate: false - xy: 956, 914 + xy: 826, 293 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cattle+Pasture rotate: false - xy: 956, 874 + xy: 826, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cerro de Potosi rotate: false - xy: 1200, 1274 + xy: 826, 181 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citadel rotate: false - xy: 1280, 1267 + xy: 826, 66 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citadel-Snow rotate: false - xy: 1240, 1236 + xy: 992, 868 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citrus rotate: false - xy: 1320, 1274 + xy: 992, 832 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Citrus+Plantation rotate: false - xy: 1360, 1274 + xy: 992, 796 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center rotate: false - xy: 1280, 1224 + xy: 2004, 1313 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Ancient era rotate: false - xy: 1320, 1234 + xy: 2004, 1273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Atomic era rotate: false - xy: 1360, 1232 + xy: 2004, 1231 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Classical era rotate: false - xy: 984, 1047 + xy: 866, 750 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Future era rotate: false - xy: 1024, 1052 + xy: 866, 708 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Industrial era rotate: false - xy: 1064, 1053 + xy: 906, 749 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Information era rotate: false - xy: 1092, 1157 + xy: 866, 664 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Medieval era rotate: false - xy: 1132, 1162 + xy: 906, 709 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Modern era rotate: false - xy: 1172, 1160 + xy: 946, 748 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City center-Renaissance era rotate: false - xy: 732, 4 + xy: 866, 624 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/City ruins rotate: false - xy: 772, 8 + xy: 906, 673 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Coal rotate: false - xy: 852, 8 + xy: 866, 588 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Coast rotate: false - xy: 916, 806 + xy: 906, 637 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cocoa rotate: false - xy: 956, 802 + xy: 946, 676 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cocoa+Plantation rotate: false - xy: 437, 1736 + xy: 866, 552 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Copper rotate: false - xy: 1028, 1016 + xy: 946, 603 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Cotton rotate: false - xy: 1132, 1126 + xy: 906, 528 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Crab rotate: false - xy: 1172, 1124 + xy: 946, 567 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Customs house rotate: false - xy: 1068, 974 + xy: 906, 485 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Deer rotate: false - xy: 1400, 1273 + xy: 946, 531 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Deer+Camp rotate: false - xy: 1400, 1237 + xy: 866, 408 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert rotate: false - xy: 1400, 1201 + xy: 906, 449 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert+Farm rotate: false - xy: 1440, 1273 + xy: 946, 495 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Desert+Flood plains+Farm rotate: false - xy: 1440, 1237 + xy: 866, 372 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Dyes rotate: false - xy: 1520, 1274 + xy: 866, 336 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Dyes+Plantation rotate: false - xy: 1480, 1238 + xy: 906, 377 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/El Dorado rotate: false - xy: 1480, 1201 + xy: 946, 422 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fallout rotate: false - xy: 1520, 1231 + xy: 866, 293 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fish rotate: false - xy: 1560, 1274 + xy: 906, 341 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fishing Boats rotate: false - xy: 1600, 1274 + xy: 946, 386 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Flood plains rotate: false - xy: 1560, 1238 + xy: 866, 257 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Forest rotate: false - xy: 1600, 1234 + xy: 946, 346 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fort rotate: false - xy: 1640, 1233 + xy: 866, 216 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Fountain of Youth rotate: false - xy: 1520, 1191 + xy: 906, 265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Furs rotate: false - xy: 1600, 1198 + xy: 866, 180 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Furs+Camp rotate: false - xy: 1640, 1197 + xy: 906, 229 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Gems rotate: false - xy: 1400, 1165 + xy: 946, 238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Gold Ore rotate: false - xy: 1480, 1165 + xy: 906, 157 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grand Mesa rotate: false - xy: 1520, 1151 + xy: 946, 198 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland rotate: false - xy: 1560, 1130 + xy: 866, 69 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Farm rotate: false - xy: 1600, 1126 + xy: 906, 121 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Camp rotate: false - xy: 1640, 1122 + xy: 946, 159 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Deer+Camp rotate: false - xy: 1480, 1126 + xy: 906, 82 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Furs+Camp rotate: false - xy: 1520, 1112 + xy: 946, 120 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Lumber mill rotate: false - xy: 1560, 1091 + xy: 946, 81 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Forest+Truffles+Camp rotate: false - xy: 1600, 1087 + xy: 1082, 1083 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Farm rotate: false - xy: 1640, 1086 + xy: 1082, 1047 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Camp rotate: false - xy: 996, 944 + xy: 1122, 1086 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Lumber mill rotate: false - xy: 996, 908 + xy: 1122, 1050 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Hill+Forest+Trading post rotate: false - xy: 996, 872 + xy: 1162, 1086 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Grassland+Jungle+Trading post rotate: false - xy: 996, 832 + xy: 1162, 1046 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/GrasslandForest rotate: false - xy: 996, 793 + xy: 1082, 1008 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Great Barrier Reef rotate: false - xy: 1036, 863 + xy: 1042, 986 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Hill rotate: false - xy: 1720, 1218 + xy: 1520, 1270 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillForest+Lumber mill rotate: false - xy: 1680, 1150 + xy: 1560, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillMarbleQuarry rotate: false - xy: 1720, 1182 + xy: 1600, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillMine rotate: false - xy: 1680, 1114 + xy: 1640, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/HillStoneQuarry rotate: false - xy: 1720, 1146 + xy: 1024, 950 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Holy site rotate: false - xy: 1760, 1244 + xy: 1024, 906 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Horses rotate: false - xy: 1800, 1216 + xy: 1064, 936 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Horses+Pasture rotate: false - xy: 1760, 1168 + xy: 437, 1732 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ice rotate: false - xy: 1840, 1180 + xy: 906, 46 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Incense rotate: false - xy: 1800, 1143 + xy: 1144, 935 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Incense+Plantation rotate: false - xy: 1840, 1144 + xy: 906, 10 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Iron rotate: false - xy: 1760, 1096 + xy: 1240, 1238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ivory rotate: false - xy: 1840, 1108 + xy: 1320, 1238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ivory+Camp rotate: false - xy: 1880, 1250 + xy: 1360, 1238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Jungle rotate: false - xy: 1880, 1138 + xy: 1480, 1234 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Krakatoa rotate: false - xy: 1920, 1172 + xy: 1640, 1236 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Lakes rotate: false - xy: 1920, 1100 + xy: 1032, 762 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Landmark rotate: false - xy: 1840, 1064 + xy: 986, 644 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Manufactory rotate: false - xy: 1960, 1202 + xy: 986, 345 size: 32, 39 orig: 32, 39 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Marble rotate: false - xy: 1960, 1130 + xy: 986, 273 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Marsh rotate: false - xy: 1960, 1057 + xy: 986, 200 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mine rotate: false - xy: 1960, 985 + xy: 986, 56 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Moai rotate: false - xy: 884, 661 + xy: 1072, 827 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mount Fuji rotate: false - xy: 884, 515 + xy: 1026, 688 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mount Kailash rotate: false - xy: 884, 475 + xy: 1026, 648 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mount Sinai rotate: false - xy: 884, 435 + xy: 1026, 608 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Mountain rotate: false - xy: 884, 391 + xy: 1026, 564 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oasis rotate: false - xy: 884, 139 + xy: 1026, 312 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Ocean rotate: false - xy: 884, 103 + xy: 1026, 276 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Offshore Platform rotate: false - xy: 884, 67 + xy: 1026, 240 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oil rotate: false - xy: 892, 31 + xy: 1026, 204 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Oil well rotate: false - xy: 924, 766 + xy: 1026, 168 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Old Faithful rotate: false - xy: 924, 726 + xy: 1026, 128 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Pasture rotate: false - xy: 924, 614 + xy: 1026, 16 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Pearls rotate: false - xy: 924, 542 + xy: 1066, 683 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains rotate: false - xy: 924, 398 + xy: 1066, 539 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Farm rotate: false - xy: 924, 362 + xy: 1066, 503 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Forest+Camp rotate: false - xy: 924, 322 + xy: 1066, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Forest+Lumber mill rotate: false - xy: 924, 282 + xy: 1066, 423 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plains+Jungle+Trading post rotate: false - xy: 924, 242 + xy: 1066, 383 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/PlainsForest rotate: false - xy: 924, 202 + xy: 1066, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/PlainsJungle rotate: false - xy: 924, 162 + xy: 1066, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation rotate: false - xy: 924, 126 + xy: 1066, 267 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation+Bananas rotate: false - xy: 924, 90 + xy: 1066, 231 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Plantation+Cotton rotate: false - xy: 932, 54 + xy: 1066, 195 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Polder rotate: false - xy: 932, 17 + xy: 1066, 158 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry rotate: false - xy: 964, 685 + xy: 1066, 50 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry+Marble rotate: false - xy: 964, 649 + xy: 1066, 14 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Quarry+Stone rotate: false - xy: 964, 613 + xy: 1600, 1202 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-Bottom rotate: false - xy: 964, 505 + xy: 1600, 1166 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomLeft rotate: false - xy: 964, 433 + xy: 1208, 1202 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomRight rotate: false - xy: 964, 361 + xy: 1208, 1166 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Rock of Gibraltar rotate: false - xy: 964, 285 + xy: 1248, 1162 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Salt rotate: false - xy: 964, 213 + xy: 1328, 1202 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sheep rotate: false - xy: 972, 32 + xy: 1368, 1166 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sheep+Pasture rotate: false - xy: 1004, 751 + xy: 1408, 1161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silk rotate: false - xy: 1004, 678 + xy: 1328, 1130 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silk+Plantation rotate: false - xy: 1044, 719 + xy: 1368, 1130 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Silver rotate: false - xy: 1004, 642 + xy: 1408, 1125 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Snow rotate: false - xy: 1044, 645 + xy: 1288, 1094 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Snow+Farm rotate: false - xy: 1004, 570 + xy: 1328, 1094 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Spices rotate: false - xy: 1004, 534 + xy: 1408, 1089 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Spices+Plantation rotate: false - xy: 1044, 573 + xy: 1202, 1056 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sri Pada rotate: false - xy: 1004, 494 + xy: 1202, 1016 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Stone rotate: false - xy: 1044, 537 + xy: 1202, 980 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sugar rotate: false - xy: 1004, 458 + xy: 1242, 1053 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Sugar+Plantation rotate: false - xy: 1044, 501 + xy: 1242, 1017 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Terrace farm rotate: false - xy: 1044, 429 + xy: 1368, 1058 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Trading post rotate: false - xy: 1044, 393 + xy: 1282, 1022 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Truffles rotate: false - xy: 1004, 278 + xy: 1322, 986 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Truffles+Camp rotate: false - xy: 1044, 321 + xy: 1362, 1022 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra rotate: false - xy: 1004, 242 + xy: 1362, 986 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Farm rotate: false - xy: 1044, 285 + xy: 1402, 1017 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Camp rotate: false - xy: 1004, 202 + xy: 1402, 977 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Camp+Furs rotate: false - xy: 1044, 245 + xy: 1224, 940 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Deer+Camp rotate: false - xy: 1004, 162 + xy: 1264, 941 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Lumber mill rotate: false - xy: 1044, 205 + xy: 1304, 946 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Tundra+Forest+Truffles+Camp rotate: false - xy: 1004, 122 + xy: 1344, 946 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/TundraForest rotate: false - xy: 1044, 165 + xy: 1384, 937 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Uluru rotate: false - xy: 1084, 751 + xy: 1112, 895 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Uranium rotate: false - xy: 1084, 715 + xy: 1112, 859 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Whales rotate: false - xy: 1084, 537 + xy: 1152, 827 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Whales+Fishing Boats rotate: false - xy: 1084, 501 + xy: 1112, 753 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wheat rotate: false - xy: 1084, 465 + xy: 1152, 791 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wine rotate: false - xy: 1084, 429 + xy: 1152, 755 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/Wine+Plantation rotate: false - xy: 1084, 393 + xy: 1112, 717 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/TopBorder rotate: false - xy: 1004, 350 + xy: 1408, 1053 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/African Forest Elephant rotate: false - xy: 1084, 1201 + xy: 826, 769 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Anti-Aircraft Gun rotate: false - xy: 1016, 1094 + xy: 826, 733 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Anti-Tank Gun rotate: false - xy: 1124, 1202 + xy: 692, 24 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Archaeologist rotate: false - xy: 692, 24 + xy: 1042, 1058 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -3016,210 +3023,210 @@ TileSets/FantasyHex/Units/Archer index: -1 TileSets/FantasyHex/Units/Artillery rotate: false - xy: 1232, 1310 + xy: 984, 942 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Atlatlist rotate: false - xy: 326, 8 + xy: 984, 906 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Axe Thrower rotate: false - xy: 366, 8 + xy: 826, 697 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ballista rotate: false - xy: 1312, 1310 + xy: 1042, 1022 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Battering Ram rotate: false - xy: 1512, 1310 + xy: 1352, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Battleship rotate: false - xy: 1552, 1310 + xy: 826, 624 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Bazooka rotate: false - xy: 1592, 1310 + xy: 1392, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Berber Cavalry rotate: false - xy: 1632, 1310 + xy: 826, 588 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Berserker rotate: false - xy: 1672, 1310 + xy: 1432, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Bowman rotate: false - xy: 1056, 1094 + xy: 826, 516 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Brute rotate: false - xy: 1164, 1202 + xy: 1512, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Camel Archer rotate: false - xy: 876, 941 + xy: 826, 479 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cannon rotate: false - xy: 876, 905 + xy: 1552, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Caravan rotate: false - xy: 876, 863 + xy: 826, 437 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Caravel rotate: false - xy: 876, 827 + xy: 1592, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cargo Ship rotate: false - xy: 916, 950 + xy: 826, 401 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Carolean rotate: false - xy: 916, 914 + xy: 1632, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Carrier rotate: false - xy: 916, 878 + xy: 826, 365 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cataphract rotate: false - xy: 916, 842 + xy: 1672, 1310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Catapult rotate: false - xy: 956, 950 + xy: 826, 329 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cavalry rotate: false - xy: 956, 838 + xy: 826, 217 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Chariot Archer rotate: false - xy: 1200, 1238 + xy: 826, 145 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Chu-Ko-Nu rotate: false - xy: 1240, 1274 + xy: 826, 109 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/CivilianLandUnit rotate: false - xy: 812, 8 + xy: 946, 712 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Comanche Rider rotate: false - xy: 1928, 1285 + xy: 906, 600 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Companion Cavalry rotate: false - xy: 1320, 1197 + xy: 946, 639 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Composite Bowman rotate: false - xy: 1360, 1196 + xy: 866, 516 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Conquistador rotate: false - xy: 988, 1011 + xy: 906, 564 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Cossack rotate: false - xy: 1068, 1017 + xy: 866, 480 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Crossbowman rotate: false - xy: 1028, 980 + xy: 866, 444 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -3233,588 +3240,588 @@ TileSets/FantasyHex/Units/Cruiser index: -1 TileSets/FantasyHex/Units/Destroyer rotate: false - xy: 1440, 1201 + xy: 906, 413 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Dromon rotate: false - xy: 1480, 1274 + xy: 946, 459 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Foreign Legion rotate: false - xy: 1640, 1274 + xy: 906, 305 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Frigate rotate: false - xy: 1560, 1202 + xy: 946, 310 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Galleass rotate: false - xy: 1560, 1166 + xy: 946, 274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Galley rotate: false - xy: 1600, 1162 + xy: 866, 144 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Gatling Gun rotate: false - xy: 1640, 1161 + xy: 906, 193 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Giant Death Robot rotate: false - xy: 1440, 1162 + xy: 866, 105 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Admiral rotate: false - xy: 1036, 935 + xy: 1122, 1011 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Artist rotate: false - xy: 1036, 899 + xy: 1162, 1010 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Engineer rotate: false - xy: 1036, 827 + xy: 1082, 972 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Galleass rotate: false - xy: 1036, 791 + xy: 1122, 975 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great General rotate: false - xy: 1076, 935 + xy: 1162, 971 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Merchant rotate: false - xy: 1076, 899 + xy: 1200, 1267 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Musician rotate: false - xy: 1076, 863 + xy: 1240, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Prophet rotate: false - xy: 1076, 827 + xy: 1280, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Scientist rotate: false - xy: 1076, 791 + xy: 1320, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great War Infantry rotate: false - xy: 1680, 1258 + xy: 1360, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Great Writer rotate: false - xy: 1720, 1258 + xy: 1400, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hakkapeliitta rotate: false - xy: 1680, 1222 + xy: 1440, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Helicopter Gunship rotate: false - xy: 1680, 1186 + xy: 1480, 1274 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hoplite rotate: false - xy: 1800, 1252 + xy: 1032, 870 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Horse Archer rotate: false - xy: 1760, 1208 + xy: 1032, 834 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Horseman rotate: false - xy: 1840, 1252 + xy: 1032, 798 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hussar rotate: false - xy: 1800, 1179 + xy: 826, 29 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Hwach'a rotate: false - xy: 1840, 1216 + xy: 866, 33 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Immortal rotate: false - xy: 1720, 1110 + xy: 946, 45 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Impi rotate: false - xy: 1760, 1132 + xy: 1104, 936 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Infantry rotate: false - xy: 1680, 1078 + xy: 946, 9 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Inquisitor rotate: false - xy: 1720, 1074 + xy: 1184, 935 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ironclad rotate: false - xy: 1800, 1107 + xy: 1280, 1238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Jaguar rotate: false - xy: 1880, 1214 + xy: 1400, 1238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Janissary rotate: false - xy: 1880, 1178 + xy: 1440, 1238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Keshik rotate: false - xy: 1880, 1102 + xy: 1520, 1234 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Khan rotate: false - xy: 1920, 1246 + xy: 1560, 1235 size: 32, 31 orig: 32, 31 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Knight rotate: false - xy: 1920, 1210 + xy: 1600, 1238 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Kris Swordsman rotate: false - xy: 1920, 1136 + xy: 992, 760 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Lancer rotate: false - xy: 1760, 1060 + xy: 986, 724 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/LandUnit rotate: false - xy: 1800, 1071 + xy: 986, 688 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Landship rotate: false - xy: 1880, 1066 + xy: 986, 608 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Landsknecht rotate: false - xy: 1920, 1064 + xy: 986, 572 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Legion rotate: false - xy: 1800, 1035 + xy: 986, 536 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Longbowman rotate: false - xy: 1840, 1028 + xy: 986, 500 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Longswordsman rotate: false - xy: 1880, 1030 + xy: 986, 464 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Machine Gun rotate: false - xy: 1920, 1028 + xy: 986, 428 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mandekalu Cavalry rotate: false - xy: 1960, 1249 + xy: 986, 392 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Maori Warrior rotate: false - xy: 1960, 1166 + xy: 986, 309 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Marine rotate: false - xy: 1960, 1094 + xy: 986, 237 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mechanized Infantry rotate: false - xy: 1960, 1021 + xy: 986, 164 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mehal Sefari rotate: false - xy: 1880, 994 + xy: 986, 128 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Merchant Of Venice rotate: false - xy: 1920, 992 + xy: 986, 92 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Minuteman rotate: false - xy: 884, 770 + xy: 986, 20 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Missile Cruiser rotate: false - xy: 884, 734 + xy: 1072, 900 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Missionary rotate: false - xy: 884, 698 + xy: 1072, 864 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mobile SAM rotate: false - xy: 884, 625 + xy: 1072, 791 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Modern Armor rotate: false - xy: 884, 589 + xy: 1072, 755 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Mohawk Warrior rotate: false - xy: 884, 553 + xy: 1032, 726 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Musketeer rotate: false - xy: 884, 355 + xy: 1026, 528 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Musketman rotate: false - xy: 884, 319 + xy: 1026, 492 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Naresuan's Elephant rotate: false - xy: 884, 283 + xy: 1026, 456 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Nau rotate: false - xy: 884, 247 + xy: 1026, 420 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Norwegian Ski Infantry rotate: false - xy: 884, 211 + xy: 1026, 384 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Nuclear Submarine rotate: false - xy: 884, 175 + xy: 1026, 348 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Panzer rotate: false - xy: 924, 690 + xy: 1026, 92 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Paratrooper rotate: false - xy: 924, 654 + xy: 1026, 56 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pathfinder rotate: false - xy: 924, 578 + xy: 1072, 719 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Persian Immortal rotate: false - xy: 924, 506 + xy: 1066, 647 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pictish Warrior rotate: false - xy: 924, 470 + xy: 1066, 611 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pikeman rotate: false - xy: 924, 434 + xy: 1066, 575 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Pracinha rotate: false - xy: 964, 757 + xy: 1066, 122 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Privateer rotate: false - xy: 964, 721 + xy: 1066, 86 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Quinquereme rotate: false - xy: 964, 577 + xy: 1560, 1199 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Rifleman rotate: false - xy: 964, 541 + xy: 1640, 1200 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Rocket Artillery rotate: false - xy: 964, 249 + xy: 1288, 1202 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Samurai rotate: false - xy: 964, 177 + xy: 1288, 1166 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Scout rotate: false - xy: 964, 141 + xy: 1368, 1202 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Sea Beggar rotate: false - xy: 964, 105 + xy: 1328, 1166 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Settler rotate: false - xy: 972, 68 + xy: 1408, 1201 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ship Of The Line rotate: false - xy: 1004, 714 + xy: 1248, 1125 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Ship of the Line rotate: false - xy: 1004, 714 + xy: 1248, 1125 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Siege Tower rotate: false - xy: 1044, 755 + xy: 1288, 1130 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Sipahi rotate: false - xy: 1044, 681 + xy: 1208, 1092 size: 32, 30 orig: 32, 30 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Slinger rotate: false - xy: 1004, 606 + xy: 1248, 1089 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Spearman rotate: false - xy: 1044, 609 + xy: 1368, 1094 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -3828,91 +3835,91 @@ TileSets/FantasyHex/Units/Submarine index: -1 TileSets/FantasyHex/Units/Swordsman rotate: false - xy: 1004, 422 + xy: 1242, 981 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Tank rotate: false - xy: 1044, 465 + xy: 1288, 1058 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Tercio rotate: false - xy: 1004, 386 + xy: 1328, 1058 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Trebuchet rotate: false - xy: 1004, 314 + xy: 1282, 986 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Trireme rotate: false - xy: 1044, 357 + xy: 1322, 1022 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Turtle Ship rotate: false - xy: 1044, 129 + xy: 1424, 941 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/War Chariot rotate: false - xy: 1084, 679 + xy: 1152, 899 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/War Elephant rotate: false - xy: 1084, 643 + xy: 1112, 823 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Warrior rotate: false - xy: 1084, 607 + xy: 1152, 863 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/WaterUnit rotate: false - xy: 1084, 573 + xy: 1112, 789 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Winged Hussar rotate: false - xy: 1084, 357 + xy: 1152, 719 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Work Boats rotate: false - xy: 1084, 321 + xy: 1106, 681 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Units/Worker rotate: false - xy: 1084, 285 + xy: 1106, 645 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -3940,42 +3947,42 @@ UnitPromotionIcons/Accuracy index: -1 UnitPromotionIcons/Air Repair rotate: false - xy: 760, 914 + xy: 868, 1022 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Air Targeting rotate: false - xy: 868, 1022 + xy: 976, 1130 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting rotate: false - xy: 868, 1022 + xy: 976, 1130 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Ambush rotate: false - xy: 1084, 1238 + xy: 1192, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Anti-Armor rotate: false - xy: 1084, 1238 + xy: 1192, 1346 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Amphibious rotate: false - xy: 1192, 1346 + xy: 652, 698 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -4017,7 +4024,7 @@ UnitPromotionIcons/Blitz index: -1 UnitPromotionIcons/Boarding Party rotate: false - xy: 760, 798 + xy: 868, 906 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -4087,42 +4094,42 @@ UnitPromotionIcons/Operational Range index: -1 UnitPromotionIcons/Flight Deck rotate: false - xy: 818, 914 + xy: 926, 1022 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Formation rotate: false - xy: 818, 798 + xy: 926, 906 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Great Generals rotate: false - xy: 710, 640 + xy: 710, 582 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Quick Study rotate: false - xy: 710, 640 + xy: 710, 582 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Haka War Dance rotate: false - xy: 710, 582 + xy: 710, 524 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Heal Instantly rotate: false - xy: 710, 466 + xy: 710, 408 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -4136,14 +4143,14 @@ UnitPromotionIcons/Ignore terrain cost index: -1 UnitPromotionIcons/Indirect Fire rotate: false - xy: 710, 350 + xy: 710, 292 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Interception rotate: false - xy: 710, 234 + xy: 710, 176 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -4185,77 +4192,77 @@ UnitPromotionIcons/Morale index: -1 UnitPromotionIcons/Rejuvenation rotate: false - xy: 768, 218 + xy: 594, 14 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting rotate: false - xy: 826, 566 + xy: 1946, 1298 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Sentry rotate: false - xy: 826, 566 + xy: 1946, 1298 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Shock rotate: false - xy: 826, 450 + xy: 1092, 1180 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Slinger Withdraw rotate: false - xy: 826, 392 + xy: 1092, 1122 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Sortie rotate: false - xy: 826, 276 + xy: 1150, 1122 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Supply rotate: false - xy: 826, 102 + xy: 768, 632 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Survivalism rotate: false - xy: 768, 44 + xy: 768, 574 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Volley rotate: false - xy: 1714, 1294 + xy: 768, 110 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack rotate: false - xy: 1830, 1288 + xy: 984, 1072 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 UnitPromotionIcons/Woodsman rotate: false - xy: 1888, 1322 + xy: 984, 1014 size: 50, 50 orig: 50, 50 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index 7f0f0dddcf..58efef1090 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index 83461589da..f2ce5c56bc 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -872,6 +872,16 @@ Known and defeated ([numberOfCivs]) = Tiles = Natural Wonders = Treasury deficit = +Unknown = +Not built = +Not found = +Known = +Owned = +Near [city] = +Somewhere around [city] = +Far away = +Status = +Location = # Victory diff --git a/core/src/com/unciv/ui/overviewscreen/EmpireOverviewScreen.kt b/core/src/com/unciv/ui/overviewscreen/EmpireOverviewScreen.kt index 8dede45016..5388b9a3e4 100644 --- a/core/src/com/unciv/ui/overviewscreen/EmpireOverviewScreen.kt +++ b/core/src/com/unciv/ui/overviewscreen/EmpireOverviewScreen.kt @@ -23,7 +23,7 @@ class EmpireOverviewScreen(private var viewingPlayer:CivilizationInfo, defaultPa // 50 normal button height + 2*10 topTable padding + 2 Separator + 2*5 centerTable padding // Since a resize recreates this screen this should be fine as a val internal val centerAreaHeight = stage.height - 82f - + private object ButtonDecorations { data class IconAndKey (val icon: String, val key: Char = Char.MIN_VALUE) val keyIconMap: HashMap = hashMapOf( @@ -33,7 +33,8 @@ class EmpireOverviewScreen(private var viewingPlayer:CivilizationInfo, defaultPa Pair("Units", IconAndKey("OtherIcons/Shield", 'U')), Pair("Diplomacy", IconAndKey("OtherIcons/DiplomacyW", 'D')), Pair("Resources", IconAndKey("StatIcons/Happiness", 'R')), - Pair("Religion", IconAndKey("StatIcons/Faith", 'F')) + Pair("Religion", IconAndKey("StatIcons/Faith", 'F')), + Pair("Wonders", IconAndKey("OtherIcons/Wonders", 'W')) ) } @@ -79,8 +80,8 @@ class EmpireOverviewScreen(private var viewingPlayer:CivilizationInfo, defaultPa else game.settings.lastOverviewPage onBackButtonClicked { game.setWorldScreen() } - - addCategory("Cities", CityOverviewTable(viewingPlayer, this), viewingPlayer.cities.none()) + + addCategory("Cities", CityOverviewTable(viewingPlayer, this), viewingPlayer.cities.isEmpty()) addCategory("Stats", StatsOverviewTable(viewingPlayer, this)) addCategory("Trades", TradesOverviewTable(viewingPlayer, this), viewingPlayer.diplomacy.values.all { it.trades.isEmpty() }) addCategory("Units", UnitOverviewTable(viewingPlayer, this), viewingPlayer.getCivUnits().none()) @@ -88,6 +89,7 @@ class EmpireOverviewScreen(private var viewingPlayer:CivilizationInfo, defaultPa addCategory("Resources", ResourcesOverviewTable(viewingPlayer, this), viewingPlayer.detailedCivResources.isEmpty()) if (viewingPlayer.gameInfo.isReligionEnabled()) addCategory("Religion", ReligionOverviewTable(viewingPlayer, this), viewingPlayer.gameInfo.religions.isEmpty()) + addCategory("Wonders", WonderOverviewTable(viewingPlayer, this), viewingPlayer.naturalWonders.isEmpty() && viewingPlayer.cities.isEmpty()) val closeButton = Constants.close.toTextButton().apply { setColor(0.75f, 0.1f, 0.1f, 1f) diff --git a/core/src/com/unciv/ui/overviewscreen/WonderOverviewTable.kt b/core/src/com/unciv/ui/overviewscreen/WonderOverviewTable.kt new file mode 100644 index 0000000000..8ff8ebb016 --- /dev/null +++ b/core/src/com/unciv/ui/overviewscreen/WonderOverviewTable.kt @@ -0,0 +1,244 @@ +package com.unciv.ui.overviewscreen + +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.scenes.scene2d.ui.Table +import com.badlogic.gdx.utils.Align +import com.unciv.Constants +import com.unciv.UncivGame +import com.unciv.logic.city.CityInfo +import com.unciv.logic.civilization.CivilizationInfo +import com.unciv.logic.map.TileInfo +import com.unciv.models.ruleset.Building +import com.unciv.models.ruleset.Era +import com.unciv.models.ruleset.QuestName +import com.unciv.models.ruleset.VictoryType +import com.unciv.models.translations.tr +import com.unciv.ui.civilopedia.CivilopediaCategories +import com.unciv.ui.civilopedia.CivilopediaScreen +import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.onClick +import com.unciv.ui.utils.toLabel + +class WonderOverviewTable( + private val viewingPlayer: CivilizationInfo, + @Suppress("unused") private val overviewScreen: EmpireOverviewScreen +): Table() { + val gameInfo = viewingPlayer.gameInfo + val ruleSet = gameInfo.ruleSet + + private val hideReligionItems = !gameInfo.isReligionEnabled() + private val viewerEra = viewingPlayer.getEraNumber() + private val startingObsolete = ruleSet.eras[gameInfo.gameParameters.startingEra]!!.startingObsoleteWonders + + private enum class WonderStatus(val label: String) { + Hidden(""), + Unknown("Unknown"), + Unbuilt("Not built"), + NotFound("Not found"), + Known("Known"), + Owned("Owned") + } + + private class WonderInfo ( + val name: String, + val category: CivilopediaCategories, + val groupName: String, + val groupColor: Color, + val status: WonderStatus, + val civ: CivilizationInfo?, + val city: CityInfo?, + val location: TileInfo? + ) { + val viewEntireMapForDebug = UncivGame.Current.viewEntireMapForDebug + + fun getImage() = if (status == WonderStatus.Unknown && !viewEntireMapForDebug) null + else category.getImage?.invoke(name, if (category == CivilopediaCategories.Terrain) 50f else 45f) + + fun getNameColumn() = when { + viewEntireMapForDebug -> name + status == WonderStatus.Unknown -> status.label + else -> name + } + + fun getStatusColumn() = when { + status != WonderStatus.Known -> status.label + civ == null -> status.label + else -> civ.civName + } + + fun getLocationColumn() = when { + status <= WonderStatus.NotFound -> "" + location == null -> "" + location.isCityCenter() -> location.getCity()!!.name + location.getCity() != null -> "Near [${location.getCity()!!}]" + city != null -> "Somewhere around [$city]" + viewEntireMapForDebug -> location.position.toString() + else -> "Far away" + } + } + + private val wonders: Array = collectInfo() + + init { + createGrid() + } + + private fun shouldBeDisplayed(wonder: Building, wonderEra: Int) = when { + Constants.hideFromCivilopediaUnique in wonder.uniques -> false + Constants.hiddenWithoutReligionUnique in wonder.uniques && hideReligionItems -> false + wonder.name in startingObsolete -> false + wonder.uniqueObjects.filter { unique -> + unique.placeholderText == "Hidden when [] Victory is disabled" + }.any { unique -> + !gameInfo.gameParameters.victoryTypes.contains(VictoryType.valueOf(unique.params[0])) + } -> false + else -> wonderEra <= viewerEra + } + + /** Do we know about a natural wonder despite not having found it yet? */ + private fun knownFromQuest(name: String): Boolean { + // No, *your* civInfo's QuestManager has no idea about your quests + for (civ in gameInfo.civilizations) { + for (quest in civ.questManager.assignedQuests) { + if (quest.assignee != viewingPlayer.civName) continue + if (quest.questName == QuestName.FindNaturalWonder.value && quest.data1 == name) + return true + } + } + return false + } + + private fun collectInfo(): Array { + val collator = UncivGame.Current.settings.getCollatorFromLocale() + + // Maps all World Wonders by name to their era for grouping + val wonderEraMap: Map = + ruleSet.buildings.values.asSequence() + .filter { it.isWonder } + .map { it.name to ruleSet.eras[ruleSet.technologies[it.requiredTech]?.era()]!! } + .toMap() + + // Maps all World Wonders by their position in sort order to their name + val allWonderMap: Map = + ruleSet.buildings.values.asSequence() + .filter { it.isWonder } + .sortedWith(compareBy { wonderEraMap[it.name]!!.eraNumber }.thenBy(collator, { it.name.tr() })) + .withIndex() + .map { it.index to it.value.name } + .toMap() + val wonderCount = allWonderMap.size + + // Inverse of the above + val wonderIndexMap: Map = allWonderMap.map { it.value to it.key }.toMap() + + // Maps all Natural Wonders on the map by name to their tile + val allNaturalsMap: Map = + gameInfo.tileMap.values.asSequence() + .filter { it.isNaturalWonder() } + .map { it.naturalWonder!! to it } + .toMap() + val naturalsCount = allNaturalsMap.size + + // Natural Wonders sort order index to name + val naturalsIndexMap: Map = allNaturalsMap.keys + .sortedWith(compareBy(collator, { it.tr() })) + .withIndex() + .map { it.index to it.value } + .toMap() + + // Pre-populate result with "Unknown" entries + val wonders = Array(wonderCount + naturalsCount) { index -> + if (index < wonderCount) { + val wonder = ruleSet.buildings[allWonderMap[index]!!]!! + val era = wonderEraMap[wonder.name]!! + val status = if (shouldBeDisplayed(wonder, era.eraNumber)) WonderStatus.Unbuilt else WonderStatus.Hidden + WonderInfo(allWonderMap[index]!!, CivilopediaCategories.Wonder, + era.name, era.getColor(), status, null, null, null) + } else { + WonderInfo(naturalsIndexMap[index - wonderCount]!!, CivilopediaCategories.Terrain, + "Natural Wonders", Color.FOREST, WonderStatus.Unknown, null, null, null) + } + } + + for (city in gameInfo.getCities()) { + for (wonderName in city.cityConstructions.builtBuildings.intersect(wonderIndexMap.keys)) { + val index = wonderIndexMap[wonderName]!! + val status = when { + viewingPlayer == city.civInfo -> WonderStatus.Owned + viewingPlayer.knows(city.civInfo) -> WonderStatus.Known + else -> WonderStatus.Unknown + } + wonders[index] = WonderInfo(wonderName, CivilopediaCategories.Wonder, + wonders[index].groupName, wonders[index].groupColor, + status, city.civInfo, city, city.getCenterTile()) + } + } + + for ((index, name) in naturalsIndexMap) { + val tile = allNaturalsMap[name]!! + val civ = tile.getOwner() + val status = when { + civ == viewingPlayer -> WonderStatus.Owned + name in viewingPlayer.naturalWonders -> WonderStatus.Known + else -> WonderStatus.NotFound + } + if (status == WonderStatus.NotFound && !knownFromQuest(name)) continue + val city = if (status == WonderStatus.NotFound) null + else tile.getTilesInDistance(5) + .filter { it.isCityCenter() } + .filter { viewingPlayer.knows(it.getOwner()!!) } + .filter { it.position in viewingPlayer.exploredTiles } + .sortedBy { it.aerialDistanceTo(tile) } + .firstOrNull()?.getCity() + wonders[index + wonderCount] = WonderInfo(name, CivilopediaCategories.Terrain, + "Natural Wonders", Color.FOREST, status, civ, city, tile) + } + + return wonders + } + + fun createGrid() { + defaults().pad(10f).align(Align.center) + add() + add("Name".toLabel()) + add("Status".toLabel()) + add("Location".toLabel()) + add().minWidth(30f) + row() + //addSeparator() + var lastGroup = "" + + for (wonder in wonders) { + if (wonder.status == WonderStatus.Hidden) continue + if (wonder.groupName != lastGroup) { + lastGroup = wonder.groupName + val groupRow = Table().apply { + add(ImageGetter.getDot(wonder.groupColor)).minHeight(2f).growX() + add(lastGroup.toLabel(wonder.groupColor).apply { setAlignment(Align.right) }).padLeft(1f).right() + } + add(groupRow).fillX().colspan(5).padBottom(0f).row() + } + + val image = wonder.getImage() + image?.onClick { + UncivGame.Current.setScreen(CivilopediaScreen(ruleSet, wonder.category, wonder.name)) + } + // Terrain image padding is a bit unpredictable, they need ~5f more. Ensure equal line spacing on name, not image: + add(image).pad(0f, 10f, 0f, 10f) + + add(wonder.getNameColumn().toLabel()).pad(15f, 10f, 15f, 10f) + add(wonder.getStatusColumn().toLabel()) + val locationText = wonder.getLocationColumn() + if (locationText.isNotEmpty()) { + val locationLabel = locationText.toLabel() + if (wonder.location != null) + locationLabel.onClick{ + UncivGame.Current.setWorldScreen() + UncivGame.Current.worldScreen.mapHolder.setCenterPosition(wonder.location.position) + } + add(locationLabel).fillY() + } + row() + } + } +}