mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 13:27:22 -04: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()
|
state.ourCombatant != null && state.ourCombatant.getHealth() < condition.params[0].toInt()
|
||||||
UniqueType.ConditionalHasNotUsedOtherActions ->
|
UniqueType.ConditionalHasNotUsedOtherActions ->
|
||||||
state.unit != null &&
|
state.unit != null &&
|
||||||
|
// OLD format
|
||||||
state.unit.run { limitedActionsUnitCanDo().all { abilityUsesLeft[it] == maxAbilityUses[it] } }
|
state.unit.run { limitedActionsUnitCanDo().all { abilityUsesLeft[it] == maxAbilityUses[it] } }
|
||||||
|
// NEW format
|
||||||
|
&& state.unit.abilityToTimesUsed.isEmpty()
|
||||||
|
|
||||||
UniqueType.ConditionalInTiles ->
|
UniqueType.ConditionalInTiles ->
|
||||||
relevantTile?.matchesFilter(condition.params[0], state.civInfo) == true
|
relevantTile?.matchesFilter(condition.params[0], state.civInfo) == true
|
||||||
|
@ -751,8 +751,7 @@ object UnitActions {
|
|||||||
val extraTimes = unit.getMatchingUniques(actionUnique.type!!)
|
val extraTimes = unit.getMatchingUniques(actionUnique.type!!)
|
||||||
.filter { it.text.removeConditionals() == actionUnique.text.removeConditionals() }
|
.filter { it.text.removeConditionals() == actionUnique.text.removeConditionals() }
|
||||||
.flatMap { unique -> unique.conditionals.filter { it.type == UniqueType.UnitActionExtraLimitedTimes } }
|
.flatMap { unique -> unique.conditionals.filter { it.type == UniqueType.UnitActionExtraLimitedTimes } }
|
||||||
.map { it.params[0].toInt() }
|
.sumOf { it.params[0].toInt() }
|
||||||
.sum()
|
|
||||||
|
|
||||||
val times = actionUnique.conditionals
|
val times = actionUnique.conditionals
|
||||||
.filter { it.type == UniqueType.UnitActionLimitedTimes }
|
.filter { it.type == UniqueType.UnitActionLimitedTimes }
|
||||||
|
@ -15,7 +15,8 @@ object UnitActionsGreatPerson {
|
|||||||
|
|
||||||
internal fun addGreatPersonActions(unit: MapUnit, actionList: ArrayList<UnitAction>, tile: Tile) {
|
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 -> {
|
UniqueType.CanHurryResearch -> {
|
||||||
actionList += UnitAction(
|
actionList += UnitAction(
|
||||||
UnitActionType.HurryResearch,
|
UnitActionType.HurryResearch,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user