using System.Text.RegularExpressions; using AibisDream.Kit; using AibisDream.Utility; using Yarn.Unity; namespace AibisDream { public enum EventEnum { NextYarn, PlugIn, PlugOut, SceneLoad, FixStateSwitch, CutStart, CutEnd } public enum GameLoopEnum { AppStart, GameStart, GameQuit, PauseGame, UnPauseGame } public enum DialogEventEnum { LineStart, LineShown, LineEnd, OptionShow, OptionSelected } public enum InteractionEventEnum { Start, End } public struct DialogText { public bool isOption; public string line; public CharacterVo actor; public string lineId; /// /// 获取进行记录的对话 /// /// public string GetDialogText() { // 先去掉换行 var realLine = Regex.Replace(line, "[<|{].*?[>|}]", string.Empty); if (!isOption) { return string.IsNullOrEmpty(actor.GetActorName()) ? realLine + "
" : actor.GetActorName() + ":" + realLine + "
"; } else { return "-> " + realLine + "
"; } } public static DialogText GetLine(LocalizedLine dialogueLine) { return new DialogText { isOption = false, line = dialogueLine.TextWithoutCharacterName.Text, lineId = dialogueLine.TextID, actor = dialogueLine.GetCharacterVo() }; } } public enum StorageEvent { VariableSet } }