diff --git a/android/android-release.apk b/android/android-release.apk deleted file mode 100644 index 640239f2be..0000000000 Binary files a/android/android-release.apk and /dev/null differ diff --git a/android/assets/jsons/Buildings.json b/android/assets/jsons/Buildings.json index 43f3cdff3d..9647bbb0aa 100644 --- a/android/assets/jsons/Buildings.json +++ b/android/assets/jsons/Buildings.json @@ -64,7 +64,7 @@ }, { "Name":"Oracle", - "Description": "Provides a free social policy - HOW????", + "Description": "Provides a free social policy - todo", "Culture":3, "IsWonder":true, "RequiredTech":"Philosophy" @@ -135,7 +135,7 @@ }, { "Name":"Machu Pichu", - "Description": "Gold from all trade routes +25%. Can only be built on cities with mountain in range of 2 tiles - this is a problem!", + "Description": "Gold from all trade routes +25%. Can only be built on cities with mountain in range of 2 tiles - todo", "Gold":5, "Culture":1, "IsWonder":true, @@ -143,7 +143,7 @@ }, { "Name":"Aqueduct", - "Description": "40% of food is carried over after a new citizen is born - HOW?!?!?!", + "Description": "40% of food is carried over after a new citizen is born - TODO", "Maintainance":1, "Food":2, "RequiredTech":"Engineering" @@ -163,5 +163,32 @@ "ResourceRequired":true, "ResourceBonusStats":{"Production":1}, "RequiredTech":"Metal Casting" + }, + { + "Name":"University", + "Description": "Jungles provide +2 science", + "Maintainance":2, + "PercentStatBonus":{"Science":33}, + "RequiredBuilding":"Library", + "RequiredTech":"Metal Casting" + }, + { + "Name":"Oxford University", + "Description": "+50% science from this city", + "Science":3, + "Culture":1, + "FreeTechs":1, + "IsWonder":true, + "RequiredBuildingInAllCities":"University", + "RequiredTech":"Education" + }, + { + "Name":"Angkor Wat", + "Description": "Cost of aquiring new tiles reduced by 25% - TODO", + "Culture":1, + "IsWonder":true, + "NewTileCostReduction":25, + "RequiredTech":"Education" } + ] \ No newline at end of file diff --git a/android/assets/jsons/Techs.json b/android/assets/jsons/Techs.json index 1e613d7bf4..a3f61f1b7a 100644 --- a/android/assets/jsons/Techs.json +++ b/android/assets/jsons/Techs.json @@ -101,7 +101,7 @@ "Name":"Mathematics", "Row":7, "Prerequisites":["The Wheel"], - "Description": "Serves as a stepping stone to other technologies. Also enables construction of the Hanging Gardens wonder." + "Description": "Enables construction of the Hanging Gardens wonder." }, { "Name":"Construction", @@ -172,7 +172,7 @@ "Name":"Education", "Row":3, "Prerequisites":["Theology","Civil Service"], - "Description":"???" + "Description":"Allows cities to convert production to science, construction of Universities which provide science, and construction of the Angkor Wat wonder" }, { "Name":"Chivalry", diff --git a/android/build.gradle b/android/build.gradle index e8126db29a..f91a90ad00 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -21,8 +21,8 @@ android { applicationId "com.unciv.game" minSdkVersion 9 targetSdkVersion 25 - versionCode 3 - versionName "1.0" + versionCode 4 + versionName "0.9" } buildTypes { release { diff --git a/core/src/com/unciv/civinfo/CityBuildings.java b/core/src/com/unciv/civinfo/CityBuildings.java index ddb206ae6e..ee75e3a6d9 100644 --- a/core/src/com/unciv/civinfo/CityBuildings.java +++ b/core/src/com/unciv/civinfo/CityBuildings.java @@ -3,6 +3,7 @@ package com.unciv.civinfo; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Predicate; import com.unciv.game.UnCivGame; +import com.unciv.models.LinqCollection; import com.unciv.models.gamebasics.Building; import com.unciv.models.gamebasics.GameBasics; import com.unciv.models.stats.FullStats; @@ -25,7 +26,7 @@ public class CityBuildings cityLocation = cityInfo.cityLocation; } - public ArrayList BuiltBuildings = new ArrayList(); + public LinqCollection BuiltBuildings = new LinqCollection(); public HashMap InProgressBuildings = new HashMap(); public String CurrentBuilding = Worker; // default starting building! @@ -34,6 +35,12 @@ public class CityBuildings public boolean IsBuilding(String buildingName) { return CurrentBuilding.equals(buildingName); } Building GetGameBuilding(String buildingName) { return GameBasics.Buildings.get(buildingName); } + public LinqCollection GetBuiltBuildings(){ return BuiltBuildings.select(new LinqCollection.Func() { + @Override + public Building GetBy(String arg0) { + return GetGameBuilding(arg0); + } + }); } public void NextTurn(int ProductionProduced) { @@ -94,7 +101,7 @@ public class CityBuildings @Override public boolean evaluate(CityInfo arg0) { CityBuildings CB = arg0.cityBuildings; - return CB.IsBuilt(building.Name) || CB.IsBuilt(building.Name); + return CB.IsBuilding(building.Name) || CB.IsBuilt(building.Name); } }) ) return false; if (building.RequiredBuilding != null && !IsBuilt(building.RequiredBuilding)) return false; diff --git a/core/src/com/unciv/civinfo/CityInfo.java b/core/src/com/unciv/civinfo/CityInfo.java index c0ec08a324..466f2c71f4 100644 --- a/core/src/com/unciv/civinfo/CityInfo.java +++ b/core/src/com/unciv/civinfo/CityInfo.java @@ -5,6 +5,7 @@ import com.badlogic.gdx.utils.Predicate; import com.unciv.game.HexMath; import com.unciv.game.UnCivGame; import com.unciv.models.LinqCollection; +import com.unciv.models.gamebasics.Building; import com.unciv.models.gamebasics.ResourceType; import com.unciv.models.gamebasics.TileResource; import com.unciv.models.stats.FullStats; diff --git a/core/src/com/unciv/models/gamebasics/Building.java b/core/src/com/unciv/models/gamebasics/Building.java index ba9a6d469a..b0dc991b8f 100644 --- a/core/src/com/unciv/models/gamebasics/Building.java +++ b/core/src/com/unciv/models/gamebasics/Building.java @@ -1,14 +1,18 @@ package com.unciv.models.gamebasics; +import com.unciv.models.LinqHashMap; +import com.unciv.models.stats.FullStats; import com.unciv.models.stats.NamedStats; +import java.util.Dictionary; + public class Building extends NamedStats implements ICivilopedia { public String Description; public String RequiredTech; public Technology GetRequiredTech(){return GameBasics.Technologies.get(RequiredTech);} public int Cost; public int Maintainance = 0; - public com.unciv.models.stats.FullStats PercentStatBonus = new com.unciv.models.stats.FullStats(); + public FullStats PercentStatBonus = new FullStats(); //public Func GetFlatBonusStats; public boolean IsWonder = false; public boolean ResourceRequired = false; @@ -18,13 +22,13 @@ public class Building extends NamedStats implements ICivilopedia { // Uniques public String ProvidesFreeBuilding; public int FreeTechs; - + public int NewTileCostReduction; /** The bonus stats that a resource gets when this building is built */ - public com.unciv.models.stats.FullStats ResourceBonusStats; + public FullStats ResourceBonusStats; public String GetDescription() { - com.unciv.models.stats.FullStats stats = new com.unciv.models.stats.FullStats(this); + FullStats stats = new FullStats(this); StringBuilder stringBuilder = new StringBuilder(); if(IsWonder) stringBuilder.append("Wonder\r\n"); stringBuilder.append(Description + "\r\n" + stats);