// PRIVATE METHODS: ----------------------------------------------------------------------- protected void AssignButtonChoice(DialogueItemChoiceGroup item, int index) { if (this.button == null) { return; } this.button.onClick.AddListener(() => item.OnMakeChoice(index)); }
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); }
// 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 ); } }
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); }
protected void AssignButtonChoice(Button button, int index, DialogueItemChoiceGroup item) { button.onClick.AddListener(() => item.OnMakeChoice(index)); }