From d719ce03ea67154ac61e48b32d31149e214aecce Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sat, 28 Jun 2025 10:28:23 +0200 Subject: [PATCH] Cleanup, move OnBeforeAnyHookInvoked function to an interface --- PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs | 36 ---------- PkmnLib.Dynamic/ScriptHandling/Script.cs | 65 +++++++++---------- .../ScriptHandling/ScriptExecution.cs | 15 ++--- .../Scripts/Abilities/Klutz.cs | 4 +- .../Scripts/Abilities/MoldBreaker.cs | 4 +- .../Scripts/Abilities/ShadowShield.cs | 4 +- .../Abilities/SuppressWeatherAbility.cs | 4 +- .../Scripts/Battle/MagicRoomEffect.cs | 4 +- .../Scripts/Moves/MoongeistBeam.cs | 4 +- .../Scripts/Side/TeravoltEffect.cs | 4 +- 10 files changed, 49 insertions(+), 95 deletions(-) delete mode 100644 PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs diff --git a/PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs b/PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs deleted file mode 100644 index 36c744e..0000000 --- a/PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs +++ /dev/null @@ -1,36 +0,0 @@ -using PkmnLib.Dynamic.Models; -using PkmnLib.Static; - -namespace PkmnLib.Dynamic.ScriptHandling; - -public class ProxyScript : Script -{ - public delegate void ChangeOffensiveStatValueEventHandler(IExecutingMove move, IPokemon target, byte hit, - uint defensiveStat, ImmutableStatisticSet targetStats, ref uint value); - - private readonly List<(Script, ChangeOffensiveStatValueEventHandler)> _changeOffensiveStatValueEvents = new(); - - public void AddChangeOffensiveStatValueEvent(Script script, ChangeOffensiveStatValueEventHandler handler) - { - _changeOffensiveStatValueEvents.Add((script, handler)); - script.OnRemoveEvent += OnRemoveScriptEvent; - } - - private void OnRemoveScriptEvent(Script script) - { - _changeOffensiveStatValueEvents.RemoveAll(x => x.Item1 == script); - } - - /// - public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, - ImmutableStatisticSet targetStats, Statistic stat, ref uint value) - { - foreach (var (script, handler) in _changeOffensiveStatValueEvents) - { - if (!script.IsSuppressed) - { - handler(move, target, hit, defensiveStat, targetStats, ref value); - } - } - } -} \ No newline at end of file diff --git a/PkmnLib.Dynamic/ScriptHandling/Script.cs b/PkmnLib.Dynamic/ScriptHandling/Script.cs index 297f04e..5182986 100644 --- a/PkmnLib.Dynamic/ScriptHandling/Script.cs +++ b/PkmnLib.Dynamic/ScriptHandling/Script.cs @@ -18,8 +18,6 @@ public abstract class Script : IDeepCloneable { internal event Action