diff --git a/OpenRA.Mods.AS/Traits/Attack/AttackOpenTopped.cs b/OpenRA.Mods.AS/Traits/Attack/AttackOpenTopped.cs index 50b7efa679f9..431fe5328d9e 100644 --- a/OpenRA.Mods.AS/Traits/Attack/AttackOpenTopped.cs +++ b/OpenRA.Mods.AS/Traits/Attack/AttackOpenTopped.cs @@ -143,7 +143,7 @@ public override void DoAttack(Actor self, in Target target) paxFacing[a.Actor].Facing = muzzleFacing; paxPos[a.Actor].SetCenterPosition(a.Actor, pos + PortOffset(self, port)); - if (!a.CheckFire(a.Actor, facing, target, true)) + if (!a.CheckFire(a.Actor, facing, target)) continue; if (a.Info.MuzzleSequence != null) diff --git a/OpenRA.Mods.AS/Traits/Attack/AttackPrismSupported.cs b/OpenRA.Mods.AS/Traits/Attack/AttackPrismSupported.cs index 519c0632195c..c1367b461691 100644 --- a/OpenRA.Mods.AS/Traits/Attack/AttackPrismSupported.cs +++ b/OpenRA.Mods.AS/Traits/Attack/AttackPrismSupported.cs @@ -127,7 +127,7 @@ public virtual void FireSupportArmament(Actor self, in Target target, Actor buff var offsetedTarget = Target.FromPos(target.CenterPosition + receiverTrait.info.ReceiverOffset); var supportArmament = self.TraitsImplementing().First(a => a.Info.Name == info.SupportArmament); - supportArmament.CheckFire(self, facing, offsetedTarget, true); + supportArmament.CheckFire(self, facing, offsetedTarget); // Grant the buff condition receiverTrait.AddBuffStack(buffReceiver); diff --git a/OpenRA.Mods.AS/Traits/PointDefense.cs b/OpenRA.Mods.AS/Traits/PointDefense.cs index 8a77aa99d376..137d8422a023 100644 --- a/OpenRA.Mods.AS/Traits/PointDefense.cs +++ b/OpenRA.Mods.AS/Traits/PointDefense.cs @@ -66,7 +66,7 @@ bool IPointDefense.Destroy(WPos position, Player attacker, BitSet types) self.World.AddFrameEndTask(w => { if (!self.IsDead) - armament.CheckFire(self, null, Target.FromPos(position), true); + armament.CheckFire(self, null, Target.FromPos(position)); }); return true; } diff --git a/OpenRA.Mods.AS/Traits/SharedPassenger.cs b/OpenRA.Mods.AS/Traits/SharedPassenger.cs index 61c9b5d2455f..64badd99598e 100644 --- a/OpenRA.Mods.AS/Traits/SharedPassenger.cs +++ b/OpenRA.Mods.AS/Traits/SharedPassenger.cs @@ -56,21 +56,23 @@ public class SharedPassengerInfo : TraitInfo [Desc("Cursor to display when unable to enter target actor.")] public readonly string EnterBlockedCursor = "enter-blocked"; - public override object Create(ActorInitializer init) { return new SharedPassenger(this); } + public override object Create(ActorInitializer init) { return new SharedPassenger(this, init.Self); } } public class SharedPassenger : IIssueOrder, IResolveOrder, IOrderVoice, INotifyRemovedFromWorld, INotifyEnteredSharedCargo, INotifyExitedSharedCargo, INotifyKilled, IObservesVariables { public readonly SharedPassengerInfo Info; public Actor Transport; + readonly Actor self; bool requireForceMove; int anyCargoToken = Actor.InvalidConditionToken; int specificCargoToken = Actor.InvalidConditionToken; - public SharedPassenger(SharedPassengerInfo info) + public SharedPassenger(SharedPassengerInfo info, Actor self) { Info = info; + this.self = self; } public SharedCargo ReservedCargo { get; private set; } @@ -79,13 +81,13 @@ IEnumerable IIssueOrder.Orders { get { - yield return new EnterAlliedActorTargeter( + yield return new EnterActorTargeter( "EnterSharedTransport", 5, Info.EnterCursor, Info.EnterBlockedCursor, IsCorrectCargoType, - CanEnter); + target => self.Owner.IsAlliedWith(target.Owner) && CanEnter(target)); } } diff --git a/OpenRA.Mods.AS/Traits/SupportPowers/FireArmamentPower.cs b/OpenRA.Mods.AS/Traits/SupportPowers/FireArmamentPower.cs index 7c5667d78d99..f174e8496ee0 100644 --- a/OpenRA.Mods.AS/Traits/SupportPowers/FireArmamentPower.cs +++ b/OpenRA.Mods.AS/Traits/SupportPowers/FireArmamentPower.cs @@ -200,7 +200,7 @@ void ITick.Tick(Actor self) } foreach (var a in activeArmaments) - a.CheckFire(self, facing, target, true); + a.CheckFire(self, facing, target); ticks++;