using System.Collections.Generic; using ET; using GFGGame; namespace ET { public class NoticeMailCountChanged : AMHandler { protected override async ETTask Run(Session session, Mail2C_MailCountChanged message) { MailDataManager.Instance.TotolCount = message.TotolCount; MailDataManager.Instance.UnreadCount = message.UnreadCount; EventAgent.DispatchEvent(ConstMessage.MAIL_CHANGE); await ETTask.CompletedTask; } } } namespace GFGGame { public static class MailSProxy { public static async ETTask ReqMailCount() { Mail2C_GetMailCount response = null; response = (Mail2C_GetMailCount)await MessageHelper.SendToServer(new C2Mail_GetMailCount()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { MailDataManager.Instance.TotolCount = response.TotolCount; MailDataManager.Instance.UnreadCount = response.UnreadCount; return true; } } return false; } public static async ETTask ReqMailList(int index, int count, bool sort, int page) { Mail2C_GetMailList response = null; response = (Mail2C_GetMailList)await MessageHelper.SendToServer(new C2Mail_GetMailList() { StartIndex = index, Count = count, NeedSort = sort }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { List mailInfos = new List(); for (int i = 0; i < response.mailList.Count; i++) { MailInfo mailInfo = new MailInfo(); mailInfo.mailId = response.mailList[i].MailId; mailInfo.title = response.mailList[i].Tile; mailInfo.timeSec = response.mailList[i].TimeSec * 1000; mailInfo.state = response.mailList[i].Status; mailInfo.hasItem = response.mailList[i].HasItem; // mailInfos.Add(mailInfo); MailDataManager.Instance.UpdateMainInfoDic(mailInfo.mailId, mailInfo); MailDataManager.Instance.UpdateMailIdList(page, mailInfo.mailId); } // MailDataManager.Instance.UpdateMailInfoList(mailInfos); return true; } } return false; } public static async ETTask ReqMailContent(long mailId) { Mail2C_GetMailData response = null; response = (Mail2C_GetMailData)await MessageHelper.SendToServer(new C2Mail_GetMailData() { RoleId = RoleDataManager.roleId, MailId = mailId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { MailDataManager.Instance.UnreadCount = response.UnreadCount; int state = response.Status; string content = response.MailDetail.Content; List itemDatas = ItemUtil.CreateItemDataList(response.MailDetail.ItemList); MailDataManager.Instance.UpdateMailContent(response.MailId, state, content, itemDatas); EventAgent.DispatchEvent(ConstMessage.MAIL_REFRESH); return true; } } return false; } public static async ETTask ReqMailReward(long mailId) { M2C_GetMailItems response = null; response = (M2C_GetMailItems)await MessageHelper.SendToServer(new C2M_GetMailItems() { MailId = mailId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { MailDataManager.Instance.UpdateMailContent(response.MailId, response.Status); List itemDatas = MailDataManager.Instance.GetMailInfoById(response.MailId).rewards; BonusController.TryShowBonusList(itemDatas); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); EventAgent.DispatchEvent(ConstMessage.MAIL_REWARD); return true; } } return false; } public static async ETTask ReqAllMailRewards() { M2C_GetAllMailItems response = null; response = (M2C_GetAllMailItems)await MessageHelper.SendToServer(new C2M_GetAllMailItems()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { MailDataManager.Instance.UnreadCount = response.UnreadCount; List itemDatas = ItemUtil.CreateItemDataList(response.ItemList); if (itemDatas.Count == 0) { PromptController.Instance.ShowFloatTextPrompt("暂无邮件可领取"); return false; } BonusController.TryShowBonusList(itemDatas); EventAgent.DispatchEvent(ConstMessage.MAIL_ALLREWARD); return true; } } return false; } public static async ETTask ReqDeleteMail(long mailId) { Mail2C_DeleteMail response = null; response = (Mail2C_DeleteMail)await MessageHelper.SendToServer(new C2Mail_DeleteMail() { RoleId = RoleDataManager.roleId, MailId = mailId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { MailDataManager.Instance.TotolCount = response.TotolCount; EventAgent.DispatchEvent(ConstMessage.MAIL_DELETE); return true; } } return false; } public static async ETTask ReqDeleteAllMails() { Mail2C_DeleteAllMails response = null; response = (Mail2C_DeleteAllMails)await MessageHelper.SendToServer(new C2Mail_DeleteAllMails() { RoleId = RoleDataManager.roleId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { if (response.DeleteCount > 0) { MailDataManager.Instance.TotolCount = MailDataManager.Instance.TotolCount - response.DeleteCount; EventAgent.DispatchEvent(ConstMessage.MAIL_AllDELETE); } return true; } } return false; } } }