示例#1
0
        public void HappyPathPokemonFightTest()
        {
            Random randomInt = new Random();

            var pokemonLeft = new PokemonModelDTO
            {
                Name   = "Test1",
                HP     = randomInt.Next(20, 999),
                Attack = randomInt.Next(20, 999),
                SpAtk  = randomInt.Next(20, 999)
            };

            var pokemonRight = new PokemonModelDTO
            {
                Name   = "Test2",
                HP     = randomInt.Next(20, 999),
                Attack = randomInt.Next(20, 999),
                SpAtk  = randomInt.Next(20, 999)
            };
            var pokemonList = new List <PokemonModelDTO> {
                pokemonLeft, pokemonRight
            };
            var result = TestPokemonFightWithGivenPokemons(pokemonList);

            Assert.IsNotEmpty(result.FightLogs);
        }
示例#2
0
        private void Fight(List <string> round, PokemonModelDTO fasterPokemon, PokemonModelDTO slowerPokemon)
        {
            round.Add(GenerateStartText(fasterPokemon, slowerPokemon));
            round.Add(GenerateFightText(fasterPokemon, slowerPokemon));
            slowerPokemon.HP = slowerPokemon.HP - fasterPokemon.Attack + slowerPokemon.Defense / 10;
            if (slowerPokemon.HP <= 0)
            {
                return;
            }

            round.Add(GenerateFightText(slowerPokemon, fasterPokemon));
            fasterPokemon.HP = fasterPokemon.HP - slowerPokemon.Attack + fasterPokemon.Defense / 10;
        }
示例#3
0
        private bool CheckIfFightContinues(PokemonModelDTO pokemonLeft, PokemonModelDTO pokemonRight,
                                           List <string> round)
        {
            if (pokemonLeft.HP <= 0)
            {
                round.Add("Winner is: " + pokemonRight.Name);
                return(false);
            }

            if (pokemonRight.HP <= 0)
            {
                round.Add("Winner is: " + pokemonLeft.Name);
                return(false);
            }

            return(true);
        }
示例#4
0
 private string GenerateFightText(PokemonModelDTO attacker, PokemonModelDTO attacked)
 {
     return(attacked.Name + " health updated: " + attacked.HP + " - " + attacker.Attack + " = " +
            (attacked.HP + attacked.Defense / 10 - attacker.Attack) + " absorbed(" + attacked.Defense / 10 + ")");
 }
示例#5
0
 private string GenerateStartText(PokemonModelDTO fasterPokemon, PokemonModelDTO slowerPokemon)
 {
     return(fasterPokemon.Name + "starts since " + fasterPokemon.Speed + " > " + slowerPokemon.Speed);
 }