Added 'upon ending turn in tile' unit trigger

This commit is contained in:
Yair Morgenstern
2023-02-26 23:41:09 +02:00
parent ec1b2b5077
commit 8361d68452
3 changed files with 15 additions and 3 deletions

View File

@ -6,6 +6,7 @@ import com.unciv.logic.civilization.LocationAction
import com.unciv.logic.civilization.NotificationCategory
import com.unciv.logic.civilization.NotificationIcon
import com.unciv.logic.map.tile.RoadStatus
import com.unciv.models.ruleset.unique.UniqueTriggerActivation
import com.unciv.models.ruleset.unique.UniqueType
class UnitTurnManager(val unit: MapUnit) {
@ -56,6 +57,11 @@ class UnitTurnManager(val unit: MapUnit) {
doTerrainDamage()
unit.addMovementMemory()
for (unique in unit.getTriggeredUniques(UniqueType.TriggerUponEndingTurnInTile))
if (unique.conditionals.any { it.type == UniqueType.TriggerUponEndingTurnInTile
&& unit.getTile().matchesFilter(it.params[0]) })
UniqueTriggerActivation.triggerUnitwideUnique(unique, unit)
}

View File

@ -736,6 +736,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
TriggerUponDefeat("upon being defeated", UniqueTarget.UnitTriggerCondition),
TriggerUponPromotion("upon being promoted", UniqueTarget.UnitTriggerCondition),
TriggerUponLosingHealth("upon losing at least [amount] HP in a single attack", UniqueTarget.UnitTriggerCondition),
TriggerUponEndingTurnInTile("upon ending a turn in a [tileFilter] tile", UniqueTarget.UnitTriggerCondition),
//endregion