diff --git a/android/Images/OtherIcons/Circle.png b/android/Images/OtherIcons/Circle.png index 3fef82bfcb..052641f098 100644 Binary files a/android/Images/OtherIcons/Circle.png and b/android/Images/OtherIcons/Circle.png differ diff --git a/android/Images/OtherIcons/CircleOld.png b/android/Images/OtherIcons/CircleOld.png new file mode 100644 index 0000000000..3fef82bfcb Binary files /dev/null and b/android/Images/OtherIcons/CircleOld.png differ diff --git a/android/Images/UnitPromotionIcons/Blitz_(Civ5).png b/android/Images/UnitPromotionIcons/Blitz_(Civ5).png new file mode 100644 index 0000000000..633940b753 Binary files /dev/null and b/android/Images/UnitPromotionIcons/Blitz_(Civ5).png differ diff --git a/android/Images/UnitPromotionIcons/Formation_II_(Civ5).png b/android/Images/UnitPromotionIcons/Formation_II_(Civ5).png new file mode 100644 index 0000000000..c8bde11351 Binary files /dev/null and b/android/Images/UnitPromotionIcons/Formation_II_(Civ5).png differ diff --git a/android/Images/UnitPromotionIcons/Formation_I_(Civ5).png b/android/Images/UnitPromotionIcons/Formation_I_(Civ5).png new file mode 100644 index 0000000000..8397851aa8 Binary files /dev/null and b/android/Images/UnitPromotionIcons/Formation_I_(Civ5).png differ diff --git a/android/Images/UnitPromotionIcons/Logistics_(Civ5).png b/android/Images/UnitPromotionIcons/Logistics_(Civ5).png new file mode 100644 index 0000000000..a2ab252d0a Binary files /dev/null and b/android/Images/UnitPromotionIcons/Logistics_(Civ5).png differ diff --git a/android/Images/UnitPromotionIcons/Mobility_(Civ5).png b/android/Images/UnitPromotionIcons/Mobility_(Civ5).png new file mode 100644 index 0000000000..fefaeeec3c Binary files /dev/null and b/android/Images/UnitPromotionIcons/Mobility_(Civ5).png differ diff --git a/android/Images/UnitPromotionIcons/Volley_(Civ5).png b/android/Images/UnitPromotionIcons/Volley_(Civ5).png new file mode 100644 index 0000000000..2b1f1bd83a Binary files /dev/null and b/android/Images/UnitPromotionIcons/Volley_(Civ5).png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index 529d526aad..2ec8adde65 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -13,49 +13,49 @@ FlagIcons/Dutch index: -1 FlagIcons/English rotate: false - xy: 1250, 692 + xy: 1430, 692 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/French rotate: false - xy: 1380, 692 + xy: 1560, 692 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/German rotate: false - xy: 1510, 692 + xy: 1690, 692 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Italian rotate: false - xy: 1640, 692 + xy: 1820, 692 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Romanian rotate: false - xy: 1770, 692 + xy: 204, 394 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Russian rotate: false - xy: 1250, 562 + xy: 204, 264 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 FlagIcons/Spanish rotate: false - xy: 1380, 562 + xy: 204, 134 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -69,168 +69,175 @@ ImprovementIcons/Academy index: -1 ImprovementIcons/Camp rotate: false - xy: 204, 422 + xy: 334, 262 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Customs_house rotate: false - xy: 510, 160 + xy: 640, 314 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Farm rotate: false - xy: 664, 518 + xy: 844, 416 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Landmark rotate: false - xy: 918, 314 + xy: 640, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Lumber mill rotate: false - xy: 1020, 314 + xy: 946, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Manufactory rotate: false - xy: 1020, 212 + xy: 1048, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Mine rotate: false - xy: 1122, 212 + xy: 1480, 590 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Oil well rotate: false - xy: 920, 110 + xy: 1888, 590 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Pasture rotate: false - xy: 1022, 110 + xy: 1582, 488 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Plantation rotate: false - xy: 716, 8 + xy: 1786, 488 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Quarry rotate: false - xy: 818, 8 + xy: 1888, 488 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Railroad rotate: false - xy: 920, 8 + xy: 308, 32 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Railroad rotate: false - xy: 920, 8 + xy: 308, 32 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Road rotate: false - xy: 1124, 8 + xy: 512, 58 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Trading post rotate: false - xy: 1632, 488 + xy: 1354, 438 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Circle rotate: false - xy: 408, 466 + xy: 1250, 642 + size: 178, 178 + orig: 178, 178 + offset: 0, 0 + index: -1 +OtherIcons/CircleOld + rotate: false + xy: 436, 160 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/City rotate: false - xy: 306, 262 + xy: 538, 262 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Crosshair rotate: false - xy: 510, 262 + xy: 640, 416 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/DisbandUnit rotate: false - xy: 410, 58 + xy: 640, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Fire rotate: false - xy: 766, 518 + xy: 742, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/MenuIcon rotate: false - xy: 1122, 314 + xy: 1378, 540 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Shield rotate: false - xy: 1224, 256 + xy: 920, 8 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Star rotate: false - xy: 204, 122 + xy: 1558, 392 size: 100, 94 orig: 100, 94 offset: 0, 0 index: -1 OtherIcons/Stop rotate: false - xy: 1530, 488 + xy: 1252, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -251,217 +258,217 @@ OtherIcons/tileTableBackground index: -1 OtherIcons/whiteDot rotate: false - xy: 583, 770 + xy: 260, 779 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 PolicyIcons/Aristocracy_(Civ5) rotate: false - xy: 1866, 530 + xy: 326, 3 size: 28, 27 orig: 28, 27 offset: 0, 0 index: -1 PolicyIcons/Citizenship_(Civ5) rotate: false - xy: 630, 787 + xy: 1558, 318 size: 28, 33 orig: 28, 33 offset: 0, 0 index: -1 PolicyIcons/Civil_Society_(Civ5) rotate: false - xy: 1204, 587 + xy: 1660, 417 size: 28, 31 orig: 28, 31 offset: 0, 0 index: -1 PolicyIcons/Collective_Rule_(Civ5) rotate: false - xy: 1174, 548 + xy: 1690, 455 size: 28, 31 orig: 28, 31 offset: 0, 0 index: -1 PolicyIcons/Constitution_(Civ5) rotate: false - xy: 1987, 865 + xy: 1588, 329 size: 28, 27 orig: 28, 27 offset: 0, 0 index: -1 PolicyIcons/Democracy_(Civ5) rotate: false - xy: 1836, 521 + xy: 1558, 286 size: 28, 30 orig: 28, 30 offset: 0, 0 index: -1 PolicyIcons/Entrepreneurship_(Civ5) rotate: false - xy: 583, 773 + xy: 1897, 845 size: 45, 47 orig: 45, 47 offset: 0, 0 index: -1 PolicyIcons/Free_Religion_(Civ5) rotate: false - xy: 1866, 559 + xy: 260, 524 size: 28, 29 orig: 28, 29 offset: 0, 0 index: -1 PolicyIcons/Free_Speech_(Civ5) rotate: false - xy: 308, 20 + xy: 1660, 450 size: 28, 36 orig: 28, 36 offset: 0, 0 index: -1 PolicyIcons/Free_Thought_(Civ5) rotate: false - xy: 1174, 518 + xy: 206, 2 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 PolicyIcons/Humanism_(Civ5) rotate: false - xy: 398, 29 + xy: 1618, 363 size: 28, 27 orig: 28, 27 offset: 0, 0 index: -1 PolicyIcons/Landed_Elite_(Civ5) rotate: false - xy: 338, 25 + xy: 1974, 861 size: 28, 31 orig: 28, 31 offset: 0, 0 index: -1 PolicyIcons/Legalism_(Civ5) rotate: false - xy: 368, 28 + xy: 236, 2 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 PolicyIcons/Mandate_Of_Heaven_(Civ5) rotate: false - xy: 1836, 553 + xy: 1486, 146 size: 28, 35 orig: 28, 35 offset: 0, 0 index: -1 PolicyIcons/Mercantilism_(Civ5) rotate: false - xy: 260, 529 + xy: 1456, 144 size: 28, 37 orig: 28, 37 offset: 0, 0 index: -1 PolicyIcons/Meritocracy_(Civ5) rotate: false - xy: 1314, 227 + xy: 1690, 426 size: 28, 27 orig: 28, 27 offset: 0, 0 index: -1 PolicyIcons/Monarchy_(Civ5) rotate: false - xy: 1224, 218 + xy: 1944, 856 size: 28, 36 orig: 28, 36 offset: 0, 0 index: -1 PolicyIcons/Oligarchy_(Civ5) rotate: false - xy: 1927, 860 + xy: 1588, 358 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 PolicyIcons/Organized_Religion_(Civ5) rotate: false - xy: 368, 2 + xy: 334, 134 size: 28, 24 orig: 28, 24 offset: 0, 0 index: -1 PolicyIcons/Patronage_(Civ5) rotate: false - xy: 612, 520 + xy: 583, 774 size: 50, 46 orig: 50, 46 offset: 0, 0 index: -1 PolicyIcons/Protectionism_(Civ5) rotate: false - xy: 1530, 256 + xy: 1720, 460 size: 28, 26 orig: 28, 26 offset: 0, 0 index: -1 PolicyIcons/Reformation_(Civ5) rotate: false - xy: 1284, 226 + xy: 266, 2 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 PolicyIcons/Representation_(Civ5) rotate: false - xy: 1254, 223 + xy: 1516, 150 size: 28, 31 orig: 28, 31 offset: 0, 0 index: -1 PolicyIcons/Republic_(Civ5) rotate: false - xy: 1836, 463 + xy: 1558, 258 size: 28, 26 orig: 28, 26 offset: 0, 0 index: -1 PolicyIcons/Scientific_Revolution_(Civ5) rotate: false - xy: 1866, 502 + xy: 356, 4 size: 28, 26 orig: 28, 26 offset: 0, 0 index: -1 PolicyIcons/Secularism_(Civ5) rotate: false - xy: 1957, 863 + xy: 290, 524 size: 28, 29 orig: 28, 29 offset: 0, 0 index: -1 PolicyIcons/Sovereignty_(Civ5) rotate: false - xy: 398, 2 + xy: 1588, 302 size: 28, 25 orig: 28, 25 offset: 0, 0 index: -1 PolicyIcons/Theocracy_(Civ5) rotate: false - xy: 1174, 581 + xy: 1558, 353 size: 28, 37 orig: 28, 37 offset: 0, 0 index: -1 PolicyIcons/Trade_Unions_(Civ5) rotate: false - xy: 1836, 491 + xy: 296, 2 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 PolicyIcons/Universal_Suffrage_(Civ5) rotate: false - xy: 1897, 844 + xy: 1430, 642 size: 28, 48 orig: 28, 48 offset: 0, 0 @@ -475,133 +482,133 @@ ResourceIcons/Aluminum index: -1 ResourceIcons/Bananas rotate: false - xy: 1714, 590 + xy: 334, 364 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cattle rotate: false - xy: 206, 20 + xy: 334, 160 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Coal rotate: false - xy: 306, 160 + xy: 766, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Cotton rotate: false - xy: 510, 364 + xy: 970, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Deer rotate: false - xy: 308, 58 + xy: 742, 416 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Dyes rotate: false - xy: 512, 58 + xy: 742, 314 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Furs rotate: false - xy: 868, 518 + xy: 844, 314 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gems rotate: false - xy: 970, 518 + xy: 946, 416 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gold rotate: false - xy: 1072, 518 + xy: 844, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Incense rotate: false - xy: 816, 416 + xy: 1174, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Iron rotate: false - xy: 714, 212 + xy: 1150, 416 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Ivory rotate: false - xy: 816, 314 + xy: 1150, 314 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Marble rotate: false - xy: 1122, 416 + xy: 1150, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Oil rotate: false - xy: 818, 110 + xy: 1786, 590 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sheep rotate: false - xy: 1326, 460 + xy: 818, 8 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silk rotate: false - xy: 1326, 358 + xy: 1022, 8 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silver rotate: false - xy: 1326, 256 + xy: 1124, 8 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Spices rotate: false - xy: 1428, 358 + xy: 1252, 416 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Stone rotate: false - xy: 1428, 256 + xy: 1252, 314 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -615,35 +622,35 @@ ResourceIcons/Sugar index: -1 ResourceIcons/Uranium rotate: false - xy: 1632, 386 + xy: 1354, 234 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wheat rotate: false - xy: 1632, 284 + xy: 1456, 387 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wine rotate: false - xy: 1734, 386 + xy: 1456, 285 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/CityConnection rotate: false - xy: 408, 364 + xy: 538, 160 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/City_Center_(Civ6) rotate: false - xy: 510, 466 + xy: 664, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -685,7 +692,7 @@ StatIcons/Malcontent index: -1 StatIcons/Movement rotate: false - xy: 614, 110 + xy: 1582, 590 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -713,14 +720,14 @@ StatIcons/Science index: -1 StatIcons/Strength rotate: false - xy: 1530, 386 + xy: 1252, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Swordsman rotate: false - xy: 1530, 386 + xy: 1252, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -776,378 +783,420 @@ TerrainIcons/Oasis index: -1 TerrainIcons/road rotate: false - xy: 2, 5 + xy: 260, 555 size: 61, 11 orig: 61, 11 offset: 0, 0 index: -1 UnitIcons/Archer rotate: false - xy: 1510, 590 + xy: 206, 32 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Artillery rotate: false - xy: 1612, 590 + xy: 334, 466 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Bowman rotate: false - xy: 1816, 590 + xy: 436, 466 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/RangedStrength rotate: false - xy: 1816, 590 + xy: 436, 466 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Cannon rotate: false - xy: 204, 320 + xy: 436, 364 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Catapult rotate: false - xy: 204, 218 + xy: 538, 466 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Cavalry rotate: false - xy: 306, 466 + xy: 436, 262 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Chariot Archer rotate: false - xy: 306, 364 + xy: 538, 364 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Companion Cavalry rotate: false - xy: 408, 262 + xy: 868, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Crossbowman rotate: false - xy: 408, 160 + xy: 1072, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Artist rotate: false - xy: 612, 416 + xy: 946, 314 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Engineer rotate: false - xy: 612, 314 + xy: 1048, 416 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Merchant rotate: false - xy: 714, 416 + xy: 946, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Great Scientist rotate: false - xy: 612, 212 + xy: 1048, 314 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Horseman rotate: false - xy: 714, 314 + xy: 1048, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Horses rotate: false - xy: 714, 314 + xy: 1048, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Knight rotate: false - xy: 918, 416 + xy: 1150, 212 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Lancer rotate: false - xy: 816, 212 + xy: 1276, 540 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Longbowman rotate: false - xy: 1020, 416 + xy: 742, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Longswordsman rotate: false - xy: 918, 212 + xy: 844, 110 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Musketeer rotate: false - xy: 716, 110 + xy: 1684, 590 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Musketman rotate: false - xy: 614, 9 + xy: 1480, 489 size: 100, 99 orig: 100, 99 offset: 0, 0 index: -1 UnitIcons/Pikeman rotate: false - xy: 1124, 110 + xy: 1684, 488 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Rifleman rotate: false - xy: 1022, 8 + xy: 410, 58 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Scout rotate: false - xy: 1224, 460 + xy: 614, 8 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Settler rotate: false - xy: 1224, 358 + xy: 716, 8 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Spearman rotate: false - xy: 1428, 460 + xy: 1226, 8 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Trebuchet rotate: false - xy: 1530, 284 + xy: 1354, 336 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Warrior rotate: false - xy: 1734, 488 + xy: 1354, 132 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Worker rotate: false - xy: 1734, 284 + xy: 1456, 183 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy_III_(Civ5) rotate: false - xy: 1897, 822 + xy: 1250, 620 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy_II_(Civ5) rotate: false - xy: 1204, 565 + xy: 1276, 518 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Accuracy_I_(Civ5) rotate: false - xy: 1896, 568 + xy: 1298, 518 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage_III_(Civ5) rotate: false - xy: 428, 36 + xy: 1320, 518 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage_II_(Civ5) rotate: false - xy: 1344, 234 + xy: 640, 546 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Barrage_I_(Civ5) rotate: false - xy: 1560, 262 + xy: 410, 36 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +UnitPromotionIcons/Blitz_(Civ5) + rotate: false + xy: 614, 138 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Charge_(Civ5) rotate: false - xy: 1836, 441 + xy: 1328, 88 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Cover_II_(Civ5) rotate: false - xy: 1866, 480 + xy: 1354, 110 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Cover_I_(Civ5) rotate: false - xy: 1896, 546 + xy: 1456, 518 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_III_(Civ5) rotate: false - xy: 428, 14 + xy: 635, 800 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_II_(Civ5) rotate: false - xy: 450, 36 + xy: 1897, 823 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_I_(Civ5) rotate: false - xy: 1366, 234 + xy: 364, 138 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +UnitPromotionIcons/Formation_II_(Civ5) + rotate: false + xy: 1660, 395 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +UnitPromotionIcons/Formation_I_(Civ5) + rotate: false + xy: 2004, 872 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Indirect_Fire_(Civ5) rotate: false - xy: 1582, 262 + xy: 2026, 872 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +UnitPromotionIcons/Logistics_(Civ5) + rotate: false + xy: 1618, 341 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/March_(Civ5) rotate: false - xy: 1836, 419 + xy: 1720, 438 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +UnitPromotionIcons/Mobility_(Civ5) + rotate: false + xy: 1750, 466 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Range_(Civ5) rotate: false - xy: 1896, 524 + xy: 1558, 236 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_III_(Civ5) rotate: false - xy: 450, 14 + xy: 386, 10 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_II_(Civ5) rotate: false - xy: 472, 36 + xy: 1588, 280 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_I_(Civ5) rotate: false - xy: 1388, 234 + xy: 640, 524 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Sentry_(Civ5) rotate: false - xy: 1604, 262 + xy: 432, 36 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_III_(Civ5) rotate: false - xy: 1836, 397 + xy: 614, 116 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_II_(Civ5) rotate: false - xy: 1896, 502 + xy: 1328, 66 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_I_(Civ5) rotate: false - xy: 1888, 480 + xy: 1350, 88 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Siege_(Civ5) rotate: false - xy: 472, 14 + xy: 1376, 110 + size: 20, 20 + orig: 20, 20 + offset: 0, 0 + index: -1 +UnitPromotionIcons/Volley_(Civ5) + rotate: false + xy: 1456, 496 size: 20, 20 orig: 20, 20 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index 97db1e3ce4..fab470011d 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/UnitPromotions.json b/android/assets/jsons/UnitPromotions.json index fcb12b8a3c..8fe1925ae1 100644 --- a/android/assets/jsons/UnitPromotions.json +++ b/android/assets/jsons/UnitPromotions.json @@ -76,7 +76,7 @@ { name:"Scouting II", prerequisites:["Scouting I"], - effect:"+1 Visibility Range", + effect:"+1 Movement", unitTypes:["Scout"] } { @@ -110,9 +110,15 @@ } { name:"Siege", - prerequisites:["Accuracy I","Barrage I","Shock II","Drill II"], - effect:"Bonus vs City 25%", - unitTypes:["Melee","Ranged","Siege","Mounted"] + prerequisites:["Shock II","Drill II"], + effect:"Bonus vs City 50%", + unitTypes:["Melee"] + } + { + name:"Volley", + prerequisites:["Accuracy I","Barrage I"], + effect:"Bonus vs City 50%", + unitTypes:["Ranged","Siege"] } { name:"Sentry", @@ -133,4 +139,35 @@ unitTypes:["Ranged","Siege"] } + { + name:"Formation I", + prerequisites:["Shock II","Drill II"], + effect:"Bonus vs Mounted 33%", + unitTypes:["Melee","Mounted"] + } + { + name:"Formation II", + prerequisites:["Formation I"], + effect:"Bonus vs Mounted 33%", + unitTypes:["Melee","Mounted"] + } + { + name:"Blitz", + prerequisites:["Shock III","Drill III"], + effect:"1 additional attack per turn", + unitTypes:["Melee","Mounted"] + } + { + name:"Logistics", + prerequisites:["Accuracy III","Barrage III"], + effect:"1 additional attack per turn", + unitTypes:["Ranged","Siege"] + } + { + name:"Mobility", + prerequisites:["Shock III","Drill III"], + effect:"+1 Movement", + unitTypes:["Mounted"] + } + ] \ No newline at end of file diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index d34bc7fa92..8fee8c895f 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -76,7 +76,8 @@ class Battle(val gameInfo:GameInfo) { if(attacker is MapUnitCombatant) { val unit = attacker.unit - if (unit.hasUnique("Can move after attacking")){ + if (unit.hasUnique("Can move after attacking") + || (unit.hasUnique("1 additional attack per turn") && unit.attacksThisTurn==0)){ if(!attacker.getUnitType().isMelee() || !defender.isDefeated()) // if it was a melee attack and we won, then the unit ALREADY got movement points deducted, for the movement to the enemie's tile! unit.currentMovement = max(0f, unit.currentMovement - 1) } diff --git a/core/src/com/unciv/logic/battle/BattleDamage.kt b/core/src/com/unciv/logic/battle/BattleDamage.kt index 646b73e98d..47397820b9 100644 --- a/core/src/com/unciv/logic/battle/BattleDamage.kt +++ b/core/src/com/unciv/logic/battle/BattleDamage.kt @@ -11,7 +11,7 @@ class BattleDamage{ private fun getBattleDamageModifiersOfUnit(unit:MapUnit): MutableList { val modifiers = mutableListOf() - for (ability in unit.getSpecialAbilities()) { + for (ability in unit.getUniques()) { // This beut allows us to have generic unit uniques: "Bonus vs City 75%", "Penatly vs Mounted 25%" etc. val regexResult = Regex("""(Bonus|Penalty) vs (.*) (\d*)%""").matchEntire(ability) if (regexResult == null) continue @@ -87,7 +87,7 @@ class BattleDamage{ } if(attacker.isRanged()){ - val defenceVsRanged = 0.25f * defender.unit.getSpecialAbilities().count{it=="+25% Defence against ranged attacks"} + val defenceVsRanged = 0.25f * defender.unit.getUniques().count{it=="+25% Defence against ranged attacks"} if(defenceVsRanged>0) modifiers["defence vs ranged"] = defenceVsRanged } diff --git a/core/src/com/unciv/logic/map/MapUnit.kt b/core/src/com/unciv/logic/map/MapUnit.kt index e4a6c82a76..f757cae7ea 100644 --- a/core/src/com/unciv/logic/map/MapUnit.kt +++ b/core/src/com/unciv/logic/map/MapUnit.kt @@ -37,14 +37,18 @@ class MapUnit { fun baseUnit(): BaseUnit = baseUnit fun getMovementString(): String = DecimalFormat("0.#").format(currentMovement.toDouble()) + "/" + getMaxMovement() fun getTile(): TileInfo = currentTile - fun getMaxMovement() = baseUnit.movement + fun getMaxMovement(): Int { + var movement = baseUnit.movement + movement += getUniques().count{it=="+1 Movement"} + return movement + } fun getDistanceToTiles(): HashMap { val tile = getTile() return movementAlgs().getDistanceToTilesWithinTurn(tile.position,currentMovement) } - fun getSpecialAbilities(): MutableList { + fun getUniques(): MutableList { val abilities = mutableListOf() val baseUnit = baseUnit() if(baseUnit.uniques!=null) abilities.addAll(baseUnit.uniques!!) @@ -53,12 +57,12 @@ class MapUnit { } fun hasUnique(unique:String): Boolean { - return getSpecialAbilities().contains(unique) + return getUniques().contains(unique) } fun getViewableTiles(): MutableList { var visibilityRange = 2 - visibilityRange += getSpecialAbilities().count{it=="+1 Visibility Range"} + visibilityRange += getUniques().count{it=="+1 Visibility Range"} if(hasUnique("Limited Visibility")) visibilityRange-=1 val tile = getTile() if (tile.baseTerrain == "Hill") visibilityRange += 1 @@ -102,7 +106,8 @@ class MapUnit { fun canAttack(): Boolean { if(currentMovement==0f) return false - if(attacksThisTurn>0) return false + if(attacksThisTurn>0 && !hasUnique("1 additional attack per turn")) return false + if(attacksThisTurn>1) return false if(hasUnique("Must set up to ranged attack") && action != "Set Up") return false return true } @@ -211,7 +216,7 @@ class MapUnit { fun endTurn() { doPostTurnAction() if(currentMovement== getMaxMovement().toFloat() // didn't move this turn - || getSpecialAbilities().contains("Unit will heal every turn, even if it performs an action")){ + || getUniques().contains("Unit will heal every turn, even if it performs an action")){ heal() } } diff --git a/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt b/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt index 5cb9daaaa5..cba1574b60 100644 --- a/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt @@ -76,8 +76,8 @@ class BaseUnit : INamed, IConstruction, ICivilopedia { fun getMapUnit(): MapUnit { val unit = MapUnit() unit.name = name - unit.currentMovement = movement.toFloat() - unit.setTransients() + unit.setTransients() // must be after setting name because it sets the bseUnit according to the name + unit.currentMovement = unit.getMaxMovement().toFloat() // must be after setTransients because it relies on having the baseUnit set return unit }