diff --git a/android/build.gradle b/android/build.gradle index d42d41e43a..e66d5994d5 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -21,8 +21,8 @@ android { applicationId "com.unciv.game" minSdkVersion 14 targetSdkVersion 26 - versionCode 124 - versionName "2.7.9.2" + versionCode 125 + versionName "2.7.10" } buildTypes { release { diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 3f7b91628a..13c0e712b5 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -92,7 +92,10 @@ class CityInfo { val resource = tileInfo.getTileResource() if(resource.revealedBy!=null && !civInfo.tech.isResearched(resource.revealedBy!!)) continue if (resource.improvement == tileInfo.improvement || tileInfo.isCityCenter()){ - if(resource.resourceType == ResourceType.Strategic) cityResources.add(resource, 2) + if(resource.resourceType == ResourceType.Strategic){ + if(civInfo.policies.isAdopted("Facism")) cityResources.add(resource, 4) + else cityResources.add(resource, 2) + } else cityResources.add(resource, 1) } @@ -102,6 +105,7 @@ class CityInfo { val resource = GameBasics.TileResources[building.requiredResource] cityResources.add(resource, -1) } + return cityResources } diff --git a/core/src/com/unciv/logic/city/CityStats.kt b/core/src/com/unciv/logic/city/CityStats.kt index 1507df5af7..c11defbadb 100644 --- a/core/src/com/unciv/logic/city/CityStats.kt +++ b/core/src/com/unciv/logic/city/CityStats.kt @@ -4,6 +4,8 @@ import com.unciv.logic.map.RoadStatus import com.unciv.logic.map.TileInfo import com.unciv.models.gamebasics.Building import com.unciv.models.gamebasics.GameBasics +import com.unciv.models.gamebasics.unit.BaseUnit +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.models.stats.Stat import com.unciv.models.stats.Stats @@ -187,10 +189,11 @@ class CityStats { private fun getStatPercentBonusesFromPolicies(policies: HashSet, cityConstructions: CityConstructions): Stats { val stats = Stats() + val currentConstruction = cityConstructions.getCurrentConstruction() if (policies.contains("Collective Rule") && cityInfo.isCapital() - && "Settler" == cityConstructions.currentConstruction) + && currentConstruction.name == "Settler") stats.production += 50f - if (policies.contains("Republic") && cityConstructions.getCurrentConstruction() is Building) + if (policies.contains("Republic") && currentConstruction is Building) stats.production += 5f if (policies.contains("Reformation") && cityConstructions.builtBuildings.any { GameBasics.Buildings[it]!!.isWonder }) stats.culture += 33f @@ -198,6 +201,8 @@ class CityStats { stats.gold += 25f if (policies.contains("Sovereignty") && cityInfo.civInfo.happiness >= 0) stats.science += 15f + if (policies.contains("Total War") && currentConstruction is BaseUnit && currentConstruction.unitType!=UnitType.Civilian ) + stats.production += 15f if (policies.contains("Aristocracy") && cityConstructions.getCurrentConstruction() is Building && (cityConstructions.getCurrentConstruction() as Building).isWonder) diff --git a/core/src/com/unciv/logic/map/TileMap.kt b/core/src/com/unciv/logic/map/TileMap.kt index 092f44dfec..20c258d884 100644 --- a/core/src/com/unciv/logic/map/TileMap.kt +++ b/core/src/com/unciv/logic/map/TileMap.kt @@ -81,9 +81,9 @@ class TileMap { if(tiles.any()) // tileList.addAll(tiles.values) - var topY=tileList.map { it.position.y.toInt() }.max()!! + val topY=tileList.map { it.position.y.toInt() }.max()!! bottomY= tileList.map { it.position.y.toInt() }.min()!! - var rightX=tileList.map { it.position.x.toInt() }.max()!! + val rightX=tileList.map { it.position.x.toInt() }.max()!! leftX = tileList.map { it.position.x.toInt() }.min()!! for(x in leftX..rightX){ diff --git a/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt b/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt index d2be30a57d..edf5f73243 100644 --- a/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt @@ -84,7 +84,9 @@ class BaseUnit : INamed, IConstruction, ICivilopedia { override fun getProductionCost(adoptedPolicies: HashSet): Int = cost override fun getGoldCost(adoptedPolicies: HashSet): Int { - return (Math.pow((30 * cost).toDouble(), 0.75) * (1 + hurryCostModifier / 100) / 10).toInt() * 10 + var cost = Math.pow((30 * cost).toDouble(), 0.75) * (1 + hurryCostModifier / 100) + if(adoptedPolicies.contains("Militarism")) cost *= 0.66f + return (cost / 10).toInt() * 10 // rounded down o nearest ten } fun isBuildable(civInfo:CivilizationInfo): Boolean { @@ -104,6 +106,8 @@ class BaseUnit : INamed, IConstruction, ICivilopedia { override fun postBuildEvent(construction: CityConstructions) { val unit = construction.cityInfo.civInfo.placeUnitNearTile(construction.cityInfo.location, name) unit.promotions.XP += construction.getBuiltBuildings().sumBy { it.xpForNewUnits } + if(construction.cityInfo.civInfo.policies.isAdopted("Total War")) + unit.promotions.XP += 15 } fun getUpgradeUnit(civInfo: CivilizationInfo):BaseUnit{