diff --git a/OpenRA.Mods.RA/Activities/Hunt.cs b/OpenRA.Mods.RA/Activities/Hunt.cs index 69d2a78feb..f97e48f9fe 100644 --- a/OpenRA.Mods.RA/Activities/Hunt.cs +++ b/OpenRA.Mods.RA/Activities/Hunt.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using System.Linq; +using OpenRA.Mods.RA.Traits; using OpenRA.Traits; namespace OpenRA.Mods.RA.Activities @@ -22,7 +23,13 @@ namespace OpenRA.Mods.RA.Activities { var attack = self.Trait(); targets = self.World.Actors.Where(a => self != a && !a.IsDead && a.IsInWorld && a.AppearsHostileTo(self) - && a.HasTrait() && attack.HasAnyValidWeapons(Target.FromActor(a))); + && a.HasTrait() && IsTargetable(a, self) && attack.HasAnyValidWeapons(Target.FromActor(a))); + } + + bool IsTargetable(Actor self, Actor viewer) + { + var targetable = self.TraitOrDefault(); + return targetable != null && targetable.TargetableBy(self, viewer); } public override Activity Tick(Actor self)