2023-09-18 03:39:32 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2023-09-18 00:01:05 +08:00
|
|
|
|
using DragonSoul.Shared;
|
2023-09-18 03:39:32 +08:00
|
|
|
|
using Mono.Event;
|
2023-09-18 00:01:05 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.Playables;
|
|
|
|
|
|
|
|
|
|
namespace UnityTest.ZXL
|
2023-09-12 23:57:06 +08:00
|
|
|
|
{
|
|
|
|
|
public class FourProcess : ProcessBase
|
|
|
|
|
{
|
2023-09-18 00:01:05 +08:00
|
|
|
|
public override ProcessType processType => ProcessType.四_现场处置场景;
|
|
|
|
|
|
2023-09-18 03:39:32 +08:00
|
|
|
|
protected override void OnInit()
|
|
|
|
|
{
|
|
|
|
|
base.OnInit();
|
|
|
|
|
StartAsync().Coroutine();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnLevel()
|
|
|
|
|
{
|
|
|
|
|
base.OnLevel();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async ETTask StartAsync()
|
|
|
|
|
{
|
|
|
|
|
var ui = UIManager.Instance().ShowUI(UIType.Chapter);
|
|
|
|
|
var chapterUI = ui as ChapterUI;
|
|
|
|
|
if (chapterUI == null)
|
|
|
|
|
{
|
|
|
|
|
Debug.LogError($"{ui.GetType()}");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await chapterUI.Transit(3);
|
|
|
|
|
UIManager.Instance().HideUI(UIType.Chapter);
|
|
|
|
|
|
|
|
|
|
this.SetPlayDirector(playableDirectors[0], PlayTimelineMode.Play);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void Next()
|
|
|
|
|
{
|
|
|
|
|
base.Next();
|
|
|
|
|
switch (index)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[0], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[1], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[2], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[3], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[4], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
// this.SetPlayDirector(playableDirectors[4], PlayTimelineMode.Play);
|
|
|
|
|
// TODO: 打开总结面板
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
EventManager.Instance.FireNow(this, new ProcessOverEventArgs(processType));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ConstEventLogic(object sender, GameEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.ConstEventLogic(sender, e);
|
|
|
|
|
var args = e as ConstEventArgs;
|
|
|
|
|
this.SetPlayDirector(CurrentPlayableDirector, PlayTimelineMode.Pause);
|
|
|
|
|
|
|
|
|
|
switch (args.constDataType)
|
|
|
|
|
{
|
|
|
|
|
case ConstDataType.None:
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.消火栓高亮等待点击:
|
|
|
|
|
WaitOperateFinish4_1_1().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.出现小时钟及文字并等待点击灭火器:
|
|
|
|
|
WaitOperateFinish4_1_2().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.弹出阀门已关提示并等待关闭:
|
|
|
|
|
WaitOperateFinish4_1_3().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开检查无漏气提示并等待关闭:
|
|
|
|
|
WaitOperateFinish4_1_5().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开防止再次燃烧提示并等待关闭:
|
|
|
|
|
WaitOperateFinish4_1_4().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开事故气瓶转移提示并等待关闭:
|
|
|
|
|
WaitOperateFinish4_1_6().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开消防员做最后检测提示并等待关闭:
|
|
|
|
|
WaitOperateFinish4_1_7().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
throw new ArgumentOutOfRangeException();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ClickObjectEvent(object sender, GameEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.ClickObjectEvent(sender, e);
|
|
|
|
|
var args = e as ClickObjectEventArgs;
|
|
|
|
|
switch (args.objectType)
|
|
|
|
|
{
|
|
|
|
|
case HighlightObjectType.消火栓:
|
|
|
|
|
currentTask.SetResult(true);
|
|
|
|
|
break;
|
|
|
|
|
case HighlightObjectType.灭火器:
|
|
|
|
|
currentTask.SetResult(true);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
throw new ArgumentOutOfRangeException();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region MyRegion
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish4_1_1() // 消火栓高亮并等待点击
|
|
|
|
|
{
|
|
|
|
|
await WaitOperateFinish_ClickHighlight(HighlightObjectType.消火栓);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish4_1_2() // 出现小时钟及文字并等待点击灭火器
|
|
|
|
|
{
|
|
|
|
|
await WaitOperateFinish_ClickHighlight(HighlightObjectType.灭火器);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish4_1_3() // 出现小时钟及文字并等待点击灭火器
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“阀门已关闭", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish4_1_4() //
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“阀门关闭,火焰熄灭,继续用消防水枪进行保护,防止少量漏气,再次燃烧", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish4_1_5() //
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“已检查阀门完全关闭,无漏气,火焰无复燃,周围未有引燃物品,再停止消防水枪保护", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish4_1_6() //
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“消防人员到达后,经消防人员专业地检查判断下,由消防人员将事故气瓶转移到安全地点(通风、空旷、周围无易燃物)。", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish4_1_7() //
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“经消防员对整个室内环境做最后检测,确认无复燃点,室内安全,向实验室负责老师确认。救援结束。", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
2023-09-24 11:28:47 +08:00
|
|
|
|
|
|
|
|
|
showUI = UIManager.Instance().ShowUI(UIType.Summarize);
|
|
|
|
|
var summarizeUI = showUI as SummarizeUI;
|
|
|
|
|
summarizeUI.SetAction(() => { currentTask.SetResult(true); });
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
2023-09-18 03:39:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2023-09-12 23:57:06 +08:00
|
|
|
|
// 4-1
|
|
|
|
|
// ①J老师进门后,室内消火栓高亮,点击后播放动画2-12;(要求:打开软管前端喷枪阀门后,喷射出水)
|
|
|
|
|
|
|
|
|
|
// 4-2
|
|
|
|
|
// ①L老师对瓶体喷水后,出现小时钟及文字:“瓶体冷却后”,室内干粉灭火器高亮,点击后播放动画2-13;
|
|
|
|
|
// 要求1:动画2-13播放时,出现温馨提示文字:注意:周围未做好防火措施时,切不可灭火,以免大量气体外溢引起爆炸。
|
|
|
|
|
// 要求2:动画2-13中,右手压下把手时,灭火器喷嘴喷出白色粉末,气瓶火焰慢慢变小。
|
|
|
|
|
// 要求3:动画2-13播放后弹出提示框:“阀门已关闭”,点击“确认”按钮,关闭提示框。
|
|
|
|
|
|
|
|
|
|
// 4-3
|
|
|
|
|
// ①点击“确认”按钮后,继续播放动画2-14喷水循环动画,同时一侧出现小时钟及文字:“阀门关闭,火焰熄灭,继续用消防水枪进行保护,防止少量漏气,再次燃烧”;
|
|
|
|
|
// ②动画2-14播放完毕,弹出文字框:“已检查阀门完全关闭,无漏气,火焰无复燃,周围未有引燃物品,再停止消防水枪保护”,并关闭喷水。点击“确认”按钮。
|
|
|
|
|
|
|
|
|
|
// 4-4
|
|
|
|
|
// 点击“确认”按钮后,播放119报警声音,视角转到实验室外,播放动画2-15,视角跟随消防员来到实验室内到达乙炔气瓶处,此时燃烧乙炔气瓶高亮,点击后播放消防员转身推着乙炔气瓶,从实验室中走出;并弹出文字框:“消防人员到达后,经消防人员专业地检查判断下,由消防人员将事故气瓶转移到安全地点(通风、空旷、周围无易燃物)。”点击“确认”
|
|
|
|
|
|
|
|
|
|
// 4-5
|
|
|
|
|
// 点击“确认”后,播放动画2-16,再弹出文字框:“经消防员对整个室内环境做最后检测,确认无复燃点,室内安全,向实验室负责老师确认。救援结束。”点击“确认”按钮,弹出总结页面。
|
|
|
|
|
|
|
|
|
|
// 4-6
|
|
|
|
|
// 总结:
|
|
|
|
|
// 一、学校医疗救护组对乙炔泄露受伤人员进行紧急救护,必要时护送至医院诊治。
|
|
|
|
|
// 二、实验负责老师向各小组负责人电话汇报相关结果:“受伤人员已安全处置,气瓶火灾事故处理完毕!”
|
|
|
|
|
// 三、此次气瓶火灾事故各级联动响应及时,处置合理,但同时在以后实验中一定要加强安全教育,杜绝此类事故的发生。
|
|
|
|
|
// 按钮:“气瓶火灾爆炸应急处置实验结束”,点击后返回类型页面。
|
|
|
|
|
}
|
|
|
|
|
}
|