예제 #1
0
        protected override bool GameObjectCreated(OptionBehaviour o)
        {
            o.transform.FindChild("CheckBox")?.gameObject?.SetActive(false);
            o.transform.FindChild("Background")?.gameObject?.SetActive(false);

            return(UpdateGameObject());
        }
예제 #2
0
        private static bool OnEnable(OptionBehaviour opt)
        {
            if (opt == ExportButton.Setting)
            {
                ExportButton.OptionCreated();
                return(false);
            }

            if (opt == ImportButton.Setting)
            {
                ImportButton.OptionCreated();
                return(false);
            }


            CustomOption customOption = CustomOption.AllOptions.FirstOrDefault(option => option.Setting == opt); // Works but may need to change to gameObject.name check

            if (customOption == null)
            {
                customOption = ExportButton.SlotButtons.FirstOrDefault(option => option.Setting == opt);
                if (customOption == null)
                {
                    customOption = ImportButton.SlotButtons.FirstOrDefault(option => option.Setting == opt);
                    if (customOption == null)
                    {
                        return(true);
                    }
                }
            }

            customOption.OptionCreated();

            return(false);
        }
예제 #3
0
 private static void OnChangeDistance(object sender, OptionBehaviour optionBehaviour)
 {
     if (sender is CustomNumberOption option)
     {
         SetRadius(option.Value);
     }
 }
예제 #4
0
        private void OnGameOptionCreated(OptionBehaviour o)
        {
            if (o == null)
            {
                return;
            }

            try
            {
                // Could move some logic to this callback, though pointless when the methods leading to this callback to be called are overriden.
                o.OnValueChanged = new Action <OptionBehaviour>((_) => { });

                o.name = o.gameObject.name = ID;

                //o.gameObject.SetActive(true);

                GameOptionCreated(o);
            }
            catch (Exception e)
            {
                EssentialsPlugin.Logger.LogWarning($"Exception in OnGameOptionCreated for option \"{Name}\" ({Type}): {e}");
            }

            GameSetting = o;
        }
        public static void AddOptions()
        {
            if (GameOptionMenuPatch.showSheriffOption == null | GameOptionMenuPatch.SheriffCooldown == null)
            {
                //we simply copy existing options...
                var toggleopt = GameObject.FindObjectsOfType <ToggleOption>().ToList().First();
                GameOptionMenuPatch.showSheriffOption = GameObject.Instantiate(toggleopt);
                var killcd = GameObject.FindObjectsOfType <NumberOption>().ToList().First();
                GameOptionMenuPatch.SheriffCooldown = GameObject.Instantiate(killcd);

                OptionBehaviour[] options = new OptionBehaviour[GameOptionMenuPatch.instance.MCAHCPOHNFI.Count + 2];
                GameOptionMenuPatch.instance.MCAHCPOHNFI.ToArray().CopyTo(options, 0);
                options[options.Length - 2] = GameOptionMenuPatch.showSheriffOption;
                options[options.Length - 1] = GameOptionMenuPatch.SheriffCooldown;
                GameOptionMenuPatch.instance.MCAHCPOHNFI = new Il2CppReferenceArray <OptionBehaviour>(options);
            }
            else
            {
                GameOptionMenuPatch.SheriffCooldown.gameObject.SetActive(true);
                GameOptionMenuPatch.showSheriffOption.gameObject.SetActive(true);
            }

            GameOptionMenuPatch.showSheriffOption.TitleText.text    = "Show Sheriff";
            GameOptionMenuPatch.showSheriffOption.LCDAKOCANPH       = CustomGameOptions.showSheriff;
            GameOptionMenuPatch.showSheriffOption.CheckMark.enabled = CustomGameOptions.showSheriff;

            GameOptionMenuPatch.SheriffCooldown.TitleText.text = "Sheriff Kill Cooldown";
            GameOptionMenuPatch.SheriffCooldown.Value          = CustomGameOptions.SheriffKillCD;
            GameOptionMenuPatch.SheriffCooldown.ValueText.text = CustomGameOptions.SheriffKillCD.ToString();
        }
