Replace UnitTraitOrderTargeter with TargetTypeOrderTargeter.

This also makes naval buildings untargetable for c4 and demo trucks, as they don't make much sense.
This commit is contained in:
Paul Chote
2013-04-15 22:31:09 +12:00
parent e545865599
commit 4ca777597f
16 changed files with 81 additions and 56 deletions

View File

@@ -88,13 +88,14 @@ namespace OpenRA.Mods.RA
return false;
}
class InfiltratorOrderTargeter : UnitTraitOrderTargeter<IAcceptInfiltrator>
class InfiltratorOrderTargeter : UnitOrderTargeter
{
readonly Func<Actor, bool> useEnterCursor;
public InfiltratorOrderTargeter(Func<Actor, bool> useEnterCursor) : base("Infiltrate", 7, "enter", true, false)
public InfiltratorOrderTargeter(Func<Actor, bool> useEnterCursor)
: base("Infiltrate", 7, "enter", true, false)
{
ForceAttack=false;
ForceAttack = false;
this.useEnterCursor = useEnterCursor;
}
@@ -102,7 +103,10 @@ namespace OpenRA.Mods.RA
{
if (!base.CanTargetActor(self, target, forceAttack, forceQueued, ref cursor))
return false;
if (!target.HasTrait<IAcceptInfiltrator>())
return false;
if (!useEnterCursor(target))
cursor = "enter-blocked";