Esempio n. 1
0
        private async Task calculateRank()
        {
            RANK_TIER      tier      = RANK_TIER.F;
            RANK_DOMINANT  dominant  = RANK_DOMINANT.BALANCED;
            GAMITUDE_STYLE style     = GAMITUDE_STYLE.DEFAULT;
            var            statsList = new List <int> {
                stats.Strength, stats.Intelligence, stats.Fluency, stats.Creativity
            };
            var sum = statsList.Sum();
            var max = statsList.Max();

            if (statsList.All(o => o == statsList.First()))
            {
                dominant = RANK_DOMINANT.BALANCED;
            }
            else if (max == stats.Strength)
            {
                dominant = RANK_DOMINANT.STRENGHT;
            }
            else if (max == stats.Intelligence)
            {
                dominant = RANK_DOMINANT.INTELLIGENCE;
            }
            else if (max == stats.Fluency)
            {
                dominant = RANK_DOMINANT.FLUENCY;
            }
            else if (max == stats.Creativity)
            {
                dominant = RANK_DOMINANT.CREATIVITY;
            }

            if (sum < 40)
            {
                tier = RANK_TIER.F;
            }
            else if (sum >= 40 && sum < 90)
            {
                tier = RANK_TIER.D;
            }
            else if (sum >= 90 && sum < 150)
            {
                tier = RANK_TIER.C;
            }
            else if (sum >= 150 && sum < 230)
            {
                tier = RANK_TIER.B;
            }
            else if (sum >= 230 && sum < 320)
            {
                tier = RANK_TIER.A;
            }
            else if (sum >= 320)
            {
                tier = RANK_TIER.S;
            }

            userRank = new UserRank
            {
                UserId = userId,
                RankId = await _ranksService.GetIdByTierDominantAsync(tier, dominant, style)
            };
        }
Esempio n. 2
0
        public async Task <String> GetIdByTierDominantAsync(RANK_TIER tier, RANK_DOMINANT dominant, GAMITUDE_STYLE style)
        {
            var rank = await _Rank.Find <Rank>(o => o.Tier == tier && o.Dominant == dominant && o.Style == style).FirstOrDefaultAsync();

            return(rank.Id);
        }