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 get
{ {
yield return new EnterOrderTargeter<Building>("Enter", 5, false, true, yield return new EnterAlliedActorTargeter<Building>("Enter", 5,
target => AircraftCanEnter(target), target => !Reservable.IsReserved(target)); target => AircraftCanEnter(target), target => !Reservable.IsReserved(target));
yield return new AircraftMoveOrderTargeter(); yield return new AircraftMoveOrderTargeter();

View File

@@ -239,7 +239,8 @@ namespace OpenRA.Mods.RA
{ {
get 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(); yield return new HarvestOrderTargeter();
} }
} }

View File

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

View File

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

View File

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

View File

@@ -38,7 +38,8 @@ namespace OpenRA.Mods.RA
public IEnumerable<IOrderTargeter> Orders 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 ) public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued )

View File

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