Example #1
0
        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}");
        }
Example #2
0
 //----------------------------------------------------------------------------
 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);
        }