diff --git a/OpenRA.Game/Orders/UnitOrderGenerator.cs b/OpenRA.Game/Orders/UnitOrderGenerator.cs index f8a37033a7..ecc3767ee0 100644 --- a/OpenRA.Game/Orders/UnitOrderGenerator.cs +++ b/OpenRA.Game/Orders/UnitOrderGenerator.cs @@ -120,7 +120,7 @@ namespace OpenRA.Orders foreach (var a in world.Selection.Actors) { var o = OrderForUnit(a, target, actorsAt, cell, mi); - if (o != null && o.Order.TargetOverridesSelection(modifiers)) + if (o != null && o.Order.TargetOverridesSelection(a, target, actorsAt, cell, modifiers)) return true; } diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index 6124775e66..f065e28d93 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -183,7 +183,7 @@ namespace OpenRA.Traits int OrderPriority { get; } bool CanTarget(Actor self, Target target, List othersAtTarget, ref TargetModifiers modifiers, ref string cursor); bool IsQueued { get; } - bool TargetOverridesSelection(TargetModifiers modifiers); + bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers); } public interface IResolveOrder { void ResolveOrder(Actor self, Order order); } diff --git a/OpenRA.Mods.Cnc/Traits/Minelayer.cs b/OpenRA.Mods.Cnc/Traits/Minelayer.cs index 4971537229..fa0b77ed4f 100644 --- a/OpenRA.Mods.Cnc/Traits/Minelayer.cs +++ b/OpenRA.Mods.Cnc/Traits/Minelayer.cs @@ -234,7 +234,7 @@ namespace OpenRA.Mods.Cnc.Traits { public string OrderID { get { return "BeginMinefield"; } } public int OrderPriority { get { return 5; } } - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } public bool CanTarget(Actor self, Target target, List othersAtTarget, ref TargetModifiers modifiers, ref string cursor) { diff --git a/OpenRA.Mods.Cnc/Traits/PortableChrono.cs b/OpenRA.Mods.Cnc/Traits/PortableChrono.cs index a158e02a6f..6fc34fb621 100644 --- a/OpenRA.Mods.Cnc/Traits/PortableChrono.cs +++ b/OpenRA.Mods.Cnc/Traits/PortableChrono.cs @@ -159,7 +159,7 @@ namespace OpenRA.Mods.Cnc.Traits public string OrderID { get { return "PortableChronoTeleport"; } } public int OrderPriority { get { return 5; } } public bool IsQueued { get; protected set; } - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } public bool CanTarget(Actor self, Target target, List othersAtTarget, ref TargetModifiers modifiers, ref string cursor) { diff --git a/OpenRA.Mods.Common/Orders/DeployOrderTargeter.cs b/OpenRA.Mods.Common/Orders/DeployOrderTargeter.cs index 5ba80539a6..65c589c302 100644 --- a/OpenRA.Mods.Common/Orders/DeployOrderTargeter.cs +++ b/OpenRA.Mods.Common/Orders/DeployOrderTargeter.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Orders public string OrderID { get; private set; } public int OrderPriority { get; private set; } - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } public bool CanTarget(Actor self, Target target, List othersAtTarget, ref TargetModifiers modifiers, ref string cursor) { diff --git a/OpenRA.Mods.Common/Orders/UnitOrderTargeter.cs b/OpenRA.Mods.Common/Orders/UnitOrderTargeter.cs index f6e480d842..f4e60967d9 100644 --- a/OpenRA.Mods.Common/Orders/UnitOrderTargeter.cs +++ b/OpenRA.Mods.Common/Orders/UnitOrderTargeter.cs @@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Orders public string OrderID { get; private set; } public int OrderPriority { get; private set; } public bool? ForceAttack = null; - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } public abstract bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor); public abstract bool CanTargetFrozenActor(Actor self, FrozenActor target, TargetModifiers modifiers, ref string cursor); diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index bfb20e2088..b7834c4190 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -1180,7 +1180,7 @@ namespace OpenRA.Mods.Common.Traits OrderID = "Move"; } - public bool TargetOverridesSelection(TargetModifiers modifiers) + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return modifiers.HasModifier(TargetModifiers.ForceMove); } diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs b/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs index 334c82fded..4650ce84b2 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs @@ -436,7 +436,7 @@ namespace OpenRA.Mods.Common.Traits public string OrderID { get; private set; } public int OrderPriority { get; private set; } - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } bool CanTargetActor(Actor self, Target target, ref TargetModifiers modifiers, ref string cursor) { diff --git a/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs b/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs index 2c95b73879..1e6f62c699 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/RallyPoint.cs @@ -122,7 +122,7 @@ namespace OpenRA.Mods.Common.Traits public string OrderID { get { return "SetRallyPoint"; } } public int OrderPriority { get { return 0; } } - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } public bool ForceSet { get; private set; } public bool CanTarget(Actor self, Target target, List othersAtTarget, ref TargetModifiers modifiers, ref string cursor) diff --git a/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoAircraft.cs b/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoAircraft.cs index 9087315241..fb7e496be9 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoAircraft.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoAircraft.cs @@ -158,7 +158,7 @@ namespace OpenRA.Mods.Common.Traits { readonly TransformsIntoAircraft aircraft; - public bool TargetOverridesSelection(TargetModifiers modifiers) + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return modifiers.HasModifier(TargetModifiers.ForceMove); } diff --git a/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoMobile.cs b/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoMobile.cs index d26295f4ef..620b3551b1 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoMobile.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/TransformsIntoMobile.cs @@ -158,7 +158,7 @@ namespace OpenRA.Mods.Common.Traits { readonly TransformsIntoMobile mobile; readonly bool rejectMove; - public bool TargetOverridesSelection(TargetModifiers modifiers) + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return modifiers.HasModifier(TargetModifiers.ForceMove); } diff --git a/OpenRA.Mods.Common/Traits/Carryall.cs b/OpenRA.Mods.Common/Traits/Carryall.cs index 166c989015..f6f31f7492 100644 --- a/OpenRA.Mods.Common/Traits/Carryall.cs +++ b/OpenRA.Mods.Common/Traits/Carryall.cs @@ -372,7 +372,7 @@ namespace OpenRA.Mods.Common.Traits public string OrderID { get { return "DeliverUnit"; } } public int OrderPriority { get { return 6; } } public bool IsQueued { get; protected set; } - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } public CarryallDeliverUnitTargeter(AircraftInfo aircraftInfo, CarryallInfo info) { diff --git a/OpenRA.Mods.Common/Traits/Harvester.cs b/OpenRA.Mods.Common/Traits/Harvester.cs index eda886730b..ceb6e44137 100644 --- a/OpenRA.Mods.Common/Traits/Harvester.cs +++ b/OpenRA.Mods.Common/Traits/Harvester.cs @@ -379,7 +379,7 @@ namespace OpenRA.Mods.Common.Traits public string OrderID { get { return "Harvest"; } } public int OrderPriority { get { return 10; } } public bool IsQueued { get; protected set; } - public bool TargetOverridesSelection(TargetModifiers modifiers) { return true; } + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return true; } public bool CanTarget(Actor self, Target target, List othersAtTarget, ref TargetModifiers modifiers, ref string cursor) { diff --git a/OpenRA.Mods.Common/Traits/Mobile.cs b/OpenRA.Mods.Common/Traits/Mobile.cs index 5e7124b86d..5df1c950c0 100644 --- a/OpenRA.Mods.Common/Traits/Mobile.cs +++ b/OpenRA.Mods.Common/Traits/Mobile.cs @@ -956,7 +956,7 @@ namespace OpenRA.Mods.Common.Traits readonly Mobile mobile; readonly LocomotorInfo locomotorInfo; readonly bool rejectMove; - public bool TargetOverridesSelection(TargetModifiers modifiers) + public bool TargetOverridesSelection(Actor self, Target target, List actorsAt, CPos xy, TargetModifiers modifiers) { return modifiers.HasModifier(TargetModifiers.ForceMove); }