Example #1
0
        public Trainer(string name, string desc, TrainerCategory trainerCategory)
        {
            Name         = name;
            Desc         = desc;
            BaseCost     = 25;
            TrainerGroup = trainerCategory;
            switch (TrainerGroup)
            {
            case TrainerCategory.Archer:
                TrainableAbilities = new List <PlayerAbility>
                {
                    new PlayerAbility(
                        "bandage", 25, 1, ArcherAbility.Bandage, 2),
                    new PlayerAbility(
                        "ambush", 75, 1, ArcherAbility.Ambush, 4),
                    new PlayerAbility(
                        "swift aura", 150, 1, ArcherAbility.SwiftAura, 6),
                    new PlayerAbility(
                        "immolating arrow", 35, 1, ArcherAbility.ImmolatingArrow, 8)
                };
                break;

            case TrainerCategory.Warrior:
                TrainableAbilities = new List <PlayerAbility>
                {
                    new PlayerAbility(
                        "bandage", 25, 1, WarriorAbility.Bandage, 2),
                    new PlayerAbility(
                        "war cry", 50, 1, WarriorAbility.WarCry, 4),
                    new PlayerAbility(
                        "power aura", 150, 1, WarriorAbility.PowerAura, 6),
                    new PlayerAbility(
                        "onslaught", 25, 1, WarriorAbility.Onslaught, 8)
                };
                break;

            case TrainerCategory.Mage:
                TrainableSpells = new List <PlayerSpell>
                {
                    new PlayerSpell(
                        "town portal", 100, 1, SpellType.TownPortal, 2),
                    new PlayerSpell(
                        "reflect", 100, 1, SpellType.Reflect, 4),
                    new PlayerSpell(
                        "arcane intellect", 150, 1, SpellType.ArcaneIntellect, 6),
                    new PlayerSpell(
                        "frost nova", 50, 1, SpellType.FrostNova, 8)
                };
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public IActionResult Save(TrainerCategory viewModel)
        {
            if (ModelState.IsValid)
            {
                if (_dataManager.TrainerCategories.SaveTrainerCategory(viewModel))
                {
                    return(RedirectToAction("Index"));
                }

                ModelState.AddModelError(nameof(viewModel.Name), "Категория тренера с такими данными уже существует");
            }

            return(View(viewModel));
        }
Example #3
0
        public bool SaveTrainerCategory(TrainerCategory entity)
        {
            if (!ContainsTrainerCategoryByName(entity.Name))
            {
                if (entity.Id == default)
                {
                    _context.Entry(entity).State = EntityState.Added;
                }
                else
                {
                    _context.Entry(entity).State = EntityState.Modified;
                }

                _context.SaveChanges();

                return(true);
            }

            return(false);
        }