mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-13 09:18:43 +07:00
Added 'trigger upon promotion', 'trigger upon conquering city' unit trigger
This commit is contained in:
@ -557,7 +557,7 @@ object Battle {
|
|||||||
for (airUnit in airUnits.toList()) airUnit.destroy()
|
for (airUnit in airUnits.toList()) airUnit.destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
val stateForConditionals = StateForConditionals(civInfo = attackerCiv, unit = attacker.unit, ourCombatant = attacker, attackedTile = city.getCenterTile())
|
val stateForConditionals = StateForConditionals(civInfo = attackerCiv, city=city, unit = attacker.unit, ourCombatant = attacker, attackedTile = city.getCenterTile())
|
||||||
for (unique in attacker.getMatchingUniques(UniqueType.CaptureCityPlunder, stateForConditionals, true)) {
|
for (unique in attacker.getMatchingUniques(UniqueType.CaptureCityPlunder, stateForConditionals, true)) {
|
||||||
attackerCiv.addStat(
|
attackerCiv.addStat(
|
||||||
Stat.valueOf(unique.params[2]),
|
Stat.valueOf(unique.params[2]),
|
||||||
@ -584,9 +584,8 @@ object Battle {
|
|||||||
if (attackerCiv.isCurrentPlayer())
|
if (attackerCiv.isCurrentPlayer())
|
||||||
UncivGame.Current.settings.addCompletedTutorialTask("Conquer a city")
|
UncivGame.Current.settings.addCompletedTutorialTask("Conquer a city")
|
||||||
|
|
||||||
for (unique in attackerCiv.getTriggeredUniques(UniqueType.TriggerUponConqueringCity,
|
for (unique in attackerCiv.getTriggeredUniques(UniqueType.TriggerUponConqueringCity, stateForConditionals)
|
||||||
StateForConditionals(attackerCiv, city, attacker.unit, attackedTile = city.getCenterTile() )
|
+ attacker.unit.getTriggeredUniques(UniqueType.TriggerUponConqueringCity, stateForConditionals))
|
||||||
))
|
|
||||||
UniqueTriggerActivation.triggerCivwideUnique(unique, attackerCiv, city)
|
UniqueTriggerActivation.triggerCivwideUnique(unique, attackerCiv, city)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +64,9 @@ class UnitPromotions : IsPartOfGameInfoSerialization {
|
|||||||
if (!isFree) {
|
if (!isFree) {
|
||||||
XP -= xpForNextPromotion()
|
XP -= xpForNextPromotion()
|
||||||
numberOfPromotions++
|
numberOfPromotions++
|
||||||
|
|
||||||
|
for (unique in unit.getTriggeredUniques(UniqueType.TriggerUponPromotion))
|
||||||
|
UniqueTriggerActivation.triggerUnitwideUnique(unique, unit)
|
||||||
}
|
}
|
||||||
|
|
||||||
val ruleset = unit.civ.gameInfo.ruleset
|
val ruleset = unit.civ.gameInfo.ruleset
|
||||||
|
@ -714,7 +714,8 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
|||||||
TriggerUponDeclaringWar("upon declaring war with a major Civilization", UniqueTarget.TriggerCondition),
|
TriggerUponDeclaringWar("upon declaring war with a major Civilization", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponDeclaringFriendship("upon declaring friendship", UniqueTarget.TriggerCondition),
|
TriggerUponDeclaringFriendship("upon declaring friendship", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponEnteringGoldenAge("upon entering a Golden Age", UniqueTarget.TriggerCondition),
|
TriggerUponEnteringGoldenAge("upon entering a Golden Age", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponConqueringCity("upon conquering a city", UniqueTarget.TriggerCondition),
|
/** Can be placed upon both units and as global */
|
||||||
|
TriggerUponConqueringCity("upon conquering a city", UniqueTarget.TriggerCondition, UniqueTarget.UnitTriggerable),
|
||||||
TriggerUponFoundingCity("upon founding a city", UniqueTarget.TriggerCondition),
|
TriggerUponFoundingCity("upon founding a city", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponDiscoveringNaturalWonder("upon discovering a Natural Wonder", UniqueTarget.TriggerCondition),
|
TriggerUponDiscoveringNaturalWonder("upon discovering a Natural Wonder", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponConstructingBuilding("upon constructing [buildingFilter]", UniqueTarget.TriggerCondition),
|
TriggerUponConstructingBuilding("upon constructing [buildingFilter]", UniqueTarget.TriggerCondition),
|
||||||
@ -732,7 +733,8 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
|||||||
///////////////////////////////////////// region UNIT TRIGGERS /////////////////////////////////////////
|
///////////////////////////////////////// region UNIT TRIGGERS /////////////////////////////////////////
|
||||||
|
|
||||||
TriggerUponDefeatingUnit("upon defeating a [mapUnitFilter] unit", UniqueTarget.UnitTriggerCondition),
|
TriggerUponDefeatingUnit("upon defeating a [mapUnitFilter] unit", UniqueTarget.UnitTriggerCondition),
|
||||||
TriggerUponDefeat("upon defeat", UniqueTarget.UnitTriggerCondition),
|
TriggerUponDefeat("upon being defeated", UniqueTarget.UnitTriggerCondition),
|
||||||
|
TriggerUponPromotion("upon being promoted", UniqueTarget.UnitTriggerCondition),
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user