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 _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 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 toggleOnList = new List(); 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(); } }