342 lines
11 KiB
C#
342 lines
11 KiB
C#
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<EndPanel>();
|
|
}
|
|
|
|
[YarnCommand("load_scene")]
|
|
public static IEnumerator LoadScene(string sceneName, float _unusedFadeDuration = 0f)
|
|
{
|
|
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<ScreenTransitionPanel>();
|
|
return panel.FadeInAsync(duration);
|
|
}
|
|
|
|
[YarnCommand("fade_out")]
|
|
public static IEnumerator FadeOut(float duration = 1)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
return panel.FadeOutAsync(duration);
|
|
}
|
|
|
|
[YarnCommand("fade_in_sync")]
|
|
public static void FadeInSync(float duration = 1)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
panel.FadeInSync(duration);
|
|
}
|
|
|
|
[YarnCommand("fade_out_sync")]
|
|
public static void FadeOutSync(float duration = 1)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
panel.FadeOutSync(duration);
|
|
}
|
|
|
|
[YarnCommand("fade_in_white")]
|
|
public static IEnumerator FadeInWhite(float duration = 1)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
return panel.FadeInWhiteAsync(duration);
|
|
}
|
|
|
|
[YarnCommand("flash_white")]
|
|
public static IEnumerator FlashWhite(float duration = 0.2f)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
return panel.FlashWhite(duration);
|
|
}
|
|
|
|
[YarnCommand("wipe_in")]
|
|
public static IEnumerator WipeIn(float duration = 0.6f)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
return panel.WipeInAsync(duration);
|
|
}
|
|
|
|
[YarnCommand("wipe_out")]
|
|
public static IEnumerator WipeOut(float duration = 0.6f)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
return panel.WipeOutAsync(duration);
|
|
}
|
|
|
|
[YarnCommand("shutter_in")]
|
|
public static IEnumerator ShutterIn(float duration = 0.6f)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
return panel.ShutterInAsync(duration);
|
|
}
|
|
|
|
[YarnCommand("shutter_out")]
|
|
public static IEnumerator ShutterOut(float duration = 0.6f)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<ScreenTransitionPanel>();
|
|
return panel.ShutterOutAsync(duration);
|
|
}
|
|
|
|
[YarnCommand("show_obj")]
|
|
public static IEnumerator ShowObj(string picName, float duration = 1)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
return panel.ShowObj(picName, duration);
|
|
}
|
|
|
|
[YarnCommand("hide_obj")]
|
|
public static IEnumerator HideObj(float duration = 1)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
return panel.HideObj(duration);
|
|
}
|
|
|
|
[YarnCommand("show_sprite")]
|
|
public static IEnumerator ShowSprite(string picName, float duration = 1)
|
|
{
|
|
yield return SpriteShowcase.Instance.ShowObj(picName, duration);
|
|
}
|
|
|
|
[YarnCommand("dream_overflow_on")]
|
|
public static IEnumerator DreamOverflowOn(string preset = "entry", float duration = 0.35f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
yield return showcase.SetDreamOverflow(preset, 1f, duration);
|
|
}
|
|
|
|
[YarnCommand("dream_overflow_off")]
|
|
public static IEnumerator DreamOverflowOff(float duration = 0.8f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
yield return showcase.SetDreamOverflow(null, 0f, duration);
|
|
}
|
|
|
|
[YarnCommand("show_sprite_motion")]
|
|
public static IEnumerator ShowSpriteMotion(string picName, string motionProfile, float duration = 0.35f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
yield return showcase.ShowObjWithMotion(picName, motionProfile, duration);
|
|
}
|
|
|
|
[YarnCommand("sprite_motion")]
|
|
public static IEnumerator SpriteMotion(string motionProfile, float leadDuration = 0.18f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
|
|
showcase.PlayCurrentMotion(motionProfile);
|
|
if (leadDuration > 0f)
|
|
{
|
|
yield return new WaitForSeconds(leadDuration);
|
|
}
|
|
}
|
|
|
|
[YarnCommand("kite_show")]
|
|
public static IEnumerator KiteShow(float height = 0, int wind = 0, float duration = 0.35f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
yield return showcase.ShowKite(height, wind, duration);
|
|
}
|
|
|
|
[YarnCommand("kite_state")]
|
|
public static IEnumerator KiteState(float height, int wind, float duration = 0.9f, float leadDuration = 0.35f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
|
|
showcase.SetKiteState(height, wind, duration);
|
|
if (leadDuration > 0f)
|
|
{
|
|
yield return new WaitForSeconds(Mathf.Min(leadDuration, duration));
|
|
}
|
|
}
|
|
|
|
[YarnCommand("kite_wind")]
|
|
public static void KiteWind(int wind, float turbulence = -1f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) return;
|
|
showcase.SetKiteWind(wind, turbulence);
|
|
}
|
|
|
|
[YarnCommand("kite_accent")]
|
|
public static IEnumerator KiteAccent(string profile, float leadDuration = 0.18f)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
|
|
showcase.PlayKiteAccent(profile);
|
|
if (leadDuration > 0f)
|
|
{
|
|
yield return new WaitForSeconds(leadDuration);
|
|
}
|
|
}
|
|
|
|
[YarnCommand("kite_hide")]
|
|
public static IEnumerator KiteHide(float duration = 1)
|
|
{
|
|
var showcase = SpriteShowcase.Instance;
|
|
if (showcase == null) yield break;
|
|
yield return showcase.HideKite(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<PlayToolPanel>();
|
|
return panel.ShowFullScreen(picName, duration);
|
|
}
|
|
|
|
[YarnCommand("hide_full_screen")]
|
|
public static IEnumerator HideFullScreen(float duration = 1)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
return panel.HideFullScreen(duration);
|
|
}
|
|
|
|
[YarnCommand("open_progress_window")]
|
|
public static IEnumerator OpenProgressWindow(string title, string description, float duration)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
return panel.OpenProgressWindow(title, description, duration);
|
|
}
|
|
|
|
[YarnCommand("open_warning_window")]
|
|
public static IEnumerator OpenWarningWindow(string description)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
return panel.OpenWarningWindow(description);
|
|
}
|
|
|
|
[YarnCommand("flash_red")]
|
|
public static IEnumerator FlashRed(float duration = 0.2f)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
return panel.FlashRed(duration);
|
|
}
|
|
|
|
[YarnCommand("show_sign_board")]
|
|
public static void ShowSignBoard(bool enable = true)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
panel.ShowSignBoard();
|
|
if (enable)
|
|
{
|
|
panel.EnableSignBoard();
|
|
}
|
|
}
|
|
|
|
[YarnCommand("enable_sign_board")]
|
|
public static void EnableSignBoard()
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
panel.EnableSignBoard();
|
|
}
|
|
|
|
[YarnCommand("close_sign_board")]
|
|
public static void CloseSignBoard()
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
panel.CloseSignBoard();
|
|
}
|
|
|
|
[YarnCommand("time_flows_on")]
|
|
public static IEnumerator TimeFlowsOn(string originState, string targetState)
|
|
{
|
|
var panel = UIManager.Instance.GetPanel<PlayToolPanel>();
|
|
return panel.TimeFlowsOn(originState, targetState);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|