From 6e75245d253f551cb66d91e40f86e2df97fcbe70 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Wed, 6 Nov 2024 14:40:19 +0200 Subject: [PATCH] Example for automating golden age triggers (#12406) --- .../logic/automation/unit/CivilianUnitAutomation.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/automation/unit/CivilianUnitAutomation.kt b/core/src/com/unciv/logic/automation/unit/CivilianUnitAutomation.kt index 96f8e08253..d653188319 100644 --- a/core/src/com/unciv/logic/automation/unit/CivilianUnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/unit/CivilianUnitAutomation.kt @@ -104,8 +104,8 @@ object CivilianUnitAutomation { } // Great engineer -> Try to speed up wonder construction - if ((unit.hasUnique(UniqueType.CanSpeedupConstruction) - || unit.hasUnique(UniqueType.CanSpeedupWonderConstruction))) { + if (unit.hasUnique(UniqueType.CanSpeedupConstruction) + || unit.hasUnique(UniqueType.CanSpeedupWonderConstruction)) { val wonderCanBeSpedUpEventually = SpecificUnitAutomation.speedupWonderConstruction(unit) if (wonderCanBeSpedUpEventually) return @@ -139,6 +139,14 @@ object CivilianUnitAutomation { // ages? if (SpecificUnitAutomation.automateImprovementPlacer(unit)) return + + val goldenAgeAction = UnitActions.getUnitActions(unit, UnitActionType.TriggerUnique) + .filter { it.action != null && it.associatedUnique?.type in listOf(UniqueType.OneTimeEnterGoldenAge, + UniqueType.OneTimeEnterGoldenAgeTurns) }.firstOrNull() + if (goldenAgeAction != null) { + goldenAgeAction.action?.invoke() + return + } return // The AI doesn't know how to handle unknown civilian units }