diff --git a/android/assets/jsons/Buildings.json b/android/assets/jsons/Buildings.json index b0035392b0..7bc28df7a1 100644 --- a/android/assets/jsons/Buildings.json +++ b/android/assets/jsons/Buildings.json @@ -94,10 +94,11 @@ }, { name:"The Oracle", - description: "Provides a free social policy - todo", + description: "Provides a free social policy", culture:3, greatPersonPoints:{science:1}, isWonder:true, + unique:"FreeSocialPolicy", requiredTech:"Philosophy" }, { @@ -456,7 +457,7 @@ }, { name:"Medical Lab", - description: "25% of food carried over after a new citizen is born - todo", + description: "25% of food carried over after a new citizen is born", requiredBuilding:"Hospital", maintainance:3, requiredTech:"Penicillin" diff --git a/android/assets/jsons/Policies.json b/android/assets/jsons/Policies.json index c6d9a17437..40069848aa 100644 --- a/android/assets/jsons/Policies.json +++ b/android/assets/jsons/Policies.json @@ -1,7 +1,7 @@ [ { name:"Tradition", - description:"+3 culture in capital and increased rate of border expansion (how much?)", + description:"+3 culture in capital and increased rate of border expansion", policies:[ { name:"Aristocracy", @@ -11,7 +11,7 @@ }, { name:"Legalism", - description:"Free culture building in your first 4 cities - todo", + description:"Free culture building in your first 4 cities", row:1, column:3 }, @@ -114,7 +114,7 @@ }, { name:"Free Religion", - description:"+1 culture for each monument, temple and monastery. Gain a free policy - TODO.", + description:"+1 culture for each monument, temple and monastery. Gain a free policy.", requires:["Mandate of Heaven","Reformation"] row:3, column:4 diff --git a/core/src/com/unciv/civinfo/CityConstructions.java b/core/src/com/unciv/civinfo/CityConstructions.java index fdeef59a91..a7ac83ae31 100644 --- a/core/src/com/unciv/civinfo/CityConstructions.java +++ b/core/src/com/unciv/civinfo/CityConstructions.java @@ -185,4 +185,15 @@ public class CityConstructions if(currentConstruction.equals("Science") || currentConstruction.equals("Gold")) return ""; return " ("+ workDone(currentConstruction) + "/"+ getCurrentConstruction().getProductionCost()+")"; } + + public void addCultureBuilding() { + for (String string : new LinqCollection("Monument","Temple","Opera House","Museum")){ + if(!builtBuildings.contains(string)){ + builtBuildings.add(string); + if(currentConstruction.equals(string)) + chooseNextConstruction(); + break; + }; + } + } } \ No newline at end of file diff --git a/core/src/com/unciv/civinfo/CityInfo.java b/core/src/com/unciv/civinfo/CityInfo.java index 68e715fb76..30fbceed53 100644 --- a/core/src/com/unciv/civinfo/CityInfo.java +++ b/core/src/com/unciv/civinfo/CityInfo.java @@ -61,6 +61,7 @@ public class CityInfo { this.cityLocation = cityLocation; civInfo.cities.add(this); cityConstructions = new CityConstructions(this); + if(civInfo.policies.contains("Legalism") && civInfo.cities.size() <= 4) cityConstructions.addCultureBuilding(); if(civInfo.cities.size()==1) { cityConstructions.builtBuildings.add("Palace"); cityConstructions.currentConstruction = "Worker"; // Default for first city only! diff --git a/core/src/com/unciv/game/pickerscreens/PolicyPickerScreen.java b/core/src/com/unciv/game/pickerscreens/PolicyPickerScreen.java index bbd28b46fc..edea2fab2a 100644 --- a/core/src/com/unciv/game/pickerscreens/PolicyPickerScreen.java +++ b/core/src/com/unciv/game/pickerscreens/PolicyPickerScreen.java @@ -10,6 +10,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Predicate; +import com.unciv.civinfo.CityInfo; import com.unciv.civinfo.CivilizationInfo; import com.unciv.game.UnCivGame; import com.unciv.game.utils.ImageGetter; @@ -63,6 +64,10 @@ public class PolicyPickerScreen extends PickerScreen { if (pickedPolicy.name.equals("Scientific Revolution")) CivilizationInfo.current().tech.freeTechs+=2; + if (pickedPolicy.name.equals("Legalism")) + for (CityInfo city : game.civInfo.cities.subList(0,4)) + city.cityConstructions.addCultureBuilding(); + if (pickedPolicy.name.equals("Free Religion")) CivilizationInfo.current().freePolicies++;