143 lines
6.6 KiB
C#
143 lines
6.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using AibisDream.Framework;
|
|
using AibisDream.UI;
|
|
using DG.Tweening;
|
|
using UnityEngine;
|
|
|
|
namespace AibisDream.FixSystem
|
|
{
|
|
public struct EmoCutCue : IFixSceneCue
|
|
{
|
|
public FixSceneMode Mode => FixSceneMode.EmoCut;
|
|
|
|
public IEnumerator Enter(FixTransition transition)
|
|
{
|
|
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
|
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
|
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
|
{
|
|
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
|
}
|
|
// Cut的气泡统一放在BodyModule下
|
|
BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Cut);
|
|
|
|
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
|
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Emo");
|
|
if (bodyModule != null)
|
|
{
|
|
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
|
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
|
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
|
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
|
new Color(1f, 1f, 1f, 1f);
|
|
}
|
|
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmoDeep);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
|
yield return cuttingManager.StartCutting(bodyModule);
|
|
}
|
|
|
|
public IEnumerator Exit(FixTransition transition)
|
|
{
|
|
// 无
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
|
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
|
cuttingManager.ClearCutLine();
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutEmo);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
|
}
|
|
}
|
|
|
|
public struct MemoryCutCue : IFixSceneCue
|
|
{
|
|
public FixSceneMode Mode => FixSceneMode.MemoryCut;
|
|
|
|
public IEnumerator Enter(FixTransition transition)
|
|
{
|
|
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
|
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
|
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
|
{
|
|
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
|
}
|
|
// Cut的气泡统一放在BodyModule下
|
|
BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Cut);
|
|
|
|
FixPanelSystem.GetRepairPanel<CablePanel>().ResetPlug();
|
|
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Memory");
|
|
if (bodyModule != null)
|
|
{
|
|
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
|
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
|
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
|
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
|
new Color(1f, 1f, 1f, 1f);
|
|
}
|
|
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemoryDeep);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
|
yield return cuttingManager.StartCutting(bodyModule);
|
|
}
|
|
|
|
|
|
public IEnumerator Exit(FixTransition transition)
|
|
{
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
|
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
|
cuttingManager.ClearCutLine();
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutMemory);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
|
}
|
|
}
|
|
|
|
public struct LogicCutCue : IFixSceneCue
|
|
{
|
|
public FixSceneMode Mode => FixSceneMode.LogicCut;
|
|
|
|
public IEnumerator Enter(FixTransition transition)
|
|
{
|
|
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
|
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
|
|
if (!CameraKit.Instance.EqualToCameraState(CameraEnum.BodyModule))
|
|
{
|
|
bodyModuleSystem.SwitchModuleGroup(ModuleState.Head);
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModule);
|
|
}
|
|
// Cut的气泡统一放在BodyModule下
|
|
BubbleSlotKit.Instance.LoadBubbles(BubbleSlotEnum.Cut);
|
|
|
|
var bodyModule = bodyModuleSystem.FindBodyModuleByName("Logic");
|
|
if (bodyModule != null)
|
|
{
|
|
bodyModule.GetCutSpriteRenderer().sortingOrder = 100;
|
|
bodyModule.GetCutTextSpriteRenderer().sortingOrder = 101;
|
|
bodyModule.GetCutSpriteRenderer().color = new Color(1f, 1f, 1f, 1f);
|
|
bodyModule.GetCutSpriteRenderer().GetComponentInChildren<SpriteRenderer>().color =
|
|
new Color(1f, 1f, 1f, 1f);
|
|
}
|
|
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogicDeep);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
|
yield return cuttingManager.StartCutting(bodyModule);
|
|
}
|
|
|
|
public IEnumerator Exit(FixTransition transition)
|
|
{
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync(0.1f);
|
|
var cuttingManager = FixSystemCenter.SystemDic.Get<CuttingManager>();
|
|
cuttingManager.ClearCutLine();
|
|
yield return CameraKit.Instance.SwitchCamera(CameraEnum.CutLogic);
|
|
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync(0.1f);
|
|
}
|
|
}
|
|
}
|