diff --git a/Credits.md b/Credits.md index fd8d6c5b27..c4eb248008 100644 --- a/Credits.md +++ b/Credits.md @@ -62,6 +62,8 @@ All the following are from [the Noun Project](https://thenounproject.com) licenc * [Helmet](https://thenounproject.com/term/helmet/25216/) By Daniel Turner for Great War Infantry * [Tank](https://thenounproject.com/term/tank/1287510/) By corpus delicti for Landship * [Warship](https://thenounproject.com/term/warship/1597474/) By zidney for Destroyer +* [Battleship](https://thenounproject.com/search/?q=battleship&i=1986807) By Vitaliy Gorbachev, KZ for Battleship +* [Submarine](https://thenounproject.com/search/?q=submarine&i=589519) By Hea Poh Lin, MY ### Great People @@ -345,6 +347,7 @@ All the following are from [the Noun Project](https://thenounproject.com) licenc * [Plastic](https://thenounproject.com/term/plastic/478826/) By Yu luck * [Microphone](https://thenounproject.com/term/microphone/470266/) By Viktor Vorobyev for Mass Media * [Flight](https://thenounproject.com/term/flight/1014306/) By Genius Icons +* [Refridgerator](https://thenounproject.com/search/?q=refridgerator&i=1188873) By b farias, CL ### Information * [Pill](https://thenounproject.com/term/pill/780458/) By Alex Arseneau for Pharmaceuticals @@ -357,6 +360,7 @@ All the following are from [the Noun Project](https://thenounproject.com) licenc ### Future * [Nanoparticles](https://thenounproject.com/term/nanoparticles/822286/) By Gyan Lakhwani for Nanotechnology * [Satellite](https://thenounproject.com/term/satellite/1466641/) By Ben Davis for Satellites +* [Electronics](https://thenounproject.com/search/?q=Electronics&i=1565843) By Cuby Design * [Atom](https://thenounproject.com/term/atom/1586852/) By Kelsey Armstrong for Particle Physics * [Information Technology](https://thenounproject.com/term/information-technology/1927668/) By Vectors Markeet for Future Tech diff --git a/android/Images/TechIcons/Electronics.png b/android/Images/TechIcons/Electronics.png new file mode 100644 index 0000000000..93e2ec8fcb Binary files /dev/null and b/android/Images/TechIcons/Electronics.png differ diff --git a/android/Images/TechIcons/Refrigeration.png b/android/Images/TechIcons/Refrigeration.png new file mode 100644 index 0000000000..39313eb774 Binary files /dev/null and b/android/Images/TechIcons/Refrigeration.png differ diff --git a/android/Images/UnitIcons/Battleship.png b/android/Images/UnitIcons/Battleship.png new file mode 100644 index 0000000000..196698846d Binary files /dev/null and b/android/Images/UnitIcons/Battleship.png differ diff --git a/android/Images/UnitIcons/Submarine.png b/android/Images/UnitIcons/Submarine.png new file mode 100644 index 0000000000..2777197082 Binary files /dev/null and b/android/Images/UnitIcons/Submarine.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index 98b06cc867..cc5f2942be 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -48,476 +48,476 @@ BuildingIcons/Barracks index: -1 BuildingIcons/Bazaar rotate: false - xy: 1093, 1639 + xy: 1199, 1741 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Broadcast Tower rotate: false - xy: 1301, 1761 + xy: 1403, 1761 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Burial Tomb rotate: false - xy: 143, 475 + xy: 1531, 1841 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Castle rotate: false - xy: 1607, 1739 + xy: 1709, 1739 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Chichen Itza rotate: false - xy: 306, 711 + xy: 334, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Circus rotate: false - xy: 334, 1435 + xy: 436, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Circus Maximus rotate: false - xy: 436, 1537 + xy: 334, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Colloseum rotate: false - xy: 640, 1537 + xy: 334, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Cristo Redentor rotate: false - xy: 436, 1129 + xy: 538, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Eiffel Tower rotate: false - xy: 538, 1027 + xy: 640, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Factory rotate: false - xy: 844, 1333 + xy: 1048, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Forbidden Palace rotate: false - xy: 1048, 1435 + xy: 640, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Forge rotate: false - xy: 640, 925 + xy: 844, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Granary rotate: false - xy: 946, 1129 + xy: 1150, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hagia Sophia rotate: false - xy: 1048, 1027 + xy: 1048, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hanging Gardens rotate: false - xy: 1150, 1129 + xy: 1150, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Harbor rotate: false - xy: 1048, 925 + xy: 1150, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hermitage rotate: false - xy: 1150, 1027 + xy: 408, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hospital rotate: false - xy: 612, 823 + xy: 714, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Hydro Plant rotate: false - xy: 612, 721 + xy: 714, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Ironworks rotate: false - xy: 918, 721 + xy: 1020, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Krepost rotate: false - xy: 1122, 721 + xy: 1252, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Library rotate: false - xy: 1252, 1231 + xy: 1252, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Lighthouse rotate: false - xy: 1252, 1129 + xy: 1252, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Machu Pichu rotate: false - xy: 1297, 1639 + xy: 1501, 1637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Market rotate: false - xy: 1603, 1637 + xy: 1807, 1637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Military Academy rotate: false - xy: 1354, 1129 + xy: 1354, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Mint rotate: false - xy: 1326, 721 + xy: 1456, 1433 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Monastery rotate: false - xy: 1456, 1433 + xy: 1456, 1331 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Monument rotate: false - xy: 1558, 1535 + xy: 1558, 1433 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Museum rotate: false - xy: 1660, 1535 + xy: 1558, 1331 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/National College rotate: false - xy: 1660, 1433 + xy: 1456, 1127 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Notre Dame rotate: false - xy: 1456, 1127 + xy: 1660, 1331 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Nuclear Plant rotate: false - xy: 1660, 1331 + xy: 1864, 1535 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Observatory rotate: false - xy: 1864, 1535 + xy: 1558, 1127 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Opera House rotate: false - xy: 1660, 1229 + xy: 1864, 1433 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Oxford University rotate: false - xy: 1864, 1433 + xy: 1660, 1127 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Palace rotate: false - xy: 1558, 1025 + xy: 1762, 1229 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Paper Maker rotate: false - xy: 1660, 1127 + xy: 1864, 1331 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Porcelain Tower rotate: false - xy: 1660, 923 + xy: 1864, 923 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Public School rotate: false - xy: 1428, 822 + xy: 1530, 821 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Research Lab rotate: false - xy: 1530, 719 + xy: 1836, 719 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Booster rotate: false - xy: 245, 506 + xy: 347, 404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Cockpit rotate: false - xy: 347, 506 + xy: 143, 373 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Engine rotate: false - xy: 245, 404 + xy: 132, 271 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Stasis Chamber rotate: false - xy: 347, 404 + xy: 132, 169 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Seaport rotate: false - xy: 245, 302 + xy: 234, 98 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sistine Chapel rotate: false - xy: 386, 609 + xy: 692, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Solar Plant rotate: false - xy: 590, 619 + xy: 896, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Spaceship Factory rotate: false - xy: 692, 619 + xy: 998, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stable rotate: false - xy: 1100, 619 + xy: 1406, 618 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stadium rotate: false - xy: 1202, 619 + xy: 1508, 617 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stock Exchange rotate: false - xy: 1508, 617 + xy: 1814, 617 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stone Works rotate: false - xy: 1712, 617 + xy: 449, 507 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stonehenge rotate: false - xy: 1814, 617 + xy: 449, 405 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sydney Opera House rotate: false - xy: 551, 517 + xy: 551, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Taj Mahal rotate: false - xy: 653, 517 + xy: 653, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Temple rotate: false - xy: 551, 415 + xy: 857, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Library rotate: false - xy: 755, 517 + xy: 653, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Lighthouse rotate: false - xy: 551, 313 + xy: 755, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Louvre rotate: false - xy: 653, 415 + xy: 959, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Oracle rotate: false - xy: 857, 517 + xy: 755, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Pyramids rotate: false - xy: 653, 313 + xy: 857, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Theatre rotate: false - xy: 959, 517 + xy: 857, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/University rotate: false - xy: 959, 415 + xy: 1265, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Walls rotate: false - xy: 959, 313 + xy: 1163, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Windmill rotate: false - xy: 1163, 415 + xy: 1367, 516 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Workshop rotate: false - xy: 1367, 516 + xy: 1469, 413 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -608,96 +608,82 @@ ImprovementIcons/Ancient ruins index: -1 ImprovementIcons/Camp rotate: false - xy: 1735, 1841 + xy: 1837, 1841 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/City ruins rotate: false - xy: 436, 1435 + xy: 538, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Customs house rotate: false - xy: 844, 1537 + xy: 334, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Farm rotate: false - xy: 946, 1435 + xy: 538, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fishing Boats rotate: false - xy: 742, 1129 + xy: 946, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Landmark rotate: false - xy: 1252, 1435 + xy: 1252, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Lumber mill rotate: false - xy: 1224, 823 + xy: 1297, 1639 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Manufactory rotate: false - xy: 1399, 1659 + xy: 1603, 1637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Mine rotate: false - xy: 1354, 925 + xy: 1326, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Oil well rotate: false - xy: 1558, 1127 + xy: 1762, 1331 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Plantation rotate: false - xy: 1864, 1025 + xy: 1660, 923 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Quarry - rotate: false - xy: 1428, 720 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -ImprovementIcons/Railroad - rotate: false - xy: 1632, 821 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -OtherIcons/Railroad rotate: false xy: 1632, 821 size: 100, 100 @@ -706,14 +692,14 @@ OtherIcons/Railroad index: -1 ImprovementIcons/Road rotate: false - xy: 1938, 821 + xy: 245, 506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Trading post rotate: false - xy: 857, 415 + xy: 1163, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -741,56 +727,70 @@ OtherIcons/Circle index: -1 OtherIcons/City rotate: false - xy: 334, 1333 + xy: 436, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Crosshair rotate: false - xy: 640, 1333 + xy: 742, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/DisbandUnit rotate: false - xy: 538, 1129 + xy: 640, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Fire rotate: false - xy: 538, 925 + xy: 742, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/MenuIcon rotate: false - xy: 1354, 1435 + xy: 1354, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pentagon rotate: false - xy: 1660, 1025 + xy: 1864, 1229 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +OtherIcons/Railroad + rotate: false + xy: 1836, 821 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ImprovementIcons/Railroad + rotate: false + xy: 1836, 821 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Shield rotate: false - xy: 234, 98 + xy: 386, 609 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Sleep rotate: false - xy: 488, 619 + xy: 794, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -804,7 +804,7 @@ OtherIcons/Star index: -1 OtherIcons/Stop rotate: false - xy: 1916, 617 + xy: 449, 303 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -853,259 +853,259 @@ PolicyIcons/Civil Society index: -1 PolicyIcons/Collective Rule rotate: false - xy: 1367, 362 + xy: 1469, 361 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Constitution rotate: false - xy: 54, 13 + xy: 1571, 463 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Democracy rotate: false - xy: 388, 46 + xy: 1673, 565 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Discipline rotate: false - xy: 1419, 362 + xy: 54, 13 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Entrepreneurship rotate: false - xy: 1367, 310 + xy: 1725, 565 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Facism rotate: false - xy: 1419, 310 + xy: 1777, 565 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Religion rotate: false - xy: 1966, 1585 + xy: 1829, 565 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Speech rotate: false - xy: 1966, 1533 + xy: 1881, 565 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Free Thought rotate: false - xy: 1966, 1481 + xy: 1933, 565 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Humanism rotate: false - xy: 1966, 1429 + xy: 388, 46 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Landed Elite rotate: false - xy: 1966, 1377 + xy: 1521, 361 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Legalism rotate: false - xy: 1966, 1325 + xy: 1623, 463 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mandate Of Heaven rotate: false - xy: 1966, 1273 + xy: 1469, 309 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Mercantilism rotate: false - xy: 1966, 1221 + xy: 1521, 309 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Meritocracy rotate: false - xy: 1966, 1169 + xy: 1966, 1585 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Militarism rotate: false - xy: 1966, 1117 + xy: 1966, 1533 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Caste rotate: false - xy: 1966, 1065 + xy: 1966, 1481 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Tradition rotate: false - xy: 1966, 1013 + xy: 1966, 1429 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Monarchy rotate: false - xy: 1966, 961 + xy: 1966, 1377 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Oligarchy rotate: false - xy: 106, 13 + xy: 1966, 1325 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Organized Religion rotate: false - xy: 158, 15 + xy: 1966, 1273 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Patronage rotate: false - xy: 1469, 565 + xy: 1966, 1221 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Police State rotate: false - xy: 1469, 513 + xy: 1966, 1169 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Populism rotate: false - xy: 1521, 565 + xy: 1966, 1117 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Professional Army rotate: false - xy: 1469, 461 + xy: 1966, 1065 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Protectionism rotate: false - xy: 1521, 513 + xy: 1966, 1013 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Reformation rotate: false - xy: 1573, 565 + xy: 1966, 961 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Representation rotate: false - xy: 1521, 461 + xy: 1985, 565 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Republic rotate: false - xy: 1573, 513 + xy: 106, 13 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scientific Revolution rotate: false - xy: 1625, 565 + xy: 158, 15 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Secularism rotate: false - xy: 1573, 461 + xy: 438, 250 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Sovereignty rotate: false - xy: 1625, 513 + xy: 438, 198 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Theocracy rotate: false - xy: 1677, 565 + xy: 438, 146 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Total War rotate: false - xy: 1625, 461 + xy: 490, 251 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Trade Unions rotate: false - xy: 1677, 513 + xy: 490, 199 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Universal Suffrage rotate: false - xy: 1729, 565 + xy: 490, 147 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Warrior Code rotate: false - xy: 1677, 461 + xy: 551, 261 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1126,182 +1126,182 @@ ResourceIcons/Bananas index: -1 ResourceIcons/Cattle rotate: false - xy: 1811, 1739 + xy: 1939, 1841 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Coal rotate: false - xy: 538, 1435 + xy: 640, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cotton rotate: false - xy: 334, 1027 + xy: 436, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Deer rotate: false - xy: 334, 925 + xy: 436, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Dyes rotate: false - xy: 640, 1231 + xy: 742, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Fish rotate: false - xy: 640, 1027 + xy: 844, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Furs rotate: false - xy: 844, 1129 + xy: 1048, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gems rotate: false - xy: 742, 925 + xy: 946, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gold rotate: false - xy: 844, 1027 + xy: 1048, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Horses rotate: false - xy: 510, 721 + xy: 612, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Incense rotate: false - xy: 714, 823 + xy: 816, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Iron rotate: false - xy: 816, 823 + xy: 918, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Ivory rotate: false - xy: 1020, 823 + xy: 1122, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Marble rotate: false - xy: 1501, 1637 + xy: 1705, 1637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Oil rotate: false - xy: 1456, 1025 + xy: 1660, 1229 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Pearls rotate: false - xy: 1864, 1331 + xy: 1762, 1127 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sheep rotate: false - xy: 234, 200 + xy: 336, 98 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silk rotate: false - xy: 336, 200 + xy: 488, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silver rotate: false - xy: 336, 98 + xy: 590, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Spices rotate: false - xy: 998, 619 + xy: 1304, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Stone rotate: false - xy: 1610, 617 + xy: 1916, 617 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sugar rotate: false - xy: 449, 405 + xy: 551, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Uranium rotate: false - xy: 1163, 517 + xy: 1061, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Whales rotate: false - xy: 1265, 517 + xy: 1265, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wheat rotate: false - xy: 1061, 313 + xy: 1265, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wine rotate: false - xy: 1163, 313 + xy: 1367, 414 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1315,14 +1315,14 @@ StatIcons/Acquire index: -1 StatIcons/CityConnection rotate: false - xy: 538, 1537 + xy: 334, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/City_Center_(Civ6) rotate: false - xy: 334, 1231 + xy: 436, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1364,7 +1364,7 @@ StatIcons/Malcontent index: -1 StatIcons/Movement rotate: false - xy: 1558, 1433 + xy: 1456, 1229 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1385,14 +1385,14 @@ StatIcons/Production index: -1 StatIcons/RangedStrength rotate: false - xy: 1734, 821 + xy: 1530, 719 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Resistance rotate: false - xy: 1632, 719 + xy: 1938, 821 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1406,14 +1406,14 @@ StatIcons/Science index: -1 StatIcons/Specialist rotate: false - xy: 896, 619 + xy: 1202, 619 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Strength rotate: false - xy: 449, 507 + xy: 551, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1483,413 +1483,427 @@ TechIcons/Banking index: -1 TechIcons/Biology rotate: false - xy: 1199, 1741 + xy: 1195, 1639 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Bronze Working rotate: false - xy: 1403, 1761 + xy: 143, 475 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Calendar rotate: false - xy: 1531, 1841 + xy: 1633, 1841 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Chemistry rotate: false - xy: 306, 813 + xy: 306, 711 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Medical Lab rotate: false - xy: 306, 813 + xy: 306, 711 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Chivalry rotate: false - xy: 334, 1537 + xy: 334, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Civil Service rotate: false - xy: 436, 1333 + xy: 538, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Combustion rotate: false - xy: 334, 1129 + xy: 436, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Compass rotate: false - xy: 538, 1333 + xy: 640, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Computers rotate: false - xy: 640, 1435 + xy: 742, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Construction rotate: false - xy: 742, 1537 + xy: 334, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Currency rotate: false - xy: 742, 1435 + xy: 844, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Dynamite rotate: false - xy: 742, 1333 + xy: 844, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Ecology rotate: false - xy: 844, 1435 + xy: 946, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Economics rotate: false - xy: 946, 1537 + xy: 436, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Education rotate: false - xy: 436, 925 + xy: 538, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Electricity rotate: false - xy: 640, 1129 + xy: 742, 1231 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TechIcons/Electronics + rotate: false + xy: 844, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Engineering rotate: false - xy: 742, 1231 + xy: 946, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Fertilizer rotate: false - xy: 1048, 1537 + xy: 640, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Flight rotate: false - xy: 844, 1231 + xy: 1048, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Future Tech rotate: false - xy: 946, 1231 + xy: 1150, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Guilds rotate: false - xy: 1150, 1231 + xy: 1048, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Gunpowder rotate: false - xy: 946, 925 + xy: 1150, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Horseback Riding rotate: false - xy: 408, 721 + xy: 510, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Industrialization rotate: false - xy: 714, 721 + xy: 816, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Iron Working rotate: false - xy: 816, 721 + xy: 918, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Machinery rotate: false - xy: 1224, 721 + xy: 1399, 1659 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Masonry rotate: false - xy: 1807, 1637 + xy: 1354, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mass Media rotate: false - xy: 1909, 1637 + xy: 1354, 1435 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mathematics rotate: false - xy: 1354, 1537 + xy: 1354, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Metal Casting rotate: false - xy: 1354, 1333 + xy: 1354, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Metallurgy rotate: false - xy: 1354, 1231 + xy: 1354, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Military Science rotate: false - xy: 1354, 1027 + xy: 1326, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Mining rotate: false - xy: 1326, 823 + xy: 1456, 1535 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Nanotechnology rotate: false - xy: 1558, 1331 + xy: 1762, 1535 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Navigation rotate: false - xy: 1762, 1535 + xy: 1558, 1229 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Nuclear Fission rotate: false - xy: 1558, 1229 + xy: 1762, 1433 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Optics rotate: false - xy: 1762, 1331 + xy: 1558, 1025 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Particle Physics rotate: false - xy: 1762, 1229 + xy: 1660, 1025 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pharmaceuticals rotate: false - xy: 1762, 1127 + xy: 1762, 1025 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Philosophy rotate: false - xy: 1864, 1229 + xy: 1864, 1127 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Physics rotate: false - xy: 1762, 1025 + xy: 1864, 1025 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Plastics rotate: false - xy: 1558, 923 + xy: 1762, 923 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pottery rotate: false - xy: 1762, 923 + xy: 1428, 822 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Printing Press rotate: false - xy: 1864, 923 + xy: 1428, 720 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Radio rotate: false - xy: 1530, 821 + xy: 1734, 821 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TechIcons/Refrigeration + rotate: false + xy: 1632, 719 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Replacable Parts rotate: false - xy: 1836, 821 + xy: 1734, 719 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rifling rotate: false - xy: 1836, 719 + xy: 284, 608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Robotics rotate: false - xy: 1938, 719 + xy: 347, 506 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rocketry rotate: false - xy: 284, 608 + xy: 245, 404 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Sailing rotate: false - xy: 143, 373 + xy: 132, 67 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Satellites rotate: false - xy: 132, 271 + xy: 245, 302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Scientific Theory rotate: false - xy: 132, 169 + xy: 347, 302 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steam Power rotate: false - xy: 1304, 619 + xy: 1610, 617 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steel rotate: false - xy: 1406, 618 + xy: 1712, 617 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/The Wheel rotate: false - xy: 755, 415 + xy: 1061, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Theology rotate: false - xy: 755, 313 + xy: 959, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Trapping rotate: false - xy: 1061, 517 + xy: 959, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Writing rotate: false - xy: 1367, 414 + xy: 1571, 515 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1903,14 +1917,14 @@ TerrainIcons/CrosshatchHexagon index: -1 TerrainIcons/Flood plains rotate: false - xy: 946, 1333 + xy: 1150, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TerrainIcons/Forest rotate: false - xy: 1150, 1537 + xy: 742, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1931,35 +1945,35 @@ TerrainIcons/HexagonBorder index: -1 TerrainIcons/Hill rotate: false - xy: 1150, 925 + xy: 408, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TerrainIcons/Jungle rotate: false - xy: 1020, 721 + xy: 1122, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TerrainIcons/Marsh rotate: false - xy: 1705, 1637 + xy: 1909, 1637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TerrainIcons/Mountain rotate: false - xy: 1456, 1331 + xy: 1660, 1535 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TerrainIcons/Oasis rotate: false - xy: 1762, 1433 + xy: 1456, 1025 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1992,198 +2006,205 @@ UnitIcons/Ballista orig: 100, 100 offset: 0, 0 index: -1 +UnitIcons/Battleship + rotate: false + xy: 1093, 1639 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 UnitIcons/Bowman rotate: false - xy: 1195, 1639 + xy: 1301, 1761 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Camel Archer rotate: false - xy: 1633, 1841 + xy: 1735, 1841 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Cannon rotate: false - xy: 1837, 1841 + xy: 1505, 1739 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Caravel rotate: false - xy: 1505, 1739 + xy: 1607, 1739 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Catapult rotate: false - xy: 1709, 1739 + xy: 1811, 1739 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Cavalry rotate: false - xy: 1939, 1841 + xy: 1913, 1739 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Chariot Archer rotate: false - xy: 1913, 1739 + xy: 306, 813 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Companion Cavalry rotate: false - xy: 436, 1231 + xy: 538, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Crossbowman rotate: false - xy: 538, 1231 + xy: 640, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Destroyer rotate: false - xy: 436, 1027 + xy: 538, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Frigate rotate: false - xy: 742, 1027 + xy: 946, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Galleass rotate: false - xy: 1048, 1333 + xy: 742, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Gatling Gun rotate: false - xy: 1150, 1435 + xy: 844, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Artist rotate: false - xy: 1048, 1231 + xy: 844, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Engineer rotate: false - xy: 1150, 1333 + xy: 946, 1027 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Merchant rotate: false - xy: 844, 925 + xy: 1048, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Scientist rotate: false - xy: 946, 1027 + xy: 1150, 1231 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great War Infantry rotate: false - xy: 1048, 1129 + xy: 946, 925 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Hoplite rotate: false - xy: 408, 823 + xy: 510, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Horseman rotate: false - xy: 510, 823 + xy: 612, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Ironclad rotate: false - xy: 918, 823 + xy: 1020, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Knight rotate: false - xy: 1122, 823 + xy: 1252, 1537 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Lancer rotate: false - xy: 1252, 1537 + xy: 1252, 1333 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Landship rotate: false - xy: 1252, 1333 + xy: 1252, 1129 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Longbowman rotate: false - xy: 1252, 1027 + xy: 1224, 823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Longswordsman rotate: false - xy: 1252, 925 + xy: 1224, 721 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Minuteman rotate: false - xy: 1456, 1535 + xy: 1558, 1535 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Musketeer rotate: false - xy: 1456, 1229 + xy: 1660, 1433 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -2197,49 +2218,56 @@ UnitIcons/Musketman index: -1 UnitIcons/Pikeman rotate: false - xy: 1864, 1127 + xy: 1558, 923 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Rifleman rotate: false - xy: 1734, 719 + xy: 1938, 719 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Scout rotate: false - xy: 132, 67 + xy: 234, 200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Settler rotate: false - xy: 347, 302 + xy: 336, 200 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Spearman rotate: false - xy: 794, 619 + xy: 1100, 619 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitIcons/Submarine + rotate: false + xy: 653, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Swordsman rotate: false - xy: 449, 303 + xy: 755, 517 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Trebuchet rotate: false - xy: 857, 313 + xy: 1061, 415 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -2253,21 +2281,21 @@ UnitIcons/Trireme index: -1 UnitIcons/Warrior rotate: false - xy: 1061, 415 + xy: 1163, 313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Work Boats rotate: false - xy: 1265, 415 + xy: 1367, 312 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Worker rotate: false - xy: 1265, 313 + xy: 1469, 515 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -2330,77 +2358,77 @@ UnitPromotionIcons/Boarding_Party_III_(Civ5) index: -1 UnitPromotionIcons/Boarding_Party_II_(Civ5) rotate: false - xy: 2018, 697 + xy: 1981, 1971 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding_Party_I_(Civ5) rotate: false - xy: 1981, 1971 + xy: 336, 24 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment_III_(Civ5) rotate: false - xy: 336, 24 + xy: 1571, 441 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment_II_(Civ5) rotate: false - xy: 2015, 1819 + xy: 1673, 543 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment_I_(Civ5) rotate: false - xy: 1966, 939 + xy: 2015, 1819 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Charge_(Civ5) rotate: false - xy: 210, 45 + xy: 1966, 939 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_III_(Civ5) rotate: false - xy: 1469, 439 + xy: 2018, 697 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_II_(Civ5) rotate: false - xy: 1729, 543 + xy: 210, 45 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_I_(Civ5) rotate: false - xy: 1781, 595 + xy: 438, 124 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Cover_II_(Civ5) rotate: false - xy: 1531, 1949 + xy: 603, 291 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Cover_I_(Civ5) rotate: false - xy: 2018, 675 + xy: 1531, 1949 size: 20, 20 orig: 20, 20 offset: 0, 0 @@ -2435,126 +2463,126 @@ UnitPromotionIcons/Formation_II_(Civ5) index: -1 UnitPromotionIcons/Formation_I_(Civ5) rotate: false - xy: 2015, 1797 + xy: 1571, 419 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Indirect_Fire_(Civ5) rotate: false - xy: 1988, 939 + xy: 1593, 441 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Logistics_(Civ5) rotate: false - xy: 210, 23 + xy: 1673, 521 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/March_(Civ5) rotate: false - xy: 1469, 417 + xy: 1695, 543 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Mobility_(Civ5) rotate: false - xy: 1491, 439 + xy: 2015, 1797 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Range_(Civ5) rotate: false - xy: 1729, 521 + xy: 1988, 939 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_III_(Civ5) rotate: false - xy: 1751, 543 + xy: 2018, 675 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_II_(Civ5) rotate: false - xy: 1781, 573 + xy: 210, 23 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_I_(Civ5) rotate: false - xy: 1803, 595 + xy: 438, 102 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Sentry_(Civ5) rotate: false - xy: 2018, 653 + xy: 460, 124 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_III_(Civ5) rotate: false - xy: 2003, 1949 + xy: 625, 291 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_II_(Civ5) rotate: false - xy: 358, 2 + xy: 603, 269 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_I_(Civ5) rotate: false - xy: 380, 24 + xy: 2003, 1949 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Siege_(Civ5) rotate: false - xy: 2015, 1775 + xy: 358, 2 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_III_(Civ5) rotate: false - xy: 1491, 417 + xy: 380, 24 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_II_(Civ5) rotate: false - xy: 1513, 439 + xy: 1593, 419 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_I_(Civ5) rotate: false - xy: 1729, 499 + xy: 1615, 441 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Volley_(Civ5) rotate: false - xy: 1751, 521 + xy: 1695, 521 size: 20, 20 orig: 20, 20 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index 0a33ac33eb..576716963c 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/Techs.json b/android/assets/jsons/Techs.json index 5f89b483af..2bd46aca7f 100644 --- a/android/assets/jsons/Techs.json +++ b/android/assets/jsons/Techs.json @@ -356,13 +356,12 @@ techCost: 4505, buildingCost:500, wonderCost:1250, - techs:[/* + techs:[ { name:"Refrigeration", - row:4, - prerequisites:["Electricity"], - baseDescription:"Does nothing since we have no sea tiles - In theory, allows construction of offshore platforms and submarines" - },*/ + row:3, + prerequisites:["Biology", "Electricity"], //to do: offshore platform should need this + }, { name:"Replacable Parts", row:4, @@ -391,13 +390,12 @@ name:"Plastics", row:3, prerequisites:["Biology","Replacable Parts"] - },/* + }, { name:"Electronics", row:5, - prerequisites:["Radio"], - baseDescription:"Contributes only war-relatied things - on hold until AI is introduced - todo" - },*/ + prerequisites:["Replacable Parts", "Flight"], + }, { name:"Mass Media", row:6, diff --git a/android/assets/jsons/Units.json b/android/assets/jsons/Units.json index 97a73eed65..42c9fc52ac 100644 --- a/android/assets/jsons/Units.json +++ b/android/assets/jsons/Units.json @@ -368,6 +368,8 @@ cost: 185, requiredResource:"Iron", requiredTech:"Navigation", + obsoleteTech:"Electronics", + upgradesTo:"Battleship", hurryCostModifier:20 }, { @@ -465,7 +467,31 @@ strength:55, cost: 375, requiredTech:"Combustion", - uniques:[], // todo: add interception and bonus vs submarines once we have air and submarine units + uniques:["Can attack submarines"], // todo: add interception and bonus vs submarines once we have air and submarine units + hurryCostModifier:20 + }, + { + name: "Battleship", + unitType: "WaterRanged", + movement: 5, + strength: 55, + rangedStrength: 55, + range: 3, + cost: 375, + requiredResource:"Oil", + requiredTech:"Electronics", + uniques:["Indirect Fire", "Bonus vs City 30%"], + hurryCostModifier:20 + }, + { + name: "Submarine", + unitType: "WaterRanged", + movement: 5, + strength: 35, + rangedStrength: 60, + cost: 325, + requiredTech:"Refrigeration", + uniques:["Bonus as Attacker 75%", "Invisible to others", "Can Only Attack Water", "Can attack submarines"], //to do: 3 uniques hurryCostModifier:20 }, { diff --git a/core/src/com/unciv/logic/automation/UnitAutomation.kt b/core/src/com/unciv/logic/automation/UnitAutomation.kt index 865af7bdd8..3c7900a094 100644 --- a/core/src/com/unciv/logic/automation/UnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/UnitAutomation.kt @@ -118,6 +118,12 @@ class UnitAutomation{ if(tileCombatant==null) return false if(tileCombatant.getCivilization()==unit.civInfo ) return false if(!unit.civInfo.isAtWarWith(tileCombatant.getCivilization())) return false + + //only submarine and destroyer can attack submarine + if (tileCombatant.isInvisible() + && (!unit.hasUnique("Can attack submarines") || !unit.civInfo.viewableInvisibleUnitsTiles.map { it.position }.contains(tile.position))){ + return false + } return true } diff --git a/core/src/com/unciv/logic/battle/BattleDamage.kt b/core/src/com/unciv/logic/battle/BattleDamage.kt index 89849ea171..f9f19be367 100644 --- a/core/src/com/unciv/logic/battle/BattleDamage.kt +++ b/core/src/com/unciv/logic/battle/BattleDamage.kt @@ -88,6 +88,12 @@ class BattleDamage{ 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 + modifiers["Attacker Bonus"] = regexResult.groups[1]!!.value.toFloat() / 100 + } } if (attacker.isMelee()) { diff --git a/core/src/com/unciv/logic/battle/CityCombatant.kt b/core/src/com/unciv/logic/battle/CityCombatant.kt index bc6b1cc6bc..59c7311528 100644 --- a/core/src/com/unciv/logic/battle/CityCombatant.kt +++ b/core/src/com/unciv/logic/battle/CityCombatant.kt @@ -12,6 +12,7 @@ class CityCombatant(val city: CityInfo) : ICombatant { override fun getTile(): TileInfo = city.getCenterTile() override fun getName(): String = city.name override fun isDefeated(): Boolean = city.health==1 + override fun isInvisible(): Boolean = false override fun takeDamage(damage: Int) { city.health -= damage diff --git a/core/src/com/unciv/logic/battle/ICombatant.kt b/core/src/com/unciv/logic/battle/ICombatant.kt index b280373e98..537513e17f 100644 --- a/core/src/com/unciv/logic/battle/ICombatant.kt +++ b/core/src/com/unciv/logic/battle/ICombatant.kt @@ -1,6 +1,7 @@ package com.unciv.logic.battle import com.unciv.logic.civilization.CivilizationInfo +import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo import com.unciv.models.gamebasics.unit.UnitType @@ -14,6 +15,7 @@ interface ICombatant{ fun isDefeated():Boolean fun getCivilization(): CivilizationInfo fun getTile(): TileInfo + fun isInvisible(): Boolean fun isMelee(): Boolean { return this.getUnitType().isMelee() diff --git a/core/src/com/unciv/logic/battle/MapUnitCombatant.kt b/core/src/com/unciv/logic/battle/MapUnitCombatant.kt index 3d41465d87..8765f52dcc 100644 --- a/core/src/com/unciv/logic/battle/MapUnitCombatant.kt +++ b/core/src/com/unciv/logic/battle/MapUnitCombatant.kt @@ -11,6 +11,7 @@ class MapUnitCombatant(val unit: MapUnit) : ICombatant { override fun getTile(): TileInfo = unit.getTile() override fun getName(): String = unit.name override fun isDefeated(): Boolean = unit.health <= 0 + override fun isInvisible(): Boolean = unit.isInvisible() override fun takeDamage(damage: Int) { unit.health -= damage diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index 39131a2246..bbad8a3f62 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -33,6 +33,7 @@ class CivilizationInfo { */ @Transient private var units=ArrayList() @Transient var viewableTiles = HashSet() + @Transient var viewableInvisibleUnitsTiles = HashSet() var gold = 0 var happiness = 15 @@ -228,6 +229,9 @@ class CivilizationInfo { newViewableTiles.addAll(getCivUnits().flatMap { it.getViewableTiles()}) viewableTiles = newViewableTiles // to avoid concurrent modification problems + val newViewableInvisibleTiles = HashSet() + newViewableInvisibleTiles.addAll(getCivUnits().filter {it.hasUnique("Can attack submarines")}.flatMap {it.getViewableTiles()}) + viewableInvisibleUnitsTiles = newViewableInvisibleTiles // updating the viewable tiles also affects the explored tiles, obvs val newExploredTiles = HashSet(exploredTiles) diff --git a/core/src/com/unciv/logic/map/MapUnit.kt b/core/src/com/unciv/logic/map/MapUnit.kt index 45c708381f..8a14656ccf 100644 --- a/core/src/com/unciv/logic/map/MapUnit.kt +++ b/core/src/com/unciv/logic/map/MapUnit.kt @@ -178,6 +178,12 @@ class MapUnit { return currentTile.baseTerrain=="Ocean"||currentTile.baseTerrain=="Coast" } + fun isInvisible(): Boolean { + if(hasUnique("Invisible to others")) + return true + return false + } + fun getEmbarkedMovement(): Int { var movement=2 movement += civInfo.tech.getUniques().count { it == "Increases embarked movement +1" } diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index 4b952f2660..16edd89db1 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -281,5 +281,14 @@ open class TileInfo { turnsToImprovement = improvement.getTurnsToBuild(civInfo) } + fun hasEnemySubmarine(): Boolean { + val unitsInTile = getUnits() + if (unitsInTile.isEmpty()) return false + if (!unitsInTile.first().civInfo.isPlayerCivilization() && + unitsInTile.firstOrNull {it.isInvisible() == true} != null) { + return true + } + return false + } //endregion } \ No newline at end of file diff --git a/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt b/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt index 5136aa00cc..90ac763efb 100644 --- a/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt +++ b/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt @@ -23,8 +23,10 @@ class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo) : TileGroup( fun update() { val canSeeTile = UnCivGame.Current.viewEntireMapForDebug || city.civInfo.viewableTiles.contains(tileInfo) - - super.update(canSeeTile,true) + val showSubmarine = UnCivGame.Current.viewEntireMapForDebug + || city.civInfo.viewableInvisibleUnitsTiles.contains(tileInfo) + || (!tileInfo.hasEnemySubmarine()) + super.update(canSeeTile,true, showSubmarine) updatePopulationImage() if (improvementImage != null) improvementImage!!.setColor(1f, 1f, 1f, 0.5f) diff --git a/core/src/com/unciv/ui/tilegroups/TileGroup.kt b/core/src/com/unciv/ui/tilegroups/TileGroup.kt index b065ad5401..16178dc601 100644 --- a/core/src/com/unciv/ui/tilegroups/TileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/TileGroup.kt @@ -133,7 +133,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() { } - open fun update(isViewable: Boolean, showResourcesAndImprovements:Boolean) { + open fun update(isViewable: Boolean, showResourcesAndImprovements:Boolean, showSubmarine: Boolean) { hideCircle() if (!UnCivGame.Current.viewEntireMapForDebug && !tileInfo.tileMap.gameInfo.getPlayerCivilization().exploredTiles.contains(tileInfo.position)) { @@ -150,7 +150,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() { civilianUnitImage = newUnitImage(tileInfo.civilianUnit, civilianUnitImage, isViewable, -20f) - militaryUnitImage = newUnitImage(tileInfo.militaryUnit, militaryUnitImage, isViewable, 20f) + militaryUnitImage = newUnitImage(tileInfo.militaryUnit, militaryUnitImage, isViewable && showSubmarine, 20f) updateRoadImages() updateBorderImages() diff --git a/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt b/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt index 1c7ab8dd3c..74088d9138 100644 --- a/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt @@ -23,7 +23,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) { } - fun update(isViewable: Boolean) { + fun update(isViewable: Boolean, showSubmarine: Boolean) { val city = tileInfo.getCity() removePopulationIcon() @@ -36,7 +36,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) { updateCityButton(city, isViewable || UnCivGame.Current.viewEntireMapForDebug) // needs to be before the update so the units will be above the city button super.update(isViewable || UnCivGame.Current.viewEntireMapForDebug, - UnCivGame.Current.settings.showResourcesAndImprovements) + UnCivGame.Current.settings.showResourcesAndImprovements, showSubmarine) yieldGroup.isVisible = !UnCivGame.Current.settings.showResourcesAndImprovements if (yieldGroup.isVisible) diff --git a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt index caf98fe75e..a22ff36b1a 100644 --- a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt +++ b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt @@ -180,6 +180,7 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: internal fun updateTiles(civInfo: CivilizationInfo) { val playerViewableTilePositions = civInfo.viewableTiles.map { it.position }.toHashSet() + val playerViewableInvisibleUnitsTilePositions = civInfo.viewableInvisibleUnitsTiles.map { it.position }.toHashSet() cityButtonOverlays.forEach{it.remove()} cityButtonOverlays.clear() @@ -187,9 +188,16 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: for (tileGroup in tileGroups.values){ val canSeeTile = UnCivGame.Current.viewEntireMapForDebug || playerViewableTilePositions.contains(tileGroup.tileInfo.position) - tileGroup.update(canSeeTile) + + val showSubmarine = UnCivGame.Current.viewEntireMapForDebug + || playerViewableInvisibleUnitsTilePositions.contains(tileGroup.tileInfo.position) + || (!tileGroup.tileInfo.hasEnemySubmarine()) + tileGroup.update(canSeeTile, showSubmarine) + val unitsInTile = tileGroup.tileInfo.getUnits() - if(canSeeTile && unitsInTile.isNotEmpty() && !unitsInTile.first().civInfo.isPlayerCivilization()) + val canSeeEnemy = unitsInTile.isNotEmpty() && !unitsInTile.first().civInfo.isPlayerCivilization() + && (showSubmarine || unitsInTile.firstOrNull {!it.isInvisible()}!=null) + if(canSeeTile && canSeeEnemy) tileGroup.showCircle(Color.RED) // Display ALL viewable enemies with a red circle so that users don't need to go "hunting" for enemy units }