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 }