|
5 | 5 |
|
6 | 6 | namespace SelectiveEffects.Patches |
7 | 7 | { |
8 | | - [HarmonyPatch(typeof(Effect), nameof(Effect.CreateInstance))] |
9 | | - internal class MainEffectsPatch |
| 8 | + [HarmonyPatch(typeof(Effect))] |
| 9 | + internal static class MainEffectsPatch |
10 | 10 | { |
11 | | - public static void Postfix(Effect __instance, ref GameObject __result) |
| 11 | + [HarmonyPostfix] |
| 12 | + [HarmonyPatch(nameof(Effect.Init))] |
| 13 | + public static void ModifyPrefabs(Effect __instance) |
12 | 14 | { |
13 | | - if (!SettingsManager.Enabled) return; |
| 15 | + if (!Main.IsGameMain) return; |
| 16 | + |
| 17 | + if (SettingsManager.DisableAllEffects) return; |
14 | 18 |
|
15 | | - |
16 | | - if (SettingsManager.DisableAllEffects) |
| 19 | + foreach (EffectsCondition effecObject in EffectsDisablerManager.effectsDisablerList) |
17 | 20 | { |
18 | | - __result.SetActive(false); |
19 | | - return; |
| 21 | + if (effecObject.CheckDo(__instance.uid)) return; |
20 | 22 | } |
21 | | - |
| 23 | + } |
22 | 24 |
|
23 | | - if (SettingsManager.DisableAllEffects || !EffectsDisablerManager.AnyEffect) return; |
24 | 25 |
|
25 | | - string fxName = __instance.uid; |
26 | | - foreach (EffectsCondition effecObject in EffectsDisablerManager.effectsDisablerList) |
27 | | - { |
28 | | - if (!effecObject.Condition(fxName)) continue; |
| 26 | + [HarmonyPostfix] |
| 27 | + [HarmonyPatch(nameof(Effect.CreateInstance))] |
| 28 | + public static void DisableEffects(Effect __instance, ref GameObject __result) |
| 29 | + { |
| 30 | + if (!SettingsManager.Enabled) return; |
29 | 31 |
|
30 | | - __result.SetActive(false); |
31 | | - return; |
32 | | - } |
| 32 | + if (!SettingsManager.DisableAllEffects |
| 33 | + && !EffectsDisablerManager.effectsDisabledUids.Contains(__instance.uid) |
| 34 | + ) return; |
| 35 | + __result.SetActive(false); |
33 | 36 | } |
34 | 37 | } |
35 | 38 | } |
0 commit comments