Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of StubbornHornet v1.0.0
StubbornHornet.dll
Decompiled 4 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GlobalEnums; using HutongGames.PlayMaker; using InControl; using Md.HeroController; using Md.PlayMakerFSM; using Microsoft.CodeAnalysis; using MonoDetour; using MonoDetour.Cil; using MonoDetour.DetourTypes; using MonoDetour.HookGen; using Silksong.FsmUtil; using UnityEngine; using UnityEngine.UI; using WavLib; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: MonoDetourTargets(typeof(HeroController), GenerateControlFlowVariants = true)] [assembly: MonoDetourTargets(typeof(PlayMakerFSM), GenerateControlFlowVariants = true)] [assembly: IgnoresAccessChecksTo("Accessibility")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("Coffee.SoftMaskForUGUI")] [assembly: IgnoresAccessChecksTo("com.rlabrecque.steamworks.net")] [assembly: IgnoresAccessChecksTo("ConditionalExpression")] [assembly: IgnoresAccessChecksTo("GalaxyCSharp")] [assembly: IgnoresAccessChecksTo("Newtonsoft.Json")] [assembly: IgnoresAccessChecksTo("Newtonsoft.Json.UnityConverters.Addressables")] [assembly: IgnoresAccessChecksTo("Newtonsoft.Json.UnityConverters")] [assembly: IgnoresAccessChecksTo("Newtonsoft.Json.UnityConverters.Mathematics")] [assembly: IgnoresAccessChecksTo("PlayMaker")] [assembly: IgnoresAccessChecksTo("SharpDX.DirectInput")] [assembly: IgnoresAccessChecksTo("SharpDX")] [assembly: IgnoresAccessChecksTo("TeamCherry.BuildBot")] [assembly: IgnoresAccessChecksTo("TeamCherry.Cinematics")] [assembly: IgnoresAccessChecksTo("TeamCherry.Localization")] [assembly: IgnoresAccessChecksTo("TeamCherry.NestedFadeGroup")] [assembly: IgnoresAccessChecksTo("TeamCherry.SharedUtils")] [assembly: IgnoresAccessChecksTo("TeamCherry.Splines")] [assembly: IgnoresAccessChecksTo("TeamCherry.TK2D")] [assembly: IgnoresAccessChecksTo("Unity.Addressables")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.MemoryProfiler")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.Recorder.Base")] [assembly: IgnoresAccessChecksTo("Unity.Recorder")] [assembly: IgnoresAccessChecksTo("Unity.ResourceManager")] [assembly: IgnoresAccessChecksTo("Unity.ScriptableBuildPipeline")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("UnityEngine.AMDModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: IgnoresAccessChecksTo("XblPCSandbox")] [assembly: IgnoresAccessChecksTo("XGamingRuntime")] [assembly: IgnoresAccessChecksTo("zlib.net")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("StubbornHornet")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+5a68a633a626935d96c30b5c1ef2bf59eb2b34ca")] [assembly: AssemblyProduct("StubbornHornet")] [assembly: AssemblyTitle("StubbornHornet")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/MCXGK3/StubbornHornet")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Md.PlayMakerFSM { internal static class Update { public delegate void PrefixSignature(PlayMakerFSM self); public delegate ReturnFlow ControlFlowPrefixSignature(PlayMakerFSM self); public delegate void PostfixSignature(PlayMakerFSM self); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(PlayMakerFSM).GetMethod("Update", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("PlayMakerFSM", "Update"); } } internal static class Start { public delegate void PrefixSignature(PlayMakerFSM self); public delegate ReturnFlow ControlFlowPrefixSignature(PlayMakerFSM self); public delegate void PostfixSignature(PlayMakerFSM self); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(PlayMakerFSM).GetMethod("Start", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("PlayMakerFSM", "Start"); } } internal static class SendEvent { public delegate void PrefixSignature(PlayMakerFSM self, ref string eventName); public delegate ReturnFlow ControlFlowPrefixSignature(PlayMakerFSM self, ref string eventName); public delegate void PostfixSignature(PlayMakerFSM self, ref string eventName); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(PlayMakerFSM).GetMethod("SendEvent", (BindingFlags)(-1), null, new Type[1] { typeof(string) }, null) ?? throw new MissingMethodException("PlayMakerFSM", "SendEvent"); } } internal static class ShowFullFsmInspector { } internal static class get_VersionNotes { } internal static class get_VersionLabel { } internal static class get_FsmList { } internal static class FindFsmOnGameObject { } internal static class get_IsMainThread { } internal static class get_NotMainThread { } internal static class InitInEditor { } internal static class get_FsmTemplate { } internal static class get_DrawGizmos { } internal static class set_DrawGizmos { } internal static class Reset { } internal static class OnValidate { } internal static class Awake { } internal static class Preprocess { } internal static class Init { } internal static class InitTemplate { } internal static class InitFsm { } internal static class AddEventHandlerComponents { } internal static class get_AddEventHandlers { } internal static class SetFsmTemplate { } internal static class OnEnable { } internal static class DoCoroutine { } internal static class OnDisable { } internal static class OnDestroy { } internal static class OnApplicationQuit { } internal static class OnDrawGizmos { } internal static class SetState { } internal static class ChangeState_HutongGames_PlayMaker_FsmEvent { } internal static class ChangeState_System_String { } internal static class SendRemoteFsmEvent { } internal static class SendRemoteFsmEventWithData { } internal static class BroadcastEvent_System_String { } internal static class BroadcastEvent_HutongGames_PlayMaker_FsmEvent { } internal static class OnBecameVisible { } internal static class OnBecameInvisible { } internal static class get_Fsm { } internal static class set_Fsm { } internal static class get_FsmName { } internal static class set_FsmName { } internal static class get_FsmDescription { } internal static class set_FsmDescription { } internal static class get_Active { } internal static class get_ActiveStateName { } internal static class get_FsmStates { } internal static class get_FsmEvents { } internal static class get_FsmGlobalTransitions { } internal static class get_FsmVariables { } internal static class get_UsesTemplate { } internal static class OnBeforeSerialize { } internal static class OnAfterDeserialize { } internal static class DebugLog { } internal static class _ctor { } internal static class _cctor { } internal static class AddEventHandlerDelegate { internal static class _ctor { } internal static class Invoke { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class _DoCoroutine_d__46 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } } namespace Md.HeroController { internal static class Update { public delegate void PrefixSignature(HeroController self); public delegate ReturnFlow ControlFlowPrefixSignature(HeroController self); public delegate void PostfixSignature(HeroController self); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(HeroController).GetMethod("Update", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("HeroController", "Update"); } } internal static class Start { public delegate void PrefixSignature(HeroController self); public delegate ReturnFlow ControlFlowPrefixSignature(HeroController self); public delegate void PostfixSignature(HeroController self); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(HeroController).GetMethod("Start", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("HeroController", "Start"); } } internal static class Attack { public delegate void PrefixSignature(HeroController self, ref AttackDirection attackDir); public delegate ReturnFlow ControlFlowPrefixSignature(HeroController self, ref AttackDirection attackDir); public delegate void PostfixSignature(HeroController self, ref AttackDirection attackDir); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(HeroController).GetMethod("Attack", (BindingFlags)(-1), null, new Type[1] { typeof(AttackDirection) }, null) ?? throw new MissingMethodException("HeroController", "Attack"); } } internal static class CanNailArt { public delegate void PrefixSignature(HeroController self); public delegate ReturnFlow ControlFlowPrefixSignature(HeroController self, ref bool returnValue); public delegate void PostfixSignature(HeroController self, ref bool returnValue); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(HeroController).GetMethod("CanNailArt", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("HeroController", "CanNailArt"); } } internal static class GetWillThrowTool { public delegate void PrefixSignature(HeroController self, ref bool reportFailure); public delegate ReturnFlow ControlFlowPrefixSignature(HeroController self, ref bool reportFailure, ref bool returnValue); public delegate void PostfixSignature(HeroController self, ref bool reportFailure, ref bool returnValue); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(HeroController).GetMethod("GetWillThrowTool", (BindingFlags)(-1), null, new Type[1] { typeof(bool) }, null) ?? throw new MissingMethodException("HeroController", "GetWillThrowTool"); } } internal static class UpdateConfig { public delegate void PrefixSignature(HeroController self); public delegate ReturnFlow ControlFlowPrefixSignature(HeroController self); public delegate void PostfixSignature(HeroController self); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(HeroController).GetMethod("UpdateConfig", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("HeroController", "UpdateConfig"); } } internal static class StartAnimationControlToIdle { public delegate void PrefixSignature(HeroController self); public delegate ReturnFlow ControlFlowPrefixSignature(HeroController self); public delegate void PostfixSignature(HeroController self); public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ControlFlowPrefix(ControlFlowPrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault); } public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null) { return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault); } public static MethodBase Target() { return typeof(HeroController).GetMethod("StartAnimationControlToIdle", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("HeroController", "StartAnimationControlToIdle"); } } internal static class get_CurrentNailChargeTime { } internal static class get_CurrentNailChargeBeginTime { } internal static class get_HeroLockState { } internal static class set_HeroLockState { } internal static class get_CanTurn { } internal static class get_fallTimer { } internal static class set_fallTimer { } internal static class get_AudioCtrl { } internal static class get_Bounds { } internal static class get_proxyFSM { } internal static class set_proxyFSM { } internal static class get_NailImbuement { } internal static class set_NailImbuement { } internal static class get_IsSprintMasterActive { } internal static class get_IsGravityApplied { } internal static class set_IsGravityApplied { } internal static class get_sceneEntryGate { } internal static class set_sceneEntryGate { } internal static class get_PositionHistory { } internal static class add_FrostAmountUpdated { } internal static class remove_FrostAmountUpdated { } internal static class add_OnDoubleJumped { } internal static class remove_OnDoubleJumped { } internal static class get_ForceWalkingSound { } internal static class set_ForceWalkingSound { } internal static class get_ForceRunningSound { } internal static class set_ForceRunningSound { } internal static class get_IsStunned { } internal static class set_IsStunned { } internal static class get_SlashComponent { } internal static class set_SlashComponent { } internal static class add_OnHeroInstanceSet { } internal static class remove_OnHeroInstanceSet { } internal static class add_preHeroInPosition { } internal static class remove_preHeroInPosition { } internal static class add_heroInPosition { } internal static class remove_heroInPosition { } internal static class add_heroInPositionDelayed { } internal static class remove_heroInPositionDelayed { } internal static class add_OnTakenDamage { } internal static class remove_OnTakenDamage { } internal static class add_OnTakenDamageExtra { } internal static class remove_OnTakenDamageExtra { } internal static class add_OnDeath { } internal static class remove_OnDeath { } internal static class add_OnHazardDeath { } internal static class remove_OnHazardDeath { } internal static class add_OnHazardRespawn { } internal static class remove_OnHazardRespawn { } internal static class add_BeforeApplyConveyorSpeed { } internal static class remove_BeforeApplyConveyorSpeed { } internal static class add_FlippedSprite { } internal static class remove_FlippedSprite { } internal static class add_HeroLeavingScene { } internal static class remove_HeroLeavingScene { } internal static class get_WarriorState { } internal static class get_ReaperState { } internal static class get_HunterUpgState { } internal static class get_WandererState { } internal static class set_WandererState { } internal static class get_IsUsingQuickening { } internal static class get_IsInLifebloodState { } internal static class set_IsInLifebloodState { } internal static class get_IsWandererLucky { } internal static class get_PoisonHealthCount { } internal static class set_PoisonHealthCount { } internal static class get_Body { } internal static class get_HasAnimationControl { } internal static class get_AnimCtrl { } internal static class get_instance { } internal static class get_SilentInstance { } internal static class get_UnsafeInstance { } internal static class get_Config { } internal static class get_CurrentConfigGroup { } internal static class set_CurrentConfigGroup { } internal static class get_SpriteFlash { } internal static class get_TagDamageEffectPos { } internal static class get_IsRefillSoundsSuppressed { } internal static class get_ForceClampTerminalVelocity { } internal static class set_ForceClampTerminalVelocity { } internal static class get_CriticalHealthValue { } internal static class OnValidate { } internal static class Awake { } internal static class OnDestroy { } internal static class SpawnChildPrefab_UnityEngine_GameObject { } internal static class SendPreHeroInPosition { } internal static class SendHeroInPosition { } internal static class SetConfigGroup { } internal static class SceneInit { } internal static class SetIsMaggoted { } internal static class AddToMaggotCharmTimer { } internal static class DidMaggotCharmHit { } internal static class TickFrostEffect { } internal static class SpawnDeliveryItemEffect { } internal static class RemoveDeliveryItemEffect { } internal static class SetupDeliveryItems { } internal static class TickDeliveryItems { } internal static class GetDeliveryTimers { } internal static class GetTotalFrostSpeed { } internal static class TickSilkEat { } internal static class ShuttleCockCancel { } internal static class ShuttleCockCancelInert { } internal static class FixedUpdate { } internal static class ShoveOff { } internal static class UpdateMoveInput { } internal static class DoMovement { } internal static class DoRecoilMovement { } internal static class ConveyorReset { } internal static class SetBlockSteepSlopes { } internal static class IsSteepSlopeRayHitting { } internal static class UpdateSteepSlopes { } internal static class UpdateEdgeAdjust { } internal static class CanThrowTool_ToolItem_AttackToolBinding_System_Boolean { } internal static class SetToolCooldown { } internal static class ThrowTool { } internal static class DidUseAttackTool { } internal static class ThrowToolEnd { } internal static class QueueLifeBloodStateQuick { } internal static class EnterLifebloodStateQuick { } internal static class TrySetCorrectFacing { } internal static class DoEdgeAdjust { } internal static class Update10 { } internal static class LateUpdate { } internal static class OnLevelUnload { } internal static class OnDisable { } internal static class Move { } internal static class Jump { } internal static class DoubleJump { } internal static class SetSlashComponent { } internal static class DoAttack { } internal static class IncrementAttackCounter { } internal static class AttackCancelWallSlide { } internal static class QueueCancelDownAttack { } internal static class DownAttack { } internal static class DidAttack { } internal static class Dash { } internal static class BackDash { } internal static class Downspike { } internal static class StartAirHang { } internal static class FaceRight { } internal static class FaceLeft { } internal static class ChangedFacing { } internal static class SetBackOnGround { } internal static class SetStartWithWallslide { } internal static class TryFsmCancelToWallSlide { } internal static class SetStartWithShuttlecock { } internal static class SetStartWithJump { } internal static class SetStartWithWallJump { } internal static class SetStartWithTinyJump { } internal static class SetStartWithFlipJump { } internal static class SilkChargeEnd { } internal static class HarpoonDashEnd { } internal static class SetStartWithAnyJump { } internal static class SetStartWithFullJump { } internal static class SetStartWithBackflipJump { } internal static class SetStartWithBrolly { } internal static class SetStartWithDoubleJump { } internal static class SetStartWithWallsprintLaunch { } internal static class SetStartWithDash { } internal static class SetStartWithDashKeepFacing { } internal static class SetStartWithAttack { } internal static class SetStartWithToolThrow { } internal static class SetStartWithDashStabBounce { } internal static class SetStartWithDownSpikeBounce { } internal static class SetStartWithDownSpikeBounceSlightlyShort { } internal static class SetStartWithDownSpikeBounceShort { } internal static class ResetAnimationDownspikeBounce { } internal static class SetStartWithDownSpikeEnd { } internal static class SetStartWithBalloonBounce { } internal static class SetStartWithHarpoonBounce { } internal static class CancelQueuedBounces { } internal static class SetStartWithWitchSprintBounce { } internal static class SetStartWithUpdraftExit { } internal static class SetStartWithScrambleLeap { } internal static class SetStartWithRecoilBack { } internal static class SetStartWithRecoilBackLong { } internal static class SetStartWithWhipPullRecoil { } internal static class SetSuperDashExit { } internal static class SetQuakeExit { } internal static class SetTakeNoDamage { } internal static class EndTakeNoDamage { } internal static class SetStartFromMantle { } internal static class SetStartFromReaperUpperslash { } internal static class SetHeroParent { } internal static class SetBlockFsmMove { } internal static class IsSwimming { } internal static class AddFrost { } internal static class SetFrostAmount { } internal static class NotSwimming { } internal static class GetAirdashed { } internal static class GetCanAirDashCancel { } internal static class EnableRenderer { } internal static class ResetAirMoves { } internal static class SetConveyorSpeed { } internal static class EnterWithoutInput { } internal static class SetDarkness { } internal static class CancelHeroJump { } internal static class StartHarpoonDashCooldown { } internal static class StartHarpoonDashCooldownShort { } internal static class CharmUpdate { } internal static class UpdateBlueHealth { } internal static class HitMaxBlueHealth { } internal static class HitMaxBlueHealthBurst { } internal static class GetMaxFallVelocity { } internal static class ResetLifebloodState { } internal static class checkEnvironment { } internal static class SetBenchRespawn_System_String_System_String_System_Int32_System_Boolean { } internal static class SetBenchRespawn_RespawnMarker_System_String_System_Int32 { } internal static class SetHazardRespawn { } internal static class AddGeo { } internal static class ToZero { } internal static class AddGeoQuietly { } internal static class AddGeoToCounter { } internal static class TakeGeo { } internal static class AddShards { } internal static class TakeShards { } internal static class AddCurrency { } internal static class TakeCurrency { } internal static class GetCurrencyAmount { } internal static class TempStoreCurrency { } internal static class RestoreTempStoredCurrency { } internal static class UpdateGeo { } internal static class CanInput { } internal static class IsPaused { } internal static class IsHunterCrestEquipped { } internal static class IsArchitectCrestEquipped { } internal static class IsShamanCrestEquipped { } internal static class FlipSprite { } internal static class RefreshFacing { } internal static class RefreshScale { } internal static class NeedleArtRecovery { } internal static class CrestAttackRecovery { } internal static class NailParry { } internal static class IsParrying { } internal static class IsParryingActive { } internal static class NailParryRecover { } internal static class QuakeInvuln { } internal static class CrossStitchInvuln { } internal static class StartRevengeWindow { } internal static class StartWandererDashComboWindow { } internal static class ForceSoftLanding { } internal static class PlaySoftLandingEffect { } internal static class TakeQuickDamage_System_Int32_System_Boolean { } internal static class TakeQuickDamage_System_Int32_System_Boolean_System_Boolean { } internal static class TakeQuickDamageSimple { } internal static class TakeFrostDamage { } internal static class TakeChompDamage { } internal static class ApplyTagDamage { } internal static class DoSpecialDamage { } internal static class CriticalDamage { } internal static class CheckParry { } internal static class TakeDamage { } internal static class CheckDeathCatch { } internal static class ActivateVoidAcid { } internal static class IsLavaBellActive { } internal static class UseLavaBell { } internal static class GetLuckyDiceShieldThreshold { } internal static class GetLuckModifier { } internal static class DamageSelf { } internal static class CanTryHarpoonDash { } internal static class HeroDamaged { } internal static class SendHeroDamagedEvent { } internal static class SendHeroDamagedEvent_HeroController_DamageInfo { } internal static class HeroRespawned { } internal static class DoBindReminder { } internal static class WillDoBellBindHit { } internal static class WillDoBellBindHit_System_Boolean { } internal static class DoMossToolHit { } internal static class GetEntryGateName { } internal static class GetShuttlecockTime { } internal static class SilkGain { } internal static class SilkGain_HitInstance { } internal static class NailHitEnemy { } internal static class GetRageModeHealCap { } internal static class GetWitchHealCap { } internal static class GetReaperPayout { } internal static class ResetAllCrestStateMinimal { } internal static class ResetAllCrestState { } internal static class ResetAllCrestState_System_Boolean { } internal static class ResetWarriorRageEffect { } internal static class ResetWarriorCrestState { } internal static class ResetReaperCrestState { } internal static class SetSilkPartsTimeLeft { } internal static class ResetHunterUpgCrestState { } internal static class ResetWandererCrestState { } internal static class AddSilk_System_Int32_System_Boolean { } internal static class ReduceOdours { } internal static class AddSilk_System_Int32_System_Boolean_SilkSpool_SilkAddSource { } internal static class AddSilk_System_Int32_System_Boolean_SilkSpool_SilkAddSource_System_Boolean { } internal static class RefillSilkToMax { } internal static class RefreshSilk { } internal static class AddFinalMaxSilk { } internal static class AddSilkParts_System_Int32 { } internal static class AddSilkParts_System_Int32_System_Boolean { } internal static class TakeSilk_System_Int32 { } internal static class TakeSilk_System_Int32_SilkSpool_SilkTakeSource { } internal static class ClearSpoolMossChunks { } internal static class MaxRegenSilk { } internal static class MaxRegenSilkInstant { } internal static class StartSilkRegen { } internal static class DoSilkRegen { } internal static class ResetSilkRegen { } internal static class SetSilkRegenBlocked { } internal static class SetSilkRegenBlockedSilkHeart { } internal static class UpdateSilkCursed { } internal static class AddHealth { } internal static class RefillHealthToMax { } internal static class SuppressRefillSound { } internal static class RefillAll { } internal static class RefillSilkToMaxSilent { } internal static class BindCompleted { } internal static class RestartWarriorRageEffect { } internal static class BindInterrupted { } internal static class TakeHealth { } internal static class MaxHealth { } internal static class MaxHealthKeepBlue { } internal static class AddToMaxHealth { } internal static class AddToMaxSilk { } internal static class AddToMaxSilkRegen { } internal static class IsHealthCritical { } internal static class DownspikeBounce { } internal static class DownspikeBounceSlightlyShort { } internal static class DownspikeBounceShort { } internal static class Bounce { } internal static class BounceShort { } internal static class BounceHigh { } internal static class ShroomBounce { } internal static class RecoilLeft { } internal static class RecoilRight { } internal static class RecoilRightLong { } internal static class RecoilLeftLong { } internal static class CanRecoil { } internal static class CanCustomRecoil { } internal static class PreventRecoil { } internal static class AllowRecoil { } internal static class Recoil_System_Boolean_System_Boolean { } internal static class DrillDash { } internal static class DrillPull { } internal static class Recoil_System_Int32_System_Single { } internal static class Recoil_System_Boolean_System_Int32_System_Single { } internal static class ChargeSlashRecoilRight { } internal static class ChargeSlashRecoilLeft { } internal static class RecoilDown { } internal static class ForceHardLanding { } internal static class EnterUpdraft { } internal static class ExitUpdraft { } internal static class ResetUpdraft { } internal static class AllowMantle { } internal static class EnterSceneDreamGate { } internal static class EnterScene { } internal static class EnterHeroSubHorizontal { } internal static class EnterHeroSubFadeUp { } internal static class GetSceneFadeUpPadding { } internal static class MoveIfNotInDontDestroyOnLoad { } internal static class ResetHeroInPositionState { } internal static class LeaveScene { } internal static class BetaLeave { } internal static class BetaReturn { } internal static class Respawn { } internal static class HazardRespawnReset { } internal static class ResetShuttlecock { } internal static class HazardRespawn { } internal static class GetState { } internal static class GetCState { } internal static class SetCState { } internal static class CStateExists { } internal static class ResetHardLandingTimer { } internal static class CancelSuperDash { } internal static class CancelDownSpike { } internal static class CancelDownSpikeBounces { } internal static class RelinquishControlNotVelocity { } internal static class get_ControlVersion { } internal static class set_ControlVersion { } internal static class RelinquishControl { } internal static class RegainControl { } internal static class RegainControl_System_Boolean { } internal static class OnShuttleCockJump { } internal static class PreventCastByDialogueEnd { } internal static class CanDoFsmMove { } internal static class IsHardLanding { } internal static class CanCast { } internal static class CanBind { } internal static class CanDoFSMCancelMove { } internal static class CanDoSpecial { } internal static class CanQuickMap { } internal static class CanQuickMapBench { } internal static class CanQuickMap_System_Boolean { } internal static class IsLostInSlab { } internal static class HasNoMap { } internal static class CanInspect { } internal static class CanBackDash { } internal static class CanPlayNeedolin { } internal static class HasNeedolin { } internal static class CanInteract { } internal static class CanTakeControl { } internal static class CanOpenInventory { } internal static class SetDamageMode_System_Int32 { } internal static class SetDamageModeFSM { } internal static class ResetQuakeDamage { } internal static class SetDamageMode_GlobalEnums_DamageMode { } internal static class get_AnimationControlVersion { } internal static class set_AnimationControlVersion { } internal static class StopAnimationControl { } internal static class StopAnimationControlVersioned { } internal static class StartAnimationControl { } internal static class StartAnimationControl_System_Int32 { } internal static class StartAnimationControlRunning { } internal static class StartAnimationControlToIdleForcePlay { } internal static class IgnoreInput { } internal static class IgnoreInputWithoutReset { } internal static class AcceptInput { } internal static class Pause { } internal static class UnPause { } internal static class NearBench { } internal static class SetWalkZone { } internal static class ResetState { } internal static class StopPlayingAudio { } internal static class PauseAudio { } internal static class UnPauseAudio { } internal static class PauseInput { } internal static class UnPauseInput { } internal static class SetCanSoftLand { } internal static class TrySpawnSoftLandingPrefab { } internal static class CanSoftLand { } internal static class PreventSoftLand { } internal static class SpawnSoftLandingPrefab { } internal static class AffectedByGravity { } internal static class TryRestoreGravity { } internal static class ResetGravity { } internal static class ResetVelocity { } internal static class AddInputBlocker { } internal static class RemoveInputBlocker { } internal static class IsInputBlocked { } internal static class IsPressingOnlyDown { } internal static class LookForInput { } internal static class ForceTouchingWall { } internal static class BeginWallSlide { } internal static class WallKickoff { } internal static class TryDoWallJumpFromMove { } internal static class LookForQueueInput { } internal static class ResetInputQueues { } internal static class HeroJump { } internal static class ResetStartWithJumps { } internal static class PreventShuttlecock { } internal static class HeroJump_System_Boolean { } internal static class OnHeroJumped { } internal static class BecomeAirborne { } internal static class HeroJumpNoEffect { } internal static class ClearActionsInputState { } internal static class ClearJumpInputState { } internal static class DoWallJump { } internal static class DoDoubleJump { } internal static class SetBlockFootstepAudio { } internal static class StartFloat { } internal static class DoHardLanding { } internal static class DoHardLandingEffect { } internal static class DoHardLandingEffectNoHit { } internal static class HeroDashPressed { } internal static class HeroDash { } internal static class SetDashCooldownTimer { } internal static class StartDashEffect { } internal static class StartFallRumble { } internal static class IsOnWall { } internal static class CanExitNoInput { } internal static class SetState { } internal static class FinishedEnteringScene { } internal static class ResetSceneExitedStates { } internal static class Die { } internal static class GetHeroDeathPrefab { } internal static class ElevatorReset { } internal static class DieFromHazard { } internal static class StartRecoil { } internal static class StartInvulnerable { } internal static class Invulnerable { } internal static class AddInvulnerabilitySource { } internal static class RemoveInvulnerabilitySource { } internal static class FirstFadeIn { } internal static class FallCheck { } internal static class OutOfBoundsCheck { } internal static class ConfirmOutOfBounds { } internal static class FailSafeChecks { } internal static class LocateSpawnPoint { } internal static class CancelJump { } internal static class CancelDoubleJump { } internal static class CancelDash { } internal static class StopDashEffect { } internal static class CancelWallsliding { } internal static class CancelBackDash { } internal static class CancelDownAttack { } internal static class CancelAttack { } internal static class CancelAttack_System_Boolean { } internal static class CancelDownspike { } internal static class CancelDownspikeAndDamage { } internal static class CancelAttackNotDownspikeBounce { } internal static class CancelAttackNotDownspikeBounce_System_Boolean { } internal static class CancelAttackNotSlash { } internal static class CancelBounce { } internal static class CancelRecoilHorizontal { } internal static class CancelDamageRecoil { } internal static class CancelDamageRecoilSimple { } internal static class CancelFallEffects { } internal static class ResetAttacksShared { } internal static class ResetAttacks { } internal static class StopNailChargeEffects { } internal static class CancelNailCharge { } internal static class ResetAttacksDash { } internal static class ResetMotion { } internal static class ResetMotionNotVelocity { } internal static class ResetLook { } internal static class ResetInput { } internal static class CheckAndRequestUnlock { } internal static class IsBlocked { } internal static class AddLockStates { } internal static class RemoveLockStates { } internal static class SetLockStates { } internal static class AddUnlockRequest { } internal static class RemoveUnlockRequest { } internal static class BackOnGround { } internal static class JumpReleased { } internal static class SetDoFullJump { } internal static class FinishedDashing { } internal static class FinishDownspike { } internal static class FinishDownspike_System_Boolean { } internal static class SetStartingMotionState { } internal static class SetStartingMotionState_System_Boolean { } internal static class TileMapTest { } internal static class TilemapTestPause { } internal static class StopTilemapTest { } internal static class TryDoTerrainThunk { } internal static class ResetFixedUpdateCaches { } internal static class CheckStillTouchingWall { } internal static class CheckForBump_GlobalEnums_CollisionSide { } internal static class CheckForBump_GlobalEnums_CollisionSide_out_System_Boolean_out_System_Boolean_out_System_Boolean { } internal static class CheckNearRoof { } internal static class CheckClamberLedge { } internal static class CheckTouchingGround { } internal static class CheckTouchingGround_System_Boolean { } internal static class CheckTouching { } internal static class CheckTouchingAdvanced { } internal static class FindCollisionDirection { } internal static class CanJump { } internal static class AllowShuttleCock { } internal static class CouldJumpCancel { } internal static class CanDoubleJump { } internal static class CanInfiniteAirJump { } internal static class CanSwim { } internal static class CanDash { } internal static class DashCooldownReady { } internal static class HasHarpoonDash { } internal static class CanHarpoonDash { } internal static class CanSprint { } internal static class CanSuperJump { } internal static class CanAttack { } internal static class ThrowToolCooldownReady { } internal static class CanThrowTool { } internal static class CanThrowTool_System_Boolean { } internal static class CanStartWithThrowTool { } internal static class CanAttackAction { } internal static class CanDownAttack { } internal static class TryQueueWallJumpInterrupt { } internal static class IsAttackLocked { } internal static class IsDashLocked { } internal static class CanFloat { } internal static class IsApproachingSolidGround { } internal static class CanNailCharge { } internal static class IsFacingNearWall_System_Single_UnityEngine_Color { } internal static class IsFacingNearWall_System_Boolean_System_Single_UnityEngine_Color { } internal static class IsFacingNearWall_System_Single_UnityEngine_Color_out_UnityEngine_Collider2D { } internal static class IsFacingNearWall_System_Boolean_System_Single_UnityEngine_Color_out_UnityEngine_Collider2D { } internal static class IsFacingNearSlideableWall { } internal static class CanStartWithWallSlide { } internal static class CanWallSlide { } internal static class CanContinueWallSlide { } internal static class CanTakeDamage { } internal static class CanTakeDamageIgnoreInvul { } internal static class CanBeGrabbed_System_Boolean { } internal static class CanBeGrabbed { } internal static class CanBeBarnacleGrabbed { } internal static class CanWallJump { } internal static class CanChainWallJumps { } internal static class CanWallScramble { } internal static class ShouldHardLand { } internal static class IsOnGroundLayer { } internal static class OnCollisionEnter2D { } internal static class HandleCollisionTouching { } internal static class OnCollisionStay2D { } internal static class OnCollisionExit2D { } internal static class LeftGround { } internal static class SetupGameRefs { } internal static class SetupPools { } internal static class FilterInput { } internal static class FindGroundPoint { } internal static class FindGroundPointY { } internal static class TryFindGroundPoint { } internal static class StartDownspikeInvulnerability { } internal static class StartDownspikeInvulnerabilityLong { } internal static class CancelDownspikeInvulnerability { } internal static class DetachHeroLight { } internal static class ReattachHeroLight { } internal static class SetAllowNailChargingWhileRelinquished { } internal static class SetAllowRecoilWhileRelinquished { } internal static class SetRecoilZeroVelocity { } internal static class MoveToPositionX { } internal static class ToggleNoClip { } internal static class GetIsNoClip { } internal static class GetRunSpeed { } internal static class GetWalkSpeed { } internal static class ActivateQuickening { } internal static class StartRoarLock { } internal static class StartRoarLockNoRecoil { } internal static class StopRoarLock { } internal static class CocoonBroken { } internal static class CocoonBroken_System_Boolean { } internal static class CocoonBroken_System_Boolean_System_Boolean { } internal static class CocoonFloatRoutine { } internal static class RecordLeaveSceneCState { } internal static class CleanSpawnedDeliveryEffects { } internal static class LeavingScene { } internal static class DoSprintSkid { } internal static class AddExtraAirMoveVelocity { } internal static class ClearEffectsInstant { } internal static class ClearEffects { } internal static class ClearEffectsLite { } internal static class ResetMaggotCharm { } internal static class StopQuickening { } internal static class SilkTaunted { } internal static class SilkTauntEffectConsume { } internal static class RingTaunted { } internal static class RingTauntEffectConsume { } internal static class ResetTauntEffects { } internal static class ResetLavaBell { } internal static class GetVibrationCtrl { } internal static class ReportPoisonHealthAdded { } internal static class ReportPoisonHealthRemoved { } internal static class _ctor { } internal static class _cctor { } internal static class ITagDamageTakerOwner_get_transform { } internal static class ConfigGroup { internal static class get_NormalSlash { } internal static class set_NormalSlash { } internal static class get_NormalSlashDamager { } internal static class set_NormalSlashDamager { } internal static class get_AlternateSlash { } internal static class set_AlternateSlash { } internal static class get_AlternateSlashDamager { } internal static class set_AlternateSlashDamager { } internal static class get_UpSlash { } internal static class set_UpSlash { } internal static class get_UpSlashDamager { } internal static class set_UpSlashDamager { } internal static class get_AltUpSlash { } internal static class set_AltUpSlash { } internal static class get_AltUpSlashDamager { } internal static class set_AltUpSlashDamager { } internal static class get_DownSlash { } internal static class set_DownSlash { } internal static class get_Downspike { } internal static class set_Downspike { } internal static class get_DownSlashDamager { } internal static class set_DownSlashDamager { } internal static class get_AltDownSlash { } internal static class set_AltDownSlash { } internal static class get_AltDownspike { } internal static class set_AltDownspike { } internal static class get_AltDownSlashDamager { } internal static class set_AltDownSlashDamager { } internal static class get_WallSlash { } internal static class set_WallSlash { } internal static class get_WallSlashDamager { } internal static class set_WallSlashDamager { } internal static class Setup { } internal static class _ctor { } } internal static class DecayingVelocity { internal static class _ctor { } internal static class SkipBehaviours { internal static class _ctor { } } } internal static class SilkEatTracker { internal static class _ctor { } } internal static class DeliveryTimer { internal static class _ctor { } } internal static class HeroSetDelegate { internal static class _ctor { } internal static class Invoke { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class HeroInPosition { internal static class _ctor { } internal static class Invoke { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class DamageTakenDelegate { internal static class _ctor { } internal static class Invoke { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class DamageInfo { internal static class _ctor { } internal static class _ctor_GlobalEnums_HazardType { } } internal static class WarriorCrestStateInfo { internal static class _ctor { } } internal static class ReaperCrestStateInfo { internal static class _ctor { } } internal static class HunterUpgCrestStateInfo { internal static class _ctor { } internal static class get_IsComboMeterAboveExtra { } } internal static class WandererCrestStateInfo { internal static class _ctor { } } internal static class __c__DisplayClass1241_0 { internal static class _ctor { } } internal static class __c__DisplayClass695_0 { internal static class _ctor { } } internal static class __c__DisplayClass983_0 { internal static class _ctor { } } internal static class __c__DisplayClass986_0 { internal static class _ctor { } } internal static class _BetaLeave_d__981 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _BetaReturn_d__982 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _CocoonFloatRoutine_d__1253 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _Die_d__1101 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _DieFromHazard_d__1104 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _EnterHeroSubFadeUp_d__976 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _EnterHeroSubHorizontal_d__975 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _EnterScene_d__974 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _FirstFadeIn_d__1112 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _HazardRespawn_d__986 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _Invulnerable_d__1109 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _MoveToPositionX_d__1241 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _Respawn_d__983 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _StartRecoil_d__1105 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } internal static class _TilemapTestPause_d__1162 { internal static class _ctor { } internal static class System_IDisposable_Dispose { } internal static class MoveNext { } internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current { } internal static class System_Collections_IEnumerator_Reset { } internal static class System_Collections_IEnumerator_get_Current { } } } namespace MonoDetour.HookGen { internal static class DefaultMonoDetourManager { internal static MonoDetourManager Instance { get; } = New(); internal static MonoDetourManager New() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Expected O, but got Unknown return new MonoDetourManager(typeof(DefaultMonoDetourManager).Assembly.GetName().Name); } } [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class, AllowMultiple = true, Inherited = false)] internal class MonoDetourTargetsAttribute : Attribute, IMonoDetourTargets { public Type? TargetType { get; } public bool IncludeNestedTypes { get; set; } public string[]? Members { get; set; } public string[]? MemberNamePrefixes { get; set; } public string[]? MemberNameSuffixes { get; set; } public bool GenerateControlFlowVariants { get; set; } public MonoDetourTargetsAttribute(Type? targetType = null) { TargetType = targetType; IncludeNestedTypes = true; base..ctor(); } } } namespace BepInEx { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class BepInAutoPluginAttribute : Attribute { public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace BepInEx.Preloader.Core.Patching { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class PatcherAutoPluginAttribute : Attribute { public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace StubbornHornet { public enum ArrowDirection { Up, Down, Left, Right } public class ArrowGame : MonoBehaviour { [CompilerGenerated] private sealed class <ActivateAndGetCursorSpriteCoroutine>d__40 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public Transform cursorRightTransform; public Action<Sprite> callback; public ArrowGame <>4__this; private GameObject <tempInstance>5__2; private Image <tempImage>5__3; private Animator <tempAnimator>5__4; private Sprite <result>5__5; private int <i>5__6; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ActivateAndGetCursorSpriteCoroutine>d__40(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <tempInstance>5__2 = null; <tempImage>5__3 = null; <tempAnimator>5__4 = null; <result>5__5 = null; <>1__state = -2; } private bool MoveNext() { //IL_00c8: Unknown result type (might be due to invalid IL or missing references) int num = <>1__state; ArrowGame arrowGame = <>4__this; switch (num) { default: return false; case 0: { <>1__state = -1; GameObject gameObject = ((Component)cursorRightTransform).gameObject; Image component = gameObject.GetComponent<Image>(); if ((Object)(object)component != (Object)null && (Object)(object)component.sprite != (Object)null && ((Object)component.sprite).name != "blank_frame") { callback(component.sprite); return false; } <tempInstance>5__2 = Object.Instantiate<GameObject>(gameObject); ((Object)<tempInstance>5__2).name = "TempCursorRight"; <tempInstance>5__2.SetActive(true); <tempInstance>5__2.transform.SetParent((Transform)null); <tempInstance>5__2.transform.position = new Vector3(10000f, 10000f, 0f); <tempImage>5__3 = <tempInstance>5__2.GetComponent<Image>(); <tempAnimator>5__4 = <tempInstance>5__2.GetComponent<Animator>(); if ((Object)(object)<tempAnimator>5__4 != (Object)null) { ((Behaviour)<tempAnimator>5__4).enabled = true; <tempAnimator>5__4.Rebind(); <tempAnimator>5__4.Update(0f); if (arrowGame.HasAnimatorParameter(<tempAnimator>5__4, "show")) { <tempAnimator>5__4.ResetTrigger("hide"); <tempAnimator>5__4.SetTrigger("show"); } } <result>5__5 = null; <i>5__6 = 0; break; } case 1: <>1__state = -1; <i>5__6++; break; } if (<i>5__6 < 30) { if (!((Object)(object)<tempImage>5__3 != (Object)null) || !((Object)(object)<tempImage>5__3.sprite != (Object)null) || !(((Object)<tempImage>5__3.sprite).name != "blank_frame")) { if ((Object)(object)<tempAnimator>5__4 != (Object)null) { <tempAnimator>5__4.Update(0.016f); } <>2__current = null; <>1__state = 1; return true; } <result>5__5 = <tempImage>5__3.sprite; } Object.Destroy((Object)(object)<tempInstance>5__2); callback(<result>5__5); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <LoadAudioClips>d__34 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ArrowGame <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LoadAudioClips>d__34(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { int num = <>1__state; ArrowGame arrowGame = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <>2__current = null; <>1__state = 1; return true; case 1: <>1__state = -1; arrowGame._successClip = arrowGame.LoadAudioClipFromResources("StubbornHornet.assets.success.wav"); arrowGame._failClip = arrowGame.LoadAudioClipFromResources("StubbornHornet.assets.fail.wav"); arrowGame.Log($"Audio loaded: success={(Object)(object)arrowGame._successClip != (Object)null}, fail={(Object)(object)arrowGame._failClip != (Object)null}"); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <LoadCursorSpriteWithActivation>d__39 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ArrowGame <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LoadCursorSpriteWithActivation>d__39(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { int num = <>1__state; ArrowGame arrowGame = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; arrowGame._arrowSprites = (Sprite[])(object)new Sprite[4]; <>2__current = null; <>1__state = 1; return true; case 1: <>1__state = -1; arrowGame.LoadFallbackSprites(); arrowGame.UpdateArrowDisplay(); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <PlayErrorEffectCoroutine>d__31 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ArrowGame <>4__this; private SpriteRenderer <targetArrow>5__2; private Sprite <originalSprite>5__3; private float <duration>5__4; private float <elapsed>5__5; private Vector3 <originalPos>5__6; private float <shakeAmount>5__7; private int <shakeFrequency>5__8; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <PlayErrorEffectCoroutine>d__31(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <targetArrow>5__2 = null; <originalSprite>5__3 = null; <>1__state = -2; } private bool MoveNext() { //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) int num = <>1__state; ArrowGame arrowGame = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <targetArrow>5__2 = arrowGame._arrowRenderers[0]; if ((Object)(object)<targetArrow>5__2 == (Object)null) { arrowGame._isPlayingErrorEffect = false; return false; } <originalSprite>5__3 = <targetArrow>5__2.sprite; if ((Object)(object)arrowGame._redArrowSprite != (Object)null) { <targetArrow>5__2.sprite = arrowGame._redArrowSprite; } <duration>5__4 = 0.2f; <elapsed>5__5 = 0f; <originalPos>5__6 = ((Component)<targetArrow>5__2).transform.localPosition; <shakeAmount>5__7 = 0.08f; <shakeFrequency>5__8 = 15; break; case 1: <>1__state = -1; break; } if (<elapsed>5__5 < <duration>5__4) { <elapsed>5__5 += Time.deltaTime; float num2 = 1f - <elapsed>5__5 / <duration>5__4; float num3 = Mathf.Sin(<elapsed>5__5 * (float)<shakeFrequency>5__8 * MathF.PI * 2f) * <shakeAmount>5__7 * num2; ((Component)<targetArrow>5__2).transform.localPosition = new Vector3(<originalPos>5__6.x + num3, <originalPos>5__6.y, 0f); <>2__current = null; <>1__state = 1; return true; } ((Component)<targetArrow>5__2).transform.localPosition = <originalPos>5__6; <targetArrow>5__2.sprite = <originalSprite>5__3; arrowGame._isPlayingErrorEffect = false; return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <PlaySuccessEffectCoroutine>d__28 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ArrowGame <>4__this; private SpriteRenderer <targetArrow>5__2; private Sprite <originalSprite>5__3; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <PlaySuccessEffectCoroutine>d__28(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <targetArrow>5__2 = null; <originalSprite>5__3 = null; <>1__state = -2; } private bool MoveNext() { //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Expected O, but got Unknown int num = <>1__state; ArrowGame arrowGame = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <targetArrow>5__2 = arrowGame._arrowRenderers[0]; if ((Object)(object)<targetArrow>5__2 == (Object)null || (Object)(object)arrowGame._greenArrowSprite == (Object)null) { return false; } <originalSprite>5__3 = <targetArrow>5__2.sprite; <targetArrow>5__2.sprite = arrowGame._greenArrowSprite; <>2__current = (object)new WaitForSeconds(0.15f); <>1__state = 1; return true; case 1: <>1__state = -1; <targetArrow>5__2.sprite = <originalSprite>5__3; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <ResetFailSoundFlag>d__27 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ArrowGame <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ResetFailSoundFlag>d__27(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown int num = <>1__state; ArrowGame arrowGame = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(arrowGame._failClip.length); <>1__state = 1; return true; case 1: <>1__state = -1; arrowGame._isPlayingFailSound = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <RollArrowsWithAnimation>d__55 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ArrowGame <>4__this; private float <elapsed>5__2; private Vector3[] <startPositions>5__3; private Vector3[] <targetPositions>5__4; private int <topIndex>5__5; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RollArrowsWithAnimation>d__55(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <startPositions>5__3 = null; <targetPositions>5__4 = null; <>1__state = -2; } private bool MoveNext() { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) int num = <>1__state; ArrowGame arrowGame = <>4__this; switch (num) { default: return false; case 0: { <>1__state = -1; arrowGame._isAnimating = true; <elapsed>5__2 = 0f; <startPositions>5__3 = (Vector3[])(object)new Vector3[arrowGame._arrowCount]; <targetPositions>5__4 = (Vector3[])(object)new Vector3[arrowGame._arrowCount]; <topIndex>5__5 = arrowGame._arrowCount - 1; for (int i = 0; i < arrowGame._arrowCount; i++) { if (!((Object)(object)arrowGame._arrowRenderers[i] == (Object)null)) { <startPositions>5__3[i] = ((Component)arrowGame._arrowRenderers[i]).transform.localPosition; <targetPositions>5__4[i] = <startPositions>5__3[i] + new Vector3(0f, -0.6f, 0f); } } break; } case 1: <>1__state = -1; break; } if (<elapsed>5__2 < 0.2f) { <elapsed>5__2 += Time.deltaTime; float num2 = Mathf.SmoothStep(0f, 1f, <elapsed>5__2 / 0.2f); for (int j = 0; j < arrowGame._arrowCount; j++) { if ((Object)(object)arrowGame._arrowRenderers[j] != (Object)null) { ((Component)arrowGame._arrowRenderers[j]).transform.localPosition = Vector3.Lerp(<startPositions>5__3[j], <targetPositions>5__4[j], num2); } } if ((Object)(object)arrowGame._arrowRenderers[0] != (Object)null) { Color color = arrowGame._arrowRenderers[0].color; color.a = Mathf.Lerp(1f, 0f, num2); arrowGame._arrowRenderers[0].color = color; } if ((Object)(object)arrowGame._arrowRenderers[<topIndex>5__5] != (Object)null) { Color color2 = arrowGame._arrowRenderers[<topIndex>5__5].color; color2.a = Mathf.Lerp(0f, 1f, num2); arrowGame._arrowRenderers[<topIndex>5__5].color = color2; } <>2__current = null; <>1__state = 1; return true; } for (int num3 = arrowGame._arrowCount - 1; num3 > 0; num3--) { arrowGame._currentArrows[num3] = arrowGame._currentArrows[num3 - 1]; } arrowGame._currentArrows[0] = (ArrowDirection)Random.Range(0, 4); arrowGame.ResetArrowPositions(); arrowGame.UpdateArrowDisplay(); for (int k = 0; k < arrowGame._arrowCount - 1; k++) { if ((Object)(object)arrowGame._arrowRenderers[k] != (Object)null) { Color color3 = arrowGame._arrowRenderers[k].color; color3.a = arrowGame._arrowOpacity; arrowGame._arrowRenderers[k].color = color3; } } arrowGame.SetTopArrowTransparent(); arrowGame._isAnimating = false; return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private int _arrowCount = 3; private float _arrowOpacity = 1f; private const float ArrowSpacing = 0.6f; private const float HeightOffset = 2.3f; private SpriteRenderer[] _arrowRenderers; private ArrowDirection[] _currentArrows; private Sprite[] _arrowSprites; private Sprite _redArrowSprite; private Sprite _greenArrowSprite; private GameObject _container; private bool _isAnimating; private bool _isEnabled = true; private const float AnimationDuration = 0.2f; private AudioSource _audioSource; private AudioClip _successClip; private AudioClip _failClip; private float _soundVolume = 0.5f; private bool _isPlayingFailSound; private bool _isPlayingErrorEffect; public ArrowDirection CurrentTargetArrow => _currentArrows[_arrowCount - 1]; public bool IsAnimating => _isAnimating; public bool IsAttackAllowed(AttackDirection dir) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected I4, but got Unknown ArrowDirection arrowDirection = _currentArrows[_arrowCount - 1]; switch ((int)dir) { case 1: return arrowDirection == ArrowDirection.Up; case 2: return arrowDirection == ArrowDirection.Down; case 0: if ((Object)(object)HeroController.instance == (Object)null) { return false; } if (!HeroController.instance.cState.facingRight) { return arrowDirection == ArrowDirection.Left; } return arrowDirection == ArrowDirection.Right; default: return false; } } public bool IsSpellAllowed(ArrowDirection dir) { return _currentArrows[_arrowCount - 1] == dir; } public void OnSuccessfulAction() { if (!_isAnimating) { RollArrows(); ((MonoBehaviour)this).StartCoroutine(PlaySuccessEffectCoroutine()); PlaySuccessSound(); } } private void PlaySuccessSound() { if ((Object)(object)_audioSource == (Object)null) { Log("PlaySuccessSound: AudioSource is null"); return; } if ((Object)(object)_successClip == (Object)null) { Log("PlaySuccessSound: successClip is null"); return; } Log($"Playing success sound with volume {_soundVolume}"); _audioSource.PlayOneShot(_successClip, _soundVolume); } private void PlayFailSound() { if (!_isPlayingFailSound) { if ((Object)(object)_audioSource == (Object)null) { Log("PlayFailSound: AudioSource is null"); return; } if ((Object)(object)_failClip == (Object)null) { Log("PlayFailSound: failClip is null"); return; } Log($"Playing fail sound with volume {_soundVolume}"); _isPlayingFailSound = true; _audioSource.PlayOneShot(_failClip, _soundVolume); ((MonoBehaviour)this).StartCoroutine(ResetFailSoundFlag()); } } [IteratorStateMachine(typeof(<ResetFailSoundFlag>d__27))] private IEnumerator ResetFailSoundFlag() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ResetFailSoundFlag>d__27(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<PlaySuccessEffectCoroutine>d__28))] private IEnumerator PlaySuccessEffectCoroutine() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <PlaySuccessEffectCoroutine>d__28(0) { <>4__this = this }; } public void TriggerErrorEffect() { if (!((Object)(object)_arrowRenderers[0] == (Object)null) && !_isPlayingErrorEffect) { _isPlayingErrorEffect = true; ((MonoBehaviour)this).StartCoroutine(PlayErrorEffectCoroutine()); PlayFailSound(); } } [IteratorStateMachine(typeof(<PlayErrorEffectCoroutine>d__31))] private IEnumerator PlayErrorEffectCoroutine() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <PlayErrorEffectCoroutine>d__31(0) { <>4__this = this }; } private void Start() { InitAudioSource(); CleanupOldArrows(); ((MonoBehaviour)this).StartCoroutine(LoadCursorSpriteWithActivation()); ((MonoBehaviour)this).StartCoroutine(LoadAudioClips()); CreateArrowDisplay(); GenerateNewArrows(); SetModEnabled(_isEnabled); } private void InitAudioSource() { if (!((Object)(object)HeroController.instance == (Object)null)) { GameObject gameObject = ((Component)HeroController.instance).gameObject; _audioSource = gameObject.GetComponent<AudioSource>(); if ((Object)(object)_audioSource == (Object)null) { _audioSource = gameObject.AddComponent<AudioSource>(); _audioSource.spatialBlend = 0f; _audioSource.playOnAwake = false; } } } [IteratorStateMachine(typeof(<LoadAudioClips>d__34))] private IEnumerator LoadAudioClips() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LoadAudioClips>d__34(0) { <>4__this = this }; } private AudioClip LoadAudioClipFromResources(string name) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown WavData val = new WavData(); val.Parse(Assembly.GetExecutingAssembly().GetManifestResourceStream(name), (Action<string>)null); float[] samples = val.GetSamples(); AudioClip obj = AudioClip.Create(name, samples.Length / val.FormatChunk.NumChannels, (int)val.FormatChunk.NumChannels, (int)val.FormatChunk.SampleRate, false); obj.SetData(samples, 0); return obj; } private void CleanupOldArrows() { GameObject[] array = Object.FindObjectsOfType<GameObject>(); foreach (GameObject val in array) { if (((Object)val).name == "ArrowContainer" && (Object)(object)val.transform.parent == (Object)(object)HeroController.instance?.transform) { Object.Destroy((Object)(object)val); } } } private void Update() { } private void LateUpdate() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_container != (Object)null && (Object)(object)HeroController.instance != (Object)null) { float x = HeroController.instance.transform.lossyScale.x; _container.transform.localScale = new Vector3(1f / x, 1f, 1f); } } [IteratorStateMachine(typeof(<LoadCursorSpriteWithActivation>d__39))] private IEnumerator LoadCursorSpriteWithActivation() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LoadCursorSpriteWithActivation>d__39(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<ActivateAndGetCursorSpriteCoroutine>d__40))] private IEnumerator ActivateAndGetCursorSpriteCoroutine(Transform cursorRightTransform, Action<Sprite> callback) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ActivateAndGetCursorSpriteCoroutine>d__40(0) { <>4__this = this, cursorRightTransform = cursorRightTransform, callback = callback }; } private bool HasAnimatorParameter(Animator animator, string paramName) { if ((Object)(object)animator == (Object)null || (Object)(object)animator.runtimeAnimatorController == (Object)null) { return false; } AnimatorControllerParameter[] parameters = animator.parameters; for (int i = 0; i < parameters.Length; i++) { if (parameters[i].name == paramName) { return true; } } return false; } private void LoadFallbackSprites() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) try { Assembly executingAssembly = Assembly.GetExecutingAssembly(); string name = "StubbornHornet.assets.left-arrow.png"; using (Stream stream = executingAssembly.GetManifestResourceStream(name)) { if (stream == null) { return; } byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); Texture2D val = new Texture2D(2, 2, (TextureFormat)4, false); ImageConversion.LoadImage(val, array); val.Apply(); Sprite val2 = Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 1024f); for (int i = 0; i < 4; i++) { _arrowSprites[i] = val2; } } _redArrowSprite = LoadSpriteFromResources("StubbornHornet.assets.red-arrow.png"); _greenArrowSprite = LoadSpriteFromResources("StubbornHornet.assets.green-arrow.png"); } catch { } } private Sprite LoadSpriteFromResources(string resourceName) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) try { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName); if (stream == null) { return null; } byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); Texture2D val = new Texture2D(2, 2, (TextureFormat)4, false); ImageConversion.LoadImage(val, array); val.Apply(); return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 1024f); } catch { return null; } } private void SetArrowRotation(SpriteRenderer sr, ArrowDirection dir) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) switch (dir) { case ArrowDirection.Right: ((Component)sr).transform.localRotation = Quaternion.Euler(0f, 180f, 0f); break; case ArrowDirection.Left: ((Component)sr).transform.localRotation = Quaternion.identity; break; case ArrowDirection.Up: ((Component)sr).transform.localRotation = Quaternion.Euler(0f, 0f, -90f); break; case ArrowDirection.Down: ((Component)sr).transform.localRotation = Quaternion.Euler(0f, 0f, 90f); break; } } private void Log(string message) { StubbornHornetPlugin.logger.LogDebug((object)("[ArrowGame] " + message)); } public void SetModEnabled(bool enabled) { _isEnabled = enabled; if ((Object)(object)_container != (Object)null) { _container.SetActive(enabled); } } public void SetConfig(int arrowCount, float arrowOpacity, float soundVolume) { _arrowCount = arrowCount; _arrowOpacity = arrowOpacity; _soundVolume = soundVolume / 10f; ApplyOpacity(arrowOpacity); } private void ApplyOpacity(float opacity) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) if (_arrowRenderers == null) { return; } for (int i = 0; i < _arrowRenderers.Length; i++) { if ((Object)(object)_arrowRenderers[i] != (Object)null) { Color color = _arrowRenderers[i].color; color.a = opacity; _arrowRenderers[i].color = color; } } } public void UpdateConfig(int arrowCount, float arrowOpacity, float soundVolume) { bool num = arrowCount != _arrowCount; _arrowCount = arrowCount; _arrowOpacity = arrowOpacity; _soundVolume = soundVolume / 10f; if (num && (Object)(object)_container != (Object)null) { Object.Destroy((Object)(object)_container); CreateArrowDisplay(); GenerateNewArrows(); } else { ApplyOpacity(arrowOpacity); SetTopArrowTransparent(); } } private void CreateArrowDisplay() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) _container = new GameObject("ArrowContainer"); _container.transform.SetParent(HeroController.instance.transform); _container.transform.localPosition = Vector3.zero; _arrowRenderers = (SpriteRenderer[])(object)new SpriteRenderer[_arrowCount]; _currentArrows = new ArrowDirection[_arrowCount]; Color color = default(Color); ((Color)(ref color))..ctor(1f, 1f, 1f, _arrowOpacity); for (int i = 0; i < _arrowCount; i++) { GameObject val = new GameObject($"Arrow_{i}"); val.transform.SetParent(_container.transform); val.transform.localPosition = new Vector3(0f, 2.3f + (float)i * 0.6f, 0f); SpriteRenderer val2 = val.AddComponent<SpriteRenderer>(); ((Renderer)val2).sortingLayerName = "Effects"; ((Renderer)val2).sortingOrder = 100; val2.color = color; ((Component)val2).transform.localScale = new Vector3(7.5f, 7.5f, 1f); _arrowRenderers[i] = val2; } } private void GenerateNewArrows() { for (int i = 0; i < _arrowCount; i++) { _currentArrows[i] = (ArrowDirection)Random.Range(0, 4); } UpdateArrowDisplay(); SetTopArrowTransparent(); } private void UpdateArrowDisplay() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < _arrowCount; i++) { if (!((Object)(object)_arrowRenderers[i] == (Object)null)) { int num = _arrowCount - 1 - i; _arrowRenderers[i].sprite = _arrowSprites[(int)_currentArrows[num]]; SetArrowRotation(_arrowRenderers[i], _currentArrows[num]); float num2 = 0f; if (_currentArrows[num] == ArrowDirection.Right) { num2 = 0f; } else if (_currentArrows[num] == ArrowDirection.Left) { num2 = -0f; } ((Component)_arrowRenderers[i]).transform.localPosition = new Vector3(num2, 2.3f + (float)i * 0.6f, 0f); } } } private void SetTopArrowTransparent() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) int num = _arrowCount - 1; if ((Object)(object)_arrowRenderers[num] != (Object)null) { Color color = _arrowRenderers[num].color; color.a = 0f; _arrowRenderers[num].color = color; } } private void RollArrows() { ((MonoBehaviour)this).StartCoroutine(RollArrowsWithAnimation()); } [IteratorStateMachine(typeof(<RollArrowsWithAnimation>d__55))] private IEnumerator RollArrowsWithAnimation() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RollArrowsWithAnimation>d__55(0) { <>4__this = this }; } private void ResetArrowPositions() { //IL_004f: Unknown result type (might be due to invalid IL or mis