mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-29 06:51:30 -04:00
Allow ai to spend money for building & unit.
This commit is contained in:
parent
53c0bbb0a3
commit
fa8c948c04
@ -2,6 +2,7 @@ package com.unciv.logic.city
|
|||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.unciv.logic.automation.Automation
|
import com.unciv.logic.automation.Automation
|
||||||
|
import com.unciv.logic.civilization.PlayerType
|
||||||
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.gamebasics.tr
|
import com.unciv.models.gamebasics.tr
|
||||||
@ -125,6 +126,11 @@ class CityConstructions {
|
|||||||
inProgressConstructions[currentConstruction] = inProgressConstructions[currentConstruction]!! + productionToAdd
|
inProgressConstructions[currentConstruction] = inProgressConstructions[currentConstruction]!! + productionToAdd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun canBePruchasedWithGold(construction: IConstruction): Boolean {
|
||||||
|
return construction !is SpecialConstruction &&
|
||||||
|
!(construction is Building && construction.isWonder)
|
||||||
|
}
|
||||||
|
|
||||||
fun nextTurn(cityStats: Stats) {
|
fun nextTurn(cityStats: Stats) {
|
||||||
var construction = getConstruction(currentConstruction)
|
var construction = getConstruction(currentConstruction)
|
||||||
if(construction is SpecialConstruction) return
|
if(construction is SpecialConstruction) return
|
||||||
@ -144,8 +150,15 @@ class CityConstructions {
|
|||||||
val productionCost = construction.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies)
|
val productionCost = construction.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies)
|
||||||
if (inProgressConstructions[currentConstruction]!! >= productionCost) {
|
if (inProgressConstructions[currentConstruction]!! >= productionCost) {
|
||||||
constructionComplete(construction)
|
constructionComplete(construction)
|
||||||
}
|
|
||||||
|
|
||||||
|
//allow ai spending money to purchase building & unit. Buying staff has slightly lower priority than buying tech.
|
||||||
|
while (cityInfo.civInfo.playerType == PlayerType.AI
|
||||||
|
&& cityInfo.population.population >= 5
|
||||||
|
&& canBePruchasedWithGold(getConstruction(currentConstruction))
|
||||||
|
&& cityInfo.civInfo.gold / 5 >= getConstruction(currentConstruction).getGoldCost(cityInfo.civInfo.policies.getAdoptedPolicies()) ) {
|
||||||
|
purchaseBuilding(currentConstruction)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun constructionComplete(construction: IConstruction) {
|
fun constructionComplete(construction: IConstruction) {
|
||||||
|
@ -8,6 +8,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table
|
|||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
||||||
import com.badlogic.gdx.utils.Align
|
import com.badlogic.gdx.utils.Align
|
||||||
import com.unciv.logic.city.CityInfo
|
import com.unciv.logic.city.CityInfo
|
||||||
|
import com.unciv.logic.city.IConstruction
|
||||||
import com.unciv.logic.city.SpecialConstruction
|
import com.unciv.logic.city.SpecialConstruction
|
||||||
import com.unciv.models.gamebasics.Building
|
import com.unciv.models.gamebasics.Building
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
@ -123,9 +124,7 @@ class ConstructionsTable(val cityScreen: CityScreen) : Table(CameraStageBaseScre
|
|||||||
|
|
||||||
row()
|
row()
|
||||||
val purchaseConstructionButton: TextButton
|
val purchaseConstructionButton: TextButton
|
||||||
if (construction !is SpecialConstruction &&
|
if (city.cityConstructions.canBePruchasedWithGold(construction)) {
|
||||||
!(construction is Building && construction.isWonder)) {
|
|
||||||
|
|
||||||
val buildingGoldCost = construction.getGoldCost(city.civInfo.policies.getAdoptedPolicies())
|
val buildingGoldCost = construction.getGoldCost(city.civInfo.policies.getAdoptedPolicies())
|
||||||
purchaseConstructionButton = TextButton("Buy for [$buildingGoldCost] gold".tr(), CameraStageBaseScreen.skin)
|
purchaseConstructionButton = TextButton("Buy for [$buildingGoldCost] gold".tr(), CameraStageBaseScreen.skin)
|
||||||
purchaseConstructionButton.onClick("coin") {
|
purchaseConstructionButton.onClick("coin") {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user