Files
JJBB/Assets/Project/Script/GUI/Marry/BanQuetOperationPanel.cs

151 lines
4.3 KiB
C#
Raw Permalink Normal View History

2024-08-23 15:49:34 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GCGame.Table;
public class BanQuetOperationPanel : MonoBehaviour {
public static BanQuetOperationPanel Instance;
public GameObject _CouplePanel;
public GameObject _GuestPanel;
public GameObject _WeddingCarPanel;
public BanQuetRedPacketPanel _RedPacketPanel;
public BanQuetCandyPanel _CandyPanel;
public BanQuetInvatePanel _InvatePanel;
public BanQuetBeKickedPanel _KickPanel;
public BanQuetFireWorkPanel _FireWorkpanel;
public GameObject _NextRefreshTimeObj;
public Text _NextRefreshTime;
private RetBanQuetSceneInfo _PacketInfo;
private void Awake()
{
Instance = this;
}
private void OnDestroy()
{
Instance = null;
}
private void OnEnable()
{
ShowNextBanquetFreshTime();
}
void ShowNextBanquetFreshTime()
{
if(GlobalData.BanquetNextRefreshTime != -1
&& GlobalData.BanquetNextRefreshTime > GlobalData.ServerAnsiTime)
{
RefreshSpecialCountTime(GlobalData.BanquetNextRefreshTime);
}
}
public void OnPacket(RetBanQuetSceneInfo packet)
{
_PacketInfo = packet;
_CouplePanel.SetActive(packet.nIsCouple == 1);
_GuestPanel.SetActive(packet.nIsCouple != 1);
if (BanQuetInvatePanel.Instance)
BanQuetInvatePanel.Instance.RefeshBtnState(packet.worldInvateEndTime, packet.guildInvateEndTime, packet.friendInvateEndTime);
}
public void OnCandyBtn()
{
_CandyPanel.gameObject.SetActive(true);
}
public void OnRedPacketBtn()
{
_RedPacketPanel.gameObject.SetActive(true);
_RedPacketPanel.Init(_PacketInfo.groom, _PacketInfo.bride);
}
public void OnInvateBtn()
{
_InvatePanel.gameObject.SetActive(true);
_InvatePanel.Init(_PacketInfo.permissionList, _PacketInfo.worldInvateEndTime, _PacketInfo.guildInvateEndTime, _PacketInfo.friendInvateEndTime);
}
public void ShowKickPanel(long endTime)
{
_RedPacketPanel.gameObject.SetActive(false);
_CandyPanel.gameObject.SetActive(false);
_InvatePanel.gameObject.SetActive(false);
_KickPanel.gameObject.SetActive(true);
_KickPanel.InitRemainTime(endTime);
}
public void OnFireWorkBtn()
{
_FireWorkpanel.gameObject.SetActive(true);
}
#region
public void RefreshSpecialCountTime(int endTime)
{
var remainTime = endTime - GlobalData.ServerAnsiTime;
if (remainTime > 0)
{
if (!_NextRefreshTimeObj.activeInHierarchy)
_NextRefreshTimeObj.SetActive(true);
StartCoroutine(CountTimeSync(endTime));
_NextRefreshTime.text = (remainTime / 60).ToString().PadLeft(2, '0') + ":" + (remainTime % 60).ToString().PadLeft(2, '0');
}
else
{
_NextRefreshTime.text = "00:00";
}
_NextRefreshTimeObj.SetActive(endTime != -1); //在倒计时为0的时候不会因为时间为0而隐藏,不然会显得很奇怪
}
IEnumerator CountTimeSync(int endTime)
{
while (true)
{
yield return new WaitForSeconds(1.0f);
var remainTime = endTime - GlobalData.ServerAnsiTime;
//Debug.LogError("RemainTime : " + remainTime);
if (remainTime < 0)
{
_NextRefreshTime.text = "00:00";
yield break;
}
_NextRefreshTime.text = (remainTime / 60).ToString().PadLeft(2, '0') + ":" + (remainTime % 60).ToString().PadLeft(2, '0');
}
}
#endregion
#region
public void ShowWeddingCarOperationPanel()
{
_RedPacketPanel.gameObject.SetActive(false);
_CandyPanel.gameObject.SetActive(false);
_InvatePanel.gameObject.SetActive(false);
_KickPanel.gameObject.SetActive(false);
_FireWorkpanel.gameObject.SetActive(false);
_CouplePanel.SetActive(false);
_GuestPanel.SetActive(false);
_WeddingCarPanel.SetActive(true);
}
public void OnWeddingCarExitBtn()
{
ReqExitWeddingCar req = new ReqExitWeddingCar();
req._flag = 1;
req.SendMsg();
}
#endregion
}