Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
    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();
    }