Decompiled source of StubbornHornet v1.0.0
StubbornHornet.dll
Decompiled 2 weeks 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