From 74ead504ecdc17eea992e95a1175eedb925bbbd9 Mon Sep 17 00:00:00 2001 From: JovialFeline Date: Wed, 9 Jul 2025 14:56:19 -0400 Subject: [PATCH] Use support sequences for scripted powers --- OpenRA.Mods.Common/Scripting/Properties/AirstrikeProperties.cs | 3 +++ OpenRA.Mods.Common/Scripting/Properties/NukeProperties.cs | 3 +++ OpenRA.Mods.Common/Scripting/Properties/ParadropProperties.cs | 3 +++ .../Scripting/Properties/ParatroopersProperties.cs | 3 +++ 4 files changed, 12 insertions(+) diff --git a/OpenRA.Mods.Common/Scripting/Properties/AirstrikeProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/AirstrikeProperties.cs index a4cf41f603..b6aab32775 100644 --- a/OpenRA.Mods.Common/Scripting/Properties/AirstrikeProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/AirstrikeProperties.cs @@ -30,6 +30,9 @@ namespace OpenRA.Mods.Common.Scripting [Desc("Activate the actor's Airstrike Power. Returns the aircraft that will attack.")] public Actor[] TargetAirstrike(WPos target, WAngle? facing = null) { + foreach (var notify in Self.TraitsImplementing()) + notify.Activated(Self); + return ap.SendAirstrike(Self, target, facing); } } diff --git a/OpenRA.Mods.Common/Scripting/Properties/NukeProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/NukeProperties.cs index 12cc8a624b..f1660cfb4d 100644 --- a/OpenRA.Mods.Common/Scripting/Properties/NukeProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/NukeProperties.cs @@ -31,6 +31,9 @@ namespace OpenRA.Mods.Common.Scripting public void ActivateNukePower(CPos target) { np.Activate(Self, Self.World.Map.CenterOfCell(target)); + + foreach (var notify in Self.TraitsImplementing()) + notify.Activated(Self); } } } diff --git a/OpenRA.Mods.Common/Scripting/Properties/ParadropProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/ParadropProperties.cs index dcec30096f..3418a5b62a 100644 --- a/OpenRA.Mods.Common/Scripting/Properties/ParadropProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/ParadropProperties.cs @@ -31,6 +31,9 @@ namespace OpenRA.Mods.Common.Scripting [Desc("Command transport to paradrop passengers near the target cell.")] public void Paradrop(CPos cell) { + foreach (var notify in Self.TraitsImplementing()) + notify.Activated(Self); + paradrop.SetLZ(cell, true); Self.QueueActivity(new Fly(Self, Target.FromCell(Self.World, cell))); Self.QueueActivity(new FlyOffMap(Self)); diff --git a/OpenRA.Mods.Common/Scripting/Properties/ParatroopersProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/ParatroopersProperties.cs index 6195a26ba6..a83cd42c60 100644 --- a/OpenRA.Mods.Common/Scripting/Properties/ParatroopersProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/ParatroopersProperties.cs @@ -30,6 +30,9 @@ namespace OpenRA.Mods.Common.Scripting [Desc("Activate the actor's Paratroopers Power. Returns the aircraft that will drop the reinforcements.")] public Actor[] TargetParatroopers(WPos target, WAngle? facing = null) { + foreach (var notify in Self.TraitsImplementing()) + notify.Activated(Self); + var actors = pp.SendParatroopers(Self, target, facing); return actors.Aircraft; }