diff --git a/OpenRA.Mods.Common/Traits/Player/BaseAttackNotifier.cs b/OpenRA.Mods.Common/Traits/Player/BaseAttackNotifier.cs index 9d0a4a58e8..307bc296f8 100644 --- a/OpenRA.Mods.Common/Traits/Player/BaseAttackNotifier.cs +++ b/OpenRA.Mods.Common/Traits/Player/BaseAttackNotifier.cs @@ -47,10 +47,6 @@ namespace OpenRA.Mods.Common.Traits public void Damaged(Actor self, AttackInfo e) { - // only track last hit against our base - if (!self.Info.HasTraitInfo()) - return; - if (e.Attacker == null) return; @@ -60,6 +56,10 @@ namespace OpenRA.Mods.Common.Traits if (e.Attacker == self.World.WorldActor) return; + // Only track last hit against our base + if (!self.Info.HasTraitInfo()) + return; + if (e.Attacker.Owner.IsAlliedWith(self.Owner) && e.Damage <= 0) return; diff --git a/OpenRA.Mods.Common/Traits/Player/HarvesterAttackNotifier.cs b/OpenRA.Mods.Common/Traits/Player/HarvesterAttackNotifier.cs index dd809207ac..fa9260ca6a 100644 --- a/OpenRA.Mods.Common/Traits/Player/HarvesterAttackNotifier.cs +++ b/OpenRA.Mods.Common/Traits/Player/HarvesterAttackNotifier.cs @@ -47,12 +47,12 @@ namespace OpenRA.Mods.Common.Traits public void Damaged(Actor self, AttackInfo e) { - // only track last hit against our harvesters - if (!self.Info.HasTraitInfo()) + // Don't track self-damage + if (e.Attacker != null && e.Attacker.Owner == self.Owner) return; - // don't track self-damage - if (e.Attacker != null && e.Attacker.Owner == self.Owner) + // Only track last hit against our harvesters + if (!self.Info.HasTraitInfo()) return; if (self.World.WorldTick - lastAttackTime > info.NotifyInterval * 25)