Ver código fonte

开服活动抽奖增加新活动 补充

huangxiaoyue 1 ano atrás
pai
commit
7c7e09cf04

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/LimitedTimeGiftBoxDataManager.cs

@@ -89,7 +89,7 @@ namespace GFGGame
                 if (activityInfo.EndTime >= TimeInfo.Instance.ServerNow())
                 {
                     ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.ActivityId);
-                    //判断是否是类型4的数据
+                    //判断是否是类型16的数据
                     if (activityOpenCfg.type == ActivityType.LuckyDiscount)
                     {
                         FillData(_ltgGbItemData16, activityOpenCfg.paramsArr[0], activityInfo.EndTime);

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Data/LuckyBoxDataManager.cs

@@ -18,6 +18,8 @@ namespace GFGGame
 
         public bool CHECK_TIPS_OPEN = false; //提示弹窗是否打开
 
+        public bool OPEN_LUCKY_DISCONT = false; //抽奖满20次幸运折扣弹窗是否打开
+
         private List<ItemData> _rewardsList;//当前奖励,每次抽奖后刷新
         private Dictionary<int, ItemData> _firstRewardsList = new Dictionary<int, ItemData>();//首次获得的奖励
         private Dictionary<int, List<LuckyBoxBonusData>> _dicShowList = new Dictionary<int, List<LuckyBoxBonusData>>();

+ 11 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/LuckyBoxSProxy.cs

@@ -41,12 +41,22 @@ namespace GFGGame
                     ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(response.ActivityId);
                     if (activityOpenCfg != null && activityOpenCfg.paramsArr[0] == luckyBoxId)
                     {
+                        
                         var activityCfg = ActivityOpenCfgArray.Instance.GetCfg(response.ActivityId);
                         if (activityCfg.type == ConstLimitTimeActivityType.ActLimitLuckyBox)
                             ActivityDataManager.Instance.allPlayTimes += response.Times;
-                        else if(activityCfg.type == ConstLimitTimeActivityType.ActLimitTsy)
+                        else if (activityCfg.type == ConstLimitTimeActivityType.ActLimitTsy)
                             ActivityDataManager.Instance.allTsyPlayTimes += response.Times;
+                        else if (activityCfg.type == ConstLimitTimeActivityType.ActLimitStlyc)
+                        {
+                            if (ActivityDataManager.Instance.allLimitStlycTimes < 20 && (ActivityDataManager.Instance.allLimitStlycTimes + response.Times) >= 20)
+                            {
+                                LuckyBoxDataManager.Instance.OPEN_LUCKY_DISCONT = true;
+                            }
+                            ActivityDataManager.Instance.allLimitStlycTimes += response.Times;
+                        }
                     }
+
                     LuckyBoxDataManager.Instance.times = response.Times;
                     // LuckyBoxDataManager.Instance.luckyBoxIndex = response.LuckyBoxId;
                     LuckyBoxDataManager.Instance.RewardList = ItemUtil.CreateItemDataList(response.bonusList);

+ 56 - 57
GameClient/Assets/Game/HotUpdate/Views/EnduringGiftBox/RushSaleGiftBoxView.cs

@@ -118,87 +118,86 @@ namespace GFGGame
                     LimitedTimeGiftBoxDataManager.Instance.SetIsOpenMeiRiTeHui();
                 }
             }
