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(); }
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(); }