mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-22 10:54:19 -04:00
Added percent bonuses
Fixed crash when we ran out of tiles to assign people to in cities
This commit is contained in:
parent
ec5a201853
commit
45a791d186
@ -133,13 +133,23 @@ public class CityBuildings
|
||||
public FullStats getStats()
|
||||
{
|
||||
FullStats stats = new FullStats();
|
||||
for (String building : builtBuildings)
|
||||
{
|
||||
Building gameBuilding = getGameBuilding(building);
|
||||
stats.add(gameBuilding);
|
||||
//if (gameBuilding.GetFlatBonusStats != null) stats.add(gameBuilding.GetFlatBonusStats(cityInfo));
|
||||
stats.gold -= gameBuilding.maintainance;
|
||||
for( Building building : getBuiltBuildings()) stats.add(building);
|
||||
return stats;
|
||||
}
|
||||
|
||||
public int getMaintainanceCosts(){
|
||||
int maintainanceTotal = 0;
|
||||
for( Building building : getBuiltBuildings()) maintainanceTotal+=building.maintainance;
|
||||
return maintainanceTotal;
|
||||
}
|
||||
|
||||
public FullStats getStatPercentBonuses(){
|
||||
|
||||
FullStats stats = new FullStats();
|
||||
for(Building building : getBuiltBuildings())
|
||||
if(building.percentStatBonus != null)
|
||||
stats.add(building.percentStatBonus);
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
|
@ -117,6 +117,15 @@ public class CityInfo {
|
||||
|
||||
stats.add(cityBuildings.getStats());
|
||||
|
||||
FullStats statPercentBonuses = cityBuildings.getStatPercentBonuses();
|
||||
stats.food*=1+statPercentBonuses.food/100;
|
||||
stats.gold*=1+statPercentBonuses.gold/100;
|
||||
stats.production*=1+statPercentBonuses.production/100;
|
||||
stats.science*=1+statPercentBonuses.science/100;
|
||||
stats.culture*=1+statPercentBonuses.culture/100;
|
||||
|
||||
stats.gold-=cityBuildings.getMaintainanceCosts(); // this is AFTER the bonus calculation!
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
@ -192,6 +201,8 @@ public class CityInfo {
|
||||
toWork = tileInfo;
|
||||
}
|
||||
}
|
||||
|
||||
if(toWork!=null) // This is when we've run out of tiles!
|
||||
toWork.workingCity = name;
|
||||
}
|
||||
|
||||
|
@ -200,12 +200,12 @@ public class CityScreen extends CameraStageBaseScreen {
|
||||
HashMap<String,String> CityStatsValues = new LinkedHashMap<String, String>();
|
||||
CityStatsValues.put("production",Math.round(stats.production) +"");
|
||||
CityStatsValues.put("food",Math.round(stats.food)
|
||||
+" ("+cityInfo.cityPopulation.FoodStored+"/"+cityInfo.cityPopulation.FoodToNextPopulation()+")");
|
||||
+" ("+cityInfo.foodStored+"/"+cityInfo.foodToNextPopulation()+")");
|
||||
CityStatsValues.put("gold",Math.round(stats.gold) +"");
|
||||
CityStatsValues.put("science",Math.round(stats.science) +"");
|
||||
CityStatsValues.put("culture",Math.round(stats.culture)
|
||||
+" ("+cityInfo.cultureStored+"/"+cityInfo.getCultureToNextTile()+")");
|
||||
CityStatsValues.put("Population",cityInfo.getFreePopulation()+"/"+cityInfo.cityPopulation.Population);
|
||||
CityStatsValues.put("Population",cityInfo.getFreePopulation()+"/"+cityInfo.population);
|
||||
|
||||
for(String key : CityStatsValues.keySet()){
|
||||
CityStatsTable.add(ImageGetter.getStatIcon(key)).align(Align.right);
|
||||
|
@ -60,7 +60,7 @@ public class WorldTileGroup extends TileGroup {
|
||||
setZIndex(getParent().getChildren().size); // so this tile is rendered over neighboing tiles
|
||||
}
|
||||
|
||||
String cityButtonText = city.name +" ("+city.cityPopulation.Population+")"
|
||||
String cityButtonText = city.name +" ("+city.population+")"
|
||||
+ "\r\n" + city.cityBuildings.currentBuilding + " in "
|
||||
+ city.cityBuildings.turnsToBuilding(city.cityBuildings.currentBuilding);
|
||||
TextButton button = cityButton.getActor();
|
||||
|
@ -40,4 +40,5 @@ public class FullStats extends CivStats // also used for hex stats, since it's b
|
||||
return valuableParts.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user