//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, November 01, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
//暂时用于缥缈仙域,后续可扩展用于非副本的vip次数购买
|
public class HazyRegionBuyTimesWin : Window
|
{
|
[SerializeField] Button m_Close;
|
[SerializeField] Text m_DungeonName;
|
[SerializeField] Text m_TodayBuyTimes;
|
[SerializeField] Text m_CostRemind;
|
[SerializeField] RectTransform m_ContainerVipUp;
|
[SerializeField] Text m_VipUpRemind;
|
[SerializeField] RectTransform m_ContainerBuylimit;
|
[SerializeField] Button m_BuyTimes;
|
[SerializeField] Button m_GotoRecharge;
|
|
string costFormula = string.Empty;
|
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
|
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
HazyRegionModel hazyModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.onClick.AddListener(CloseClick);
|
m_BuyTimes.onClick.AddListener(BuyTimes);
|
m_GotoRecharge.onClick.AddListener(GotoRecharge);
|
}
|
|
protected override void OnPreOpen()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshInfoEvent;
|
dailyQuestModel.dailyQuestProgressUpdateEvent += DailyQuestProgressUpdateEvent;
|
vipModel.OnVipTimeEvent += OnVipTimeEvent;
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent;
|
vipModel.OnVipTimeEvent -= OnVipTimeEvent;
|
dailyQuestModel.dailyQuestProgressUpdateEvent -= DailyQuestProgressUpdateEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
private void OnVipTimeEvent()
|
{
|
Display();
|
}
|
|
private void PlayerDataRefreshInfoEvent(PlayerDataType refreshType)
|
{
|
if (refreshType == PlayerDataType.VIPLv)
|
{
|
Display();
|
}
|
}
|
|
private void UpdateDungeonBuyCnt()
|
{
|
Display();
|
}
|
|
void Display()
|
{
|
DailyQuestTimes dailyQuestTimes;
|
|
var dayUseItemTimes = 0;
|
var dayBuyTimes = 0;
|
|
if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
{
|
dayUseItemTimes = dailyQuestTimes.dayUseItemTimes;
|
dayBuyTimes = dailyQuestTimes.dayBuyTimes;
|
}
|
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
|
m_DungeonName.text = config.Title;
|
int vipBuyTimes = vipModel.GetVipPrivilegeCnt((VipPrivilegeType)dailyQuestOpenTime.BuyTimesPrivilegeID);
|
var surplusTimes = vipBuyTimes - dayBuyTimes;
|
var canBuyTimes = surplusTimes > 0;
|
|
var surplusTimeDisplay = UIHelper.AppendColor(surplusTimes > 0 ? TextColType.Green : TextColType.Red, surplusTimes.ToString(), true);
|
m_TodayBuyTimes.text = Language.Get("TimesBuyLanguage1", surplusTimeDisplay, vipBuyTimes);
|
int nextVipLv = vipModel.GetPrivilegeVipLv((VipPrivilegeType)dailyQuestOpenTime.BuyTimesPrivilegeID, vipBuyTimes);
|
|
bool displayUp = nextVipLv != -1;
|
m_ContainerVipUp.SetActive(displayUp);
|
m_GotoRecharge.SetActive(nextVipLv != -1 && !canBuyTimes);
|
|
if (displayUp)
|
{
|
var _buyTimes = VipPrivilegeConfig.GetVipPrivilegeData((VipPrivilegeType)dailyQuestOpenTime.BuyTimesPrivilegeID, nextVipLv);
|
var upTimes = _buyTimes - vipBuyTimes;
|
m_VipUpRemind.text = Language.Get("TimesBuyLanguage2", nextVipLv, upTimes);
|
}
|
m_CostRemind.text = Language.Get("TimesBuyLanguage3", dailyQuestOpenTime.BuyNeedMoney);
|
|
m_BuyTimes.SetActive(canBuyTimes);
|
m_GotoRecharge.SetActive(!canBuyTimes && nextVipLv != -1);
|
m_ContainerBuylimit.SetActive(!canBuyTimes && nextVipLv == -1);
|
}
|
|
private void BuyTimes()
|
{
|
if (!hazyModel.TryAddTimes())
|
{
|
SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_1");
|
return;
|
}
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
|
|
if (PlayerDatas.Instance.baseData.diamond < dailyQuestOpenTime.BuyNeedMoney)
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
return;
|
}
|
|
var pak = new CA525_tagCMBuyDailyActionCnt();
|
pak.AddType = 0;
|
pak.ActionID = (uint)config.RelatedID;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
|
private void DailyQuestProgressUpdateEvent(int id)
|
{
|
Display();
|
|
}
|
private void GotoRecharge()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1);
|
}
|
}
|
|
}
|
|
|