Explorar o código

feat 通行证任务修改

Jae %!s(int64=2) %!d(string=hai) anos
pai
achega
7c8ca6a40d

+ 38 - 9
GameClient/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs

@@ -64,7 +64,6 @@ namespace GFGGame
                     let state = BattlePassTaskDataManager.Instance.GetRewardState(battlePassCfg.level)
                     where battlePassCfg.level != 0 && state != 2
                     select battlePassCfg.level).FirstOrDefault();
-            // var index = _ui.m_RewardList.ItemIndexToChildIndex(minLevel - 1);
             _ui.m_RewardList.ScrollToView(minLevel - 1);
         }
 
@@ -73,13 +72,30 @@ namespace GFGGame
             base.AddEventListener();
             //监听通行证等级变化
             EventAgent.AddEventListener(ConstMessage.BATTLEPASS_LEVEL_CHANGE, SetBattlePassLevel);
-            EventAgent.AddEventListener(ConstMessage.NOTICE_PASSPORT_OPEN, SetOpenBattlePassBtnStatus);
+            EventAgent.AddEventListener(ConstMessage.NOTICE_PASSPORT_OPEN, OnBattlePassOpen);
+            EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, OnItemChange);
         }
 
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.BATTLEPASS_LEVEL_CHANGE, SetBattlePassLevel);
+            EventAgent.RemoveEventListener(ConstMessage.NOTICE_PASSPORT_OPEN, OnBattlePassOpen);
+            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, OnItemChange);
+        }
+
+        private void OnBattlePassOpen()
+        {
+            SetOpenBattlePassBtnStatus();
+            FreshReward();
+        }
+
+        private void OnItemChange(EventContext eventContext)
+        {
+            var itemId = (int)eventContext.data;
+            if (itemId != ConstItemID.BATTLE_PASS_CURRENCY) return;
+            //刷新积分列表
+            SetExpProcess();
         }
 
 
@@ -127,10 +143,9 @@ namespace GFGGame
             {
                 var isBuy = BattlePassTaskDataManager.Instance.GetIsBuy();
                 if (isBuy) return;
-                ViewManager.Show<BuyBattlePassLevelView>(null,
+                ViewManager.Show<OpenBattlePassView>(null,
                     new object[] { typeof(BattlePassTaskView).FullName, null });
             });
-            SetBattlePassLevel();
             if (!get) return;
             SetBattlePassLevel();
         }
@@ -250,9 +265,16 @@ namespace GFGGame
             //获取玩家当前的通行证等级
             var dataManager = BattlePassTaskDataManager.Instance;
             var battlePassLevel = dataManager.GetBattlePassLevel();
-            var seasonId = dataManager.GetSeasonId();
             var uiExpProcess = _ui.m_LevelProcess;
             uiExpProcess.m_Level.text = battlePassLevel.ToString();
+            SetExpProcess();
+        }
+
+        private void SetExpProcess()
+        {
+            var dataManager = BattlePassTaskDataManager.Instance;
+            var seasonId = dataManager.GetSeasonId();
+            var uiExpProcess = _ui.m_LevelProcess;
             //获取当前等级的经验
             var battlePassCfg =
                 BattlePassCfgArray.Instance.GetCfgByidAndlevel(seasonId, dataManager.GetBattlePassLevel());
@@ -269,13 +291,20 @@ namespace GFGGame
                 uiExpProcess.target.value = dataManager.GetBattlePassExp();
                 uiExpProcess.m_NumProcess.SetVar("value", dataManager.GetBattlePassExp().ToString())
                     .SetVar("maxValue", battlePassCfg.value.ToString()).FlushVars();
-                //刷新奖励列表
-                _rewardCfgs = new List<BattlePassCfg>(BattlePassCfgArray.Instance.GetCfgsByid(seasonId));
-                //去掉第一个为0的配置
-                _ui.m_RewardList.numItems = _rewardCfgs.Count - 1;
+                FreshReward();
             }
         }
 
+        private void FreshReward()
+        {
+            //刷新奖励列表
+            _rewardCfgs =
+                new List<BattlePassCfg>(
+                    BattlePassCfgArray.Instance.GetCfgsByid(BattlePassTaskDataManager.Instance.GetSeasonId()));
+            //去掉第一个为0的配置
+            _ui.m_RewardList.numItems = _rewardCfgs.Count - 1;
+        }
+
         private void SetOpenBattlePassBtnStatus()
         {
             //通行证是否购买