mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-22 10:54:19 -04:00
Added 'after which this unit is consumed' for units whose only purpose is limited actions
This commit is contained in:
parent
29982eba9e
commit
253c669ba9
@ -1610,7 +1610,7 @@
|
|||||||
"unitType": "Civilian",
|
"unitType": "Civilian",
|
||||||
"uniques": [
|
"uniques": [
|
||||||
"Can hurry technology research",
|
"Can hurry technology research",
|
||||||
"Can instantly construct a [Academy] improvement <[2] times>",
|
"Can instantly construct a [Academy] improvement <by consuming this unit>",
|
||||||
"Great Person - [Science]", "Unbuildable", "Uncapturable"],
|
"Great Person - [Science]", "Unbuildable", "Uncapturable"],
|
||||||
"movement": 2
|
"movement": 2
|
||||||
},
|
},
|
||||||
|
@ -511,6 +511,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
|||||||
UnitActionMovementCost("for [amount] movement", UniqueTarget.UnitActionModifier),
|
UnitActionMovementCost("for [amount] movement", UniqueTarget.UnitActionModifier),
|
||||||
UnitActionOnce("once", UniqueTarget.UnitActionModifier),
|
UnitActionOnce("once", UniqueTarget.UnitActionModifier),
|
||||||
UnitActionLimitedTimes("[amount] times", UniqueTarget.UnitActionModifier),
|
UnitActionLimitedTimes("[amount] times", UniqueTarget.UnitActionModifier),
|
||||||
|
UnitActionAfterWhichConsumed("after which this unit is consumed", UniqueTarget.UnitActionModifier),
|
||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
|
@ -704,6 +704,11 @@ object UnitActions {
|
|||||||
when (conditional.type){
|
when (conditional.type){
|
||||||
UniqueType.UnitActionConsumeUnit -> unit.consume()
|
UniqueType.UnitActionConsumeUnit -> unit.consume()
|
||||||
UniqueType.UnitActionLimitedTimes -> {
|
UniqueType.UnitActionLimitedTimes -> {
|
||||||
|
if (usagesLeft(unit, actionUnique) == 1
|
||||||
|
&& actionUnique.conditionals.any { it.type==UniqueType.UnitActionAfterWhichConsumed }) {
|
||||||
|
unit.consume()
|
||||||
|
continue
|
||||||
|
}
|
||||||
val usagesSoFar = unit.abilityToTimesUsed[actionUnique.placeholderText] ?: 0
|
val usagesSoFar = unit.abilityToTimesUsed[actionUnique.placeholderText] ?: 0
|
||||||
unit.abilityToTimesUsed[actionUnique.placeholderText] = usagesSoFar + 1
|
unit.abilityToTimesUsed[actionUnique.placeholderText] = usagesSoFar + 1
|
||||||
}
|
}
|
||||||
@ -736,12 +741,16 @@ object UnitActions {
|
|||||||
|
|
||||||
fun getSideEffectString(unit:MapUnit, actionUnique: Unique): String {
|
fun getSideEffectString(unit:MapUnit, actionUnique: Unique): String {
|
||||||
val effects = ArrayList<String>()
|
val effects = ArrayList<String>()
|
||||||
if (actionUnique.conditionals.any { it.type == UniqueType.UnitActionConsumeUnit }) effects += Fonts.death.toString()
|
|
||||||
else effects += getMovementPointsToUse(actionUnique).toString() + Fonts.movement
|
|
||||||
|
|
||||||
val maxUsages = getMaxUsages(actionUnique)
|
val maxUsages = getMaxUsages(actionUnique)
|
||||||
if (maxUsages!=null) effects += "${usagesLeft(unit, actionUnique)}/$maxUsages"
|
if (maxUsages!=null) effects += "${usagesLeft(unit, actionUnique)}/$maxUsages"
|
||||||
|
|
||||||
|
if (actionUnique.conditionals.any { it.type == UniqueType.UnitActionConsumeUnit }
|
||||||
|
|| actionUnique.conditionals.any { it.type == UniqueType.UnitActionAfterWhichConsumed } && usagesLeft(unit, actionUnique) == 1
|
||||||
|
) effects += Fonts.death.toString()
|
||||||
|
else effects += getMovementPointsToUse(actionUnique).toString() + Fonts.movement
|
||||||
|
|
||||||
|
|
||||||
return if (effects.isEmpty()) ""
|
return if (effects.isEmpty()) ""
|
||||||
else "(${effects.joinToString { it.tr() }})"
|
else "(${effects.joinToString { it.tr() }})"
|
||||||
}
|
}
|
||||||
|
@ -1983,11 +1983,17 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
|
|||||||
|
|
||||||
Applicable to: UnitActionModifier
|
Applicable to: UnitActionModifier
|
||||||
|
|
||||||
|
??? example "<once>"
|
||||||
|
Applicable to: UnitActionModifier
|
||||||
|
|
||||||
??? example "<[amount] times>"
|
??? example "<[amount] times>"
|
||||||
Example: "<[3] times>"
|
Example: "<[3] times>"
|
||||||
|
|
||||||
Applicable to: UnitActionModifier
|
Applicable to: UnitActionModifier
|
||||||
|
|
||||||
|
??? example "<after which this unit is consumed>"
|
||||||
|
Applicable to: UnitActionModifier
|
||||||
|
|
||||||
|
|
||||||
*[action]: An action that a unit can perform. Currently, there are only two actions part of this: 'Spread Religion' and 'Remove Foreign religions from your own cities'
|
*[action]: An action that a unit can perform. Currently, there are only two actions part of this: 'Spread Religion' and 'Remove Foreign religions from your own cities'
|
||||||
*[amount]: This indicates a whole number, possibly with a + or - sign, such as `2`, `+13`, or `-3`.
|
*[amount]: This indicates a whole number, possibly with a + or - sign, such as `2`, `+13`, or `-3`.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user