예제 #6
0
            public static void OnValueChanged(OptionBehaviour option)
            {
                if (!AmongUsClient.Instance || !AmongUsClient.Instance.AmHost)
                {
                    return;
                }
                foreach (var opt in options)
                {
                    if (opt.optionTitleName == option.Title)
                    {
                        opt.Update(option);
                        break;
                    }
                }

                if (PlayerControl.GameOptions.isDefaults)
                {
                    PlayerControl.GameOptions.isDefaults = false;
                    UnityEngine.Object.FindObjectOfType <GameOptionsMenu>().Method_16(); //RefreshChildren
                }

                var local = PlayerControl.LocalPlayer;

                if (local != null)
                {
                    local.RpcSyncSettings(PlayerControl.GameOptions);
                }
            }
            public static void OnValueChanged(OptionBehaviour option)
            {
                if (AmongUsClient.Instance == null || !AmongUsClient.Instance.LKBIPDDGGIF)
                {
                    return;
                }
                foreach (var opt in options)
                {
                    if (opt.optionTitleName == option.Title)
                    {
                        opt.Update(option);
                        break;
                    }
                }

                if (PlayerControl.GameOptions.NMPPODEHDFL)
                {
                    PlayerControl.GameOptions.NMPPODEHDFL = false;
                    UnityEngine.Object.FindObjectOfType <GameOptionsMenu>().ValueChanged(option); //RefreshChildren
                }

                var local = PlayerControl.LocalPlayer;

                if (local != null)
                {
                    local.RpcSyncSettings(PlayerControl.GameOptions);
                }
            }
예제 #8
0
        private bool OnGameOptionCreated(OptionBehaviour o)
        {
            if (o == null)
            {
                return(false);
            }

            try
            {
                o.OnValueChanged = new Action <OptionBehaviour>((_) => { });

                o.name = o.gameObject.name = ID;

                if (!GameOptionCreated(o))
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                EssentialsPlugin.Logger.LogWarning($"Exception in OnGameOptionCreated for option \"{Name}\" ({Type}): {e}");
            }

            GameSetting = o;

            return(true);
        }
        protected override bool GameOptionCreated(OptionBehaviour o)
        {
            if (o is ToggleOption toggle)
            {
                toggle.TitleText.Text = GetFormattedName();

                toggle.CheckMark.enabled = toggle.oldValue = false;

                toggle.transform.FindChild("CheckBox")?.gameObject?.SetActive(false);

                return(true);
            }
            else if (o is StringOption str) // Display options in menu for non-host
            {
                str.TitleText.Text = GetFormattedName();

                str.Value = str.oldValue = 0;

                str.ValueText.Text = GetFormattedValue();

                return(true);
            }

            return(false);
        }
예제 #10
0
        public static void AddOptions()
        {
            if (GameOptionMenuPatch.showSheriffOption == null | GameOptionMenuPatch.SheriffCooldown == null)
            {
                var showAnonymousvote = GameObject.FindObjectsOfType <ToggleOption>().ToList().Where(x => x.TitleText.Text == "Anonymous Votes").First();
                GameOptionMenuPatch.showSheriffOption = GameObject.Instantiate(showAnonymousvote);
                var killcd = GameObject.FindObjectsOfType <NumberOption>().ToList().Where(x => x.TitleText.Text == "Kill Cooldown").First();
                GameOptionMenuPatch.SheriffCooldown = GameObject.Instantiate(killcd);

                OptionBehaviour[] options = new OptionBehaviour[GameOptionMenuPatch.instance.KJLJEKJECCB.Count + 2];
                GameOptionMenuPatch.instance.KJLJEKJECCB.ToArray().CopyTo(options, 0);
                options[options.Length - 2] = GameOptionMenuPatch.showSheriffOption;
                options[options.Length - 1] = GameOptionMenuPatch.SheriffCooldown;
                GameOptionMenuPatch.instance.KJLJEKJECCB = new Il2CppReferenceArray <OptionBehaviour>(options);
            }
            else
            {
                GameOptionMenuPatch.SheriffCooldown.gameObject.SetActive(true);
                GameOptionMenuPatch.showSheriffOption.gameObject.SetActive(true);
            }

            GameOptionMenuPatch.showSheriffOption.TitleText.Text    = "Show Sheriff";
            GameOptionMenuPatch.showSheriffOption.BEKECNBGEPB       = CustomGameOptions.showSheriff;
            GameOptionMenuPatch.showSheriffOption.CheckMark.enabled = CustomGameOptions.showSheriff;

            GameOptionMenuPatch.SheriffCooldown.TitleText.Text = "Sheriff Kill Cooldown";
            GameOptionMenuPatch.SheriffCooldown.Value          = CustomGameOptions.SheriffKillCD;
            GameOptionMenuPatch.SheriffCooldown.ValueText.Text = CustomGameOptions.SheriffKillCD.ToString();
        }
