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

194 lines
5.8 KiB

using AX.MessageSystem;
using AX.NetworkSystem;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SetLiquipdata
{
/// <summary>
/// 全液面火Id
/// </summary>
public long LiquipId;
/// <summary>
/// 时间
/// </summary>
public string time;
}
public class FireLiquipPanel : BaseAttributeSet
{
private InputFieldRecordByAC Minput;
private InputFieldRecordByAC Sinput;
private ButtonRecordByAC Sure;
private ButtonRecordByAC Cancel;
private Text Error;
private int Mtime;
private int Stime;
private int SetTime;
private static FireLiquipPanel instance;
public static FireLiquipPanel Instance
{
get
{
if (instance == null)
{
GameObject obj = Resources.Load<GameObject>("Common/FireLiquipPanel");
GameObject clone = Instantiate(obj, GameObject.Find("Canvas").transform);
clone.transform.SetAsLastSibling();
clone.name = "FireLiquipPanel";
clone.transform.position = Vector3.zero;
instance = clone.GetComponent<FireLiquipPanel>();
instance.Init();
}
return instance;
}
}
void Init()
{
Minput = transform.Find("MInputField").GetComponent<InputFieldRecordByAC>();
Sinput = transform.Find("SInputField").GetComponent<InputFieldRecordByAC>();
Sure = transform.Find("SureButton").GetComponent<ButtonRecordByAC>();
Cancel = transform.Find("CancelButton").GetComponent<ButtonRecordByAC>();
Minput.OutInterFaceInPutField = MinputChange;
Sinput.OutInterFaceInPutField = SinputChange;
Sure.OutInterFaceButton = SureClick;
Cancel.OutInterFaceButton = CancelClick;
}
public override void OnDisable()
{
base.OnDisable();
Close();
}
public override void OpenPanel()
{
base.OpenPanel();
LoadUIDisaster();
gameObject.SetActive(true);
}
private void LoadUIDisaster()
{
if (GameSettings.othersSettings.isSelectedDisaster)
{
if (GameSettings.othersSettings.mode != Mode.DisasterManagement)
{//若是练习或演习模式进入导调组界面,则不可以修改
//Minput.GetComponent<InputField>().interactable = false;
//Sinput.GetComponent<InputField>().interactable = false;
//Sure.GetComponent<Button>().interactable = false;
//Cancel.GetComponent<Button>().interactable = false;
}
else
{
if (!GameSettings.disasterSetting.isEdit)
{//若是灾情库设置模式的查看,则不可以修改
Minput.GetComponent<InputField>().interactable = false;
Sinput.GetComponent<InputField>().interactable = false;
Sure.GetComponent<Button>().interactable = false;
//Cancel.GetComponent<Button>().interactable = false;
}
else
{
//若是灾情库设置模式的编辑,则可以修改
}
}
}
}
private void CancelClick()
{
MessageDispatcher.SendMessage("CANCEL_OBJ_SELECTED");
Close();
}
private void SureClick()
{
if (chooseObj&&chooseObj.GetComponent<FireLiquidLevelCtrl>())
{
SetTime = Mtime * 60 + Stime;
string settimestring = SecondToHMS(SetTime);
chooseObj.GetComponent<FireLiquidLevelCtrl>().showTime = settimestring;
//发送设置时间
MessageDispatcher.SendMessage("SetTime", new SetLiquipdata()
{
LiquipId = chooseObj.GetComponent<BaseGameObjInfo>().gameObjID,
time = settimestring,
});
MessageDispatcher.SendMessage("CANCEL_OBJ_SELECTED");
if (GameSettings.othersSettings.mode != Mode.DisasterManagement)
{
NetworkManager.Default.SendAsync("SET_LIQUIP_HIDE_SYNC", chooseObj.GetComponent<BaseGameObjInfo>().gameObjID);
}
LoadPromptWin.Instance.LoadTextPromptWindow("设置成功", 1f);
}
}
public void Close()
{
gameObject.SetActive(false);
}
private void SinputChange(string value)
{
if (string.IsNullOrEmpty(value))
{
Sinput.GetComponent<InputField>().text = "0";
}
else
{
Sinput.GetComponent<InputField>().text=Mathf.Clamp(int.Parse(value),0,59).ToString();
}
Stime = int.Parse(Sinput.GetComponent<InputField>().text);
}
private void MinputChange(string value)
{
if (string.IsNullOrEmpty(value))
{
Minput.GetComponent<InputField>().text = "0";
}
else
{
Minput.GetComponent<InputField>().text = Mathf.Clamp(int.Parse(value), 0, 999).ToString();
}
Mtime = int.Parse(Minput.GetComponent<InputField>().text);
}
public override void LoadObjData()
{
var fireSpreadCtrl = chooseObj.GetComponent<FireLiquidLevelCtrl>();
string[] str = fireSpreadCtrl.showTime.Split(':');
int min = int.Parse(str[0]) * 60 + int.Parse(str[1]);
int second = int.Parse(str[2]);
Minput.GetComponent<InputField>().text = min.ToString();
Sinput.GetComponent<InputField>().text = second.ToString();
}
public string SecondToHMS(int second)
{
int h = (int)(second / 3600);
int m = (int)(second - h * 3600) / 60;
int s = (int)(second - h * 3600 - m * 60);
return string.Format("{0:D2}:{1:D2}:{2:D2}", h, m, s);
}
}