Files
MRCS/Assets/_MrCs/Scripts/UI/ConPanel.cs

139 lines
3.2 KiB
C#

using System.Collections.Generic;
using DragonLi.Core;
using TMPro;
using UnityEngine;
using XUI;
public class ConPanel : UIBehaviour
{
public Common.State PanelState;
public Transform Page2;
public GameObject IPBtn;
public List<IPBtn> IPBtns;
public bool IsInit = false;
public TextMeshProUGUI lastTxt;
public TextMeshProUGUI tenTxt;
public TextMeshProUGUI tipTxt;
private int lastIndex = 0;
private int tenIndex = 0;
public static void Show()
{
WorldUIManager.Ins.Cover("UI/ConPanel", false);
}
public void Start()
{
for (int i = 0; i < 50; i++)
{
IPBtn btn = Instantiate(IPBtn, Page2).GetComponent<IPBtn>();
btn.gameObject.SetActive(false);
IPBtns.Add(btn);
}
IsInit = true;
lastTxt.text = 0.ToString();
tenTxt.text = 0.ToString();
tipTxt.text = "";
PanelState.StateChange(0);
}
public void Update()
{
if (IsInit && MRNetworkManager.Ins.NeedFresh > 0)
{
MRNetworkManager.Ins.NeedFresh--;
FreshServers();
}
}
public void OnClickHost()
{
PanelState.StateChange(2);
}
public void CreateRoom()
{
WorldUIManager.Ins.Back();
MRNetworkManager.Ins.CreateAndJoinRoom();
MRNetworkManager.Ins.networkDiscovery.AdvertiseServer();
}
public void OnClickFindServer()
{
MRNetworkManager.Ins.DiscoveredServers.Clear();
MRNetworkManager.Ins.DiscoveredServersList.Clear();
MRNetworkManager.Ins.networkDiscovery.StartDiscovery();
PanelState.StateChange(1);
}
public void FreshServers()
{
for (int j = 0; j < IPBtns.Count; j++)
{
IPBtns[j].gameObject.SetActive(false);
}
for (int i = 0; i < MRNetworkManager.Ins.DiscoveredServersList.Count; i++)
{
IPBtns[i].Init(i + 1, MRNetworkManager.Ins.DiscoveredServersList[i]);
IPBtns[i].gameObject.SetActive(true);
}
}
public void OnClickServer()
{
WorldUIManager.Ins.Back();
MRNetworkManager.Ins.CreateRoom();
}
public void AddLastPlayer()
{
lastIndex += 1;
if(lastIndex>9)
lastIndex = 0;
lastTxt.text = lastIndex.ToString();
}
public void CutLastPlayer()
{
lastIndex -= 1;
if(lastIndex < 0)
lastIndex = 9;
lastTxt.text = lastIndex.ToString();
}
public void AddTenPlayer()
{
tenIndex += 1;
if(tenIndex>9)
tenIndex = 0;
tenTxt.text = tenIndex.ToString();
}
public void CutTenPlayer()
{
tenIndex -= 1;
if(tenIndex < 0)
tenIndex = 9;
tenTxt.text = tenIndex.ToString();
}
public void OnCreateRoomClick()
{
GameLocal.Ins.addPlayerIndex = (tenIndex * 10) + lastIndex;
if (GameLocal.Ins.addPlayerIndex <= 1)
{
tipTxt.text = "至少两人开始游戏";
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{
tipTxt.text = "";
}, 2f);
return;
}
CreateRoom();
}
}