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

213 lines
6.9 KiB
C#
Raw 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 BanQuetInvatePanel : MonoBehaviour {
public static BanQuetInvatePanel Instance;
private void OnEnable()
{
Instance = this;
}
private void OnDisable()
{
Instance = null;
}
public List<Toggle> _totalToggleList;
public Button _WorldBtn;
public Text _WorldEndTimeText;
public Button _GuildBtn;
public Text _GuildEndTimeText;
public Button _FriendBtn;
public Text _FriendEndTimeText;
private long _WorldEndTime;
private long _GuildEndTime;
private long _FriendEndTime;
private bool _IsInitSetting = false;
public void Init(List<int> permissionList, long worldEndTime, long guildEndTime, long friendEndTime)
{
_IsInitSetting = false;
for (int index = 0; index < _totalToggleList.Count; index++)
{
_totalToggleList[index].isOn = permissionList[index] == 1;
}
_IsInitSetting = true;
RefeshBtnState(worldEndTime, guildEndTime, friendEndTime);
StopAllCoroutines();
StartCoroutine(CountRemainTime());
}
public void RefeshBtnState(long worldEndTime, long guildEndTime, long friendEndTime)
{
_WorldEndTime = worldEndTime;
_WorldBtn.interactable = _WorldEndTime <= GlobalData.ServerAnsiTime;
_GuildEndTime = guildEndTime;
_GuildBtn.interactable = _GuildEndTime <= GlobalData.ServerAnsiTime;
_FriendEndTime = friendEndTime;
_FriendBtn.interactable = _FriendEndTime <= GlobalData.ServerAnsiTime;
if(IsNeedCounTime())
{
StopAllCoroutines();
StartCoroutine(CountRemainTime());
}
}
public bool IsNeedCounTime()
{
if (_WorldEndTime <= GlobalData.ServerAnsiTime
&& _GuildEndTime <= GlobalData.ServerAnsiTime
&& _FriendEndTime <= GlobalData.ServerAnsiTime)
{
SetOriginBtnDesc();
return false;
}
return true;
}
public void SetOriginBtnDesc()
{
_WorldEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82200}");
_GuildEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82201}");
_FriendEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82202}");
if (!_WorldBtn.interactable)
_WorldBtn.interactable = true;
if (!_GuildBtn.interactable)
_GuildBtn.interactable = true;
if (!_FriendBtn.interactable)
_FriendBtn.interactable = true;
}
IEnumerator CountRemainTime()
{
while(true)
{
yield return new WaitForSeconds(1.0f);
if(!IsNeedCounTime())
{
yield break;
}
if(_WorldEndTime > GlobalData.ServerAnsiTime)
{
if (_WorldBtn.interactable)
_WorldBtn.interactable = false;
var remainTime = _WorldEndTime - GlobalData.ServerAnsiTime;
var remainTimeStr = remainTime > 60 ? "(" + (remainTime / 60).ToString().PadLeft(2, '0') + "m" + (remainTime % 60).ToString().PadLeft(2, '0') + "s" + ")"
: "(" + (remainTime % 60).ToString().PadLeft(2, '0') + "s" + ")";
_WorldEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82203}", remainTimeStr);
}else
{
if (!_WorldBtn.interactable)
_WorldBtn.interactable = true;
_WorldEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82200}");
}
if (_GuildEndTime > GlobalData.ServerAnsiTime)
{
if (_GuildBtn.interactable)
_GuildBtn.interactable = false;
var remainTime = _GuildEndTime - GlobalData.ServerAnsiTime;
var remainTimeStr = remainTime > 60 ? "(" + (remainTime / 60).ToString().PadLeft(2, '0') + "m" + (remainTime % 60).ToString().PadLeft(2, '0') + "s" + ")"
: "(" + (remainTime % 60).ToString().PadLeft(2, '0') + "s" + ")";
_GuildEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82204}", remainTimeStr);
}
else
{
if (!_GuildBtn.interactable)
_GuildBtn.interactable = true;
_GuildEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82201}");
}
if (_FriendEndTime > GlobalData.ServerAnsiTime)
{
if (_FriendBtn.interactable)
_FriendBtn.interactable = false;
var remainTime = _FriendEndTime - GlobalData.ServerAnsiTime;
var remainTimeStr = remainTime > 60 ? "(" + (remainTime / 60).ToString().PadLeft(2, '0') + "m" + (remainTime % 60).ToString().PadLeft(2, '0') + "s" + ")"
: "(" + (remainTime % 60).ToString().PadLeft(2, '0') + "s" + ")";
_FriendEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82205}", remainTimeStr);
}
else
{
if (!_FriendBtn.interactable)
_FriendBtn.interactable = true;
_FriendEndTimeText.text = StrDictionary.GetClientDictionaryString("#{82202}");
}
}
}
public void OnToggle(int _Index)
{
if (!_IsInitSetting)
return;
if (!_totalToggleList[_Index].isOn)
{
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{82206}"), "", delegate ()
{
_totalToggleList[_Index].isOn = false;
OnToggleOnStateChange();
UIManager.CloseUI(UIInfo.MessageBox);
}, delegate ()
{
_totalToggleList[_Index].isOn = true;
UIManager.CloseUI(UIInfo.MessageBox);
});
}else
{
OnToggleOnStateChange();
}
}
public void OnToggleOnStateChange()
{
List<int> toggleOnList = new List<int>();
for (int index = 0; index < _totalToggleList.Count; index++)
{
//Debug.LogError("_totalToggleList : " + _totalToggleList[index].isOn);
toggleOnList.Add( _totalToggleList[index].isOn ? 1 : 0);
}
ReqPermissionChange req = new ReqPermissionChange();
req.nType = toggleOnList;
req.SendMsg();
}
public void OnCloseBtn()
{
this.gameObject.SetActive(false);
}
public void OnInvateBtn(int type)
{
if(type == 2 && !GameManager.gameManager.PlayerDataPool.IsHaveGuild())
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{24986}"));
return;
}
ReqBanQuetInvate req = new ReqBanQuetInvate();
req.nInvateType = type;
req.SendMsg();
}
}