using System.Collections.Generic; using ET; using GFGGame; namespace ET { public class M2C_SyncBattlePassHandler : AMHandler { 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 { 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 { 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.Type; //获取通行证奖励配置 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(); 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(); levels.UnionWith(normalLevels); levels.UnionWith(superLevels); var bonusList = new List(); 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) { var response = (S2C_BuyBattlePassLevel)await MessageHelper.SendToServer(new C2S_BuyBattlePassLevel { UpLevel = upLevel }); return response is { Error: ErrorCode.ERR_Success }; } } }