/// <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}\"!"); } }
void Awake() { if (null == menu) { menu = GetComponent <ScrollingMenu>(); } }
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); }
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); } }
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."); } }
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++; } }
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); } } }
void Awake() { if (null == menu) { menu = GetComponent <ScrollingMenu>(); } if (null == menu) { Debug.LogError("No menu attached to " + gameObject.name); } }
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); }
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; }
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); }
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); }
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; }
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); } }
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; } } } }
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; } }
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; }
void Awake() { s_instance = this; }
void Awake() { if (null == menu) { menu = GetComponent<ScrollingMenu>(); } }
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; }
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); } } }
public static bool ScrollingMenu_SetupLoadouts(ScrollingMenu __instance, ButtonData myButtonData, Unlock myUnlock, List <Unlock> ___listUnlocks) { SetupUnlocks(myButtonData, myUnlock); __instance.numButtons = ___listUnlocks.Count; return(false); }
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); } }