public ActionResult LevelUpFinal(PlayerViewModel model) { var player = unitOfWork.PlayerRepository.GetByID(model.playerid); var team = unitOfWork.TeamRepository.GetByID(player.Team); Boolean err = false; int val = 0; switch (model.selectLUMode) { case "skillmode": var skill = new PlayerSkills() { Player = player.ID, Skill = (Skills)model.SelectedSkillID }; val = 20000; foreach (var grp in player.PlayerTypes.TypeGroups) if (grp.SkillGroup == Math.Floor((double)model.SelectedSkillID / 100) && grp.IsDouble == 1) val = 30000; unitOfWork.PlayerSkillRepository.Insert(skill); break; case "statmode": switch (model.selectStat) { case "str": player.ST += 1; val = 50000; break; case "agi": player.AG += 1; val = 40000; break; case "arm": player.AV += 1; val = 30000; break; case "mov": player.MA += 1; val = 30000; break; default: AddApplicationMessage("Chyba při level-upu.", MessageSeverity.Danger); err = true; break; } break; default: AddApplicationMessage("Chyba při level-upu.", MessageSeverity.Danger); err = true; break; } if (!err) { player.Value += val; player.Level += 1; team.Value += val; unitOfWork.TeamRepository.Update(team); unitOfWork.PlayerRepository.Update(player); unitOfWork.Save(); AddApplicationMessage("Hráč byl úspěšně odlevlen", MessageSeverity.Success); } return RedirectToAction("Detail", "Team", new { teamid = player.Team}); }
public ActionResult LevelUp(int? roll1, int? roll2, int? playerId) { if (playerId == null) { AddApplicationMessage("Neudáno ID hráče", MessageSeverity.Success); return Redirect(Request.UrlReferrer.ToString()); } Players player = unitOfWork.PlayerRepository.GetByID(playerId); if (player == null) { AddApplicationMessage("Hráč nebyl nalezen", MessageSeverity.Success); return Redirect(Request.UrlReferrer.ToString()); } var model = new PlayerViewModel() { player = player, roll1 = roll1, roll2 = roll2 }; var skills = from Skills s in Enum.GetValues(typeof(Skills)) select new { ID = (int)s, Name = s.ToString() }; var fskills = skills.Except(skills).ToList(); fskills.Add(new { ID = 0, Name = "-- vyberte skill --" }); var availablegroups = unitOfWork.TypeGroupRepository.Get(filter: tg => tg.PlayerType == player.PlayerTypes.ID); foreach (var agrp in availablegroups) { foreach(var skill in skills) { if (Math.Floor((double)skill.ID/100) == agrp.SkillGroup && ((agrp.IsDouble == 1 && (roll1 == roll2)) || agrp.IsDouble == 0) && player.PlayerSkills.All(ps => (int)ps.Skill != skill.ID)) { fskills.Add(skill); } } } model.skills = new SelectList(fskills, "ID", "Name"); return View(model); }