| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Monday, April 08, 2019
|
| | | // [ Date ]: Wednesday, November 01, 2017
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | |
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | | //暂时用于缥缈仙域,后续可扩展用于非副本的vip次数购买
|
| | | public class HazyRegionBuyTimesWin : Window
|
| | | {
|
| | | [SerializeField] Text m_BuyTimes;
|
| | | [SerializeField] Text m_Money;
|
| | | [SerializeField] Button m_Buy;
|
| | |
|
| | | [SerializeField] Transform m_ContainerUseItem;
|
| | | [SerializeField] Text m_UseItemTitle;
|
| | | [SerializeField] Text m_UseItemTimes;
|
| | | [SerializeField] ItemBehaviour m_Item;
|
| | | [SerializeField] Button m_Use;
|
| | |
|
| | | [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;
|
| | |
|
| | | HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
| | | PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
| | | 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>(); } }
|
| | | #region Built-in
|
| | | HazyRegionModel hazyModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
| | |
|
| | | protected override void BindController()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | | {
|
| | | m_Close.AddListener(CloseClick);
|
| | | m_Buy.AddListener(OnBuyTimes);
|
| | | m_Use.AddListener(OnUseItem);
|
| | | 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;
|
| | | packModel.refreshItemCountEvent += RefreshItemCountEvent;
|
| | |
|
| | | vipModel.OnVipTimeEvent += OnVipTimeEvent;
|
| | | Display();
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent;
|
| | | vipModel.OnVipTimeEvent -= OnVipTimeEvent;
|
| | | dailyQuestModel.dailyQuestProgressUpdateEvent -= DailyQuestProgressUpdateEvent;
|
| | | packModel.refreshItemCountEvent -= RefreshItemCountEvent;
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | | #endregion
|
| | |
|
| | | private void OnVipTimeEvent()
|
| | | {
|
| | | Display();
|
| | | }
|
| | |
|
| | | private void PlayerDataRefreshInfoEvent(PlayerDataType refreshType)
|
| | | {
|
| | | if (refreshType == PlayerDataType.VIPLv)
|
| | | {
|
| | | Display();
|
| | | }
|
| | | }
|
| | |
|
| | | private void UpdateDungeonBuyCnt()
|
| | | {
|
| | | Display();
|
| | | }
|
| | |
|
| | | void Display()
|
| | | {
|
| | | DisplayMoney();
|
| | | DisplayTimes();
|
| | | DisplayItem();
|
| | | }
|
| | |
|
| | | void DisplayMoney()
|
| | | {
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | m_Money.text = Language.Get("HazyRegionBuyTimesCost", dailyQuestOpenTime.BuyNeedMoney);
|
| | | }
|
| | |
|
| | | void DisplayTimes()
|
| | | {
|
| | | DailyQuestTimes dailyQuestTimes;
|
| | |
|
| | | var dayUseItemTimes = 0;
|
| | |
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | |
|
| | | var times = Mathf.Clamp(dailyQuestOpenTime.DayBuyTimes - dayBuyTimes, 0, dailyQuestOpenTime.DayBuyTimes);
|
| | | var label = UIHelper.AppendColor(times == 0 ? TextColType.Red : TextColType.Green, times.ToString(), true);
|
| | | m_BuyTimes.text = StringUtility.Contact(label, "/", dailyQuestOpenTime.DayBuyTimes);
|
| | | m_DungeonName.text = config.Title;
|
| | | int vipBuyTimes = vipModel.GetVipPrivilegeCnt((VipPrivilegeType)dailyQuestOpenTime.BuyTimesPrivilegeID);
|
| | | var surplusTimes = vipBuyTimes - dayBuyTimes;
|
| | | var canBuyTimes = surplusTimes > 0;
|
| | |
|
| | | if (dailyQuestOpenTime.DayItemID != 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.gameObject.SetActive(displayUp);
|
| | | m_GotoRecharge.gameObject.SetActive(nextVipLv != -1 && !canBuyTimes);
|
| | |
|
| | | if (displayUp)
|
| | | {
|
| | | var itemConfig = ItemConfig.Get(dailyQuestOpenTime.DayItemID);
|
| | | m_UseItemTitle.text = Language.Get("HazyRegionUseItemTitle", itemConfig.ItemName);
|
| | | times = Mathf.Clamp(dailyQuestOpenTime.DayItemAddTimes - dayUseItemTimes, 0, dailyQuestOpenTime.DayItemAddTimes);
|
| | | label = UIHelper.AppendColor(times == 0 ? TextColType.Red : TextColType.Green, times.ToString(), true);
|
| | |
|
| | | m_UseItemTimes.text = StringUtility.Contact(label, "/", dailyQuestOpenTime.DayItemAddTimes);
|
| | | 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.gameObject.SetActive(canBuyTimes);
|
| | | m_GotoRecharge.gameObject.SetActive(!canBuyTimes && nextVipLv != -1);
|
| | | m_ContainerBuylimit.gameObject.SetActive(!canBuyTimes && nextVipLv == -1);
|
| | | }
|
| | |
|
| | | void DisplayItem()
|
| | | private void BuyTimes()
|
| | | {
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | |
|
| | | m_ContainerUseItem.gameObject.SetActive(dailyQuestOpenTime.DayItemID != 0);
|
| | | if (dailyQuestOpenTime.DayItemID != 0)
|
| | | {
|
| | | m_Item.SetItem(dailyQuestOpenTime.DayItemID, 1);
|
| | | }
|
| | | }
|
| | |
|
| | | private void DailyQuestProgressUpdateEvent(int id)
|
| | | {
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | if (config != null && id == config.RelatedID)
|
| | | {
|
| | | DisplayTimes();
|
| | | }
|
| | | }
|
| | |
|
| | | private void RefreshItemCountEvent(PackType packType, int index, int itemId)
|
| | | {
|
| | | if (packType == PackType.Item)
|
| | | {
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | if (config != null)
|
| | | {
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (dailyQuestOpenTime != null && dailyQuestOpenTime.DayItemID == itemId)
|
| | | {
|
| | | DisplayItem();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnUseItem()
|
| | | {
|
| | | DailyQuestTimes dailyQuestTimes;
|
| | |
|
| | | var dayUseItemTimes = 0;
|
| | |
|
| | | if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
| | | {
|
| | | dayUseItemTimes = dailyQuestTimes.dayUseItemTimes;
|
| | | }
|
| | |
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (dayUseItemTimes >= dailyQuestOpenTime.DayItemAddTimes)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_3");
|
| | | return;
|
| | | }
|
| | |
|
| | | if (!model.TryAddTimes())
|
| | | if (!hazyModel.TryAddTimes())
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_1");
|
| | | return;
|
| | | }
|
| | |
|
| | | var itemCount = packModel.GetItemCountByID(PackType.Item, dailyQuestOpenTime.DayItemID);
|
| | | if (itemCount <= 0)
|
| | | {
|
| | | ItemTipUtility.Show(dailyQuestOpenTime.DayItemID);
|
| | | return;
|
| | | }
|
| | |
|
| | | var pak = new CA525_tagCMBuyDailyActionCnt();
|
| | | pak.AddType = 1;
|
| | | pak.ActionID = (uint)config.RelatedID;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | |
|
| | | private void OnBuyTimes()
|
| | | {
|
| | | DailyQuestTimes dailyQuestTimes;
|
| | |
|
| | | var dayBuyTimes = 0;
|
| | |
|
| | | if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
| | | {
|
| | | dayBuyTimes = dailyQuestTimes.dayBuyTimes;
|
| | | }
|
| | |
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (dayBuyTimes >= dailyQuestOpenTime.DayBuyTimes)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_2");
|
| | | return;
|
| | | }
|
| | |
|
| | | if (!model.TryAddTimes())
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_1");
|
| | | return;
|
| | | }
|
| | |
|
| | | if (PlayerDatas.Instance.baseData.diamond < dailyQuestOpenTime.BuyNeedMoney)
|
| | | {
|
| | |
| | | pak.ActionID = (uint)config.RelatedID;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | |
|
| | | private void DailyQuestProgressUpdateEvent(int id)
|
| | | {
|
| | | Display();
|
| | |
|
| | | }
|
| | | private void GotoRecharge()
|
| | | {
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|