Skip to content

Commit

Permalink
First Kotlin change - FullStats and CivStats
Browse files Browse the repository at this point in the history
  • Loading branch information
yairm210 committed Feb 24, 2018
1 parent 9253c40 commit 49c0707
Show file tree
Hide file tree
Showing 12 changed files with 84 additions and 102 deletions.
1 change: 1 addition & 0 deletions core/src/com/unciv/logic/city/CityConstructions.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.unciv.models.gamebasics.GameBasics;
import com.unciv.models.stats.FullStats;


import java.util.HashMap;


Expand Down
6 changes: 3 additions & 3 deletions core/src/com/unciv/logic/city/CityInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -140,18 +140,18 @@ public boolean evaluate(String arg0) {
}

public FullStats getGreatPersonPoints(){
FullStats greatPersonPoints = population.getSpecialists().multiply(3);
FullStats greatPersonPoints = population.getSpecialists().times(3);

for(Building building : cityConstructions.getBuiltBuildings())
if(building.greatPersonPoints!=null)
greatPersonPoints.add(building.greatPersonPoints);

if(civInfo.getBuildingUniques().contains("GreatPersonGenerationIncrease"))
greatPersonPoints = greatPersonPoints.multiply(1.33f);
greatPersonPoints = greatPersonPoints.times(1.33f);
if(civInfo.policies.isAdopted("Entrepreneurship"))
greatPersonPoints.gold*=1.25;
if(civInfo.policies.isAdopted("Freedom"))
greatPersonPoints = greatPersonPoints.multiply(1.25f);
greatPersonPoints = greatPersonPoints.times(1.25f);

return greatPersonPoints;
}
Expand Down
4 changes: 2 additions & 2 deletions core/src/com/unciv/logic/map/TileInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ public Terrain getLastTerrain() {

public FullStats getTileStats(CityInfo city, CivilizationInfo observingCiv)
{
FullStats stats = new FullStats(getBaseTerrain());
FullStats stats = getBaseTerrain().clone();

if(terrainFeature !=null){
Terrain terrainFeature = getTerrainFeature();
if(terrainFeature.overrideStats) stats = new FullStats(terrainFeature);
if(terrainFeature.overrideStats) stats = terrainFeature.clone();
else stats.add(terrainFeature);
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/com/unciv/models/gamebasics/Building.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public Technology GetRequiredTech() {
public FullStats resourceBonusStats;

public FullStats getStats(Linq<String> adoptedPolicies){
FullStats stats = new FullStats(this);
FullStats stats = this.clone();
if (adoptedPolicies.contains("Organized Religion") &&
new Linq<String>("Monument","Temple","Monastery").contains(name))
stats.happiness+=1;
Expand Down
3 changes: 1 addition & 2 deletions core/src/com/unciv/models/gamebasics/Terrain.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.unciv.models.gamebasics;

import com.unciv.models.stats.FullStats;
import com.unciv.models.stats.NamedStats;

import java.util.Collection;
Expand Down Expand Up @@ -36,7 +35,7 @@ public class Terrain extends NamedStats implements ICivilopedia {

@Override
public String getDescription() {
return ""+new FullStats(this);
return ""+this.clone();
}
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/com/unciv/models/gamebasics/TileImprovement.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public int getTurnsToBuild(CivilizationInfo civInfo){
@Override
public String getDescription() {
StringBuilder stringBuilder = new StringBuilder();
if(!new FullStats(this).toString().isEmpty()) stringBuilder.append(new FullStats(this)+"\r\n");
if(!this.clone().toString().isEmpty()) stringBuilder.append(this.clone()+"\r\n");
if(!terrainsCanBeBuiltOn.isEmpty()) stringBuilder.append("Can be built on " + StringUtils.join(", ", terrainsCanBeBuiltOn));

HashMap<String,ArrayList<String>> statsToResourceNames = new HashMap<String, ArrayList<String>>();
Expand Down
2 changes: 1 addition & 1 deletion core/src/com/unciv/models/gamebasics/TileResource.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class TileResource extends NamedStats implements ICivilopedia {
@Override
public String getDescription() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(new FullStats(this)+"\r\n");
stringBuilder.append(this.clone()+"\r\n");
stringBuilder.append("Can be found on " + com.unciv.models.gamebasics.StringUtils.join(", ", terrainsCanBeFoundOn));
stringBuilder.append("\r\n\r\nImproved by "+ improvement +"\r\n");
stringBuilder.append("\r\nBonus stats for improvement: "+ improvementStats +"\r\n");
Expand Down
15 changes: 0 additions & 15 deletions core/src/com/unciv/models/stats/CivStats.java

This file was deleted.

15 changes: 15 additions & 0 deletions core/src/com/unciv/models/stats/CivStats.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.unciv.models.stats

open class CivStats {
@JvmField var gold = 0f
@JvmField var science = 0f
@JvmField var culture = 0f
@JvmField var happiness = 0f

fun add(other: CivStats) {
gold += other.gold
science += other.science
happiness += other.happiness
culture += other.culture
}
}
76 changes: 0 additions & 76 deletions core/src/com/unciv/models/stats/FullStats.java

This file was deleted.

58 changes: 58 additions & 0 deletions core/src/com/unciv/models/stats/FullStats.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.unciv.models.stats

import java.util.HashMap


open class FullStats : CivStats()
{
@JvmField var production: Float = 0f
@JvmField var food: Float = 0f

fun add(other: FullStats) {
production += other.production
food += other.food
super.add(other)
}

fun clone():FullStats {
val FS = FullStats()
FS.add(this)
return FS
}

fun getMinus(): FullStats {
val stats = FullStats()
stats.food = -food
stats.food = -food
stats.gold = -gold
stats.science = -science
stats.culture = -culture
stats.happiness = -happiness
return stats;
}

operator fun times(number: Float): FullStats{
val FS = FullStats()
FS.production = production * number
FS.food = food*number
FS.gold = gold*number
FS.science = science*number
FS.culture = culture*number
FS.happiness = happiness*number
return FS
}

override fun toString(): String {
return toDict().filter{it.value!=0}.map{it.key+": "+it.value}.joinToString(",")
}

fun toDict(): HashMap<String, Int> {
return hashMapOf("Production" to production.toInt(),
"Food" to food.toInt(),
"Gold" to gold.toInt(),
"Science" to science.toInt(),
"Culture" to culture.toInt()
)
}

}
2 changes: 1 addition & 1 deletion core/src/com/unciv/ui/cityscreen/BuildingsTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ private Image getSpecialistIcon(String imageName, final String building, final b
@Override
public void clicked(InputEvent event, float x, float y) {
CityInfo cityInfo = cityScreen.city;
if(isFilled) cityInfo.population.buildingsSpecialists.get(building).add(specialistType.minus()); //unassign
if(isFilled) cityInfo.population.buildingsSpecialists.get(building).add(specialistType.getMinus()); //unassign
else if(cityInfo.population.getFreePopulation()==0) return;
else {
if(!cityInfo.population.buildingsSpecialists.containsKey(building))
Expand Down

0 comments on commit 49c0707

Please sign in to comment.