Exemplo n.º 1
0
        /// <summary>
        ///   <para>Initializes a new instance of the <see cref="CustomScrollingMenu"/> class with the specified <paramref name="menu"/> and <paramref name="unlocks"/> list.</para>
        /// </summary>
        /// <param name="menu">The <see cref="ScrollingMenu"/> instance.</param>
        /// <param name="unlocks">The list of unlocks displayed in the menu.</param>
        public CustomScrollingMenu(ScrollingMenu menu, List <DisplayedUnlock> unlocks)
            : base(unlocks)
        {
            Menu = menu;
            string type = menu.menuType;

            Type = type == "Challenges" ? UnlocksMenuType.MutatorMenu
                                : type == "Floors" ? UnlocksMenuType.FloorsMenu
                                : type == "Traits" ? UnlocksMenuType.NewLevelTraits
                                : type == "Items" ? UnlocksMenuType.RewardsMenu
                                : type == "FreeItems" ? UnlocksMenuType.ItemTeleporter
#pragma warning disable CS0618 // Type or member is obsolete
                                : type == "CharacterSelect" ? UnlocksMenuType.CharacterSelect
#pragma warning restore CS0618 // Type or member is obsolete
                                : type == "Loadouts" ? UnlocksMenuType.Loadouts
                                : type == "TraitUnlocks" ? UnlocksMenuType.TraitsMenu
                                : type == "Rewards" ? UnlocksMenuType.TwitchRewards
                                : type == "LevelFeelings" ? UnlocksMenuType.TwitchDisasters
                                : type == "UpgradeTrait" ? UnlocksMenuType.AB_UpgradeTrait
                                : type == "RemoveTrait" ? UnlocksMenuType.AB_RemoveTrait
                                : type == "ChangeTraitRandom" ? UnlocksMenuType.AB_SwapTrait
                                : type == "RewardConfigs" ? UnlocksMenuType.RewardConfigs
                                : type == "TraitConfigs" ? UnlocksMenuType.TraitConfigs
                                : type == "MutatorConfigs" ? UnlocksMenuType.MutatorConfigs
                                : UnlocksMenuType.Unknown;
            if (Type == UnlocksMenuType.Unknown)
            {
                RogueFramework.LogWarning($"Unknown ScrollingMenu type: \"{type}\"!");
            }
        }
Exemplo n.º 2
0
 void Awake()
 {
     if (null == menu)
     {
         menu = GetComponent <ScrollingMenu>();
     }
 }
Exemplo n.º 3
0
        public static bool ScrollingMenu_PushedButton(ScrollingMenu __instance, ButtonHelper myButton)
        {
            bool debug = RogueFramework.IsDebugEnabled(DebugFlags.UnlockMenus);

            if (__instance.menuType.EndsWith("Configs"))
            {
                if (debug)
                {
                    RogueFramework.LogDebug("Redirecting the button push to the original method.");
                }
                return(true);
            }

            if (debug)
            {
                RogueFramework.LogDebug($"Pressing \"{myButton.myText.text}\" ({myButton.scrollingButtonNum}, {myButton.scrollingButtonType}) button.");
            }

            ButtonData      buttonData = __instance.buttonsData[myButton.scrollingButtonNum];
            DisplayedUnlock du         = (DisplayedUnlock)buttonData.__RogueLibsCustom;

            try { du.OnPushedButton(); }
            catch (Exception e) { RogueFramework.LogError(e, "DisplayedUnlock.OnPushedButton", du, du.Menu); }
            return(false);
        }