+            else if (_type == ActivityType.LuckyDiscount)
+            {
+                //16开服活动摘星里面的 幸运折扣
+                var data16 = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData16
+                    .FirstOrDefault(a => a.IndexType == 1);
+                _pageIndex = data16 == null ? 0 : LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5.IndexOf(data16);
+                if (!LimitedTimeGiftBoxDataManager.Instance.IsOpenMeiRiTeHui)
+                {
+                    LimitedTimeGiftBoxDataManager.Instance.SetIsOpenMeiRiTeHui();
+                }
+            }
         }
 
         public void UpTime()
         {
-            long endTime = 0;
-            if (_type == ActivityType.LuckyDiscount)
-            {
-                var activityOpenCfgs = ActivityOpenCfgArray.Instance.GetCfgsBytype(ConstLimitTimeActivityType.LuckyDiscount);
-                endTime = activityOpenCfgs[0].lastTime;
-            }
-            else
-            {
-                //筛选一条数据用来界面渲染
-                var list = _type == ActivityType.XSLB2
-                ? LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4
-                : LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5;
+            List<LimitedTimeGiftBoxItemYxData> list = new List<LimitedTimeGiftBoxItemYxData>();
+            //筛选一条数据用来界面渲染
+            if (_type == ActivityType.XSLB2)
+                list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4;
+            else if (_type == ActivityType.XSLB3)
+                list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5;
+            else if(_type == ActivityType.LuckyDiscount)
+                list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData16;
 
-                list = list.Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
+            list = list.Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
                 if (list.Count == 0)
                 {
                     PromptController.Instance.ShowFloatTextPrompt("活动已结束");
                     this.Hide();
                     return;
                 }
-                endTime = list[0].EndTime;
-            }
-            _ui.m_txtBoxResidueTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), endTime);
+            _ui.m_txtBoxResidueTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime);
         }
 
         private void UpdateView(ListUtil.NavigateType type)
         {
-            int shopCfgId = 0;
-            long endTime = 0;
-            if (_type == ActivityType.LuckyDiscount)
+            List<LimitedTimeGiftBoxItemYxData> list = new List<LimitedTimeGiftBoxItemYxData>();
+            if(_type == ActivityType.XSLB2) {
+                _ui.m_showType.selectedIndex = 0;
+                list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4;
+            }
+            else if (_type == ActivityType.XSLB3)
+            {
+                _ui.m_showType.selectedIndex = 0;
+                list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5;
+            }
+            else if(_type == ActivityType.LuckyDiscount)
             {
                 _ui.m_showType.selectedIndex = 1;
-                var activityOpenCfgs = ActivityOpenCfgArray.Instance.GetCfgsBytype(ConstLimitTimeActivityType.LuckyDiscount);
-                shopCfgId = activityOpenCfgs[0].paramsArr[0];
-                endTime = activityOpenCfgs[0].lastTime;
+                list = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData16;
             }
-            else {
-                _ui.m_showType.selectedIndex = 0;
-                var list = _type == ActivityType.XSLB2
-                ? LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4
-                : LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5;
 
-                list = list.Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
-                if (list.Count == 0)
-                {
-                    PromptController.Instance.ShowFloatTextPrompt("活动已结束");
-                    this.Hide();
-                    return;
-                }
-
-                var data = ListUtil.Navigate(list, type, _pageIndex, out int newIndex);
-                _pageIndex = newIndex;
-
-                _ui.m_btnUp.visible = true;
-                _ui.m_btnNext.visible = true;
-                if (list.Count == 1)
+            if (list.Count == 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("活动已结束");
+                this.Hide();
+                return;
+            }
+            var data = ListUtil.Navigate(list, type, _pageIndex, out int newIndex);
+            _pageIndex = newIndex;
+            _ui.m_btnUp.visible = true;
+            _ui.m_btnNext.visible = true;
+            if (list.Count == 1)
+            {
+                _ui.m_btnUp.visible = false;
+                _ui.m_btnNext.visible = false;
+            }
+            else
+            {
+                //翻页翻到了最后一条数据
+                if (list.Count == _pageIndex + 1)
                 {
-                    _ui.m_btnUp.visible = false;
                     _ui.m_btnNext.visible = false;
                 }
-                else
+                if (_pageIndex == 0)
                 {
-                    //翻页翻到了最后一条数据
-                    if (list.Count == _pageIndex + 1)
-                    {
-                        _ui.m_btnNext.visible = false;
-                    }
-
-                    if (_pageIndex == 0)
-                    {
-                        _ui.m_btnUp.visible = false;
-                    }
+                    _ui.m_btnUp.visible = false;
                 }
-                shopCfgId = data.ShopCfgId;
-                endTime = list[0].EndTime;
             }
-            var shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId);
+            var shopCfg = ShopCfgArray.Instance.GetCfg(data.ShopCfgId);
             var boxItemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.itemId);
             var remainBuyNum = shopCfg.maxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id);
 
