diff --git a/android/assets/jsons/Buildings.json b/android/assets/jsons/Buildings.json index 70aee274a9..a01bb8da7e 100644 --- a/android/assets/jsons/Buildings.json +++ b/android/assets/jsons/Buildings.json @@ -41,6 +41,17 @@ hurryCostModifier:25, requiredTech:"Pottery" }, + { + name:"Stone Works", + description: "Stone and marble provide +1 production.", + happiness:1, + production:1 + requiredNearbyImprovedResources:["Marble","Stone"] + resourceBonusStats:{production:1}, + maintainance:1, + hurryCostModifier:25, + requiredTech:"Calendar" + }, { name:"Library", description: "Adds 1 science for each 2 population in the city.", @@ -49,6 +60,14 @@ unique:"SciencePer2Pop", requiredTech:"Writing" }, + { + name:"Circus", + description: "", + requiredNearbyImprovedResources:["Ivory","Horses"] + happiness:2, + hurryCostModifier:25, + requiredTech:"Trapping" + }, { name:"Great Library", description: "Provides a free technology, and a library in the city it is built in", @@ -90,7 +109,7 @@ name:"Stable", description: "Cattle, sheep and horses provide +1 production.", maintainance:1, - resourceBoostingBuilding:true, + requiredNearbyImprovedResources:["Horses","Sheep","Cattle"] resourceBonusStats:{production:1}, hurryCostModifier:25, requiredTech:"Horseback Riding" @@ -128,19 +147,27 @@ percentStatBonus:{gold:25}, requiredTech:"Currency" }, + { + name:"Notre Dame", + description: "", + culture:1, + happiness:10, + isWonder:true, + requiredTech:"Theology" + }, { name:"Chichen Itza", description: "Length of golden ages increased +50%", - gold:5, culture:1, isWonder:true, + unique:"GoldenAgeLengthIncrease", requiredTech:"Currency" }, { name:"Mint", description: "", maintainance:0, - resourceBoostingBuilding:true, + requiredNearbyImprovedResources:["Gold","Silver"], resourceBonusStats:{gold:2}, hurryCostModifier:25, requiredTech:"Currency" @@ -177,7 +204,7 @@ description: "Iron provides +1 production", maintainance:1, hurryCostModifier:25, - resourceBoostingBuilding:true, + requiredNearbyImprovedResources:["Iron"], resourceBonusStats:{production:1}, requiredTech:"Metal Casting" }, diff --git a/core/src/com/unciv/civinfo/CityBuildings.java b/core/src/com/unciv/civinfo/CityBuildings.java index 845e6ff845..6ecb3eb911 100644 --- a/core/src/com/unciv/civinfo/CityBuildings.java +++ b/core/src/com/unciv/civinfo/CityBuildings.java @@ -111,13 +111,13 @@ public class CityBuildings { CivilizationInfo civInfo = UnCivGame.Current.civInfo; if(isBuilt(building.name)) return false; - if(building.resourceBoostingBuilding) { + if(building.requiredNearbyImprovedResources!=null) { boolean containsResourceWithImprovement = getCity().getTilesInRange() .any(new Predicate() { @Override public boolean evaluate(TileInfo tile) { return tile.resource != null - && building.name.equals(tile.getTileResource().building) + && building.requiredNearbyImprovedResources.contains(tile.resource) && tile.getTileResource().improvement.equals(tile.improvement); } }); diff --git a/core/src/com/unciv/models/gamebasics/Building.java b/core/src/com/unciv/models/gamebasics/Building.java index e6e119a63d..27cbe84220 100644 --- a/core/src/com/unciv/models/gamebasics/Building.java +++ b/core/src/com/unciv/models/gamebasics/Building.java @@ -17,10 +17,10 @@ public class Building extends NamedStats implements ICivilopedia { public FullStats percentStatBonus = new FullStats(); public int hurryCostModifier; // Extra cost percentage when purchasing public boolean isWonder = false; - public boolean resourceBoostingBuilding = false; public String requiredBuilding; public String requiredBuildingInAllCities; - public String requiredResource; + public String requiredResource; // A strategic resource that will be consumed by this building + public LinqCollection requiredNearbyImprovedResources; // City can only be built if one of these resources is nearby - it must be improved! public String cannotBeBuiltWith; // Uniques