diff --git a/android/Images.Construction/BuildingIcons/SS Booster.png b/android/Images.Construction/BuildingIcons/SS Booster.png deleted file mode 100644 index 07f2b46f0f..0000000000 Binary files a/android/Images.Construction/BuildingIcons/SS Booster.png and /dev/null differ diff --git a/android/Images.Construction/BuildingIcons/SS Cockpit.png b/android/Images.Construction/BuildingIcons/SS Cockpit.png deleted file mode 100644 index b509b6c239..0000000000 Binary files a/android/Images.Construction/BuildingIcons/SS Cockpit.png and /dev/null differ diff --git a/android/Images.Construction/BuildingIcons/SS Engine.png b/android/Images.Construction/BuildingIcons/SS Engine.png deleted file mode 100644 index fa2f642d50..0000000000 Binary files a/android/Images.Construction/BuildingIcons/SS Engine.png and /dev/null differ diff --git a/android/Images.Construction/BuildingIcons/SS Stasis Chamber.png b/android/Images.Construction/BuildingIcons/SS Stasis Chamber.png deleted file mode 100644 index 408a71ba62..0000000000 Binary files a/android/Images.Construction/BuildingIcons/SS Stasis Chamber.png and /dev/null differ diff --git a/android/Images.Construction/UnitIcons/SS Booster.png b/android/Images.Construction/UnitIcons/SS Booster.png new file mode 100644 index 0000000000..bfe2af2ee1 Binary files /dev/null and b/android/Images.Construction/UnitIcons/SS Booster.png differ diff --git a/android/Images.Construction/UnitIcons/SS Cockpit.png b/android/Images.Construction/UnitIcons/SS Cockpit.png new file mode 100644 index 0000000000..0e58e13a28 Binary files /dev/null and b/android/Images.Construction/UnitIcons/SS Cockpit.png differ diff --git a/android/Images.Construction/UnitIcons/SS Engine.png b/android/Images.Construction/UnitIcons/SS Engine.png new file mode 100644 index 0000000000..cab8722f01 Binary files /dev/null and b/android/Images.Construction/UnitIcons/SS Engine.png differ diff --git a/android/Images.Construction/UnitIcons/SS Stasis Chamber.png b/android/Images.Construction/UnitIcons/SS Stasis Chamber.png new file mode 100644 index 0000000000..a0c334bd45 Binary files /dev/null and b/android/Images.Construction/UnitIcons/SS Stasis Chamber.png differ diff --git a/android/assets/Construction.atlas b/android/assets/Construction.atlas index 9e26e87998..eeb8ecb634 100644 --- a/android/assets/Construction.atlas +++ b/android/assets/Construction.atlas @@ -622,259 +622,259 @@ BuildingIcons/SS Booster index: -1 BuildingIcons/SS Cockpit rotate: false - xy: 1732, 1683 + xy: 1840, 1790 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Engine rotate: false - xy: 1840, 1790 + xy: 328, 170 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/SS Stasis Chamber rotate: false - xy: 220, 62 + xy: 544, 386 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Satrap's Court rotate: false - xy: 436, 278 + xy: 868, 710 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Seaport rotate: false - xy: 760, 602 + xy: 1192, 1034 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Shrine rotate: false - xy: 1084, 932 + xy: 1516, 1358 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sistine Chapel rotate: false - xy: 1300, 1142 + xy: 1732, 1575 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Solar Plant rotate: false - xy: 1624, 1466 + xy: 436, 170 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Spaceship Factory rotate: false - xy: 1732, 1575 + xy: 544, 278 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stable rotate: false - xy: 328, 62 + xy: 760, 494 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stadium rotate: false - xy: 436, 170 + xy: 868, 602 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Statue of Liberty rotate: false - xy: 544, 278 + xy: 976, 710 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Statue of Zeus rotate: false - xy: 652, 386 + xy: 1084, 824 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stele rotate: false - xy: 868, 602 + xy: 1300, 1034 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stock Exchange rotate: false - xy: 976, 710 + xy: 1408, 1142 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stone Works rotate: false - xy: 1084, 824 + xy: 1516, 1250 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Stonehenge rotate: false - xy: 1192, 926 + xy: 1624, 1358 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Sydney Opera House rotate: false - xy: 1516, 1250 + xy: 436, 62 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Taj Mahal rotate: false - xy: 1624, 1358 + xy: 544, 170 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Temple rotate: false - xy: 1840, 1574 + xy: 760, 386 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Temple of Artemis rotate: false - xy: 436, 62 + xy: 868, 494 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Terracotta Army rotate: false - xy: 652, 278 + xy: 1084, 716 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Library rotate: false - xy: 760, 386 + xy: 1192, 818 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Great Lighthouse rotate: false - xy: 868, 494 + xy: 1300, 926 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Louvre rotate: false - xy: 976, 602 + xy: 1408, 1034 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Oracle rotate: false - xy: 1084, 716 + xy: 1516, 1142 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/The Pyramids rotate: false - xy: 1192, 818 + xy: 1624, 1250 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Theatre rotate: false - xy: 1300, 926 + xy: 1732, 1359 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/United Nations rotate: false - xy: 1840, 1466 + xy: 868, 386 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/University rotate: false - xy: 544, 62 + xy: 976, 494 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Utopia Project rotate: false - xy: 652, 170 + xy: 1084, 608 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Walls rotate: false - xy: 760, 278 + xy: 1192, 710 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Walls of Babylon rotate: false - xy: 868, 386 + xy: 1300, 818 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Wat rotate: false - xy: 1300, 818 + xy: 1732, 1251 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Water Mill rotate: false - xy: 1408, 926 + xy: 1840, 1358 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Windmill rotate: false - xy: 1516, 1034 + xy: 760, 170 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 BuildingIcons/Workshop rotate: false - xy: 1840, 1358 + xy: 1084, 500 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -888,105 +888,105 @@ MayaCalendar/0 index: -1 MayaCalendar/1 rotate: false - xy: 1024, 436 + xy: 1456, 868 size: 13, 50 orig: 13, 50 offset: 0, 0 index: -1 MayaCalendar/10 rotate: false - xy: 926, 328 + xy: 1358, 760 size: 21, 50 orig: 21, 50 offset: 0, 0 index: -1 MayaCalendar/11 rotate: false - xy: 1408, 868 + xy: 1840, 1300 size: 35, 50 orig: 35, 50 offset: 0, 0 index: -1 MayaCalendar/12 rotate: false - xy: 1516, 976 + xy: 868, 220 size: 35, 50 orig: 35, 50 offset: 0, 0 index: -1 MayaCalendar/13 rotate: false - xy: 1624, 1083 + xy: 976, 328 size: 35, 50 orig: 35, 50 offset: 0, 0 index: -1 MayaCalendar/14 rotate: false - xy: 1732, 1193 + xy: 1084, 442 size: 35, 50 orig: 35, 50 offset: 0, 0 index: -1 MayaCalendar/15 rotate: false - xy: 1840, 1300 + xy: 1192, 544 size: 30, 50 orig: 30, 50 offset: 0, 0 index: -1 MayaCalendar/16 rotate: false - xy: 976, 436 + xy: 1408, 868 size: 40, 50 orig: 40, 50 offset: 0, 0 index: -1 MayaCalendar/17 rotate: false - xy: 1084, 550 + xy: 1516, 976 size: 40, 50 orig: 40, 50 offset: 0, 0 index: -1 MayaCalendar/18 rotate: false - xy: 1192, 652 + xy: 1624, 1084 size: 40, 50 orig: 40, 50 offset: 0, 0 index: -1 MayaCalendar/19 rotate: false - xy: 1300, 760 + xy: 1732, 1193 size: 40, 50 orig: 40, 50 offset: 0, 0 index: -1 MayaCalendar/2 rotate: false - xy: 1132, 550 + xy: 1564, 976 size: 13, 50 orig: 13, 50 offset: 0, 0 index: -1 MayaCalendar/3 rotate: false - xy: 1240, 652 + xy: 1672, 1084 size: 13, 50 orig: 13, 50 offset: 0, 0 index: -1 MayaCalendar/4 rotate: false - xy: 1348, 760 + xy: 1780, 1193 size: 13, 50 orig: 13, 50 offset: 0, 0 index: -1 MayaCalendar/5 rotate: false - xy: 1451, 868 + xy: 1883, 1300 size: 10, 50 orig: 10, 50 offset: 0, 0 @@ -1007,14 +1007,14 @@ MayaCalendar/7 index: -1 MayaCalendar/8 rotate: false - xy: 760, 162 + xy: 710, 111 size: 25, 50 orig: 25, 50 offset: 0, 0 index: -1 MayaCalendar/9 rotate: false - xy: 818, 220 + xy: 1300, 702 size: 25, 50 orig: 25, 50 offset: 0, 0 @@ -1035,14 +1035,14 @@ MayaCalendar/Katun index: -1 MayaCalendar/Maya rotate: false - xy: 760, 220 + xy: 652, 111 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 MayaCalendar/Tun rotate: false - xy: 868, 328 + xy: 1300, 760 size: 50, 50 orig: 50, 50 offset: 0, 0 @@ -1733,170 +1733,198 @@ UnitIcons/Rocket Artillery orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Samurai +UnitIcons/SS Booster rotate: false - xy: 328, 170 + xy: 1732, 1683 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Scout +UnitIcons/SS Cockpit rotate: false - xy: 544, 386 + xy: 220, 62 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Sea Beggar +UnitIcons/SS Engine + rotate: false + xy: 436, 278 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitIcons/SS Stasis Chamber rotate: false xy: 652, 494 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Settler +UnitIcons/Samurai rotate: false - xy: 868, 710 + xy: 760, 602 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Ship of the Line +UnitIcons/Scout rotate: false xy: 976, 818 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Sipahi +UnitIcons/Sea Beggar rotate: false - xy: 1192, 1034 + xy: 1084, 932 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Skirmisher +UnitIcons/Settler + rotate: false + xy: 1300, 1142 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitIcons/Ship of the Line rotate: false xy: 1408, 1250 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Slinger +UnitIcons/Sipahi rotate: false - xy: 1516, 1358 + xy: 1624, 1466 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 -UnitIcons/Spearman +UnitIcons/Skirmisher rotate: false xy: 1840, 1682 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 +UnitIcons/Slinger + rotate: false + xy: 328, 62 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +UnitIcons/Spearman + rotate: false + xy: 652, 386 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 UnitIcons/Stealth Bomber rotate: false - xy: 760, 494 + xy: 1192, 926 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Submarine rotate: false - xy: 1300, 1034 + xy: 1732, 1467 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Swordsman rotate: false - xy: 1408, 1142 + xy: 1840, 1574 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Tank rotate: false - xy: 1732, 1467 + xy: 652, 278 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Tercio rotate: false - xy: 544, 170 + xy: 976, 602 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Trebuchet rotate: false - xy: 1408, 1034 + xy: 1840, 1466 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Triplane rotate: false - xy: 1516, 1142 + xy: 544, 62 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Trireme rotate: false - xy: 1624, 1249 + xy: 652, 169 size: 100, 101 orig: 100, 101 offset: 0, 0 index: -1 UnitIcons/Turtle Ship rotate: false - xy: 1732, 1359 + xy: 760, 278 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/War Chariot rotate: false - xy: 976, 494 + xy: 1408, 926 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/War Elephant rotate: false - xy: 1084, 608 + xy: 1516, 1034 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Warrior rotate: false - xy: 1192, 710 + xy: 1624, 1142 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Work Boats rotate: false - xy: 1624, 1141 + xy: 868, 278 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Worker rotate: false - xy: 1732, 1251 + xy: 976, 386 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 UnitIcons/Zero rotate: false - xy: 652, 62 + xy: 1192, 602 size: 100, 100 orig: 100, 100 offset: 0, 0 diff --git a/android/assets/Construction.png b/android/assets/Construction.png index a5e4e5be80..4588651a59 100644 Binary files a/android/assets/Construction.png and b/android/assets/Construction.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index 1ad6a623c3..1c2b2265f5 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -214,20 +214,6 @@ ImprovementIcons/Quarry orig: 100, 100 offset: 0, 0 index: -1 -ImprovementIcons/Railroad - rotate: false - xy: 328, 30 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/Railroad - rotate: false - xy: 328, 30 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 ImprovementIcons/Road rotate: false xy: 1054, 1296 @@ -2083,6 +2069,20 @@ TileSets/Default/OasisOverlay orig: 100, 100 offset: 0, 0 index: -1 +TileSets/Default/Railroad + rotate: false + xy: 328, 30 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +ImprovementIcons/Railroad + rotate: false + xy: 328, 30 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 TileSets/Default/Road rotate: false xy: 404, 1847 diff --git a/android/assets/jsons/Civ V - Gods & Kings/Buildings.json b/android/assets/jsons/Civ V - Gods & Kings/Buildings.json index d5715f9652..527edfafc7 100644 --- a/android/assets/jsons/Civ V - Gods & Kings/Buildings.json +++ b/android/assets/jsons/Civ V - Gods & Kings/Buildings.json @@ -1103,12 +1103,6 @@ "requiredTech": "Telecommunications", "uniques": ["Population loss from nuclear attacks [-75]% [in this city]"] }, - { - "name": "SS Cockpit", - "requiredResource": "Aluminum", - "requiredTech": "Satellites", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, { "name": "Hubble Space Telescope", "isWonder": true, @@ -1121,12 +1115,6 @@ "requiredTech": "Satellites", "quote": "'The wonder is, not that the field of stars is so vast, but that man has measured it.' - Anatole France" }, - { - "name": "SS Booster", - "requiredResource": "Aluminum", - "requiredTech": "Advanced Ballistics", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, { "name": "Spaceship Factory", "production": 3, @@ -1148,18 +1136,6 @@ "uniques": ["Triggers voting for the Diplomatic Victory", "Hidden when [Diplomatic] Victory is disabled", "Triggers a global alert upon completion"], "quote": "'More than ever before in human history, we share a common destiny. We can master it only if we face it together. And that is why we have the United Nations.' - Kofi Annan" }, - { - "name": "SS Engine", - "requiredResource": "Aluminum", - "requiredTech": "Particle Physics", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, - { - "name": "SS Stasis Chamber", - "requiredResource": "Aluminum", - "requiredTech": "Nanotechnology", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, // All Eras diff --git a/android/assets/jsons/Civ V - Gods & Kings/Units.json b/android/assets/jsons/Civ V - Gods & Kings/Units.json index 35b79473b3..0149d1e84b 100644 --- a/android/assets/jsons/Civ V - Gods & Kings/Units.json +++ b/android/assets/jsons/Civ V - Gods & Kings/Units.json @@ -1675,18 +1675,18 @@ } /* Spaceship Parts */ - /* + // Must be transported to the Capital for launch. // Can be destroyed by any hostile military unit walking in their tile. { "name": "SS Booster", "unitType": "Civilian", "movement": 2, - "cost": 500, + "cost": 750, "requiredTech": "Advanced Ballistics", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] - // costs 750 in G&K, 1500 in BNW + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital", "Limited to [3] per Civilization"] + // costs 1500 in BNW }, { "name": "SS Cockpit", @@ -1695,7 +1695,7 @@ "cost": 750, "requiredTech": "Satellites", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital", "Limited to [1] per Civilization"] // costs 1500 in BNW }, { @@ -1705,7 +1705,7 @@ "cost": 750, "requiredTech": "Particle Physics", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital", "Limited to [1] per Civilization"] // costs 1500 in BNW }, { @@ -1715,8 +1715,7 @@ "cost": 750, "requiredTech": "Nanotechnology", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital", "Limited to [1] per Civilization"] // costs 1500 in BNW } - */ ] diff --git a/android/assets/jsons/Civ V - Vanilla/Buildings.json b/android/assets/jsons/Civ V - Vanilla/Buildings.json index 6e0203b156..8957f8b3a3 100644 --- a/android/assets/jsons/Civ V - Vanilla/Buildings.json +++ b/android/assets/jsons/Civ V - Vanilla/Buildings.json @@ -941,18 +941,6 @@ // Information Era // Column 15 - { - "name": "SS Cockpit", - "requiredResource": "Aluminum", - "requiredTech": "Satellites", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, - { - "name": "SS Booster", - "requiredResource": "Aluminum", - "requiredTech": "Robotics", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, { "name": "Spaceship Factory", "production": 3, @@ -974,18 +962,6 @@ "uniques": ["Triggers voting for the Diplomatic Victory", "Hidden when [Diplomatic] Victory is disabled", "Triggers a global alert upon completion"], "quote": "'More than ever before in human history, we share a common destiny. We can master it only if we face it together. And that is why we have the United Nations.' - Kofi Annan" }, - { - "name": "SS Engine", - "requiredResource": "Aluminum", - "requiredTech": "Particle Physics", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, - { - "name": "SS Stasis Chamber", - "requiredResource": "Aluminum", - "requiredTech": "Nanotechnology", - "uniques": ["Spaceship part", "Triggers a global alert upon completion", "Cannot be purchased", "Hidden when [Scientific] Victory is disabled"] - }, // All Eras diff --git a/android/assets/jsons/Civ V - Vanilla/Units.json b/android/assets/jsons/Civ V - Vanilla/Units.json index 224eb1c114..ac32286d1c 100644 --- a/android/assets/jsons/Civ V - Vanilla/Units.json +++ b/android/assets/jsons/Civ V - Vanilla/Units.json @@ -1351,7 +1351,6 @@ } /* Spaceship Parts */ - /* // Must be transported to the Capital for launch. // Can be destroyed by any hostile military unit walking in their tile. { @@ -1361,8 +1360,8 @@ "cost": 500, "requiredTech": "Robotics", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] - // costs 750 in G&K, 1500 in BNW + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital"] + // costs 1500 in BNW }, { "name": "SS Cockpit", @@ -1371,7 +1370,7 @@ "cost": 750, "requiredTech": "Satellites", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital"] // costs 1500 in BNW }, { @@ -1381,7 +1380,7 @@ "cost": 750, "requiredTech": "Particle Physics", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital"] // costs 1500 in BNW }, { @@ -1391,8 +1390,7 @@ "cost": 750, "requiredTech": "Nanotechnology", "requiredResource": "Aluminum", - "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]"] + "uniques": ["Spaceship part", "Cannot be purchased", "Requires [Apollo Program]", "Uncapturable", "Can be added to [The Spaceship] in the Capital"] // costs 1500 in BNW } - */ ] diff --git a/android/assets/jsons/translations/Dutch.properties b/android/assets/jsons/translations/Dutch.properties index feaa2b3d6c..23fed528c3 100644 --- a/android/assets/jsons/translations/Dutch.properties +++ b/android/assets/jsons/translations/Dutch.properties @@ -727,6 +727,8 @@ Sleep until healed = Slaap tot geheeld Moving = Bewegen Set up = Opstellen Paradrop = Parachutelanding +Add in capital = In hoofdstad toevoegen +Add to [comment] = Toevoegen aan [comment] Upgrade to [unitType] ([goldCost] gold) = Waardeer [unitType] op ([goldCost] goud) Found city = Stad stichten Promote = Promoveren diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index 1d7156e2f5..6ca9de763a 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -726,6 +726,8 @@ Sleep until healed = Moving = Set up = Paradrop = +Add in capital = +Add to [comment] = Upgrade to [unitType] ([goldCost] gold) = Found city = Promote = diff --git a/core/src/com/unciv/logic/city/IConstruction.kt b/core/src/com/unciv/logic/city/IConstruction.kt index c4e34ae863..84d1741209 100644 --- a/core/src/com/unciv/logic/city/IConstruction.kt +++ b/core/src/com/unciv/logic/city/IConstruction.kt @@ -145,7 +145,7 @@ enum class RejectionReason(val shouldShow: Boolean, var errorMessage: String) { MustOwnTile(false, "Must own a specific tile close by"), WaterUnitsInCoastalCities(false, "May only built water units in coastal cities"), CanOnlyBeBuiltInSpecificCities(false, "Can only be built in specific cities"), - MaxNumberBuildable(true, "Maximum number being built"), + MaxNumberBuildable(true, "Maximum number have been built or are being constructed"), UniqueToOtherNation(false, "Unique to another nation"), ReplacedByOurUnique(false, "Our unique replaces this"), diff --git a/core/src/com/unciv/logic/civilization/CivConstructions.kt b/core/src/com/unciv/logic/civilization/CivConstructions.kt index 3a9ba4dbf4..ef5ca3a9da 100644 --- a/core/src/com/unciv/logic/civilization/CivConstructions.kt +++ b/core/src/com/unciv/logic/civilization/CivConstructions.kt @@ -2,7 +2,9 @@ package com.unciv.logic.civilization import com.unciv.logic.city.INonPerpetualConstruction import com.unciv.models.Counter +import com.unciv.models.ruleset.Building import com.unciv.models.ruleset.unique.UniqueType +import com.unciv.models.ruleset.unit.BaseUnit import com.unciv.models.stats.Stat import java.util.* import kotlin.collections.HashMap @@ -120,4 +122,18 @@ class CivConstructions { addFreeBuilding(city.id, building) } } + + fun countConstructedObjects(objectToCount: INonPerpetualConstruction): Int { + val amountInSpaceShip = civInfo.victoryManager.currentsSpaceshipParts[objectToCount.name] ?: 0 + + return amountInSpaceShip + when (objectToCount) { + is Building -> civInfo.cities.count { + it.cityConstructions.containsBuildingOrEquivalent(objectToCount.name) + || it.cityConstructions.isBeingConstructedOrEnqueued(objectToCount.name) + } + is BaseUnit -> civInfo.getCivUnits().count { it.name == objectToCount.name } + + civInfo.cities.count { it.cityConstructions.isBeingConstructedOrEnqueued(objectToCount.name) } + else -> 0 + } + } } diff --git a/core/src/com/unciv/models/UnitAction.kt b/core/src/com/unciv/models/UnitAction.kt index 7f4cb361a0..2f481cea4e 100644 --- a/core/src/com/unciv/models/UnitAction.kt +++ b/core/src/com/unciv/models/UnitAction.kt @@ -140,6 +140,8 @@ enum class UnitActionType( { imageGetShowMore() }, KeyCharAndCode(Input.Keys.PAGE_DOWN)), HideAdditionalActions("Back", { imageGetHideMore() }, KeyCharAndCode(Input.Keys.PAGE_UP)), + AddInCapital( "Add in capital", + { ImageGetter.getUnitIcon("SS Cockpit")}, UncivSound.Chimes), ; // Allow shorter initializations diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index d0bac4998b..b262839e01 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -436,7 +436,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { if (cityConstructions.isBeingConstructedOrEnqueued(name)) return false for (unique in getMatchingUniques(UniqueType.MaxNumberBuildable)){ - if (cityConstructions.cityInfo.civInfo.cities.count{it.cityConstructions.containsBuildingOrEquivalent(name)}>=unique.params[0].toInt()) + if (cityConstructions.cityInfo.civInfo.civConstructions.countConstructedObjects(this) >= unique.params[0].toInt()) return false } @@ -475,6 +475,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { ) rejectionReasons.add(RejectionReason.ShouldNotBeDisplayed) + // Shouldn't this be "Enables nuclear weapon_s_"? "Enables nuclear weapon" -> if (!cityConstructions.cityInfo.civInfo.gameInfo.gameParameters.nuclearWeaponsEnabled) rejectionReasons.add(RejectionReason.DisabledBySetting) @@ -522,13 +523,8 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { rejectionReasons.add(RejectionReason.DisabledBySetting) UniqueType.MaxNumberBuildable.placeholderText -> - if (civInfo.cities.count { - it.cityConstructions.containsBuildingOrEquivalent(name) || - it.cityConstructions.isBeingConstructedOrEnqueued(name) - } - >= unique.params[0].toInt()) { + if (civInfo.civConstructions.countConstructedObjects(this) >= unique.params[0].toInt()) rejectionReasons.add(RejectionReason.MaxNumberBuildable) - } } } diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 83eaafe993..3d8ac08815 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -451,7 +451,8 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: CannotBeBarbarian("Never appears as a Barbarian unit", UniqueTarget.Unit, flags = listOf(UniqueFlag.HiddenToUsers)), ReligiousUnit("Religious Unit", UniqueTarget.Unit), - SpaceshipPart("Spaceship part", UniqueTarget.Building, UniqueTarget.Unit), + SpaceshipPart("Spaceship part", UniqueTarget.Unit, UniqueTarget.Building), // Usage for buildings is deprecated + AddInCapital("Can be added to [comment] in the Capital", UniqueTarget.Unit), //endregion diff --git a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt index 5cc5ebe365..e3b2f78f49 100644 --- a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt @@ -425,12 +425,15 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction { rejectionReasons.add(RejectionReason.NoSettlerForOneCityPlayers) } - if (civInfo.getMatchingUniques(UniqueType.CannotBuildUnits, StateForConditionals(civInfo=civInfo)) - .any { matchesFilter(it.params[0]) } - ) { + if (civInfo.getMatchingUniques(UniqueType.CannotBuildUnits).any { matchesFilter(it.params[0]) }) { rejectionReasons.add(RejectionReason.CannotBeBuilt) } - + + for (unique in getMatchingUniques(UniqueType.MaxNumberBuildable)) { + if (civInfo.civConstructions.countConstructedObjects(this) >= unique.params[0].toInt()) + rejectionReasons.add(RejectionReason.MaxNumberBuildable) + } + return rejectionReasons } diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt index 60b0928b6c..1aca2395fd 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt @@ -41,7 +41,8 @@ object UnitActions { val unitTable = worldScreen.bottomUnitTable val actionList = ArrayList() - if (unit.isMoving()) actionList += UnitAction(UnitActionType.StopMovement) { unit.action = null } + if (unit.isMoving()) + actionList += UnitAction(UnitActionType.StopMovement) { unit.action = null } if (unit.isExploring()) actionList += UnitAction(UnitActionType.StopExploration) { unit.action = null } if (unit.isAutomated()) @@ -66,6 +67,8 @@ object UnitActions { addExplorationActions(unit, actionList) addAutomateBuildingImprovementsAction(unit, actionList) addTriggerUniqueActions(unit, actionList) + addAddInCapitalAction(unit, actionList, tile) + addToggleActionsAction(unit, actionList, unitTable) @@ -407,6 +410,18 @@ object UnitActions { ) } + private fun addAddInCapitalAction(unit: MapUnit, actionList: ArrayList, tile: TileInfo) { + if (!unit.hasUnique(UniqueType.AddInCapital)) return + + actionList += UnitAction(UnitActionType.AddInCapital, + title = "Add to [${unit.getMatchingUniques(UniqueType.AddInCapital).first().params[0]}]", + action = { + unit.civInfo.victoryManager.currentsSpaceshipParts.add(unit.name, 1) + unit.destroy() + }.takeIf { tile.isCityCenter() && tile.getCity()!!.isCapital() && tile.getCity()!!.civInfo == unit.civInfo } + ) + } + private fun addGreatPersonActions(unit: MapUnit, actionList: ArrayList, tile: TileInfo) { diff --git a/docs/Credits.md b/docs/Credits.md index 04e49562b2..c95c22c2c8 100644 --- a/docs/Credits.md +++ b/docs/Credits.md @@ -143,6 +143,10 @@ Unless otherwise specified, all the following are from [the Noun Project](https: * [Modern Armor](https://thenounproject.com/search/?q=tank&i=218) By Public Domain Nouns for Modern Armor * [Nuclear Missile](https://thenounproject.com/marialuisa.iborra/collection/missiles-bombs/?i=1022574) By Lluisa Iborra, ES * [Robot](https://thenounproject.com/term/robot/1182459/) by Lluisa Iborra, ES for Giant Death Robot +* [Missile](https://thenounproject.com/term/missile/799922/) By ProSymbols for SS Booster +* [Rocket](https://thenounproject.com/term/rocket/937173/) By BomSymbols for SS Cockpit +* [Engine](https://thenounproject.com/term/engine/1877958/) By Andre for SS Engine +* [Chamber](https://thenounproject.com/term/chamber/1242689/) By IYIKON for SS Stasis Chamber ### All Eras @@ -334,13 +338,9 @@ Unless otherwise specified, all the following are from [the Noun Project](https: ### Information Era * [CN Tower Toronto](https://thenounproject.com/search/?q=cn%20tower&i=807678) By mikicon for CN tower * [War Shelter](https://www.flaticon.com/free-icon/war-shelter_978661) by [Frepik](www.freepik.com) for Bomb Shelter -* [Missile](https://thenounproject.com/term/missile/799922/) By ProSymbols for SS Booster -* [Rocket](https://thenounproject.com/term/rocket/937173/) By BomSymbols for SS Cockpit * [Hubble Telescope](https://thenounproject.com/search/?q=hubble%20space&i=445502) By Scott Lewis for Hubble Space Telescope * [Build](https://thenounproject.com/term/build/1156478/) By Michael G Brown for Spaceship Factory * [United Nations](https://thenounproject.com/search/?q=united+nations&i=3104698) by Imam for United Nations -* [Engine](https://thenounproject.com/term/engine/1877958/) By Andre for SS Engine -* [Chamber](https://thenounproject.com/term/chamber/1242689/) By IYIKON for SS Stasis Chamber ### All Era's * [Illuminati](https://thenounproject.com/term/illuminati/1617812) by emilegraphics for the Utopia Project diff --git a/docs/uniques.md b/docs/uniques.md index 113b4c8e29..425acef4fc 100644 --- a/docs/uniques.md +++ b/docs/uniques.md @@ -816,9 +816,6 @@ Applicable to: Building, Improvement, Resource #### Remove extra unhappiness from annexed cities Applicable to: Building -#### Spaceship part -Applicable to: Building, Unit - #### Hidden when religion is disabled Applicable to: Building, Unit, Ruins @@ -984,6 +981,14 @@ Applicable to: Unit #### Religious Unit Applicable to: Unit +#### Spaceship part +Applicable to: Unit + +#### Can be added to [comment] in the Capital +Example: "Can be added to [comment] in the Capital" + +Applicable to: Unit + ## Promotion uniques #### Heal this unit by [amount] HP Example: "Heal this unit by [20] HP"