using System.Collections.Generic; using ET; using GFGGame; namespace ET { public class NoticeAddSkill : AMHandler { protected override async ETTask Run(Session session, S2C_SyncAddSkill message) { Dictionary> skillDatas = new Dictionary>(); for (int i = 0; i < message.SkillInfos.Count; i++) { int skillType = message.SkillInfos[i].SkillType; int skillId = message.SkillInfos[i].SkillId; if (!skillDatas.ContainsKey(skillType)) { skillDatas[skillType] = new List(); } skillDatas[skillType].Add(skillId); } foreach (int key in skillDatas.Keys) { switch (key) { case SkillType.LeagueSkill: SkillDataManager.Instance.UpdateSkillDatas(SkillType.LeagueSkill, skillDatas[key]); break; } } EventAgent.DispatchEvent(ConstMessage.ACTIVE_SKILL); await ETTask.CompletedTask; } } } namespace GFGGame { public static class SkillSProxy { public static async ETTask ReqUpgradeCardSkill(int cardId, int skillId) { M2C_UpgradeCardSkill response = null; response = (M2C_UpgradeCardSkill)await MessageHelper.SendToServer(new C2M_UpgradeCardSkill() { CardId = cardId, SkillId = skillId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { SkillDataManager.Instance.UpdateCardSkill(response.CardId, response.SkillId, response.SkillLvl); EventAgent.DispatchEvent(ConstMessage.CARD_UP_SKILL); return true; } } return false; } public static async ETTask ReqGetSkillList(int skillType) { S2C_GetSkillList response = null; response = (S2C_GetSkillList)await MessageHelper.SendToServer(new C2S_GetSkillList() { SKillType = skillType }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { switch (skillType) { case SkillType.LeagueSkill: SkillDataManager.Instance.UpdateSkillDatas(SkillType.LeagueSkill, response.SkillId); break; } return true; } } return false; } public static async ETTask ReqActiveSkill(int skillType, int skillId) { S2C_ActiveSkill response = null; response = (S2C_ActiveSkill)await MessageHelper.SendToServer(new C2S_ActiveSkill() { SkillType = skillType, SkillId = skillId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { switch (skillType) { case SkillType.LeagueSkill: SkillDataManager.Instance.UpdateSkillDatas(SkillType.LeagueSkill, new List() { skillId }); break; } return true; } } return false; } } }