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); }
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; }
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); }
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 + ")"); }
private string GenerateStartText(PokemonModelDTO fasterPokemon, PokemonModelDTO slowerPokemon) { return(fasterPokemon.Name + "starts since " + fasterPokemon.Speed + " > " + slowerPokemon.Speed); }