diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index 09471085d6..6347a6b623 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -855,6 +855,23 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + if (engineVersion < 20150426) + { + // Add DamageModifiers to TakeCover with a "Prone50Percent" default + // Add ProneTriggers to TakeCover with a "TriggerProne" default + if (node.Key == "TakeCover") + { + var percent = new MiniYamlNode("Prone50Percent", "50"); + var dictionary = new MiniYamlNode("DamageModifiers", ""); + dictionary.Value.Nodes.Add(percent); + + if (node.Value.Nodes.All(x => x.Key != "DamageModifiers")) + node.Value.Nodes.Add(dictionary); + + node.Value.Nodes.Add(new MiniYamlNode("DamageTriggers", "TriggerProne")); + } + } + UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); } } diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index 19eb076058..c98a30fe19 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -182,6 +182,9 @@ TargetTypes: Ground, Infantry TakeCover: SpeedModifier: 60 + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne RenderSprites: WithInfantryBody: WithDeathAnimation: diff --git a/mods/d2k/rules/defaults.yaml b/mods/d2k/rules/defaults.yaml index 4bea6b65c7..b6f13cbef3 100644 --- a/mods/d2k/rules/defaults.yaml +++ b/mods/d2k/rules/defaults.yaml @@ -192,6 +192,9 @@ RenderSprites: WithInfantryBody: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithDeathAnimation: AutoTarget: AttackMove: diff --git a/mods/d2k/rules/infantry.yaml b/mods/d2k/rules/infantry.yaml index 86b5aada13..5999966ab8 100644 --- a/mods/d2k/rules/infantry.yaml +++ b/mods/d2k/rules/infantry.yaml @@ -18,6 +18,9 @@ rifle: Weapon: LMG AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne AttractsWorms: Intensity: 120 @@ -72,6 +75,9 @@ bazooka: LocalOffset: 128,0,256 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne AttractsWorms: Intensity: 180 @@ -136,6 +142,9 @@ fremen: Weapon: Slung AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne Cloak: InitialDelay: 250 CloakDelay: 250 @@ -166,6 +175,9 @@ grenadier: FireDelay: 15 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle Explodes: @@ -195,6 +207,9 @@ sardaukar: RevealsShroud: Range: 6c0 TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne Armament@PRIMARY: Weapon: Vulcan Armament@SECONDARY: diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index 07c257071c..c5e247255a 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -54,6 +54,9 @@ E1: MuzzleSequence: garrison-muzzle AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 StandSequences: stand,stand2 @@ -86,6 +89,9 @@ E2: FireDelay: 15 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 StandSequences: stand,stand2 @@ -122,6 +128,9 @@ E3: Weapon: Dragon AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 StandSequences: stand,stand2 @@ -153,6 +162,9 @@ E4: Weapon: Flamer AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 StandSequences: stand,stand2 @@ -183,6 +195,9 @@ E6: ExternalCaptures: Type: building TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne -AutoTarget: WithInfantryBody: IdleSequences: idle1,idle2 @@ -214,6 +229,9 @@ SPY: Passenger: PipType: Yellow TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne Disguise: Infiltrates: Types: SpyInfiltrate @@ -275,6 +293,9 @@ E7: MuzzleSequence: garrison-muzzle AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 AnnounceOnBuild: @@ -310,6 +331,9 @@ MEDI: Cursor: heal OutsideRangeCursor: heal TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne -AutoTarget: WithInfantryBody: IdleSequences: idle1,idle2 @@ -347,6 +371,9 @@ MECH: Captures: CaptureTypes: husk TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne -AutoTarget: WithInfantryBody: IdleSequences: idle1,idle2 @@ -427,6 +454,9 @@ THF: Infiltrates: InfiltrateTypes: Cash TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne -AutoTarget: HIJACKER: @@ -485,6 +515,9 @@ SHOK: Weapon: PortaTesla AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 StandSequences: stand,stand2 @@ -521,6 +554,9 @@ SNIPER: MuzzleSequence: garrison-muzzle AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 StandSequences: stand,stand2 diff --git a/mods/ts/rules/civilian-infantry.yaml b/mods/ts/rules/civilian-infantry.yaml index 84dc35b694..998e22f6f8 100644 --- a/mods/ts/rules/civilian-infantry.yaml +++ b/mods/ts/rules/civilian-infantry.yaml @@ -19,6 +19,13 @@ WEEDGUY: AttackFrontal: WithInfantryBody: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne UMAGON: Inherits: ^Infantry @@ -42,6 +49,13 @@ UMAGON: Weapon: Sniper AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -62,6 +76,13 @@ CHAMSPY: Range: 9c0 Passenger: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne Disguise: Infiltrates: Types: SpyInfiltrate @@ -91,6 +112,13 @@ MUTANT: Weapon: Vulcan AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -115,6 +143,13 @@ MWMN: Weapon: Vulcan AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -139,6 +174,13 @@ MUTANT3: Weapon: Vulcan AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -160,6 +202,13 @@ TRATOS: RevealsShroud: Range: 4c0 TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne -AutoTarget: WithInfantryBody: IdleSequences: idle1,idle2 @@ -180,6 +229,13 @@ OXANNA: RevealsShroud: Range: 4c0 TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne -AutoTarget: WithInfantryBody: IdleSequences: idle1,idle2 @@ -200,6 +256,13 @@ SLAV: RevealsShroud: Range: 4c0 TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne -AutoTarget: WithInfantryBody: IdleSequences: idle1,idle2 @@ -310,3 +373,4 @@ CIV3: Armament: Weapon: Pistola AttackFrontal: + diff --git a/mods/ts/rules/gdi-infantry.yaml b/mods/ts/rules/gdi-infantry.yaml index c8a0fda091..50808a8910 100644 --- a/mods/ts/rules/gdi-infantry.yaml +++ b/mods/ts/rules/gdi-infantry.yaml @@ -21,6 +21,13 @@ E2: FireDelay: 5 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -48,6 +55,13 @@ MEDIC: Weapon: Heal AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 AttackSequence: heal @@ -84,6 +98,13 @@ JUMPJET: -Crushable: AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: GHOST: @@ -119,5 +140,13 @@ GHOST: C4Demolition: C4Delay: 45 TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 + diff --git a/mods/ts/rules/nod-infantry.yaml b/mods/ts/rules/nod-infantry.yaml index 65ad0a09d0..5312403718 100644 --- a/mods/ts/rules/nod-infantry.yaml +++ b/mods/ts/rules/nod-infantry.yaml @@ -21,6 +21,13 @@ E3: LocalOffset: 128,0,640 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -54,6 +61,13 @@ CYBORG: Weapon: Vulcan3 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -89,6 +103,13 @@ CYC2: LocalOffset: 170,85,683 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -118,5 +139,13 @@ MHIJACK: Range: 6c0 -AutoTarget: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 + diff --git a/mods/ts/rules/shared-infantry.yaml b/mods/ts/rules/shared-infantry.yaml index bf539e21cc..47c235b37a 100644 --- a/mods/ts/rules/shared-infantry.yaml +++ b/mods/ts/rules/shared-infantry.yaml @@ -26,6 +26,13 @@ E1: UpgradeMinEnabledLevel: 1 AttackFrontal: TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne WithInfantryBody: IdleSequences: idle1,idle2 @@ -57,4 +64,12 @@ ENGINEER: WithInfantryBody: IdleSequences: idle1,idle2 TakeCover: + DamageModifiers: + Prone50Percent: 50 + Prone60Percent: 60 + Prone70Percent: 70 + Prone100Percent: 100 + Prone350Percent: 350 + DamageTriggers: TriggerProne -GainsExperience: +