public virtual void AddIcons(DialogueOptionInitializer doi, RHSpeaker speaker, RHConversation conversation) { string timeStr = Time.ToString("F2") + " s"; doi.AddTextIcon(timeStr, Color.white); for (int i = 0; i < 5; i++) { RHStat s = (RHStat)i; float sum = 0; int numListeners = 0; foreach (RHListener l in conversation.Listeners.Keys) { if (l == speaker.GetComponent <RHListener>()) { continue; } float f = GetPower(speaker, l, conversation, s); sum += f; numListeners++; } if (Mathf.Abs(sum) <= 1) { continue; } Color c = RHManager.ProportionToColor(GetBasePower(s), sum / numListeners); doi.AddIcon(RHManager.GetStatIcon(s), sum.ToString("F1"), c, (sum > 0) ? Color.white : Color.red); } }
public void AddDialogueOption(DialogueOptionInitializer dop) { GameObject newOption; if (dop.AdditionalIcons.Count > 0) { newOption = Instantiate(FindObjectOfType <TextboxManager>().DialogueOptionWithIconsPrefab, m_OptionsTransform); foreach (GameObject go in dop.AdditionalIcons) { go.transform.SetParent(newOption.transform.Find("Icons")); } } else { newOption = Instantiate(FindObjectOfType <TextboxManager>().DialogueOptionPrefab, m_OptionsTransform); } newOption.GetComponent <DialogueOption> ().SelectionText = dop.SelectionText; newOption.GetComponent <DialogueOption> ().OnSelect = dop.OnSelect; newOption.GetComponent <DialogueOption> ().MasterBox = this; newOption.GetComponent <DialogueOption> ().remainderText = dop.remainderText; newOption.GetComponentInChildren <TextMeshProUGUI> ().text = TextboxManager.TrimSpecialSequences(dop.SelectionText); newOption.GetComponent <DialogueOption>().CloseDialogueWindow = dop.CloseDialogueWindow; newOption.GetComponent <Button>().interactable = dop.Interactable; if (dop.hoverText.Length > 0) { UIHoverText hoverText = newOption.AddComponent <UIHoverText>(); hoverText.SetText(dop.hoverText); } EventSystem.current.SetSelectedGameObject(newOption); Vector2 v = m_OptionsTransform.gameObject.GetComponent <RectTransform>().sizeDelta; m_OptionsTransform.gameObject.GetComponent <RectTransform>().sizeDelta = new Vector2(v.x, v.y + 51); }
public void AddDialogueOption(string promptText, DialogueOption.SelectFunction function) { DialogueOptionInitializer dop = new DialogueOptionInitializer(); dop.SelectionText = promptText; dop.OnSelect = function; options.Add(dop); }
public void AddDialogueOption(string promptText, string remainingSequenceText) { DialogueOptionInitializer dop = new DialogueOptionInitializer(); dop.SelectionText = promptText; dop.OnSelect = SelectionFunction; dop.remainderText = remainingSequenceText; options.Add(dop); }
public void AddDialogueOption(string promptText, DialogueOption.SelectFunction function, bool autoClose = true, string hoverText = "") { DialogueOptionInitializer dop = new DialogueOptionInitializer(); dop.SelectionText = promptText; dop.OnSelect = function; dop.hoverText = hoverText; dop.CloseDialogueWindow = autoClose; options.Add(dop); }
public void AddDialogueOption(DialogueOptionInitializer dop) { GameObject newOption = Instantiate(FindObjectOfType <TextboxManager> ().DialogueOptionPrefab, transform.Find("Options")); newOption.GetComponent <DialogueOption> ().SelectionText = dop.SelectionText; newOption.GetComponent <DialogueOption> ().OnSelect = dop.OnSelect; newOption.GetComponent <DialogueOption> ().MasterBox = this; newOption.GetComponent <DialogueOption> ().remainderText = dop.remainderText; newOption.GetComponentInChildren <TextMeshProUGUI> ().text = TextboxManager.TrimSpecialSequences(dop.SelectionText); EventSystem.current.SetSelectedGameObject(newOption); Debug.Log("added DialogueOption: " + dop.SelectionText); }
public static void CreateDialogueOptionListSortedType(List <RHStatement> statements, RHSpeaker speaker, RHConversation baseConversation, string prompt = "Select your next statement") { DialogueSelectionInitializer dialogue = new DialogueSelectionInitializer(prompt); Dictionary <RHType, List <RHStatement> > sortedStatements = new Dictionary <RHType, List <RHStatement> >(); foreach (RHStatement s in statements) { if (!sortedStatements.ContainsKey(s.RhetoricType)) { sortedStatements[s.RhetoricType] = new List <RHStatement>(); } sortedStatements[s.RhetoricType].Add(s); } foreach (RHType t in sortedStatements.Keys) { void InitializeSubList(DialogueOption dop2) { DialogueSelectionInitializer dialogueSubList = new DialogueSelectionInitializer(prompt); foreach (RHStatement s in sortedStatements[t]) { DialogueOptionInitializer doi = convertToDialogueOption(s, statements, speaker, baseConversation); dialogueSubList.AddDialogueOption(doi); } void ReturnToBase(DialogueOption selectedOption) { CreateDialogueOptionListSortedType(statements, speaker, baseConversation, prompt); } dialogueSubList.AddDialogueOption("Back", ReturnToBase); GameObject go = TextboxManager.StartDialogueOptions(dialogueSubList); baseConversation.SetDialogueBox(go); } dialogue.AddDialogueOption(RHTypeToString(t), InitializeSubList); } void Close(DialogueOption selectedOption) { baseConversation.CloseConversation(); } dialogue.AddDialogueOption("Close", Close); baseConversation.SetDialogueBox(TextboxManager.StartDialogueOptions(dialogue)); }
public override string PerformAction(string actionString, Textbox originTextbox) { List <string> rawOptions = new List <string> (); bool inQuestion = true; string prompt = ""; string lastLine = ""; for (int i = 1; i < actionString.Length; i++) { char c = actionString.ToCharArray() [i]; if (c == '-') { if (inQuestion) { prompt = lastLine; inQuestion = false; } else { Debug.Log("Added option: " + lastLine); rawOptions.Add(lastLine.Substring(1)); } lastLine = ""; } lastLine += c; } Debug.Log("Added option end: " + lastLine.Substring(1)); rawOptions.Add(lastLine.Substring(1)); GameObject go = GameObject.Instantiate(GameObject.FindObjectOfType <TextboxManager> ().DialogueBoxPrefab); go.GetComponent <DialogueOptionBox> ().Prompt = prompt; go.GetComponent <DialogueOptionBox> ().MasterSequence = originTextbox.MasterSequence; Debug.Log("length of rawoptions; " + rawOptions.Count); foreach (string s in rawOptions) { DialogueOptionInitializer dop = new DialogueOptionInitializer(); dop.SelectionText = s; dop.OnSelect = SelectionFunction; dop.remainderText = s + originTextbox.MasterSequence.RawText; go.GetComponent <DialogueOptionBox> ().AddDialogueOption(dop); } originTextbox.MasterSequence.closeSequence(); return(""); }
private static DialogueOptionInitializer convertToDialogueOption(RHStatement s, List <RHStatement> allStatements, RHSpeaker speaker, RHConversation baseConversation) { DialogueOptionInitializer doi = new DialogueOptionInitializer(); void SelectionFunction(DialogueOption selectedOption) { baseConversation.QueueStatement(s, baseConversation.Speakers[0]); RHManager.CreateDialogueOptionList(allStatements, speaker, baseConversation, "Select your next Statement", FindObjectOfType <DialogueOptionBox>().GetScrollValue()); } string name = s.StatementName; if (name == null || name == "") { name = s.gameObject.name; } doi.SelectionText = name; doi.OnSelect = SelectionFunction; doi.CloseDialogueWindow = true; s.AddIcons(doi, speaker, baseConversation); string missingRequirements = baseConversation.MeetsRequirements(s, speaker); doi.Interactable = (missingRequirements == "Meets Requirements"); doi.hoverText = (doi.Interactable) ? s.GetHoverText(baseConversation) : missingRequirements; //string timeStr = s.Time.ToString("F2") + " s"; //doi.AddTextIcon(timeStr, Color.white); //foreach (RHListener l in baseConversation.Listeners.Keys) //{ // if (l == speaker.GetComponent<RHListener>()) // continue;v // float f = s.GetPower(baseConversation.Speakers[0], l, baseConversation); // Color c = proportionToColor(s.BasePower, f); // doi.AddTextIcon(f.ToString("F2"), c); // doi.Interactable = s.IsEnabled(baseConversation.Speakers[0],baseConversation); //} return(doi); }
public static void CreateDialogueOptionList(List <RHStatement> statements, RHSpeaker speaker, RHConversation baseConversation, string prompt = "Select your next statement", float scroll = 0.0f) { DialogueSelectionInitializer dialogue = new DialogueSelectionInitializer(prompt); List <RHStatement> sortedStatements = new List <RHStatement>(); sortedStatements = RHManager.SortedList(statements, speaker, baseConversation); foreach (RHStatement s in sortedStatements) { DialogueOptionInitializer doi = convertToDialogueOption(s, statements, speaker, baseConversation); dialogue.AddDialogueOption(doi); } void Close(DialogueOption selectedOption) { } dialogue.AddDialogueOption("Close", Close); GameObject go = TextboxManager.StartDialogueOptions(dialogue); go.GetComponent <DialogueOptionBox>().SetScrollValue(scroll); baseConversation.SetDialogueBox(go); }
public void AddDialogueOption(DialogueOptionInitializer doption) { options.Add(doption); }