/// <summary> /// 球员成长里的球员列表 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public TeammemberListForGrowResponse GetTeammemberListForGrow(Guid managerId) { var teammembers = MatchDataHelper.GetTeammembers(managerId); var grows = TeammemberGrowMgr.GetByManager(managerId); var response = ResponseHelper.CreateSuccess <TeammemberListForGrowResponse>(); response.Data = new TeammemberListForGrowEntity(); response.Data.Teammembers = new List <TeammemberForGrowEntity>(teammembers.Count); foreach (var entity in teammembers) { response.Data.Teammembers.Add(BuildTeammemberForGrow(entity, grows)); } return(response); }
public MessageCode BackSaveSolution(Guid managerId, NbSolutionEntity solution, int[] newPids, List <TeammemberEntity> members) { if (null == solution) { return(MessageCode.Success); } if (newPids.Length != SystemConstants.TeammemberCount) { return(MessageCode.TeammemberInvalidCount); } if (null == members) { members = MatchDataHelper.GetTeammembers(managerId, null, true); } List <int> tempPids = new List <int>(newPids.Length); int veteranCount = 0; int orangeCount = 0; int combCount = 0; foreach (var pId in newPids) { int id = ConvertHelper.ConvertToInt(pId); if (!members.Exists(d => d.PlayerId == id)) { return(MessageCode.TeammemberInvalidPlayer); } if (tempPids.Contains(id)) { return(MessageCode.TeammemberSolutionPlayerRepeat); } tempPids.Add(id); var player = CacheFactory.PlayersdicCache.GetPlayer(id); if (player.CardLevel == (int)EnumPlayerCardLevel.Gold || player.CardLevel == (int)EnumPlayerCardLevel.Silver) { veteranCount++; } else if (player.CardLevel == (int)EnumPlayerCardLevel.Orange || player.CardLevel == (int)EnumPlayerCardLevel.BlackGold) { orangeCount++; } } int veteranNumber = _maxVeteranCount; var manager = NbManagerextraMgr.GetById(managerId); if (manager == null) { return(MessageCode.NbParameterError); } if (manager.VeteranNumber > _maxVeteranCount) { veteranNumber = manager.VeteranNumber; } if (veteranCount > veteranNumber) { return(MessageCode.TeammemberVeteranCountOver); } combCount = ManagerSkillCache.Instance().GetCombsNum(tempPids.ToArray()); string playerString = string.Join(",", newPids); if (!TeammemberMgr.SaveSolution(managerId, solution.FormationId, playerString, veteranCount, orangeCount, combCount)) { return(MessageCode.NbUpdateFail); } //DeleteSolutionCache(managerId, true); return(MessageCode.Success); }
public NBSolutionInfoResponse SaveSolution(Guid managerId, int formationId, string playerString, bool hasTask) { var solution = MatchDataHelper.GetSolution(managerId); if (solution == null) { return(ResponseHelper.InvalidParameter <NBSolutionInfoResponse>()); } bool isChangePlayer = solution.PlayerString != playerString; string[] pIds = playerString.Split(','); if (pIds.Length != SystemConstants.TeammemberCount) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberInvalidCount)); } var formation = CacheFactory.FormationCache.GetFormation(formationId); if (formation == null) { return(ResponseHelper.InvalidParameter <NBSolutionInfoResponse>()); } var teammembers = MatchDataHelper.GetTeammembers(managerId, null, true); List <int> tempPids = new List <int>(pIds.Length); int veteranCount = 0; int orangeCount = 0; int combCount = 0; foreach (var pId in pIds) { int id = ConvertHelper.ConvertToInt(pId); if (!teammembers.Exists(d => d.PlayerId == id)) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberInvalidPlayer)); } if (tempPids.Contains(id)) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberSolutionPlayerRepeat)); } tempPids.Add(id); var player = CacheFactory.PlayersdicCache.GetPlayer(id); if (player.CardLevel == (int)EnumPlayerCardLevel.Gold || player.CardLevel == (int)EnumPlayerCardLevel.Silver) { veteranCount++; } else if (player.CardLevel == (int)EnumPlayerCardLevel.Orange || player.CardLevel == (int)EnumPlayerCardLevel.BlackGold) { orangeCount++; } } foreach (var tempPid in tempPids) { var linkList = CacheFactory.PlayersdicCache.GetLinkPlayerList(tempPid); if (linkList != null) { foreach (var link in linkList) { if (tempPids.Exists(d => d == link)) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberSolutionPlayerRepeat)); } } } } int veteranNumber = _maxVeteranCount; var manager = NbManagerextraMgr.GetById(managerId); if (manager == null) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.NbParameterError)); } if (manager.VeteranNumber > _maxVeteranCount) { veteranNumber = manager.VeteranNumber; } if (veteranCount > veteranNumber) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberVeteranCountOver)); } combCount = ManagerSkillCache.Instance().GetCombsNum(tempPids.ToArray()); if (TeammemberMgr.SaveSolution(managerId, formationId, playerString, veteranCount, orangeCount, combCount)) { DeleteSolutionCache(managerId, true); ActivityExThread.Instance.TememberColect(managerId, 3, orangeCount); var response = SolutionAndTeammemberResponse(managerId); if (hasTask && isChangePlayer) { var pop = TaskHandler.Instance.SolutionChangePlayer(managerId); if (response.Data != null) { response.Data.PopMsg = pop; } } return(response); } else { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.NbUpdateFail)); } }