diff --git a/Conditions/InvincibilityCondition.cs b/Conditions/InvincibilityCondition.cs index a0431de..ae3bb74 100644 --- a/Conditions/InvincibilityCondition.cs +++ b/Conditions/InvincibilityCondition.cs @@ -79,6 +79,7 @@ private set if (field == value) return; DoUpdate(() => field = value); + IsEnabled = plugin.PluginEnabled && value; } } diff --git a/Conditions/NeedolinCondition.cs b/Conditions/NeedolinCondition.cs index f62e67a..9267073 100644 --- a/Conditions/NeedolinCondition.cs +++ b/Conditions/NeedolinCondition.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Linq; -using HutongGames.PlayMaker; using HutongGames.PlayMaker.Actions; using MonoDetour; using MonoDetour.HookGen; @@ -25,11 +24,10 @@ internal NeedolinCondition(InvincibilityMonitorPlugin plugin) private readonly HashSet checks = []; private readonly HashSet checksV2 = []; - private static bool IsNone(FsmEvent? fsmEvent) => fsmEvent == null || fsmEvent.name == ""; - protected override bool Callback() => - checks.Any(c => !IsNone(c.None) && c.active) - || checksV2.Any(c => !IsNone(c.None) && c.active); + HeroPerformanceRegion.IsPerforming + && (checks.Any(c => c.affectedState == HeroPerformanceRegion.AffectedState.ActiveInner) + || checksV2.Any(c => c.affectedState == HeroPerformanceRegion.AffectedState.ActiveInner)); private static void PostfixOnEnter(CheckHeroPerformanceRegion self) {