public static bool IsWeatherBoosted(this PokedexPokemon pkmn, WeatherCondition weather) { var types = pkmn?.Types; var isBoosted = types?.Exists(x => Strings.WeatherBoosts[weather].Contains(x)) ?? false; return(isBoosted); }
public static bool Battle(PokedexPokemon pokedexPokemon, PokemonEncountered pokemonEncountered) { Random random = new Random(); // power set for battle double power = 0; if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Common) { power = 0; } else if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Uncommon) { power = 2.5; } else if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Mythical) { power = 5; } else if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Legendary) { power = 10; } return(pokedexPokemon.Level >= (pokemonEncountered.Level + power)); }
public async Task <IActionResult> OnPostAsync(PokemonVM testPokemon) { //Finds Id of Trainer logged in string userId = _userManager.FindByNameAsync(User.Identity.Name).Result.Id; //Finds Pokedex of Trainer logged in, assign to TrainerPokedex TrainerPokedex = _db.PokeDex .Include(pp => pp.PokedexPokemons) .ThenInclude(p => p.Pokemon) .Where(pp => pp.TrainerId == userId) .FirstOrDefault(); //Check if pokemon is in the pokedex //If not, Adds pokemon to TrainerPokedex try { PokedexPokemon p = new PokedexPokemon(TrainerPokedex.Id, testPokemon.Id); TrainerPokedex.PokedexPokemons.Add(p); await _db.SaveChangesAsync(); p.Pokemon = new Pokemon(testPokemon.PokeNumber, testPokemon.Name, testPokemon.Type0, testPokemon.Type1, testPokemon.Attack, testPokemon.Defense, testPokemon.Speed); //Response.Redirect("Pokedex/Index", false); } catch { Console.Write("Pokemon has already been added"); } return(RedirectToPage("/Pokedex/index")); }
public IActionResult Catch(int encounterId) { Encounter encounter = GameState.Encounters.FirstOrDefault(_encounter => _encounter.ID == encounterId); Local local = Locals.FindOneByID(encounter.LocalID); Player player = Players.FindOneByID(encounter.PlayerID); if (local != null && player != null) { bool caught = PokemonEncounter.TryCatch(encounter.PokemonEncountered); if (caught) { PokedexPokemon pokemonCaught = player.Pokedex.Pokemons.FirstOrDefault(pokedexPokemon => pokedexPokemon.PokemonID == encounter.PokemonEncountered.LocalPokemon.PokemonID && pokedexPokemon.Enabled); if (pokemonCaught == null) { pokemonCaught = new PokedexPokemon(); pokemonCaught.PokemonID = encounter.PokemonEncountered.LocalPokemon.PokemonID; pokemonCaught.EncountersCount = 1; pokemonCaught.Level = encounter.PokemonEncountered.Level; } else { pokemonCaught.Level = encounter.PokemonEncountered.Level; pokemonCaught.EncountersCount = pokemonCaught.EncountersCount + 1; } pokemonCaught.Catched = true; pokemonCaught.Enabled = true; if (!encounter.PokemonAlreadyCaught) { pokemonCaught = Pokedexes.AddPokemon(pokemonCaught, player.Pokedex); } else { pokemonCaught = Pokedexes.UpdatePokemon(pokemonCaught, player.Pokedex); } if (!player.CatchedAnyPokemon()) { player.MainPokedexPokemonID = pokemonCaught.ID; Players.Update(player); } } dynamic response = new ExpandoObject(); response.caught = caught; GameState.Encounters.Remove(encounter); return(Ok(response)); } return(BadRequest()); }
public PokedexPokemon DisablePokemon(PokedexPokemon pokedexPokemon) { pokedexPokemon.Enabled = false; db.PokedexPokemon.Attach(pokedexPokemon); db.Entry(pokedexPokemon).State = EntityState.Modified; db.SaveChanges(); return(pokedexPokemon); }
public IActionResult DeletePokemon(int pokedexPokemonId) { try { PokedexPokemon pokedexPokemon = Pokedexes.FindOnePokemonByID(pokedexPokemonId); Pokedexes.DisablePokemon(pokedexPokemon); return(Ok()); } catch (Exception error) { return(StatusCode(500)); } }
public PokedexPokemon UpdatePokemon(PokedexPokemon pokedexPokemon, Pokedex pokedex) { pokedexPokemon.PokedexID = pokedex.ID; pokedexPokemon.UpdatedAt = DateTime.Now; pokedexPokemon.Enabled = true; db.PokedexPokemon.Attach(pokedexPokemon); db.Entry(pokedexPokemon).State = EntityState.Modified; db.SaveChanges(); return(pokedexPokemon); }
public static PokedexPokemon DisablePokemon(PokedexPokemon pokedexPokemon) { using (Context db = new Context()) { pokedexPokemon.Enabled = false; db.PokedexPokemon.Attach(pokedexPokemon); db.Entry(pokedexPokemon).State = EntityState.Modified; db.SaveChanges(); return(pokedexPokemon); } }
public async Task <IActionResult> OnPostDeleteAsync(PokedexPokemon pokemon) { //TrainerPokedex.PokedexPokemons.Remove(pokemon); _db.PokedexPokemon.Remove(pokemon); await _db.SaveChangesAsync(); return(RedirectToPage()); }
private void ButtonRow_Click(object sender, RoutedEventArgs e) { PokedexPokemon pokedexPokemon = ((PokedexPokemonData)((Button)e.Source).DataContext).PokedexPokemon; MessageBoxResult messageBoxResult = MessageBox.Show("Are you sure you want to kill " + pokedexPokemon.Pokemon.Name + " (lvl. " + pokedexPokemon.Level + ")?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question); if (messageBoxResult == MessageBoxResult.Yes) { Pokedexes.DisablePokemon(pokedexPokemon); Session.UpdatePlayer(); RefreshData(); } }
public static PokedexPokemon AddPokemon(PokedexPokemon pokedexPokemon, Pokedex pokedex) { using (Context db = new Context()) { pokedexPokemon.PokedexID = pokedex.ID; pokedexPokemon.CreatedAt = DateTime.Now; pokedexPokemon.UpdatedAt = DateTime.Now; pokedexPokemon.Enabled = true; PokedexPokemon pokedexPokemonCreated = db.PokedexPokemon.Add(pokedexPokemon); db.SaveChanges(); return(pokedexPokemonCreated); } }
private void ButtonRegister_Click(object sender, RoutedEventArgs e) { PokedexPokemon pokemonCaught = PokemonAlreadyCaught(); if (pokemonCaught == null) { pokemonCaught = new PokedexPokemon(); pokemonCaught.PokemonID = PokemonEncountered.LocalPokemon.PokemonID; pokemonCaught.EncountersCount = 1; pokemonCaught.Level = PokemonEncountered.Level; } else { MessageBoxResult messageBoxResult = MessageBox.Show("Are you sure you want to replace your " + PokemonEncountered.LocalPokemon.Pokemon.Name + " (lvl. " + PokemonEncountered.Level + ") with this one?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question); if (messageBoxResult == MessageBoxResult.Yes) { pokemonCaught.Level = PokemonEncountered.Level; } pokemonCaught.EncountersCount = pokemonCaught.EncountersCount + 1; } pokemonCaught.Nickname = TextBoxPokemonNickname.Text; pokemonCaught.Notes = TextBoxPokemonNotes.Text; pokemonCaught.Catched = true; pokemonCaught.Enabled = true; try { if (PokemonAlreadyCaught() == null) { pokemonCaught = Pokedexes.AddPokemon(pokemonCaught, Session.Player.Pokedex); } else { pokemonCaught = Pokedexes.UpdatePokemon(pokemonCaught, Session.Player.Pokedex); } // If is the first pokemon set as main if (Session.Player.Pokedex.Pokemons.Count == 0) { Session.Player.MainPokedexPokemonID = pokemonCaught.ID; Players.UpdatePlayer(Session.Player); } Session.UpdatePlayer(); Close(); } catch { MessageBox.Show("An error has occurred, please try again later.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
public IActionResult TransferPokemon(PokemonTransfer pokemonTransfer) { try { Player player = Players.FindOneByID(pokemonTransfer.PlayerID); Player friend = Players.FindOneByID(pokemonTransfer.FriendID); PokedexPokemon pokedexPokemon = player.Pokedex.Pokemons.Find(_pokedexPokemon => _pokedexPokemon.ID == pokemonTransfer.PokedexPokemonID); Pokedexes.TransferPokemon(player.Pokedex, friend.Pokedex, pokedexPokemon); return(Ok()); } catch (Exception error) { return(StatusCode(500)); } }
public void TransferPokemon(Pokedex pokedexPlayer, Pokedex pokedexFriend, PokedexPokemon pokedexPokemon) { pokedexPokemon.PokedexID = pokedexFriend.ID; pokedexPlayer.Pokemons.Remove(pokedexPokemon); pokedexFriend.Pokemons.Add(pokedexPokemon); db.PokedexPokemon.Attach(pokedexPokemon); db.Entry(pokedexPokemon).State = EntityState.Modified; db.Pokedex.Attach(pokedexPlayer); db.Entry(pokedexPlayer).State = EntityState.Modified; db.Pokedex.Attach(pokedexFriend); db.Entry(pokedexFriend).State = EntityState.Modified; db.SaveChanges(); }
private void ButtonBattle_Click(object sender, RoutedEventArgs e) { PokedexPokemon pokedexPokemon = Session.Player.Pokedex.Pokemons.FirstOrDefault(pokemon => Session.Player.MainPokedexPokemonID == pokemon.ID); bool win = PokemonEncounter.Battle(pokedexPokemon, PokemonEncountered); try { if (win) { pokedexPokemon.Level += 1; MessageBox.Show(pokedexPokemon.Pokemon.Name + " grew to lvl " + pokedexPokemon.Level + "!", "Win", MessageBoxButton.OK); Pokedexes.UpdatePokemon(pokedexPokemon, Session.Player.Pokedex); Session.UpdatePlayer(); } else { MessageBox.Show(pokedexPokemon.Pokemon.Name + " was fainted.", "Lose", MessageBoxButton.OK, MessageBoxImage.Warning); } BackToRegion(false); } catch { MessageBox.Show("An error has occurred, please try again later.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }