From 30103da2db58b8fba09b45b6d9dfbb7049a2c449 Mon Sep 17 00:00:00 2001 From: TheChosenEvilOne Date: Fri, 9 Nov 2018 10:20:49 +0200 Subject: [PATCH] Conditional TakeCover --- OpenRA.Mods.Common/Traits/Infantry/TakeCover.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Infantry/TakeCover.cs b/OpenRA.Mods.Common/Traits/Infantry/TakeCover.cs index 4d8c15ec52..a95a701be9 100644 --- a/OpenRA.Mods.Common/Traits/Infantry/TakeCover.cs +++ b/OpenRA.Mods.Common/Traits/Infantry/TakeCover.cs @@ -56,6 +56,9 @@ namespace OpenRA.Mods.Common.Traits void INotifyDamage.Damaged(Actor self, AttackInfo e) { + if (IsTraitPaused || IsTraitDisabled) + return; + if (e.Damage.Value <= 0 || !e.Damage.DamageTypes.Overlaps(info.DamageTriggers)) return; @@ -69,7 +72,10 @@ namespace OpenRA.Mods.Common.Traits { base.Tick(self); - if (IsProne && --remainingProneTime == 0) + if (!IsTraitPaused && remainingProneTime > 0) + remainingProneTime--; + + if (remainingProneTime == 0) localOffset = WVec.Zero; } @@ -94,5 +100,10 @@ namespace OpenRA.Mods.Common.Traits { return IsProne ? info.SpeedModifier : 100; } + + protected override void TraitDisabled(Actor self) + { + remainingProneTime = 0; + } } }