internal void Attack() { short tries = 0; byte index = 0; PokemonAttack attack = PokemonAttack.None; while (attack == PokemonAttack.None) { tries++; index = (byte)r.Next(0, 4); attack = battle.Trainer.Pokemons[battle.Trainer.CurrentPokemonIndex].MoveFromId(index); if (tries > 20) { break; } } action = Action.Attack1 + index; Console.WriteLine($"[VS{battle.Opponent.Name}] Bot Attacked #{battle.Trainer.CurrentPokemonIndex} ({battle.Trainer.Pokemons[battle.Trainer.CurrentPokemonIndex].Name}) with {attack}#{index}"); }
//---------------------------------------------------------------------------- public static void RemoveLevelAttack(int index, PokemonAttack element) { Instance.m_pokemonItems [index].m_attacksByLvl.Remove(element); }
public async Task<IActionResult> Create([Bind("Id,Name,Description,Gender,Height,Weight,RegionId,PhotoPath,AttackIds,TypesIds")] PokemonCreateViewModel pokemon) { if (ModelState.IsValid) { if (pokemon.RegionId==0) { ViewBag.ErrorTitle = $"Región no seleccionada para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} debe seleccionar una región a la cual pertenece" + $". Seleccione una región y luego trate de nuevo" + $"."; return View("Error1"); } if (pokemon.Gender == null) { ViewBag.ErrorTitle = $"Genero no seleccionado para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} debe seleccionar un Genero al cual pertenece" + $". Seleccione una genero y luego trate de nuevo" + $"."; return View("Error1"); } if (pokemon.AttackIds.Count>4 || pokemon.AttackIds.Count < 1) { ViewBag.ErrorTitle = $"Cantidad requerida de ataques seleccionados para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} solo debe seleccionar entre 1 y 4 ataques"+ $". Seleccione y luego trate de nuevo" + $"."; return View("Error1"); } if (pokemon.TypesIds.Count > 2 || pokemon.AttackIds.Count < 1) { ViewBag.ErrorTitle = $"Cantidad requerida de tipos seleccionados para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} solo debe seleccionar entre 1 y 2 tipos" + $". Seleccione y luego trate de nuevo" + $"."; return View("Error1"); } string uniqueFileName = ProcessUploadedFile(pokemon); Pokemon pokemonnew = new Pokemon() { Name=pokemon.Name, Description=pokemon.Description, Gender= pokemon.Gender, Height=pokemon.Height, Weight=pokemon.Weight, RegionId=pokemon.RegionId, PhotoPath= uniqueFileName }; _context.Add(pokemonnew); await _context.SaveChangesAsync(); foreach (var item in pokemon.AttackIds) { PokemonAttack pokemonAttack = new PokemonAttack() { PokemonId = pokemonnew.Id, AttackId = item }; _context.Add(pokemonAttack); await _context.SaveChangesAsync(); } foreach (var item in pokemon.TypesIds) { PokemonType pokemonType = new PokemonType() { PokemonId = pokemonnew.Id, TypeId = item }; _context.Add(pokemonType); await _context.SaveChangesAsync(); } return RedirectToAction(nameof(Index)); } ViewData["RegionId"] = new SelectList(_context.Region, "Id", "ClassType", pokemon.RegionId); ViewData["TypesId"] = new SelectList(_context.Types, "Id", "Name"); ViewData["AttackId"] = new SelectList(_context.Attack, "Id", "Name"); return View(pokemon); }
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Description,Gender,Height,Weight,RegionId,PhotoPath,PhotoString,AttackIds,TypesIds")] PokemonEditViewModel pokemon) { if (id != pokemon.Id) { return NotFound(); } if (ModelState.IsValid) { if (pokemon.RegionId == 0) { ViewBag.ErrorTitle = $"Región no seleccionada para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} debe seleccionar una región a la cual pertenece" + $". Seleccione una región y luego trate de nuevo" + $"."; return View("Error1"); } if (pokemon.Gender == null) { ViewBag.ErrorTitle = $"Genero no seleccionado para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} debe seleccionar un Genero al cual pertenece" + $". Seleccione una genero y luego trate de nuevo" + $"."; return View("Error1"); } if (pokemon.AttackIds.Count > 4 || pokemon.AttackIds.Count < 1) { ViewBag.ErrorTitle = $"Cantidad requerida de ataques seleccionados para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} solo debe seleccionar entre 1 y 4 ataques" + $". Seleccione y luego trate de nuevo" + $"."; return View("Error1"); } if (pokemon.TypesIds.Count > 2 || pokemon.AttackIds.Count < 1) { ViewBag.ErrorTitle = $"Cantidad requerida de tipos seleccionados para crear Pokemon {pokemon.Name}"; ViewBag.ErrorMessage = $"Para crear pokemon {pokemon.Name} solo debe seleccionar entre 1 y 2 tipos" + $". Seleccione y luego trate de nuevo" + $"."; return View("Error1"); } try { List<PokemonType> pokemonTypes = _context.PokemonType.Where(pt => pt.PokemonId == pokemon.Id).ToList(); List<PokemonAttack> pokemonAttacks = _context.PokemonAttack.Where(pa => pa.PokemonId == pokemon.Id).ToList(); _context.PokemonType.RemoveRange(pokemonTypes); _context.PokemonAttack.RemoveRange(pokemonAttacks); foreach (var item in pokemon.AttackIds) { PokemonAttack pokemonAttack = new PokemonAttack() { PokemonId = pokemon.Id, AttackId = item }; _context.PokemonAttack.Add(pokemonAttack); //await _context.SaveChangesAsync(); } foreach (var item in pokemon.TypesIds) { PokemonType pokemonType = new PokemonType() { PokemonId = pokemon.Id, TypeId = item }; _context.PokemonType.Add(pokemonType); //await _context.SaveChangesAsync(); } string uniqueFileName = ""; if (pokemon.PhotoPath == null) { uniqueFileName = pokemon.PhotoString; } else { uniqueFileName = ProcessUploadedFileEdit(pokemon); } Pokemon pokemonEdit = new Pokemon() { Id=pokemon.Id, Name = pokemon.Name, Description = pokemon.Description, Height = pokemon.Height, Gender = pokemon.Gender, Weight = pokemon.Weight, RegionId = pokemon.RegionId, PhotoPath = uniqueFileName, }; _context.Pokemon.Update(pokemonEdit); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PokemonExists(pokemon.Id)) { return NotFound(); } else { throw; } } return RedirectToAction(nameof(Index)); } ViewData["RegionId"] = new SelectList(_context.Region, "Id", "ClassType", pokemon.RegionId); ViewData["TypesId"] = new SelectList(_context.Types, "Id", "Name", pokemon.TypesIds); ViewData["AttackId"] = new SelectList(_context.Attack, "Id", "Name", pokemon.AttackIds); ViewData["Gender"] = new SelectList(new[] { "Femenino", "Masculino" }, pokemon.Gender); return View(pokemon); }