Fixed bugs

This commit is contained in:
Yair Morgenstern 2017-12-26 21:50:47 +02:00
parent 367f294774
commit 39ea64b870
5 changed files with 13 additions and 10 deletions

View File

@ -23,7 +23,6 @@ public class CityConstructions
public CityConstructions(CityInfo cityInfo) public CityConstructions(CityInfo cityInfo)
{ {
cityLocation = cityInfo.cityLocation; cityLocation = cityInfo.cityLocation;
chooseNextConstruction();
} }
public LinqCollection<String> builtBuildings = new LinqCollection<String>(); public LinqCollection<String> builtBuildings = new LinqCollection<String>();
@ -84,7 +83,7 @@ public class CityConstructions
} }
private void chooseNextConstruction() { void chooseNextConstruction() {
currentConstruction = getBuildableBuildings().first(new Predicate<String>() { currentConstruction = getBuildableBuildings().first(new Predicate<String>() {
@Override @Override
public boolean evaluate(String arg0) { public boolean evaluate(String arg0) {

View File

@ -57,12 +57,12 @@ public class CityInfo {
CityInfo(CivilizationInfo civInfo, Vector2 cityLocation) { CityInfo(CivilizationInfo civInfo, Vector2 cityLocation) {
name = CityNames[civInfo.cities.size()]; name = CityNames[civInfo.cities.size()];
this.cityLocation = cityLocation; this.cityLocation = cityLocation;
civInfo.cities.add(this);
cityConstructions = new CityConstructions(this); cityConstructions = new CityConstructions(this);
if(civInfo.cities.size()==0) { if(civInfo.cities.size()==0) {
cityConstructions.builtBuildings.add("Palace"); cityConstructions.builtBuildings.add("Palace");
cityConstructions.currentConstruction = "Worker"; // Default for first city only! cityConstructions.currentConstruction = "Worker"; // Default for first city only!
} }
civInfo.cities.add(this);
for(TileInfo tileInfo : civInfo.tileMap.getTilesInDistance(cityLocation,1)) { for(TileInfo tileInfo : civInfo.tileMap.getTilesInDistance(cityLocation,1)) {
tileInfo.owner = civInfo.civName; tileInfo.owner = civInfo.civName;
@ -194,8 +194,8 @@ public class CityInfo {
statPercentBonuses.science+=15; statPercentBonuses.science+=15;
stats.production*=1+statPercentBonuses.production/100; // So they get bonuses for production and gold/science stats.production*=1+statPercentBonuses.production/100; // So they get bonuses for production and gold/science
if(cityConstructions.currentConstruction.equals("Gold")) stats.gold+=stats.production/4; if("Gold".equals(cityConstructions.currentConstruction)) stats.gold+=stats.production/4;
if(cityConstructions.currentConstruction.equals("Science")) { if("Science".equals(cityConstructions.currentConstruction)) {
float scienceProduced=stats.production/4; float scienceProduced=stats.production/4;
if (civInfo.getBuildingUniques().contains("ScienceConversionIncrease")) if (civInfo.getBuildingUniques().contains("ScienceConversionIncrease"))
scienceProduced*=1.33; scienceProduced*=1.33;

View File

@ -52,7 +52,8 @@ public class CivilizationInfo {
} }
public void addCity(Vector2 location){ public void addCity(Vector2 location){
new CityInfo(this,location); CityInfo newCity = new CityInfo(this,location);
newCity.cityConstructions.chooseNextConstruction();
} }
public CityInfo getCapital(){ public CityInfo getCapital(){
@ -151,11 +152,13 @@ public class CivilizationInfo {
int transportationUpkeep = 0; int transportationUpkeep = 0;
for(TileInfo tile : tileMap.values()) { for(TileInfo tile : tileMap.values()) {
if(tile.isCityCenter()) continue;
if (tile.roadStatus == RoadStatus.Road) transportationUpkeep+=1; if (tile.roadStatus == RoadStatus.Road) transportationUpkeep+=1;
else if(tile.roadStatus == RoadStatus.Railroad) transportationUpkeep+=2; else if(tile.roadStatus == RoadStatus.Railroad) transportationUpkeep+=2;
} }
if(policies.contains("Trade Unions")) transportationUpkeep *= 2/3f; if(policies.contains("Trade Unions")) transportationUpkeep *= 2/3f;
statsForTurn.gold -=transportationUpkeep; statsForTurn.gold -=transportationUpkeep;
if(policies.contains("Mandate Of Heaven")) if(policies.contains("Mandate Of Heaven"))
statsForTurn.culture+=getHappinessForNextTurn()/2; statsForTurn.culture+=getHappinessForNextTurn()/2;
return statsForTurn; return statsForTurn;

View File

@ -96,7 +96,7 @@ public class CityScreen extends CameraStageBaseScreen {
private Image getSpecialistIcon(String imageName, final boolean isFilled, final FullStats specialistType) { private Image getSpecialistIcon(String imageName, final boolean isFilled, final FullStats specialistType) {
Image specialist = ImageGetter.getImage(imageName); Image specialist = ImageGetter.getImage(imageName);
specialist.setSize(20,20); specialist.setSize(30,30);
if(!isFilled) specialist.setColor(Color.GRAY); if(!isFilled) specialist.setColor(Color.GRAY);
specialist.addListener(new ClickListener(){ specialist.addListener(new ClickListener(){
@Override @Override

View File

@ -261,10 +261,11 @@ public class WorldScreen extends CameraStageBaseScreen {
Label happinessLabel = new Label(happinessText, skin); Label happinessLabel = new Label(happinessText, skin);
happinessLabel.setAlignment(Align.center); happinessLabel.setAlignment(Align.center);
civTable.add(happinessLabel); civTable.add(happinessLabel);
String cultureString = "Culture: " + Math.round(currentStats.culture) + "(+" + Math.round(nextTurnStats.culture) +")\r\n" String cultureString = "Culture: " + "+" + Math.round(nextTurnStats.culture) +"\r\n"
+"("+ ((int) game.civInfo.civStats.culture)+"/"+game.civInfo.getCultureNeededForNextPolicy()+")"; +"("+ ((int) game.civInfo.civStats.culture)+"/"+game.civInfo.getCultureNeededForNextPolicy()+")";
Label cultureLabel = new Label(cultureString, skin);
civTable.add(new Label(cultureString, skin)); cultureLabel.setAlignment(Align.center);
civTable.add(cultureLabel);
civTable.pack(); civTable.pack();