Support multiple ITargetable traits

This commit is contained in:
atlimit8
2015-07-13 15:22:39 -05:00
parent 4bd34e3ed3
commit f5c3575c5a
13 changed files with 39 additions and 38 deletions

View File

@@ -57,8 +57,8 @@ namespace OpenRA.Mods.Common.Traits
if (info.ValidFactions.Any() && !info.ValidFactions.Contains(collector.Owner.Faction.InternalName))
return false;
var targetable = collector.Info.Traits.GetOrDefault<ITargetableInfo>();
if (targetable == null || !info.ValidTargets.Intersect(targetable.GetTargetTypes()).Any())
var targetable = collector.TraitsImplementing<ITargetable>();
if (!info.ValidTargets.Intersect(targetable.SelectMany(t => t.TargetTypes)).Any())
return false;
var positionable = collector.TraitOrDefault<IPositionable>();