diff --git a/android/Images/BuildingIcons/Alhambra.png b/android/Images/BuildingIcons/Alhambra.png index acd790d9c9..4bd3575a36 100644 Binary files a/android/Images/BuildingIcons/Alhambra.png and b/android/Images/BuildingIcons/Alhambra.png differ diff --git a/android/Images/BuildingIcons/Angkor Wat.png b/android/Images/BuildingIcons/Angkor Wat.png index 20b95a4100..614cf28d8f 100644 Binary files a/android/Images/BuildingIcons/Angkor Wat.png and b/android/Images/BuildingIcons/Angkor Wat.png differ diff --git a/android/Images/BuildingIcons/Longhouse.png b/android/Images/BuildingIcons/Longhouse.png new file mode 100644 index 0000000000..3a2716637b Binary files /dev/null and b/android/Images/BuildingIcons/Longhouse.png differ diff --git a/android/Images/BuildingIcons/Satrap's Court.png b/android/Images/BuildingIcons/Satrap's Court.png new file mode 100644 index 0000000000..3ef4502153 Binary files /dev/null and b/android/Images/BuildingIcons/Satrap's Court.png differ diff --git a/android/Images/BuildingIcons/Terracotta Army.png b/android/Images/BuildingIcons/Terracotta Army.png index e7f97e6031..c169b83f9e 100644 Binary files a/android/Images/BuildingIcons/Terracotta Army.png and b/android/Images/BuildingIcons/Terracotta Army.png differ diff --git a/android/Images/NationIcons/Iroquois.png b/android/Images/NationIcons/Iroquois.png new file mode 100644 index 0000000000..c8cb2e4992 Binary files /dev/null and b/android/Images/NationIcons/Iroquois.png differ diff --git a/android/Images/NationIcons/Persia.png b/android/Images/NationIcons/Persia.png new file mode 100644 index 0000000000..fd48a7b80a Binary files /dev/null and b/android/Images/NationIcons/Persia.png differ diff --git a/android/Images/UnitIcons/Anti-Tank Gun.png b/android/Images/UnitIcons/Anti-Tank Gun.png index c8ee768084..72381dfcbb 100644 Binary files a/android/Images/UnitIcons/Anti-Tank Gun.png and b/android/Images/UnitIcons/Anti-Tank Gun.png differ diff --git a/android/Images/UnitIcons/Immortal.png b/android/Images/UnitIcons/Immortal.png new file mode 100644 index 0000000000..e921e585dc Binary files /dev/null and b/android/Images/UnitIcons/Immortal.png differ diff --git a/android/Images/UnitIcons/Mohawk Warrior.png b/android/Images/UnitIcons/Mohawk Warrior.png new file mode 100644 index 0000000000..748dcbe2a9 Binary files /dev/null and b/android/Images/UnitIcons/Mohawk Warrior.png differ diff --git a/android/Images/UnitIcons/Trebuchet.png b/android/Images/UnitIcons/Trebuchet.png index 69b82fe37a..54b923b201 100644 Binary files a/android/Images/UnitIcons/Trebuchet.png and b/android/Images/UnitIcons/Trebuchet.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index b790fe4406..affa9e8c65 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -1,3491 +1,3533 @@ game.png -size: 2481,1801 +size: 2430,1840 format: RGBA8888 filter: MipMapLinearLinear,MipMapLinearLinear repeat: none BuildingIcons/Alhambra rotate: false - xy: 1882, 1699 + xy: 1882, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Angkor Wat rotate: false - xy: 2290, 1699 + xy: 2290, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Apollo Program rotate: false - xy: 587, 1569 + xy: 587, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Aqueduct rotate: false - xy: 689, 1569 + xy: 689, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Armory rotate: false - xy: 1301, 1569 + xy: 1301, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Bank rotate: false - xy: 2219, 1597 + xy: 2219, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Barracks rotate: false - xy: 485, 1467 + xy: 485, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Bazaar rotate: false - xy: 689, 1467 + xy: 689, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Big Ben rotate: false - xy: 791, 1467 + xy: 791, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Broadcast Tower rotate: false - xy: 1199, 1467 + xy: 1199, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Burial Tomb rotate: false - xy: 1505, 1495 + xy: 1505, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/CN Tower rotate: false - xy: 1607, 1495 + xy: 1607, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Castle rotate: false - xy: 2219, 1495 + xy: 2219, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Chichen Itza rotate: false - xy: 685, 1365 + xy: 685, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Circus rotate: false - xy: 1093, 1365 + xy: 1093, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Circus Maximus rotate: false - xy: 1195, 1365 + xy: 1195, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Colosseum rotate: false - xy: 1811, 1393 + xy: 1709, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Colossus rotate: false - xy: 1913, 1393 + xy: 1811, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Cristo Redentor rotate: false - xy: 1909, 1291 + xy: 1807, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Eiffel Tower rotate: false - xy: 406, 957 + xy: 610, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Factory rotate: false - xy: 508, 957 + xy: 406, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Forbidden Palace rotate: false - xy: 916, 1263 + xy: 814, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Forge rotate: false - xy: 712, 957 + xy: 610, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Granary rotate: false - xy: 712, 753 + xy: 1120, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Great Wall rotate: false - xy: 1222, 1263 + xy: 1120, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hagia Sophia rotate: false - xy: 1324, 1263 + xy: 1222, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hanging Gardens rotate: false - xy: 916, 753 + xy: 1324, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hanse rotate: false - xy: 1018, 855 + xy: 916, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Harbor rotate: false - xy: 1120, 957 + xy: 1018, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hermitage rotate: false - xy: 1324, 1161 + xy: 1222, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Himeji Castle rotate: false - xy: 1120, 855 + xy: 1018, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hospital rotate: false - xy: 1324, 957 + xy: 1222, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hubble Space Telescope rotate: false - xy: 1222, 753 + xy: 1324, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hydro Plant rotate: false - xy: 1324, 753 + xy: 1324, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Ironworks rotate: false - xy: 1528, 985 + xy: 1528, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Kremlin rotate: false - xy: 1528, 781 + xy: 1630, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Krepost rotate: false - xy: 1630, 883 + xy: 1732, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Leaning Tower of Pisa rotate: false - xy: 1834, 985 + xy: 1936, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Library rotate: false - xy: 2038, 1189 + xy: 1732, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Lighthouse rotate: false - xy: 1732, 781 + xy: 1834, 922 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +BuildingIcons/Longhouse + rotate: false + xy: 2038, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Machu Picchu rotate: false - xy: 1936, 883 + xy: 2140, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Market rotate: false - xy: 2242, 1189 + xy: 2038, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Military Academy rotate: false - xy: 2242, 883 + xy: 1426, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Mint rotate: false - xy: 2344, 985 + xy: 1834, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Monastery rotate: false - xy: 1528, 679 + xy: 488, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Monument rotate: false - xy: 1630, 679 + xy: 488, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Mughal Fort rotate: false - xy: 1834, 679 + xy: 590, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Museum rotate: false - xy: 1936, 679 + xy: 692, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/National College rotate: false - xy: 2344, 679 + xy: 896, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Neuschwanstein rotate: false - xy: 488, 549 + xy: 1100, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Notre Dame rotate: false - xy: 590, 651 + xy: 1202, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Nuclear Plant rotate: false - xy: 692, 651 + xy: 896, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Observatory rotate: false - xy: 794, 651 + xy: 1100, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Opera House rotate: false - xy: 896, 549 + xy: 488, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Oxford University rotate: false - xy: 998, 549 + xy: 692, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Palace rotate: false - xy: 1100, 651 + xy: 794, 487 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Paper Maker rotate: false - xy: 1202, 651 + xy: 998, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Pentagon rotate: false - xy: 1304, 549 + xy: 1304, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Porcelain Tower rotate: false - xy: 1304, 447 + xy: 1712, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Public School rotate: false - xy: 690, 345 + xy: 1814, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Research Lab rotate: false - xy: 1406, 475 + xy: 2222, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Booster rotate: false - xy: 1916, 475 + xy: 2324, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Cockpit rotate: false - xy: 2018, 577 + xy: 2324, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Engine rotate: false - xy: 2018, 475 + xy: 2324, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Stasis Chamber rotate: false - xy: 1406, 373 + xy: 794, 385 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +BuildingIcons/Satrap's Court + rotate: false + xy: 1202, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Seaport rotate: false - xy: 2018, 373 + xy: 1508, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sistine Chapel rotate: false - xy: 2120, 577 + xy: 2324, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Solar Plant rotate: false - xy: 2120, 373 + xy: 436, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Spaceship Factory rotate: false - xy: 2118, 271 + xy: 436, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stable rotate: false - xy: 2222, 373 + xy: 538, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stadium rotate: false - xy: 2220, 271 + xy: 640, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Statue of Liberty rotate: false - xy: 2324, 475 + xy: 640, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stock Exchange rotate: false - xy: 436, 67 + xy: 844, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stone Works rotate: false - xy: 538, 141 + xy: 946, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stonehenge rotate: false - xy: 640, 243 + xy: 844, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sydney Opera House rotate: false - xy: 844, 141 + xy: 1150, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Taj Mahal rotate: false - xy: 946, 243 + xy: 1048, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Temple rotate: false - xy: 1048, 243 + xy: 1252, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Terracotta Army rotate: false - xy: 1048, 141 + xy: 1150, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Library rotate: false - xy: 1150, 243 + xy: 1252, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Lighthouse rotate: false - xy: 1150, 141 + xy: 1252, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Louvre rotate: false - xy: 1252, 243 + xy: 1354, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Oracle rotate: false - xy: 1252, 141 + xy: 1354, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Pyramids rotate: false - xy: 640, 39 + xy: 1456, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Theatre rotate: false - xy: 844, 39 + xy: 1558, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/University rotate: false - xy: 1456, 67 + xy: 1966, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Walls rotate: false - xy: 1558, 67 + xy: 2068, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Walls of Babylon rotate: false - xy: 1660, 169 + xy: 2170, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Windmill rotate: false - xy: 1966, 169 + xy: 1558, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Workshop rotate: false - xy: 2170, 169 + xy: 1966, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 FlagIcons/Dutch rotate: false - xy: 204, 151 + xy: 204, 190 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/English rotate: false - xy: 204, 21 + xy: 204, 60 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/French rotate: false - xy: 304, 1671 + xy: 304, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/German rotate: false - xy: 434, 1671 + xy: 434, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Italian rotate: false - xy: 564, 1671 + xy: 564, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Polish rotate: false - xy: 694, 1671 + xy: 694, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Portuguese rotate: false - xy: 824, 1671 + xy: 824, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Romanian rotate: false - xy: 954, 1671 + xy: 954, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Russian rotate: false - xy: 1084, 1671 + xy: 1084, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Simplified_Chinese rotate: false - xy: 1214, 1671 + xy: 1214, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Spanish rotate: false - xy: 1344, 1671 + xy: 1344, 1710 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ImprovementIcons/Academy rotate: false - xy: 1474, 1699 + xy: 1474, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Ancient ruins rotate: false - xy: 2188, 1699 + xy: 2188, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Barbarian encampment rotate: false - xy: 383, 1467 + xy: 383, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Camp rotate: false - xy: 1913, 1495 + xy: 1913, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/City ruins rotate: false - xy: 1297, 1365 + xy: 1297, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Customs house rotate: false - xy: 2317, 1291 + xy: 2215, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Farm rotate: false - xy: 610, 1059 + xy: 508, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fishing Boats rotate: false - xy: 610, 957 + xy: 508, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Landmark rotate: false - xy: 1936, 1189 + xy: 1630, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Lumber mill rotate: false - xy: 2038, 1087 + xy: 1834, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Manufactory rotate: false - xy: 2038, 985 + xy: 2242, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Mine rotate: false - xy: 2344, 1189 + xy: 1630, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Oil well rotate: false - xy: 896, 651 + xy: 1304, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Plantation rotate: false - xy: 1100, 447 + xy: 1610, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Quarry rotate: false - xy: 792, 345 + xy: 1916, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Railroad rotate: false - xy: 1098, 345 + xy: 2018, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Railroad rotate: false - xy: 1098, 345 + xy: 2018, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/FantasyHex/Railroad rotate: false - xy: 1098, 345 + xy: 2018, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Road rotate: false - xy: 1610, 475 + xy: 1712, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Trading post rotate: false - xy: 1048, 39 + xy: 1660, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/America rotate: false - xy: 2086, 1699 + xy: 2086, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Arabia rotate: false - xy: 791, 1569 + xy: 791, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Babylon rotate: false - xy: 1811, 1597 + xy: 1811, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/China rotate: false - xy: 787, 1365 + xy: 787, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/CityState rotate: false - xy: 334, 77 + xy: 334, 116 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Egypt rotate: false - xy: 610, 1263 + xy: 508, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/England rotate: false - xy: 406, 855 + xy: 712, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/France rotate: false - xy: 814, 1059 + xy: 712, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Germany rotate: false - xy: 1018, 1161 + xy: 916, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Greece rotate: false - xy: 1018, 957 + xy: 916, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/India rotate: false - xy: 1426, 1087 + xy: 1426, 1126 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +NationIcons/Iroquois + rotate: false + xy: 1630, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Japan rotate: false - xy: 1426, 781 + xy: 1528, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Korea rotate: false - xy: 1834, 1189 + xy: 1528, 820 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +NationIcons/Persia + rotate: false + xy: 588, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Rome rotate: false - xy: 1814, 475 + xy: 2120, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/Russia rotate: false - xy: 1916, 577 + xy: 2222, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NationIcons/The Ottomans rotate: false - xy: 538, 39 + xy: 1456, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Aircraft rotate: false - xy: 2392, 1749 + xy: 1354, 332 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/BackArrow rotate: false - xy: 406, 701 + xy: 406, 740 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Banner rotate: false - xy: 281, 1467 + xy: 281, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Circle rotate: false - xy: 204, 281 + xy: 204, 320 size: 178, 178 orig: 178, 178 offset: 0, 0 index: -1 OtherIcons/Crosshair rotate: false - xy: 2113, 1291 + xy: 2011, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/DisbandUnit rotate: false - xy: 384, 357 + xy: 386, 498 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Fire rotate: false - xy: 406, 753 + xy: 814, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Hexagon rotate: false - xy: 2, 1507 + xy: 2, 1546 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 TileSets/Default/Hexagon rotate: false - xy: 2, 1507 + xy: 2, 1546 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 TileSets/FantasyHex/Hexagon rotate: false - xy: 2, 1507 + xy: 2, 1546 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 OtherIcons/MenuIcon rotate: false - xy: 2140, 883 + xy: 2140, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pentagon rotate: false - xy: 488, 447 + xy: 486, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pillage rotate: false - xy: 998, 447 + xy: 1508, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Shield rotate: false - xy: 1608, 271 + xy: 1814, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Sleep rotate: false - xy: 2120, 475 + xy: 436, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Stop rotate: false - xy: 640, 141 + xy: 946, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/civTableBackground rotate: false - xy: 2, 1749 + xy: 2, 1788 size: 300, 50 orig: 300, 50 offset: 0, 0 index: -1 OtherIcons/tileTableBackground rotate: false - xy: 204, 461 + xy: 204, 500 size: 180, 200 orig: 180, 200 offset: 0, 0 index: -1 OtherIcons/whiteDot rotate: false - xy: 2478, 1798 + xy: 277, 1543 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 PolicyIcons/Aristocracy rotate: false - xy: 1426, 1313 + xy: 1426, 1352 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Citizenship rotate: false - xy: 384, 305 + xy: 384, 344 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Civil Society rotate: false - xy: 334, 25 + xy: 2344, 1278 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Collective Rule rotate: false - xy: 2272, 117 + xy: 2374, 258 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Constitution rotate: false - xy: 2374, 219 + xy: 538, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Democracy rotate: false - xy: 2272, 65 + xy: 2272, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Discipline rotate: false - xy: 2324, 117 + xy: 2272, 2 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Strength rotate: false - xy: 2324, 117 + xy: 2272, 2 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Entrepreneurship rotate: false - xy: 2324, 65 + xy: 2, 31 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Facism rotate: false - xy: 1354, 14 + xy: 2344, 1226 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Religion rotate: false - xy: 1406, 14 + xy: 2374, 206 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Speech rotate: false - xy: 1458, 15 + xy: 590, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Thought rotate: false - xy: 1510, 15 + xy: 2344, 1174 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Humanism rotate: false - xy: 1562, 15 + xy: 2374, 154 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Landed Elite rotate: false - xy: 1666, 15 + xy: 2344, 1122 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Legalism rotate: false - xy: 1718, 15 + xy: 694, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mandate Of Heaven rotate: false - xy: 1770, 15 + xy: 2344, 1070 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mercantilism rotate: false - xy: 1822, 15 + xy: 746, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Meritocracy rotate: false - xy: 1874, 15 + xy: 2344, 1018 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Militarism rotate: false - xy: 1926, 15 + xy: 798, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Caste rotate: false - xy: 1978, 15 + xy: 2344, 966 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Tradition rotate: false - xy: 2030, 15 + xy: 850, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Monarchy rotate: false - xy: 2082, 15 + xy: 2344, 914 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Oligarchy rotate: false - xy: 2186, 15 + xy: 2344, 862 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Organized Religion rotate: false - xy: 2426, 627 + xy: 954, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Patronage rotate: false - xy: 2426, 575 + xy: 2344, 810 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Police State rotate: false - xy: 2426, 523 + xy: 1006, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Populism rotate: false - xy: 2426, 471 + xy: 2344, 758 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Professional Army rotate: false - xy: 2426, 419 + xy: 1058, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Protectionism rotate: false - xy: 2426, 367 + xy: 1110, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Reformation rotate: false - xy: 2290, 13 + xy: 1266, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Representation rotate: false - xy: 2342, 13 + xy: 2324, 54 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Republic rotate: false - xy: 65, 5 + xy: 2324, 2 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scientific Revolution rotate: false - xy: 117, 5 + xy: 65, 44 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Secularism rotate: false - xy: 2426, 263 + xy: 117, 44 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Sovereignty rotate: false - xy: 2426, 211 + xy: 2376, 102 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Theocracy rotate: false - xy: 2419, 1341 + xy: 2376, 50 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Total War rotate: false - xy: 386, 15 + xy: 436, 332 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Trade Unions rotate: false - xy: 438, 15 + xy: 169, 8 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Universal Suffrage rotate: false - xy: 436, 293 + xy: 221, 8 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Warrior Code rotate: false - xy: 2423, 1697 + xy: 273, 8 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 ResourceIcons/Aluminum rotate: false - xy: 1984, 1699 + xy: 1984, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Bananas rotate: false - xy: 2117, 1597 + xy: 2117, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cattle rotate: false - xy: 277, 1365 + xy: 277, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Coal rotate: false - xy: 1709, 1393 + xy: 1607, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cotton rotate: false - xy: 1807, 1291 + xy: 1705, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Deer rotate: false - xy: 386, 561 + xy: 2317, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Dyes rotate: false - xy: 406, 1263 + xy: 384, 396 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Fish rotate: false - xy: 508, 855 + xy: 406, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Furs rotate: false - xy: 1018, 1263 + xy: 916, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gems rotate: false - xy: 916, 1059 + xy: 814, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gold rotate: false - xy: 1120, 1263 + xy: 1018, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Horses rotate: false - xy: 1222, 855 + xy: 1120, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Incense rotate: false - xy: 1426, 1189 + xy: 1426, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Iron rotate: false - xy: 1528, 1087 + xy: 1528, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Ivory rotate: false - xy: 1630, 1087 + xy: 1732, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Marble rotate: false - xy: 2140, 1087 + xy: 1936, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Oil rotate: false - xy: 794, 549 + xy: 1202, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Pearls rotate: false - xy: 1304, 651 + xy: 1202, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sheep rotate: false - xy: 1506, 271 + xy: 1712, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silk rotate: false - xy: 1812, 271 + xy: 2018, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silver rotate: false - xy: 1914, 271 + xy: 2120, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Spices rotate: false - xy: 2324, 577 + xy: 640, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Stone rotate: false - xy: 538, 243 + xy: 844, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sugar rotate: false - xy: 742, 141 + xy: 946, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Uranium rotate: false - xy: 1558, 169 + xy: 2068, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Whales rotate: false - xy: 1864, 169 + xy: 1354, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wheat rotate: false - xy: 1864, 67 + xy: 1456, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wine rotate: false - xy: 1966, 67 + xy: 1660, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Acquire rotate: false - xy: 1678, 1699 + xy: 1678, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/CityConnection rotate: false - xy: 1399, 1365 + xy: 1399, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/City_Center_(Civ6) rotate: false - xy: 1505, 1393 + xy: 334, 14 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Culture rotate: false - xy: 2, 1067 + xy: 2, 1106 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Food rotate: false - xy: 2, 865 + xy: 2, 904 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Gold rotate: false - xy: 2, 663 + xy: 2, 702 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Happiness rotate: false - xy: 2, 461 + xy: 2, 500 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/InterceptRange rotate: false - xy: 1614, 15 + xy: 642, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Malcontent rotate: false - xy: 2, 57 + xy: 2, 96 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Movement rotate: false - xy: 2134, 15 + xy: 902, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Population rotate: false - xy: 204, 1067 + xy: 204, 1106 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Production rotate: false - xy: 204, 865 + xy: 204, 904 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Range rotate: false - xy: 2424, 315 + xy: 1162, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/RangedStrength rotate: false - xy: 2238, 13 + xy: 1214, 26 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Resistance rotate: false - xy: 1508, 577 + xy: 1406, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Science rotate: false - xy: 204, 663 + xy: 204, 702 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 StatIcons/Specialist rotate: false - xy: 2222, 475 + xy: 538, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Acoustics rotate: false - xy: 1576, 1699 + xy: 1576, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Agriculture rotate: false - xy: 1780, 1699 + xy: 1780, 1738 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Animal Husbandry rotate: false - xy: 281, 1569 + xy: 281, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Pasture rotate: false - xy: 281, 1569 + xy: 281, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Archaeology rotate: false - xy: 893, 1569 + xy: 893, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Archery rotate: false - xy: 1097, 1569 + xy: 1097, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Architecture rotate: false - xy: 1199, 1569 + xy: 1199, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Astronomy rotate: false - xy: 1505, 1597 + xy: 1505, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Atomic Theory rotate: false - xy: 1607, 1597 + xy: 1607, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Ballistics rotate: false - xy: 2015, 1597 + xy: 2015, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Banking rotate: false - xy: 2321, 1597 + xy: 2321, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Biology rotate: false - xy: 893, 1467 + xy: 893, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Bronze Working rotate: false - xy: 1301, 1467 + xy: 1301, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Calendar rotate: false - xy: 1709, 1495 + xy: 1709, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Chemistry rotate: false - xy: 583, 1365 + xy: 583, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Medical Lab rotate: false - xy: 583, 1365 + xy: 583, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Chivalry rotate: false - xy: 889, 1365 + xy: 889, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Civil Service rotate: false - xy: 1607, 1393 + xy: 1505, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Combined Arms rotate: false - xy: 2015, 1393 + xy: 1913, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Combustion rotate: false - xy: 2117, 1393 + xy: 2015, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Compass rotate: false - xy: 2321, 1393 + xy: 2219, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Computers rotate: false - xy: 1501, 1291 + xy: 2321, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Construction rotate: false - xy: 1603, 1291 + xy: 1501, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Currency rotate: false - xy: 2215, 1291 + xy: 2113, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Dynamite rotate: false - xy: 406, 1161 + xy: 406, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Ecology rotate: false - xy: 508, 1263 + xy: 406, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Economics rotate: false - xy: 406, 1059 + xy: 508, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Education rotate: false - xy: 508, 1161 + xy: 406, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Electricity rotate: false - xy: 508, 1059 + xy: 406, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Electronics rotate: false - xy: 610, 1161 + xy: 508, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Engineering rotate: false - xy: 712, 1263 + xy: 610, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Fertilizer rotate: false - xy: 712, 1161 + xy: 610, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Flight rotate: false - xy: 712, 1059 + xy: 610, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Future Tech rotate: false - xy: 610, 753 + xy: 1018, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Guilds rotate: false - xy: 1120, 1059 + xy: 1018, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Gunpowder rotate: false - xy: 1222, 1161 + xy: 1120, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Horseback Riding rotate: false - xy: 1324, 1059 + xy: 1222, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Industrialization rotate: false - xy: 1528, 1189 + xy: 1528, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Iron Working rotate: false - xy: 1630, 1189 + xy: 1630, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Lasers rotate: false - xy: 2, 259 + xy: 2, 298 size: 200, 200 orig: 200, 200 offset: 0, 0 index: -1 TechIcons/Machinery rotate: false - xy: 1834, 781 + xy: 2038, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Masonry rotate: false - xy: 2038, 883 + xy: 2242, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mass Media (retired) rotate: false - xy: 2140, 985 + xy: 2038, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mathematics rotate: false - xy: 2242, 1087 + xy: 2140, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Metal Casting rotate: false - xy: 2242, 985 + xy: 2242, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Metallurgy rotate: false - xy: 2140, 781 + xy: 2242, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Military Science rotate: false - xy: 2242, 781 + xy: 1528, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mining rotate: false - xy: 2344, 1087 + xy: 1732, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mobile Tactics rotate: false - xy: 2344, 781 + xy: 2038, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Nanotechnology rotate: false - xy: 2242, 679 + xy: 794, 589 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Navigation rotate: false - xy: 488, 651 + xy: 998, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Nuclear Fission rotate: false - xy: 590, 549 + xy: 1304, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Optics rotate: false - xy: 998, 651 + xy: 590, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Particle Physics rotate: false - xy: 1202, 549 + xy: 1100, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pharmaceuticals rotate: false - xy: 590, 447 + xy: 690, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Philosophy rotate: false - xy: 692, 447 + xy: 1406, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Physics rotate: false - xy: 794, 447 + xy: 1406, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Plastics rotate: false - xy: 1202, 447 + xy: 1610, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pottery rotate: false - xy: 486, 345 + xy: 1712, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Printing Press rotate: false - xy: 588, 345 + xy: 1814, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Radar rotate: false - xy: 894, 345 + xy: 1916, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Radio rotate: false - xy: 996, 345 + xy: 2018, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Railroad rotate: false - xy: 1200, 345 + xy: 2120, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Refrigeration rotate: false - xy: 1302, 345 + xy: 2120, 514 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Replaceable Parts rotate: false - xy: 1406, 577 + xy: 2222, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rifling rotate: false - xy: 1610, 577 + xy: 1610, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Robotics rotate: false - xy: 1712, 577 + xy: 1814, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rocketry rotate: false - xy: 1814, 577 + xy: 2018, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Sailing rotate: false - xy: 1508, 373 + xy: 896, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Satellites rotate: false - xy: 1712, 373 + xy: 1100, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Scientific Theory rotate: false - xy: 1814, 373 + xy: 1304, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steam Power rotate: false - xy: 2322, 271 + xy: 742, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steel rotate: false - xy: 436, 169 + xy: 742, 78 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/The Wheel rotate: false - xy: 742, 39 + xy: 1558, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Theology rotate: false - xy: 946, 39 + xy: 1660, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Trapping rotate: false - xy: 1150, 39 + xy: 1762, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Writing rotate: false - xy: 2170, 67 + xy: 2068, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/CityOverlay rotate: false - xy: 334, 179 + xy: 334, 218 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/CrosshatchHexagon rotate: false - xy: 2, 1269 + xy: 2, 1308 size: 273, 236 orig: 273, 236 offset: 0, 0 index: -1 TileSets/FantasyHex/CrosshatchHexagon rotate: false - xy: 2, 1269 + xy: 2, 1308 size: 273, 236 orig: 273, 236 offset: 0, 0 index: -1 TileSets/Default/Flood plainsOverlay rotate: false - xy: 814, 1161 + xy: 712, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/ForestOverlay rotate: false - xy: 610, 855 + xy: 508, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/HillOverlay rotate: false - xy: 1018, 753 + xy: 1324, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/JungleOverlay rotate: false - xy: 1630, 985 + xy: 1732, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/LakesOverlay rotate: false - xy: 1732, 985 + xy: 1834, 1126 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/MarshOverlay rotate: false - xy: 1936, 781 + xy: 2140, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/MountainOverlay rotate: false - xy: 1732, 679 + xy: 590, 690 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/OasisOverlay rotate: false - xy: 692, 549 + xy: 998, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/road rotate: false - xy: 2, 44 + xy: 2, 83 size: 61, 11 orig: 61, 11 offset: 0, 0 index: -1 TileSets/FantasyHex/road rotate: false - xy: 2, 44 + xy: 2, 83 size: 61, 11 orig: 61, 11 offset: 0, 0 index: -1 TileSets/FantasyHex/City rotate: false - xy: 1354, 308 + xy: 2392, 1803 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Grassland+City rotate: false - xy: 1354, 308 + xy: 2392, 1803 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Hill+City rotate: false - xy: 1354, 308 + xy: 2392, 1803 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Coast rotate: false - xy: 406, 671 + xy: 406, 710 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Desert rotate: false - xy: 2, 14 + xy: 2344, 728 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Desert+City rotate: false - xy: 169, 22 + xy: 1318, 43 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Desert+Flood plains rotate: false - xy: 2374, 189 + xy: 2376, 20 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Desert+Oasis rotate: false - xy: 2419, 1311 + xy: 488, 354 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Grassland rotate: false - xy: 490, 37 + xy: 169, 66 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/TopRightBorder rotate: false - xy: 490, 37 + xy: 169, 66 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Grassland+Forest rotate: false - xy: 626, 8 + xy: 2396, 884 size: 31, 29 orig: 31, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Grassland+Jungle rotate: false - xy: 488, 309 + xy: 2392, 1767 size: 32, 34 orig: 32, 34 offset: 0, 0 index: -1 TileSets/FantasyHex/Grassland+Marsh rotate: false - xy: 2423, 1666 + xy: 488, 323 size: 32, 29 orig: 32, 29 offset: 0, 0 index: -1 TileSets/FantasyHex/Hill rotate: false - xy: 2444, 1767 + xy: 2396, 1296 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Hill+Forest rotate: false - xy: 2423, 1619 + xy: 2396, 1249 size: 32, 45 orig: 32, 45 offset: 0, 0 index: -1 TileSets/FantasyHex/Lakes rotate: false - xy: 1354, 278 + xy: 2396, 1219 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Mountain rotate: false - xy: 488, 271 + xy: 440, 702 size: 32, 36 orig: 32, 36 offset: 0, 0 index: -1 TileSets/FantasyHex/Ocean rotate: false - xy: 2423, 1589 + xy: 2396, 1189 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Plains rotate: false - xy: 2423, 1559 + xy: 2396, 1159 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Plains+City rotate: false - xy: 2423, 1522 + xy: 2396, 1122 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Plains+Forest rotate: false - xy: 490, 2 + xy: 2396, 1087 size: 32, 33 orig: 32, 33 offset: 0, 0 index: -1 TileSets/FantasyHex/Plains+Jungle rotate: false - xy: 524, 2 + xy: 2396, 1050 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/TopBorder rotate: false - xy: 2423, 1492 + xy: 2396, 1020 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tundra rotate: false - xy: 558, 5 + xy: 2396, 986 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 TileSets/FantasyHex/Tundra+City rotate: false - xy: 592, 2 + xy: 2396, 949 size: 32, 35 orig: 32, 35 offset: 0, 0 index: -1 TileSets/FantasyHex/Tundra+Forest rotate: false - xy: 2423, 1458 + xy: 2396, 915 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 UnitIcons/Anti-Aircraft Gun rotate: false - xy: 383, 1569 + xy: 383, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Anti-Tank Gun rotate: false - xy: 485, 1569 + xy: 485, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Archer rotate: false - xy: 995, 1569 + xy: 995, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Artillery rotate: false - xy: 1403, 1569 + xy: 1403, 1608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/B17 rotate: false - xy: 1709, 1597 + xy: 1709, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Ballista rotate: false - xy: 1913, 1597 + xy: 1913, 1636 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Battleship rotate: false - xy: 587, 1467 + xy: 587, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Bomber rotate: false - xy: 995, 1467 + xy: 995, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Bowman rotate: false - xy: 1097, 1467 + xy: 1097, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Brute rotate: false - xy: 1403, 1467 + xy: 1403, 1506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Camel Archer rotate: false - xy: 1811, 1495 + xy: 1811, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Cannon rotate: false - xy: 2015, 1495 + xy: 2015, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Caravel rotate: false - xy: 2117, 1495 + xy: 2117, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Catapult rotate: false - xy: 2321, 1495 + xy: 2321, 1534 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Cavalry rotate: false - xy: 379, 1365 + xy: 379, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Chariot Archer rotate: false - xy: 481, 1365 + xy: 481, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Chu-Ko-Nu rotate: false - xy: 991, 1365 + xy: 991, 1404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Companion Cavalry rotate: false - xy: 2219, 1393 + xy: 2117, 1432 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Cossack rotate: false - xy: 1705, 1291 + xy: 1603, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Crossbowman rotate: false - xy: 2011, 1291 + xy: 1909, 1330 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Destroyer rotate: false - xy: 386, 459 + xy: 386, 600 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Fighter rotate: false - xy: 814, 1263 + xy: 712, 1200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Foreign Legion rotate: false - xy: 508, 753 + xy: 916, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Frigate rotate: false - xy: 916, 1161 + xy: 814, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Galleass rotate: false - xy: 712, 855 + xy: 610, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Gatling Gun rotate: false - xy: 814, 957 + xy: 712, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Artist rotate: false - xy: 814, 855 + xy: 712, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Engineer rotate: false - xy: 916, 957 + xy: 814, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great General rotate: false - xy: 277, 1269 + xy: 277, 1308 size: 100, 94 orig: 100, 94 offset: 0, 0 index: -1 OtherIcons/Star rotate: false - xy: 277, 1269 + xy: 277, 1308 size: 100, 94 orig: 100, 94 offset: 0, 0 index: -1 UnitIcons/Great Merchant rotate: false - xy: 1018, 1059 + xy: 916, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Scientist rotate: false - xy: 1120, 1161 + xy: 1018, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great War Bomber rotate: false - xy: 814, 753 + xy: 1222, 1302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great War Infantry rotate: false - xy: 916, 855 + xy: 814, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Helicopter rotate: false - xy: 1222, 1059 + xy: 1120, 996 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Hoplite rotate: false - xy: 1222, 957 + xy: 1120, 894 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Horseman rotate: false - xy: 1120, 753 + xy: 1324, 1098 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Hwach'a rotate: false - xy: 1324, 855 + xy: 1222, 792 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitIcons/Immortal + rotate: false + xy: 1324, 792 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Infantry rotate: false - xy: 1426, 985 + xy: 1426, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Ironclad rotate: false - xy: 1426, 883 + xy: 1426, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Janissary rotate: false - xy: 1732, 1189 + xy: 1426, 820 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Jet Fighter rotate: false - xy: 1528, 883 + xy: 1630, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Knight rotate: false - xy: 1732, 1087 + xy: 1834, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Lancer rotate: false - xy: 1834, 1087 + xy: 1936, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Landship rotate: false - xy: 1630, 781 + xy: 1732, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Landsknecht rotate: false - xy: 1732, 883 + xy: 1834, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Legion rotate: false - xy: 1936, 1087 + xy: 2038, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Longbowman rotate: false - xy: 1834, 883 + xy: 1936, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Longswordsman rotate: false - xy: 1936, 985 + xy: 2140, 1228 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Machine Gun rotate: false - xy: 2140, 1189 + xy: 1936, 922 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Mechanized Infantry rotate: false - xy: 2038, 781 + xy: 2242, 1024 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Minuteman rotate: false - xy: 2344, 883 + xy: 1936, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Modern Armor rotate: false - xy: 1426, 679 + xy: 2140, 718 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitIcons/Mohawk Warrior + rotate: false + xy: 2242, 718 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Musketeer rotate: false - xy: 2038, 679 + xy: 692, 588 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Musketman rotate: false - xy: 2140, 680 + xy: 794, 691 size: 100, 99 orig: 100, 99 offset: 0, 0 index: -1 UnitIcons/Panzer rotate: false - xy: 1100, 549 + xy: 896, 486 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Pikeman rotate: false - xy: 896, 447 + xy: 1508, 616 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Rifleman rotate: false - xy: 1508, 475 + xy: 1508, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Rocket Artillery rotate: false - xy: 1712, 475 + xy: 1916, 412 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Samurai rotate: false - xy: 1610, 373 + xy: 998, 384 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Scout rotate: false - xy: 1916, 373 + xy: 1406, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Settler rotate: false - xy: 1404, 271 + xy: 1610, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Ship of the Line rotate: false - xy: 1710, 271 + xy: 1916, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Sipahi rotate: false - xy: 2016, 271 + xy: 2222, 310 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Spearman rotate: false - xy: 2222, 577 + xy: 538, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Stealth Bomber rotate: false - xy: 2324, 373 + xy: 742, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Submarine rotate: false - xy: 742, 243 + xy: 1048, 282 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Swordsman rotate: false - xy: 844, 243 + xy: 1048, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Tank rotate: false - xy: 946, 141 + xy: 1150, 180 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Trebuchet rotate: false - xy: 1252, 39 + xy: 1762, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Triplane rotate: false - xy: 1354, 169 + xy: 1864, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Trireme rotate: false - xy: 1354, 66 + xy: 1864, 105 size: 100, 101 orig: 100, 101 offset: 0, 0 index: -1 UnitIcons/Turtle Ship rotate: false - xy: 1456, 169 + xy: 1966, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/War Chariot rotate: false - xy: 1660, 67 + xy: 2170, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/War Elephant rotate: false - xy: 1762, 169 + xy: 2272, 208 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Warrior rotate: false - xy: 1762, 67 + xy: 2272, 106 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Work Boats rotate: false - xy: 2068, 169 + xy: 1762, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Worker rotate: false - xy: 2068, 67 + xy: 1864, 3 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Zero rotate: false - xy: 2272, 169 + xy: 2170, 4 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy_III_(Civ5) rotate: false - xy: 1426, 1291 + xy: 1354, 310 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy_II_(Civ5) rotate: false - xy: 1448, 1291 + xy: 1426, 1330 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy_I_(Civ5) rotate: false - xy: 436, 271 + xy: 1376, 310 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Air_Repair_(Civ5) rotate: false - xy: 458, 271 + xy: 1448, 1330 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Ambush_II_(Civ5) rotate: false - xy: 1470, 1291 + xy: 436, 310 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Ambush_I_(Civ5) rotate: false - xy: 281, 1727 + xy: 458, 310 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage_III_(Civ5) rotate: false - xy: 1474, 1677 + xy: 1470, 1330 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage_II_(Civ5) rotate: false - xy: 379, 1343 + xy: 281, 1766 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage_I_(Civ5) rotate: false - xy: 458, 731 + xy: 1474, 1716 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Blitz_(Civ5) rotate: false - xy: 384, 283 + xy: 379, 1382 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding_Party_III_(Civ5) rotate: false - xy: 2392, 1727 + xy: 538, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding_Party_II_(Civ5) rotate: false - xy: 36, 22 + xy: 384, 322 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding_Party_I_(Civ5) rotate: false - xy: 2423, 1436 + xy: 2, 9 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment_III_(Civ5) rotate: false - xy: 659, 17 + xy: 2392, 1745 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment_II_(Civ5) rotate: false - xy: 1478, 1343 + xy: 458, 770 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment_I_(Civ5) rotate: false - xy: 281, 1705 + xy: 2396, 862 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Charge_(Civ5) rotate: false - xy: 379, 1321 + xy: 1478, 1382 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_III_(Civ5) rotate: false - xy: 458, 709 + xy: 281, 1744 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_II_(Civ5) rotate: false - xy: 406, 283 + xy: 379, 1360 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_I_(Civ5) rotate: false - xy: 2392, 1705 + xy: 560, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Cover_II_(Civ5) rotate: false - xy: 2423, 1414 + xy: 406, 322 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Cover_I_(Civ5) rotate: false - xy: 681, 17 + xy: 24, 9 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_III_(Civ5) rotate: false - xy: 1478, 1321 + xy: 458, 748 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_II_(Civ5) rotate: false - xy: 281, 1683 + xy: 2396, 840 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_I_(Civ5) rotate: false - xy: 379, 1299 + xy: 1478, 1360 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Evasion_(Civ5) rotate: false - xy: 703, 17 + xy: 281, 1722 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Formation_II_(Civ5) rotate: false - xy: 379, 1277 + xy: 379, 1338 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Formation_I_(Civ5) rotate: false - xy: 725, 17 + xy: 582, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Heal_Instantly_(Civ5) rotate: false - xy: 747, 17 + xy: 2396, 818 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Indirect_Fire_(Civ5) rotate: false - xy: 769, 17 + xy: 379, 1316 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Interception_III_(Civ5) rotate: false - xy: 791, 17 + xy: 604, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Interception_II_(Civ5) rotate: false - xy: 813, 17 + xy: 2396, 796 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Interception_I_(Civ5) rotate: false - xy: 835, 17 + xy: 626, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Logistics_(Civ5) rotate: false - xy: 857, 17 + xy: 2396, 774 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/March_(Civ5) rotate: false - xy: 879, 17 + xy: 648, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Medic_(Civ5) rotate: false - xy: 901, 17 + xy: 670, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Medic_II_(Civ5) rotate: false - xy: 901, 17 + xy: 670, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Mobility_(Civ5) rotate: false - xy: 923, 17 + xy: 692, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Operational_Range_(Civ5) rotate: false - xy: 945, 17 + xy: 714, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Range_(Civ5) rotate: false - xy: 945, 17 + xy: 714, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_III_(Civ5) rotate: false - xy: 967, 17 + xy: 736, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_II_(Civ5) rotate: false - xy: 989, 17 + xy: 758, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_I_(Civ5) rotate: false - xy: 1011, 17 + xy: 780, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Sentry_(Civ5) rotate: false - xy: 1033, 17 + xy: 802, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_III_(Civ5) rotate: false - xy: 1055, 17 + xy: 824, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_II_(Civ5) rotate: false - xy: 1077, 17 + xy: 846, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_I_(Civ5) rotate: false - xy: 1099, 17 + xy: 868, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Siege_(Civ5) rotate: false - xy: 1121, 17 + xy: 890, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Siege_I_(Civ5) rotate: false - xy: 1121, 17 + xy: 890, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Siege_III_(Civ5) rotate: false - xy: 1143, 17 + xy: 912, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Siege_II_(Civ5) rotate: false - xy: 1165, 17 + xy: 934, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Sortie_(Civ5) rotate: false - xy: 1187, 17 + xy: 956, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_III_(Civ5) rotate: false - xy: 1209, 17 + xy: 978, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_II_(Civ5) rotate: false - xy: 1231, 17 + xy: 1000, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_I_(Civ5) rotate: false - xy: 1253, 17 + xy: 1022, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_I_(air)_(Civ5) rotate: false - xy: 1253, 17 + xy: 1022, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Volley_(Civ5) rotate: false - xy: 1275, 17 + xy: 1044, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack_III_(Civ5) rotate: false - xy: 1297, 17 + xy: 1066, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack_II_(Civ5) rotate: false - xy: 1319, 17 + xy: 1088, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack_I_(Civ5) rotate: false - xy: 440, 679 + xy: 1110, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Woodsman_(Civ5) rotate: false - xy: 2453, 1319 + xy: 1132, 4 size: 20, 20 orig: 20, 20 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index fe3335b1e2..0233874d1c 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/Buildings.json b/android/assets/jsons/Buildings.json index 6b62b13840..1a601f6963 100644 --- a/android/assets/jsons/Buildings.json +++ b/android/assets/jsons/Buildings.json @@ -333,14 +333,14 @@ production:2, specialistSlots:{production:1}, hurryCostModifier:25, - percentStatBonus:{production:15}, + percentStatBonus:{production:10}, requiredTech:"Metal Casting" }, - /* { name:"Longhouse", replaces:"Workshop", uniqueTo:"Iroquois", + cost:140, maintenance:2, production:2, specialistSlots:{production:1}, @@ -348,7 +348,6 @@ uniques:["Forests provide +1 production"], requiredTech:"Metal Casting" }, - */ { name:"Forge", maintenance:1, @@ -454,7 +453,7 @@ greatPersonPoints:{gold:1}, isWonder:true, requiredTech:"Physics", - quote:"Architecture has recorded the great ideas of the human race. Not only every religious symbol, but every human thought has its page in that vast book.' - Victor Hugo" + quote:"'Architecture has recorded the great ideas of the human race. Not only every religious symbol, but every human thought has its page in that vast book.' - Victor Hugo" }, { name:"Armory", @@ -501,7 +500,6 @@ requiredBuilding:"Market", requiredTech:"Banking" }, - /* { name:"Satrap's Court", replaces:"Bank", @@ -511,11 +509,9 @@ happiness:2, hurryCostModifier:15, percentStatBonus:{gold:25}, - uniques:["+1 Gold per incoming trade route (and +1 Gold for the foreign owner)"], requiredBuilding:"Market", requiredTech:"Banking" }, - */ { name:"Hanse", replaces:"Bank", diff --git a/android/assets/jsons/Nations.json b/android/assets/jsons/Nations/Nations.json similarity index 99% rename from android/assets/jsons/Nations.json rename to android/assets/jsons/Nations/Nations.json index 05763358ed..3a850db279 100644 --- a/android/assets/jsons/Nations.json +++ b/android/assets/jsons/Nations/Nations.json @@ -541,6 +541,84 @@ "Changwon","Andong","Gongju","Haeju","Cheongju","Mokpo","Dongducheon","Geoje","Suncheon","Jinju","Sangju", "Rason","Gyeongju","Chungju","Sacheon","Gimje","Anju"] }, + + { + name:"Iroquois", + leaderName:"Hiawatha", + adjective:["Irochese"], + startBias:["Forest"], + preferredVictoryType:"Scientific", + + startIntroPart1: "Greetings, noble Hiawatha, leader of the mighty Iroquois nations! Long have your people lived near the great and holy lake Ontario in the land that has come to be known as the New York state in North America. In the mists of antiquity, the five peoples of Seneca, Onondaga, Mohawks, Cayugas and Oneida united into one nation, the Haudenosaunee, the Iroquois. With no written language, the wise men of your nation created the great law of peace, the model for many contitutions including that of the United States. For many years, your people battled great enemies, such as the Huron, and the French and English invaders. Tought outnumbered and facing weapons far more advanced than the ones your warriors wielded, the Iroquois survived and prospered, until they were finally overwhelmed by the mighty armies of the new United States." + startIntroPart2: "Oh noble Hiawatha, listen to the cries of your people! They call out to you to lead them in peace and war, to rebuild the great longhouse and unite the tribes once again. Will you accept this challenge, great leader? Will you build a civilization that will stand the test of time?" + + declaringWar:"You are a plague upon Mother Earth! Prepare for battle!" + attacked:"You evil creature! My braves will slaughter you!" + defeated:"You have defeated us... but our spirits will never be vanquished! We shall return!" + introduction:"Greetings, stranger. I am Hiawatha, speaker for the Iroquois. We seek peace with all, but we do not shrink from war." + + neutralHello:"Good day." + neutralLetsHearIt:["Yes?","I'm listening"] + neutralNo:["No.","Certainly not."] + neutralYes:["Very well.","Alright."] + + hateHello:"Oh, it's you." + hateLetsHearIt:["I'm listening.","Speak."] + hateNo:["That's unacceptable","You cannot be serious!"] + hateYes:["I suppose I must.","Very well."] + + afterPeace:"I thank you for your mercy. I pray that we can now be friends." + tradeRequest:"Does this trade work for you, my friend?" + + outerColor:[54,72,72], + innerColor:[246,205,137], + uniqueName:"The Great Warpath" + unique:"All units move through Forest and Jungle tiles in friendly territory as if it is Road. These tiles can be used to establish City Connections upon researching the Wheel.", + cities:["Onoondaga","Osininka","Grand River","Akwesasme","Buffalo Creek","Brantford","Montreal","Genesse River", + "Canandaigua Lake","Lake Simcoe","Salamanca","Gowanda","Cuba","Akron","Kanesatake","Ganienkeh","Cayuga Castle", + "Chondote","Canajoharie","Nedrow","Oneida Lake","Kanonwalohale","Green Bay","Southwold","Mohawk Valley", + "Schoharie","Bay of Quinte","Kanawale","Kanatsiokareke","Tyendinaga","Hahta"] + }, + { + name:"Persia", + leaderName:"Darius I", + adjective:["Persian"], + preferredVictoryType:"Scientific", + + startIntroPart1: "The blessings of heaven be upon you, beloved king Darius of Persia! You lead a strong and wise people. In the morning of the world, the great Persian leader Cyrus revolted against the mighty Median empire and by 550 BC, the Medes were no more. Through cunning diplomacy and military prowess, great Cyrus conquered wealthy Lydia and powerful Babylon. His son conquering proud Egypt some years later. Over time, Persian might expanded into far away Macedonia, at the very door of the upstart Greek city-states. Long would Persia prosper until the upstart villain Alexander of Macedon, destroyed the great empire in one shocking campaign." + startIntroPart2: "Darius, your people look to you to once again bring back the days of power and glory for Persia! The empire of your ancestors must emerge again, to triumph over its foes and to bring peace and order to the world! O king, will you answer the call? Can you build a civilization that will stand the test of time?" + + declaringWar:"Your continue existence is an embarrassment to all leaders everywhere! You must be destroyed!" + attacked:"Curse you! You are beneath me, son of a donkey driver! I will crush you!" + defeated:"You mongrel! Cursed be you! The world will long lament your heinous crime!" + introduction:"Peace be on you! I am Darius, the great and outstanding king of kings of great Persia... but I suppose you knew that." + + neutralHello:"Good day to you!" + neutralLetsHearIt:["Go on.","You said?"] + neutralNo:["You are not serious!","Not good enough."] + neutralYes:["Good!","Certainly.","Agreed!"] + + hateHello:"Ahh... you..." + hateLetsHearIt:["I'm listening.","Go on!"] + hateNo:["We say... no!","Of course not!"] + hateYes:["Alright!","Agreed."] + + afterPeace:"It appears we should call it a tie..." + tradeRequest:"In my endless magnanimity, I am making you this offer. You agree, of course?" + + outerColor:[153,5,3], + innerColor:[244,232,54], + uniqueName:"Achaemenid Legacy" + unique:"Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strength", + cities:["Persepolis","Parsagadae","Susa","Ecbatana","Tarsus","Gordium","Bactra","Sardis","Ergili","Dariushkabir", + "Ghulaman","Zohak","Istakhr","Jinjan","Borazjan","Herat","Dakyanus","Bampur","Turengtepe","Rey","Shiraz", + "Thuspa","Hasanlu","Gabae","Merv","Behistun","Kandahar","Altintepe","Bunyan","Charsadda","Uratyube", + "Dura Europos","Aleppo","Qatna","Kabul","Capisa","Kyreskhata","Marakanda","Peshawar","Van","Pteira","Arshada", + "Artakaona","Aspabota","Autiyara","Bagastana","Baxtri","Darmasa","Daphnai","Drapsaka","Eion","Gandutava", + "Gaugamela","Harmozeia","Ekatompylos","Izata","Kampada","Kapisa","Karmana","Kounaxa","Kuganaka","Nautaka", + "Paishiyauvada","Patigrbana","Phrada"] + }, + /* { name:"Australia", @@ -771,45 +849,6 @@ "Huaras","Riobamba","Caxamalca","Sausa","Tambo Colorado","Huaca","Tumbes","Chan Chan","Sipan","Pachacamac", "Llactapata","Pisac","Kuelap","Pajaten","Chucuito","Choquequirao"] } - { - name:"Persian", - leaderName:"Darius I", - adjective:["Persian"], - preferredVictoryType:"Scientific", - - startIntroPart1: "The blessings of heaven be upon you, beloved king Darius of Persia! You lead a strong and wise people. In the morning of the world, the great Persian leader Cyrus revolted against the mighty Median empire and by 550 BC, the Medes were no more. Through cunning diplomacy and military prowess, great Cyrus conquered wealthy Lydia and powerful Babylon. His son conquering proud Egypt some years later. Over time, Persian might expanded into far away Macedonia, at the very door of the upstart Greek city-states. Long would Persia prosper until the upstart villain Alexander of Macedon, destroyed the great empire in one shocking campaign." - startIntroPart2: "Darius, your people look to you to once again bring back the days of power and glory for Persia! The empire of your ancestors must emerge again, to triumph over its foes and to bring peace and order to the world! O king, will you answer the call? Can you build a civilization that will stand the test of time?" - - declaringWar:"Your continue existence is an embarrassment to all leaders everywhere! You must be destroyed!" - attacked:"Curse you! You are beneath me, son of a donkey driver! I will crush you!" - defeated:"You mongrel! Cursed be you! The world will long lament your heinous crime!" - introduction:"Peace be on you! I am Darius, the great and outstanding king of kings of great Persia... but I suppose you knew that." - - neutralHello:"Good day to you!" - neutralLetsHearIt:["Go on.","You said?"] - neutralNo:["You are not serious!","Not good enough."] - neutralYes:["Good!","Certainly.","Agreed!"] - - hateHello:"Ahh... you..." - hateLetsHearIt:["I'm listening.","Go on!"] - hateNo:["We say... no!","Of course not!"] - hateYes:["Alright!","Agreed."] - - afterPeace:"It appears we should call it a tie..." - tradeRequest:"In my endless magnanimity, I am making you this offer. You agree, of course?" - - outerColor:[255,0,0], - innerColor:[255,255,0], - uniqueName:"Achaemenid Legacy" - unique:"Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strenght", - cities:["Persepolis","Parsagadae","Susa","Ecbatana","Tarsus","Gordium","Bactra","Sardis","Ergili","Dariushkabir", - "Ghulaman","Zohak","Istakhr","Jinjan","Borazjan","Herat","Dakyanus","Bampur","Turengtepe","Rey","Shiraz", - "Thuspa","Hasanlu","Gabae","Merv","Behistun","Kandahar","Altintepe","Bunyan","Charsadda","Uratyube", - "Dura Europos","Aleppo","Qatna","Kabul","Capisa","Kyreskhata","Marakanda","Peshawar","Van","Pteira","Arshada", - "Artakaona","Aspabota","Autiyara","Bagastana","Baxtri","Darmasa","Daphnai","Drapsaka","Eion","Gandutava", - "Gaugamela","Harmozeia","Ekatompylos","Izata","Kampada","Kapisa","Karmana","Kounaxa","Kuganaka","Nautaka", - "Paishiyauvada","Patigrbana","Phrada"] - }, { name:"Polynesia", leaderName:"Kamehameha I", @@ -920,43 +959,6 @@ "Nan","Tak","Suphanburi","Hongsawadee","Thawaii","Ayutthuya","Taphan Hin","Uthai Thani","Lap Buri","Ratchasima", "Ban Phai","Loci","Khan Kaen","Surin"] }, - { - name:"Iroquois", - leaderName:"Hiawatha", - adjective:["Irochese"], - startBias:["Forest"], - preferredVictoryType:"Scientific", - - startIntroPart1: "Greetings, noble Hiawatha, leader of the mighty Iroquois nations! Long have your people lived near the great and holy lake Ontario in the land that has come to be known as the New York state in North America. In the mists of antiquity, the five peoples of Seneca, Onondaga, Mohawks, Cayugas and Oneida united into one nation, the Haudenosaunee, the Iroquois. With no written language, the wise men of your nation created the great law of peace, the model for many contitutions including that of the United States. For many years, your people battled great enemies, such as the Huron, and the French and English invaders. Tought outnumbered and facing weapons far more advanced than the ones your warriors wielded, the Iroquois survived and prospered, until they were finally overwhelmed by the mighty armies of the new United States." - startIntroPart2: "Oh noble Hiawatha, listen to the cries of your people! They call out to you to lead them in peace and war, to rebuild the great longhouse and unite the tribes once again. Will you accept this challenge, great leader? Will you build a civilization that will stand the test of time?" - - declaringWar:"You are a plague upon Mother Earth! Prepare for battle!" - attacked:"You evil creature! My braves will slaughter you!" - defeated:"You have defeated us... but our spirits will never be vanquished! We shall return!" - introduction:"Greetings, stranger. I am Hiawatha, speaker for the Iroquois. We seek peace with all, but we do not shrink from war." - - neutralHello:"Good day." - neutralLetsHearIt:["Yes?","I'm listening"] - neutralNo:["No.","Certainly not."] - neutralYes:["Very well.","Alright."] - - hateHello:"Oh, it's you." - hateLetsHearIt:["I'm listening.","Speak."] - hateNo:["That's unacceptable","You cannot be serious!"] - hateYes:["I suppose I must.","Very well."] - - afterPeace:"I thank you for your mercy. I pray that we can now be friends." - tradeRequest:"Does this trade work for you, my friend?" - - outerColor:[0,25,51], - innerColor:[255,255,102], - uniqueName:"The Great Warpath" - unique:"All units move through Forest and Jungle tiles in friendly territory as if it is Road. These tiles can be used to establish City Connections upon researching the Wheel.", - cities:["Onoondaga","Osininka","Grand River","Akwesasme","Buffalo Creek","Brantford","Montreal","Genesse River", - "Canandaigua Lake","Lake Simcoe","Salamanca","Gowanda","Cuba","Akron","Kanesatake","Ganienkeh","Cayuga Castle", - "Chondote","Canajoharie","Nedrow","Oneida Lake","Kanonwalohale","Green Bay","Southwold","Mohawk Valley", - "Schoharie","Bay of Quinte","Kanawale","Kanatsiokareke","Tyendinaga","Hahta"] - }, { //NEEDS SNOW AND ICE name:"Denmark", diff --git a/android/assets/jsons/Nations_Italian.json b/android/assets/jsons/Nations/Nations_Italian.json similarity index 100% rename from android/assets/jsons/Nations_Italian.json rename to android/assets/jsons/Nations/Nations_Italian.json diff --git a/android/assets/jsons/Nations_Simplified_Chinese.json b/android/assets/jsons/Nations/Nations_Simplified_Chinese.json similarity index 100% rename from android/assets/jsons/Nations_Simplified_Chinese.json rename to android/assets/jsons/Nations/Nations_Simplified_Chinese.json diff --git a/android/assets/jsons/Translations/Buildings.json b/android/assets/jsons/Translations/Buildings.json index 345f5ad5a6..61c86ba2ca 100644 --- a/android/assets/jsons/Translations/Buildings.json +++ b/android/assets/jsons/Translations/Buildings.json @@ -78,6 +78,10 @@ Portuguese:"Stonehenge" Polish:"Stonehenge" } + + "'Time crumbles things; everything grows old and is forgotten under the power of time' - Aristotle":{ + Italian:"'Il tempo sgretola le cose; davanti al suo potere tutto invecchia e viene dimenticato.' - Aristotele" + } "Library":{ Italian:"Biblioteca" @@ -127,6 +131,10 @@ Polish:"Wielka Biblioteka" } + "'Libraries are as the shrine where all the relics of the ancient saints, full of true virtue, and all that without delusion or imposture are preserved and reposed.' - Sir Francis Bacon":{ + Italian:"'Le biblioteche sono come una cappella in cui sono conservate e protette tutte le reliquie dei santi antichi, colme di vera virtù, e tutto ciò che è privo di illusione e inganno' - Sir Francis Bacon" + } + "Circus":{ Italian:"Circo" Russian:"Цирк" @@ -171,6 +179,10 @@ Polish:"Piramidy" } + "'O, let not the pains of death which come upon thee enter into my body. I am the god Tem, and I am the foremost part of the sky, and the power which protecteth me is that which is with all the gods forever.' - The Book of the Dead, translated by Sir Ernest Alfred Wallis Budge":{ + Italian:"''Oh, non lasciare che i dolori della morte che piombano su di te entrino nel mio corpo. Io sono il dio Tem, e risiedo nella parte più importante del cielo, e il potere che mi protegge è quello che si accompagna per sempre a tutti gli dèi.' - Il Libro dei Morti, traduzione di Sir Ernest Alfred Wallis Budge" + } + "Worker construction increased 25%":{ //typo? Removed one instance of "Worker construction increased" Italian:"+25% velocità costruzione lavoratori" Russian:"Увеличивает на 25% скорость создания улучшений на клетках" @@ -239,6 +251,10 @@ Russian:"Колосс Родосский" } + "'Why man, he doth bestride the narrow world like a colossus, and we petty men walk under his huge legs, and peep about to find ourselves dishonorable graves.' - William Shakespeare, Julius Caesar":{ + Italian:"'Già, lui cavalca questo stretto mondo ormai come un colosso; e noi, gli omuncoli, passiamo sotto le sue gambe enormi e ci scrutiamo intorno, per ritrovarci tutti quanti siamo come tanti sepolcri senza onore' - William Shakespeare: Giulio Cesare" + } + "+1 gold from worked water tiles in city":{ Italian:"+1 Oro per ogni risorsa anfibia sfruttata dalla città." Simplified_Chinese:"所在城市每个水上地块+1金钱" @@ -290,6 +306,10 @@ Polish:"Wyrocznia" } + "'The ancient Oracle said that I was the wisest of all the Greeks. It is because I alone, of all the Greeks, know that I know nothing' - Socrates":{ + Italian:"'L'antico Oracolo ha detto che sono il più saggio di tutti i greci. Questo perché io solo, di tutti i greci, so di non sapere nulla.' - Socrate" + } + "Free Social Policy":{ Italian:"Ricevi una politica sociale gratuita" Russian:"Бесплатный общественный институт" @@ -327,6 +347,10 @@ Polish:"Chichen Itza" } + "'The katun is established at Chichen Itza. The settlement of the Itza shall take place there. The quetzal shall come, the green bird shall come. Ah Kantenal shall come. It is the word of God. The Itza shall come.' - The Books of Chilam Balam":{ + Italian:"'Il katun è stabilito a Chichèn Itzà. L'insediamento degli Itzà avrà luogo. Arriverà il quetzal, arriverà l'uccello verde. Ah Kantenal arriverà. È la parola di Dio. Gli Itzà arriveranno. - I Libri di Chilam Balam" + } + "Golden Age length increases +50%":{ Italian:"+50% durata dell'Età dell'Oro" Russian:"Длина золотого века +50%" @@ -385,6 +409,10 @@ Russian:"Фаросский маяк" } + "'They that go down to the sea in ships, that do business in great waters; these see the works of the Lord, and his wonders in the deep.' - The Bible, Psalms 107:23-24":{ + Italian:"'Ecco quelli che scendon nel mare su navi, che trafficano sulle grandi acque; essi veggono le opere dell'Eterno e le sue meraviglie nell'abisso.' - Salmi 107:23-24" + } + "All military naval units receive +1 movement and +1 sight":{ Spanish:"Todas las unidades militares navales reciben +1de movimiento y +1 de vision" Italian:"+1 Movimento e +1 Visione per ogni unità militare marittima" @@ -456,6 +484,10 @@ Polish:"Wiszące Ogrody" } + "'I think that if ever a mortal heard the word of God it would be in a garden at the cool of the day.' - F. Frankfort Moore":{ + Italian:"'Penso che se mai un mortale ha sentito la voce di Dio, sarà stato in un giardino sul far della sera.' - F. Frankfort Moore" + } + /* //New Wonder: Statue of Zeus! Suggested by Smashfanful "Statue of Zeus":{ @@ -507,6 +539,10 @@ Polish:"Terakotowa armia" Russian:"Терракотовая армия" } + + "'Regard your soldiers as your children, and they will follow you into the deepest valleys; look on them as your own beloved sons, and they will stand by you even unto death.' - Sun Tzu":{ + Italian:"'Trattate i soldati come figli, e vi seguiranno nelle valli più profonde; considerateli la vostra amata progenie, e resteranno accanto a voi fino alla morte.' - Sun Tzu" + } "Market":{ Italian:"Mercato" @@ -576,6 +612,10 @@ German:"Notre-Dame" Polish:"Notre Dame" } + + "Architecture has recorded the great ideas of the human race. Not only every religious symbol, but every human thought has its page in that vast book.' - Victor Hugo":{ + Italian:"'L'architettura ha registrato le più grandi idee della razza umana. Non solo ogni simbolo religioso, ma ogni pensiero umano ha la sua pagina in quel vasto libro.' - Victor Hugo" + } "Hagia Sophia":{ Italian:"Hagia Sophia" @@ -589,6 +629,10 @@ Polish:"Hagia Sophia" } + "'For it soars to a height to match the sky, and as if surging up from among the other buildings it stands on high and looks down upon the remainder of the city, adorning it, because it is a part of it, but glorying in its own beauty' - Procopius, De Aedificis":{ + Italian:"'Perché si erge così alta da toccare il cielo, e come fluttuando sugli altri edifici guarda dall'alto in basso il resto della città, abbellendola, perché fa parte di essa, ma gloriandosi della propria bellezza.' - Procopio, De Aedificis (Sugli edifici)" + } + "+33% great person generation in all cities":{ Italian:"+33% di generazione di Grandi Personaggi in tutte le città" Russian:"+33% к созданию великих людей во всех городах" @@ -626,6 +670,10 @@ Polish:"Machu Picchu" } + "'Few romances can ever surpass that of the granite citadel on top of the beetling precipices of Machu Picchu, the crown of Inca Land.' - Hiram Bingham":{ + Italian:"'Pochi racconti fantastici possono sorpassare quello della cittadella di granito sospesa in cima ai precipizi, Machu Picchu, la corona delle terre degli Inca.' - Hiram Bingham" + } + "Gold from all trade routes +25%":{ Italian:"+25% oro da ogni rotta commerciale" Russian:"Золото со всех торговых путей + 25%" @@ -672,6 +720,10 @@ Russian:"Великая стена" } + "'The art of war teaches us to rely not on the likelihood of the enemy's not attacking, but rather on the fact that we have made our position unassailable.' - Sun Tzu":{ + Italian:"'L'arte della guerra ci insegna a non affidarci alla possibilità che il nemico... non ci attacchi, ma piuttosto alla certezza di aver reso la nostra posizione inattaccabile.' - Sun Tzu" + } + "Enemy land units must spend 1 extra movement point when inside your territory (obsolete upon Dynamite)":{ Italian:"Le unità nemiche impiegano un punto Movimento extra se all'interno del tuo territorio (diventa obsoleta con la Dinamite)." Simplified_Chinese:"境内敌方陆军单位在任何地块额外消耗1移动力" @@ -691,9 +743,8 @@ German:"Werkstatt" Polish:"Warsztat" } - - /* - "Longhouse":{ //Irochese unique + + "Longhouse":{ // Iroquois unique Italian:"Casa Lunga" French:"Longère" Polish:"Długi dom" @@ -704,7 +755,6 @@ French:"+1 production pour chaque cases de forêt exploitées par la ville." Polish:"+1 do produkcji za każde pracujące pole lasu" } - */ "Forge":{ Italian:"Fucina" @@ -828,6 +878,10 @@ Russian:"Альгамбра" } + "'Justice is an unassailable fortress, built on the brow of a mountain which cannot be overthrown by the violence of torrents, nor demolished by the force of armies.' - Joseph Addison":{ + Italian:"'La giustizia è una fortezza inespugnabile, costruita sulla cresta di una montagna che non può essere rovesciata dalla violenza dei torrenti né demolita dalla forza degli eserciti.' - Joseph Addison" + } + "All newly-trained melee, mounted, and armored units in this city receive the Drill I promotion":{ Italian:"Ogni unità da mischia, a cavallo e corazzata appena reclutata nella città riceve la promozione Addestramento I" German:"Alle neuen Nahkampf-, berittenen und gepanzerten Einheiten in dieser Stadt erhalten eine Drill I Beförderung" @@ -849,6 +903,10 @@ Polish:"Angkor Wat" } + "'The temple is like no other building in the world. It has towers and decoration and all the refinements which the human genius can conceive of.' - Antonio da Magdalena":{ + Italian:"'Il tempio non ha eguali nel mondo. Ha torri e decorazioni e tutti gli abbellimenti che il genio dell'uomo può concepire.' - Antonio da Magdalena" + } + "Cost of acquiring new tiles reduced by 25%":{ Italian:"-25% costo per l'acquisto di nuove celle" Russian:"Сокращает стоимость приобретения новых клеток на 25%" @@ -1063,6 +1121,7 @@ } "Get ":{ + Italian:"Ottieni " Simplified_Chinese:"获得" } diff --git a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json index d075839c51..08bd703287 100644 --- a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json +++ b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json @@ -531,11 +531,14 @@ "Type: ":{ Italian:"Tipo: " Simplified_Chinese:"城邦类型:" + Russian:"Тип: " + } "Influence: ":{ Italian:"Influenza: " Simplified_Chinese:"影响力:" + Russian:"Влияние: " } ////// Trade @@ -756,6 +759,7 @@ "Introduction to [nation]":{ Italian:"Introduci a [nation]" Simplified_Chinese:"介绍认识[nation]" + Russian:"Представиться [nation]" } "Luxury resources":{ @@ -858,7 +862,7 @@ Italian:"Alessandro" French:"Alexandre le Grand" Simplified_Chinese:"亚历山大" - Russian:"Александр Македонский" + Russian:"Александр" }, "City-State Influence degrades at half and recovers at twice the normal rate": { @@ -1214,20 +1218,39 @@ Russian:"+2 Наука для всех специалистов и улучшений клеток Великими людьми." } - /* "Iroquois":{ Italian:"Irochese" French:"Iroquois" Portuguese:"Tribo Iroquois" //tribo meaning tribe of course } + + "Hiawatha":{ + } "Units move through Forest and Jungle in friendly territory as if it is a Road. These tiles can be used to establish Trade Routes upon searching The Wheel.":{ Italian:"Le caselle di Foreste e Giungle in territorio amico agiscono come strade, e sono usate per stabilire Rotte Commerciali quando si scopre la Ruota." Portuguese:"Mova-se por florestas e selvas em território amigo como se fossem estradas. Estas terras podem ser usadas para estabelecer rotas de comércio após pesquisar a roda." French:"Les Forêt et les Jungles en territoire alliés ont les mêmes attributs que les routes. A la découverte de la Roue, elles peuvent établir des routes commerciales." } + + + "Persia":{ + Italian:"Persia" + French:"Perse" + Portuguese:"Pérsia" + } + + "Darius I":{ + } + "Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and a +10% Combat Strenght bonus.":{ + Italian:"+50% durata delle Età dell'Oro, durante le quali le unità ricevono +1 Movimento e +10% Forza." + Portuguese:"Idades douradas duram 50% mais, unidades recebem 1 movimento a mais e um bonus de +10% em força de combate." + French:"Les Ages d'Or durent 50% plus longtemps. Durant les Ages d'Or, les unités gagnent +1 mouvement et +10% de force de Combat." + } + + /* "Aztecs":{ Italian:"Azteca" French:"Aztèques" @@ -1306,17 +1329,6 @@ French:"Peut embarquer et bouger sur les océans dès le début. +1 Vision lorsque embarqué." } - "Persia":{ - Italian:"Persia" - French:"Perse" - Portuguese:"Pérsia" - } - - "Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and a +10% Combat Strenght bonus.":{ - Italian:"+50% durata delle Età dell'Oro, durante le quali le unità ricevono +1 Movimento e +10% Forza." - Portuguese:"Idades douradas duram 50% mais, unidades recebem 1 movimento a mais e um bonus de +10% em força de combate." - French:"Les Ages d'Or durent 50% plus longtemps. Durant les Ages d'Or, les unités gagnent +1 mouvement et +10% de force de Combat." - } */ diff --git a/android/assets/jsons/Translations/Units,Promotions.json b/android/assets/jsons/Translations/Units,Promotions.json index 3398169971..e652e08f86 100644 --- a/android/assets/jsons/Translations/Units,Promotions.json +++ b/android/assets/jsons/Translations/Units,Promotions.json @@ -382,6 +382,12 @@ French:"Hoplite" } + "Immortal":{ // Persian unique + } + + "+10 HP when healing":{ + } + ////// Classical Era Units "Composite Bowman":{ @@ -439,6 +445,12 @@ German:"Schwertkämpfer" } + "Mohawk Warrior":{ + } + + "+33% combat bonus in Forest/Jungle":{ + } + "Legion":{ Italian:"Legionario" Romanian:"Legionar" diff --git a/android/assets/jsons/Units.json b/android/assets/jsons/Units.json index b67d3e9083..b6e0cd36fe 100644 --- a/android/assets/jsons/Units.json +++ b/android/assets/jsons/Units.json @@ -243,11 +243,10 @@ hurryCostModifier:20, attackSound:"metalhit" }, - /* { name:"Immortal", replaces:"Spearman", - uniqueTo:"Persian", + uniqueTo:"Persia", unitType:"Melee", movement:2, strength:12, @@ -255,12 +254,10 @@ requiredTech:"Bronze Working", obsoleteTech:"Civil Service", upgradesTo: "Pikeman", - uniques:["Bonus vs Mounted 50%","Heals at double rate"], + uniques:["Bonus vs Mounted 50%","+10 HP when healing"], hurryCostModifier:20, attackSound:"metalhit" - //Persian unique unit }, - */ /* Classical Era */ @@ -322,6 +319,21 @@ hurryCostModifier:20, attackSound:"metalhit" }, + { + name:"Mohawk Warrior", + unitType:"Melee", + replaces:"Swordsman", + uniqueTo:"Iroquois", + movement:2, + strength:14, + cost: 75, + requiredTech:"Iron Working", + upgradesTo:"Longswordsman", + obsoleteTech:"Steel", + uniques:["+33% combat bonus in Forest/Jungle"] + hurryCostModifier:20, + attackSound:"metalhit" + }, { name:"Legion", unitType:"Melee", @@ -338,7 +350,6 @@ hurryCostModifier:20, attackSound:"metalhit" }, - /* { name:"Mohawk Warrior", unitType:"Melee", @@ -353,9 +364,7 @@ hurryCostModifier:20, uniques:["Combat Bonus in Forest/Jungle 33%"], attackSound:"metalhit" - //Iroquese unique unit. Bonus when fighting in Jungles and Forests. Doesn't require Iron. }, - */ { name:"Horseman", unitType:"Mounted", diff --git a/android/build.gradle b/android/build.gradle index 737d66056a..53a364e108 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -21,8 +21,8 @@ android { applicationId "com.unciv.app" minSdkVersion 14 targetSdkVersion 29 - versionCode 297 - versionName "3.0.4" + versionCode 298 + versionName "3.0.5" } // Had to add this crap for Travis to build, it wanted to sign the app diff --git a/core/src/com/unciv/logic/GameInfo.kt b/core/src/com/unciv/logic/GameInfo.kt index 9c4231717f..45584dacbc 100644 --- a/core/src/com/unciv/logic/GameInfo.kt +++ b/core/src/com/unciv/logic/GameInfo.kt @@ -41,6 +41,7 @@ class GameInfo { toReturn.difficulty=difficulty toReturn.gameParameters = gameParameters toReturn.gameId = gameId + toReturn.oneMoreTurnMode = oneMoreTurnMode return toReturn } diff --git a/core/src/com/unciv/logic/battle/BattleDamage.kt b/core/src/com/unciv/logic/battle/BattleDamage.kt index 2a607df96d..df543a0134 100644 --- a/core/src/com/unciv/logic/battle/BattleDamage.kt +++ b/core/src/com/unciv/logic/battle/BattleDamage.kt @@ -1,5 +1,6 @@ package com.unciv.logic.battle +import com.unciv.Constants import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo import com.unciv.models.gamebasics.unit.UnitType @@ -40,47 +41,49 @@ class BattleDamage{ for (BDM in getBattleDamageModifiersOfUnit(combatant.unit)) { if (BDM.vs == enemy.getUnitType().toString()) addToModifiers(BDM) - if(BDM.vs == "wounded units" && enemy is MapUnitCombatant && enemy.getHealth()<100) + if (BDM.vs == "wounded units" && enemy is MapUnitCombatant && enemy.getHealth() < 100) addToModifiers(BDM) - if(BDM.vs == "land units" && enemy.getUnitType().isLandUnit()) + if (BDM.vs == "land units" && enemy.getUnitType().isLandUnit()) addToModifiers(BDM) - if(BDM.vs == "water units" && enemy.getUnitType().isWaterUnit()) + if (BDM.vs == "water units" && enemy.getUnitType().isWaterUnit()) addToModifiers(BDM) - if(BDM.vs == "air units" && enemy.getUnitType().isAirUnit()) + if (BDM.vs == "air units" && enemy.getUnitType().isAirUnit()) addToModifiers(BDM) } //https://www.carlsguides.com/strategy/civilization5/war/combatbonuses.php val civHappiness = combatant.getCivInfo().getHappiness() if (civHappiness < 0) - modifiers["Unhappiness"] = max(0.02f * civHappiness,-0.9f) // otherwise it could exceed -100% and start healing enemy units... + modifiers["Unhappiness"] = max(0.02f * civHappiness, -0.9f) // otherwise it could exceed -100% and start healing enemy units... - if(combatant.getCivInfo().policies.isAdopted("Populism") && combatant.getHealth() < 100){ + if (combatant.getCivInfo().policies.isAdopted("Populism") && combatant.getHealth() < 100) { modifiers["Populism"] = 0.25f } - if(combatant.getCivInfo().policies.isAdopted("Discipline") && combatant.isMelee() - && combatant.getTile().neighbors.flatMap { it.getUnits() } - .any { it.civInfo==combatant.getCivInfo() && !it.type.isCivilian() && !it.type.isAirUnit()}) + if (combatant.getCivInfo().policies.isAdopted("Discipline") && combatant.isMelee() + && combatant.getTile().neighbors.flatMap { it.getUnits() } + .any { it.civInfo == combatant.getCivInfo() && !it.type.isCivilian() && !it.type.isAirUnit() }) modifiers["Discipline"] = 0.15f val requiredResource = combatant.unit.baseUnit.requiredResource - if(requiredResource!=null && combatant.getCivInfo().getCivResourcesByName()[requiredResource]!!<0 - && !combatant.getCivInfo().isBarbarian()){ - modifiers["Missing resource"]=-0.25f + if (requiredResource != null && combatant.getCivInfo().getCivResourcesByName()[requiredResource]!! < 0 + && !combatant.getCivInfo().isBarbarian()) { + modifiers["Missing resource"] = -0.25f } - //todo : performance improvement - if (combatant.getUnitType()!=UnitType.City) { - val nearbyCivUnits = combatant.unit.getTile().getTilesInDistance(2) - .filter {it.civilianUnit?.civInfo == combatant.unit.civInfo} - .map {it.civilianUnit} - if (nearbyCivUnits.any { it!!.hasUnique("Bonus for units in 2 tile radius 15%") }) { - modifiers["Great General"]= if (combatant.unit.civInfo.nation.unique == - "Great general provides double combat bonus, and spawns 50% faster") 0.3f - else 0.15f - } + val nearbyCivUnits = combatant.unit.getTile().getTilesInDistance(2) + .filter { it.civilianUnit?.civInfo == combatant.unit.civInfo } + .map { it.civilianUnit } + if (nearbyCivUnits.any { it!!.hasUnique("Bonus for units in 2 tile radius 15%") }) { + val greatGeneralModifier = if (combatant.unit.civInfo.nation.unique == + "Great general provides double combat bonus, and spawns 50% faster") 0.3f + else 0.15f + modifiers["Great General"] = greatGeneralModifier } + + if(combatant.getCivInfo().nation.unique=="Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strength") + modifiers["Golden Age"] = 0.1f + } if (combatant.getCivInfo().policies.isAdopted("Honor") && enemy.getCivInfo().isBarbarian()) @@ -95,22 +98,6 @@ class BattleDamage{ if(attacker is MapUnitCombatant) { modifiers.putAll(getTileSpecificModifiers(attacker,defender.getTile())) - val defenderTile = defender.getTile() - val isDefenderInRoughTerrain = defenderTile.isRoughTerrain() - for (BDM in getBattleDamageModifiersOfUnit(attacker.unit)) { - val text = BDM.getText() - if (BDM.vs == "units in open terrain" && !isDefenderInRoughTerrain) { - if(modifiers.containsKey(text)) - modifiers[text] =modifiers[text]!! + BDM.modificationAmount - else modifiers[text] = BDM.modificationAmount - } - if (BDM.vs == "units in rough terrain" && isDefenderInRoughTerrain) { - if (modifiers.containsKey(text)) - modifiers[text] = modifiers[text]!! + BDM.modificationAmount - else modifiers[text] = BDM.modificationAmount - } - } - for (ability in attacker.unit.getUniques()) { val regexResult = Regex("""Bonus as Attacker [(\d*)]%""").matchEntire(ability) //to do: extend to defender, and penalyy if (regexResult == null) continue @@ -119,6 +106,19 @@ class BattleDamage{ modifiers["Attacker Bonus"] =modifiers["Attacker Bonus"]!! + bonus else modifiers["Attacker Bonus"] = bonus } + + if(attacker.unit.isEmbarked()) + modifiers["Landing"] = -0.5f + + if (attacker.isMelee()) { + val numberOfAttackersSurroundingDefender = defender.getTile().neighbors.count { + it.militaryUnit != null + && it.militaryUnit!!.owner == attacker.getCivInfo().civName + && MapUnitCombatant(it.militaryUnit!!).isMelee() + } + if (numberOfAttackersSurroundingDefender > 1) + modifiers["Flanking"] = 0.1f * (numberOfAttackersSurroundingDefender-1) //https://www.carlsguides.com/strategy/civilization5/war/combatbonuses.php + } } else if (attacker is CityCombatant) { @@ -126,18 +126,7 @@ class BattleDamage{ modifiers["Oligarchy"] = 0.5f } - if (attacker.isMelee()) { - val numberOfAttackersSurroundingDefender = defender.getTile().neighbors.count { - it.militaryUnit != null - && it.militaryUnit!!.owner == attacker.getCivInfo().civName - && MapUnitCombatant(it.militaryUnit!!).isMelee() - } - if (numberOfAttackersSurroundingDefender > 1) - modifiers["Flanking"] = 0.1f * (numberOfAttackersSurroundingDefender-1) //https://www.carlsguides.com/strategy/civilization5/war/combatbonuses.php - } - if(attacker is MapUnitCombatant && attacker.unit.isEmbarked()) - modifiers["Landing"] = -0.5f return modifiers } @@ -155,26 +144,11 @@ class BattleDamage{ if (tileDefenceBonus > 0) modifiers["Terrain"] = tileDefenceBonus } - if(attacker.isRanged()){ - val defenceVsRanged = 0.25f * defender.unit.getUniques().count{it=="+25% Defence against ranged attacks"} - if(defenceVsRanged>0) modifiers["defence vs ranged"] = defenceVsRanged + if(attacker.isRanged()) { + val defenceVsRanged = 0.25f * defender.unit.getUniques().count { it == "+25% Defence against ranged attacks" } + if (defenceVsRanged > 0) modifiers["defence vs ranged"] = defenceVsRanged } - val defenderTile = defender.getTile() - val isDefenderInRoughTerrain = defenderTile.isRoughTerrain() - for (BDM in getBattleDamageModifiersOfUnit(defender.unit)) { - val text = BDM.getText() - if (BDM.vs == "units in open terrain" && !isDefenderInRoughTerrain) { - if (modifiers.containsKey(text)) - modifiers[text] = modifiers[text]!! + BDM.modificationAmount - else modifiers[text] = BDM.modificationAmount - } - if (BDM.vs == "units in rough terrain" && isDefenderInRoughTerrain) { - if (modifiers.containsKey(text)) - modifiers[text] = modifiers[text]!! + BDM.modificationAmount - else modifiers[text] = BDM.modificationAmount - } - } if (defender.unit.isFortified()) modifiers["Fortification"] = 0.2f * defender.unit.getFortificationTurns() @@ -190,6 +164,25 @@ class BattleDamage{ if(!isFriendlyTerritory && unit.unit.hasUnique("+20% bonus outside friendly territory")) modifiers["Foreign Land"] = 0.2f + if(unit.unit.hasUnique("+33% combat bonus in Forest/Jungle") + && (tile.terrainFeature== Constants.forest || tile.terrainFeature==Constants.jungle)) + modifiers[tile.terrainFeature!!]=0.33f + + val isRoughTerrain = tile.isRoughTerrain() + for (BDM in getBattleDamageModifiersOfUnit(unit.unit)) { + val text = BDM.getText() + if (BDM.vs == "units in open terrain" && !isRoughTerrain) { + if (modifiers.containsKey(text)) + modifiers[text] = modifiers[text]!! + BDM.modificationAmount + else modifiers[text] = BDM.modificationAmount + } + if (BDM.vs == "units in rough terrain" && isRoughTerrain) { + if (modifiers.containsKey(text)) + modifiers[text] = modifiers[text]!! + BDM.modificationAmount + else modifiers[text] = BDM.modificationAmount + } + } + return modifiers } diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index b02eb5c2a3..8e3e842204 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -109,8 +109,8 @@ class CivilizationInfo { fun getTranslatedNation(): Nation { val language = UnCivGame.Current.settings.language.replace(" ","_") - if(!Gdx.files.internal("jsons/Nations_$language.json").exists()) return nation - val translatedNation = GameBasics.getFromJson(Array::class.java, "Nations_$language") + if(!Gdx.files.internal("jsons/Nations/Nations_$language.json").exists()) return nation + val translatedNation = GameBasics.getFromJson(Array::class.java, "Nations/Nations_$language") .firstOrNull { it.name==civName} if(translatedNation==null) // this language's trnslation doesn't contain this nation yet, return nation // default to english diff --git a/core/src/com/unciv/logic/civilization/GoldenAgeManager.kt b/core/src/com/unciv/logic/civilization/GoldenAgeManager.kt index 063b143306..d714361d3a 100644 --- a/core/src/com/unciv/logic/civilization/GoldenAgeManager.kt +++ b/core/src/com/unciv/logic/civilization/GoldenAgeManager.kt @@ -27,6 +27,8 @@ class GoldenAgeManager{ fun enterGoldenAge() { var turnsToGoldenAge = 10.0 if (civInfo.containsBuildingUnique("Golden Age length increases +50%")) turnsToGoldenAge *= 1.5 + if(civInfo.nation.unique=="Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strength") + turnsToGoldenAge*=1.5 if (civInfo.policies.isAdopted("Freedom Complete")) turnsToGoldenAge *= 1.5 turnsToGoldenAge *= civInfo.gameInfo.gameParameters.gameSpeed.getModifier() turnsLeftForCurrentGoldenAge += turnsToGoldenAge.toInt() diff --git a/core/src/com/unciv/logic/map/MapUnit.kt b/core/src/com/unciv/logic/map/MapUnit.kt index 07a7f2b6a5..3940dc65a4 100644 --- a/core/src/com/unciv/logic/map/MapUnit.kt +++ b/core/src/com/unciv/logic/map/MapUnit.kt @@ -82,18 +82,21 @@ class MapUnit { fun getMovementString(): String = DecimalFormat("0.#").format(currentMovement.toDouble()) + "/" + getMaxMovement() fun getTile(): TileInfo = currentTile fun getMaxMovement(): Int { - if(isEmbarked()) return getEmbarkedMovement() + if (isEmbarked()) return getEmbarkedMovement() var movement = baseUnit.movement - movement += getUniques().count{it=="+1 Movement"} + movement += getUniques().count { it == "+1 Movement" } - if(type.isWaterUnit() && !type.isCivilian() + if (type.isWaterUnit() && !type.isCivilian() && civInfo.containsBuildingUnique("All military naval units receive +1 movement and +1 sight")) movement += 1 - if(type.isWaterUnit() && civInfo.nation.unique=="+2 movement for all naval units") - movement+=2 - + if (type.isWaterUnit() && civInfo.nation.unique == "+2 movement for all naval units") + movement += 2 + + if(civInfo.nation.unique=="Golden Ages last 50% longer. During a Golden Age, units receive +1 Movement and +10% Strength") + movement+=1 + return movement } @@ -336,11 +339,14 @@ class MapUnit { tile.improvementInProgress = null } - private fun heal(){ - if(isEmbarked()) return // embarked units can't heal + private fun heal() { + if (isEmbarked()) return // embarked units can't heal var amountToHealBy = rankTileForHealing(getTile()) + if (amountToHealBy == 0) return + + if (hasUnique("+10 HP when healing")) amountToHealBy += 10 val adjacentUnits = currentTile.getTilesInDistance(1).flatMap { it.getUnits() } - if(adjacentUnits.isNotEmpty()) + if (adjacentUnits.isNotEmpty()) amountToHealBy += adjacentUnits.map { it.adjacentHealingBonus() }.max()!! healBy(amountToHealBy) } diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index 6ffc42be4d..eac838d6c3 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -143,9 +143,12 @@ open class TileInfo { if (terrainFeature == Constants.jungle && city != null && city.containsBuildingUnique("Jungles provide +2 science")) stats.science += 2f - if(terrainFeature=="Oasis" && city!=null + if (terrainFeature == "Oasis" && city != null && city.containsBuildingUnique("+2 Gold for each source of Oil and oasis")) stats.gold += 2 + if (terrainFeature == Constants.forest && city != null + && city.containsBuildingUnique("Forests provide +1 production")) + stats.production += 1 } if (hasViewableResource(observingCiv)) { diff --git a/core/src/com/unciv/logic/map/UnitMovementAlgorithms.kt b/core/src/com/unciv/logic/map/UnitMovementAlgorithms.kt index c650781f55..258a427ae4 100644 --- a/core/src/com/unciv/logic/map/UnitMovementAlgorithms.kt +++ b/core/src/com/unciv/logic/map/UnitMovementAlgorithms.kt @@ -5,40 +5,46 @@ import com.unciv.Constants import com.unciv.logic.civilization.CivilizationInfo class UnitMovementAlgorithms(val unit:MapUnit) { + + // This function is called ALL THE TIME and should be as time-optimal as possible! private fun getMovementCostBetweenAdjacentTiles(from: TileInfo, to: TileInfo, civInfo: CivilizationInfo): Float { - var cost = getMovementCostBetweenAdjacentTiles(from,to) - val toOwner = to.getOwner() - if(toOwner!=null && to.isLand && civInfo.isAtWarWith(toOwner) && toOwner.hasActiveGreatWall) - cost += 1 - return cost - } - - private fun getMovementCostBetweenAdjacentTiles(from: TileInfo, to: TileInfo): Float { - - if(unit.type.isLandUnit() && (from.isLand != to.isLand)) + if ((from.isLand != to.isLand) && unit.type.isLandUnit()) return 100f // this is embarkment or disembarkment, and will take the entire turn - if (from.roadStatus === RoadStatus.Railroad && to.roadStatus === RoadStatus.Railroad) - return 1 / 10f + var extraCost = 0f - if (from.roadStatus !== RoadStatus.None && to.roadStatus !== RoadStatus.None) //Road + val toOwner = to.getOwner() + if (toOwner != null && to.isLand && toOwner.hasActiveGreatWall && civInfo.isAtWarWith(toOwner)) + extraCost += 1 + + if (from.roadStatus === RoadStatus.Railroad && to.roadStatus === RoadStatus.Railroad) + return 1 / 10f + extraCost + + if (hasRoad(from,civInfo) && hasRoad(to,civInfo)) { - if (unit.civInfo.tech.movementSpeedOnRoadsImproved) return 1 / 3f - else return 1 / 2f + if (unit.civInfo.tech.movementSpeedOnRoadsImproved) return 1 / 3f + extraCost + else return 1 / 2f + extraCost } - if (unit.ignoresTerrainCost) return 1f - if(unit.doubleMovementInForestAndJungle && (to.baseTerrain==Constants.forest || to.baseTerrain==Constants.jungle)) - return 1f + if (unit.ignoresTerrainCost) return 1f + extraCost + if (unit.doubleMovementInForestAndJungle && (to.baseTerrain == Constants.forest || to.baseTerrain == Constants.jungle)) + return 1f + extraCost if (unit.roughTerrainPenalty && (to.baseTerrain == Constants.hill || to.terrainFeature == Constants.forest || to.terrainFeature == Constants.jungle)) - return 4f + return 4f + extraCost - if(unit.doubleMovementInCoast && to.baseTerrain==Constants.coast) - return 1/2f + if (unit.doubleMovementInCoast && to.baseTerrain == Constants.coast) + return 1 / 2f + extraCost - return to.getLastTerrain().movementCost.toFloat() // no road + return to.getLastTerrain().movementCost.toFloat() + extraCost // no road + } + + fun hasRoad(tileInfo:TileInfo, civInfo: CivilizationInfo): Boolean { + if(tileInfo.roadStatus!==RoadStatus.None) return true + if(civInfo.nation.forestsAndJunglesAreRoads && tileInfo.terrainFeature!=null + && (tileInfo.terrainFeature==Constants.jungle || tileInfo.terrainFeature==Constants.forest)) return true + return false } class ParentTileAndTotalDistance(val parentTile:TileInfo, val totalDistance: Float) diff --git a/core/src/com/unciv/models/gamebasics/GameBasics.kt b/core/src/com/unciv/models/gamebasics/GameBasics.kt index bf65702249..d4752d11ef 100644 --- a/core/src/com/unciv/models/gamebasics/GameBasics.kt +++ b/core/src/com/unciv/models/gamebasics/GameBasics.kt @@ -27,7 +27,7 @@ object GameBasics { fun getFromJson(tClass: Class, name: String): T { val jsonText = Gdx.files.internal("jsons/$name.json").readString() - return Json().apply { ignoreUnknownFields=true }.fromJson(tClass, jsonText) + return Json().apply { ignoreUnknownFields = true }.fromJson(tClass, jsonText) } fun createHashmap(items: Array): LinkedHashMap { @@ -38,43 +38,49 @@ object GameBasics { } init { - Buildings += createHashmap(getFromJson(Array::class.java, "Buildings")) - Terrains += createHashmap(getFromJson(Array::class.java, "Terrains")) - TileResources += createHashmap(getFromJson(Array::class.java, "TileResources")) - TileImprovements += createHashmap(getFromJson(Array::class.java, "TileImprovements")) - Units += createHashmap(getFromJson(Array::class.java, "Units")) - UnitPromotions += createHashmap(getFromJson(Array::class.java, "UnitPromotions")) - PolicyBranches += createHashmap(getFromJson(Array::class.java, "Policies")) - Nations += createHashmap(getFromJson(Array::class.java, "Nations")) - Difficulties += createHashmap(getFromJson(Array::class.java, "Difficulties")) - - val techColumns = getFromJson(Array::class.java, "Techs") - for (techColumn in techColumns) { - for (tech in techColumn.techs) { - tech.cost = techColumn.techCost - tech.column = techColumn - Technologies[tech.name] = tech - } + val techColumns = getFromJson(Array::class.java, "Techs") + for (techColumn in techColumns) { + for (tech in techColumn.techs) { + tech.cost = techColumn.techCost + tech.column = techColumn + Technologies[tech.name] = tech } - for (building in Buildings.values) { - if (building.requiredTech == null) continue - val column = building.getRequiredTech().column - if (building.cost == 0) - building.cost = if (building.isWonder || building.isNationalWonder) column!!.wonderCost else column!!.buildingCost - } - - for (branch in PolicyBranches.values) { - branch.requires = ArrayList() - branch.branch = branch.name - for (policy in branch.policies) { - policy.branch = branch.name - if (policy.requires == null) policy.requires = arrayListOf(branch.name) - } - branch.policies.last().name = branch.name + " Complete" - } - - for(file in Gdx.files.internal("jsons/Translations").list()) - Translations.add(file.readString()) } + + Buildings += createHashmap(getFromJson(Array::class.java, "Buildings")) + for (building in Buildings.values) { + if (building.requiredTech == null) continue + val column = building.getRequiredTech().column + if (building.cost == 0) + building.cost = if (building.isWonder || building.isNationalWonder) column!!.wonderCost else column!!.buildingCost + } + + Terrains += createHashmap(getFromJson(Array::class.java, "Terrains")) + TileResources += createHashmap(getFromJson(Array::class.java, "TileResources")) + TileImprovements += createHashmap(getFromJson(Array::class.java, "TileImprovements")) + Units += createHashmap(getFromJson(Array::class.java, "Units")) + UnitPromotions += createHashmap(getFromJson(Array::class.java, "UnitPromotions")) + + PolicyBranches += createHashmap(getFromJson(Array::class.java, "Policies")) + for (branch in PolicyBranches.values) { + branch.requires = ArrayList() + branch.branch = branch.name + for (policy in branch.policies) { + policy.branch = branch.name + if (policy.requires == null) policy.requires = arrayListOf(branch.name) + } + branch.policies.last().name = branch.name + " Complete" + } + + Nations += createHashmap(getFromJson(Array::class.java, "Nations/Nations")) + for(nation in Nations.values) nation.setTransients() + + Difficulties += createHashmap(getFromJson(Array::class.java, "Difficulties")) + + + + for (file in Gdx.files.internal("jsons/Translations").list()) + Translations.add(file.readString()) + } } diff --git a/core/src/com/unciv/models/gamebasics/Nation.kt b/core/src/com/unciv/models/gamebasics/Nation.kt index cfca98478f..b3b3ce301c 100644 --- a/core/src/com/unciv/models/gamebasics/Nation.kt +++ b/core/src/com/unciv/models/gamebasics/Nation.kt @@ -50,18 +50,29 @@ class Nation : INamed { var innerColor: List?=null var startBias = ArrayList() + @Transient private lateinit var outerColorObject:Color + fun getOuterColor(): Color = outerColorObject - fun getColor(): Color { - return colorFromRGB(outerColor[0], outerColor[1], outerColor[2]) - } - fun getSecondaryColor(): Color { - if(innerColor==null) return Color.BLACK - return colorFromRGB(innerColor!![0], innerColor!![1], innerColor!![2]) - } + @Transient private lateinit var innerColorObject:Color + + fun getInnerColor(): Color = innerColorObject fun isCityState()= cityStateType != null fun isMajorCiv() = !isBarbarian() && !isCityState() fun isBarbarian() = name=="Barbarians" + // This is its own transient because we'll need to check this for every tile-to-tile movement which is harsh + @Transient var forestsAndJunglesAreRoads = false + + fun setTransients(){ + outerColorObject = colorFromRGB(outerColor[0], outerColor[1], outerColor[2]) + + if(innerColor==null) innerColorObject = Color.BLACK + else innerColorObject = colorFromRGB(innerColor!![0], innerColor!![1], innerColor!![2]) + + if(unique == "All units move through Forest and Jungle tiles in friendly territory as if it is Road. These tiles can be used to establish City Connections upon researching the Wheel.") + forestsAndJunglesAreRoads = true + } + lateinit var cities: List } diff --git a/core/src/com/unciv/ui/EmpireOverviewScreen.kt b/core/src/com/unciv/ui/EmpireOverviewScreen.kt index 877b874068..420539755f 100644 --- a/core/src/com/unciv/ui/EmpireOverviewScreen.kt +++ b/core/src/com/unciv/ui/EmpireOverviewScreen.kt @@ -122,12 +122,12 @@ class EmpireOverviewScreen : CameraStageBaseScreen(){ private fun createOffersTable(civ: CivilizationInfo, offersList: TradeOffersList, numberOfOtherSidesOffers: Int): Table { val table = Table() table.defaults().pad(10f) - table.background = ImageGetter.getBackground(civ.nation.getColor()) - table.add(civ.civName.toLabel().setFontColor(civ.nation.getSecondaryColor())).row() + table.background = ImageGetter.getBackground(civ.nation.getOuterColor()) + table.add(civ.civName.toLabel().setFontColor(civ.nation.getInnerColor())).row() table.addSeparator() for(offer in offersList){ val offerText = offer.getOfferText() - table.add(offerText.toLabel().setFontColor(civ.nation.getSecondaryColor())).row() + table.add(offerText.toLabel().setFontColor(civ.nation.getInnerColor())).row() } for(i in 1..numberOfOtherSidesOffers - offersList.size) table.add("".toLabel()).row() // we want both sides of the general table to have the same number of rows @@ -416,8 +416,8 @@ class EmpireOverviewScreen : CameraStageBaseScreen(){ label.setFontColor(Color.BLACK) } else if (currentPlayer==civ || UnCivGame.Current.viewEntireMapForDebug || currentPlayer.knows(civ)) { civGroup.add(ImageGetter.getNationIndicator(civ.nation, 30f)) - civGroup.background = civGroupBackground.tint(civ.nation.getColor()) - label.setFontColor(civ.nation.getSecondaryColor()) + civGroup.background = civGroupBackground.tint(civ.nation.getOuterColor()) + label.setFontColor(civ.nation.getInnerColor()) } else { civGroup.background = civGroupBackground.tint(Color.DARK_GRAY) label.setText("???") diff --git a/core/src/com/unciv/ui/newgamescreen/NationTable.kt b/core/src/com/unciv/ui/newgamescreen/NationTable.kt index 4cd40e5920..75565b03e9 100644 --- a/core/src/com/unciv/ui/newgamescreen/NationTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/NationTable.kt @@ -11,24 +11,22 @@ import com.unciv.ui.utils.* class NationTable(val nation: Nation, width:Float, onClick:()->Unit) : Table(CameraStageBaseScreen.skin){ - val innerTable = Table() + private val innerTable = Table() init { - background = ImageGetter.getBackground(nation.getSecondaryColor()) + background = ImageGetter.getBackground(nation.getInnerColor()) innerTable.pad(10f) - innerTable.background = ImageGetter.getBackground(nation.getColor()) + innerTable.background = ImageGetter.getBackground(nation.getOuterColor()) val titleTable = Table() titleTable.add(ImageGetter.getNationIndicator(nation, 50f)).pad(10f) titleTable.add(nation.getLeaderDisplayName().toLabel() - .apply { setFontColor(nation.getSecondaryColor()); setFontSize(24) }) + .apply { setFontColor(nation.getInnerColor()); setFontSize(24) }) innerTable.add(titleTable).row() innerTable.add(getUniqueLabel(nation) - .apply { setWrap(true);setFontColor(nation.getSecondaryColor()) }) + .apply { setWrap(true);setFontColor(nation.getInnerColor()) }) .width(width) - onClick { - onClick() - } + onClick { onClick() } touchable = Touchable.enabled add(innerTable) } diff --git a/core/src/com/unciv/ui/tilegroups/CityButton.kt b/core/src/com/unciv/ui/tilegroups/CityButton.kt index e557d934fd..cc7a58b362 100644 --- a/core/src/com/unciv/ui/tilegroups/CityButton.kt +++ b/core/src/com/unciv/ui/tilegroups/CityButton.kt @@ -45,10 +45,10 @@ class CityButton(val city: CityInfo, internal val tileGroup: WorldTileGroup, ski private fun addAirUnitTable() { if (!tileGroup.tileInfo.airUnits.isNotEmpty()) return - val secondarycolor = city.civInfo.nation.getSecondaryColor() + val secondarycolor = city.civInfo.nation.getInnerColor() val airUnitTable = Table().apply { defaults().pad(5f) } airUnitTable.background = ImageGetter.getDrawable("OtherIcons/civTableBackground") - .tint(city.civInfo.nation.getColor()) + .tint(city.civInfo.nation.getOuterColor()) val aircraftImage = ImageGetter.getImage("OtherIcons/Aircraft") aircraftImage.color = secondarycolor airUnitTable.add(aircraftImage).size(15f) @@ -89,11 +89,11 @@ class CityButton(val city: CityInfo, internal val tileGroup: WorldTileGroup, ski } private fun getIconTable(): Table { - val secondaryColor = city.civInfo.nation.getSecondaryColor() + val secondaryColor = city.civInfo.nation.getInnerColor() val iconTable = Table() iconTable.touchable=Touchable.enabled iconTable.background = ImageGetter.getDrawable("OtherIcons/civTableBackground") - .tint(city.civInfo.nation.getColor()) + .tint(city.civInfo.nation.getOuterColor()) if (city.resistanceCounter > 0) { val resistanceImage = ImageGetter.getImage("StatIcons/Resistance") @@ -170,7 +170,7 @@ class CityButton(val city: CityInfo, internal val tileGroup: WorldTileGroup, ski group.addActor(circle) group.addActor(image) - val secondaryColor = cityConstructions.cityInfo.civInfo.nation.getSecondaryColor() + val secondaryColor = cityConstructions.cityInfo.civInfo.nation.getInnerColor() val cityCurrentConstruction = cityConstructions.getCurrentConstruction() if(cityCurrentConstruction !is SpecialConstruction) { val turnsToConstruction = cityConstructions.turnsToConstruction(cityCurrentConstruction.name) diff --git a/core/src/com/unciv/ui/tilegroups/TileGroup.kt b/core/src/com/unciv/ui/tilegroups/TileGroup.kt index 3416816238..d37880d3b0 100644 --- a/core/src/com/unciv/ui/tilegroups/TileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/TileGroup.kt @@ -278,7 +278,7 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings) previousTileOwner = tileOwner if (tileOwner == null) return - val civColor = tileInfo.getOwner()!!.nation.getColor() + val civColor = tileInfo.getOwner()!!.nation.getOuterColor() for (neighbor in tileInfo.neighbors) { val neighborOwner = neighbor.getOwner() if (neighborOwner == tileOwner && borderImages.containsKey(neighbor)) // the neighbor used to not belong to us, but now it's ours diff --git a/core/src/com/unciv/ui/utils/ImageGetter.kt b/core/src/com/unciv/ui/utils/ImageGetter.kt index 807ba90baa..3fbff91353 100644 --- a/core/src/com/unciv/ui/utils/ImageGetter.kt +++ b/core/src/com/unciv/ui/utils/ImageGetter.kt @@ -67,15 +67,15 @@ object ImageGetter { } fun getNationIndicator(nation: Nation, size:Float): IconCircleGroup { - val civIndicator = getCircle().apply { color = nation.getSecondaryColor() } - .surroundWithCircle(size).apply { circle.color = nation.getColor() } + val civIndicator = getCircle().apply { color = nation.getInnerColor() } + .surroundWithCircle(size).apply { circle.color = nation.getOuterColor() } val civIconName = if(nation.isCityState()) "CityState" else nation.name if(nationIconExists(civIconName)){ val cityStateIcon = ImageGetter.getNationIcon(civIconName) cityStateIcon.setSize(size*0.7f,size*0.7f) cityStateIcon.center(civIndicator) - cityStateIcon.color = nation.getColor() + cityStateIcon.color = nation.getOuterColor() civIndicator.addActor(cityStateIcon) } diff --git a/core/src/com/unciv/ui/utils/UnitGroup.kt b/core/src/com/unciv/ui/utils/UnitGroup.kt index 8101835960..be1d2ae8b8 100644 --- a/core/src/com/unciv/ui/utils/UnitGroup.kt +++ b/core/src/com/unciv/ui/utils/UnitGroup.kt @@ -11,12 +11,12 @@ class UnitGroup(val unit: MapUnit, val size: Float): Group() { var blackSpinningCircle:Image?=null init { - val unitBaseImage = ImageGetter.getUnitIcon(unit.name, unit.civInfo.nation.getSecondaryColor()) + val unitBaseImage = ImageGetter.getUnitIcon(unit.name, unit.civInfo.nation.getInnerColor()) .apply { setSize(size * 0.75f, size * 0.75f) } val background = getBackgroundImageForUnit(unit) background.apply { - this.color = unit.civInfo.nation.getColor() + this.color = unit.civInfo.nation.getOuterColor() setSize(size, size) } setSize(size, size) diff --git a/core/src/com/unciv/ui/worldscreen/Minimap.kt b/core/src/com/unciv/ui/worldscreen/Minimap.kt index d3e0825a14..6af1b9fa7f 100644 --- a/core/src/com/unciv/ui/worldscreen/Minimap.kt +++ b/core/src/com/unciv/ui/worldscreen/Minimap.kt @@ -78,9 +78,9 @@ class Minimap(val tileMapHolder: TileMapHolder) : ScrollPane(null){ if (!(UnCivGame.Current.viewEntireMapForDebug || cloneCivilization.exploredTiles.contains(tileInfo.position))) hex.color = Color.DARK_GRAY else if (tileInfo.isCityCenter() && !tileInfo.isWater) - hex.color = tileInfo.getOwner()!!.nation.getSecondaryColor() + hex.color = tileInfo.getOwner()!!.nation.getInnerColor() else if (tileInfo.getCity() != null && !tileInfo.isWater) - hex.color = tileInfo.getOwner()!!.nation.getColor() + hex.color = tileInfo.getOwner()!!.nation.getOuterColor() else hex.color = tileInfo.getBaseTerrain().getColor().lerp(Color.GRAY, 0.5f) } } diff --git a/core/src/com/unciv/ui/worldscreen/PlayerReadyScreen.kt b/core/src/com/unciv/ui/worldscreen/PlayerReadyScreen.kt index 24431ea1af..53922fbd32 100644 --- a/core/src/com/unciv/ui/worldscreen/PlayerReadyScreen.kt +++ b/core/src/com/unciv/ui/worldscreen/PlayerReadyScreen.kt @@ -10,10 +10,10 @@ class PlayerReadyScreen(currentPlayerCiv: CivilizationInfo) : CameraStageBaseScr init { val table= Table() table.touchable= Touchable.enabled - table.background= ImageGetter.getBackground(currentPlayerCiv.nation.getColor()) + table.background= ImageGetter.getBackground(currentPlayerCiv.nation.getOuterColor()) table.add("[$currentPlayerCiv] ready?".toLabel().setFontSize(24) - .setFontColor(currentPlayerCiv.nation.getSecondaryColor())) + .setFontColor(currentPlayerCiv.nation.getInnerColor())) table.onClick { UnCivGame.Current.worldScreen = WorldScreen(currentPlayerCiv) diff --git a/docs/Credits.md b/docs/Credits.md index fab0ff12e9..514612a057 100644 --- a/docs/Credits.md +++ b/docs/Credits.md @@ -36,6 +36,7 @@ Unless otherwise specified, all the following are from [the Noun Project](https: * [Catapult](https://thenounproject.com/search/?q=Spear&i=1233840) By Jakub Ukrop * [Unloaded Crossbow](https://thenounproject.com/term/unloaded-crossbow/815992/) By Hamish as Ballista * [Sword](https://thenounproject.com/search/?q=Sword&i=1215443) By Guilherme Furtado for Swordsman +* [Mohawk](https://thenounproject.com/search/?q=mohawk&i=1426649) By Dairy Free Design for Mohawk Warrior * [Roman Helmet](https://thenounproject.com/search/?q=legion&i=440134) By parkjisun for Legion * [Horse](https://thenounproject.com/search/?q=Horse&i=1373793) By AFY Studio for Horseman * [Horse Head](https://thenounproject.com/search/?q=Cavalry&i=374037) By Juan Pablo Bravo for Companion Cavalry @@ -45,7 +46,7 @@ Unless otherwise specified, all the following are from [the Noun Project](https: * [Ship](https://thenounproject.com/term/ship/1998589/) By Vanisha for Galleass * [Crossbow](https://thenounproject.com/term/crossbow/965389/) By Creaticca Creative Agency for Crossbowman * [Longbow](https://thenounproject.com/search/?q=longbow&i=815991) By Hamish for Longbowman -* [Trebuchet](https://thenounproject.com/search/?q=Trebuchet&i=827987) By Ben Davis +* [Trebuchet](https://thenounproject.com/search/?q=trebuchet&i=828475) By Ben Davis * [Sword](https://thenounproject.com/search/?q=Sword&i=1432662) By uzeir syarief for Longswordsman * [Samurai](https://thenounproject.com/search/?q=samurai&i=1683729) By Chanut is Industries * [Spear](https://thenounproject.com/search/?q=Spear&i=1233840) By Alvaro Cabrera for Pikeman @@ -167,7 +168,7 @@ Unless otherwise specified, all the following are from [the Noun Project](https: * [Anubis](https://thenounproject.com/term/anubis/1080090/) By Carpe Diem for Burial Tomb * [Parthenon](https://thenounproject.com/term/parthenon/493272/) By Christopher T. Howlett for The Oracle * [Stadium](https://thenounproject.com/term/stadium/1500595/) By sandra for Colosseum -* [Terracotta Army](https://thenounproject.com/search/?q=terracotta&i=2306346) By Supalerk Laipawat +* [Terracotta Army](https://thenounproject.com/search/?q=terracotta&i=2412905) By Phạm Thanh Lộc * [Stadium](https://thenounproject.com/term/stadium/1152530/) By Creaticca Creative Agency for Circus Maximus * [Market](https://thenounproject.com/term/market/1723050/) By sofi * [Bazaar](https://thenounproject.com/term/bazaar/902288/) By Tokka Elkholy @@ -183,12 +184,13 @@ Unless otherwise specified, all the following are from [the Noun Project](https: * [Christian Church](https://thenounproject.com/term/christian-church/1174183/) By Andrejs Kirma for Monastery * [Castle](https://thenounproject.com/search/?q=castle&i=390189) By Mint Shirt * [Red Fort](https://thenounproject.com/arunabh.jain.0fficial/collection/famous-indian-monuments/?i=2092466), [Gateway of India](https://thenounproject.com/arunabh.jain.0fficial/collection/famous-indian-monuments/?i=2092468) By Arunabh Jain, IN for Mughal Fort -* [Cambodia](https://thenounproject.com/term/cambodia/1809152/) By Wichai Wi for Angkor Wat -* [Alhambra](https://thenounproject.com/search/?q=alhambra&i=403759) By parkjisun +* [Angkor Wat](https://thenounproject.com/search/?q=angkor%20wat&i=2412873) By Phạm Thanh Lộc for Angkor Wat +* [Alhambra](https://thenounproject.com/search/?q=alhambra&i=2322217) By Phạm Thanh Lộc * [Books](https://thenounproject.com/term/books/1140218/) By Abir Alward for Oxford University * [Forge](https://thenounproject.com/term/forge/1044767/) By Monjin Friends * [Anchor](https://thenounproject.com/term/anchor/1258518/) By Saeful Muslim for Harbor * [Hand saw](https://thenounproject.com/term/hand-saw/990902/) By b farias for Workshop +* [House](https://thenounproject.com/search/?q=house&i=1651759) By sofy for Longhouse * [Hagia Sophia](https://thenounproject.com/term/hagia-sophia/1907752/) By Felipe Alvarado * [Factory](https://thenounproject.com/term/factory/1624235/) By Maxim Kulikov for Ironworks * [Notre Dame](https://thenounproject.com/term/notre-dame/1361725/) By Marco Livolsi