|
@@ -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 });
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|