Added education buildings

This commit is contained in:
Yair Morgenstern
2017-11-25 23:51:58 +02:00
parent 279269d4a3
commit c8dd598438
7 changed files with 52 additions and 13 deletions

Binary file not shown.

View File

@ -64,7 +64,7 @@
}, },
{ {
"Name":"Oracle", "Name":"Oracle",
"Description": "Provides a free social policy - HOW????", "Description": "Provides a free social policy - todo",
"Culture":3, "Culture":3,
"IsWonder":true, "IsWonder":true,
"RequiredTech":"Philosophy" "RequiredTech":"Philosophy"
@ -135,7 +135,7 @@
}, },
{ {
"Name":"Machu Pichu", "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, "Gold":5,
"Culture":1, "Culture":1,
"IsWonder":true, "IsWonder":true,
@ -143,7 +143,7 @@
}, },
{ {
"Name":"Aqueduct", "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, "Maintainance":1,
"Food":2, "Food":2,
"RequiredTech":"Engineering" "RequiredTech":"Engineering"
@ -163,5 +163,32 @@
"ResourceRequired":true, "ResourceRequired":true,
"ResourceBonusStats":{"Production":1}, "ResourceBonusStats":{"Production":1},
"RequiredTech":"Metal Casting" "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"
} }
] ]

View File

@ -101,7 +101,7 @@
"Name":"Mathematics", "Name":"Mathematics",
"Row":7, "Row":7,
"Prerequisites":["The Wheel"], "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", "Name":"Construction",
@ -172,7 +172,7 @@
"Name":"Education", "Name":"Education",
"Row":3, "Row":3,
"Prerequisites":["Theology","Civil Service"], "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", "Name":"Chivalry",

View File

@ -21,8 +21,8 @@ android {
applicationId "com.unciv.game" applicationId "com.unciv.game"
minSdkVersion 9 minSdkVersion 9
targetSdkVersion 25 targetSdkVersion 25
versionCode 3 versionCode 4
versionName "1.0" versionName "0.9"
} }
buildTypes { buildTypes {
release { release {

View File

@ -3,6 +3,7 @@ package com.unciv.civinfo;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Predicate; import com.badlogic.gdx.utils.Predicate;
import com.unciv.game.UnCivGame; import com.unciv.game.UnCivGame;
import com.unciv.models.LinqCollection;
import com.unciv.models.gamebasics.Building; import com.unciv.models.gamebasics.Building;
import com.unciv.models.gamebasics.GameBasics; import com.unciv.models.gamebasics.GameBasics;
import com.unciv.models.stats.FullStats; import com.unciv.models.stats.FullStats;
@ -25,7 +26,7 @@ public class CityBuildings
cityLocation = cityInfo.cityLocation; cityLocation = cityInfo.cityLocation;
} }
public ArrayList<String> BuiltBuildings = new ArrayList<String>(); public LinqCollection<String> BuiltBuildings = new LinqCollection<String>();
public HashMap<String, Integer> InProgressBuildings = new HashMap<String, Integer>(); public HashMap<String, Integer> InProgressBuildings = new HashMap<String, Integer>();
public String CurrentBuilding = Worker; // default starting building! public String CurrentBuilding = Worker; // default starting building!
@ -34,6 +35,12 @@ public class CityBuildings
public boolean IsBuilding(String buildingName) { return CurrentBuilding.equals(buildingName); } public boolean IsBuilding(String buildingName) { return CurrentBuilding.equals(buildingName); }
Building GetGameBuilding(String buildingName) { return GameBasics.Buildings.get(buildingName); } Building GetGameBuilding(String buildingName) { return GameBasics.Buildings.get(buildingName); }
public LinqCollection<Building> GetBuiltBuildings(){ return BuiltBuildings.select(new LinqCollection.Func<String, Building>() {
@Override
public Building GetBy(String arg0) {
return GetGameBuilding(arg0);
}
}); }
public void NextTurn(int ProductionProduced) public void NextTurn(int ProductionProduced)
{ {
@ -94,7 +101,7 @@ public class CityBuildings
@Override @Override
public boolean evaluate(CityInfo arg0) { public boolean evaluate(CityInfo arg0) {
CityBuildings CB = arg0.cityBuildings; CityBuildings CB = arg0.cityBuildings;
return CB.IsBuilt(building.Name) || CB.IsBuilt(building.Name); return CB.IsBuilding(building.Name) || CB.IsBuilt(building.Name);
} }
}) ) return false; }) ) return false;
if (building.RequiredBuilding != null && !IsBuilt(building.RequiredBuilding)) return false; if (building.RequiredBuilding != null && !IsBuilt(building.RequiredBuilding)) return false;

View File

@ -5,6 +5,7 @@ import com.badlogic.gdx.utils.Predicate;
import com.unciv.game.HexMath; import com.unciv.game.HexMath;
import com.unciv.game.UnCivGame; import com.unciv.game.UnCivGame;
import com.unciv.models.LinqCollection; import com.unciv.models.LinqCollection;
import com.unciv.models.gamebasics.Building;
import com.unciv.models.gamebasics.ResourceType; import com.unciv.models.gamebasics.ResourceType;
import com.unciv.models.gamebasics.TileResource; import com.unciv.models.gamebasics.TileResource;
import com.unciv.models.stats.FullStats; import com.unciv.models.stats.FullStats;

View File

@ -1,14 +1,18 @@
package com.unciv.models.gamebasics; package com.unciv.models.gamebasics;
import com.unciv.models.LinqHashMap;
import com.unciv.models.stats.FullStats;
import com.unciv.models.stats.NamedStats; import com.unciv.models.stats.NamedStats;
import java.util.Dictionary;
public class Building extends NamedStats implements ICivilopedia { public class Building extends NamedStats implements ICivilopedia {
public String Description; public String Description;
public String RequiredTech; public String RequiredTech;
public Technology GetRequiredTech(){return GameBasics.Technologies.get(RequiredTech);} public Technology GetRequiredTech(){return GameBasics.Technologies.get(RequiredTech);}
public int Cost; public int Cost;
public int Maintainance = 0; public int Maintainance = 0;
public com.unciv.models.stats.FullStats PercentStatBonus = new com.unciv.models.stats.FullStats(); public FullStats PercentStatBonus = new FullStats();
//public Func<CityInfo,FullStats> GetFlatBonusStats; //public Func<CityInfo,FullStats> GetFlatBonusStats;
public boolean IsWonder = false; public boolean IsWonder = false;
public boolean ResourceRequired = false; public boolean ResourceRequired = false;
@ -18,13 +22,13 @@ public class Building extends NamedStats implements ICivilopedia {
// Uniques // Uniques
public String ProvidesFreeBuilding; public String ProvidesFreeBuilding;
public int FreeTechs; public int FreeTechs;
public int NewTileCostReduction;
/** The bonus stats that a resource gets when this building is built */ /** 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() { 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(); StringBuilder stringBuilder = new StringBuilder();
if(IsWonder) stringBuilder.append("Wonder\r\n"); if(IsWonder) stringBuilder.append("Wonder\r\n");
stringBuilder.append(Description + "\r\n" + stats); stringBuilder.append(Description + "\r\n" + stats);