Add ActorInfo.HasTraitInfo<T>() requiring ITraitInfo types

This commit is contained in:
atlimit8
2015-08-02 12:44:46 -05:00
parent 85fab45451
commit 8162fa27ab
77 changed files with 138 additions and 136 deletions

View File

@@ -83,7 +83,7 @@ namespace OpenRA.Mods.Common.Scripting
if (!target.IsValidFor(Self) || target.Type == TargetType.FrozenActor)
Log.Write("lua", "{1} is an invalid target for {0}!", Self, targetActor);
if (!targetActor.Info.Traits.Contains<FrozenUnderFogInfo>() && !Self.Owner.CanTargetActor(targetActor))
if (!targetActor.Info.HasTraitInfo<FrozenUnderFogInfo>() && !Self.Owner.CanTargetActor(targetActor))
Log.Write("lua", "{1} is not revealed for player {0}!", Self.Owner, targetActor);
attackBase.AttackTarget(target, true, allowMove);

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Scripting
[Desc("Guard the target actor.")]
public void Guard(Actor targetActor)
{
if (targetActor.Info.Traits.Contains<GuardableInfo>())
if (targetActor.Info.HasTraitInfo<GuardableInfo>())
guard.GuardTarget(Self, Target.FromActor(targetActor));
}
}

View File

@@ -56,7 +56,7 @@ namespace OpenRA.Mods.Common.Scripting
public Actor[] GetGroundAttackers()
{
return Player.World.ActorsWithTrait<AttackBase>().Select(a => a.Actor)
.Where(a => a.Owner == Player && !a.IsDead && a.IsInWorld && a.Info.Traits.Contains<MobileInfo>())
.Where(a => a.Owner == Player && !a.IsDead && a.IsInWorld && a.Info.HasTraitInfo<MobileInfo>())
.ToArray();
}