Esempio n. 1
0
        // PRIVATE METHODS: -----------------------------------------------------------------------

        protected void AssignButtonChoice(DialogueItemChoiceGroup item, int index)
        {
            if (this.button == null)
            {
                return;
            }
            this.button.onClick.AddListener(() => item.OnMakeChoice(index));
        }
Esempio n. 2
0
        protected bool SetupChoices(DialogueItemChoiceGroup item, DatabaseDialogue.ConfigData config)
        {
            this.CleanChoices();
            int choicesSetup = 0;

            for (int i = 0; i < item.children.Count; ++i)
            {
                DialogueItemChoice choice = item.children[i] as DialogueItemChoice;
                if (!choice || (choice.showOnce && choice.IsRevisit()))
                {
                    continue;
                }

                bool conditions = choice.CheckConditions();
                if (!conditions && choice.onFailChoice == DialogueItemChoice.FailChoiceCondition.HideChoice)
                {
                    continue;
                }

                GameObject choiceInstance = Instantiate <GameObject>(this.prefabChoice);
                choiceInstance.GetComponent <RectTransform>().SetParent(this.choiceContainer, false);

                DialogueChoiceUI choiceUI = choiceInstance.GetComponent <DialogueChoiceUI>();
                bool             disabled = (
                    !conditions &&
                    choice.onFailChoice == DialogueItemChoice.FailChoiceCondition.DisableChoice
                    );

                if (choiceUI != null)
                {
                    choiceUI.Setup(config, item, i, disabled);
                }
                choicesSetup++;
            }

            if (item.shuffleChoices)
            {
                this.ShuffleChoices();
            }

            if (this.choiceContainer.childCount > 0)
            {
                EventSystem.current.SetSelectedGameObject(null);

                if (DatabaseDialogue.Load().autoFocusFirstChoice)
                {
                    Transform selection = this.choiceContainer.GetChild(0);
                    EventSystem.current.SetSelectedGameObject(selection.gameObject);
                }
            }

            return(choicesSetup != 0);
        }
        public static bool StartChoices(DialogueItemChoiceGroup item, DatabaseDialogue.ConfigData config)
        {
            DialogueUI.RequireInstance(config);
            DialogueUI.Instance.wrapChoices.SetActive(true);

            bool choicesAvailable = DialogueUI.Instance.SetupChoices(item, config);

            if (choicesAvailable && item.timedChoice)
            {
                DialogueUI.Instance.StartTimer(item.timeout.GetValue(item.gameObject));
            }

            return(choicesAvailable);
        }
Esempio n. 4
0
        // INITIALIZERS: --------------------------------------------------------------------------

        public void Setup(DatabaseDialogue.ConfigData config, DialogueItemChoiceGroup item,
                          int i, bool disabled)
        {
            this.text.text           = item.children[i].GetContent();
            this.button.interactable = !disabled;

            this.AssignButtonChoice(item, i);

            if (item.children[i].IsRevisit())
            {
                this.color.color = new Color(
                    this.color.color.r,
                    this.color.color.g,
                    this.color.color.b,
                    this.color.color.a * config.revisitChoiceOpacity
                    );
            }
        }
Esempio n. 5
0
        protected bool SetupChoices(DialogueItemChoiceGroup item)
        {
            this.CleanChoices();
            int choicesSetup = 0;

            for (int i = 0; i < item.children.Count; ++i)
            {
                if (!item.children[i].CheckConditions())
                {
                    continue;
                }

                GameObject choiceInstance = Instantiate <GameObject>(this.prefabChoice);
                choiceInstance.GetComponent <RectTransform>().SetParent(this.choiceContainer, false);

                Text choiceText = choiceInstance.GetComponentInChildren <Text>();
                if (choiceText != null)
                {
                    choiceText.text = item.children[i].GetContent();
                }

                Button choiceButton = choiceInstance.GetComponentInChildren <Button>();
                if (choiceButton == null)
                {
                    Debug.LogError(ERR_NO_BUTTON);
                    continue;
                }

                this.AssignButtonChoice(choiceButton, i, item);
                choicesSetup++;
            }

            if (item.shuffleChoices)
            {
                this.ShuffleChoices();
            }
            return(choicesSetup != 0);
        }
Esempio n. 6
0
 protected void AssignButtonChoice(Button button, int index, DialogueItemChoiceGroup item)
 {
     button.onClick.AddListener(() => item.OnMakeChoice(index));
 }