Remove order.TargetActor from RepairableNear.
This commit is contained in:
@@ -69,21 +69,24 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public string VoicePhraseForOrder(Actor self, Order order)
|
public string VoicePhraseForOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
return (order.OrderString == "RepairNear" && ShouldRepair()) ? info.Voice : null;
|
return order.OrderString == "RepairNear" && ShouldRepair() ? info.Voice : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResolveOrder(Actor self, Order order)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
if (order.OrderString == "RepairNear" && CanRepairAt(order.TargetActor) && ShouldRepair())
|
// RepairNear orders are only valid for own/allied actors,
|
||||||
{
|
// which are guaranteed to never be frozen.
|
||||||
var target = Target.FromOrder(self.World, order);
|
if (order.OrderString != "RepairNear" || order.Target.Type != TargetType.Actor)
|
||||||
|
return;
|
||||||
|
|
||||||
self.CancelActivity();
|
if (!CanRepairAt(order.Target.Actor) || !ShouldRepair())
|
||||||
self.QueueActivity(movement.MoveWithinRange(target, info.CloseEnough));
|
return;
|
||||||
self.QueueActivity(new Repair(self, order.TargetActor, info.CloseEnough));
|
|
||||||
|
|
||||||
self.SetTargetLine(target, Color.Green, false);
|
self.CancelActivity();
|
||||||
}
|
self.QueueActivity(movement.MoveWithinRange(order.Target, info.CloseEnough));
|
||||||
|
self.QueueActivity(new Repair(self, order.Target.Actor, info.CloseEnough));
|
||||||
|
|
||||||
|
self.SetTargetLine(order.Target, Color.Green, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Actor FindRepairBuilding(Actor self)
|
public Actor FindRepairBuilding(Actor self)
|
||||||
|
|||||||
Reference in New Issue
Block a user