@@ -275,7 +274,7 @@ namespace GFGGame
 
             _ui.m_txtBoxItemName.text = shopCfg.itemName;
             //这个B时间需要在一个地方统一处理,然后广播事件,不然可能会存在不同步的问题,最后做
-            _ui.m_txtBoxResidueTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), endTime);
+            _ui.m_txtBoxResidueTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime);
             _ui.m_txtUrc.text = mTxtUrc;
             _ui.m_comDiscount.m_txtDiscountNum.text =
                 NumberUtil.CalculateDiscount(shopCfg.originalPrice, shopCfg.price);

+ 22 - 10
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxActivityView.cs

@@ -74,7 +74,7 @@ namespace GFGGame
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.ACTIVITY_LUCKY_BOX, UpdateView);
             EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
-
+            EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpLuckyDiscount);
         }
         protected override void OnShown()
         {
@@ -89,6 +89,7 @@ namespace GFGGame
             LuckyBoxDataManager.Instance.currentBoxId = _luckyBoxCfg.id;
             LuckyBoxDataManager.Instance.luckyBoxIndex = 2;
             UpGiftBox();
+            UpLuckyDiscount();
             Timers.inst.Add(1, 0, UpdateTime);
             UpdateListItemData();
             UpdateRedDot();
@@ -185,6 +186,24 @@ namespace GFGGame
             }
             UI_ComBox.ProxyEnd();
         }
+
+        private void UpLuckyDiscount()
+        {
+            var activityOpenCfgs = ActivityOpenCfgArray.Instance.GetCfgsBytype(ConstLimitTimeActivityType.LuckyDiscount);
+            var shopCfgId = activityOpenCfgs[0].paramsArr[0];
+            var shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId);
+            var remainBuyNum = shopCfg.maxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id);
+            var activityInfoByTypeList =
+                ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.LuckyDiscount);
+            var list = activityInfoByTypeList
+                .Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
+            _ui.m_btnLuckyDiscount.visible = ActivityDataManager.Instance.allLimitStlycTimes >= 20 && remainBuyNum != 0 && list.Count > 0;
+            if (LuckyBoxDataManager.Instance.OPEN_LUCKY_DISCONT && _ui.m_btnLuckyDiscount.visible) {
+                LuckyBoxDataManager.Instance.OPEN_LUCKY_DISCONT = false;
+                ViewManager.Show<RushSaleGiftBoxView>(new object[] { ActivityType.LuckyDiscount, this.viewData });
+            }
+        }
+
         private void UpGiftBox()
         {
             var activityInfoByTypeList = ActivityGlobalDataManager.Instance.GetActivityInfoByTypeAndID(ActivityType.XSLB3, _activityId);
@@ -302,15 +321,7 @@ namespace GFGGame
         //幸运折扣按钮点击执行方法
         private void OnClickBtnLuckyDiscount()
         {
-            //var activityInfoByTypeList =
-            //    ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.LuckyDiscount);
-
-            //var list = activityInfoByTypeList
-            //    .Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList();
-            //if (list.Count == 0)
-            //    PromptController.Instance.ShowFloatTextPrompt("活动已结束");
-            //else
-                ViewManager.Show<RushSaleGiftBoxView>(new object[] { ActivityType.LuckyDiscount, this.viewData });
+            ViewManager.Show<RushSaleGiftBoxView>(new object[] { ActivityType.LuckyDiscount, this.viewData });
         }
         
         protected override void OnHide()
@@ -326,6 +337,7 @@ namespace GFGGame
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.ACTIVITY_LUCKY_BOX, UpdateView);
             EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
+            EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpLuckyDiscount);
         }
 
         private void OnClickBtnBack()

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxBonusShowView.cs

@@ -78,6 +78,7 @@ namespace GFGGame
             _ui = UI_LuckBoxBonusShowUI.Create();
             this.viewCom = _ui.target;
             isfullScreen = true;
+            isReturnView = true;
 
             _ui.m_loaBg.onClick.Add(OnClickLoaBg);
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("zx_bg");