// This function is run before all mods are finished loading. protected override void OnPreInitialize() { /* uncomment for blacklist * if (Array.Exists(Blacklist, e => e == Steam.user.id)) * System.Environment.Exit(0); */ ModSettings.init(); FriendManager.init(); //UNSAFE! HA! - allows quacking in base TeamHat class to support right trigger for low pitch if (ModSettings.enableDangerousInjections) { MethodInfo orig = typeof(Duck).GetMethod("UpdateQuack", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); MethodInfo newer = typeof(EdoDuck).GetMethod("UpdateQuack", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); DynamicMojo.SwapMethodBodies(newer, orig); } if (ModSettings.enableDangerousInjections) { DoDangerousInjections(); } //var sfxdict = typeof(SFX).GetField("_sounds", BindingFlags.Static | BindingFlags.NonPublic); /*FieldInfo sounds = typeof(SFX).GetField("_sounds", BindingFlags.Static | BindingFlags.NonPublic); * Dictionary<string, SoundEffect> _sounds = ( Dictionary < string, SoundEffect> ) sounds.GetValue(null); * _sounds["shotgunFire2"] = _sounds[GetPath<EdoMod>("SFX\\humpday")]; * SFX.Play("shotgunFire2");*/ base.OnPreInitialize(); }
private static void DoDangerousInjections() { { MethodInfo orig = typeof(EdoDuck).GetMethod("_UpdateMove", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); MethodInfo newer = typeof(Duck).GetMethod("UpdateMove", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); DynamicMojo.SwapMethodBodies(newer, orig); } { MethodInfo orig = typeof(Duck).GetMethod("UpdateMove", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); MethodInfo newer = typeof(EdoDuck).GetMethod("UpdateMove", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); DynamicMojo.SwapMethodBodies(newer, orig); } }