diff --git a/android/Images/OtherIcons/Terrains.png b/android/Images/OtherIcons/Terrains.png index 379aeb03e8..18c40df5d2 100644 Binary files a/android/Images/OtherIcons/Terrains.png and b/android/Images/OtherIcons/Terrains.png differ diff --git a/android/Images/UnitTypeIcons/DomainAir.png b/android/Images/UnitTypeIcons/DomainAir.png new file mode 100644 index 0000000000..27a2aaca63 Binary files /dev/null and b/android/Images/UnitTypeIcons/DomainAir.png differ diff --git a/android/Images/UnitTypeIcons/DomainLand.png b/android/Images/UnitTypeIcons/DomainLand.png new file mode 100644 index 0000000000..18c40df5d2 Binary files /dev/null and b/android/Images/UnitTypeIcons/DomainLand.png differ diff --git a/android/Images/UnitTypeIcons/DomainWater.png b/android/Images/UnitTypeIcons/DomainWater.png new file mode 100644 index 0000000000..aa85a1746f Binary files /dev/null and b/android/Images/UnitTypeIcons/DomainWater.png differ diff --git a/android/Images/UnitTypeIcons/UnitTypes.png b/android/Images/UnitTypeIcons/UnitTypes.png new file mode 100644 index 0000000000..575dc7e593 Binary files /dev/null and b/android/Images/UnitTypeIcons/UnitTypes.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index dc1e2f483f..3003763050 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -13,119 +13,119 @@ CityStateIcons/Cultured index: -1 CityStateIcons/Maritime rotate: false - xy: 1615, 1715 + xy: 1831, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 CityStateIcons/Mercantile rotate: false - xy: 1723, 1715 + xy: 1939, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 CityStateIcons/Militaristic rotate: false - xy: 1831, 1823 + xy: 1939, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 CityStateIcons/Religious rotate: false - xy: 1183, 1499 + xy: 1507, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 EmojiIcons/Culture rotate: false - xy: 436, 973 + xy: 436, 526 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Faith rotate: false - xy: 436, 915 + xy: 436, 468 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Food rotate: false - xy: 436, 857 + xy: 436, 410 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Gold rotate: false - xy: 436, 799 + xy: 436, 352 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Great Artist rotate: false - xy: 436, 741 + xy: 436, 294 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Great Engineer rotate: false - xy: 436, 683 + xy: 436, 236 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Great General rotate: false - xy: 436, 625 + xy: 436, 178 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Great Merchant rotate: false - xy: 436, 567 + xy: 436, 120 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Great Scientist rotate: false - xy: 436, 509 + xy: 436, 62 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Happiness rotate: false - xy: 436, 451 + xy: 436, 4 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Production rotate: false - xy: 436, 103 + xy: 494, 352 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Science rotate: false - xy: 559, 1087 + xy: 494, 178 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 EmojiIcons/Turn rotate: false - xy: 552, 1029 + xy: 494, 62 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -202,252 +202,231 @@ ImprovementIcons/Customs house index: -1 ImprovementIcons/Farm rotate: false - xy: 112, 247 + xy: 427, 1637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fishing Boats rotate: false - xy: 112, 31 + xy: 535, 1685 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Fort rotate: false - xy: 535, 1793 + xy: 643, 1700 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Holy site rotate: false - xy: 859, 1823 + xy: 967, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Landmark rotate: false - xy: 1183, 1823 + xy: 1291, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Lumber mill rotate: false - xy: 1399, 1823 + xy: 1507, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Manufactory rotate: false - xy: 1507, 1823 + xy: 1615, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Mine rotate: false - xy: 1831, 1715 + xy: 535, 1577 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Moai rotate: false - xy: 1939, 1823 + xy: 643, 1592 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Offshore Platform rotate: false - xy: 1075, 1607 + xy: 1399, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Oil well rotate: false - xy: 1291, 1607 + xy: 1615, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Pasture rotate: false - xy: 1507, 1607 + xy: 1831, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Plantation rotate: false - xy: 406, 1313 + xy: 514, 1361 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Polder rotate: false - xy: 406, 1205 + xy: 514, 1253 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Quarry rotate: false - xy: 643, 1484 + xy: 967, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Railroad rotate: false - xy: 1075, 1499 + xy: 1399, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Remove Fallout rotate: false - xy: 1399, 1499 + xy: 1723, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Remove Forest rotate: false - xy: 1507, 1499 + xy: 1831, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Remove Jungle rotate: false - xy: 1507, 1499 + xy: 1831, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Remove Marsh rotate: false - xy: 1723, 1500 + xy: 751, 1392 size: 100, 99 orig: 100, 99 offset: 0, 0 index: -1 ImprovementIcons/Remove Railroad rotate: false - xy: 1831, 1499 + xy: 859, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Remove Road rotate: false - xy: 1939, 1499 + xy: 967, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Repair rotate: false - xy: 751, 1391 + xy: 1075, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Road rotate: false - xy: 1075, 1391 + xy: 1399, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Terrace farm rotate: false - xy: 220, 37 + xy: 328, 881 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Trading post rotate: false - xy: 328, 989 + xy: 328, 665 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NotificationIcons/EnhanceReligion rotate: false - xy: 112, 571 + xy: 112, 247 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NotificationIcons/FoundPantheon rotate: false - xy: 112, 571 + xy: 112, 247 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NotificationIcons/FoundReligion rotate: false - xy: 112, 571 + xy: 112, 247 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NotificationIcons/ReformReligion rotate: false - xy: 112, 571 + xy: 112, 247 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Faith rotate: false - xy: 112, 571 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -NotificationIcons/Loading - rotate: false - xy: 1291, 1823 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -NotificationIcons/Working - rotate: false - xy: 1291, 1823 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -OtherIcons/Loading - rotate: false - xy: 1291, 1823 + xy: 112, 247 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NotificationIcons/PickConstruction rotate: false - xy: 1939, 1607 + xy: 406, 1313 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Production rotate: false - xy: 1939, 1607 + xy: 406, 1313 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -461,14 +440,14 @@ NotificationIcons/PickPolicy index: -1 NotificationIcons/PickTech rotate: false - xy: 412, 1529 + xy: 406, 1205 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Science rotate: false - xy: 412, 1529 + xy: 406, 1205 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -517,7 +496,7 @@ StatIcons/Movement index: -1 OtherIcons/BackArrow rotate: false - xy: 443, 1089 + xy: 436, 642 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -529,6 +508,13 @@ OtherIcons/Banner orig: 100, 100 offset: 0, 0 index: -1 +UnitTypeIcons/UnitTypes + rotate: false + xy: 1060, 1931 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 OtherIcons/Blockade rotate: false xy: 289, 1715 @@ -580,7 +566,7 @@ OtherIcons/Cities index: -1 OtherIcons/CityState rotate: false - xy: 436, 1031 + xy: 436, 584 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -622,7 +608,7 @@ OtherIcons/DisbandUnit index: -1 OtherIcons/ExclamationMark rotate: false - xy: 112, 463 + xy: 112, 139 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -650,133 +636,154 @@ OtherIcons/HexagonOutline index: -1 OtherIcons/Improvements rotate: false - xy: 436, 393 + xy: 494, 642 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Link rotate: false - xy: 436, 277 + xy: 494, 526 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/Load rotate: false - xy: 1183, 1715 + xy: 1399, 1823 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +OtherIcons/Loading + rotate: false + xy: 1399, 1715 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +NotificationIcons/Loading + rotate: false + xy: 1399, 1715 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +NotificationIcons/Working + rotate: false + xy: 1399, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/LockSmall rotate: false - xy: 436, 219 + xy: 494, 468 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/MapEditor rotate: false - xy: 1507, 1715 + xy: 1723, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/MenuIcon rotate: false - xy: 1723, 1823 + xy: 1831, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Mods rotate: false - xy: 1939, 1715 + xy: 751, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Multiplayer rotate: false - xy: 535, 1577 + xy: 859, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/NationSwap rotate: false - xy: 643, 1592 + xy: 967, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Nations rotate: false - xy: 436, 161 + xy: 494, 410 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 OtherIcons/New rotate: false - xy: 751, 1607 + xy: 1075, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Notifications rotate: false - xy: 967, 1607 + xy: 1291, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Options rotate: false - xy: 1399, 1607 + xy: 1723, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pencil rotate: false - xy: 1723, 1607 + xy: 412, 1529 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pentagon rotate: false - xy: 1831, 1607 + xy: 406, 1421 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pillage rotate: false - xy: 406, 1421 + xy: 520, 1469 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Politics rotate: false - xy: 520, 1469 + xy: 514, 1145 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 NotificationIcons/WorldCongressVote rotate: false - xy: 520, 1469 + xy: 514, 1145 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Present rotate: false - xy: 514, 1145 + xy: 859, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -790,126 +797,119 @@ OtherIcons/Puppet index: -1 OtherIcons/Quest rotate: false - xy: 751, 1499 + xy: 1075, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Question rotate: false - xy: 859, 1499 + xy: 1183, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Quickstart rotate: false - xy: 967, 1499 + xy: 1291, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Remove Heresy rotate: false - xy: 1615, 1499 + xy: 1939, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Resources rotate: false - xy: 859, 1391 + xy: 1183, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Resume rotate: false - xy: 967, 1391 + xy: 1291, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Search rotate: false - xy: 1291, 1391 + xy: 1615, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/SecretOptions rotate: false - xy: 1399, 1391 + xy: 1723, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Settings rotate: false - xy: 1507, 1391 + xy: 1831, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Shield rotate: false - xy: 1723, 1392 + xy: 227, 1111 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Sleep rotate: false - xy: 227, 1111 + xy: 220, 787 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Speaker rotate: false - xy: 220, 1003 + xy: 220, 679 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Spy rotate: false - xy: 220, 679 + xy: 220, 355 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Spy_White rotate: false - xy: 220, 571 + xy: 220, 247 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Star rotate: false - xy: 220, 469 + xy: 220, 145 size: 100, 94 orig: 100, 94 offset: 0, 0 index: -1 OtherIcons/Swap rotate: false - xy: 220, 145 + xy: 328, 989 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -OtherIcons/Terrains - rotate: false - xy: 494, 971 - size: 50, 50 - orig: 50, 50 - offset: 0, 0 - index: -1 OtherIcons/Timer rotate: false - xy: 335, 1097 + xy: 328, 773 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -923,35 +923,35 @@ OtherIcons/Triangle index: -1 OtherIcons/Turn right rotate: false - xy: 328, 773 + xy: 328, 449 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Tyrannosaurus rotate: false - xy: 328, 665 + xy: 328, 341 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/WLTKD rotate: false - xy: 1723, 1319 + xy: 436, 700 size: 83, 65 orig: 83, 65 offset: 0, 0 index: -1 OtherIcons/Wait rotate: false - xy: 328, 449 + xy: 328, 125 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Wonders rotate: false - xy: 328, 17 + xy: 436, 773 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1028,182 +1028,182 @@ ResourceIcons/Deer index: -1 ResourceIcons/Dyes rotate: false - xy: 112, 679 + xy: 112, 355 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Fish rotate: false - xy: 112, 139 + xy: 535, 1793 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Furs rotate: false - xy: 535, 1685 + xy: 751, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gems rotate: false - xy: 643, 1808 + xy: 751, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Gold Ore rotate: false - xy: 751, 1823 + xy: 859, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Horses rotate: false - xy: 859, 1715 + xy: 1075, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Incense rotate: false - xy: 967, 1823 + xy: 1075, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Iron rotate: false - xy: 967, 1715 + xy: 1183, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Ivory rotate: false - xy: 1075, 1823 + xy: 1183, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Jewelry rotate: false - xy: 1075, 1715 + xy: 1291, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Marble rotate: false - xy: 1615, 1823 + xy: 1723, 1715 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Oil rotate: false - xy: 1183, 1607 + xy: 1507, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Pearls rotate: false - xy: 1615, 1607 + xy: 1939, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Porcelain rotate: false - xy: 514, 1253 + xy: 751, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Salt rotate: false - xy: 1183, 1391 + xy: 1507, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sheep rotate: false - xy: 1615, 1391 + xy: 1939, 1391 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silk rotate: false - xy: 1831, 1391 + xy: 220, 1003 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silver rotate: false - xy: 1939, 1391 + xy: 220, 895 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Spices rotate: false - xy: 220, 787 + xy: 220, 463 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Stone rotate: false - xy: 220, 361 + xy: 220, 37 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sugar rotate: false - xy: 220, 253 + xy: 335, 1097 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Truffles rotate: false - xy: 328, 881 + xy: 328, 557 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Uranium rotate: false - xy: 328, 557 + xy: 328, 233 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Whales rotate: false - xy: 328, 341 + xy: 328, 17 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wheat rotate: false - xy: 328, 233 + xy: 436, 989 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wine rotate: false - xy: 328, 125 + xy: 436, 881 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1231,70 +1231,70 @@ StatIcons/Culture index: -1 StatIcons/Food rotate: false - xy: 427, 1637 + xy: 643, 1808 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Gold rotate: false - xy: 643, 1700 + xy: 859, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Happiness rotate: false - xy: 751, 1715 + xy: 967, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/InterceptRange rotate: false - xy: 436, 335 + xy: 494, 584 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Malcontent rotate: false - xy: 1399, 1715 + xy: 1615, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Population rotate: false - xy: 514, 1361 + xy: 643, 1484 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileIcons/Worked rotate: false - xy: 514, 1361 + xy: 643, 1484 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Range rotate: false - xy: 436, 45 + xy: 494, 294 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/RangedStrength rotate: false - xy: 501, 1087 + xy: 494, 236 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/ReligiousStrength rotate: false - xy: 1291, 1499 + xy: 1615, 1499 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1308,14 +1308,14 @@ StatIcons/Resistance index: -1 StatIcons/Specialist rotate: false - xy: 220, 895 + xy: 220, 571 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 StatIcons/Strength rotate: false - xy: 494, 1029 + xy: 494, 120 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1343,21 +1343,49 @@ TileIcons/CityCenter index: -1 TileIcons/Locked rotate: false - xy: 1291, 1715 + xy: 1507, 1823 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileIcons/NotWorked rotate: false - xy: 859, 1607 + xy: 1183, 1607 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UniqueIcons/Fallback rotate: false - xy: 112, 355 + xy: 112, 31 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitTypeIcons/DomainAir + rotate: false + xy: 112, 679 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitTypeIcons/DomainLand + rotate: false + xy: 112, 571 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +OtherIcons/Terrains + rotate: false + xy: 112, 571 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitTypeIcons/DomainWater + rotate: false + xy: 112, 463 size: 100, 100 orig: 100, 100 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index 8d2053b7af..7fd8314973 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/translations/German.properties b/android/assets/jsons/translations/German.properties index d56fc26c2c..80546ab6f4 100644 --- a/android/assets/jsons/translations/German.properties +++ b/android/assets/jsons/translations/German.properties @@ -99,10 +99,8 @@ Requires at least one of the following: = Benötigt eine der folgenden Vorrausse Requires all of the following: = Benötigt folgende Vorraussetzungen: Leads to [techName] = [techName] kann nun erforscht werden Leads to: = Ermöglicht die Erforschung von: - # Requires translation! -Enables: = - # Requires translation! -Disables: = +Enables: = Ermöglicht: +Disables: = Deaktiviert: Current construction = Aktuelle Produktion Construction queue = Produktionswarteschlange @@ -1417,6 +1415,7 @@ Turns until barbarians enter player tiles = Züge bis Barbaren Spielerfelder bet Gold reward for clearing barbarian camps = Gold-Belohnung für das Räumen von Barbarenlagern # Other civilopedia things + Nations = Nationen Available for [unitTypes] = Verfügbar für [unitTypes] Available for: = Verfügbar für: @@ -1443,7 +1442,7 @@ Faith cost modifier: [amount]%☮ = Glaubenskosten-Modifikator: [amount]%☮ Improvement build length modifier: [amount]%⏳ = Baudauer-Verbessserungen-Modifikator: [amount]%⏳ Diplomatic deal duration: [amount] turns⏳ = Diplomatische Handelsdauer: [amount] turns⏳ Gold gift influence gain modifier: [amount]%¤ = Erhaltener-Einfluss-durch-Goldgeschenk-Modifikator: [amount]%¤ -City-state tribute scaling interval: [amount] turns⏳ = Skalierungszeitraum für den Tribut der Stadtstaaten: [amount] turns⏳ +City-state tribute scaling interval: [amount] turns⏳ = Skalierungszeitraum für den Tribut der Stadtstaaten: [amount] Runden⏳ Barbarian spawn modifier: [amount]%† = Erscheinen-von-Barbaren-Modifikator: [amount]%† Golden age length modifier: [amount]%⌣ = Länge-Goldenes-Zeitalter-Modifikator: [amount]%⌣ Adjacent city religious pressure: [amount]☮ = Religiöser Druck zu benachbarten Städten: [amount]☮ @@ -1453,11 +1452,13 @@ Pillaging this improvement yields [stats] = Plünderung dieser Verbesserung ergi Pillaging this improvement yields approximately [stats] = Plünderung dieser Verbesserung ergibt ungefähr [stats] Needs removal of terrain features to be built = Benötigt die Entfernung von Geländefunktionen um gebaut werden zu können Unit type = Einheitentyp +Units: = Einheiten: +Unit types = Einheitentypen +Domain: [param] = Domäne: [param] Toggle UI (World Screen only) = Oberfläche umschalten (Nur die Weltansicht) # Policies - Adopt = Verabschieden Completed = Vollständig On adoption = Beim Verabschieden @@ -2084,8 +2085,7 @@ upon founding a city = bei der Gründung einer Stadt upon discovering a Natural Wonder = bei der Entdeckung eines Naturwunders upon constructing [buildingFilter] = beim Bau von [buildingFilter] upon constructing [buildingFilter] [cityFilter] = beim Bau von [buildingFilter] [cityFilter] - # Requires translation! -upon gaining a [baseUnitFilter] unit = +upon gaining a [baseUnitFilter] unit = nach Erhalt einer [baseUnitFilter] Einheit upon founding a Pantheon = bei der Gründung eines Pantheons upon founding a Religion = bei der Gründung einer Religion upon enhancing a Religion = bei der Verbesserung einer Religion @@ -6239,4 +6239,3 @@ Enemy military land units block tiles they are standing on. Enemy military naval City Blockade = Blockade einer Stadt One of your cities is under a naval blockade! When all adjacent water tiles of a coastal city are blocked - city loses harbor connection to all other cities, including capital. Make sure to de-blockade cities by deploying friendly military naval units to fight off invaders. = Eine deiner Städte steht unter einer Seeblockade! Wenn alle angrenzenden Wasserfelder einer Küstenstadt blockiert sind, verliert die Stadt die Hafenverbindung zu allen anderen Städten, einschließlich der Hauptstadt. Stelle sicher, dass du die Blockade aufhebst, indem du befreundete militärische Marineeinheiten einsetzt, um Eindringlinge abzuwehren. - diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index a288e5d774..67ff11e010 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -1415,6 +1415,7 @@ Turns until barbarians enter player tiles = Gold reward for clearing barbarian camps = # Other civilopedia things + Nations = Available for [unitTypes] = Available for: = @@ -1451,11 +1452,13 @@ Pillaging this improvement yields [stats] = Pillaging this improvement yields approximately [stats] = Needs removal of terrain features to be built = Unit type = +Units: = +Unit types = +Domain: [param] = Toggle UI (World Screen only) = # Policies - Adopt = Completed = On adoption = diff --git a/core/src/com/unciv/models/ruleset/unit/BaseUnitDescriptions.kt b/core/src/com/unciv/models/ruleset/unit/BaseUnitDescriptions.kt index c54dfed8e4..4b171a70ec 100644 --- a/core/src/com/unciv/models/ruleset/unit/BaseUnitDescriptions.kt +++ b/core/src/com/unciv/models/ruleset/unit/BaseUnitDescriptions.kt @@ -22,7 +22,7 @@ object BaseUnitDescriptions { for (promotion in baseUnit.promotions) infoList += promotion.tr() if (baseUnit.replacementTextForUniques != "") infoList += baseUnit.replacementTextForUniques - else for (unique in baseUnit.uniqueObjects) if(!unique.hasFlag(UniqueFlag.HiddenToUsers)) + else for (unique in baseUnit.uniqueObjects) if (!unique.hasFlag(UniqueFlag.HiddenToUsers)) infoList += unique.text.tr() return infoList.joinToString() } @@ -61,9 +61,12 @@ object BaseUnitDescriptions { return lines.joinToString("\n") } - fun getCivilopediaTextLines(baseUnit: BaseUnit, ruleset: Ruleset): List { + fun getCivilopediaTextLines(baseUnit: BaseUnit, ruleset: Ruleset): List { val textList = ArrayList() - textList += FormattedLine("{Unit type}: ${baseUnit.unitType.tr()}") + + // Don't call baseUnit.getType() here - coming from the main menu baseUnit isn't fully initialized + val unitTypeLink = ruleset.unitTypes[baseUnit.unitType]?.makeLink() ?: "" + textList += FormattedLine("{Unit type}: ${baseUnit.unitType.tr()}", unitTypeLink) val stats = ArrayList() if (baseUnit.strength != 0) stats += "${baseUnit.strength}${Fonts.strength}" @@ -187,4 +190,39 @@ object BaseUnitDescriptions { return textList } + fun UnitType.getUnitTypeCivilopediaTextLines(ruleset: Ruleset): List { + fun getDomainLines() = sequence { + yield(FormattedLine("{Unit types}:", header = 4)) + val myMovementType = getMovementType() + for (unitType in ruleset.unitTypes.values) { + if (unitType.getMovementType() != myMovementType) continue + if (!unitType.isUsed(ruleset)) continue + yield(FormattedLine(unitType.name, unitType.makeLink())) + } + } + fun getUnitTypeLines() = sequence { + getMovementType()?.let { + val color = when (it) { + UnitMovementType.Land -> "#ffc080" + UnitMovementType.Water -> "#80d0ff" + UnitMovementType.Air -> "#e0e0ff" + } + yield(FormattedLine("Domain: [${it.name}]", "UnitType/Domain: [${it.name}]", color = color)) + yield(FormattedLine(separator = true)) + } + yield(FormattedLine("Units:", header = 4)) + for (unit in ruleset.units.values) { + if (unit.unitType != name) continue + yield(FormattedLine(unit.name, unit.makeLink())) + } + if (uniqueObjects.isNotEmpty()) { + yield(FormattedLine(separator = true)) + for (unique in uniqueObjects) { + if (unique.hasFlag(UniqueFlag.HiddenToUsers)) continue + yield(FormattedLine(unique)) + } + } + } + return (if (name.startsWith("Domain: ")) getDomainLines() else getUnitTypeLines()).toList() + } } diff --git a/core/src/com/unciv/models/ruleset/unit/UnitType.kt b/core/src/com/unciv/models/ruleset/unit/UnitType.kt index 54a92ffb7e..7bcae749b0 100644 --- a/core/src/com/unciv/models/ruleset/unit/UnitType.kt +++ b/core/src/com/unciv/models/ruleset/unit/UnitType.kt @@ -1,13 +1,15 @@ package com.unciv.models.ruleset.unit +import com.unciv.models.ruleset.Ruleset import com.unciv.models.ruleset.RulesetObject import com.unciv.models.ruleset.unique.UniqueTarget +import com.unciv.models.ruleset.unit.BaseUnitDescriptions.getUnitTypeCivilopediaTextLines enum class UnitLayer { // The layer in which the unit moves Civilian, Military, - Air + Air } enum class UnitMovementType { // The types of tiles the unit can by default enter @@ -21,7 +23,7 @@ class UnitType() : RulesetObject() { private val unitMovementType: UnitMovementType? by lazy { if (movementType == null) null else UnitMovementType.valueOf(movementType!!) } override fun getUniqueTarget() = UniqueTarget.UnitType - override fun makeLink() = "" // No own category on Civilopedia screen + override fun makeLink() = "UnitType/$name" constructor(name: String, domain: String? = null) : this() { this.name = name @@ -46,9 +48,25 @@ class UnitType() : RulesetObject() { } } + override fun getCivilopediaTextLines(ruleset: Ruleset) = getUnitTypeCivilopediaTextLines(ruleset) + override fun getSortGroup(ruleset: Ruleset): Int { + return if (name.startsWith("Domain: ")) 1 else 2 + } + + fun isUsed(ruleset: Ruleset) = ruleset.units.values.any { it.unitType == name } + companion object { val City = UnitType("City", "Land") + + fun getCivilopediaIterator(ruleset: Ruleset): Collection { + return UnitMovementType.values().map { + // Create virtual UnitTypes to describe the movement domains - Civilopedia only. + // It is important that the name includes the [] _everywhere_ + // (here, CivilopediaImageGetters, links, etc.) so translation comes as cheap as possible. + UnitType("Domain: [${it.name}]", it.name) + } + ruleset.unitTypes.values.filter { + it.isUsed(ruleset) + } + } } } - - diff --git a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt index 161a2ad016..ea371f3d3d 100644 --- a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt +++ b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt @@ -9,10 +9,12 @@ import com.unciv.logic.map.tile.Tile import com.unciv.models.ruleset.Ruleset import com.unciv.models.ruleset.tile.Terrain import com.unciv.models.ruleset.tile.TerrainType +import com.unciv.models.ruleset.unit.UnitMovementType import com.unciv.ui.images.ImageGetter import com.unciv.ui.components.tilegroups.TileGroup import com.unciv.ui.components.tilegroups.TileSetStrings import com.unciv.ui.components.KeyCharAndCode +import com.unciv.ui.components.extensions.setSize import com.unciv.ui.components.extensions.surroundWithCircle import java.io.File @@ -91,6 +93,13 @@ object CivilopediaImageGetters { val belief = { name: String, size: Float -> ImageGetter.getReligionPortrait(name, size) } + val unitType = { name: String, size: Float -> + val path = UnitMovementType.values().firstOrNull { "Domain: [${it.name}]" == name } + ?.let {"UnitTypeIcons/Domain${it.name}" } + ?: "UnitTypeIcons/$name" + if (ImageGetter.imageExists(path)) ImageGetter.getImage(path).apply { setSize(size) } + else null + } } /** Enum used as keys for Civilopedia "pages" (categories). @@ -137,6 +146,11 @@ enum class CivilopediaCategories ( KeyCharAndCode('U'), "OtherIcons/Shield" ), + UnitType ("Unit types", false, + CivilopediaImageGetters.unitType, + KeyCharAndCode('U'), + "UnitTypeIcons/UnitTypes" + ), Nation ("Nations", false, CivilopediaImageGetters.nation, KeyCharAndCode('N'), @@ -183,7 +197,7 @@ enum class CivilopediaCategories ( "OtherIcons/Timer" ); - fun getByOffset(offset: Int) = values()[(ordinal + count + offset) % count] + private fun getByOffset(offset: Int) = values()[(ordinal + count + offset) % count] fun nextForKey(key: KeyCharAndCode): CivilopediaCategories { for (i in 1..count) { diff --git a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaScreen.kt b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaScreen.kt index 6137545a67..1903758ea1 100644 --- a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaScreen.kt +++ b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaScreen.kt @@ -13,6 +13,7 @@ import com.unciv.models.ruleset.Belief import com.unciv.models.ruleset.Ruleset import com.unciv.models.ruleset.unique.IHasUniques import com.unciv.models.ruleset.unique.UniqueType +import com.unciv.models.ruleset.unit.UnitType import com.unciv.models.stats.INamed import com.unciv.models.translations.tr import com.unciv.ui.images.IconTextButton @@ -206,6 +207,7 @@ class CivilopediaScreen( CivilopediaCategories.Terrain -> ruleset.terrains.values CivilopediaCategories.Improvement -> ruleset.tileImprovements.values CivilopediaCategories.Unit -> ruleset.units.values + CivilopediaCategories.UnitType -> UnitType.getCivilopediaIterator(ruleset) CivilopediaCategories.Nation -> ruleset.nations.values.filter { !it.isSpectator() } CivilopediaCategories.Technology -> ruleset.technologies.values CivilopediaCategories.Promotion -> ruleset.unitPromotions.values diff --git a/core/src/com/unciv/ui/screens/civilopediascreen/FormattedLine.kt b/core/src/com/unciv/ui/screens/civilopediascreen/FormattedLine.kt index abdc07757f..fd9f947c53 100644 --- a/core/src/com/unciv/ui/screens/civilopediascreen/FormattedLine.kt +++ b/core/src/com/unciv/ui/screens/civilopediascreen/FormattedLine.kt @@ -177,6 +177,7 @@ class FormattedLine ( yield(CivilopediaCategories.Improvement to ruleSet.tileImprovements) yield(CivilopediaCategories.Resource to ruleSet.tileResources) yield(CivilopediaCategories.Nation to ruleSet.nations) + yield(CivilopediaCategories.UnitType to ruleSet.unitTypes) yield(CivilopediaCategories.Unit to ruleSet.units) yield(CivilopediaCategories.Technology to ruleSet.technologies) yield(CivilopediaCategories.Building to ruleSet.buildings.filter { !it.value.isAnyWonder() }) diff --git a/docs/Credits.md b/docs/Credits.md index d71436397b..b98b0c1abf 100644 --- a/docs/Credits.md +++ b/docs/Credits.md @@ -620,7 +620,7 @@ Unless otherwise specified, all the following are from [the Noun Project](https: - [Move](https://thenounproject.com/search/?q=move&i=790952) By Sandra for Mobility - [accuracy](https://thenounproject.com/search/?q=accuracy&i=2017348) By vigtographics for Targeting - [location](https://thenounproject.com/search/?q=location&i=2858979) by Humantech for Accuracy -- [Plane](https://thenounproject.com/search/?q=plane&i=1875398) By Tran Minh Villageois for Interception +- [Plane](https://thenounproject.com/search/?q=plane&i=1875398) By Tran Minh Villageois for Interception / Domain Air - [Hammer](https://thenounproject.com/search/?q=hammer&i=854936) by Thengakola for Air Repair - [Hook](https://thenounproject.com/search/?q=hook&i=738678) By Yeong Rong Kim for Boarding Party - [Leaf](https://thenounproject.com/search/?q=Leaf&i=1627477) By Paul Verhulst for Indirect Fire @@ -633,7 +633,7 @@ Unless otherwise specified, all the following are from [the Noun Project](https: - Icon for Flight Deck is made by [JackRainy](https://github.com/JackRainy) - Icon for Armor Plating is made by [JackRainy](https://github.com/JackRainy) - [Slingshot](https://thenounproject.com/term/slingshot/9106/) by James Keuning for Slinger Withdraw -- [Anchor](https://thenounproject.com/term/anchor/676586) by Gregor Cresnar for Amphibious +- [Anchor](https://thenounproject.com/term/anchor/676586) by Gregor Cresnar for Amphibious / Domain Water - [survival knife](https://thenounproject.com/search/?q=survival&i=2663392) by b faris for Survivalism - [Shamrock](https://thenounproject.com/term/shamrock/358507/) By P Thanga Vignesh for Pictish Courage - [home sweet home](https://thenounproject.com/term/home-sweet-home/3817166/) By Silviu Ojog for Home Sweet Home @@ -694,7 +694,8 @@ Unless otherwise specified, all the following are from [the Noun Project](https: - [Magnifying Glass](https://thenounproject.com/term/magnifying-glass/1311/) by John Caserta for Mod filter - [tick](https://thenounproject.com/term/tick/3968142/) by Adrien Coquet on Nation picker - [people](https://thenounproject.com/term/people/458671) by Wilson Joseph as base for Civilopedia category Nations -- [Mountains ](https://thenounproject.com/term/mountains/15616/) by Andrew J. Young as base for Civilopedia category Terrains +- [Mountains ](https://thenounproject.com/term/mountains/15616/) by Andrew J. Young as base for Civilopedia category Terrains / Domain Land +- Civilopedia category UnitTypes icon done by [SomeTroglodyte](https://github.com/SomeTroglodyte) from sources cited for Interception, Cavalry and Longbowman - [File:Maya.svg](https://en.wikipedia.org/wiki/File:Maya.svg) for Mayan numerals - [East side of stela C, Quirigua](https://en.wikipedia.org/wiki/File:East_side_of_stela_C,_Quirigua.PNG) for Mayan calendar symbols - [Footprints](https://thenounproject.com/icon/footprints-1393611/) by Abdul Wahhab for movement overlay toggle, slightly modified. Currently unused. @@ -717,51 +718,7 @@ Unless otherwise specified, all the following are from [the Noun Project](https: - [Funny christmas vector](https://www.freepik.com/free-vector/reindeer-santa-hat-peeping-out_1430479.htm) by katemangostar - [Santa beard vector](https://www.freepik.com/free-vector/positive-santa-ringing-bell-waving-hand_3636285.htm) by katemangostar - [Funny christmas vector](https://www.freepik.com/free-vector/snowman-wearing-santa-hat-scarf-mittens_3636292.htm) by katemangostar - -- [Circle](https://thenounproject.com/term/circle/1841891/) By Aybige -- [Arrow](https://thenounproject.com/term/arrow/18123/) By Joe Mortell for movement -- [Swap](https://thenounproject.com/search/?q=swap&i=1259600) By iconomania for swapping units -- [Connection](https://thenounproject.com/search/?q=connection&i=1521886) By Travis Avery -- [Skull](https://thenounproject.com/search/?q=Skull&i=1030702) By Vladimir Belochkin for disbanding units -- [Crosshair](https://thenounproject.com/search/?q=crosshairs&i=916030) By Bakunetsu Kaito for selecting enemies to attack -- [City](https://thenounproject.com/search/?q=city&i=571332) By Felix Westphal -- [Fire](https://thenounproject.com/search/?q=Fire&i=96564) By Lloyd Humphreys for "city being razed" icon -- [Sleep](https://thenounproject.com/search/?q=sleep&i=1760085) By Saeful Muslim -- [Banner](https://thenounproject.com/term/banner/866282/) By Emir Palavan for embarked units -- [Arrow](https://thenounproject.com/term/arrow/18123/) By uzeir syarief for moving between idle units -- [Replace](https://thenounproject.com/search/?q=replace&i=17858) By Mike Rowe for switching tiles between cities -- [Resistance](https://thenounproject.com/term/revolution/1315305/) By HeadsOfBirds -- [Viking Hat](https://thenounproject.com/search/?q=pillage&i=185405) By my name is mud for pillaging improvements -- [Aim](https://thenounproject.com/search/?q=aim&i=2034920) By Kaviashri for ranged strength -- [Capitol](https://thenounproject.com/search/?q=capitol&i=160031) By Loren Klein for City-States -- [Aircraft](https://thenounproject.com/search/?q=aircraft&i=1629000) By Tom Fricker for aircraft icon in city button -- [radar scan](https://thenounproject.com/search/?q=range&i=1500234) By icon 54 for Range -- [short range radar](https://thenounproject.com/search/?q=air%20range&i=2612731) by Vectors Point for Intercept range - [AirSweep](https://thenounproject.com/icon/jet-134340/) by Creative Stall for Air Sweep icon -- [Puppet](https://thenounproject.com/search/?q=puppet&i=285735) By Ben Davis for puppeted cities -- [City](https://thenounproject.com/search/?q=city&i=1765370) By Muhajir ila Robbi in the Icon center -- [Lock](https://thenounproject.com/search/?q=lock&i=3217613) by Vadim Solomakhin for locked tiles -- [Hourglass](https://thenounproject.com/search/?q=hourglass&i=142268) by I Create Stuff for the 'Turn' icon -- [Shield](https://thenounproject.com/search/?q=shield&i=813568) by Gregor Cresnar for Religious Strength -- [skill sword flame](https://thenounproject.com/term/skill-sword-flame/2360212/) by Maxicons) for Remove Heresy -- [Pencil](https://thenounproject.com/search/?q=pencil&i=4195852) by Muhamad Aldi Maulana for Enter Text Prompt Button / Pencil -- [Parchment](https://thenounproject.com/term/parchment/1516378/) by hans draiman for Cultured City-States -- [connection](https://thenounproject.com/term/connection/1365233/) by Popular for Mercantile City-States -- [crossed sword](https://thenounproject.com/term/crossed-sword/2427559/) by ProSymbols for Militaristic City-States -- [ship helm](https://thenounproject.com/term/ship-helm/2170591/) by Vectors Market for Maritime City-States -- [Magnifying Glass](https://thenounproject.com/term/magnifying-glass/1311/) by John Caserta for Mod filter -- [tick](https://thenounproject.com/term/tick/3968142/) by Adrien Coquet on Nation picker -- [people](https://thenounproject.com/term/people/458671) by Wilson Joseph as base for Civilopedia category Nations -- [Mountains ](https://thenounproject.com/term/mountains/15616/) by Andrew J. Young as base for Civilopedia category Terrains -- [File:Maya.svg](https://en.wikipedia.org/wiki/File:Maya.svg) for Mayan numerals -- [East side of stela C, Quirigua](https://en.wikipedia.org/wiki/File:East_side_of_stela_C,_Quirigua.PNG) for Mayan calendar symbols -- [Footprints](https://thenounproject.com/icon/footprints-1393611/) by Abdul Wahhab for movement overlay toggle, slightly modified. Currently unused. -- Arrows.svg by Intralexical (@will-ca), CC0. -- [favor](https://thenounproject.com/icon/favor-1029350/) by MICHAEL G BROWN for WLTK marker on City Overview -- [Party](https://thenounproject.com/icon/party-1784941/) by Adrien Coquet for WLTK header on City Overview -- [Party](https://thenounproject.com/icon/party-2955155/) by Lars Meiertoberens as additional WLKT decoration -- [turn right](https://thenounproject.com/icon/turn-right-1920867/) by Alice Design for Resource Overview -- [Tyrannosaurus Rex](https://thenounproject.com/icon/tyrannosaurus-rex-4130976/) by Amethyst Studio for Civilopedia Eras header - [Timer](https://www.flaticon.com/free-icons/timer) created by Gregor Cresnar Premium - Flaticon - [Political Science](https://www.flaticon.com/premium-icon/political-science_5403775) created by Hilmy Abiyyu A. - Flaticon - [Question](https://thenounproject.com/icon/question-1157126/) created by Aneeque Ahmed for Question Icon @@ -848,4 +805,4 @@ The following audio is from https://pixabay.com/ [Pixabay License](https://pixab - [Beep 6](https://pixabay.com/sound-effects/beep-6-96243/) by Eponn for beep in Cross-Platform Play section - [Cinematic Boom](https://pixabay.com/sound-effects/cinematic-boom-6872/) by Rizzard for final boom - [Cymbal Swell 2](https://pixabay.com/sound-effects/cymbal-swell-2-74766/) by rubberduckie for cymbal swells -- [hit of orchestral cymbals and bass drum](https://pixabay.com/sound-effects/hit-of-orchestral-cymbals-and-bass-drum-14471/) by Selector for intro crash \ No newline at end of file +- [hit of orchestral cymbals and bass drum](https://pixabay.com/sound-effects/hit-of-orchestral-cymbals-and-bass-drum-14471/) by Selector for intro crash diff --git a/docs/Modders/Images-and-Audio.md b/docs/Modders/Images-and-Audio.md index 4af3ddb1ca..29849fcdeb 100644 --- a/docs/Modders/Images-and-Audio.md +++ b/docs/Modders/Images-and-Audio.md @@ -23,7 +23,7 @@ You will need to supply the graphics for new elements - a new unit needs its ico - Promotions can be named "Something I" (or " II" or " III"). The suffix will be removed and painted as little stars, only the base `UnitPromotionIcons/Something.png` will be loaded. - The special rules for promotions can be combined, e.g. "`[Warrior] ability III`" will fall back to the Warrior unit icon and paint 3 Stars on it. -Additionally, there there are two kinds of images where the game has display capability but does not supply graphics itself, as described in the next paragraphs: +Additionally, there there are some kinds of images where the game has display capability but does not supply graphics itself, as described in the next paragraphs: ### Adding custom Fonts @@ -51,12 +51,17 @@ For example, [here](https://github.com/yairm210/Unciv-leader-portrait-mod-exampl The base game uses flat icons, surrounded with colored circles as backgrounds (e.g. for units to fit the civilization's flag colors), to denote entities such as: units, buildings, techs, resources, improvements, religions, promotions, uniques, unit actions and nations in the UI. A mod can supply "Portraits" - static images that will remain uncolored - by adding images to `/Images/Portraits/` (e.g. `/Images/BuildingPortraits/`, /Images/ResourcesPortraits/, etc), which will be used in all UI elements (except for unit icons in the world map). The file name must correspond exactly with the unit/building/tech/resource/etc name defined in corresponding JSONs (e.g. Units.json, Buildings.json, TileResources.json, etc) or have the same name as the file they suppose to replace, or they will be ignored. -If mod supplies '/Images/Portraits/Background.png' images, they will be used as a background for corresponding portraits instead of default circle. +If mod supplies '/Images/Portraits/Background.png' images, they will be used as a background for corresponding portraits instead of default circle. Portraits and backgrounds work best if they are full RGB square, between 100x100 and 256x256 pixels, and include some transparent border within that area. For example, [here](https://github.com/vegeta1k95/Civ-5-Icons) is mod showing how to add custom portraits, which can complement the base game. +### Adding icons for Unit Types + +The Unit Types as defined in [UnitTypes.json](../Other/Unit-related-JSON-files#unittypesjson) have no icons in the base game, but Civilopedia can decorate their entries if you supply images named 'Images/UnitTypeIcons/.png'. +(while you're at it, you may override the default icon for the Unit Type _category header_ - it's 'UnitTypes.png' in the same folder, or the icons used for the movement domains - 'DomainLand', 'DomainWater', 'DomainAir') + ## Sounds Standard values are below. The sounds themselves can be found [here](/sounds).