Example #1
0
        private async Task LevelUpHero(int id = 0)
        {
            Hero hero = id == 0 ? await this.heroService.GetHero() : await this.heroService.GetHero(id);

            if (hero.Level.CurrentLevel == 100)
            {
                return;
            }

            DatabaseLevel databaseLevel = await this.context.DatabaseLevels.SingleAsync(l => l.Level == hero.Level.CurrentLevel + 1);

            hero.Level.CurrentExperience = hero.Level.CurrentExperience - hero.Level.NeededExperience;
            hero.Level.CurrentLevel      = databaseLevel.Level;
            hero.Level.NeededExperience  = databaseLevel.NeededExperience;

            Notification notification = new Notification()
            {
                ImageUrl = LevelNotificationImageUrl,
                Title    = LevelNotificationTitle,
                Content  = string.Format(LevelNotificationContent, hero.Level.CurrentLevel),
                Type     = NotificationType.Other,
                Hero     = hero,
            };

            await this.notificationService.AddNotification(notification);

            await this.context.SaveChangesAsync();
        }
Example #2
0
        public async Task UpdateLevel(LevelModifyInputModel inputModel)
        {
            Hero hero = await this.heroService.GetHeroByName(inputModel.Name);

            DatabaseLevel databaseLevel = await this.context.DatabaseLevels.SingleAsync(l => l.Level == inputModel.LevelCurrentLevel);

            hero.Level.CurrentLevel      = databaseLevel.Level;
            hero.Level.NeededExperience  = databaseLevel.NeededExperience;
            hero.Level.CurrentExperience = 0;

            await this.context.SaveChangesAsync();
        }