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 static bool TryCatch(PokemonEncountered pokemonEncountered) { Random random = new Random(); int dice = random.Next(0, 1000); // creates a number between 1 and 1000 if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Common) // 80%: catch rate common pokemon { return(dice <= 800); } else if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Uncommon) // 60%: catch rate uncommon pokemon { return(dice <= 600); } else if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Mythical) // 30%: catch rate mythical pokemon { return(dice <= 300); } else if (pokemonEncountered.LocalPokemon.Rarity == PokemonRarity.Legendary) // 15%: catch rate legendary pokemon { return(dice <= 150); } else { return(false); // can't caught anything! } }
public IActionResult Encounter(PokemonSearch pokemonSearch) { Local local = Locals.FindOneByID(pokemonSearch.LocalID); Player player = Players.FindOneByID(pokemonSearch.PlayerID); if (local != null && player != null) { Encounter encounter = new Encounter(); encounter.ID = ++GameState.EncounterID; encounter.LocalID = pokemonSearch.LocalID; encounter.PlayerID = pokemonSearch.PlayerID; PokemonEncountered pokemonEncountered = PokemonEncounter.FindPokemon(local); encounter.PokemonEncountered = pokemonEncountered; if (pokemonEncountered != null) { encounter.PokemonAlreadyCaught = player.Pokedex.Pokemons.FirstOrDefault(pokedexPokemon => pokedexPokemon.PokemonID == pokemonEncountered.LocalPokemon.PokemonID && pokedexPokemon.Enabled) != null; encounter.CanBattle = player.CatchedAnyPokemon(); } GameState.Encounters.Add(encounter); return(Ok(encounter)); } return(BadRequest()); }
private void ButtonRow_Click(object sender, RoutedEventArgs e) { Local local = ((LocalData)((Button)e.Source).DataContext).Local; int randomTimeout = new Random().Next(5000); ToggleLoading(); Timeout timeout = new Timeout(() => { Application.Current.Dispatcher.Invoke((Action) delegate { PokemonEncountered pokemonEncountered = PokemonEncounter.FindPokemon(local); if (pokemonEncountered == null) { MessageBox.Show("No pokémons were found! Please, try again!", "Information", MessageBoxButton.OK, MessageBoxImage.Information); ToggleLoading(); return; } Encounter encounter = new Encounter(pokemonEncountered); encounter.Show(); Hide(); }); }, randomTimeout); }
public Encounter(PokemonEncountered pokemonEncountered) { WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; PokemonEncountered = pokemonEncountered; InitializeComponent(); }