Exemplo n.º 4
0
        public static bool ScrollingMenu_SortUnlocks(ScrollingMenu __instance, List <Unlock> myUnlockList, List <Unlock> ___listUnlocks)
        {
            List <DisplayedUnlock> displayedList = myUnlockList.ConvertAll(u => (DisplayedUnlock)u.__RogueLibsCustom);

            if (__instance.menuType == "FreeItems")
            {
                displayedList.RemoveAll(u => u is ItemUnlock itemUnlock && !itemUnlock.IsAvailableInItemTeleporter);
            }

            displayedList.Sort();
            CustomScrollingMenu menu = new CustomScrollingMenu(__instance, displayedList);

            if (RogueFramework.IsDebugEnabled(DebugFlags.UnlockMenus))
            {
                RogueFramework.LogDebug($"Setting up \"{menu.Type}\" menu.");
            }

            ___listUnlocks.Clear();
            ___listUnlocks.AddRange(menu.Unlocks.Select(du => du.Unlock));

            foreach (DisplayedUnlock du in menu.Unlocks)
            {
                du.Menu = menu;
            }

            if (menu.Type == UnlocksMenuType.Loadouts)
            {
                reRollLoadouts.Menu = menu;
                ___listUnlocks.Insert(0, reRollLoadouts.Unlock);
                if (RogueFramework.IsDebugEnabled(DebugFlags.EnableTools))
                {
                    RogueFramework.LogDebug("Adding \"GiveNuggets\" debug tool to the menu.");
                    giveNuggets.Menu = menu;
                    ___listUnlocks.Insert(0, giveNuggets.Unlock);
                }
            }
            if (menu.Type == UnlocksMenuType.MutatorMenu)
            {
                __instance.nuggetSlot.gameObject.SetActive(true);
                clearAllMutators.Menu = menu;
                ___listUnlocks.Insert(0, clearAllMutators.Unlock);
            }
            else if (menu.Type == UnlocksMenuType.RewardsMenu)
            {
                __instance.nuggetSlot.gameObject.SetActive(true);
                // clearAllItems.Menu = menu;
                // ___listUnlocks.Insert(0, clearAllItems.Unlock);
            }
            else if (menu.Type == UnlocksMenuType.TraitsMenu)
            {
                __instance.nuggetSlot.gameObject.SetActive(true);
                // clearAllTraits.Menu = menu;
                // ___listUnlocks.Insert(0, clearAllTraits.Unlock);
            }

            __instance.numButtons = ___listUnlocks.Count;
            return(false);
        }
 void Awake()
 {
     if (null == menu) {
         menu = GetComponent<ScrollingMenu>();
     }
     if (null == menu) {
         Debug.LogError("No menu attached to " + gameObject.name);
     }
 }
Exemplo n.º 6
0
        public static void ScrollingMenu_OpenScrollingMenu_Prefix(ScrollingMenu __instance, out float __state)
        {
            float x = 1f - __instance.scrollBar.value;

            __state = x * (__instance.numButtons - __instance.numButtonsOnScreen + 1f);
            if (RogueFramework.IsDebugEnabled(DebugFlags.UnlockMenus))
            {
                RogueFramework.LogDebug($"Stored menu's scrolling value of {__state} units.");
            }
        }
Exemplo n.º 7
0
Arquivo: ECTD.cs Projeto: Cuber01/ECTD
        public static void ScrollingMenu_SortUnlocks(ScrollingMenu __instance, string unlockType)
        {
            List <Unlock> listUnlocks = (List <Unlock>)AccessTools.Field(typeof(ScrollingMenu), "listUnlocks").GetValue(__instance);

            if (unlockType == "Challenge")
            {
                listUnlocks.Insert(1, new Unlock("ECTD-NoLimitNuggets", "Challenge", true));
                __instance.numButtons++;
            }
        }
Exemplo n.º 8
0
        protected static void ScrollingMenu_PushedButton(ScrollingMenu __instance, ButtonHelper myButton)
        {
            if (__instance.menuType == "Challenges")
            {
                if (!myButton.scrollingButtonUnlock.unlocked || !__instance.gc.serverPlayer || myButton.scrollingButtonType == "ClearAll" || myButton.scrollingButtonType == "CreateAMutator")
                {
                    return;
                }

                if (myButton.scrollingHighlighted)
                {
                    foreach (CustomMutator mutator in RogueLibs.Instance.Mutators)
                    {
                        if (Array.IndexOf(mutator.Conflicting, myButton.scrollingButtonType) != -1)
                        {
                            foreach (ButtonData buttonData in __instance.buttonsData)
                            {
                                if (buttonData.scrollingButtonType == mutator.Id)
                                {
                                    if (buttonData.scrollingHighlighted)
                                    {
                                        mutator.TriggerStateChange(false);
                                    }

                                    buttonData.scrollingHighlighted = false;
                                    buttonData.highlightedSprite    = __instance.solidObjectButton;
                                    __instance.gc.challenges.Remove(buttonData.scrollingButtonType);
                                    __instance.gc.originalChallenges.Remove(buttonData.scrollingButtonType);
                                }
                            }
                        }
                    }
                    int index = RogueLibs.Instance.Mutators.FindIndex(m => m.Id == myButton.scrollingButtonType);
                    if (index != -1)
                    {
                        RogueLibs.Instance.Mutators[index].TriggerStateChange(true);
                    }

                    __instance.gc.SetDailyRunText();
                    __instance.UpdateOtherVisibleMenus(__instance.menuType);
                }
                else
                {
                    int index = RogueLibs.Instance.Mutators.FindIndex(m => m.Id == myButton.scrollingButtonType);
                    if (index != -1)
                    {
                        RogueLibs.Instance.Mutators[index].TriggerStateChange(false);
                    }

                    __instance.gc.SetDailyRunText();
                    __instance.UpdateOtherVisibleMenus(__instance.menuType);
                }
            }
        }
