123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- using System;
- using System.Collections.Generic;
- 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);
- EventAgent.DispatchEvent(ConstMessage.NOTICE_PASSPORT_OPEN);
- EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
- 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);
- }
- EventAgent.DispatchEvent(ConstMessage.NOTICE_PASSPORT_LEVEL_CHANGE);
- 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);
- EventAgent.DispatchEvent(ConstMessage.NOTICE_PASSPORT_SEASON_CHANGE);
- 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<bool> GetBattlePassReward(int level)
- {
- var response =
- (S2C_GetBattlePassReward)await MessageHelper.SendToServer(new C2S_GetBattlePassReward { Id = level });
- if (!(response is { Error: ErrorCode.ERR_Success })) return false;
- var responseGetType = response.Type;
- //获取通行证奖励配置
- var passCfg =
- BattlePassCfgArray.Instance.GetCfgByidAndlevel(BattlePassTaskDataManager.Instance.GetSeasonId(), level);
- if (passCfg == null) return false;
- var passCfgBonusNormalArr = passCfg.bonusNormalArr;
- var passCfgBonusSuperArr = passCfg.bonusSpecialArr;
- var bonusList = new List<ItemData>();
- if (MathHelper.isBitSet(responseGetType, 1))
- {
- bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusNormalArr));
- BattlePassTaskDataManager.Instance.AddNormalReward(level);
- }
- if (MathHelper.isBitSet(responseGetType, 2))
- {
- bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusSuperArr));
- BattlePassTaskDataManager.Instance.AddSuperReward(level);
- }
- EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
- BonusController.TryShowBonusList(bonusList);
- return true;
- }
- //C2S_GetAllBattlePassReward
- public static async ETTask<bool> GetAllBattlePassReward(Action onSuccess = null)
- {
- var response =
- (S2C_GetAllBattlePassReward)await MessageHelper.SendToServer(new C2S_GetAllBattlePassReward());
- if (!(response is { Error: ErrorCode.ERR_Success })) return false;
- var normalLevels = response.Levels;
- var superLevels = response.SuperLevels;
- var levels = new HashSet<int>();
- levels.UnionWith(normalLevels);
- levels.UnionWith(superLevels);
- var bonusList = new List<ItemData>();
- var dataManager = BattlePassTaskDataManager.Instance;
- foreach (var level in levels)
- {
- //获取通行证奖励配置
- var passCfg =
- BattlePassCfgArray.Instance.GetCfgByidAndlevel(dataManager.GetSeasonId(),
- level);
- if (normalLevels.Contains(level))
- {
- bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusNormalArr));
- dataManager.AddNormalReward(level);
- }
- if (superLevels.Contains(level))
- {
- bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusSpecialArr));
- dataManager.AddSuperReward(level);
- }
- }
- BonusController.TryShowBonusList(bonusList, onSuccess);
- return true;
- }
- //购买等级 C2S_BuyBattlePassLevel
- public static async ETTask<bool> BuyBattlePassLevel(int upLevel)
- {
- var response = (S2C_BuyBattlePassLevel)await MessageHelper.SendToServer(new C2S_BuyBattlePassLevel
- { UpLevel = upLevel });
- return response is { Error: ErrorCode.ERR_Success };
- }
- }
- }
|