diff --git a/OpenRA.Mods.Common/Scripting/ScriptTriggers.cs b/OpenRA.Mods.Common/Scripting/ScriptTriggers.cs index e9ed7be5f4..d370c8f3f2 100644 --- a/OpenRA.Mods.Common/Scripting/ScriptTriggers.cs +++ b/OpenRA.Mods.Common/Scripting/ScriptTriggers.cs @@ -302,7 +302,7 @@ namespace OpenRA.Mods.Common.Scripting OnCapturedInternal(self); } - public void Infiltrated(Actor self, Actor infiltrator) + void INotifyInfiltrated.Infiltrated(Actor self, Actor infiltrator) { if (world.Disposing) return; diff --git a/OpenRA.Mods.Common/TraitsInterfaces.cs b/OpenRA.Mods.Common/TraitsInterfaces.cs index 906830150c..ffc321215f 100644 --- a/OpenRA.Mods.Common/TraitsInterfaces.cs +++ b/OpenRA.Mods.Common/TraitsInterfaces.cs @@ -82,11 +82,13 @@ namespace OpenRA.Mods.Common.Traits public interface INotifyDocking { void Docked(Actor self, Actor harvester); void Undocked(Actor self, Actor harvester); } public interface INotifyParachuteLanded { void OnLanded(Actor ignore); } public interface INotifyCapture { void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner); } - public interface INotifyInfiltrated { void Infiltrated(Actor self, Actor infiltrator); } public interface INotifyDiscovered { void OnDiscovered(Actor self, Player discoverer, bool playNotification); } public interface IRenderActorPreviewInfo : ITraitInfo { IEnumerable RenderPreview(ActorPreviewInitializer init); } public interface ICruiseAltitudeInfo : ITraitInfo { WDist GetCruiseAltitude(); } + [RequireExplicitImplementation] + public interface INotifyInfiltrated { void Infiltrated(Actor self, Actor infiltrator); } + [RequireExplicitImplementation] public interface INotifyBlockingMove { void OnNotifyBlockingMove(Actor self, Actor blocking); } diff --git a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForCash.cs b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForCash.cs index d2f9e6f36b..0f88a42abb 100644 --- a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForCash.cs +++ b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForCash.cs @@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA.Traits public InfiltrateForCash(InfiltrateForCashInfo info) { this.info = info; } - public void Infiltrated(Actor self, Actor infiltrator) + void INotifyInfiltrated.Infiltrated(Actor self, Actor infiltrator) { var targetResources = self.Owner.PlayerActor.Trait(); var spyResources = infiltrator.Owner.PlayerActor.Trait(); diff --git a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForDecoration.cs b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForDecoration.cs index 4a3bab997e..704bea6604 100644 --- a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForDecoration.cs +++ b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForDecoration.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Traits public InfiltrateForDecoration(Actor self, InfiltrateForDecorationInfo info) : base(self, info) { } - public void Infiltrated(Actor self, Actor infiltrator) + void INotifyInfiltrated.Infiltrated(Actor self, Actor infiltrator) { infiltrators.Add(infiltrator.Owner); } diff --git a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForExploration.cs b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForExploration.cs index 85dfd86ef3..f8e58d8d48 100644 --- a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForExploration.cs +++ b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForExploration.cs @@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA.Traits class InfiltrateForExploration : INotifyInfiltrated { - public void Infiltrated(Actor self, Actor infiltrator) + void INotifyInfiltrated.Infiltrated(Actor self, Actor infiltrator) { infiltrator.Owner.Shroud.Explore(self.Owner.Shroud); if (!self.Owner.HasFogVisibility) diff --git a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForPowerOutage.cs b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForPowerOutage.cs index b8f064136e..78f93f0105 100644 --- a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForPowerOutage.cs +++ b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForPowerOutage.cs @@ -32,12 +32,12 @@ namespace OpenRA.Mods.RA.Traits playerPower = self.Owner.PlayerActor.Trait(); } - public void Infiltrated(Actor self, Actor infiltrator) + void INotifyInfiltrated.Infiltrated(Actor self, Actor infiltrator) { playerPower.TriggerPowerOutage(info.Duration); } - public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner) + void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner) { playerPower = self.Owner.PlayerActor.Trait(); } diff --git a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForSupportPower.cs b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForSupportPower.cs index 2513a86d16..d6cb524522 100644 --- a/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForSupportPower.cs +++ b/OpenRA.Mods.RA/Traits/Infiltration/InfiltrateForSupportPower.cs @@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA.Traits this.info = info; } - public void Infiltrated(Actor self, Actor infiltrator) + void INotifyInfiltrated.Infiltrated(Actor self, Actor infiltrator) { infiltrator.World.AddFrameEndTask(w => w.CreateActor(info.Proxy, new TypeDictionary {