mirror of
https://github.com/yairm210/Unciv.git
synced 2025-03-13 11:30:31 +07:00
"if it hasn't used other actions yet" conditional works with new limited unit actions ("<[amount] times>") - paves the way for real deprecation of religion action shenanigans
This commit is contained in:
parent
2363269814
commit
6ffe13e780
@ -249,7 +249,10 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
|
||||
state.ourCombatant != null && state.ourCombatant.getHealth() < condition.params[0].toInt()
|
||||
UniqueType.ConditionalHasNotUsedOtherActions ->
|
||||
state.unit != null &&
|
||||
// OLD format
|
||||
state.unit.run { limitedActionsUnitCanDo().all { abilityUsesLeft[it] == maxAbilityUses[it] } }
|
||||
// NEW format
|
||||
&& state.unit.abilityToTimesUsed.isEmpty()
|
||||
|
||||
UniqueType.ConditionalInTiles ->
|
||||
relevantTile?.matchesFilter(condition.params[0], state.civInfo) == true
|
||||
|
@ -751,8 +751,7 @@ object UnitActions {
|
||||
val extraTimes = unit.getMatchingUniques(actionUnique.type!!)
|
||||
.filter { it.text.removeConditionals() == actionUnique.text.removeConditionals() }
|
||||
.flatMap { unique -> unique.conditionals.filter { it.type == UniqueType.UnitActionExtraLimitedTimes } }
|
||||
.map { it.params[0].toInt() }
|
||||
.sum()
|
||||
.sumOf { it.params[0].toInt() }
|
||||
|
||||
val times = actionUnique.conditionals
|
||||
.filter { it.type == UniqueType.UnitActionLimitedTimes }
|
||||
|
@ -15,7 +15,8 @@ object UnitActionsGreatPerson {
|
||||
|
||||
internal fun addGreatPersonActions(unit: MapUnit, actionList: ArrayList<UnitAction>, tile: Tile) {
|
||||
|
||||
if (unit.currentMovement > 0) for (unique in unit.getUniques()) when (unique.type) {
|
||||
if (unit.currentMovement <= 0) return
|
||||
for (unique in unit.getUniques()) when (unique.type) {
|
||||
UniqueType.CanHurryResearch -> {
|
||||
actionList += UnitAction(
|
||||
UnitActionType.HurryResearch,
|
||||
|
Loading…
Reference in New Issue
Block a user