예제 #11
0
            public static void OnValueChanged(OptionBehaviour option)
            {
                if (AmongUsClient.Instance == null)
                {
                    return;
                }
                foreach (var opt in options)
                {
                    if (opt.optionTitleName == option.Title)
                    {
                        opt.Update(option);
                        opt.OnChange.Invoke(opt, option);
                        break;
                    }
                }

/*
 *              if (PlayerControl.GameOptions.BMMDHGDAPEJ) // isDefault
 *              {
 *                  PlayerControl.GameOptions.BMMDHGDAPEJ = false;
 *                  "Refresh".Log();
 *                  Object.FindObjectOfType<GameOptionsMenu>().ValueChanged(option); //RefreshChildren
 *              }*/

                var local = PlayerControl.LocalPlayer;

                if (local != null && AmongUsClient.Instance.HHBLOCGKFAB) //amHost
                {
                    local.RpcSyncSettings(PlayerControl.GameOptions);
                }
            }
예제 #12
0
        public static void AddOptions()
        {
            if (GameOptionMenuPatch.MorphDuration == null | GameOptionMenuPatch.MorphCooldown == null)
            {
                var killcd = GameObject.FindObjectsOfType <NumberOption>().ToList().Where(x => x.TitleText.text == "Kill Cooldown").First();
                GameOptionMenuPatch.MorphDuration = GameObject.Instantiate(killcd);
                GameOptionMenuPatch.MorphCooldown = GameObject.Instantiate(killcd);

                OptionBehaviour[] options = new OptionBehaviour[GameOptionMenuPatch.Instance.MCAHCPOHNFI.Count + 2];
                GameOptionMenuPatch.Instance.MCAHCPOHNFI.ToArray().CopyTo(options, 0);
                options[options.Length - 2] = GameOptionMenuPatch.MorphDuration;
                options[options.Length - 1] = GameOptionMenuPatch.MorphCooldown;
                GameOptionMenuPatch.Instance.MCAHCPOHNFI = new Il2CppReferenceArray <OptionBehaviour>(options);

                GameOptionMenuPatch.CurrentCount = options.Length - 2;
            }
            else
            {
                GameOptionMenuPatch.MorphDuration.gameObject.SetActive(true);
                GameOptionMenuPatch.MorphCooldown.gameObject.SetActive(true);
            }

            GameOptionMenuPatch.MorphDuration.TitleText.text = "Morph Duration";
            GameOptionMenuPatch.MorphDuration.Value          = CustomGameOptions.MorphDuration;
            GameOptionMenuPatch.MorphDuration.ValueText.text = CustomGameOptions.MorphDuration.ToString();

            GameOptionMenuPatch.MorphCooldown.TitleText.text = "Morph Cooldown";
            GameOptionMenuPatch.MorphCooldown.Value          = CustomGameOptions.MorphCooldown;
            GameOptionMenuPatch.MorphCooldown.ValueText.text = CustomGameOptions.MorphCooldown.ToString();
        }
        protected override bool GameOptionCreated(OptionBehaviour o)
        {
            if (!base.GameOptionCreated(o)) return false;

            if (o is ToggleOption toggle) toggle.transform.FindChild("Background")?.gameObject?.SetActive(false);

            return true;
        }
예제 #14
0
        /// <summary>
        /// Called when the game object is (re)created for this option.
        /// <para>Depends on <see cref="UpdateGameObject"/> by default.</para>
        /// </summary>
        /// <param name="o">The game object that was created for this option</param>
        /// <returns>Whether the object is valid, false to destroy.</returns>
        protected virtual bool GameObjectCreated(OptionBehaviour o)
        {
            //EssentialsPlugin.Logger.LogWarning($"Base handler for {nameof(CustomOption)}.{nameof(GameObjectCreated)} was called, game object for option \"{Name}\" from plugin \"{PluginID}\" will be destroyed.");

            //return false; // Destroy unhandled objects

            return(UpdateGameObject());
        }
예제 #15
0
        public static void Postfix2(GameOptionsMenu __instance)
        {
            OptionBehaviour option = __instance.MCAHCPOHNFI[__instance.MCAHCPOHNFI.Count - 2];

            if (bothLoversDie != null)
            {
                bothLoversDie.transform.position = option.transform.position - new Vector3(0, 0.5f, 0);
            }
        }
        private protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (o is not ToggleOption toggle)
            {
                return;
            }

            toggle.TitleText.Text = Name;
        }
        public static void Postfix2(GameOptionsMenu __instance)
        {
            OptionBehaviour option = __instance.MCAHCPOHNFI[__instance.MCAHCPOHNFI.Count - 3];

            if (SheriffCooldown != null & showSheriffOption != null)
            {
                showSheriffOption.transform.position = option.transform.position - new Vector3(0, 0.5f, 0);
                SheriffCooldown.transform.position   = option.transform.position - new Vector3(0, 1f, 0);
            }
        }
