You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1005 lines
41 KiB
1005 lines
41 KiB
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; |
|
/// <summary> |
|
/// 当前连接的管线 |
|
/// </summary> |
|
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; |
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
/// 重置消防员技能UI及选择消防员 |
|
/// </summary> |
|
public void ResertFiremanSkill() |
|
{ |
|
//SelectFireMan = select; |
|
Toggle[] all = FiremanSkillPanel.GetComponentsInChildren<Toggle>(); |
|
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; |
|
} |
|
} |
|
} |
|
/// <summary> |
|
/// 根据当前选择的消防员设置UI显示,并为设置当前选中消防员 |
|
/// </summary> |
|
/// <param name="select"></param> |
|
public void SetSkillSelectFireman(GameObject select) |
|
{ |
|
SelectChange = true; |
|
SelectFireMan = select; |
|
|
|
//ResertFiremanSkill(); |
|
switch (select.GetComponent<FireManControl>().workType) |
|
{ |
|
case FireManSkills.None: |
|
ResertFiremanSkill(); |
|
break; |
|
case FireManSkills.AssociatedLine: |
|
AssociatedLine.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.LayWaterHose: |
|
LayWaterHoseToggle.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.TakeUpWaterLine: |
|
TakeUpWaterLine.GetComponent<Toggle>().isOn = true; |
|
InputManager.skill = true; |
|
break; |
|
//case FireManSkills.LayLifeSavingFlarePath: |
|
// LayLiftSaveLine.GetComponent<Toggle>().isOn = true; |
|
// break; |
|
//case FireManSkills.TakeUpLifeSavingLine: |
|
// TakeUpLiftSaveLine.GetComponent<Toggle>().isOn = true; |
|
// break; |
|
case FireManSkills.PackUpLine: |
|
PackUpLine.GetComponent<Toggle>().isOn = true; |
|
InputManager.skill = true; |
|
break; |
|
case FireManSkills.SprayWater: |
|
SprayWater.GetComponent<Toggle>().interactable = true; |
|
SprayWater.GetComponent<Toggle>().isOn = true; |
|
LayWaterPanel.gameObject.SetActive(true); |
|
//isselectspray = true; |
|
break; |
|
case FireManSkills.Save: |
|
Save.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.FristAid: |
|
Save.GetComponent<Toggle>().isOn = true; |
|
FristAid.GetComponent<Toggle>().isOn = true; |
|
InputManager.skill = true; |
|
break; |
|
case FireManSkills.Move: |
|
Save.GetComponent<Toggle>().isOn = true; |
|
Move.GetComponent<Toggle>().isOn = true; |
|
InputManager.skill = true; |
|
break; |
|
case FireManSkills.Guidance: |
|
Save.GetComponent<Toggle>().isOn = true; |
|
Guidance.GetComponent<Toggle>().isOn = true; |
|
InputManager.skill = true; |
|
break; |
|
case FireManSkills.TagSearchRoom: |
|
TagSearchRoom.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.PictureTransmission: |
|
PictureTransmission.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.Usher: |
|
Usher.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.SafetyOfficer: |
|
SafetyOfficer.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.GuardAgainst: |
|
GuardAgainst.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.WaterGuiding: |
|
WaterGuiding.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.EquipSelect: |
|
EquipSelect.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.Backpack: |
|
Backpack.GetComponent<Toggle>().isOn = true; |
|
break; |
|
case FireManSkills.AskPeople: |
|
AskInsder.GetComponent<Toggle>().isOn = true; |
|
InputManager.skill = true; |
|
break; |
|
case FireManSkills.ClearDangerous: |
|
ClearDangerous.GetComponent<Toggle>().isOn = true; |
|
InputManager.skill = true; |
|
break; |
|
} |
|
if (select.GetComponent<FireManControl>() && select.GetComponent<FireManControl>().workType == FireManSkills.AssociatedLine) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.OrdinaryHose; |
|
} |
|
//是否是在急救或者移动伤员中 |
|
if (select.GetComponent<FireManControl>().IsFirstAirOrMoving) |
|
{ |
|
SetSkillDisable(); |
|
} |
|
else |
|
{ |
|
SetSkillEnable(); |
|
} |
|
if (select.GetComponent<FireManWaterHoseManager>()) |
|
{ |
|
if (select.GetComponent<FireManWaterHoseManager>().IsConnentWaterSource) |
|
{ |
|
SprayWater.GetComponent<Toggle>().interactable = true; |
|
} |
|
else |
|
{ |
|
SprayWater.GetComponent<Toggle>().isOn = false; |
|
SprayWater.GetComponent<Toggle>().interactable = false; |
|
} |
|
} |
|
if (select.GetComponent<FireManControl>() && |
|
select.GetComponent<FireManControl>().workType == FireManSkills.SprayWater && |
|
/*select.GetComponent<FireManControl>().SelectParticleType != SprayParticleType.Froth &&*/ |
|
select.GetComponent<FireManControl>().SelectParticleType != SprayParticleType.DryPowder) |
|
{ |
|
LayWaterPanel.gameObject.SetActive(true); |
|
GetComponent<LayWaterPanel>().SetShowEnable(); |
|
} |
|
else |
|
{ |
|
LayWaterPanel.gameObject.SetActive(false); |
|
} |
|
SelectChange = false; |
|
} |
|
|
|
private void ClearDangerousChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
InputManager.skill = true; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.ClearDangerous; |
|
} |
|
else |
|
{ |
|
InputManager.skill = false; |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
} |
|
} |
|
|
|
private void AskInsderChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
InputManager.skill = true; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.AskPeople; |
|
} |
|
else |
|
{ |
|
InputManager.skill = false; |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
} |
|
} |
|
|
|
private void EquipSelectChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
UIManager.ShowView<UIViewEquipLib>(); |
|
UIManager.ShowView<UIViewBag>(); |
|
InputManager.cloneObjType = CloneObjType.None; |
|
|
|
} |
|
else |
|
{ |
|
UIManager.HideView<UIViewEquipLib>(); |
|
UIManager.HideView<UIViewBag>(); |
|
|
|
} |
|
} |
|
|
|
private void UsherChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.Usher; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName + "-<color=red> 引导员 </color>"; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().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<UIViewBag>(); |
|
InputManager.cloneObjType = CloneObjType.None; |
|
|
|
} |
|
else |
|
{ |
|
UIManager.HideView<UIViewEquipLib>(); |
|
UIManager.HideView<UIViewBag>(); |
|
|
|
} |
|
} |
|
|
|
private void WaterGuidingChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.WaterGuiding; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName + "<color=red> 水源引导 </color>"; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
} |
|
|
|
private void GuardAgainstChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.GuardAgainst; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName + "-<color=red> 警戒 </color>"; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
} |
|
|
|
private void SafetyOfficerChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
|
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.SafetyOfficer; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName + "-<color=red> 安全员 </color>"; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// 4G图传 |
|
/// </summary> |
|
/// <param name="value"></param> |
|
private void PictureTransmissionChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.PictureTransmission; |
|
|
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
|
|
} |
|
} |
|
|
|
private void TagSearchRoomChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
|
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.TagSearchRoom; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().FullName + "-<color=red> 侦察 </color>"; |
|
MessageDispatcher.SendMessage("CHANGE_HEAD_NAME", arg); |
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
ChangeUINameCmdArgs arg = new ChangeUINameCmdArgs(); |
|
arg.gameObjID = SelectFireMan.GetComponent<CloneGameObjInfo>().gameObjID; |
|
arg.Value = SelectFireMan.GetComponent<CloneGameObjInfo>().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<Toggle>().isOn = false; |
|
return; |
|
} |
|
if (SelectFireMan.GetComponent<FireManControl>().workType == FireManSkills.Guidance) |
|
{ |
|
return; |
|
} |
|
InputManager.cloneObjType = CloneObjType.None; |
|
SelectFireMan.GetComponent<FireManControl>().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<FireManControl>().workType != FireManSkills.Guidance) |
|
{//没有安全区,单纯关闭 |
|
return; |
|
} |
|
//如果没有引导人员 |
|
if (SelectFireMan.GetComponent<FiremanMoveTrapped>().GuidanceTrapped == null) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
InputManager.skill = false; |
|
return; |
|
} |
|
else |
|
{ |
|
if (P_safearea.childCount <= 0) |
|
{ |
|
LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置安全区,不能引导", 2f); |
|
Guidance.GetComponent<Toggle>().isOn = true; |
|
return; |
|
} |
|
if (InputManager.GuidanceList.Count<=0) |
|
{ |
|
LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置引导路径,引导失败", 2f); |
|
Guidance.GetComponent<Toggle>().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<BaseGameObjInfo>().gameObjID; |
|
arg.TrappedID = SelectFireMan.GetComponent<FiremanMoveTrapped>().GuidanceTrapped.GetComponent<BaseGameObjInfo>().gameObjID; |
|
TrappedMoveFollowGuidePointCommand.Instance.Execute(SelectFireMan.GetComponent<BaseGameObjInfo>().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<FiremanMoveTrapped>().GuidanceTrapped = null; |
|
SelectFireMan.GetComponent<FireManControl>().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<Toggle>().isOn = true; |
|
} |
|
} |
|
} |
|
|
|
} |
|
|
|
private void MoveChange(bool value) |
|
{ |
|
|
|
if (value) |
|
{ |
|
if (P_safearea.childCount <= 0) |
|
{ |
|
LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置安全区,不能移动,请设置安全区后再尝试", 2f); |
|
Move.GetComponent<Toggle>().isOn = false; |
|
return; |
|
} |
|
if (SelectFireMan.GetComponent<FireManControl>().workType == FireManSkills.Move) |
|
{ |
|
return; |
|
} |
|
InputManager.cloneObjType = CloneObjType.None; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.Move; |
|
InputManager.skill = true; |
|
} |
|
else |
|
{ |
|
if (SelectFireMan.GetComponent<FireManControl>().workType != FireManSkills.Move) |
|
{//没有安全区打开,然后关闭 |
|
return; |
|
} |
|
//如果没有轻伤员跟随,不管设没设安全区,直接关闭技能 |
|
if (SelectFireMan.GetComponent<FiremanMoveTrapped>().trappedlist.Count <= 0) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
InputManager.skill = false; |
|
return; |
|
} |
|
else//有轻伤员跟随 |
|
{ |
|
//开启技能的时候有安全区,中途把安全区删掉,关闭技能的时候没有安全区了 |
|
if (P_safearea.childCount <= 0) |
|
{ |
|
LoadPromptWin.Instance.LoadTextPromptWindow("尚未设置安全区,不能停止移动", 2f); |
|
Move.GetComponent<Toggle>().isOn = true; |
|
return; |
|
} |
|
else |
|
{ |
|
//正常情况 |
|
GameObject trapped = EntitiesManager.Instance.GetEntityByID(SelectFireMan.GetComponent<FiremanMoveTrapped>().trappedlist[0]); |
|
|
|
if (P_safearea.childCount > 0) |
|
{ |
|
SafeAreaMessage smess = P_safearea.GetComponentInChildren<SafeAreaMessage>(); |
|
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<Toggle>().isOn = true; |
|
return; |
|
} |
|
else |
|
{ |
|
//结束移动消息 |
|
MessageDispatcher.SendMessage("ENDMOVE", SelectFireMan); |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
InputManager.skill = false; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
private void FristAidChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
if (value) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.FristAid; |
|
InputManager.skill = true; |
|
|
|
} |
|
else |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
InputManager.skill = false; |
|
|
|
} |
|
} |
|
} |
|
|
|
private void SaveChange(bool value) |
|
{ |
|
// InputManager.skill = value; |
|
if (!value) |
|
{ |
|
Debug.Log(SelectChange + "+++selectchangge"); |
|
FristAid.GetComponent<Toggle>().isOn = false; |
|
Move.GetComponent<Toggle>().isOn = false; |
|
Guidance.GetComponent<Toggle>().isOn = false; |
|
if (!SelectChange) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().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<FireManControl>().workType = FireManSkills.Save; |
|
|
|
} |
|
} |
|
|
|
private void SprayWaterChange(bool value) |
|
{ |
|
|
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
//if (!SelectFireMan.GetComponent<AgentController>().pathFindEnable) |
|
//{ |
|
// SelectFireMan.GetComponent<AgentController>().pathFindEnable = true; |
|
//} |
|
// InputManager.skill = true; |
|
SelectFireMan.GetComponent<LayWaterHose>().SetWaterInfoWhileSpray(); |
|
if (SelectFireMan.GetComponent<FireManWaterHoseManager>().IsConnentWaterSource) |
|
{ |
|
//如果本身就是出水技能 |
|
if (SelectFireMan.GetComponent<FireManControl>().workType == FireManSkills.SprayWater) |
|
{ |
|
SelectFireMan.GetComponent<AgentController>().pathFindEnable = true; |
|
LayWaterPanel.gameObject.SetActive(true); |
|
if (SelectFireMan.GetComponent<FireManControl>().waterrunoutof) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().DestoryPartical(); |
|
} |
|
else |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().SetLay(value); |
|
//SelectFireMan.GetComponent<FireManControl>().SetParticleType(SelectFireMan.GetComponent<FireManControl>().SelectParticleType); |
|
//LayWaterPanel.gameObject.SetActive(true); |
|
} |
|
GetComponent<LayWaterPanel>().SetShowEnable(); |
|
} |
|
else//开启出水 |
|
{ |
|
//if (SelectFireMan.GetComponent<FireManControl>().waterrunoutof) |
|
//{ |
|
// LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f); |
|
// //MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = true, ChangObjId = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjID }); |
|
// return; |
|
//} |
|
//if (SelectFireMan.GetComponent<FireManWaterHoseManager>().ConnentSource.GetComponent<WaterSource>().hasover) |
|
//{ |
|
// LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f); |
|
// return; |
|
//} |
|
if(SelectFireMan.GetComponent<FireManWaterHoseManager>().ConnentSource==null) |
|
{ |
|
Debug.Log("fmskpm----+false"); |
|
SprayWater.GetComponent<Toggle>().isOn = false; |
|
return; |
|
} |
|
float remain = SelectFireMan.GetComponent<FireManControl>().CheckWaterRemain(SelectFireMan.GetComponent<FireManWaterHoseManager>().WaterSourceLine); |
|
if (!(remain>0||remain==-100)) |
|
{ |
|
LoadPromptWin.Instance.LoadTextPromptWindow("剩余水量不足", 1f); |
|
return; |
|
} |
|
//有泡沫,弹窗出水还是出泡沫 |
|
if (SelectFireMan.GetComponent<FireManWaterHoseManager>().hasFoamConnect) |
|
{ |
|
// if (isselectspray) |
|
{ |
|
extinguishantSelect.gameObject.SetActive(true); |
|
extinguishantSelect.SelectFireman = SelectFireMan; |
|
return; |
|
} |
|
} |
|
//只有水 |
|
if (SelectFireMan.GetComponent<FireManWaterHoseManager>().hasWaterConnect || !SelectFireMan.GetComponent<FireManWaterHoseManager>().hasFoamConnect) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.SprayWater; |
|
SelectFireMan.GetComponent<AgentController>().pathFindEnable = true; |
|
//设置出水动画和水枪显示 |
|
SelectFireMan.GetComponent<FireManControl>().SetLay(value); |
|
//默认直流 |
|
SelectFireMan.GetComponent<FireManControl>().SetParticleType(SprayParticleType.WaterStraight); |
|
LayWaterPanel.gameObject.SetActive(true); |
|
//GetComponent<LayWaterPanel>().SelectSparyObj = SelectFireMan; |
|
//SetShowEnable()里面设置了Flow值 |
|
GetComponent<LayWaterPanel>().SetShowEnable(); |
|
//SelectFireMan.GetComponent<FireManControl>().SetLay(value); |
|
SelectFireMan.GetComponent<LayWaterHose>().StartSprayingLay(); |
|
|
|
//连接水源流量设置 |
|
// MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = true, ChangObjId = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjID }); |
|
////同步水源信息 |
|
//var arg = new HoseConnectOrDelectData(); |
|
//arg.StartId = SelectFireMan.GetComponent<FireManWaterHoseManager>().ConnentSource.GetComponent<BaseGameObjInfo>().gameObjID; |
|
//arg.EndId = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjID; |
|
//arg.HoseId = SelectFireMan.GetComponent<FireManWaterHoseManager>().WaterLineConnent.GetComponent<BaseGameObjInfo>().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<BaseGameObjInfo>().gameObjID; |
|
spraysync.UserID = SelectFireMan.GetComponent<BaseGameObjInfo>().UserID; |
|
spraysync.gameObjType = SelectFireMan.GetComponent<BaseGameObjInfo>().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<FireManControl>().SetLay(value); |
|
SelectFireMan.GetComponent<FireManControl>().DestoryPartical(); |
|
//这里面判断了能否寻路 |
|
SelectFireMan.GetComponent<LayWaterHose>().EndLay(false,false); |
|
//SelectFireMan.GetComponent<FireManControl>().ParticleSize = 0; |
|
//SelectFireMan.GetComponent<FireManControl>().SelectParticleType = SprayParticleType.WaterStraight; |
|
if (SelectFireMan.GetComponent<FireManControl>().Flow!=0) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().Flow = 0; |
|
} |
|
// MessageDispatcher.SendMessage("SPRAY_WATER", new flowchangeinfo() { IsAdd = false, ChangObjId = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjID }); |
|
//出水状态下停止铺设不重置水源信息 |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
SpraySyncData spraysync = new SpraySyncData(); |
|
spraysync.SendUserID = CurrentUserInfo.mySelf.Id; |
|
spraysync.IsOn = false; |
|
// spraysync.spraytype = SprayParticleType.WaterStraight; |
|
spraysync.gameObjID = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjID; |
|
spraysync.UserID = SelectFireMan.GetComponent<BaseGameObjInfo>().UserID; |
|
spraysync.gameObjType = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjType; |
|
NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "SPRAY_WATER_SYNC", spraysync); |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// 连接管线 |
|
/// </summary> |
|
/// <param name="value"></param> |
|
private void AssociatedLineChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.skill = false; |
|
InputManager.cloneObjType = CloneObjType.OrdinaryHose; |
|
MessageDispatcher.SendMessage("CloneSelected");//克隆按钮选中,取消技能触发 |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.AssociatedLine; |
|
|
|
//InputManager.skill = true; |
|
} |
|
else |
|
{ |
|
if (SelectFireMan.GetComponent<FireManControl>().workType == FireManSkills.AssociatedLine) |
|
{ |
|
if (FiremanAssociatedLine != null) |
|
{ |
|
if (FiremanAssociatedLine.GetComponent<ParentLinesMessage>().LineLenght > 0) |
|
{ |
|
if (!FiremanAssociatedLine.GetComponent<ParentLinesMessage>().hascalculate) |
|
{ |
|
WaterHoseExpend expend = new WaterHoseExpend |
|
{ |
|
WaterHoseDraw = FiremanAssociatedLine, |
|
Distance = FiremanAssociatedLine.GetComponent<ParentLinesMessage>().LineLenght, |
|
Fireman = SelectFireMan, |
|
ExpendNum = Mathf.CeilToInt(FiremanAssociatedLine.GetComponent<ParentLinesMessage>().LineLenght / 20), |
|
}; |
|
MessageDispatcher.SendMessage("WATERHOSEEXPEND", expend); |
|
} |
|
} |
|
else |
|
{ |
|
Destroy(FiremanAssociatedLine); |
|
} |
|
} |
|
} |
|
if (!SelectChange) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().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<FireManControl>().workType = FireManSkills.TakeUpWaterLine; |
|
|
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
} |
|
InputManager.skill = false; |
|
|
|
} |
|
} |
|
|
|
private void PackUpLineChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
InputManager.skill = true; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.PackUpLine; |
|
|
|
} |
|
else |
|
{ |
|
if (!SelectChange) |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
InputManager.skill = false; |
|
|
|
} |
|
} |
|
/// <summary> |
|
/// 铺设水带 |
|
/// </summary> |
|
/// <param name="value"></param> |
|
private void LayWaterHoseChange(bool value) |
|
{ |
|
if (value) |
|
{ |
|
InputManager.cloneObjType = CloneObjType.None; |
|
//InputManager.skill = true; |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.LayWaterHose; |
|
|
|
|
|
//if (SelectFireMan.GetComponent<FireManWaterHoseManager>().WaterHoseLenghtRemain <= 0) |
|
//{ |
|
// LoadPromptWin.Instance.LoadTextPromptWindow("未装备水带或水带已用完", 1f); |
|
// LayWaterHoseToggle.transform.Find("Label").GetComponent<Text>().text = "放下水带"; |
|
// return; |
|
//} |
|
|
|
SelectFireMan.GetComponent<LayWaterHose>().StartLay(); |
|
LayWaterHoseToggle.transform.Find("Label").GetComponent<Text>().text = "放下水带"; |
|
|
|
//铺设水带同步 |
|
LayerWaterHoseSyncData syncarg = new LayerWaterHoseSyncData(); |
|
syncarg.SendUserID = CurrentUserInfo.mySelf.Id; |
|
syncarg.IsBegin = true; |
|
syncarg.gameObjID = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjID; |
|
syncarg.UserID = SelectFireMan.GetComponent<BaseGameObjInfo>().UserID; |
|
syncarg.gameObjType = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjType; |
|
NetworkManager.Default.SendAsync(/*CurrentUserInfo.mySelf.Id,*/ "LAY_WATER_HOSE_SYNC", syncarg); |
|
|
|
} |
|
else |
|
{ |
|
//InputManager.skill = false; |
|
LayWaterHoseToggle.transform.Find("Label").GetComponent<Text>().text = "铺设水带"; |
|
SelectFireMan.GetComponent<LayWaterHose>().EndLay(); |
|
if (!SelectChange) |
|
{ |
|
SelectFireMan.GetComponent<FireManControl>().workType = FireManSkills.None; |
|
} |
|
|
|
|
|
LayerWaterHoseSyncData syncarg = new LayerWaterHoseSyncData(); |
|
syncarg.SendUserID = CurrentUserInfo.mySelf.Id; |
|
syncarg.IsBegin = false; |
|
syncarg.gameObjID = SelectFireMan.GetComponent<BaseGameObjInfo>().gameObjID; |
|
syncarg.UserID = SelectFireMan.GetComponent<BaseGameObjInfo>().UserID; |
|
syncarg.gameObjType = SelectFireMan.GetComponent<BaseGameObjInfo>().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<Toggle>()) |
|
{ |
|
firemanskillcontant.GetChild(i).GetComponent<Toggle>().interactable = false; |
|
} |
|
|
|
} |
|
} |
|
public void SetSkillEnable() |
|
{ |
|
for (int i = 0; i < firemanskillcontant.childCount; i++) |
|
{ |
|
if (firemanskillcontant.GetChild(i).GetComponent<Toggle>()) |
|
{ |
|
firemanskillcontant.GetChild(i).GetComponent<Toggle>().interactable = true ; |
|
} |
|
} |
|
} |
|
}
|
|
|