| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | using System;using System.Collections.Generic;using ET;using GFGGame;using Hutool;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);            battlePassTaskDataManager.initedFromServer = true;            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 (MathUtil.isBitSet(responseGetType, 1))            {                bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusNormalArr));                BattlePassTaskDataManager.Instance.AddNormalReward(level);            }            if (MathUtil.isBitSet(responseGetType, 2))            {                bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusSuperArr));                BattlePassTaskDataManager.Instance.AddSuperReward(level);            }            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);            EventAgent.DispatchEvent(ConstMessage.STORE_BROCADE_WEAV_RECEIVE);            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);                }            }            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);            EventAgent.DispatchEvent(ConstMessage.STORE_BROCADE_WEAV_RECEIVE);            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 };        }    }}
 |