using System; using System.Collections; using AibisDream.Framework; using AibisDream.UI; using UnityEngine; using Yarn.Unity; namespace AibisDream { public static class BaseYarnCommand { #region 命令名 [YarnCommand("NextYarn")] public static void NextYarn(string exitName = null) { EnumEventSystem.Global.Send(EventEnum.NextYarn); YarnVariableStorage.Instance.ClearLocal(); DialogController.Instance.StartCoroutine(GameManager.Instance.NextSceneSo(exitName)); } [YarnCommand("OpenEndMenu")] public static void OpenEndMenu() { UIManager.Instance.ShowPanel(); } [YarnCommand("load_scene")] public static IEnumerator LoadScene(string sceneName) { HideDialog(); yield return SceneLoader.Instance.LoadSceneAsync(sceneName); } [YarnCommand("unload_scene")] public static IEnumerator UnloadScene() { yield return SceneLoader.Instance.UnloadSceneAsync(); } [YarnCommand("hide_dialog")] public static void HideDialog() { DialogUIManager.Instance.HideDialog(); } [YarnCommand("fade_in")] public static IEnumerator FadeIn(float duration = 1) { var panel = UIManager.Instance.GetPanel(); return panel.FadeInAsync(duration); } [YarnCommand("fade_out")] public static IEnumerator FadeOut(float duration = 1) { var panel = UIManager.Instance.GetPanel(); return panel.FadeOutAsync(duration); } [YarnCommand("fade_in_sync")] public static void FadeInSync(float duration = 1) { var panel = UIManager.Instance.GetPanel(); panel.FadeInSync(duration); } [YarnCommand("fade_out_sync")] public static void FadeOutSync(float duration = 1) { var panel = UIManager.Instance.GetPanel(); panel.FadeOutSync(duration); } [YarnCommand("show_obj")] public static IEnumerator ShowObj(string picName, float duration = 1) { var panel = UIManager.Instance.GetPanel(); return panel.ShowObj(picName, duration); } [YarnCommand("hide_obj")] public static IEnumerator HideObj(float duration = 1) { var panel = UIManager.Instance.GetPanel(); return panel.HideObj(duration); } [YarnCommand("show_sprite")] public static IEnumerator ShowSprite(string picName, float duration = 1) { yield return SpriteShowcase.Instance.ShowObj(picName, duration); } [YarnCommand("hide_sprite")] public static IEnumerator HideSprite(float duration = 1) { yield return SpriteShowcase.Instance.HideObj(duration); } [YarnCommand("showcase_fade_in")] public static IEnumerator ShowcaseFadeIn(float duration = 1) { yield return SpriteShowcase.Instance.FadeInAsync(duration); } [YarnCommand("showcase_fade_out")] public static IEnumerator ShowcaseFadeOut(float duration = 1) { yield return SpriteShowcase.Instance.FadeOutAsync(duration); } [YarnCommand("showcase_fade_in_sync")] public static void ShowcaseFadeInSync(float duration = 1) { SpriteShowcase.Instance.FadeInSync(duration); } [YarnCommand("showcase_fade_out_sync")] public static void ShowcaseFadeOutSync(float duration = 1) { SpriteShowcase.Instance.FadeOutSync(duration); } [YarnCommand("show_large_sprite")] public static IEnumerator ShowLargeSprite(string picName, float duration = 1) { yield return SpriteShowcase.Instance.ShowLargeObj(picName, duration); } [YarnCommand("hide_large_sprite")] public static IEnumerator HideLargeSprite(float duration = 1) { yield return SpriteShowcase.Instance.HideLargeObj(duration); } [YarnCommand("hide_all_sprites")] public static IEnumerator HideAllSprites(float duration = 1) { yield return SpriteShowcase.Instance.HideAll(duration); } [YarnCommand("show_full_screen")] public static IEnumerator ShowFullScreen(string picName, float duration = 1) { var panel = UIManager.Instance.GetPanel(); return panel.ShowFullScreen(picName, duration); } [YarnCommand("hide_full_screen")] public static IEnumerator HideFullScreen(float duration = 1) { var panel = UIManager.Instance.GetPanel(); return panel.HideFullScreen(duration); } [YarnCommand("open_progress_window")] public static IEnumerator OpenProgressWindow(string title, string description, float duration) { var panel = UIManager.Instance.GetPanel(); return panel.OpenProgressWindow(title, description, duration); } [YarnCommand("open_warning_window")] public static IEnumerator OpenWarningWindow(string description) { var panel = UIManager.Instance.GetPanel(); return panel.OpenWarningWindow(description); } [YarnCommand("flash_red")] public static IEnumerator FlashRed(float duration = 0.2f) { var panel = UIManager.Instance.GetPanel(); return panel.FlashRed(duration); } [YarnCommand("show_sign_board")] public static void ShowSignBoard(bool enable = true) { var panel = UIManager.Instance.GetPanel(); panel.ShowSignBoard(); if (enable) { panel.EnableSignBoard(); } } [YarnCommand("enable_sign_board")] public static void EnableSignBoard() { var panel = UIManager.Instance.GetPanel(); panel.EnableSignBoard(); } [YarnCommand("close_sign_board")] public static void CloseSignBoard() { var panel = UIManager.Instance.GetPanel(); panel.CloseSignBoard(); } [YarnCommand("time_flows_on")] public static IEnumerator TimeFlowsOn(string originState, string targetState) { var panel = UIManager.Instance.GetPanel(); return panel.TimeFlowsOn(originState, targetState); } #endregion } }