using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options; using I2.Loc; using Ichni.Story.UI; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Serialization; using UnityEngine.UI; namespace Ichni.Story { public class DialogContentFrame : MonoBehaviour, IPointerClickHandler { public GameObject textPrefab; public GameObject choiceGroupPrefab; public RectTransform dialogContentContainer; public List dialogTexts; public List choiceGroups; public void PlaySentence(string speakerName, string content) { DialogTextUI dialogTextUI = Instantiate(textPrefab, dialogContentContainer).GetComponent(); dialogTextUI.speakerNameText.SetTerm("Characters/" + speakerName); dialogTextUI.contentText.SetTerm(ChapterSelectionManager.instance.currentChapter +"/" +content); dialogTexts.Add(dialogTextUI); } public ChoiceGroupUI PlayChoice(ChoiceGroup choiceGroup) { ChoiceGroupUI choiceGroupUI = Instantiate(choiceGroupPrefab, dialogContentContainer).GetComponent(); choiceGroupUI.Initialize(choiceGroup); choiceGroups.Add(choiceGroupUI); return choiceGroupUI; } public void SelectChoice(ChoiceGroup choiceGroup, int index) { ChoiceGroupUI choiceGroupUI = PlayChoice(choiceGroup); for (var buttonIndex = 0; buttonIndex < choiceGroupUI.choiceButtonList.Count; buttonIndex++) { Button b = choiceGroupUI.choiceButtonList[buttonIndex]; b.interactable = false; if (buttonIndex == index) { b.image.color = Color.red; } } DialogManager.instance.PlayNextDialogParagraph(choiceGroup.choices[index].nextDialogName, false); } public void ClearAllSentences() { foreach (DialogTextUI dialogText in dialogTexts) { Destroy(dialogText.gameObject); } foreach (ChoiceGroupUI choiceGroup in choiceGroups) { Destroy(choiceGroup.gameObject); } dialogTexts.Clear(); choiceGroups.Clear(); } public void OnPointerClick(PointerEventData eventData) { DialogManager.instance.PlayDialog(); } } }