コード例 #1
0
        // 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();
        }
コード例 #2
0
 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);
     }
 }