158 lines
6.7 KiB
C#
158 lines
6.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using AibisDream.Framework;
|
|
using AibisDream.UI;
|
|
using DG.Tweening;
|
|
using UnityEngine;
|
|
|
|
namespace AibisDream.FixSystem
|
|
{
|
|
public struct EmoCutState : IFixState
|
|
{
|
|
public FixState GetState => FixState.EmoCut;
|
|
|
|
public void SetArgs(string args)
|
|
{
|
|
// 无
|
|
}
|
|
|
|
public IEnumerator Enter()
|
|
{
|
|
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下
|
|
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
|
|
|
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()
|
|
{
|
|
// 无
|
|
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 MemoryCutState : IFixState
|
|
{
|
|
public FixState GetState => FixState.MemoryCut;
|
|
|
|
public void SetArgs(string args)
|
|
{
|
|
// 无
|
|
}
|
|
|
|
public IEnumerator Enter()
|
|
{
|
|
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下
|
|
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
|
|
|
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()
|
|
{
|
|
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 LogicCutState : IFixState
|
|
{
|
|
public FixState GetState => FixState.LogicCut;
|
|
|
|
public void SetArgs(string args)
|
|
{
|
|
// 无
|
|
}
|
|
|
|
public IEnumerator Enter()
|
|
{
|
|
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下
|
|
DialogUIManager.Instance.LoadBubbles(cuttingManager.bubbleSlotGroup.CollectData());
|
|
|
|
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()
|
|
{
|
|
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);
|
|
}
|
|
}
|
|
}
|