|
@@ -0,0 +1,264 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using ET;
|
|
|
+using FairyGUI;
|
|
|
+using UI.Store;
|
|
|
+using UI.CommonGame;
|
|
|
+using UnityEngine;
|
|
|
+using static GFGGame.ShopSProxy;
|
|
|
+
|
|
|
+namespace GFGGame
|
|
|
+{
|
|
|
+ class StoreSummerGiftView : BaseWindow
|
|
|
+ {
|
|
|
+ private UI_StoreSummerGiftUI _ui;
|
|
|
+
|
|
|
+ private List<CoolDownCfg> _rewardCfgs;
|
|
|
+ private ActivityOpenCfg activityOpenCfg;
|
|
|
+
|
|
|
+ public override void Dispose()
|
|
|
+ {
|
|
|
+ if (_ui != null)
|
|
|
+ {
|
|
|
+ _ui.Dispose();
|
|
|
+ _ui = null;
|
|
|
+ }
|
|
|
+ base.Dispose();
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override void OnInit()
|
|
|
+ {
|
|
|
+ base.OnInit();
|
|
|
+ packageName = UI_StoreSummerGiftUI.PACKAGE_NAME;
|
|
|
+ _ui = UI_StoreSummerGiftUI.Create();
|
|
|
+ viewCom = _ui.target;
|
|
|
+ isfullScreen = true;
|
|
|
+ clickBlankToClose = false;
|
|
|
+
|
|
|
+ _ui.m_btnOpen.onClick.Add(OnBtnOpenClick);
|
|
|
+ _ui.m_btnGetAll.onClick.Add(OnBtnGetAllClick);
|
|
|
+ _ui.m_RewardList.itemRenderer = ListBoxRewardItemRender;
|
|
|
+
|
|
|
+ //_ui.m_tip.onClick.Add(RuleController.ShowRuleView);
|
|
|
+ //_ui.m_tip.data = 300012;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override void OnHide()
|
|
|
+ {
|
|
|
+ base.OnHide();
|
|
|
+ Timers.inst.Remove(UpdateTime);
|
|
|
+ }
|
|
|
+ protected override void OnShown()
|
|
|
+ {
|
|
|
+ base.OnShown();
|
|
|
+ activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(ActivityAfuGiftDataManager.Instance.SummerActivityID);
|
|
|
+ FreshReward();
|
|
|
+ Timers.inst.AddUpdate(UpdateTime);
|
|
|
+ }
|
|
|
+ protected override void AddEventListener()
|
|
|
+ {
|
|
|
+ base.AddEventListener();
|
|
|
+ //监听通行证等级变化
|
|
|
+ EventAgent.AddEventListener(ConstMessage.SHOP_BUY, SetBuyBtnStatus);
|
|
|
+ EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, FreshReward);
|
|
|
+ }
|
|
|
+ protected override void RemoveEventListener()
|
|
|
+ {
|
|
|
+ base.RemoveEventListener();
|
|
|
+ EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, SetBuyBtnStatus);
|
|
|
+ EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, FreshReward);
|
|
|
+ }
|
|
|
+ //购买礼包
|
|
|
+ private async void OnBtnOpenClick(EventContext context)
|
|
|
+ {
|
|
|
+ if(GetBuyStatus())
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ await ReqShopBuy(activityOpenCfg.paramsArr[0]);
|
|
|
+ await ActivityAfuGiftSProxy.GetSummerGiftInfo();
|
|
|
+ _ui.m_RewardList.numItems = _rewardCfgs.Count;
|
|
|
+ }
|
|
|
+
|
|
|
+ //领取全部奖励
|
|
|
+ private async void OnBtnGetAllClick(EventContext context)
|
|
|
+ {
|
|
|
+ if(!ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState())
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ await ActivityAfuGiftSProxy.ReqGetSummerGiftAllReward();
|
|
|
+ _ui.m_RewardList.numItems = _rewardCfgs.Count;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ListBoxRewardItemRender(int index, GObject obj)
|
|
|
+ {
|
|
|
+ var item = UI_BrocadeWeavRewardItem.Proxy(obj);
|
|
|
+ var level = index;
|
|
|
+ var battlePassCfg = _rewardCfgs[level];
|
|
|
+ item.m_Level.text = (index + 1).ToString();
|
|
|
+ //设置奖励
|
|
|
+ var bonusNormalArr = battlePassCfg.bonusFreeArr;
|
|
|
+ if (bonusNormalArr != null && bonusNormalArr.Length > 0)
|
|
|
+ {
|
|
|
+ item.m_NormalReward.visible = true;
|
|
|
+ ItemCfg itemNormal = ItemCfgArray.Instance.GetCfg(bonusNormalArr[0][0]);
|
|
|
+ UI_ComItem comItem = UI_ComItem.Proxy(item.m_NormalReward);
|
|
|
+ comItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemNormal);
|
|
|
+ comItem.m_txtCount.text = bonusNormalArr[0][1].ToString();
|
|
|
+ comItem.m_QualityType.selectedIndex = itemNormal.rarity - 1;
|
|
|
+ if (index <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0].Count)
|
|
|
+ {
|
|
|
+ if (ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0][index] == 2)
|
|
|
+ {
|
|
|
+ comItem.m_grpGot.visible = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ comItem.m_grpGot.visible = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ comItem.m_grpGot.visible = false;
|
|
|
+ }
|
|
|
+ if (comItem.target.data == null)
|
|
|
+ {
|
|
|
+ comItem.target.onClick.Add(OnItemClick);
|
|
|
+ }
|
|
|
+ comItem.target.data = new List<int>() { 0, index, bonusNormalArr[0][0] };
|
|
|
+ if (index <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0].Count)
|
|
|
+ {
|
|
|
+ RedDotController.Instance.SetComRedDot(item.m_NormalReward, ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[0][index] == 1, "", -12, 24);
|
|
|
+ }
|
|
|
+ UI_ComItem.ProxyEnd();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ item.m_NormalReward.data = null;
|
|
|
+ item.m_NormalReward.visible = false;
|
|
|
+ }
|
|
|
+ if (item.m_RewardList.data == null)
|
|
|
+ {
|
|
|
+ item.m_RewardList.itemRenderer = SpecialRewardRender;
|
|
|
+ }
|
|
|
+ item.m_RewardList.data = _rewardCfgs[index];
|
|
|
+ item.m_RewardList.numItems = battlePassCfg.bonusPayArr.Length;
|
|
|
+
|
|
|
+ UI_BrocadeWeavRewardItem.ProxyEnd();
|
|
|
+ }
|
|
|
+ private void SpecialRewardRender(int index, GObject obj)
|
|
|
+ {
|
|
|
+ var keyValuePair = (CoolDownCfg)obj.parent.data;
|
|
|
+ var itemInfo = keyValuePair.bonusPayArr;
|
|
|
+ int day = keyValuePair.num - 1;
|
|
|
+ ItemCfg itemNormal = ItemCfgArray.Instance.GetCfg(itemInfo[index][0]);
|
|
|
+ UI_ComItem comItem = UI_ComItem.Proxy(obj);
|
|
|
+ comItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemNormal);
|
|
|
+ comItem.m_txtCount.text = itemInfo[index][1].ToString();
|
|
|
+ comItem.m_QualityType.selectedIndex = itemNormal.rarity - 1;
|
|
|
+ if (day <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1].Count)
|
|
|
+ {
|
|
|
+ if (ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1][day] == 2)
|
|
|
+ {
|
|
|
+ comItem.m_grpGot.visible = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ comItem.m_grpGot.visible = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (comItem.target.data == null)
|
|
|
+ {
|
|
|
+ comItem.target.onClick.Add(OnItemClick);
|
|
|
+ }
|
|
|
+ comItem.target.data = new List<int>() {1, day, itemInfo[index][0] };
|
|
|
+ if (day <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1].Count)
|
|
|
+ {
|
|
|
+ RedDotController.Instance.SetComRedDot(comItem.target, ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[1][day] == 1, "", -12, 24);
|
|
|
+ }
|
|
|
+ UI_ComItem.ProxyEnd();
|
|
|
+ }
|
|
|
+ private void OnItemClick(EventContext eventContext)
|
|
|
+ {
|
|
|
+ GObject sender = eventContext.sender as GObject;
|
|
|
+ List<int> info = (List<int>)sender.data;
|
|
|
+ if(info[1] <= ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[info[0]].Count)
|
|
|
+ {
|
|
|
+ if (ActivityAfuGiftDataManager.Instance.SummerGiftRewardState[info[0]][info[1]] == 1)
|
|
|
+ {
|
|
|
+ if(info[0] == 0)
|
|
|
+ {
|
|
|
+ ActivityAfuGiftSProxy.ReqGetSummerGiftReward(false,info[1] + 1).Coroutine();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ActivityAfuGiftSProxy.ReqGetSummerGiftReward(true,info[1] + 1).Coroutine();
|
|
|
+ }
|
|
|
+ _ui.m_RewardList.numItems = _rewardCfgs.Count;
|
|
|
+ RedDotController.Instance.SetComRedDot(_ui.m_btnGetAll, ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState(), "");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ GoodsItemTipsController.ShowItemTips(info[2]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private void UpdateTime(object param)
|
|
|
+ {
|
|
|
+ long curTime = TimeHelper.ServerNow();
|
|
|
+ var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(ActivityAfuGiftDataManager.Instance.SummerActivityID);
|
|
|
+ if (activityInfo != null)
|
|
|
+ {
|
|
|
+ long endTime = activityInfo.EndTime;
|
|
|
+ _ui.m_LeftTime.text = TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _ui.m_LeftTime.text = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private void FreshReward()
|
|
|
+ {
|
|
|
+ //刷新奖励列表
|
|
|
+ _rewardCfgs = CoolDownCfgArray.Instance.dataArray.ToList();
|
|
|
+ //去掉第一个为0的配置
|
|
|
+ _ui.m_RewardList.numItems = _rewardCfgs.Count;
|
|
|
+ SetBuyBtnStatus();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SetBuyBtnStatus(EventContext context = null)
|
|
|
+ {
|
|
|
+ //通行证是否购买
|
|
|
+ ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(activityOpenCfg.paramsArr[0]);
|
|
|
+ int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id);
|
|
|
+ if (shopCfg.maxBuyNum == 0 || buyNum < shopCfg.maxBuyNum)
|
|
|
+ {
|
|
|
+ _ui.m_btnOpen.text = "¥ 68 解 锁";
|
|
|
+ _ui.m_btnGetAll.visible = false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _ui.m_btnOpen.text = "已解锁";
|
|
|
+ _ui.m_btnGetAll.visible = true;
|
|
|
+ }
|
|
|
+ RedDotController.Instance.SetComRedDot(_ui.m_btnGetAll, ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState(), "");
|
|
|
+ }
|
|
|
+ private bool GetBuyStatus()
|
|
|
+ {
|
|
|
+ //通行证是否购买
|
|
|
+ ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(activityOpenCfg.paramsArr[0]);
|
|
|
+ int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id);
|
|
|
+ if (shopCfg.maxBuyNum == 0 || buyNum < shopCfg.maxBuyNum)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|