| 
					
				 | 
			
			
				@@ -0,0 +1,139 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Linq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using ET; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using GFGGame; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace ET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class M2C_SyncBattlePassHandler : AMHandler<M2C_SyncBattlePass> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected override async ETTask Run(Session session, M2C_SyncBattlePass message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (battlePassTaskDataManager.GetSeasonId() != message.SeasonId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            battlePassTaskDataManager.SetIsBuy(message.IsBuy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //TODO 通知UI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            await ETTask.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class M2C_SyncBattlePassLevelHandler : AMHandler<M2C_SyncBattlePassLevel> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected override async ETTask Run(Session session, M2C_SyncBattlePassLevel message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach (var level in message.Level) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                battlePassTaskDataManager.AddNormalReward(level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach (var superLevel in message.SuperLevel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                battlePassTaskDataManager.AddSuperReward(superLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //TODO 通知UI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            await ETTask.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //M2C_SyncBattlePassSeasonId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class M2C_SyncBattlePassSeasonIdHandler : AMHandler<M2C_SyncBattlePassSeasonId> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected override async ETTask Run(Session session, M2C_SyncBattlePassSeasonId message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            battlePassTaskDataManager.SetSeasonId(message.SeasonId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //TODO 通知UI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            await ETTask.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static class BattlePassTaskSProxy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //C2S_GetBattlePassInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static async ETTask GetBattlePassInfo() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var response = (S2C_GetBattlePassInfo)await MessageHelper.SendToServer(new C2S_GetBattlePassInfo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!(response is { Error: ErrorCode.ERR_Success })) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            battlePassTaskDataManager.SetIsBuy(response.IsBuy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            battlePassTaskDataManager.SetSeasonId(response.SeasonId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach (var level in response.RewardList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                battlePassTaskDataManager.AddNormalReward(level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach (var superLevel in response.SuperRewardList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                battlePassTaskDataManager.AddSuperReward(superLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //C2S_GetBattlePassReward 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static async ETTask GetBattlePassReward(int level) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var response = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (S2C_GetBattlePassReward)await MessageHelper.SendToServer(new C2S_GetBattlePassReward { Id = level }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!(response is { Error: ErrorCode.ERR_Success })) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var responseGetType = response.GetType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //获取通行证奖励配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var passCfg = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BattlePassCfgArray.Instance.GetCfgByidAndlevel(BattlePassTaskDataManager.Instance.GetSeasonId(), level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (passCfg == null) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var passCfgBonusNormalArr = passCfg.bonusNormalArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var passCfgBonusSuperArr = passCfg.bonusSpecialArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var bonusList = new List<ItemData>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (MathHelper.isBitSet(responseGetType, 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusNormalArr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (MathHelper.isBitSet(responseGetType, 2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusSuperArr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BonusController.TryShowBonusList(bonusList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //C2S_GetAllBattlePassReward 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static async ETTask GetAllBattlePassReward() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var response = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (S2C_GetAllBattlePassReward)await MessageHelper.SendToServer(new C2S_GetAllBattlePassReward()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!(response is { Error: ErrorCode.ERR_Success })) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var normalLevels = response.Levels; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var superLevels = response.SuperLevels; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var levels = new HashSet<int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            levels.UnionWith(normalLevels); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            levels.UnionWith(superLevels); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var bonusList = new List<ItemData>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach (var level in levels) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //获取通行证奖励配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var passCfg = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BattlePassCfgArray.Instance.GetCfgByidAndlevel(BattlePassTaskDataManager.Instance.GetSeasonId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (normalLevels.Contains(level)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusNormalArr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (superLevels.Contains(level)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusSpecialArr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BonusController.TryShowBonusList(bonusList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //购买等级 C2S_BuyBattlePassLevel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static async ETTask BuyBattlePassLevel(int upLevel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ = (S2C_BuyBattlePassLevel)await MessageHelper.SendToServer(new C2S_BuyBattlePassLevel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { UpLevel = upLevel }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |