mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-09 23:39:40 +07:00
Treat all timed uniques as functioning as always true regardless of conditionals (#10940)
* Treat all timed uniques as functioning as always true regardless of conditionals * use replaceFirst instead of replace
This commit is contained in:
@ -65,6 +65,8 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
|
|||||||
|
|
||||||
fun conditionalsApply(state: StateForConditionals = StateForConditionals()): Boolean {
|
fun conditionalsApply(state: StateForConditionals = StateForConditionals()): Boolean {
|
||||||
if (state.ignoreConditionals) return true
|
if (state.ignoreConditionals) return true
|
||||||
|
// Always allow Timed conditional uniques. They are managed elsewhere
|
||||||
|
if (conditionals.any{ it.isOfType(UniqueType.ConditionalTimedUnique) }) return true
|
||||||
for (condition in conditionals) {
|
for (condition in conditionals) {
|
||||||
if (!conditionalApplies(condition, state)) return false
|
if (!conditionalApplies(condition, state)) return false
|
||||||
}
|
}
|
||||||
@ -478,7 +480,8 @@ class UniqueMap: HashMap<String, ArrayList<Unique>>() {
|
|||||||
class TemporaryUnique() : IsPartOfGameInfoSerialization {
|
class TemporaryUnique() : IsPartOfGameInfoSerialization {
|
||||||
|
|
||||||
constructor(uniqueObject: Unique, turns: Int) : this() {
|
constructor(uniqueObject: Unique, turns: Int) : this() {
|
||||||
unique = uniqueObject.text
|
val turnsText = uniqueObject.conditionals.first { it.isOfType(UniqueType.ConditionalTimedUnique) }.text
|
||||||
|
unique = uniqueObject.text.replaceFirst("<$turnsText>", "")
|
||||||
sourceObjectType = uniqueObject.sourceObjectType
|
sourceObjectType = uniqueObject.sourceObjectType
|
||||||
sourceObjectName = uniqueObject.sourceObjectName
|
sourceObjectName = uniqueObject.sourceObjectName
|
||||||
turnsLeft = turns
|
turnsLeft = turns
|
||||||
|
Reference in New Issue
Block a user