mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-16 18:59:15 +07:00
Changed tech trigger to accept tech filters
This commit is contained in:
@ -301,8 +301,12 @@ class TechManager : IsPartOfGameInfoSerialization {
|
|||||||
if (!unique.hasTriggerConditional() && unique.conditionalsApply(StateForConditionals(civInfo)))
|
if (!unique.hasTriggerConditional() && unique.conditionalsApply(StateForConditionals(civInfo)))
|
||||||
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
||||||
|
|
||||||
|
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponResearchOld))
|
||||||
|
if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearchOld && it.params[0] == techName})
|
||||||
|
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
||||||
|
|
||||||
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponResearch))
|
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponResearch))
|
||||||
if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearch && it.params[0] == techName})
|
if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearch && newTech.matchesFilter(it.params[0]) })
|
||||||
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
||||||
|
|
||||||
|
|
||||||
|
@ -522,6 +522,24 @@ enum class UniqueParameterType(
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/** Implemented by [Technology.matchesFilter][com.unciv.models.ruleset.tech.Technology.matchesFilter] */
|
||||||
|
TechFilter("techFilter", "Agriculture") {
|
||||||
|
private val knownValues = setOf("All", "all")
|
||||||
|
|
||||||
|
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
|
||||||
|
UniqueType.UniqueParameterErrorSeverity? = getErrorSeverityForFilter(parameterText, ruleset)
|
||||||
|
|
||||||
|
override fun isKnownValue(parameterText: String, ruleset: Ruleset): Boolean {
|
||||||
|
if (parameterText in knownValues) return true
|
||||||
|
if (parameterText in ruleset.technologies) return true
|
||||||
|
if (parameterText in ruleset.eras) return true
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getTranslationWriterStringsForOutput() = knownValues
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
/** unused at the moment with vanilla rulesets */
|
/** unused at the moment with vanilla rulesets */
|
||||||
Specialist("specialist", "Merchant", "The name of any specialist") {
|
Specialist("specialist", "Merchant", "The name of any specialist") {
|
||||||
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
|
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
|
||||||
|
@ -83,7 +83,7 @@ enum class UniqueTarget(
|
|||||||
/** All targets that can display their Uniques */
|
/** All targets that can display their Uniques */
|
||||||
// As Array so it can used in a vararg parameter list.
|
// As Array so it can used in a vararg parameter list.
|
||||||
val Displayable = arrayOf(
|
val Displayable = arrayOf(
|
||||||
Building, Unit, UnitType, Improvement, Tech, FollowerBelief,
|
Building, Unit, UnitType, Improvement, Tech, FollowerBelief, FounderBelief,
|
||||||
Terrain, Resource, Policy, Promotion, Nation, Ruins, Speed
|
Terrain, Resource, Policy, Promotion, Nation, Ruins, Speed
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -775,7 +775,9 @@ enum class UniqueType(
|
|||||||
|
|
||||||
///////////////////////////////////////// region 10 TRIGGERS /////////////////////////////////////////
|
///////////////////////////////////////// region 10 TRIGGERS /////////////////////////////////////////
|
||||||
|
|
||||||
TriggerUponResearch("upon discovering [tech]", UniqueTarget.TriggerCondition),
|
TriggerUponResearch("upon discovering [techFilter] technology", UniqueTarget.TriggerCondition),
|
||||||
|
@Deprecated("as of 4.10.15", ReplaceWith("upon discovering [tech] technology"))
|
||||||
|
TriggerUponResearchOld("upon discovering [tech]", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponEnteringEra("upon entering the [era]", UniqueTarget.TriggerCondition),
|
TriggerUponEnteringEra("upon entering the [era]", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponAdoptingPolicyOrBelief("upon adopting [policy/belief]", UniqueTarget.TriggerCondition),
|
TriggerUponAdoptingPolicyOrBelief("upon adopting [policy/belief]", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponDeclaringWar("upon declaring war with a major Civilization", UniqueTarget.TriggerCondition),
|
TriggerUponDeclaringWar("upon declaring war with a major Civilization", UniqueTarget.TriggerCondition),
|
||||||
|
Reference in New Issue
Block a user