Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of KeybindChaos v0.1.0
KeybindChaos.dll
Decompiled 7 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; 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 CanvasUtil; using GlobalEnums; using InControl; using JetBrains.Annotations; using KeybindChaos.Components; using Md.HeroController; using Md.InputHandler; using Microsoft.CodeAnalysis; using MonoDetour; using MonoDetour.Cil; using MonoDetour.DetourTypes; using MonoDetour.HookGen; using Silksong.UnityHelper.Extensions; using Silksong.UnityHelper.Util; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: MonoDetourTargets(typeof(InputHandler), GenerateControlFlowVariants = true)] [assembly: MonoDetourTargets(typeof(HeroController))] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("KeybindChaos")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("0.1.0.0")] [assembly: AssemblyInformationalVersion("0.1.0+b71f9b053b905a76f180aa5793233fc7f54d084b")] [assembly: AssemblyProduct("KeybindChaos")] [assembly: AssemblyTitle("KeybindChaos")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/flibber-hk/KeybindChaos")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.1.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.HeroController { internal static class HeroSetDelegate { internal static class Invoke { public delegate void PrefixSignature(HeroSetDelegate self, ref HeroController heroController); public delegate void PostfixSignature(HeroSetDelegate self, ref HeroController heroController); 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 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(HeroSetDelegate).GetMethod("Invoke", (BindingFlags)(-1), null, new Type[1] { typeof(HeroController) }, null) ?? throw new MissingMethodException("HeroController+HeroSetDelegate", "Invoke"); } } internal static class _ctor { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class HeroInPosition { internal static class Invoke { public delegate void PrefixSignature(HeroInPosition self, ref bool forceDirect); public delegate void PostfixSignature(HeroInPosition self, ref bool forceDirect); 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 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(HeroInPosition).GetMethod("Invoke", (BindingFlags)(-1), null, new Type[1] { typeof(bool) }, null) ?? throw new MissingMethodException("HeroController+HeroInPosition", "Invoke"); } } internal static class _ctor { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class DamageTakenDelegate { internal static class Invoke { public delegate void PrefixSignature(DamageTakenDelegate self, ref DamageInfo damageInfo); public delegate void PostfixSignature(DamageTakenDelegate self, ref DamageInfo damageInfo); 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 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(DamageTakenDelegate).GetMethod("Invoke", (BindingFlags)(-1), null, new Type[1] { typeof(DamageInfo) }, null) ?? throw new MissingMethodException("HeroController+DamageTakenDelegate", "Invoke"); } } internal static class _ctor { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class Start { public delegate void PrefixSignature(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 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 Jump { public delegate void PrefixSignature(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 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("Jump", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("HeroController", "Jump"); } } internal static class Dash { public delegate void PrefixSignature(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 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("Dash", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("HeroController", "Dash"); } } internal static class Attack { public delegate void PrefixSignature(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 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 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 UpdateConfig { } internal static class SetConfigGroup { } internal static class SceneInit { } internal static class Update { } 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 GetWillThrowTool { } 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 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 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 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 { } 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 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 CanNailArt { } 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 StartAnimationControlToIdle { } 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 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 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__DisplayClass1236_0 { internal static class _ctor { } } internal static class __c__DisplayClass694_0 { internal static class _ctor { } } internal static class __c__DisplayClass979_0 { internal static class _ctor { } } internal static class __c__DisplayClass982_0 { internal static class _ctor { } } internal static class _BetaLeave_d__977 { 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__978 { 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__1248 { 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__1097 { 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__1100 { 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__972 { 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__971 { 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__970 { 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__1108 { 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__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 _Invulnerable_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 _MoveToPositionX_d__1236 { 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__979 { 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__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 _TilemapTestPause_d__1158 { 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.InputHandler { internal static class CursorVisibilityChange { internal static class Invoke { public delegate void PrefixSignature(CursorVisibilityChange self, ref bool isVisible); public delegate ReturnFlow ControlFlowPrefixSignature(CursorVisibilityChange self, ref bool isVisible); public delegate void PostfixSignature(CursorVisibilityChange self, ref bool isVisible); 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(CursorVisibilityChange).GetMethod("Invoke", (BindingFlags)(-1), null, new Type[1] { typeof(bool) }, null) ?? throw new MissingMethodException("InputHandler+CursorVisibilityChange", "Invoke"); } } internal static class _ctor { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class ActiveControllerSwitch { internal static class Invoke { public delegate void PrefixSignature(ActiveControllerSwitch self); public delegate ReturnFlow ControlFlowPrefixSignature(ActiveControllerSwitch self); public delegate void PostfixSignature(ActiveControllerSwitch 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(ActiveControllerSwitch).GetMethod("Invoke", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("InputHandler+ActiveControllerSwitch", "Invoke"); } } internal static class _ctor { } internal static class BeginInvoke { } internal static class EndInvoke { } } internal static class Start { public delegate void PrefixSignature(InputHandler self); public delegate ReturnFlow ControlFlowPrefixSignature(InputHandler self); public delegate void PostfixSignature(InputHandler 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(InputHandler).GetMethod("Start", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("InputHandler", "Start"); } } internal static class GetKeyBindingForAction { public delegate void PrefixSignature(InputHandler self, ref PlayerAction action); public delegate ReturnFlow ControlFlowPrefixSignature(InputHandler self, ref PlayerAction action, ref KeyOrMouseBinding returnValue); public delegate void PostfixSignature(InputHandler self, ref PlayerAction action, ref KeyOrMouseBinding 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(InputHandler).GetMethod("GetKeyBindingForAction", (BindingFlags)(-1), null, new Type[1] { typeof(PlayerAction) }, null) ?? throw new MissingMethodException("InputHandler", "GetKeyBindingForAction"); } } internal static class KeyOrMouseBinding { internal new static class ToString { public delegate void PrefixSignature(KeyOrMouseBinding self); public delegate ReturnFlow ControlFlowPrefixSignature(KeyOrMouseBinding self, ref string returnValue); public delegate void PostfixSignature(KeyOrMouseBinding self, ref string 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(KeyOrMouseBinding).GetMethod("ToString", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("InputHandler+KeyOrMouseBinding", "ToString"); } } internal static class _ctor { } internal static class _ctor_InControl_Key { } internal static class _ctor_InControl_Mouse { } internal static class IsNone { } } internal static class GetButtonBindingForAction { public delegate void PrefixSignature(InputHandler self, ref PlayerAction action); public delegate ReturnFlow ControlFlowPrefixSignature(InputHandler self, ref PlayerAction action, ref InputControlType returnValue); public delegate void PostfixSignature(InputHandler self, ref PlayerAction action, ref InputControlType 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(InputHandler).GetMethod("GetButtonBindingForAction", (BindingFlags)(-1), null, new Type[1] { typeof(PlayerAction) }, null) ?? throw new MissingMethodException("InputHandler", "GetButtonBindingForAction"); } } internal static class SendKeyBindingsToGameSettings { public delegate void PrefixSignature(InputHandler self); public delegate ReturnFlow ControlFlowPrefixSignature(InputHandler self); public delegate void PostfixSignature(InputHandler 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(InputHandler).GetMethod("SendKeyBindingsToGameSettings", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("InputHandler", "SendKeyBindingsToGameSettings"); } } internal static class SendButtonBindingsToGameSettings { public delegate void PrefixSignature(InputHandler self); public delegate ReturnFlow ControlFlowPrefixSignature(InputHandler self); public delegate void PostfixSignature(InputHandler 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(InputHandler).GetMethod("SendButtonBindingsToGameSettings", (BindingFlags)(-1), null, Array.Empty<Type>(), null) ?? throw new MissingMethodException("InputHandler", "SendButtonBindingsToGameSettings"); } } internal static class add_OnUpdateHeroActions { } internal static class remove_OnUpdateHeroActions { } internal static class add_OnCursorVisibilityChange { } internal static class remove_OnCursorVisibilityChange { } internal static class get_ActiveGamepadAlias { } internal static class set_ActiveGamepadAlias { } internal static class get_MappableControllerActions { } internal static class set_MappableControllerActions { } internal static class get_MappableKeyboardActions { } internal static class set_MappableKeyboardActions { } internal static class get_PauseAllowed { } internal static class set_PauseAllowed { } internal static class get_SkipMode { } internal static class set_SkipMode { } internal static class add_RefreshActiveControllerEvent { } internal static class remove_RefreshActiveControllerEvent { } internal static class get_WasSkipButtonPressed { } internal static class get_ForceDreamNailRePress { } internal static class set_ForceDreamNailRePress { } internal static class OnAwake { } internal static class OnStart { } internal static class Awake { } internal static class OnDestroy { } internal static class SceneInit { } internal static class OnSaveStoreStateChanged { } internal static class LoadSavedInputBindings { } internal static class SetCursorVisible { } internal static class SetCursorEnabled { } internal static class Update { } internal static class UpdateButtonQueueing { } internal static class GetWasButtonPressedQueued { } internal static class ControllerAttached { } internal static class ControllerActivated { } internal static class ControllerDetached { } internal static class PlayingInput { } internal static class CutsceneInput { } internal static class StagCutsceneInput { } internal static class AttachHeroController { } internal static class StopAcceptingInput { } internal static class StartAcceptingInput { } internal static class PreventPause { } internal static class AllowPause { } internal static class UpdateActiveController { } internal static class SendRefreshEvent { } internal static class StopUIInput { } internal static class StartUIInput { } internal static class StopMouseInput { } internal static class EnableMouseInput { } internal static class SetSkipMode { } internal static class RefreshPlayerData { } internal static class ResetDefaultKeyBindings { } internal static class ResetDefaultControllerButtonBindings { } internal static class ResetAllControllerButtonBindings { } internal static class MapControllerButtons { } internal static class RemapUiButtons { } internal static class ActionButtonToPlayerAction { } internal static class GetKeyBindingForActionBinding { } internal static class GetActionForMappableControllerButton { } internal static class GetActionForDefaultControllerButton { } internal static class PrintMappings { } internal static class ActionButtonLocalizedKey_InControl_PlayerAction { } internal static class ActionButtonLocalizedKey_System_String { } internal static class StopCutsceneInput { } internal static class UnlockStagInput { } internal static class SetupGamepadUIInputActions { } internal static class RemoveGamepadUiInputActions { } internal static class DestroyCurrentActionSet { } internal static class SetActiveGamepadType { } internal static class MapDefaultKeyboardLayout { } internal static class MapKeyboardLayoutFromGameSettings { } internal static class AddKeyBinding_InControl_PlayerAction_System_String { } internal static class AddKeyBinding_InControl_PlayerAction_System_String_InControl_PlayerActionSet { } internal static class SetupNonMappableBindings { } internal static class SetupMappableControllerBindingsList { } internal static class SetupMappableKeyboardBindingsList { } internal static class GetSticksInput { } internal static class _ctor { } } 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 bool DistinguishOverloadsByName { 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 KeybindChaos { public static class Binds { public static readonly Dictionary<string, FieldInfo> BindFieldInfos = new Dictionary<string, FieldInfo> { ["Jump"] = typeof(HeroActions).GetField("Jump"), ["Dash"] = typeof(HeroActions).GetField("Dash"), ["Attack"] = typeof(HeroActions).GetField("Attack"), ["QuickCast"] = typeof(HeroActions).GetField("QuickCast"), ["QuickMap"] = typeof(HeroActions).GetField("QuickMap"), ["Needolin"] = typeof(HeroActions).GetField("DreamNail"), ["Harpoon"] = typeof(HeroActions).GetField("SuperDash"), ["Focus"] = typeof(HeroActions).GetField("Cast"), ["Taunt"] = typeof(HeroActions).GetField("Taunt") }; private static Dictionary<string, Sprite>? _sprites; public static Dictionary<string, Sprite> Sprites { get { if (_sprites == null) { _sprites = new Dictionary<string, Sprite>(); foreach (string availableBindName in GetAvailableBindNames()) { Sprite value = SpriteUtil.LoadEmbeddedSprite(typeof(Binds).Assembly, "KeybindChaos.Resources." + availableBindName + ".png", 64f); _sprites[availableBindName] = value; } } return _sprites; } } public static IEnumerable<string> GetAvailableBindNames() { return BindFieldInfos.Keys; } } public enum ShuffleMode { None, Timer } internal static class Extensions { private static readonly ManualLogSource Log = Logger.CreateLogSource("KeybindChaos.Extensions"); public static void Swap<T>(this List<T> items, int i, int j) { T value = items[i]; items[i] = items[j]; items[j] = value; } public static void PermuteInPlace<T>(this Random rng, List<T> items) { for (int i = 1; i < items.Count; i++) { int j = rng.Next(i + 1); items.Swap(i, j); } } public static void SafeInvoke(this Action action) { Delegate[] invocationList = action.GetInvocationList(); for (int i = 0; i < invocationList.Length; i++) { Action action2 = (Action)invocationList[i]; try { action2?.Invoke(); } catch (Exception ex) { Log.LogError((object)ex); } } } } [BepInPlugin("io.github.flibber-hk.keybindchaos", "KeybindChaos", "0.1.0")] public class KeybindChaosPlugin : BaseUnityPlugin { public ConfigEntry<ShuffleMode> KeybindMode; public ConfigEntry<bool> ShowKeybindDisplay; public ConfigEntry<int> ResetTime; public ConfigEntry<bool> PlayTimerAudio; public const string Id = "io.github.flibber-hk.keybindchaos"; public static KeybindChaosPlugin Instance { get; private set; } public Dictionary<string, ConfigEntry<bool>> BindConfig { get; private set; } public static string Name => "KeybindChaos"; public static string Version => "0.1.0"; private void Awake() { Instance = this; KeybindPermuter.EnsureHooked(); KeybindMode = ((BaseUnityPlugin)this).Config.Bind<ShuffleMode>("General", "KeybindMode", ShuffleMode.Timer, "Choose what causes the keybinds to get shuffled."); ShowKeybindDisplay = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "ShowKeybindDisplay", true, "Show a display with the current binds."); ResetTime = ((BaseUnityPlugin)this).Config.Bind<int>("Mode.Timer", "ResetTime", 30, "The number of seconds before keybinds are shuffled."); PlayTimerAudio = ((BaseUnityPlugin)this).Config.Bind<bool>("Mode.Timer", "PlayTimerAudio", true, "Play a countdown audio near the end of the timer."); BindConfig = Binds.GetAvailableBindNames().ToDictionary((string name) => name, (string name) => ((BaseUnityPlugin)this).Config.Bind<bool>("General.Binds", name, true, "Include " + name)); Md.HeroController.Start.Postfix(AddTimerComponent); ((BaseUnityPlugin)this).Logger.LogInfo((object)("Plugin " + Name + " (io.github.flibber-hk.keybindchaos) has loaded!")); } private void LogBinds() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"=== NEW BINDS ==="); foreach (var (text, action2) in KeybindPermuter.RetrieveBindPairs()) { ((BaseUnityPlugin)this).Logger.LogInfo((object)(text + ": " + bindRetrieve(action2))); } static string bindRetrieve(PlayerAction action) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected I4, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) BindingSourceType lastActiveController = ManagerSingleton<InputHandler>.Instance.lastActiveController; switch ((int)lastActiveController) { case 0: case 2: case 3: { KeyOrMouseBinding keyBindingForAction = ManagerSingleton<InputHandler>.Instance.GetKeyBindingForAction(action); return ((object)(KeyOrMouseBinding)(ref keyBindingForAction)).ToString(); } case 1: { InputControlType buttonBindingForAction = ManagerSingleton<InputHandler>.Instance.GetButtonBindingForAction(action); return ((object)(InputControlType)(ref buttonBindingForAction)).ToString(); } default: return "???"; } } } private void AddTimerComponent(HeroController self) { ((Component)self).gameObject.AddComponent<Display>(); ((Component)self).gameObject.AddComponent<TimeTrigger>(); } } [PublicAPI] public static class KeybindPermuter { private static readonly ManualLogSource Log = Logger.CreateLogSource("KeybindChaos:KeybindPermuter"); private static List<PlayerAction>? _storedBindings = null; private static readonly Random _rng = new Random(); private static bool _preventSavingBinds = false; private static bool IsRandomized => _storedBindings != null; [PublicAPI] public static event Action? OnRandomize; [PublicAPI] public static event Action? OnRestore; internal static void EnsureHooked() { SendKeyBindingsToGameSettings.ControlFlowPrefix(PreventSavingBindsHook); SendButtonBindingsToGameSettings.ControlFlowPrefix(PreventSavingBindsHook); } private static ReturnFlow PreventSavingBindsHook(InputHandler self) { if (_preventSavingBinds) { Log.LogInfo((object)"Not saving binds to settings"); return (ReturnFlow)1; } return (ReturnFlow)0; } private static void PreventSavingBinds() { _preventSavingBinds = true; } private static void AllowSavingBinds() { _preventSavingBinds = false; } [PublicAPI] public static void RandomizeBinds() { RandomizeBinds(_rng); } [PublicAPI] public static void RandomizeBinds(Random rng) { PreventSavingBinds(); List<PlayerAction> list = RetrieveBinds(); rng.PermuteInPlace(list); AssignBinds(list); KeybindPermuter.OnRandomize?.SafeInvoke(); } [PublicAPI] public static void RestoreBinds() { if (IsRandomized) { AssignBinds(_storedBindings); _storedBindings = null; AllowSavingBinds(); KeybindPermuter.OnRestore?.SafeInvoke(); } } public static List<(string key, PlayerAction action)> RetrieveBindPairs() { List<(string, PlayerAction)> list = new List<(string, PlayerAction)>(); HeroActions inputActions = ManagerSingleton<InputHandler>.Instance.inputActions; Dictionary<string, ConfigEntry<bool>> bindConfig = KeybindChaosPlugin.Instance.BindConfig; if (bindConfig["Jump"].Value) { list.Add(("Jump", inputActions.Jump)); } if (bindConfig["Dash"].Value) { list.Add(("Dash", inputActions.Dash)); } if (bindConfig["Attack"].Value) { list.Add(("Attack", inputActions.Attack)); } if (bindConfig["QuickCast"].Value) { list.Add(("QuickCast", inputActions.QuickCast)); } if (bindConfig["QuickMap"].Value) { list.Add(("QuickMap", inputActions.QuickMap)); } if (bindConfig["Needolin"].Value) { list.Add(("Needolin", inputActions.DreamNail)); } if (bindConfig["Harpoon"].Value) { list.Add(("Harpoon", inputActions.SuperDash)); } if (bindConfig["Focus"].Value) { list.Add(("Focus", inputActions.Cast)); } if (bindConfig["Taunt"].Value) { list.Add(("Taunt", inputActions.Taunt)); } return list; } public static List<PlayerAction> RetrieveBinds() { return (from pair in RetrieveBindPairs() select pair.action).ToList(); } private static void AssignBinds(List<PlayerAction> actions) { int num = 0; HeroActions inputActions = ManagerSingleton<InputHandler>.Instance.inputActions; foreach (var (key, fieldInfo2) in Binds.BindFieldInfos) { if (KeybindChaosPlugin.Instance.BindConfig[key].Value) { fieldInfo2.SetValue(inputActions, actions[num]); num++; } } } } } namespace KeybindChaos.Components { public class Display : MonoBehaviour { private GameObject _canvas; private Text _text; private GameObject? _keybindPanel; public void UpdateText(string value) { _text.text = value; } private void Awake() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown _canvas = CanvasUtil.CreateCanvas((RenderMode)0, new Vector2(1920f, 1080f)); _canvas.GetComponent<CanvasGroup>().blocksRaycasts = false; _canvas.GetComponent<CanvasGroup>().interactable = false; Object.DontDestroyOnLoad((Object)(object)_canvas); GameObject val = CanvasUtil.CreateTextPanel(_canvas, "abcde", 40, (TextAnchor)2, new RectData(new Vector2(200f, 100f), new Vector2(0f, 0f), new Vector2(1f, 1f), new Vector2(1f, 1f), new Vector2(1f, 1f)), Fonts.TrajanBold); _text = val.GetComponent<Text>(); _text.horizontalOverflow = (HorizontalWrapMode)1; SetupKeybindPanel(); KeybindPermuter.OnRandomize += SetupKeybindPanel; KeybindPermuter.OnRestore += DestroyKeybindPanel; } private void SetupKeybindPanel() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Expected O, but got Unknown //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Expected O, but got Unknown //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Expected O, but got Unknown //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Invalid comparison between Unknown and I4 //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Invalid comparison between Unknown and I4 //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Expected O, but got Unknown DestroyKeybindPanel(); if (!KeybindChaosPlugin.Instance.ShowKeybindDisplay.Value) { return; } List<(string key, PlayerAction action)> list = KeybindPermuter.RetrieveBindPairs(); int num = 80; int num2 = 80; int num3 = 80; int count = list.Count; int num4 = num * count; int num5 = num3 + num2; _keybindPanel = CanvasUtil.CreateBasePanel(_canvas, new RectData(new Vector2((float)num5, (float)num4), new Vector2(0f, 0f), new Vector2(1f, 0f), new Vector2(1f, 0f), new Vector2(1f, 0f))); int num6 = 0; foreach (var (key, val) in list) { if (KeybindChaosPlugin.Instance.BindConfig[key].Value) { CanvasUtil.CreateImagePanel(CanvasUtil.CreateBasePanel(_keybindPanel, new RectData(new Vector2((float)num2, (float)num), new Vector2(0f, (float)(-num6 * num)), new Vector2(0f, 1f), new Vector2(0f, 1f), new Vector2(0f, 1f))), Binds.Sprites[key], new RectData(new Vector2((float)num2, (float)num), new Vector2(0f, 0f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f))); ButtonSkin buttonSkinFor = UIManager.instance.uiButtonSkins.GetButtonSkinFor(val); GameObject val2 = CanvasUtil.CreateBasePanel(_keybindPanel, new RectData(new Vector2((float)num3, (float)num), new Vector2((float)num2, (float)(-num6 * num)), new Vector2(0f, 1f), new Vector2(0f, 1f), new Vector2(0f, 1f))); CanvasUtil.CreateImagePanel(val2, buttonSkinFor.sprite, new RectData(new Vector2((float)num3, (float)num), new Vector2(0f, 0f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f))); if (!string.IsNullOrEmpty(buttonSkinFor.symbol)) { ButtonSkinType skinType = buttonSkinFor.skinType; int num7 = (((int)skinType == 1) ? ((buttonSkinFor.symbol.Length <= 2) ? 48 : 36) : (((int)skinType != 2) ? 48 : 24)); int num8 = num7; CanvasUtil.CreateTextPanel(val2, buttonSkinFor.symbol, num8, (TextAnchor)4, new RectData(new Vector2((float)num3, (float)num), new Vector2(0f, 0f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f)), Fonts.GetFont("Arial")); } num6++; } } } private void DestroyKeybindPanel() { if ((Object)(object)_keybindPanel != (Object)null) { Object.Destroy((Object)(object)_keybindPanel); } } private void OnDestroy() { Object.Destroy((Object)(object)_canvas); KeybindPermuter.OnRandomize -= SetupKeybindPanel; KeybindPermuter.OnRestore -= DestroyKeybindPanel; } } public class TimeTrigger : MonoBehaviour { private float _time; private AudioSource _as; private AudioClip _clip; private const float audioStartTime = 4f; private bool _startedAudio; private Display _display; public string GetDisplayText() { if (KeybindChaosPlugin.Instance.KeybindMode.Value != ShuffleMode.Timer) { return string.Empty; } if (_time < 10f) { return $"Keybind Reset: {_time:0.00}\n"; } return $"Keybind Reset: {Mathf.Floor(_time):0}s\n"; } private void Awake() { _as = ((Component)this).gameObject.GetComponent<AudioSource>(); _clip = LoadTimerAudio(); } private AudioClip LoadTimerAudio() { return WavUtil.AudioClipFromEmbeddedResource("KeybindChaos.Resources.countdown.wav", typeof(TimeTrigger).Assembly, (string)null); } private void Start() { _display = UnityExtensions.GetOrAddComponent<Display>(((Component)this).gameObject); _time = KeybindChaosPlugin.Instance.ResetTime.Value; ((BaseUnityPlugin)KeybindChaosPlugin.Instance).Config.SettingChanged += OnSettingsChanged; } private void OnDestroy() { ((BaseUnityPlugin)KeybindChaosPlugin.Instance).Config.SettingChanged -= OnSettingsChanged; } private void OnSettingsChanged(object sender, SettingChangedEventArgs e) { _time = KeybindChaosPlugin.Instance.ResetTime.Value; } private void Update() { if (KeybindChaosPlugin.Instance.KeybindMode.Value != ShuffleMode.Timer) { return; } _time -= Time.deltaTime; if (_time < 0f) { _time += KeybindChaosPlugin.Instance.ResetTime.Value; _startedAudio = false; KeybindPermuter.RandomizeBinds(); } if (_time < 4f && !_startedAudio) { _startedAudio = true; if (KeybindChaosPlugin.Instance.PlayTimerAudio.Value && (Object)(object)_clip != (Object)null) { _as.PlayOneShot(_clip); } } _display.UpdateText(GetDisplayText()); } } }