using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using GCGame.Table; public class VipIdoitTips : MonoBehaviour { public static VipIdoitTips Instance; private void Awake() { Instance = this; } private void OnDestroy() { Instance = null; } public GameObject _Tips; public Text _TipsDesc; public GameObject _PrivilegeDescPanel; public Text _PrivilegeDesc; public Text _AutoActiveRemainTime; public UICameraTexture _CamerTexture; public Text _Title; private void OnEnable() { if (_Tips.activeInHierarchy) SetTipsPos(); } public void ShowOption(int vipIdoitId, bool isActive = false) { // _Tips.SetActive(true); var vipTab = TableManager.GetVipIdoitInChargeByID(vipIdoitId, 0); if (vipTab == null) return; if (!isActive) { var strDicId = "#{" + vipTab.ActiveStrDesc + "}"; _TipsDesc.text = StrDictionary.GetClientDictionaryString(strDicId); } else { if(vipTab.ActivedStrDesc == -1) { OnCloseBtn(); return; } var strDicId = "#{" + vipTab.ActivedStrDesc + "}"; _TipsDesc.text = StrDictionary.GetClientDictionaryString(strDicId).Replace("#r", "\n"); } SetTipsPos(); } private int _CanActiveVipId = -1; public void ShowActivePanel(int vipIdoitId) { _CanActiveVipId = vipIdoitId; var vipTab = TableManager.GetVipIdoitInChargeByID(vipIdoitId, 0); if (vipTab == null || vipTab.ActiveDescId == -1) { _PrivilegeDescPanel.SetActive(false); return; } GameManager.gameManager.PlayerDataPool.ExperIvpLevel = vipTab.Param; _PrivilegeDescPanel.SetActive(true); var strId = "#{" + vipTab.ActiveDescId + "}"; //_PrivilegeDesc.text = StrDictionary.GetClientDictionaryString(strId); _AutoActiveRemainTime.text = vipTab.AuotoActiveTime + ""; if (vipTab.AuotoActiveTime > 0) { StartCoroutine(CountAuotoRemainTime(vipTab.AuotoActiveTime)); } int charModeld = vipTab.ChrModelIdStr.Contains("|") ? int.Parse(vipTab.ChrModelIdStr.Split('|')[GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession]) : int.Parse(vipTab.ChrModelIdStr); var charModel = TableManager.GetCharModelByID(charModeld, 0); if(_Title) _Title.text = StrDictionary.GetClientDictionaryString("#{80011}", vipTab.Name); _CamerTexture._CanDrag = false; if (charModel == null) _CamerTexture.gameObject.SetActive(false); _CamerTexture.gameObject.SetActive(true); _CamerTexture.InitModelPath(charModel.ResPath, charModel, LoadAssetBundle.BUNDLE_PATH_MODEL, true); } private int _DeadLineTime = 0; public void ShowReamainExperienceTime(int remainTime) { _DeadLineTime = remainTime; if(_DeadLineTime - GlobalData.ServerAnsiTime <= 0) { _Tips.SetActive(false); }else { _Tips.SetActive(true); SetRemainTimeText(remainTime - GlobalData.ServerAnsiTime); SetTipsPos(); StartCoroutine(CountRemainTime()); } } public void SetRemainTimeText(int remainTime) { _TipsDesc.text = StrDictionary.GetClientDictionaryString("#{80017}", (remainTime / 60).ToString().PadLeft(2, '0') + ":" + (remainTime % 60).ToString().PadLeft(2, '0')); } IEnumerator CountRemainTime() { while(true) { yield return new WaitForSeconds(1.0f); var remainTime = _DeadLineTime - GlobalData.ServerAnsiTime; if (remainTime <= 0) { StopAllCoroutines(); _Tips.SetActive(false); yield break; } SetRemainTimeText(remainTime); } } IEnumerator CountAuotoRemainTime(int totalTime) { while(true) { yield return new WaitForSeconds(1.0f); totalTime--; if(totalTime <= 0) { _AutoActiveRemainTime.text = 0 + ""; OnActiveBtn(); yield break; } _AutoActiveRemainTime.text = totalTime + ""; } } public void OnActiveBtn() { ReqExperienceVip req = new ReqExperienceVip(); req._ExperienceVipId = _CanActiveVipId; req.SendMsg(); _PrivilegeDescPanel.SetActive(false); } public void OnItemClick() { //ShowOption(GameManager.gameManager.PlayerDataPool.VipIdoitId, GameManager.gameManager.PlayerDataPool.VipIdoitStae == 1); } public void SetTipsPos() { StartCoroutine(SetTipPosSyc()); } IEnumerator SetTipPosSyc() { while(true) { yield return new WaitForEndOfFrame(); if (MarketingActsRoot.Instance() != null && MarketingActsRoot.Instance().isActiveAndEnabled) { var hasFind = false; MarketingActsRoot.Instance()._ActContainer_R.ForeachActiveItem((item) => { if (item.MyActState.actID == 1000) { hasFind = true; if (FunctionButtonLogic.Instance() != null && FunctionButtonLogic.Instance().IsShowBtn) { if(!_Tips.gameObject.activeInHierarchy) _Tips.SetActive(true); _Tips.transform.position = item.gameObject.transform.position; } else { if (_Tips.gameObject.activeInHierarchy) _Tips.SetActive(false); } } }); if(!hasFind) { if (_Tips.gameObject.activeInHierarchy) _Tips.SetActive(false); } } else { if (_Tips.activeInHierarchy) _Tips.SetActive(false); } } } public void OnTipsBtn() { //UIManager.CloseUI(UIInfo.VipIdoitTips); _Tips.SetActive(false); } public void OnCloseBtn() { UIManager.CloseUI(UIInfo.VipIdoitTips); } }