mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-20 04:38:18 +07:00
Add option to Enable/Disable unit upgrades for automated units (#9941)
* Add option to enable/disable unit upgrades for automated units * Add automated unit upgrade String to template.properties * Change check for isPlayer to isHuman when performing upgrades for automated units
This commit is contained in:
@ -767,6 +767,7 @@ Auto-assign city production =
|
|||||||
Auto-build roads =
|
Auto-build roads =
|
||||||
Automated workers replace improvements =
|
Automated workers replace improvements =
|
||||||
Automated units move on turn start =
|
Automated units move on turn start =
|
||||||
|
Automated units can upgrade =
|
||||||
Order trade offers by amount =
|
Order trade offers by amount =
|
||||||
Ask for confirmation when pressing next turn =
|
Ask for confirmation when pressing next turn =
|
||||||
Notifications log max turns =
|
Notifications log max turns =
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.unciv.logic.automation.unit
|
package com.unciv.logic.automation.unit
|
||||||
|
|
||||||
import com.unciv.Constants
|
import com.unciv.Constants
|
||||||
|
import com.unciv.UncivGame
|
||||||
import com.unciv.logic.automation.Automation
|
import com.unciv.logic.automation.Automation
|
||||||
import com.unciv.logic.automation.civilization.NextTurnAutomation
|
import com.unciv.logic.automation.civilization.NextTurnAutomation
|
||||||
import com.unciv.logic.battle.Battle
|
import com.unciv.logic.battle.Battle
|
||||||
@ -17,6 +18,7 @@ import com.unciv.logic.civilization.managers.ReligionState
|
|||||||
import com.unciv.logic.map.mapunit.MapUnit
|
import com.unciv.logic.map.mapunit.MapUnit
|
||||||
import com.unciv.logic.map.tile.Tile
|
import com.unciv.logic.map.tile.Tile
|
||||||
import com.unciv.models.UnitActionType
|
import com.unciv.models.UnitActionType
|
||||||
|
import com.unciv.models.metadata.GameSettings
|
||||||
import com.unciv.models.ruleset.unique.UniqueType
|
import com.unciv.models.ruleset.unique.UniqueType
|
||||||
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActions
|
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActions
|
||||||
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActionsPillage
|
import com.unciv.ui.screens.worldscreen.unit.actions.UnitActionsPillage
|
||||||
@ -128,6 +130,8 @@ object UnitAutomation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun tryUpgradeUnit(unit: MapUnit): Boolean {
|
internal fun tryUpgradeUnit(unit: MapUnit): Boolean {
|
||||||
|
val isHuman = unit.civ.isHuman()
|
||||||
|
if (!UncivGame.Current.settings.automatedUnitsCanUpgrade && isHuman) return false
|
||||||
if (unit.baseUnit.upgradesTo == null) return false
|
if (unit.baseUnit.upgradesTo == null) return false
|
||||||
val upgradedUnit = unit.upgrade.getUnitToUpgradeTo()
|
val upgradedUnit = unit.upgrade.getUnitToUpgradeTo()
|
||||||
if (!upgradedUnit.isBuildable(unit.civ)) return false // for resource reasons, usually
|
if (!upgradedUnit.isBuildable(unit.civ)) return false // for resource reasons, usually
|
||||||
|
@ -71,6 +71,7 @@ class GameSettings {
|
|||||||
var autoBuildingRoads: Boolean = true
|
var autoBuildingRoads: Boolean = true
|
||||||
var automatedWorkersReplaceImprovements = true
|
var automatedWorkersReplaceImprovements = true
|
||||||
var automatedUnitsMoveOnTurnStart: Boolean = false
|
var automatedUnitsMoveOnTurnStart: Boolean = false
|
||||||
|
var automatedUnitsCanUpgrade: Boolean = true
|
||||||
|
|
||||||
var showMinimap: Boolean = true
|
var showMinimap: Boolean = true
|
||||||
var minimapSize: Int = 6 // default corresponds to 15% screen space
|
var minimapSize: Int = 6 // default corresponds to 15% screen space
|
||||||
|
@ -42,6 +42,11 @@ fun gameplayTab(
|
|||||||
"Automated units move on turn start",
|
"Automated units move on turn start",
|
||||||
settings.automatedUnitsMoveOnTurnStart, true
|
settings.automatedUnitsMoveOnTurnStart, true
|
||||||
) { settings.automatedUnitsMoveOnTurnStart = it }
|
) { settings.automatedUnitsMoveOnTurnStart = it }
|
||||||
|
optionsPopup.addCheckbox(
|
||||||
|
this,
|
||||||
|
"Automated units can upgrade",
|
||||||
|
settings.automatedUnitsCanUpgrade, true
|
||||||
|
) { settings.automatedUnitsCanUpgrade = it }
|
||||||
optionsPopup.addCheckbox(this, "Order trade offers by amount", settings.orderTradeOffersByAmount) { settings.orderTradeOffersByAmount = it }
|
optionsPopup.addCheckbox(this, "Order trade offers by amount", settings.orderTradeOffersByAmount) { settings.orderTradeOffersByAmount = it }
|
||||||
optionsPopup.addCheckbox(this, "Ask for confirmation when pressing next turn", settings.confirmNextTurn) { settings.confirmNextTurn = it }
|
optionsPopup.addCheckbox(this, "Ask for confirmation when pressing next turn", settings.confirmNextTurn) { settings.confirmNextTurn = it }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user