public void ArrangeSuggestionHeroList(List <Hero> suggestionHeroList) { //bestherolist de current buff count olmalı heroList.LastOrDefault().winRate = 0; currentBuffNameList.Clear(); BestHeroTeam tempBestHeroTeam = new BestHeroTeam(); foreach (Hero hero in suggestionHeroList) { tempBestHeroTeam = bestHeroTeamList.Where(x => x.heroList.Contains(hero) && x.heroList.Count == suggestionHeroList.Count).FirstOrDefault(); } if (tempBestHeroTeam != null && (tempBestHeroTeam.winCount + tempBestHeroTeam.loseCount) > 5) { tempBestHeroTeam.winRate = (int)(tempBestHeroTeam.winCount / (tempBestHeroTeam.winCount + tempBestHeroTeam.loseCount) * 100); Debug.Log("Win Rate : " + heroList.LastOrDefault().winRate); } else { #region Current Buff System currentBuffNameList.Clear(); foreach (HeroGenericType heroGenericType in heroGenericTypeList) { if (myHeroList.Where(x => x.HeroGenericType == heroGenericType).Count() / heroGenericType.exponent >= 1) { for (int j = 0; j < (int)(myHeroList.Where(x => x.HeroGenericType == heroGenericType).Count() / heroGenericType.exponent); j++) { tempBestHeroTeam.buffCount += (int)(myHeroList.Where(x => x.HeroGenericType == heroGenericType).Count() / heroGenericType.exponent); } } } foreach (HeroFightStyle heroFightStyle in heroFightStyleList) { if (myHeroList.Where(x => x.HeroFightStyleList.Contains(heroFightStyle)).Count() / heroFightStyle.exponent >= 1) { for (int j = 0; j < (int)(myHeroList.Where(x => x.HeroFightStyleList.Contains(heroFightStyle)).Count() / heroFightStyle.exponent); j++) { tempBestHeroTeam.buffCount += (int)(myHeroList.Where(x => x.HeroFightStyleList.Contains(heroFightStyle)).Count() / heroFightStyle.exponent); } } } #endregion tempBestHeroTeam.winRate = tempBestHeroTeam.winRate * 10; } suggestionHeroList.Add(heroList.LastOrDefault()); suggestionHeroList = suggestionHeroList.OrderByDescending(x => x.winRate).ToList(); }
public void TeamLost() { LoadBestTeamList(); tempBestHeroTeamList = GameManager.instance.bestHeroTeamList; foreach (Hero hero in GameManager.instance.myHeroList) { tempBestHeroTeamList = GameManager.instance.bestHeroTeamList.Where(x => x.heroList.Contains(hero)).ToList(); } if (tempBestHeroTeamList.Count > 0) { GameManager.instance.bestHeroTeamList.Where(x => x == tempBestHeroTeamList.FirstOrDefault()).FirstOrDefault().winCount--; } else { BestHeroTeam tempBestHeroTeam = new BestHeroTeam(); tempBestHeroTeam.loseCount = 1; tempBestHeroTeam.heroList = GameManager.instance.myHeroList; GameManager.instance.theBestTeamList.Add(tempBestHeroTeam); } SaveBestTeamList(); }