예제 #18
0
        private protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (!(o is ToggleOption Title))
            {
                return;
            }

            Title.TitleText.Text = $"{Globals.FORMAT_WHITE}{LanguageManager.Get(Name)}"
                                   .Argumentize(LocalizationArguments);
        }
예제 #19
0
        public static void Postfix(GameOptionsMenu __instance)
        {
            instance = __instance;

            defaultBounds = __instance.GetComponentInParent <Scroller>().YBounds.max;

            option = __instance.Children[__instance.Children.Count - 1];

            CustomPlayerMenuPatch.AddOptions();
        }
예제 #20
0
        private protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (!(o is ToggleOption toggle))
            {
                return;
            }

            toggle.TitleText.Text    = Name;
            toggle.CheckMark.enabled = toggle.oldValue = GetValue();
        }
        protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (o is not StringOption str)
            {
                return;
            }

            str.TitleText.Text = GetFormattedName();
            str.Value          = str.oldValue = GetValue();
            str.ValueText.Text = GetFormattedValue();
        }
예제 #22
0
        private protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (!(o is ToggleOption toggle))
            {
                return;
            }

            toggle.TitleText.Text = $"{Globals.FORMAT_WHITE}{LanguageManager.Get(Name)}"
                                    .Argumentize(LocalizationArguments);
            toggle.CheckMark.enabled = toggle.oldValue = GetValue();
        }
예제 #23
0
        private protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (!(o is StringOption str))
            {
                return;
            }

            str.TitleText.Text = Name;
            str.Value          = str.oldValue = GetValue();
            str.ValueText.Text = ToString();
        }
예제 #24
0
        public static void Postfix2(GameOptionsMenu __instance)
        {
            __instance.GetComponentInParent <Scroller>().YBounds.max = (__instance.MCAHCPOHNFI.Count - 7) * 0.5F + 0.13F;
            OptionBehaviour option = __instance.MCAHCPOHNFI[CurrentCount - 1];

            if (MorphDuration != null & MorphCooldown != null)
            {
                MorphDuration.transform.position = option.transform.position - new Vector3(0, 0.5f, 0);
                MorphCooldown.transform.position = option.transform.position - new Vector3(0, 1f, 0);
            }
        }
예제 #25
0
        protected override bool GameObjectCreated(OptionBehaviour o)
        {
            if (AmongUsClient.Instance?.AmHost != true || o is not ToggleOption toggle)
            {
                return(false);
            }

            toggle.transform.FindChild("CheckBox")?.gameObject?.SetActive(false);

            return(UpdateGameObject());
        }
        protected override bool GameObjectCreated(OptionBehaviour o)
        {
            if (o is not NumberOption number)
            {
                return(false);
            }

            number.ValidRange = new FloatRange(Min, Max);
            number.Increment  = Increment;

            return(UpdateGameObject());
        }
예제 #27
0
        private protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (!(o is StringOption str))
            {
                return;
            }

            str.TitleText.Text = $"{Globals.FORMAT_WHITE}{LanguageManager.Get(Name)}"
                                 .Argumentize(LocalizationArguments);
            str.Value          = str.oldValue = GetValue();
            str.ValueText.Text = ToString();
        }
예제 #28
0
        private static void ChangeConnection(object sender, OptionBehaviour e)
        {
            var option = sender as CustomToggleOption;

            if (option?.Value ?? false)
            {
                Connect();
            }
            else
            {
                Disconnect();
            }
        }
        private static bool OnEnable(OptionBehaviour opt)
        {
            CustomOption customOption = Options.FirstOrDefault(option => option.GameSetting == opt);

            if (customOption == null)
            {
                return(true);
            }

            customOption.OnGameOptionCreated(opt);

            return(false);
        }
예제 #30
0
        private protected override void GameOptionCreated(OptionBehaviour o)
        {
            if (!(o is NumberOption number))
            {
                return;
            }

            number.TitleText.Text = Name;
            number.ValidRange     = new FloatRange(Min, Max);
            number.Increment      = Increment;
            number.Value          = number.oldValue = GetValue();
            number.ValueText.Text = ToString();
        }