From ddf4a4a6564ef23b01fe14293b3e3412e2b2d309 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Mon, 8 Dec 2014 14:43:17 +0100 Subject: [PATCH] Don't hunt cloaked units --- OpenRA.Mods.RA/Activities/Hunt.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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)