Make the non-support of frozen actor targeting in EnterOrderTargeter explicit.

This commit is contained in:
Paul Chote
2013-08-11 20:17:46 +12:00
parent a88b5e98d7
commit 587fac377e
7 changed files with 14 additions and 12 deletions

View File

@@ -166,7 +166,7 @@ namespace OpenRA.Mods.RA.Air
{
get
{
yield return new EnterOrderTargeter<Building>("Enter", 5, false, true,
yield return new EnterAlliedActorTargeter<Building>("Enter", 5,
target => AircraftCanEnter(target), target => !Reservable.IsReserved(target));
yield return new AircraftMoveOrderTargeter();

View File

@@ -239,7 +239,8 @@ namespace OpenRA.Mods.RA
{
get
{
yield return new EnterOrderTargeter<IAcceptOre>("Deliver", 5, false, true, _ => true, proc => !IsEmpty && proc.Trait<IAcceptOre>().AllowDocking);
yield return new EnterAlliedActorTargeter<IAcceptOre>("Deliver", 5, _ => true,
proc => !IsEmpty && proc.Trait<IAcceptOre>().AllowDocking);
yield return new HarvestOrderTargeter();
}
}

View File

@@ -282,7 +282,6 @@
<Compile Include="NullLoadScreen.cs" />
<Compile Include="LoadWidgetAtGameStart.cs" />
<Compile Include="Orders\DeployOrderTargeter.cs" />
<Compile Include="Orders\EnterBuildingOrderTargeter.cs" />
<Compile Include="Orders\PlaceBuildingOrderGenerator.cs" />
<Compile Include="Orders\PowerDownOrderGenerator.cs" />
<Compile Include="Orders\RepairOrderGenerator.cs" />
@@ -465,6 +464,7 @@
<Compile Include="Widgets\Logic\WorldTooltipLogic.cs" />
<Compile Include="TeslaZapRenderable.cs" />
<Compile Include="Buildings\Bib.cs" />
<Compile Include="Orders\EnterAlliedActorTargeter.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">

View File

@@ -14,14 +14,14 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA.Orders
{
public class EnterOrderTargeter<T> : UnitOrderTargeter
public class EnterAlliedActorTargeter<T> : UnitOrderTargeter
{
readonly Func<Actor, bool> canTarget;
readonly Func<Actor, bool> useEnterCursor;
public EnterOrderTargeter(string order, int priority, bool targetEnemy, bool targetAlly,
public EnterAlliedActorTargeter(string order, int priority,
Func<Actor, bool> canTarget, Func<Actor, bool> useEnterCursor)
: base (order, priority, "enter", targetEnemy, targetAlly)
: base (order, priority, "enter", false, true)
{
this.canTarget = canTarget;
this.useEnterCursor = useEnterCursor;
@@ -38,7 +38,7 @@ namespace OpenRA.Mods.RA.Orders
public override bool CanTargetFrozenActor(Actor self, FrozenActor target, TargetModifiers modifiers, ref string cursor)
{
// TODO: Not yet supported
// Allied actors are never frozen
return false;
}
}

View File

@@ -35,8 +35,8 @@ namespace OpenRA.Mods.RA
{
get
{
yield return new EnterOrderTargeter<Cargo>( "EnterTransport", 6, false, true,
target => IsCorrectCargoType( target ), target => CanEnter( target ) );
yield return new EnterAlliedActorTargeter<Cargo>("EnterTransport", 6,
target => IsCorrectCargoType(target), target => CanEnter(target));
}
}

View File

@@ -38,7 +38,8 @@ namespace OpenRA.Mods.RA
public IEnumerable<IOrderTargeter> Orders
{
get { yield return new EnterOrderTargeter<Building>( "Repair", 5, false, true, target => CanRepairAt( target ), _ => CanRepair() ); }
get { yield return new EnterAlliedActorTargeter<Building>("Repair", 5,
target => CanRepairAt(target), _ => CanRepair()); }
}
public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued )

View File

@@ -38,8 +38,8 @@ namespace OpenRA.Mods.RA
{
get
{
yield return new EnterOrderTargeter<Building>( "RepairNear", 5, false, true,
target => CanRepairAt( target ), _ => ShouldRepair() );
yield return new EnterAlliedActorTargeter<Building>("RepairNear", 5,
target => CanRepairAt(target), _ => ShouldRepair());
}
}