Exemplo n.º 9
0
 void Awake()
 {
     if (null == menu)
     {
         menu = GetComponent <ScrollingMenu>();
     }
     if (null == menu)
     {
         Debug.LogError("No menu attached to " + gameObject.name);
     }
 }
Exemplo n.º 10
0
        private void AddMenuIcon(ScrollingMenu menu, umbracoPage page, int pageId)
        {
            var title = Configuration.GetUmbracoObjectsByPagePath(page.Request.Path).First().Name + " Usages";

            MenuIconI ni = menu.NewIcon();

            ni.AltText        = "View Usages";
            ni.OnClickCommand = string.Format("UmbClientMgr.openModalWindow('plugins/census/usages.aspx?sourcePage={0}&sourceId={1}', '{2}', true, 600, 500, 0, 0); return false;", page.Request.Path, pageId, title);
            ni.ImageURL       = string.Concat(Configuration.PluginDirectory, "census-toolbar-icon.png");

            TweakMenuButton(ref page);
        }
Exemplo n.º 11
0
        private static IEnumerator EnsureScrollbarValue(ScrollingMenu menu, float value)
        {
            menu.scrollBar.value = value;
            yield return(null);

            menu.scrollBar.value = value;
            yield return(null);

            menu.scrollBar.value = value;
            yield return(null);

            menu.scrollBar.value = value;
        }
Exemplo n.º 12
0
        public static bool ScrollingMenu_ShowDetails(ScrollingMenu __instance, ButtonHelper myButton)
        {
            if (__instance.agent != null && myButton.scrollingButtonUnlock?.unlockType == "Trait" && __instance.agent.addedEndLevelTrait || !string.IsNullOrEmpty(myButton.scrollingButtonLevelFeeling) || !string.IsNullOrEmpty(myButton.scrollingButtonConfigName) || !string.IsNullOrEmpty(myButton.scrollingButtonAgentName))
            {
                return(true);
            }
            DisplayedUnlock du = (DisplayedUnlock)myButton.scrollingButtonUnlock.__RogueLibsCustom;

            __instance.detailsTitle.text   = du.GetName();
            __instance.detailsText.text    = du.GetFancyDescription();
            __instance.detailsImage.sprite = du.GetImage();
            __instance.detailsImage.gameObject.SetActive(__instance.detailsImage.sprite != null);

            return(false);
        }
Exemplo n.º 13
0
    void OnDrawGizmos()
    {
        ScrollingMenu m = GetComponent <ScrollingMenu>();

        if (!m || !HandPositionIndicator)
        {
            return;
        }
        Gizmos.color = Color.blue;
        Bounds bbox = HandPositionIndicator.GetComponent <Renderer>().bounds;

        bbox.Expand(HandPositionIndicatorRange * m.direction.normalized);
        Vector3 pos = HandPositionIndicator.parent.position; //HandPositionIndicator.localToWorldMatrix.MultiplyPoint(new Vector3(0, 0, 0));

        Gizmos.DrawWireCube(pos, bbox.size);
    }
Exemplo n.º 14
0
	void Start () {
        initialPosition = HandPositionIndicator.localPosition;

        f = GetComponent<Fader>();
        s = GetComponent<ScrollingMenu>();
        if (!HandPositionIndicator) {
            Debug.LogError("No hand position indicator");
        }
        if (!f) {
            Debug.LogError("No fader");
        }
        if (!s) {
            Debug.LogError("No menu");
        }

        HandPositionIndicator.gameObject.GetComponent<SetColor>().color = DefaultIndicatorColor;
	}
