AI 'found religion' takes the action from the list of unit actions, so player and AI ability to act are always the same

This commit is contained in:
Yair Morgenstern
2023-09-28 09:11:34 +03:00
parent 45db7ade2e
commit 2363269814
2 changed files with 9 additions and 9 deletions

View File

@ -629,7 +629,11 @@ object SpecificUnitAutomation {
return return
} }
UnitActionsReligion.getFoundReligionAction(unit)() val foundReligionAction = UnitActions.getUnitActions(unit)
.firstOrNull { it.type == UnitActionType.FoundReligion }
?.action ?: return
foundReligionAction()
} }
fun enhanceReligion(unit: MapUnit) { fun enhanceReligion(unit: MapUnit) {

View File

@ -19,15 +19,11 @@ object UnitActionsReligion {
if (!unit.civ.religionManager.mayFoundReligionAtAll(unit)) return if (!unit.civ.religionManager.mayFoundReligionAtAll(unit)) return
actionList += UnitAction( actionList += UnitAction(
UnitActionType.FoundReligion, UnitActionType.FoundReligion,
action = getFoundReligionAction(unit).takeIf { unit.civ.religionManager.mayFoundReligionNow(unit) } action = {
)
}
fun getFoundReligionAction(unit: MapUnit): () -> Unit {
return {
unit.civ.religionManager.foundReligion(unit) unit.civ.religionManager.foundReligion(unit)
unit.consume() unit.consume()
} }.takeIf { unit.civ.religionManager.mayFoundReligionNow(unit) }
)
} }
internal fun addEnhanceReligionAction(unit: MapUnit, actionList: ArrayList<UnitAction>) { internal fun addEnhanceReligionAction(unit: MapUnit, actionList: ArrayList<UnitAction>) {