HAARFTE/Assets/DemoGame/GameScript/Hotfix/Procedure/Logic/常规血液与尿液分析Procedure.cs

114 lines
4.5 KiB
C#

using Cysharp.Threading.Tasks;
using Unity.Loader;
using UnityEngine;
namespace ZC
{
[Procedure(ProcedureType.常规血液与尿液分析Procedure)]
class 尿Procedure : ProcedureBase
{
SceneGameObjectBinding binding;
TriggerEvent triggerEvent;
public override void OnEnter()
{
base.OnEnter();
ResourcesLocalComponent.Instance.LoadScene(AssetConst.Assets_DemoGame_GameRes_Scene_ChouXueScene_unity);
var introduceUI = (IntroduceUI)Global.UIManager.ShowUI(UIType.IntroduceUI);
introduceUI.SetData(ConstStr.尿, ConstStr.尿, IntroduceUI_Callback);
}
private void IntroduceUI_Callback()
{
Global.UIManager.CloseLast();
var modelDisplayUI = (ModelDisplayUI)Global.UIManager.ShowUI(UIType.ModelDisplayUI);
modelDisplayUI.SetData(ModelDisplayUI_Callback);
}
private void ModelDisplayUI_Callback()
{
Global.UIManager.CloseLast();
var minTipsUI = (MinTipsUI)Global.UIManager.ShowUI(UIType.MinTipsUI);
minTipsUI.SetData("知识点讲解", "常规血液与尿液分析知识点讲解——设备认知之后的", MinTipsUI_Callback);
}
private void MinTipsUI_Callback()
{
Global.UIManager.CloseLast();
var bigTipsUI = (BigTipsUI)Global.UIManager.ShowOnlyUI(UIType.BigTipsUI);
bigTipsUI.SetData("移动到护士身边进行常规血液检查");
var minTipsUI = (MinTipsUI)Global.UIManager.ShowOnlyUI(UIType.MinTipsUI);
minTipsUI.SetData("知识点讲解1", "常规血液与尿液分析知识点讲解——设备认知之后的1",
() => { Global.UIManager.HideUI(UIType.MinTipsUI); });
binding = GameObject.FindObjectOfType<SceneGameObjectBinding>();
var gameObject = binding.GetValue("常规血液检查点");
triggerEvent = gameObject.GetOrAddComponent<TriggerEvent>();
triggerEvent.SetData(PlayerMoveToPoint);
}
private void PlayerMoveToPoint()
{
Global.UIManager.HideUI(UIType.BigTipsUI);
Global.UIManager.HideUI(UIType.MinTipsUI);
triggerEvent.Dispose();
// 播放抽血动画
var minTipsUI = (MinTipsUI)Global.UIManager.ShowOnlyUI(UIType.MinTipsUI);
minTipsUI.SetData("知识点讲解2", "常规血液与尿液分析知识点讲解——设备认知之后的2 ----------- 播放抽血动画", () =>
{
Global.UIManager.HideUI(UIType.MinTipsUI);
PlayChouXueAni().Forget();
});
}
async UniTask PlayChouXueAni()
{
await UniTask.Delay(3000);
var bigTipsUI = (BigTipsUI)Global.UIManager.ShowUI(UIType.BigTipsUI);
bigTipsUI.SetData("根据箭头指引让老人去进行尿液取样");
var gameObject = binding.GetValue("尿液取样点");
triggerEvent = gameObject.GetOrAddComponent<TriggerEvent>();
triggerEvent.SetData(PlayerMoveToPoint1);
}
private void PlayerMoveToPoint1()
{
// 打开U取样面板
async UniTask RunAsync()
{
Global.UIManager.HideUI(UIType.BigTipsUI);
triggerEvent.Dispose();
var urineSamplingUI = (UrineSamplingUI)Global.UIManager.ShowUI(UIType.UrineSamplingUI);
urineSamplingUI.SetData(UrineSamplingUI_Callback);
await UniTask.Delay(3000);
}
RunAsync().Forget();
}
private void UrineSamplingUI_Callback()
{
Global.UIManager.CloseLast();
var analysisReportUI = (AnalysisReportUI)Global.UIManager.ShowUI(UIType.AnalysisReportUI);
analysisReportUI.SetData("血常规与尿液分析报告", null, "血常规与尿液分析报告内容", AnalysisReportUI_Callback);
}
private void AnalysisReportUI_Callback()
{
Global.UIManager.CloseLast();
var answerUI = (AnswerUI)Global.UIManager.ShowUI(UIType.AnswerUI);
answerUI.SetData(AnswerUI_Callback);
}
private void AnswerUI_Callback()
{
Global.UIManager.CloseLast();
Global.ProcedureManager.ChangeProcedure(ProcedureType.Procedure);
}
}
}