Files
JJBB/Assets/Project/Script/LuaScripts/UI/VipIdoit/VipIdoitTips.cs
2024-08-23 15:49:34 +08:00

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);
}
}