using System.Collections; using System.Collections.Generic; using System.Linq; using TMPro; using UnityEngine; using UnityEngine.UI; public class NPC_Attach10002_2002 : NPC_Attach_Base { [HideInInspector] public NPCController header; [HideInInspector] public NPCController custom; public int headTalkIndex; public int customIndex; private void Awake() { var npcs = GameObject.FindObjectsOfType().ToList(); header = npcs.Find(a => a.triggerName == "NPC负责人"); custom = npcs.Find(a => a.triggerName == "NPC客户"); header.talkAction += HeadTalk; custom.talkAction += CustomTalk; } public void Init() { headTalkIndex = 0; customIndex = 0; header.spriteRenderer.gameObject.SetActive(true); custom.spriteRenderer.gameObject.SetActive(true); } /// /// 工作负责人对话 /// private void HeadTalk() { if (ProcessManager.Instance.IsRightSubProcessStepsTriggerID(header.triggerName, false) == 0) { if (headTalkIndex == 0) { //班前会 //人物站位 GameObject player=GameObject.FindGameObjectWithTag("Player"); player.transform.position = new Vector3(-41.85512f, 1.15004f, -96.16238f); player.transform.eulerAngles = new Vector3(0, 1081.997f, 0); GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { string tmpstr = ""; if (GameManager.RunModelMgr.ModeType == E_ModeType.Study) { tmpstr = "着装规范、个人防护用品合格齐备、人员精神状态良好,可以开展工作!"; } else { if (PacksackBagMgr.Instance.wearDic.ContainsKey("国网安全帽") && PacksackBagMgr.Instance.wearDic.ContainsKey("工作服") && PacksackBagMgr.Instance.wearDic.ContainsKey("编织手套") && PacksackBagMgr.Instance.wearDic.ContainsKey("绝缘靴") && PacksackBagMgr.Instance.wearDic.ContainsKey("护目镜")) tmpstr = "着装规范、个人防护用品合格齐备、人员精神状态良好,可以开展工作!"; else tmpstr = "着装不规范、个人防护用品合格齐备、人员精神状态良好,可以开展工作!"; } panel.Init(header.triggerName, tmpstr, "工作负责人", 1, (intTemp) => { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel2) => { panel2.Init(header.triggerName, "今天工作内容是直接接入式电能计量装置轮换作业,工作地点是xxx,带电部分,计量箱及金属裸露部分等,现场作业安全措施根据工作票所列安全要求,落实安全措施.......。", "工作负责人", 1, (intTemp2) => { ProcessManager.Instance.IsRightSubProcessStepsTriggerID(header.triggerName, true); header.StopAnimator(); headTalkIndex++; ScoreManager.instance.Check("班前会", null); }); }); }); }); } else if (headTalkIndex == 1) { if (customIndex > 2) { //工作票终结 GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { panel.Init("自己", "负责人,今日换表工作已完成", (intTemp) => { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel2) => { panel2.Init(header.triggerName, "好的", "工作负责人", 1, (initTmp) => { //弹出工作票 ShowWorkTicket(() => { ProcessManager.Instance.IsRightSubProcessStepsTriggerID(header.triggerName, true); header.StopAnimator(); headTalkIndex++; ScoreManager.instance.Check("工作票终结", null); }); }); panel2.transform.Find("ClientSessionPanel/DOWN/ClientContinueBtn/Text (TMP)").GetComponent().text = "办理工作票终结"; }); }, 0); }); } } } } /// /// 客户对话 /// private void CustomTalk() { if (ProcessManager.Instance.IsRightSubProcessStepsTriggerID(custom.triggerName, false) == 0) { if (customIndex == 0) { //与客户沟通 GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { panel.Init(custom.triggerName, "您好。", "客户", 0, (intTemp) => { ProcessManager.Instance.IsRightSubProcessStepsTriggerID(custom.triggerName, true); custom.StopAnimator(); customIndex++; }); }); } else if (customIndex == 1) { //断电后对话 if ((LiveSceneManager.Instance.device_Control as Device_Control_2002).outSwitch.isOpen == false) { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { panel.Init(custom.triggerName, "您好,截止到目前,您家累计用电量是891.34度。", "客户", 0, (intTemp) => { ProcessManager.Instance.IsRightSubProcessStepsTriggerID(custom.triggerName, true); custom.StopAnimator(); customIndex++; ScoreManager.instance.Check("告知用户电量", null); }); }); } } else if (customIndex == 2) { //现场完工 Device_Control_2002 dc = LiveSceneManager.Instance.device_Control as Device_Control_2002; if (!dc.sundries.gameObject.activeInHierarchy && !dc.meteringDevice.gameObject.name.Contains("原") && !dc.meteringDevice.cover.cover_seal_Left.isCut && !dc.meteringDevice.cover.cover_seal_Right.isCut) { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { //弹出告知单 GameManager.UIMgr.ShowPanel(); panel.Init("自己", "感谢您对我们工作的支持,如果您日后在用电方面有什么疑问需求的,可以来电向我们咨询,这是我们台区经理的联系方式,请您惠存,谢谢!", (intTemp) => { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { panel.Init(custom.triggerName, "已签字确认", "客户", 0, intTemp => { GameManager.UIMgr.HidePanel(); ProcessManager.Instance.IsRightSubProcessStepsTriggerID(custom.triggerName, true); custom.StopAnimator(); customIndex++; ScoreManager.instance.Check("现场完工", null); }); }); }, 0); }); } } } } }