using System; using System.Collections.Generic; using ET; namespace GFGGame { public class NoticeFieldWorkChange : AMHandler { protected override async ETTask Run(Session session, SC_RankChange message) { await ETTask.CompletedTask; } } public static class FieldWorkSproxy { //获取爬塔信息 public static async ETTask ReqFieldWorkInfos() { S2C_GetGetCimbingTowerInfo response = null; response = (S2C_GetGetCimbingTowerInfo)await MessageHelper.SendToServer(new C2S_GetCimbingTowerInfo()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FieldWorkDataManager.Instance.MaxLevelId = response.MaxLevelId; FieldWorkDataManager.Instance.Tag = response.WeekTags ; FieldWorkDataManager.Instance.DressupList.Clear(); FieldWorkDataManager.Instance.HistoryDressupList = response.WeekUserItems; FieldWorkDataManager.Instance.CardAbrasionInfoList = response.CardAbrasionInfoList; FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Clear(); foreach (var item in response.CimbingTowerLevelInfoList) { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(item.LevelId,item); } AddDressup(response.EquipAIds, 0, 0); AddDressup(response.EquipBIds, 0, 1); AddDressup(response.EquipCIds, 0, 2); EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE); } } } public static void AddDressup(List itemList,int scoreType,int i) { FightData roleData = GetFightRoleData(itemList, FieldWorkDataManager.Instance.roleInfo, scoreType); roleData.leagueSkillScore = FieldWorkDataManager.Instance.GetAllSkillScore(scoreType); FightDataManager.Instance.SetItemScoreList(roleData); ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType); ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData); FieldWorkDataManager.Instance.DressupList.Add(roleData); } //更换搭配 public static async ETTask ReqChangeFieldWorkDressup() { List> dress = new List>(); dress = FieldWorkDataManager.Instance.GetDressAndCard(); S2C_CimbingTowerSaveCollocation response = null; response = (S2C_CimbingTowerSaveCollocation)await MessageHelper.SendToServer(new C2S_CimbingTowerSaveCollocation() { EquipAIds = dress[0], EquipBIds = dress[1], EquipCIds = dress[2], }) ; if (response != null) { if (response.Error == ErrorCode.ERR_Success) { return true; } } return false; } //更换单个搭配 public static async ETTask ReqChangeFieldWorkDressupOne(int index,int cardId ,List dressList) { List dress = new List(); dress = dressList; dress.Add(cardId); List> dressAll = new List>(); dressAll = FieldWorkDataManager.Instance.GetDressAndCard(); dressAll[index] = dress; S2C_CimbingTowerSaveCollocation response = null; response = (S2C_CimbingTowerSaveCollocation)await MessageHelper.SendToServer(new C2S_CimbingTowerSaveCollocation() { EquipAIds = dressAll[0], EquipBIds = dressAll[1], EquipCIds = dressAll[2], }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { return true; } } return false; } //关卡挑战 public static async ETTask ReqFieldWorkFight(int levelId) { List> dress = new List>(); dress = FieldWorkDataManager.Instance.GetDressAndCard(); S2C_CimbingTowerFightLevel response = null; response = (S2C_CimbingTowerFightLevel)await MessageHelper.SendToServer(new C2S_CimbingTowerFightLevel() { LevelId = levelId, FightScoreList = FieldWorkDataManager.Instance.myScore, EquipAIds = dress[0], EquipBIds = dress[1], EquipCIds = dress[2], }) ; if (response != null) { FieldWorkDataManager.Instance.CardAbrasionInfoList = response.CardAbrasionInfoList; if (response.Error == ErrorCode.ERR_Success) { FieldWorkDataManager.Instance.MaxLevelId = response.MaxLevelId; FieldWorkDataManager.Instance.HistoryDressupList = response.WeekUserItems; if (response.CimbingTowerLevelInfo.IsPass) { if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(response.CimbingTowerLevelInfo.LevelId)) { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[response.CimbingTowerLevelInfo.LevelId] = response.CimbingTowerLevelInfo; } else { //PromptController.Instance.ShowFloatTextPrompt("已通过,自动清除搭配!"); FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(response.CimbingTowerLevelInfo.LevelId, response.CimbingTowerLevelInfo); } int limit = CimbingTowerCfgArray.Instance.dataArray[0].UseLimit; bool isDelete = false; for(int i=0;i= limit) { FieldWorkDataManager.Instance.DressupList[i].cardId = 0; isDelete = true; } } } } if (isDelete) { PromptController.Instance.ShowFloatTextPrompt("词牌磨损率过高已自动解除佩戴!"); EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE); } return false; } } else { if (response.CimbingTowerLevelInfo != null) { if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(response.CimbingTowerLevelInfo.LevelId)) { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[response.CimbingTowerLevelInfo.LevelId] = response.CimbingTowerLevelInfo; } else { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(response.CimbingTowerLevelInfo.LevelId, response.CimbingTowerLevelInfo); } } int limit = CimbingTowerCfgArray.Instance.dataArray[0].UseLimit; bool isDelete = false; for (int i = 0; i < FieldWorkDataManager.Instance.DressupList.Count; i++) { foreach (var item in FieldWorkDataManager.Instance.CardAbrasionInfoList) { if (item.Card == FieldWorkDataManager.Instance.DressupList[i].cardId) { if (item.UseNum >= limit) { FieldWorkDataManager.Instance.DressupList[i].cardId = 0; isDelete = true; } } } } if (isDelete) { PromptController.Instance.ShowFloatTextPrompt("词牌磨损率过高已自动解除佩戴!"); EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE); } return false; } } return false; } //一键跳过 public static async ETTask ReqFieldWorkOneClickPass() { S2C_CimbingTowerOneClickPass response = null; response = (S2C_CimbingTowerOneClickPass)await MessageHelper.SendToServer(new C2S_CimbingTowerOneClickPass(){ }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FieldWorkDataManager.Instance.MaxLevelId = response.MaxLevelId; FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Clear(); foreach (var item in response.CimbingTowerLevelInfoList) { if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(item.LevelId)) { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[item.LevelId] = item; } else { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(item.LevelId, item); } } BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList)); EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE); return true; } } return false; } //重置 public static async ETTask ReqFieldWorkReset() { S2C_CimbingTowerResetLevel response = null; response = (S2C_CimbingTowerResetLevel)await MessageHelper.SendToServer(new C2S_CimbingTowerResetLevel(){}); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FieldWorkDataManager.Instance.HistoryDressupList.Clear(); FieldWorkDataManager.Instance.CardAbrasionInfoList = response.CardAbrasionInfoList; foreach (var item in response.CimbingTowerLevelInfoList) { if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(item.LevelId)) { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[item.LevelId] = item; } else { FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(item.LevelId, item); } } for (int i = 0; i < FieldWorkDataManager.Instance.DressupList.Count; i++) { FieldWorkDataManager.Instance.DressupList[i].itemList.Clear(); FieldWorkDataManager.Instance.DressupList[i].cardId = 0; } EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE); return true; } } return false; } private static FightData GetFightRoleData(List dressupProto, OtherRoleInfoData roleInfo, int scoreType) { FightData fightData = new FightData(); fightData.name = roleInfo.roleName; fightData.scoreType = scoreType; fightData.baseScore = RoleLevelCfgArray.Instance.GetCfg(roleInfo.roleLv).baseScore; fightData.tags = FieldWorkDataManager.Instance.Tag.ToArray(); fightData.type = FightTargetType.PLAYER; fightData.headId = roleInfo.headId; List dressList = new List(); foreach(var item in dressupProto) { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(item); if(itemCfg != null && itemCfg.itemType == ConstItemType.DRESS_UP) { dressList.Add(item); } else if(itemCfg != null && itemCfg.itemType == ConstItemType.CARD) { fightData.cardId = item; } } fightData.itemList = dressList; return fightData; } } }