网上演练贵港万达广场(人员密集)
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.
 
 
 

370 lines
14 KiB

using AX.MessageSystem;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class VictoryConditionSetting
{
public int Count;//胜利条件条数
public int BurnedArea;//过火面积
public int FireManDied;//牺牲消防员个数
public int UnRescued;//未被营救的伤员和被困人员之和
public int BurnedTime;//燃烧时间
}
public class VictoryConditionPanel : MonoBehaviour
{
public Transform VictoryScrollView;
public Transform CountSettingInputField;
public Transform FireAreaToggle;
public Transform FireAreaInputField;
public Transform FireManSettingToggle;
public Transform FireMaSettingInputField;
public Transform TrappedPersonToggle;
public Transform TrappedPersonInputField;
public Transform FireTimeToggle;
public Transform FireTimeInputField;
private Toggle[] all;
public int SetCount;
public int FireArea;
public int FireMan;
public int Trapped;
public int FireTime;
private void Awake()
{
MessageDispatcher.AddListener("LOAD_UIDISASTER", LoadUIDisaster);
}
// Use this for initialization
void Start()
{
all = VictoryScrollView.transform.GetComponentsInChildren<Toggle>();
CountSettingInputField.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = CountSettingInputFieldChange;
FireAreaToggle.GetComponent<ToggleRecordByAC>().OutInterFaceToggle = FireAreaToggleChange;
FireAreaInputField.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FireAreaInputFieldChange;
FireManSettingToggle.GetComponent<ToggleRecordByAC>().OutInterFaceToggle = FireManSettingToggleChange;
FireMaSettingInputField.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FireMaSettingInputFieldChange;
TrappedPersonToggle.GetComponent<ToggleRecordByAC>().OutInterFaceToggle = TrappedPersonToggleChange;
TrappedPersonInputField.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = TrappedPersonInputFieldChange;
FireTimeToggle.GetComponent<ToggleRecordByAC>().OutInterFaceToggle = FireTimeToggleChange;
FireTimeInputField.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FireTimeInputFieldChange;
CountSettingInputField.GetComponentInChildren<InputField>().ActivateInputField();
}
private void OnDestroy()
{
MessageDispatcher.RemoveListener("LOAD_UIDISASTER", LoadUIDisaster);
}
private void LoadUIDisaster(IMessage obj)
{
if (GameSettings.othersSettings.isSelectedDisaster)
{
DataBind();
if (GameSettings.othersSettings.mode != Mode.DisasterManagement)
{//若是练习或演习模式进入导调组界面,则不可以修改
CountSettingInputField.GetComponent<InputField>().interactable = false;
FireAreaToggle.GetComponent<Toggle>().interactable = false;
FireAreaInputField.GetComponent<InputField>().interactable = false;
FireManSettingToggle.GetComponent<Toggle>().interactable = false;
FireMaSettingInputField.GetComponent<InputField>().interactable = false;
TrappedPersonToggle.GetComponent<Toggle>().interactable = false;
TrappedPersonInputField.GetComponent<InputField>().interactable = false;
FireTimeToggle.GetComponent<Toggle>().interactable = false;
FireTimeInputField.GetComponent<InputField>().interactable = false;
}
else
{
if (!GameSettings.disasterSetting.isEdit)
{//若是灾情库设置模式的查看,则不可以修改
CountSettingInputField.GetComponent<InputField>().interactable = false;
FireAreaToggle.GetComponent<Toggle>().interactable = false;
FireAreaInputField.GetComponent<InputField>().interactable = false;
FireManSettingToggle.GetComponent<Toggle>().interactable = false;
FireMaSettingInputField.GetComponent<InputField>().interactable = false;
TrappedPersonToggle.GetComponent<Toggle>().interactable = false;
TrappedPersonInputField.GetComponent<InputField>().interactable = false;
FireTimeToggle.GetComponent<Toggle>().interactable = false;
FireTimeInputField.GetComponent<InputField>().interactable = false;
}
else
{
//若是灾情库设置模式的编辑,则可以修改
}
}
}
}
public void VictoryConditionSettingFunction()
{
VictoryConditionSetting vs = new VictoryConditionSetting
{
Count = SetCount,
BurnedArea = FireArea,
FireManDied = FireMan,
UnRescued = Trapped,
BurnedTime = FireTime,
};
Debug.Log(vs.Count + "setcount" + vs.BurnedArea + "firearea" + vs.FireManDied + "fireman" + vs.UnRescued + "trapped" + vs.BurnedTime + "firetime");
}
public VictoryConditionSetting VictoryConditionSetting()
{
VictoryConditionSetting vs = new VictoryConditionSetting
{
Count = SetCount,
BurnedArea = FireArea,
FireManDied = FireMan,
UnRescued = Trapped,
BurnedTime = FireTime,
};
return vs;
Debug.Log(vs.Count + "setcount" + vs.BurnedArea + "firearea" + vs.FireManDied + "fireman" + vs.UnRescued + "trapped" + vs.BurnedTime + "firetime");
}
void Update()
{
}
/// <summary>
/// 胜利条件条数设置
/// </summary>
void countSettingActiveJudge()
{
//Toggle[] all = VictoryScrollView.transform.GetComponentsInChildren<Toggle>();
if (int.Parse(CountSettingInputField.GetComponentInChildren<InputField>().text) >= 1)
{
FireAreaToggle.GetComponent<Toggle>().interactable = true;
FireManSettingToggle.GetComponent<Toggle>().interactable = true;
TrappedPersonToggle.GetComponent<Toggle>().interactable = true;
FireTimeToggle.GetComponent<Toggle>().interactable = true;
for (int i = 0; i < all.Length; i++)
{
all[i].isOn = false;
}
}
else
{
FireAreaToggle.GetComponent<Toggle>().interactable = false;
FireManSettingToggle.GetComponent<Toggle>().interactable = false;
TrappedPersonToggle.GetComponent<Toggle>().interactable = false;
FireTimeToggle.GetComponent<Toggle>().interactable = false;
for (int i = 0; i < all.Length; i++)
{
all[i].isOn = false;
}
}
}
void toggleActiveJudge(Toggle myself, bool value, int max)
{
// Toggle[] all = VictoryScrollView.transform.GetComponentsInChildren<Toggle>();
if (value)
{
List<Toggle> ontoggle = new List<Toggle>();
for (int i = 0; i < all.Length; i++)
{
if (all[i].isOn)
{
ontoggle.Add(all[i]);
}
}
if (ontoggle.Count == max)
{
for (int i = 0; i < all.Length; i++)
{
if (!ontoggle.Contains(all[i]))
{
all[i].interactable = false;
}
}
}
}
else
{
for (int i = 0; i < all.Length; i++)
{
all[i].interactable = true;
}
}
}
//}
//超过几条,演练失败
private void CountSettingInputFieldChange(string value)
{
if (string.IsNullOrEmpty(value) || value == "" || int.Parse(value) < 1)
{
CountSettingInputField.GetComponentInChildren<InputField>().text = "0";
SetCount = 0;
}
else
{
CountSettingInputField.GetComponentInChildren<InputField>().text = Mathf.Clamp(int.Parse(value.Substring(0, 1)), 0, all.Length).ToString();
SetCount = int.Parse(CountSettingInputField.GetComponentInChildren<InputField>().text);
}
countSettingActiveJudge();
}
/// <summary>
/// 火灾面积toggle
/// </summary>
/// <param name="value"></param>
private void FireAreaToggleChange(bool value)
{
FireAreaToggle.parent.Find("InputField").GetComponent<InputField>().interactable = value;
//toggleActiveJudge(FireAreaToggle.GetComponent<Toggle>(), value, int.Parse(CountSettingInputField.GetComponentInChildren<InputField>().text));
if (!value)
FireAreaToggle.parent.Find("InputField").GetComponent<InputField>().text = "";
}
/// <summary>
/// 火灾面积inputfield
/// </summary>
/// <param name="obj"></param>
private void FireAreaInputFieldChange(string value)
{
if (string.IsNullOrEmpty(value))
{
FireAreaInputField.GetComponentInChildren<InputField>().text = "";
FireArea = 0;
}
else
{
FireAreaInputField.GetComponentInChildren<InputField>().text = Mathf.Clamp(int.Parse(value), 0, 99999).ToString();
FireArea = int.Parse(FireAreaInputField.GetComponentInChildren<InputField>().text);
}
}
/// <summary>
/// 消防员牺牲toggle
/// </summary>
/// <param name="obj"></param>
private void FireManSettingToggleChange(bool value)
{
FireManSettingToggle.parent.Find("InputField").GetComponent<InputField>().interactable = value;
// toggleActiveJudge(FireManSettingToggle.GetComponent<Toggle>(), value, int.Parse(CountSettingInputField.GetComponentInChildren<InputField>().text));
if (!value)
FireManSettingToggle.parent.Find("InputField").GetComponent<InputField>().text = "";
}
/// <summary>
/// 消防员牺牲Inputfield
/// </summary>
/// <param name="obj"></param>
private void FireMaSettingInputFieldChange(string value)
{
if (string.IsNullOrEmpty(value))
{
FireMaSettingInputField.GetComponentInChildren<InputField>().text = "";
FireMan = 0;
}
else
{
FireMaSettingInputField.GetComponentInChildren<InputField>().text = Mathf.Clamp(int.Parse(value), 0, 999).ToString();
FireMan = int.Parse(FireMaSettingInputField.GetComponentInChildren<InputField>().text);
}
}
/// <summary>
/// 被困人员Toggle
/// </summary>
/// <param name="obj"></param>
private void TrappedPersonToggleChange(bool value)
{
TrappedPersonToggle.parent.Find("InputField").GetComponent<InputField>().interactable = value;
//toggleActiveJudge(TrappedPersonToggle.GetComponent<Toggle>(), value, int.Parse(CountSettingInputField.GetComponentInChildren<InputField>().text));
if (!value)
TrappedPersonToggle.parent.Find("InputField").GetComponent<InputField>().text = "";
}
/// <summary>
/// 被困人员Inputfield
/// </summary>
/// <param name="obj"></param>
private void TrappedPersonInputFieldChange(string value)
{
if (string.IsNullOrEmpty(value))
{
TrappedPersonInputField.GetComponentInChildren<InputField>().text = "";
Trapped = 0;
}
else
{
TrappedPersonInputField.GetComponentInChildren<InputField>().text = Mathf.Clamp(int.Parse(value), 0, 999).ToString();
Trapped = int.Parse(TrappedPersonInputField.GetComponentInChildren<InputField>().text);
}
}
/// <summary>
/// 火灾时间Toggle
/// </summary>
/// <param name="obj"></param>
private void FireTimeToggleChange(bool value)
{
FireTimeToggle.parent.Find("InputField").GetComponent<InputField>().interactable = value;
//toggleActiveJudge(FireTimeToggle.GetComponent<Toggle>(), value, int.Parse(CountSettingInputField.GetComponentInChildren<InputField>().text));
if (!value)
FireTimeToggle.parent.Find("InputField").GetComponent<InputField>().text = "";
}
/// <summary>
/// 火灾时间Inputfield
/// </summary>
/// <param name="obj"></param>
private void FireTimeInputFieldChange(string value)
{
if (string.IsNullOrEmpty(value))
{
FireTimeInputField.GetComponentInChildren<InputField>().text = "";
FireTime = 0;
}
else
{
FireTimeInputField.GetComponentInChildren<InputField>().text = Mathf.Clamp(int.Parse(value), 0, 999).ToString();
FireTime = int.Parse(FireTimeInputField.GetComponentInChildren<InputField>().text);
}
}
/// <summary>
/// 灾情库进来绑定胜利条件设置
/// </summary>
private void DataBind()
{
SetCount = GameSettings.othersSettings.disaster.VictoryCondition.Count;
CountSettingInputField.GetComponent<InputField>().text = SetCount.ToString();
if (GameSettings.othersSettings.disaster.VictoryCondition.BurnedArea > 0)
{
FireAreaToggle.GetComponent<Toggle>().isOn = true;
FireArea = GameSettings.othersSettings.disaster.VictoryCondition.BurnedArea;
FireAreaInputField.GetComponent<InputField>().text = FireArea.ToString();
}
if (GameSettings.othersSettings.disaster.VictoryCondition.FireManDied > 0)
{
FireManSettingToggle.GetComponent<Toggle>().isOn = true;
FireMan = GameSettings.othersSettings.disaster.VictoryCondition.FireManDied;
FireMaSettingInputField.GetComponent<InputField>().text = FireMan.ToString();
}
if (GameSettings.othersSettings.disaster.VictoryCondition.UnRescued > 0)
{
TrappedPersonToggle.GetComponent<Toggle>().isOn = true;
Trapped = GameSettings.othersSettings.disaster.VictoryCondition.UnRescued;
TrappedPersonInputField.GetComponent<InputField>().text = Trapped.ToString();
}
if (GameSettings.othersSettings.disaster.VictoryCondition.BurnedTime > 0)
{
FireTimeToggle.GetComponent<Toggle>().isOn = true;
FireTime = GameSettings.othersSettings.disaster.VictoryCondition.BurnedTime;
FireTimeInputField.GetComponent<InputField>().text = FireTime.ToString();
}
}
}