Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #3
0
        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());
        }
Example #5
0
        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));
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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);
            }
        }
Example #9
0
        public async Task <IActionResult> OnPostDeleteAsync(PokedexPokemon pokemon)
        {
            //TrainerPokedex.PokedexPokemons.Remove(pokemon);



            _db.PokedexPokemon.Remove(pokemon);


            await _db.SaveChangesAsync();

            return(RedirectToPage());
        }
Example #10
0
        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();
            }
        }
Example #11
0
        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);
            }
        }
Example #12
0
        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));
            }
        }
Example #14
0
        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();
        }
Example #15
0
        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);
            }
        }