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
}
}