diff --git a/Credits.md b/Credits.md index 987f04802e..e0c8dae11c 100644 --- a/Credits.md +++ b/Credits.md @@ -213,6 +213,7 @@ All the following are from [the Noun Project](https://thenounproject.com) licenc * [Statue of Liberty](https://thenounproject.com/search/?q=statue%20of%20liberty&i=1801199) By 1516 * [Christ the redeemer](https://thenounproject.com/term/christ-the-redeemer/56112/) By Stefan Spieler for Cristo Redentor * [St. Petersburg](https://thenounproject.com/search/?q=kremlin&i=1569704) By Carpe Diem for Kremlin +* [Neuschwanstein](https://thenounproject.com/search/?q=Neuschwanstein&i=2107683) By Vectors Market ### Information Era diff --git a/android/Images/BuildingIcons/Neuschwanstein.png b/android/Images/BuildingIcons/Neuschwanstein.png new file mode 100644 index 0000000000..674f6fc81e Binary files /dev/null and b/android/Images/BuildingIcons/Neuschwanstein.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index 78637f554d..811fa98cfb 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -326,275 +326,282 @@ BuildingIcons/National College orig: 100, 100 offset: 0, 0 index: -1 -BuildingIcons/Notre Dame +BuildingIcons/Neuschwanstein rotate: false xy: 1122, 1030 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 +BuildingIcons/Notre Dame + rotate: false + xy: 918, 826 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 BuildingIcons/Nuclear Plant rotate: false - xy: 1020, 928 + xy: 1224, 1030 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Observatory rotate: false - xy: 1020, 826 + xy: 1122, 928 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Opera House rotate: false - xy: 1122, 826 + xy: 1224, 928 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Oxford University rotate: false - xy: 1224, 826 + xy: 1326, 928 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Palace rotate: false - xy: 1326, 928 + xy: 1326, 826 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Paper Maker rotate: false - xy: 1326, 826 + xy: 1428, 948 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Pentagon rotate: false - xy: 1428, 846 + xy: 1530, 846 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Porcelain Tower rotate: false - xy: 1428, 744 + xy: 1530, 744 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Public School rotate: false - xy: 1734, 722 + xy: 1836, 722 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Research Lab rotate: false - xy: 592, 622 + xy: 796, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Booster rotate: false - xy: 1000, 622 + xy: 1204, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Cockpit rotate: false - xy: 1204, 724 + xy: 1102, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Engine rotate: false - xy: 1102, 622 + xy: 1306, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Stasis Chamber rotate: false - xy: 1306, 724 + xy: 1204, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Seaport rotate: false - xy: 1714, 620 + xy: 1816, 620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sistine Chapel rotate: false - xy: 1714, 518 + xy: 1816, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Solar Plant rotate: false - xy: 1918, 518 + xy: 540, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Spaceship Factory rotate: false - xy: 540, 520 + xy: 642, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stable rotate: false - xy: 540, 316 + xy: 642, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stadium rotate: false - xy: 642, 418 + xy: 846, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Statue of Liberty rotate: false - xy: 846, 520 + xy: 540, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stock Exchange rotate: false - xy: 744, 418 + xy: 948, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stone Works rotate: false - xy: 540, 112 + xy: 642, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stonehenge rotate: false - xy: 642, 214 + xy: 744, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sydney Opera House rotate: false - xy: 744, 214 + xy: 846, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Taj Mahal rotate: false - xy: 846, 316 + xy: 948, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Temple rotate: false - xy: 1152, 520 + xy: 744, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Terracotta Army rotate: false - xy: 744, 112 + xy: 846, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Library rotate: false - xy: 846, 214 + xy: 948, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Lighthouse rotate: false - xy: 948, 316 + xy: 1050, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Louvre rotate: false - xy: 1050, 418 + xy: 1254, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Oracle rotate: false - xy: 1254, 520 + xy: 846, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Pyramids rotate: false - xy: 846, 112 + xy: 948, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Theatre rotate: false - xy: 1050, 316 + xy: 1152, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/University rotate: false - xy: 1254, 418 + xy: 1050, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Walls rotate: false - xy: 1152, 214 + xy: 1254, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Windmill rotate: false - xy: 1254, 112 + xy: 540, 10 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Workshop rotate: false - xy: 846, 10 + xy: 948, 10 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -748,63 +755,63 @@ ImprovementIcons/Mine index: -1 ImprovementIcons/Oil well rotate: false - xy: 1326, 1030 + xy: 1122, 826 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Plantation rotate: false - xy: 1938, 926 + xy: 1938, 824 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Quarry rotate: false - xy: 1836, 722 + xy: 1938, 722 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Railroad rotate: false - xy: 490, 724 + xy: 592, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/Default/Railroad rotate: false - xy: 490, 724 + xy: 592, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/FantasyHex/Railroad rotate: false - xy: 490, 724 + xy: 592, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/ThorfMaps/Railroad rotate: false - xy: 490, 724 + xy: 592, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Road rotate: false - xy: 796, 622 + xy: 1000, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ImprovementIcons/Trading post rotate: false - xy: 948, 112 + xy: 1050, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -888,35 +895,35 @@ OtherIcons/MenuIcon index: -1 OtherIcons/Pentagon rotate: false - xy: 1530, 846 + xy: 1632, 932 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Pillage rotate: false - xy: 1836, 824 + xy: 1938, 926 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Shield rotate: false - xy: 1408, 540 + xy: 1510, 540 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Sleep rotate: false - xy: 1816, 518 + xy: 1918, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 OtherIcons/Stop rotate: false - xy: 744, 316 + xy: 846, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -986,14 +993,14 @@ PolicyIcons/Democracy index: -1 PolicyIcons/Discipline rotate: false - xy: 1050, 60 + xy: 1152, 60 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Strength rotate: false - xy: 1050, 60 + xy: 1152, 60 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1014,7 +1021,7 @@ PolicyIcons/Facism index: -1 PolicyIcons/Free Religion rotate: false - xy: 1102, 60 + xy: 1204, 60 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1042,7 +1049,7 @@ PolicyIcons/Humanism index: -1 PolicyIcons/Landed Elite rotate: false - xy: 1154, 60 + xy: 1256, 60 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1077,154 +1084,154 @@ PolicyIcons/Meritocracy index: -1 PolicyIcons/Militarism rotate: false - xy: 1206, 60 + xy: 1408, 332 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Caste rotate: false - xy: 1408, 332 + xy: 1460, 384 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Military Tradition rotate: false - xy: 1460, 384 + xy: 1512, 436 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Monarchy rotate: false - xy: 1512, 436 + xy: 1356, 258 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Oligarchy rotate: false - xy: 1258, 60 + xy: 1460, 332 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Organized Religion rotate: false - xy: 1408, 280 + xy: 1512, 384 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Patronage rotate: false - xy: 1460, 332 + xy: 1356, 206 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Police State rotate: false - xy: 1512, 384 + xy: 1408, 228 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Populism rotate: false - xy: 1356, 206 + xy: 1460, 280 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Professional Army rotate: false - xy: 1408, 228 + xy: 1512, 332 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Protectionism rotate: false - xy: 1460, 280 + xy: 1356, 154 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Reformation rotate: false - xy: 1356, 154 + xy: 1460, 228 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Representation rotate: false - xy: 1408, 176 + xy: 1512, 280 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Republic rotate: false - xy: 1460, 228 + xy: 1460, 176 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Scientific Revolution rotate: false - xy: 1512, 280 + xy: 1512, 228 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Secularism rotate: false - xy: 1460, 176 + xy: 1512, 176 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Sovereignty rotate: false - xy: 1512, 228 + xy: 1152, 8 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Theocracy rotate: false - xy: 1512, 176 + xy: 1204, 8 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Total War rotate: false - xy: 1050, 8 + xy: 1256, 8 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Trade Unions rotate: false - xy: 1102, 8 + xy: 1308, 60 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Universal Suffrage rotate: false - xy: 1154, 8 + xy: 1308, 8 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 PolicyIcons/Warrior Code rotate: false - xy: 1206, 8 + xy: 1966, 1588 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1343,84 +1350,84 @@ ResourceIcons/Marble index: -1 ResourceIcons/Oil rotate: false - xy: 1122, 928 + xy: 1326, 1030 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Pearls rotate: false - xy: 1530, 948 + xy: 1428, 846 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sheep rotate: false - xy: 1918, 620 + xy: 1408, 540 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silk rotate: false - xy: 1510, 540 + xy: 1612, 525 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Silver rotate: false - xy: 1612, 525 + xy: 1714, 518 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Spices rotate: false - xy: 744, 520 + xy: 540, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Stone rotate: false - xy: 948, 520 + xy: 540, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Sugar rotate: false - xy: 1050, 520 + xy: 642, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Uranium rotate: false - xy: 1050, 112 + xy: 1152, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Whales rotate: false - xy: 1152, 112 + xy: 1254, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wheat rotate: false - xy: 1254, 214 + xy: 1254, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 ResourceIcons/Wine rotate: false - xy: 540, 10 + xy: 642, 10 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1483,7 +1490,7 @@ StatIcons/Malcontent index: -1 StatIcons/Movement rotate: false - xy: 1356, 258 + xy: 1408, 280 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1504,14 +1511,14 @@ StatIcons/Production index: -1 StatIcons/RangedStrength rotate: false - xy: 1512, 332 + xy: 1408, 176 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 StatIcons/Resistance rotate: false - xy: 796, 724 + xy: 694, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1525,7 +1532,7 @@ StatIcons/Science index: -1 StatIcons/Specialist rotate: false - xy: 540, 418 + xy: 744, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1875,175 +1882,175 @@ TechIcons/Navigation index: -1 TechIcons/Nuclear Fission rotate: false - xy: 918, 826 + xy: 1020, 928 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Optics rotate: false - xy: 1224, 928 + xy: 1224, 826 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Particle Physics rotate: false - xy: 1428, 948 + xy: 1530, 948 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pharmaceuticals rotate: false - xy: 1632, 932 + xy: 1734, 926 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Philosophy rotate: false - xy: 1734, 926 + xy: 1836, 926 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Physics rotate: false - xy: 1836, 926 + xy: 1734, 824 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Plastics rotate: false - xy: 1938, 824 + xy: 1428, 744 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Pottery rotate: false - xy: 1530, 744 + xy: 1632, 729 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Printing Press rotate: false - xy: 1632, 729 + xy: 1734, 722 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Radio rotate: false - xy: 1938, 722 + xy: 490, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Railroad rotate: false - xy: 592, 724 + xy: 490, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Refrigeration rotate: false - xy: 490, 622 + xy: 694, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Replaceable Parts rotate: false - xy: 694, 724 + xy: 592, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rifling rotate: false - xy: 898, 724 + xy: 796, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Robotics rotate: false - xy: 1000, 724 + xy: 898, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Rocketry rotate: false - xy: 1102, 724 + xy: 1000, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Sailing rotate: false - xy: 1204, 622 + xy: 1306, 622 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Satellites rotate: false - xy: 1408, 642 + xy: 1510, 642 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Scientific Theory rotate: false - xy: 1510, 642 + xy: 1612, 627 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steam Power rotate: false - xy: 540, 214 + xy: 642, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Steel rotate: false - xy: 642, 316 + xy: 744, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/The Wheel rotate: false - xy: 948, 214 + xy: 1050, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Theology rotate: false - xy: 1152, 418 + xy: 948, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Trapping rotate: false - xy: 1050, 214 + xy: 1152, 316 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TechIcons/Writing rotate: false - xy: 948, 10 + xy: 1050, 10 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -2169,14 +2176,14 @@ TileSets/Default/MountainOverlay index: -1 TileSets/Default/OasisOverlay rotate: false - xy: 1224, 1030 + xy: 1020, 826 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 TileSets/ThorfMaps/OasisOverlay rotate: false - xy: 1224, 1030 + xy: 1020, 826 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -2232,7 +2239,7 @@ TileSets/FantasyHex/Coast index: -1 TileSets/FantasyHex/Desert rotate: false - xy: 1966, 1311 + xy: 1966, 1167 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -2253,7 +2260,7 @@ TileSets/FantasyHex/Desert+Flood plains index: -1 TileSets/FantasyHex/Desert+Oasis rotate: false - xy: 1966, 1281 + xy: 1966, 1137 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -2288,7 +2295,7 @@ TileSets/FantasyHex/Grassland+Marsh index: -1 TileSets/FantasyHex/Hill rotate: false - xy: 1966, 1341 + xy: 1966, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2302,7 +2309,7 @@ TileSets/FantasyHex/Hill+Forest index: -1 TileSets/FantasyHex/Lakes rotate: false - xy: 1966, 1251 + xy: 1966, 1107 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -2323,14 +2330,14 @@ TileSets/FantasyHex/Ocean index: -1 TileSets/FantasyHex/Plains rotate: false - xy: 1966, 1221 + xy: 1966, 1077 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Plains+City rotate: false - xy: 1310, 75 + xy: 1356, 117 size: 32, 35 orig: 32, 35 offset: 0, 0 @@ -2344,7 +2351,7 @@ TileSets/FantasyHex/Plains+Forest index: -1 TileSets/FantasyHex/Plains+Jungle rotate: false - xy: 1966, 1375 + xy: 1966, 1231 size: 32, 35 orig: 32, 35 offset: 0, 0 @@ -2379,49 +2386,49 @@ TileSets/ThorfMaps/Coast index: -1 TileSets/ThorfMaps/Desert rotate: false - xy: 1258, 14 + xy: 1966, 1542 size: 52, 44 orig: 52, 44 offset: 0, 0 index: -1 TileSets/ThorfMaps/Grassland rotate: false - xy: 1356, 108 + xy: 1966, 1496 size: 52, 44 orig: 52, 44 offset: 0, 0 index: -1 TileSets/ThorfMaps/Hill rotate: false - xy: 1966, 1457 + xy: 1966, 1313 size: 52, 43 orig: 52, 43 offset: 0, 0 index: -1 TileSets/ThorfMaps/Mountain rotate: false - xy: 1966, 1594 + xy: 1966, 1450 size: 52, 44 orig: 52, 44 offset: 0, 0 index: -1 TileSets/ThorfMaps/Ocean rotate: false - xy: 1966, 1412 + xy: 1966, 1268 size: 52, 43 orig: 52, 43 offset: 0, 0 index: -1 TileSets/ThorfMaps/Plains rotate: false - xy: 1966, 1548 + xy: 1966, 1404 size: 52, 44 orig: 52, 44 offset: 0, 0 index: -1 TileSets/ThorfMaps/Tundra rotate: false - xy: 1966, 1502 + xy: 1966, 1358 size: 52, 44 orig: 52, 44 offset: 0, 0 @@ -2708,77 +2715,77 @@ UnitIcons/Musketman index: -1 UnitIcons/Pikeman rotate: false - xy: 1734, 824 + xy: 1836, 824 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Rifleman rotate: false - xy: 694, 622 + xy: 898, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Rocket Artillery rotate: false - xy: 898, 622 + xy: 1102, 724 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Samurai rotate: false - xy: 1306, 622 + xy: 1408, 642 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Scout rotate: false - xy: 1612, 627 + xy: 1714, 620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Settler rotate: false - xy: 1816, 620 + xy: 1918, 620 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Spearman rotate: false - xy: 642, 520 + xy: 540, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Submarine rotate: false - xy: 846, 418 + xy: 1050, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Swordsman rotate: false - xy: 642, 112 + xy: 744, 214 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Tank rotate: false - xy: 948, 418 + xy: 1152, 520 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Trebuchet rotate: false - xy: 1152, 316 + xy: 1254, 418 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -2792,21 +2799,21 @@ UnitIcons/Trireme index: -1 UnitIcons/Warrior rotate: false - xy: 1254, 316 + xy: 1152, 112 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Work Boats rotate: false - xy: 642, 10 + xy: 744, 10 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Worker rotate: false - xy: 744, 10 + xy: 846, 10 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -2862,21 +2869,21 @@ UnitPromotionIcons/Blitz_(Civ5) index: -1 UnitPromotionIcons/Boarding_Party_III_(Civ5) rotate: false - xy: 1408, 154 + xy: 1428, 1110 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding_Party_II_(Civ5) rotate: false - xy: 1428, 1110 + xy: 460, 804 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Boarding_Party_I_(Civ5) rotate: false - xy: 460, 804 + xy: 1408, 154 size: 20, 20 orig: 20, 20 offset: 0, 0 @@ -2890,49 +2897,49 @@ UnitPromotionIcons/Bombardment_III_(Civ5) index: -1 UnitPromotionIcons/Bombardment_II_(Civ5) rotate: false - xy: 104, 16 + xy: 1390, 132 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Bombardment_I_(Civ5) rotate: false - xy: 1564, 322 + xy: 104, 16 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Charge_(Civ5) rotate: false - xy: 1966, 1199 + xy: 1564, 322 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_III_(Civ5) rotate: false - xy: 1430, 154 + xy: 1966, 1055 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_II_(Civ5) rotate: false - xy: 1410, 132 + xy: 1428, 1088 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Coastal_Raider_I_(Civ5) rotate: false - xy: 1428, 1088 + xy: 460, 782 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Cover_II_(Civ5) rotate: false - xy: 460, 782 + xy: 1430, 154 size: 20, 20 orig: 20, 20 offset: 0, 0 @@ -2946,49 +2953,49 @@ UnitPromotionIcons/Cover_I_(Civ5) index: -1 UnitPromotionIcons/Drill_III_(Civ5) rotate: false - xy: 1564, 300 + xy: 1412, 132 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_II_(Civ5) rotate: false - xy: 1966, 1177 + xy: 1564, 300 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Drill_I_(Civ5) rotate: false - xy: 1452, 154 + xy: 1966, 1033 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Formation_II_(Civ5) rotate: false - xy: 1410, 110 + xy: 1428, 1066 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Formation_I_(Civ5) rotate: false - xy: 1432, 132 + xy: 1452, 154 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Indirect_Fire_(Civ5) rotate: false - xy: 1428, 1066 + xy: 2015, 1747 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Logistics_(Civ5) rotate: false - xy: 2015, 1747 + xy: 1434, 132 size: 20, 20 orig: 20, 20 offset: 0, 0 @@ -3002,119 +3009,119 @@ UnitPromotionIcons/March_(Civ5) index: -1 UnitPromotionIcons/Mobility_(Civ5) rotate: false - xy: 1966, 1155 + xy: 1474, 154 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Range_(Civ5) rotate: false - xy: 1474, 154 + xy: 1456, 132 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_III_(Civ5) rotate: false - xy: 1432, 110 + xy: 1564, 256 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_II_(Civ5) rotate: false - xy: 1454, 132 + xy: 1496, 154 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Scouting_I_(Civ5) rotate: false - xy: 1564, 256 + xy: 1478, 132 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Sentry_(Civ5) rotate: false - xy: 1966, 1133 + xy: 1564, 234 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_III_(Civ5) rotate: false - xy: 1496, 154 + xy: 1518, 154 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_II_(Civ5) rotate: false - xy: 1454, 110 + xy: 1500, 132 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Shock_I_(Civ5) rotate: false - xy: 1476, 132 + xy: 1564, 212 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Siege_(Civ5) rotate: false - xy: 1564, 234 + xy: 1540, 154 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_III_(Civ5) rotate: false - xy: 1966, 1111 + xy: 1522, 132 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_II_(Civ5) rotate: false - xy: 1518, 154 + xy: 1564, 190 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Targeting_I_(Civ5) rotate: false - xy: 1476, 110 + xy: 2020, 700 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Volley_(Civ5) rotate: false - xy: 1498, 132 + xy: 2020, 678 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack_III_(Civ5) rotate: false - xy: 1564, 212 + xy: 2020, 656 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack_II_(Civ5) rotate: false - xy: 1966, 1089 + xy: 2020, 634 size: 20, 20 orig: 20, 20 offset: 0, 0 index: -1 UnitPromotionIcons/Wolfpack_I_(Civ5) rotate: false - xy: 1540, 154 + xy: 2020, 612 size: 20, 20 orig: 20, 20 offset: 0, 0 diff --git a/android/assets/game.png b/android/assets/game.png index c71cc69436..1196a3f716 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/Buildings.json b/android/assets/jsons/Buildings.json index 2df177f0cb..99c54cdc38 100644 --- a/android/assets/jsons/Buildings.json +++ b/android/assets/jsons/Buildings.json @@ -630,6 +630,15 @@ uniques:["Defensive buildings in all cities are 25% more effective"], requiredTech:"Railroad" }, + { + name:"Neuschwanstein", + happiness:2, + culture:4, + gold:6, + isWonder:true, + uniques:["+1 happiness, +2 culture and +3 gold from every Castle"], + requiredTech:"Railroad" + }, // Information Era diff --git a/android/assets/jsons/Translations.json b/android/assets/jsons/Translations.json index 77fd5c93bb..7a6c4cd933 100644 --- a/android/assets/jsons/Translations.json +++ b/android/assets/jsons/Translations.json @@ -6049,6 +6049,9 @@ Italian:"+25% efficacia delle strutture difensive in tutte le città" } + "Neuschwanstein":{} + "+1 happiness, +2 culture and +3 gold from every Castle":{} + "Military Academy":{ Italian:"Accademia militare" Russian:"Военная академия" diff --git a/core/src/com/unciv/logic/city/CityConstructions.kt b/core/src/com/unciv/logic/city/CityConstructions.kt index e01d133196..707abefc42 100644 --- a/core/src/com/unciv/logic/city/CityConstructions.kt +++ b/core/src/com/unciv/logic/city/CityConstructions.kt @@ -38,7 +38,7 @@ class CityConstructions { fun getStats(): Stats { val stats = Stats() for (building in getBuiltBuildings()) - stats.add(building.getStats(cityInfo.civInfo.policies.adoptedPolicies)) + stats.add(building.getStats(cityInfo.civInfo)) stats.science += (cityInfo.getBuildingUniques().count { it == "+1 Science Per 2 Population" } * cityInfo.population.population / 2).toFloat() return stats } diff --git a/core/src/com/unciv/models/gamebasics/Building.kt b/core/src/com/unciv/models/gamebasics/Building.kt index aab30f297f..be11a19fc4 100644 --- a/core/src/com/unciv/models/gamebasics/Building.kt +++ b/core/src/com/unciv/models/gamebasics/Building.kt @@ -2,6 +2,7 @@ package com.unciv.models.gamebasics import com.unciv.logic.city.CityConstructions import com.unciv.logic.city.IConstruction +import com.unciv.logic.civilization.CivilizationInfo import com.unciv.models.gamebasics.tech.Technology import com.unciv.models.stats.NamedStats import com.unciv.models.stats.Stats @@ -10,7 +11,7 @@ import com.unciv.ui.utils.getRandom class Building : NamedStats(), IConstruction{ override val description: String - get() = getDescription(false, hashSetOf()) + get() = getDescription(false, null) var requiredTech: String? = null @@ -50,7 +51,7 @@ class Building : NamedStats(), IConstruction{ fun getShortDescription(): String { // should fit in one line val infoList= mutableListOf() - val str = getStats(hashSetOf()).toString() + val str = getStats(null).toString() if(str.isNotEmpty()) infoList += str if(percentStatBonus!=null){ for(stat in percentStatBonus!!.toHashMap()) @@ -70,8 +71,8 @@ class Building : NamedStats(), IConstruction{ return infoList.joinToString() } - fun getDescription(forBuildingPickerScreen: Boolean, adoptedPolicies: HashSet): String { - val stats = getStats(adoptedPolicies) + fun getDescription(forBuildingPickerScreen: Boolean, civInfo: CivilizationInfo?): String { + val stats = getStats(civInfo) val stringBuilder = StringBuilder() if(uniqueTo!=null) stringBuilder.appendln("Unique to [$uniqueTo], replaces [$replaces]".tr()) if (!forBuildingPickerScreen) stringBuilder.appendln("{Cost}: $cost".tr()) @@ -118,35 +119,44 @@ class Building : NamedStats(), IConstruction{ } val cultureBuildings = hashSetOf("Monument", "Temple", "Monastery") - fun getStats(adoptedPolicies: HashSet): Stats { + + fun getStats(civInfo: CivilizationInfo?): Stats { val stats = this.clone() - if (adoptedPolicies.contains("Organized Religion") && cultureBuildings.contains(name)) - stats.happiness += 1 + if(civInfo != null) { + val adoptedPolicies = civInfo.policies.adoptedPolicies + if (adoptedPolicies.contains("Organized Religion") && cultureBuildings.contains(name)) + stats.happiness += 1 - if (adoptedPolicies.contains("Free Religion") && cultureBuildings.contains(name)) - stats.culture += 1f + if (adoptedPolicies.contains("Free Religion") && cultureBuildings.contains(name)) + stats.culture += 1f - if (adoptedPolicies.contains("Entrepreneurship") && hashSetOf("Mint", "Market", "Bank", "Stock Market").contains(name)) - stats.science += 1f + if (adoptedPolicies.contains("Entrepreneurship") && hashSetOf("Mint", "Market", "Bank", "Stock Market").contains(name)) + stats.science += 1f - if (adoptedPolicies.contains("Humanism") && hashSetOf("University", "Observatory", "Public School").contains(name)) - stats.happiness += 1f + if (adoptedPolicies.contains("Humanism") && hashSetOf("University", "Observatory", "Public School").contains(name)) + stats.happiness += 1f - if (adoptedPolicies.contains("Theocracy") && name == "Temple") - percentStatBonus = Stats().apply { gold=10f } + if (adoptedPolicies.contains("Theocracy") && name == "Temple") + percentStatBonus = Stats().apply { gold = 10f } - if (adoptedPolicies.contains("Free Thought") && name == "University") - percentStatBonus!!.science = 50f + if (adoptedPolicies.contains("Free Thought") && name == "University") + percentStatBonus!!.science = 50f - if (adoptedPolicies.contains("Rationalism Complete") && !isWonder && stats.science > 0) - stats.gold += 1f + if (adoptedPolicies.contains("Rationalism Complete") && !isWonder && stats.science > 0) + stats.gold += 1f - if (adoptedPolicies.contains("Constitution") && isWonder) - stats.culture += 2f + if (adoptedPolicies.contains("Constitution") && isWonder) + stats.culture += 2f - if(adoptedPolicies.contains("Autocracy Complete") && cityStrength>0) - stats.happiness+=1 + if (adoptedPolicies.contains("Autocracy Complete") && cityStrength > 0) + stats.happiness += 1 + if (name == "Castle" && civInfo.getBuildingUniques().contains("+1 happiness, +2 culture and +3 gold from every Castle")){ + stats.happiness+=1 + stats.culture+=2 + stats.gold+=3 + } + } return stats } diff --git a/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt b/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt index bb494e70a1..0e9884046b 100644 --- a/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt +++ b/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt @@ -60,7 +60,7 @@ class CityInfoTable(private val cityScreen: CityScreen) : Table(CameraStageBaseS wonderDetailsTable.clear() else{ val detailsString = building.getDescription(true, - cityScreen.city.civInfo.policies.adoptedPolicies) + cityScreen.city.civInfo) wonderDetailsTable.add(detailsString.toLabel().apply { setWrap(true)}) .width(cityScreen.stage.width/4 - 2*pad ).row() // when you set wrap, then you need to manually set the size of the label if(!building.isWonder) { diff --git a/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt b/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt index db5d56ca31..1d86b8f53a 100644 --- a/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt +++ b/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt @@ -170,7 +170,7 @@ class ConstructionsTable(val cityScreen: CityScreen) : Table(CameraStageBaseScre if (currentConstruction is BaseUnit) description = currentConstruction.getDescription(true) else if (currentConstruction is Building) - description = currentConstruction.getDescription(true, city.civInfo.policies.adoptedPolicies) + description = currentConstruction.getDescription(true, city.civInfo) else description = currentConstruction.description.tr() val descriptionLabel = description.toLabel()