Exemplo n.º 15
0
 void OnLevelWasLoaded(int level)
 {
     if (level == 0)
     {
         parentAssignmentHolder = GameObject.FindGameObjectWithTag("scrollingMenu").transform;
         thisScrollingMenu      = GameObject.FindGameObjectWithTag("scrollingMenu").GetComponent <ScrollingMenu> ();
         myCanvas                 = GameObject.FindGameObjectWithTag("menuCanvas").GetComponent <Canvas> ();
         loginPanel               = GameObject.FindGameObjectWithTag("loginPanel");
         MainMenuPanel            = GameObject.FindGameObjectWithTag("menuPanel");
         fadeToBlackImage.enabled = false;
         SetBlurMenuButtons(true);
     }
     else
     {
         incompleteAssignments.Clear();
         completedAssignments.Clear();
         SetBlurMenuButtons(false);
     }
 }
Exemplo n.º 16
0
 public static void ScrollingMenu_CanHaveTrait(ScrollingMenu __instance, Unlock myUnlock, ref bool __result)
 {
     if (__result)
     {
         foreach (Trait trait in __instance.agent.statusEffects.TraitList)
         {
             if (myUnlock.cancellations.Contains(trait.traitName))
             {
                 __result = false;
                 return;
             }
             Unlock traitUnlock = RogueLibs.GetUnlock(trait.traitName, UnlockTypes.Trait)?.Unlock;
             if (traitUnlock?.cancellations.Contains(myUnlock.unlockName) == true)
             {
                 __result = false;
                 return;
             }
         }
     }
 }
Exemplo n.º 17
0
        protected static void ScrollingMenu_SortUnlocks(ScrollingMenu __instance, string unlockType, List <Unlock> ___listUnlocks)
        {
            if (unlockType == "Challenge")
            {
                List <Unlock> customMutators = new List <Unlock>();

                RogueLibs.Instance.Mutators.Sort();
                foreach (CustomMutator mutator in RogueLibs.Instance.Mutators)
                {
                    if (mutator.ShowInMenu)
                    {
                        customMutators.Add(new Unlock(mutator.Id, "Challenge", mutator.Unlocked)
                        {
                            cancellations = new List <string>(mutator.Conflicting)
                        });
                    }
                }
                ___listUnlocks.InsertRange(1, customMutators);
                __instance.numButtons += customMutators.Count;
            }
        }
Exemplo n.º 18
0
    void Start()
    {
        initialPosition = HandPositionIndicator.localPosition;

        f = GetComponent <Fader>();
        s = GetComponent <ScrollingMenu>();
        if (!HandPositionIndicator)
        {
            Debug.LogError("No hand position indicator");
        }
        if (!f)
        {
            Debug.LogError("No fader");
        }
        if (!s)
        {
            Debug.LogError("No menu");
        }

        HandPositionIndicator.gameObject.GetComponent <SetColor>().color = DefaultIndicatorColor;
    }
Exemplo n.º 19
0
 void Awake()
 {
     s_instance = this;
 }
Exemplo n.º 20
0
 void Awake()
 {
     if (null == menu) {
         menu = GetComponent<ScrollingMenu>();
     }
 }
Exemplo n.º 21
0
        protected static IEnumerator ScrollingMenu_MakeButtonsVisible(IEnumerator __result, ScrollingMenu __instance)
        {
            float initValue = __instance.scrollBar.value != 0f ? __instance.scrollBar.value : 1f;

            while (__result.MoveNext())
            {
                __instance.scrollBar.value = initValue;
                object cur = __result.Current;
                __instance.scrollBar.value = initValue;
                yield return(cur);

                __instance.scrollBar.value = initValue;
            }
            __instance.scrollBar.value = initValue;
        }
Exemplo n.º 22
0
 void Awake()
 {
     s_instance = this;
 }
