using AX.InputSystem; using AX.MessageSystem; using AX.NetworkSystem; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class FireManSkillPanelController : MonoBehaviour { [Rename("选中的消防员")] public GameObject SelectFireMan; /// /// 当前连接的管线 /// public GameObject FiremanAssociatedLine; [Rename("人员技能panel")] public Transform FiremanSkillPanel; [Rename("连接管线")] public ToggleRecordByAC AssociatedLine; [Rename("铺设水带")] public ToggleRecordByAC LayWaterHoseToggle; [Rename("拿起水带")] public ToggleRecordByAC TakeUpWaterLine; [Rename("铺设救生照明线")] public ToggleRecordByAC LayLiftSaveLine; //[Rename("拿起救生照明线")] // public ToggleRecordByAC TakeUpLiftSaveLine; //[Rename("放下水带")] //public ButtonRecordByAC LayDownWaterHose; [Rename("收起管线")] public ToggleRecordByAC PackUpLine; [Rename("出水")] public ToggleRecordByAC SprayWater; [Rename("救助")] public ToggleRecordByAC Save; [Rename("急救")] public ToggleRecordByAC FristAid; [Rename("移动")] public ToggleRecordByAC Move; [Rename("引导")] public ToggleRecordByAC Guidance; [Rename("侦查")] public ToggleRecordByAC TagSearchRoom; [Rename("4G图传")] public ToggleRecordByAC PictureTransmission; [Rename("引导员")] public ToggleRecordByAC Usher; [Rename("安全员")] public ToggleRecordByAC SafetyOfficer; [Rename("警戒")] public ToggleRecordByAC GuardAgainst; [Rename("水源引导")] public ToggleRecordByAC WaterGuiding; [Rename("装备选择")] public ToggleRecordByAC EquipSelect; [Rename("背包")] public ToggleRecordByAC Backpack; [Rename("询问知情人")] public ToggleRecordByAC AskInsder; public ToggleRecordByAC ClearDangerous; //(灭火剂只有水)出水选择 public Transform LayWaterPanel; public ExtinguishantSelectPanel extinguishantSelect; private static FireManSkillPanelController instance; private Transform P_safearea; private Transform p_Hitpoint; private Transform firemanskillcontant;//所有技能toggle的父对象 public bool SelectChange = false; //private bool isselectspray; public static FireManSkillPanelController Instance { get { return instance; } } // Use this for initialization void Start() { instance = this; P_safearea = GameObject.Find("P_AllParent/P_Tools/P_SafeArea").transform; p_Hitpoint = GameObject.Find("P_AllParent/P_Hitpoint").transform; ClearDangerous.OutInterFaceToggle = ClearDangerousChange; AskInsder.OutInterFaceToggle = AskInsderChange; Backpack.OutInterFaceToggle = BackpackChange; EquipSelect.OutInterFaceToggle = EquipSelectChange; WaterGuiding.OutInterFaceToggle = WaterGuidingChange; GuardAgainst.OutInterFaceToggle = GuardAgainstChange; SafetyOfficer.OutInterFaceToggle = SafetyOfficerChange; Usher.OutInterFaceToggle = UsherChange; PictureTransmission.OutInterFaceToggle = PictureTransmissionChange; TagSearchRoom.OutInterFaceToggle = TagSearchRoomChange; Guidance.OutInterFaceToggle = GuidanceChange; Move.OutInterFaceToggle = MoveChange; FristAid.OutInterFaceToggle = FristAidChange; Save.OutInterFaceToggle = SaveChange; SprayWater.OutInterFaceToggle = SprayWaterChange; PackUpLine.OutInterFaceToggle = PackUpLineChange; // TakeUpLiftSaveLine.OutInterFaceToggle = TakeUpLiftSaveLineChange; LayLiftSaveLine.OutInterFaceToggle = LayLiftSaveLineChange; TakeUpWaterLine.OutInterFaceToggle = TackUpWaterLineChange; //LayDownWaterHose.OutInterFaceButton = LayDownWaterHoseClick; LayWaterHoseToggle.OutInterFaceToggle = LayWaterHoseChange; AssociatedLine.OutInterFaceToggle = AssociatedLineChange; firemanskillcontant = AssociatedLine.transform.parent; } /// /// 重置消防员技能UI及选择消防员 /// public void ResertFiremanSkill() { //SelectFireMan = select; Toggle[] all = FiremanSkillPanel.GetComponentsInChildren(); for (int i = 0; i < all.Length; i++) { if (all[i].name == "SprayWater") { all[i].interactable = false; } else { if (!all[i].interactable) { all[i].interactable = true; } } if (all[i].isOn) { all[i].isOn = false; } } } /// /// 根据当前选择的消防员设置UI显示,并为设置当前选中消防员 /// /// public void SetSkillSelectFireman(GameObject select) { SelectChange = true; SelectFireMan = select; //ResertFiremanSkill(); switch (select.GetComponent().workType) { case FireManSkills.None: ResertFiremanSkill(); break; case FireManSkills.AssociatedLine: AssociatedLine.GetComponent().isOn = true; break; case FireManSkills.LayWaterHose: LayWaterHoseToggle.GetComponent().isOn = true; break; case FireManSkills.TakeUpWaterLine: TakeUpWaterLine.GetComponent().isOn = true; InputManager.skill = true; break; //case FireManSkills.LayLifeSavingFlarePath: // LayLiftSaveLine.GetComponent().isOn = true; // break; //case FireManSkills.TakeUpLifeSavingLine: // TakeUpLiftSaveLine.GetComponent().isOn = true; // break; case FireManSkills.PackUpLine: PackUpLine.GetComponent().isOn = true; InputManager.skill = true; break; case FireManSkills.SprayWater: SprayWater.GetComponent().interactable = true; SprayWater.GetComponent().isOn = true; LayWaterPanel.gameObject.SetActive(true); //isselectspray = true; break; case FireManSkills.Save: Save.GetComponent().isOn = true; break; case FireManSkills.FristAid: Save.GetComponent().isOn = true; FristAid.GetComponent().isOn = true; InputManager.skill = true; break; case FireManSkills.Move: Save.GetComponent().isOn = true; Move.GetComponent().isOn = true; InputManager.skill = true; break; case FireManSkills.Guidance: Save.GetComponent().isOn = true; Guidance.GetComponent().isOn = true; InputManager.skill = true; break; case FireManSkills.TagSearchRoom: TagSearchRoom.GetComponent().isOn = true; break; case FireManSkills.PictureTransmission: PictureTransmission.GetComponent().isOn = true; break; case FireManSkills.Usher: Usher.GetComponent().isOn = true; break; case FireManSkills.SafetyOfficer: SafetyOfficer.GetComponent().isOn = true; break; case FireManSkills.GuardAgainst: GuardAgainst.GetComponent().isOn = true; break; case FireManSkills.WaterGuiding: WaterGuiding.GetComponent().isOn = true; break; case FireManSkills.EquipSelect: EquipSelect.GetComponent().isOn = true; break; case FireManSkills.Backpack: Backpack.GetComponent().isOn = true; break; case FireManSkills.AskPeople: AskInsder.GetComponent().isOn = true; InputManager.skill = true; break; case FireManSkills.ClearDangerous: ClearDangerous.GetComponent().isOn = true; InputManager.skill = true; break; } if (select.GetComponent() && select.GetComponent().workType == FireManSkills.AssociatedLine) { InputManager.cloneObjType = CloneObjType.OrdinaryHose; } //是否是在急救或者移动伤员中 if (select.GetComponent().IsFirstAirOrMoving) { SetSkillDisable(); } else { SetSkillEnable(); } if (select.GetComponent()) { if (select.GetComponent().IsConnentWaterSource) { SprayWater.GetComponent().interactable = true; } else { SprayWater.GetComponent().isOn = false; SprayWater.GetComponent().interactable = false; } } if (select.GetComponent() && select.GetComponent().workType == FireManSkills.SprayWater && /*select.GetComponent().SelectParticleType != SprayParticleType.Froth &&*/ select.GetComponent().SelectParticleType != SprayParticleType.DryPowder) { LayWaterPanel.gameObject.SetActive(true); GetComponent().SetShowEnable(); } else { LayWaterPanel.gameObject.SetActive(false); } SelectChange = false; } private void ClearDangerousChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; InputManager.skill = true; SelectFireMan.GetComponent().workType = FireManSkills.ClearDangerous; } else { InputManager.skill = false; if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; } } private void AskInsderChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; InputManager.skill = true; SelectFireMan.GetComponent().workType = FireManSkills.AskPeople; } else { InputManager.skill = false; if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; } } private void EquipSelectChange(bool value) { if (value) { UIManager.ShowView(); UIManager.ShowView(); InputManager.cloneObjType = CloneObjType.None; } else { UIManager.HideView(); UIManager.HideView(); } } private void UsherChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.Usher; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName + "- 引导员 "; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } else { if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } } private void TakeUpLiftSaveLineChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; } } private void LayLiftSaveLineChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; } } private void BackpackChange(bool value) { if (value) { UIManager.ShowView(); InputManager.cloneObjType = CloneObjType.None; } else { UIManager.HideView(); UIManager.HideView(); } } private void WaterGuidingChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.WaterGuiding; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName + " 水源引导 "; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } else { if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } } private void GuardAgainstChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.GuardAgainst; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName + "- 警戒 "; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } else { if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } } private void SafetyOfficerChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.SafetyOfficer; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName + "- 安全员 "; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } else { if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } } /// /// 4G图传 /// /// private void PictureTransmissionChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.PictureTransmission; } else { if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; } } private void TagSearchRoomChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.TagSearchRoom; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName + "- 侦察 "; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } else { if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); arg.gameObjID = SelectFireMan.GetComponent().gameObjID; arg.Value = SelectFireMan.GetComponent().FullName; MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); } } private void GuidanceChange(bool value) { if (value) { if (P_safearea.childCount <= 0) { LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置安全区,无法进行引导,请设置安全区后再尝试", 2f); Guidance.GetComponent().isOn = false; return; } if (SelectFireMan.GetComponent().workType == FireManSkills.Guidance) { return; } InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.Guidance; InputManager.skill = true; InputManager.GuidanceList.Clear(); for (int i = 0; i < p_Hitpoint.childCount; i++) { Destroy(p_Hitpoint.GetChild(i).gameObject); } } else { if (SelectFireMan.GetComponent().workType != FireManSkills.Guidance) {//没有安全区,单纯关闭 return; } //如果没有引导人员 if (SelectFireMan.GetComponent().GuidanceTrapped == null) { SelectFireMan.GetComponent().workType = FireManSkills.None; InputManager.skill = false; return; } else { if (P_safearea.childCount <= 0) { LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置安全区,不能引导", 2f); Guidance.GetComponent().isOn = true; return; } if (InputManager.GuidanceList.Count<=0) { LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置引导路径,引导失败", 2f); Guidance.GetComponent().isOn = true; return; } Vector3 guidendpos = InputManager.GuidanceList[InputManager.GuidanceList.Count - 1]; Vector3 safepos = P_safearea.GetChild(0).transform.position; if (InputManager.GuidanceList.Count > 0 && (Mathf.Abs(guidendpos.x - safepos.x) < 10 && Mathf.Abs(guidendpos.z - safepos.z) < 10)) { //引导命令 GuideLodeCmdArgs arg = new GuideLodeCmdArgs(); arg.pathpointList = InputManager.GuidanceList; arg.FireManID = SelectFireMan.GetComponent().gameObjID; arg.TrappedID = SelectFireMan.GetComponent().GuidanceTrapped.GetComponent().gameObjID; TrappedMoveFollowGuidePointCommand.Instance.Execute(SelectFireMan.GetComponent().gameObjID, arg); InputManager.skill = false; InputManager.IsGuidance = false; InputManager.GuidanceList.Clear(); for (int i = 0; i < p_Hitpoint.childCount; i++) { Destroy(p_Hitpoint.GetChild(i).gameObject); } SelectFireMan.GetComponent().GuidanceTrapped = null; SelectFireMan.GetComponent().workType = FireManSkills.None; } else { InputManager.GuidanceList.Clear(); for (int i = 0; i < p_Hitpoint.childCount; i++) { Destroy(p_Hitpoint.GetChild(i).gameObject); } LoadPromptWin.Instance.LoadTextPromptWindow("不能将伤员引导至安全区,请重新规划路线", 3f); Guidance.GetComponent().isOn = true; } } } } private void MoveChange(bool value) { if (value) { if (P_safearea.childCount <= 0) { LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置安全区,不能移动,请设置安全区后再尝试", 2f); Move.GetComponent().isOn = false; return; } if (SelectFireMan.GetComponent().workType == FireManSkills.Move) { return; } InputManager.cloneObjType = CloneObjType.None; SelectFireMan.GetComponent().workType = FireManSkills.Move; InputManager.skill = true; } else { if (SelectFireMan.GetComponent().workType != FireManSkills.Move) {//没有安全区打开,然后关闭 return; } //如果没有轻伤员跟随,不管设没设安全区,直接关闭技能 if (SelectFireMan.GetComponent().trappedlist.Count <= 0) { SelectFireMan.GetComponent().workType = FireManSkills.None; InputManager.skill = false; return; } else//有轻伤员跟随 { //开启技能的时候有安全区,中途把安全区删掉,关闭技能的时候没有安全区了 if (P_safearea.childCount <= 0) { LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置安全区,不能停止移动", 2f); Move.GetComponent().isOn = true; return; } else { //正常情况 GameObject trapped = EntitiesManager.Instance.GetEntityByID(SelectFireMan.GetComponent().trappedlist[0]); if (P_safearea.childCount > 0) { SafeAreaMessage smess = P_safearea.GetComponentInChildren(); Vector3 trappedpos = trapped.transform.position; Vector3 safepos = P_safearea.GetChild(0).transform.position; if (!(Mathf.Abs(trappedpos.x - safepos.x) < smess.sideLength / 2 && Mathf.Abs(trappedpos.z - safepos.z) < smess.sideLength / 2)) { LoadPromptWin.Instance.LoadTextPromptWindow("尚未将伤员移动至安全区,不能停止移动", 2f); Move.GetComponent().isOn = true; return; } else { //结束移动消息 MessageDispatcher.SendMessage("ENDMOVE", SelectFireMan); SelectFireMan.GetComponent().workType = FireManSkills.None; InputManager.skill = false; } } } } } } private void FristAidChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; if (value) { SelectFireMan.GetComponent().workType = FireManSkills.FristAid; InputManager.skill = true; } else { SelectFireMan.GetComponent().workType = FireManSkills.None; InputManager.skill = false; } } } private void SaveChange(bool value) { // InputManager.skill = value; if (!value) { Debug.Log(SelectChange + "+++selectchangge"); FristAid.GetComponent().isOn = false; Move.GetComponent().isOn = false; Guidance.GetComponent().isOn = false; if (!SelectChange) { SelectFireMan.GetComponent().workType = FireManSkills.None; } InputManager.skill = false; FristAid.gameObject.SetActive(value); Move.gameObject.SetActive(value); Guidance.gameObject.SetActive(value); } else { FristAid.gameObject.SetActive(value); Move.gameObject.SetActive(value); Guidance.gameObject.SetActive(value); SelectFireMan.GetComponent().workType = FireManSkills.Save; } } private void SprayWaterChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; //if (!SelectFireMan.GetComponent().pathFindEnable) //{ // SelectFireMan.GetComponent().pathFindEnable = true; //} // InputManager.skill = true; SelectFireMan.GetComponent().SetWaterInfoWhileSpray(); if (SelectFireMan.GetComponent().IsConnentWaterSource) { //如果本身就是出水技能 if (SelectFireMan.GetComponent().workType == FireManSkills.SprayWater) { SelectFireMan.GetComponent().pathFindEnable = true; LayWaterPanel.gameObject.SetActive(true); if (SelectFireMan.GetComponent().waterrunoutof) { SelectFireMan.GetComponent().DestoryPartical(); } else { SelectFireMan.GetComponent().SetLay(value); //SelectFireMan.GetComponent().SetParticleType(SelectFireMan.GetComponent().SelectParticleType); //LayWaterPanel.gameObject.SetActive(true); } GetComponent().SetShowEnable(); } else//开启出水 { //if (SelectFireMan.GetComponent().waterrunoutof) //{ // LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f); // //MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = true, ChangObjId = SelectFireMan.GetComponent().gameObjID }); // return; //} //if (SelectFireMan.GetComponent().ConnentSource.GetComponent().hasover) //{ // LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f); // return; //} if(SelectFireMan.GetComponent().ConnentSource==null) { Debug.Log("fmskpm----+false"); SprayWater.GetComponent().isOn = false; return; } float remain = SelectFireMan.GetComponent().CheckWaterRemain(SelectFireMan.GetComponent().WaterSourceLine); if (!(remain>0||remain==-100)) { LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f); return; } //有泡沫,弹窗出水还是出泡沫 if (SelectFireMan.GetComponent().hasFoamConnect) { // if (isselectspray) { extinguishantSelect.gameObject.SetActive(true); extinguishantSelect.SelectFireman = SelectFireMan; return; } } //只有水 if (SelectFireMan.GetComponent().hasWaterConnect || !SelectFireMan.GetComponent().hasFoamConnect) { SelectFireMan.GetComponent().workType = FireManSkills.SprayWater; SelectFireMan.GetComponent().pathFindEnable = true; //设置出水动画和水枪显示 SelectFireMan.GetComponent().SetLay(value); //默认直流 SelectFireMan.GetComponent().SetParticleType(SprayParticleType.WaterStraight); LayWaterPanel.gameObject.SetActive(true); //GetComponent().SelectSparyObj = SelectFireMan; //SetShowEnable()里面设置了Flow值 GetComponent().SetShowEnable(); //SelectFireMan.GetComponent().SetLay(value); SelectFireMan.GetComponent().StartSprayingLay(); //连接水源流量设置 // MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = true, ChangObjId = SelectFireMan.GetComponent().gameObjID }); ////同步水源信息 //var arg = new HoseConnectOrDelectData(); //arg.StartId = SelectFireMan.GetComponent().ConnentSource.GetComponent().gameObjID; //arg.EndId = SelectFireMan.GetComponent().gameObjID; //arg.HoseId = SelectFireMan.GetComponent().WaterLineConnent.GetComponent().gameObjID; //arg.Isconnect = true; //MessageDispatcher.SendMessage("HOSE_CONNECT_OR_DELECT", arg); //出水同步 SpraySyncData spraysync = new SpraySyncData(); spraysync.SendUserID = CurrentUserInfo.mySelf.Id; spraysync.IsOn = true; spraysync.spraytype = SprayParticleType.WaterStraight; spraysync.size = 0.2f; spraysync.gameObjID = SelectFireMan.GetComponent().gameObjID; spraysync.UserID = SelectFireMan.GetComponent().UserID; spraysync.gameObjType = SelectFireMan.GetComponent().gameObjType; NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync); } } } } else { if (extinguishantSelect.gameObject.activeInHierarchy) { extinguishantSelect.gameObject.SetActive(false); } //InputManager.skill = false; LayWaterPanel.gameObject.SetActive(false); SelectFireMan.GetComponent().SetLay(value); SelectFireMan.GetComponent().DestoryPartical(); //这里面判断了能否寻路 SelectFireMan.GetComponent().EndLay(false,false); //SelectFireMan.GetComponent().ParticleSize = 0; //SelectFireMan.GetComponent().SelectParticleType = SprayParticleType.WaterStraight; if (SelectFireMan.GetComponent().Flow!=0) { SelectFireMan.GetComponent().Flow = 0; } // MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = false, ChangObjId = SelectFireMan.GetComponent().gameObjID }); //出水状态下停止铺设不重置水源信息 SelectFireMan.GetComponent().workType = FireManSkills.None; SpraySyncData spraysync = new SpraySyncData(); spraysync.SendUserID = CurrentUserInfo.mySelf.Id; spraysync.IsOn = false; // spraysync.spraytype = SprayParticleType.WaterStraight; spraysync.gameObjID = SelectFireMan.GetComponent().gameObjID; spraysync.UserID = SelectFireMan.GetComponent().UserID; spraysync.gameObjType = SelectFireMan.GetComponent().gameObjType; NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync); } } /// /// 连接管线 /// /// private void AssociatedLineChange(bool value) { if (value) { InputManager.skill = false; InputManager.cloneObjType = CloneObjType.OrdinaryHose; MessageDispatcher.SendMessage("CloneSelected");//克隆按钮选中,取消技能触发 SelectFireMan.GetComponent().workType = FireManSkills.AssociatedLine; //InputManager.skill = true; } else { if (SelectFireMan.GetComponent().workType == FireManSkills.AssociatedLine) { if (FiremanAssociatedLine != null) { if (FiremanAssociatedLine.GetComponent().LineLenght > 0) { if (!FiremanAssociatedLine.GetComponent().hascalculate) { WaterHoseExpend expend = new WaterHoseExpend { WaterHoseDraw = FiremanAssociatedLine, Distance = FiremanAssociatedLine.GetComponent().LineLenght, Fireman = SelectFireMan, ExpendNum = Mathf.CeilToInt(FiremanAssociatedLine.GetComponent().LineLenght / 20), }; MessageDispatcher.SendMessage("WATERHOSEEXPEND", expend); } } else { Destroy(FiremanAssociatedLine); } } } if (!SelectChange) { SelectFireMan.GetComponent().workType = FireManSkills.None; } AX.MessageSystem.MessageDispatcher.SendMessage("RESERTLINT"); //关闭连接管线 var argresertsync = new AssociatedLineSyncDate(); argresertsync.SendUserID = CurrentUserInfo.mySelf.Id; //argresertsync.IsResert = true; NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "ASSOCIATED_LINE_SYNC", argresertsync); InputManager.cloneObjType = CloneObjType.None; //InputManager.skill = false; } } private void TackUpWaterLineChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; InputManager.skill = true; SelectFireMan.GetComponent().workType = FireManSkills.TakeUpWaterLine; } else { if (!SelectChange) { SelectFireMan.GetComponent().workType = FireManSkills.None; } InputManager.skill = false; } } private void PackUpLineChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; InputManager.skill = true; SelectFireMan.GetComponent().workType = FireManSkills.PackUpLine; } else { if (!SelectChange) SelectFireMan.GetComponent().workType = FireManSkills.None; InputManager.skill = false; } } /// /// 铺设水带 /// /// private void LayWaterHoseChange(bool value) { if (value) { InputManager.cloneObjType = CloneObjType.None; //InputManager.skill = true; SelectFireMan.GetComponent().workType = FireManSkills.LayWaterHose; //if (SelectFireMan.GetComponent().WaterHoseLenghtRemain <= 0) //{ // LoadPromptWin.Instance.LoadTextPromptWindow("未装备水带或水带已用完", 1f); // LayWaterHoseToggle.transform.Find("Label").GetComponent().text = "放下水带"; // return; //} SelectFireMan.GetComponent().StartLay(); LayWaterHoseToggle.transform.Find("Label").GetComponent().text = "放下水带"; //铺设水带同步 LayerWaterHoseSyncData syncarg = new LayerWaterHoseSyncData(); syncarg.SendUserID = CurrentUserInfo.mySelf.Id; syncarg.IsBegin = true; syncarg.gameObjID = SelectFireMan.GetComponent().gameObjID; syncarg.UserID = SelectFireMan.GetComponent().UserID; syncarg.gameObjType = SelectFireMan.GetComponent().gameObjType; NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "LAY_WATER_HOSE_SYNC", syncarg); } else { //InputManager.skill = false; LayWaterHoseToggle.transform.Find("Label").GetComponent().text = "铺设水带"; SelectFireMan.GetComponent().EndLay(); if (!SelectChange) { SelectFireMan.GetComponent().workType = FireManSkills.None; } LayerWaterHoseSyncData syncarg = new LayerWaterHoseSyncData(); syncarg.SendUserID = CurrentUserInfo.mySelf.Id; syncarg.IsBegin = false; syncarg.gameObjID = SelectFireMan.GetComponent().gameObjID; syncarg.UserID = SelectFireMan.GetComponent().UserID; syncarg.gameObjType = SelectFireMan.GetComponent().gameObjType; NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "LAY_WATER_HOSE_SYNC", syncarg); } } public void SetSkillDisable() { for (int i = 0; i < firemanskillcontant.childCount; i++) { if (firemanskillcontant.GetChild(i).GetComponent()) { firemanskillcontant.GetChild(i).GetComponent().interactable = false; } } } public void SetSkillEnable() { for (int i = 0; i < firemanskillcontant.childCount; i++) { if (firemanskillcontant.GetChild(i).GetComponent()) { firemanskillcontant.GetChild(i).GetComponent().interactable = true ; } } } }