217 lines
7.7 KiB
C#
217 lines
7.7 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 直接接入式电能计量装置 步骤状态设置
|
|
/// </summary>
|
|
public class StepState_6001 : StepState
|
|
{
|
|
/// <summary>
|
|
/// 现场场景中的特殊物体控制
|
|
/// </summary>
|
|
private Device_Control_6001 device_Control;
|
|
private void Awake()
|
|
{
|
|
steps.Add(1, E_SceneType.Office);//线损异常类型研判
|
|
steps.Add(2, E_SceneType.Office);//异常分析
|
|
steps.Add(3, E_SceneType.Office);//工作预约
|
|
steps.Add(4, E_SceneType.Office);//办理工作票
|
|
steps.Add(5, E_SceneType.ToolRoom);//正确着装
|
|
steps.Add(6, E_SceneType.ToolRoom);//选取工具
|
|
steps.Add(7, E_SceneType.Site);//与客户沟通
|
|
steps.Add(8, E_SceneType.Site);//班前会
|
|
steps.Add(9, E_SceneType.Site);//采集故障
|
|
steps.Add(10, E_SceneType.Site);//采集故障处理
|
|
steps.Add(11, E_SceneType.Site);//清理现场
|
|
}
|
|
|
|
public override void SetDeviceControl(Device_Control device_Control)
|
|
{
|
|
this.device_Control = (Device_Control_6001)device_Control;
|
|
}
|
|
/// <summary>
|
|
/// 从场景第一步会依次往下执行,直到指定步骤
|
|
/// </summary>
|
|
/// <param name="num"></param>
|
|
public override void SetStepState(int num, int lastNum)
|
|
{
|
|
Debug.Log("切换步骤" + num);
|
|
//删除手里的东西
|
|
LiveSceneManager.Instance?.OnCheckSubProcess();
|
|
|
|
if (num == 1)
|
|
{
|
|
//办公室场景首个步骤
|
|
//线损异常类型研判
|
|
GameManager.UIMgr.HidePanel<UI_ComputerSystemLoginPanel>();
|
|
GameManager.UIMgr.HidePanel<UI_ComputerSystemXSCXPanel>();
|
|
GameManager.UIMgr.HidePanel<UI_ComputerSystemXSLFXPanel>();
|
|
GameManager.UIMgr.HidePanel<UI_ComputerSystemSJCJJKPanel>();
|
|
GameManager.UIMgr.HidePanel<UI_ComputerSystemDBXXZXPanel>();
|
|
PacksackBagMgr.Instance.ClearAllData();
|
|
}
|
|
if (num == 2)
|
|
{
|
|
//异常分析
|
|
//未完成
|
|
OfficeManager.Instance.mobileController.downIndex = 0;
|
|
}
|
|
else if (num == 3)
|
|
{
|
|
//工作预约
|
|
OfficeManager.Instance.mobileController.downIndex = 1;
|
|
|
|
}
|
|
else if (num == 4)
|
|
{
|
|
//办理工作票
|
|
OfficeManager.Instance.mobileController.downIndex = 2;
|
|
|
|
}
|
|
else if (num == 5)
|
|
{
|
|
//场景首个步骤
|
|
//正确着装
|
|
|
|
//清空背包
|
|
PacksackBagMgr.Instance.ClearAllToolAndDiveceAndMaterial();
|
|
TooRoomMannger.Instance.CheckWearByWearDic();
|
|
TooRoomMannger.Instance.CreateTool();
|
|
//完成第一步点击去工具间
|
|
if (num == lastNum)
|
|
{
|
|
E_SceneType curret = GameManager.RunModelMgr.SceneType;
|
|
GameManager.RunModelMgr.SceneType = E_SceneType.Office;
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID("工具间按钮", true) == 0)
|
|
{
|
|
Debug.Log("工具间按钮已自动点击");
|
|
}
|
|
GameManager.RunModelMgr.SceneType = curret;
|
|
}
|
|
}
|
|
else if (num == 6)
|
|
{
|
|
|
|
//选取工器具
|
|
|
|
//服装拿到背包
|
|
List<Tool_SelectComponent> items = TooRoomMannger.Instance.GetItemInfoByName(new List<string> { "国网安全帽", "工作服", "编织手套", "绝缘靴" });
|
|
items.ForEach(item =>
|
|
{
|
|
PacksackBagMgr.Instance.AddOneToolOrMater(item.itemInfo);
|
|
Destroy(item.gameObject);
|
|
//穿上
|
|
PacksackBagMgr.Instance.WearItemState(item.itemInfo, true);
|
|
});
|
|
}
|
|
else if (num == 7)
|
|
{
|
|
//场景首个步骤
|
|
//与客户沟通
|
|
|
|
|
|
//移动任务位置
|
|
LiveSceneManager.Instance.firstPersonController.transform.position = new Vector3(-43.02f, 1.07f, -90.08f);
|
|
LiveSceneManager.Instance.firstPersonController.transform.eulerAngles = new Vector3(0, -181.643f, 0);
|
|
//完成第一步点击去工具间
|
|
if (num == lastNum)
|
|
{
|
|
E_SceneType curret = GameManager.RunModelMgr.SceneType;
|
|
GameManager.RunModelMgr.SceneType = E_SceneType.ToolRoom;
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID("现场按钮", true) == 0)
|
|
{
|
|
Debug.Log("现场按钮已自动点击");
|
|
}
|
|
GameManager.RunModelMgr.SceneType = curret;
|
|
}
|
|
|
|
|
|
#region 背包重置并带上正确装备
|
|
|
|
//清空背包数据
|
|
PacksackBagMgr.Instance.ClearAllData();
|
|
//生成服装
|
|
List<ItemInfo> items = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "国网安全帽", "工作服", "编织手套", "绝缘靴" });
|
|
//放入背包
|
|
items.ForEach(item =>
|
|
{
|
|
PacksackBagMgr.Instance.AddOneToolOrMater(item);
|
|
//穿上
|
|
PacksackBagMgr.Instance.WearItemState(item, true);
|
|
});
|
|
//生成工具
|
|
List<ItemInfo> items2 = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "剥线钳", "绝缘螺丝刀", "验电笔", "国网安全帽", "工作服", "编织手套", "绝缘靴", "工作证", "盒装封印", "采集器" });
|
|
items2.ForEach(item =>
|
|
{
|
|
PacksackBagMgr.Instance.AddOneToolOrMater(item);
|
|
});
|
|
|
|
#endregion
|
|
|
|
//还原柜子
|
|
device_Control.Init();
|
|
|
|
//还原npc对话
|
|
GameObject.FindObjectsOfType<NPCController>().ToList().ForEach(a =>
|
|
{
|
|
a.speackIndex = 0;
|
|
a.spriteRenderer.gameObject.SetActive(true);
|
|
});
|
|
|
|
//关闭故障登记表
|
|
GameManager.UIMgr.HidePanel<UI_FaultRegistrationFormPanel>();
|
|
|
|
//还原采集器
|
|
device_Control.device_collectorTrigger.gameObject.SetActive(false);
|
|
device_Control.collector.gameObject.SetActive(true);
|
|
device_Control.collector.MoveToInstall();
|
|
device_Control.collector.gameObject.name = "原采集器";
|
|
device_Control.collector.plug.SetPlugState(true);
|
|
device_Control.collector.plug.SetPlugColliderState(true);
|
|
}
|
|
else if (num == 8)
|
|
{
|
|
//班前会
|
|
GameObject.FindObjectsOfType<NPCController>().ToList().Find(a => a.triggerName == "NPC客户").spriteRenderer.gameObject.SetActive(false);
|
|
}
|
|
else if (num == 9)
|
|
{
|
|
//采集故障
|
|
|
|
//移动任务位置
|
|
LiveSceneManager.Instance.firstPersonController.transform.position = new Vector3(-42.91014f, 0.8813875f, -99.69319f);
|
|
LiveSceneManager.Instance.firstPersonController.transform.eulerAngles = new Vector3(0, -180.343f, 0);
|
|
//还原npc负责人
|
|
GameObject.FindObjectsOfType<NPCController>().ToList().ForEach(a =>
|
|
{
|
|
if (a.triggerName == "NPC负责人")
|
|
a.speackIndex = 1;
|
|
a.spriteRenderer.gameObject.SetActive(false);
|
|
});
|
|
|
|
|
|
}
|
|
else if (num == 10)
|
|
{
|
|
//采集故障处理
|
|
|
|
//门开着
|
|
device_Control.cabinetDoor.SetState(true);
|
|
device_Control.door_screw.isInstall = false;
|
|
device_Control.door_screw.transform.localPosition = new Vector3(device_Control.door_screw.transform.localPosition.x, device_Control.door_screw.initPostionY - 0.03f, device_Control.door_screw.transform.localPosition.z);
|
|
device_Control.door_seal.isCut = true;
|
|
device_Control.door_seal.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
else if (num == 11)
|
|
{
|
|
device_Control.collector.Init(true);
|
|
device_Control.sundries.gameObject.SetActive(true);
|
|
//清理现场
|
|
}
|
|
}
|
|
}
|