public MatchFighterExperienceProcessor(
     DatabaseContext databaseContext,
     IFighterExperienceCalculator fighterExperienceCalculator,
     IFighterLevelUpHandler fighterLevelUpHandler)
 {
     this.databaseContext             = databaseContext;
     this.fighterExperienceCalculator = fighterExperienceCalculator;
     this.fighterLevelUpHandler       = fighterLevelUpHandler;
 }
Beispiel #2
0
        public async Task <ActionResult <FighterExperienceDto> > GetExperience(Guid id, [FromServices] IFighterExperienceCalculator fighterExperienceCalculator)
        {
            var userId = User.Claims.GetUserId();

            if (userId == null)
            {
                return(Forbid());
            }

            var fighterExperience = await Context.FighterExperiences.FirstOrDefaultAsync(o => o.FighterId == id);

            if (fighterExperience == null)
            {
                return(Ok(new FighterExperienceDto()
                {
                    Level = 1,
                    CurrentExp = 0,
                    LevelExp = fighterExperienceCalculator.GetNeededExperience(1),
                }));
            }

            var level = fighterExperienceCalculator.GetLevel(fighterExperience);

            return(Ok(new FighterExperienceDto()
            {
                Level = level.Level,
                CurrentExp = level.Experience,
                LevelExp = level.RequiredExperience,
            }));
        }