219 lines
6.5 KiB
C#
219 lines
6.5 KiB
C#
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<MarketingMainMenu>((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);
|
|
}
|
|
}
|