Added 'upon declaring war' trigger

This commit is contained in:
Yair Morgenstern 2023-01-16 21:13:40 +02:00
parent cbd7f7ac5c
commit 2593c35e30
5 changed files with 12 additions and 3 deletions

View File

@ -93,7 +93,7 @@
"favouredReligion": "Taoism", "favouredReligion": "Taoism",
"uniqueName": "Art of War", "uniqueName": "Art of War",
"uniques": ["Great General provides double combat bonus", "[Great General] is earned [50]% faster", "uniques": ["Great General provides double combat bonus", "[Great General] is earned [50]% faster",
"Gain [1000] [Faith] <upon discovering [Philosophy]>"], "Gain [1000] [Faith] <upon declaring war>"],
"cities": ["Beijing","Shanghai","Guangzhou","Nanjing","Xian","Chengdu","Hangzhou","Tianjin","Macau","Shandong", "cities": ["Beijing","Shanghai","Guangzhou","Nanjing","Xian","Chengdu","Hangzhou","Tianjin","Macau","Shandong",
"Kaifeng","Ningbo","Baoding","Yangzhou","Harbin","Chongqing","Luoyang","Kunming","Taipei","Shenyang", "Kaifeng","Ningbo","Baoding","Yangzhou","Harbin","Chongqing","Luoyang","Kunming","Taipei","Shenyang",
"Taiyuan","Tainan","Dalian","Lijiang","Wuxi","Suzhou","Maoming","Shaoguan","Yangjiang","Heyuan","Huangshi", "Taiyuan","Tainan","Dalian","Lijiang","Wuxi","Suzhou","Maoming","Shaoguan","Yangjiang","Heyuan","Huangshi",

View File

@ -343,8 +343,7 @@ class TechManager : IsPartOfGameInfoSerialization {
UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo) UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo)
} }
val triggerableUniques = civInfo.getTriggeredUniques(UniqueType.TriggerUponResearch) for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponResearch))
for (unique in triggerableUniques)
if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearch && it.params[0] == techName}) if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearch && it.params[0] == techName})
UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo) UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo)
} }

View File

@ -14,6 +14,7 @@ import com.unciv.logic.trade.Trade
import com.unciv.logic.trade.TradeOffer import com.unciv.logic.trade.TradeOffer
import com.unciv.logic.trade.TradeType import com.unciv.logic.trade.TradeType
import com.unciv.models.ruleset.tile.ResourceSupplyList import com.unciv.models.ruleset.tile.ResourceSupplyList
import com.unciv.models.ruleset.unique.UniqueTriggerActivation
import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.ruleset.unique.UniqueType
import com.unciv.ui.utils.extensions.toPercent import com.unciv.ui.utils.extensions.toPercent
import kotlin.math.ceil import kotlin.math.ceil
@ -739,6 +740,11 @@ class DiplomacyManager() : IsPartOfGameInfoSerialization {
otherCivDiplomacy.totalOfScienceDuringRA = 0 otherCivDiplomacy.totalOfScienceDuringRA = 0
} }
otherCivDiplomacy.removeFlag(DiplomacyFlags.ResearchAgreement) otherCivDiplomacy.removeFlag(DiplomacyFlags.ResearchAgreement)
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponDeclaringWar))
UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo)
} }
/** Should only be called from makePeace */ /** Should only be called from makePeace */

View File

@ -700,6 +700,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
///////////////////////////////////////// region TRIGGERS ///////////////////////////////////////// ///////////////////////////////////////// region TRIGGERS /////////////////////////////////////////
TriggerUponResearch("upon discovering [tech]", UniqueTarget.TriggerCondition), TriggerUponResearch("upon discovering [tech]", UniqueTarget.TriggerCondition),
TriggerUponDeclaringWar("upon declaring war", UniqueTarget.TriggerCondition),
//endregion //endregion

View File

@ -1875,6 +1875,9 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
Applicable to: TriggerCondition Applicable to: TriggerCondition
??? example "upon declaring war"
Applicable to: TriggerCondition
*[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`.