private static void OpenYNDialogue(GameObject shiny, IEnumerable <AbstractItem> items, Cost cost) { FSMUtility.LocateFSM(GameObject.Find("DialogueManager"), "Box Open YN").SendEvent("BOX UP YN"); FSMUtility.LocateFSM(GameObject.Find("Text YN"), "Dialogue Page Control").FsmVariables .GetFsmGameObject("Requester").Value = shiny; // If the text pushes the Y/N buttons off of the page, it results in an input lock // These lengths are a little generous--all MMMMMs will still overflow string itemText = string.Join(", ", items.Select(i => i.UIDef.GetDisplayName()).ToArray()); if (itemText.Length > 120) { itemText = itemText.Substring(0, 117) + "..."; } string costText = cost.GetCostText(); if (costText.Length > 40) { costText = costText.Substring(0, 37) + "..."; } LanguageStringManager.SetString("UI", "RANDOMIZER_YN_DIALOGUE", $"{itemText}<br>{costText}"); if (!cost.CanPay()) { FSMUtility.LocateFSM(GameObject.Find("Text YN"), "Dialogue Page Control") .StartCoroutine(KillGeoText()); } FSMUtility.LocateFSM(GameObject.Find("Text YN"), "Dialogue Page Control").FsmVariables .GetFsmInt("Toll Cost").Value = 0; FSMUtility.LocateFSM(GameObject.Find("Text YN"), "Dialogue Page Control").FsmVariables .GetFsmGameObject("Geo Text").Value.SetActive(true); GameObject.Find("Text YN").GetComponent <DialogueBox>().StartConversation("RANDOMIZER_YN_DIALOGUE", "UI"); }