Exemplo n.º 23
0
        public static void ScrollingMenu_OpenScrollingMenu(ScrollingMenu __instance, ref float __state, List <Unlock> ___listUnlocks)
        {
            __instance.numButtons = ___listUnlocks.Count;
            float x     = __state / (__instance.numButtons - __instance.numButtonsOnScreen + 1f);
            bool  debug = RogueFramework.IsDebugEnabled(DebugFlags.UnlockMenus);

            if (debug)
            {
                RogueFramework.LogDebug($"Restoring menu's scrolling value of {__state} units.");
            }
            __instance.StartCoroutine(EnsureScrollbarValue(__instance, Mathf.Clamp01(1f - x)));

            if (__instance.menuType == "Challenges" || __instance.menuType == "FreeItems")
            {
                __instance.nuggetSlot.gameObject.SetActive(true);
            }
            else if (__instance.menuType == "Floors")
            {
                if (debug)
                {
                    RogueFramework.LogDebug("Setting up \"Floors\" menu.");
                }
                List <DisplayedUnlock> displayedUnlocks = GameController.gameController.sessionDataBig.floorUnlocks.Select(u => (DisplayedUnlock)u.__RogueLibsCustom).OrderBy(d => d).ToList();
                CustomScrollingMenu    menu             = new CustomScrollingMenu(__instance, displayedUnlocks);

                foreach (DisplayedUnlock du in displayedUnlocks.ToList())
                {
                    if (!du.IsAvailable)
                    {
                        displayedUnlocks.Remove(du);
                        __instance.buttonsData.Remove(du.ButtonData);
                        __instance.numButtons--;
                    }
                    else
                    {
                        du.Menu = menu;
                    }
                }

                foreach (ButtonData buttonData in __instance.buttonsData)
                {
                    SetupUnlocks(buttonData, buttonData.scrollingButtonUnlock);
                }
            }
            else if (__instance.menuType == "Traits")
            {
                if (debug)
                {
                    RogueFramework.LogDebug("Setting up \"Traits\" menu.");
                }
                __instance.numButtons = __instance.smallTraitList.Count;
                List <DisplayedUnlock> displayedUnlocks = __instance.smallTraitList.Select(u => (DisplayedUnlock)u.__RogueLibsCustom).OrderBy(d => d).ToList();
                CustomScrollingMenu    menu             = new CustomScrollingMenu(__instance, displayedUnlocks);

                foreach (DisplayedUnlock du in displayedUnlocks)
                {
                    du.Menu = menu;
                }

                foreach (ButtonData buttonData in __instance.buttonsData)
                {
                    SetupUnlocks(buttonData, buttonData.scrollingButtonUnlock);
                }
            }
            else if (__instance.menuType == "RemoveTrait" || __instance.menuType == "ChangeTraitRandom" || __instance.menuType == "UpgradeTrait")
            {
                if (debug)
                {
                    RogueFramework.LogDebug($"Setting up \"{__instance.menuType}\" menu.");
                }
                __instance.numButtons = __instance.customTraitList.Count;
                List <DisplayedUnlock> displayedUnlocks = __instance.customTraitList.Select(u => (DisplayedUnlock)u.__RogueLibsCustom).OrderBy(d => d).ToList();
                CustomScrollingMenu    menu             = new CustomScrollingMenu(__instance, displayedUnlocks);

                foreach (DisplayedUnlock du in displayedUnlocks)
                {
                    du.Menu = menu;
                }

                foreach (ButtonData buttonData in __instance.buttonsData)
                {
                    SetupUnlocks(buttonData, buttonData.scrollingButtonUnlock);
                }
            }
        }
Exemplo n.º 24
0
 public static bool ScrollingMenu_SetupLoadouts(ScrollingMenu __instance, ButtonData myButtonData, Unlock myUnlock, List <Unlock> ___listUnlocks)
 {
     SetupUnlocks(myButtonData, myUnlock);
     __instance.numButtons = ___listUnlocks.Count;
     return(false);
 }
Exemplo n.º 25
0
    void OnLevelWasLoaded(int level)
    {
        if (level == 0) {
            parentAssignmentHolder = GameObject.FindGameObjectWithTag ("scrollingMenu").transform;
            thisScrollingMenu = GameObject.FindGameObjectWithTag ("scrollingMenu").GetComponent<ScrollingMenu> ();
            myCanvas = GameObject.FindGameObjectWithTag ("menuCanvas").GetComponent<Canvas> ();
            loginPanel = GameObject.FindGameObjectWithTag ("loginPanel");
            MainMenuPanel = GameObject.FindGameObjectWithTag ("menuPanel");
            fadeToBlackImage.enabled = false;
            SetBlurMenuButtons(true);
        } else {
            incompleteAssignments.Clear ();
            completedAssignments.Clear ();
            SetBlurMenuButtons(false);

        }
    }