using System; using AibisDream.Framework; using AibisDream.Utility; using Yarn.Unity; namespace AibisDream { public class LineView : DialogueViewBase { public override void RunLine(LocalizedLine dialogueLine, Action onDialogueLineFinished) { EnumEventSystem.Global.Send(DialogEventEnum.LineStart, DialogText.GetLine(dialogueLine)); HandleLineOutput(dialogueLine, onDialogueLineFinished); if (DialogController.Instance.quickRunMode) { DialogCanvasManager.Instance.TrySkipLine(true); DialogCanvasManager.Instance.NextStep(); } } private void HandleLineOutput(LocalizedLine dialogueLine, Action onDialogueLineFinished) { DialogCanvasManager.Instance.ShowLine(dialogueLine.TextWithoutCharacterName.Text, dialogueLine.GetCharacterVo(), onDialogueLineFinished, dialogueLine.IsAutoSkipLine()); } public override void RunOptions(DialogueOption[] dialogueOptions, Action onOptionSelected) { EnumEventSystem.Global.Send(DialogEventEnum.OptionShow); var options = DialogOption.GeneOptions(dialogueOptions, onOptionSelected); DialogCanvasManager.Instance.ShowOptions(options); } } }