Exemple #1
0
    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);
        }
    }
Exemple #2
0
    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);
    }
Exemple #3
0
    public void AddDialogueOption(string promptText, DialogueOption.SelectFunction function)
    {
        DialogueOptionInitializer dop = new DialogueOptionInitializer();

        dop.SelectionText = promptText;
        dop.OnSelect      = function;
        options.Add(dop);
    }
Exemple #4
0
    public void AddDialogueOption(string promptText, string remainingSequenceText)
    {
        DialogueOptionInitializer dop = new DialogueOptionInitializer();

        dop.SelectionText = promptText;
        dop.OnSelect      = SelectionFunction;
        dop.remainderText = remainingSequenceText;
        options.Add(dop);
    }
Exemple #5
0
    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);
    }
Exemple #6
0
    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);
    }
Exemple #7
0
    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));
    }
Exemple #8
0
    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("");
    }
Exemple #9
0
    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);
    }
Exemple #10
0
    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);
    }
Exemple #11
0
 public void AddDialogueOption(DialogueOptionInitializer doption)
 {
     options.Add(doption);
 }