CultivationOfBrewing-2/Assets/Scripts/Project/Objects/Other/NPC_Attach10002_2002.cs

177 lines
8.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<NPCController>().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);
}
/// <summary>
/// 工作负责人对话
/// </summary>
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<UI_CustomSessionPanel>(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<UI_CustomSessionPanel>(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<UI_PlayerSessionPanel>(E_UI_Layer.Mid, (panel) =>
{
panel.Init("自己", "负责人,今日换表工作已完成", (intTemp) =>
{
GameManager.UIMgr.ShowPanel<UI_CustomSessionPanel>(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<TextMeshProUGUI>().text = "办理工作票终结";
});
}, 0);
});
}
}
}
}
/// <summary>
/// 客户对话
/// </summary>
private void CustomTalk()
{
if (ProcessManager.Instance.IsRightSubProcessStepsTriggerID(custom.triggerName, false) == 0)
{
if (customIndex == 0)
{
//与客户沟通
GameManager.UIMgr.ShowPanel<UI_CustomSessionPanel>(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<UI_CustomSessionPanel>(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<UI_PlayerSessionPanel>(E_UI_Layer.Mid, (panel) =>
{
//弹出告知单
GameManager.UIMgr.ShowPanel<UI_DisassemblyAssemblyNoticePanel>();
panel.Init("自己", "感谢您对我们工作的支持,如果您日后在用电方面有什么疑问需求的,可以来电向我们咨询,这是我们台区经理的联系方式,请您惠存,谢谢!", (intTemp) =>
{
GameManager.UIMgr.ShowPanel<UI_CustomSessionPanel>(E_UI_Layer.Mid, (panel) =>
{
panel.Init(custom.triggerName, "已签字确认", "客户", 0, intTemp =>
{
GameManager.UIMgr.HidePanel<UI_DisassemblyAssemblyNoticePanel>();
ProcessManager.Instance.IsRightSubProcessStepsTriggerID(custom.triggerName, true);
custom.StopAnimator();
customIndex++;
ScoreManager.instance.Check("现场完工", null);
});
});
}, 0);
});
}
}
}
}
}