public void PokemonShouldFaint() { IPokemon pokemon = PokemonFactory.CreatePokemon <Pikachu>(); pokemon?.ReceiveDamage((int)pokemon?.TotalHealthPoints); Assert.True(pokemon?.HasFainted()); }
public void ShouldDealLessOrEqualToTwentyDamage() { IPokemon attackingPokemon = PokemonFactory.CreatePokemon <Pikachu>(); IPokemon targetPokemon = PokemonFactory.CreatePokemon <Onix>(); TypeEffect effectOfTypeOnTargetPokemon = TypeComparer.CompareElectricType(targetPokemon.Types[0]); int totalDamage = TypeDamageCalculator.CalculateDamage( attackingPokemon, targetPokemon, attackingPokemon.Moves[1], effectOfTypeOnTargetPokemon ); Assert.True(totalDamage <= 20); totalDamage = TypeDamageCalculator.CalculateDamage( attackingPokemon, targetPokemon, attackingPokemon.Moves[2], effectOfTypeOnTargetPokemon ); Assert.True(totalDamage <= 20); }
public void CreatePokemon_GivenBadLevel_Returns_CorrectLevel(int level, int id, int expectedLevel) { Prepare(); IPokemon pokemon = PokemonFactory.CreatePokemon(level, id); Assert.AreEqual(expectedLevel, pokemon.Level); }
public void ShouldMoreThanTwentyButLessThanFiftyDamagePoints() { IPokemon attackingPokemon = PokemonFactory.CreatePokemon <Gengar>(); IPokemon targetPokemon = PokemonFactory.CreatePokemon <Pidgeot>(); TypeEffect effectOfTypeOnTargetPokemon = TypeComparer.CompareGhostType(targetPokemon.Types[0]); int totalDamage = TypeDamageCalculator.CalculateDamage( attackingPokemon, targetPokemon, attackingPokemon.Moves[2], effectOfTypeOnTargetPokemon ); Assert.True(totalDamage >= 20 && totalDamage < 50); totalDamage = TypeDamageCalculator.CalculateDamage( attackingPokemon, targetPokemon, attackingPokemon.Moves[1], effectOfTypeOnTargetPokemon ); Assert.True(totalDamage >= 20 && totalDamage < 50); }
public void GhostTypePokemonShouldTakeDamageFromSpecialAttack() { IPokemon ghostTypePokemon = PokemonFactory.CreatePokemon <Gengar>(); IMove move = new ShadowBall(); Assert.False(TypeComparer.PokemonTypeDoesNotMakeContactWithMove(ghostTypePokemon?.Types, move)); }
public void GhostTypePokemonShouldNotTakeDamageFromPhysicalAttack() { IPokemon ghostTypePokemon = PokemonFactory.CreatePokemon <Gengar>(); IMove move = new Tackle(); Assert.True(TypeComparer.PokemonTypeDoesNotMakeContactWithMove(ghostTypePokemon?.Types, move)); }
public void CreatePokemon_GivenIdAndLevel_ReturnsHealthyPokemon(int level, int id) { Prepare(); IPokemon pokemon = PokemonFactory.CreatePokemon(level, id); Assert.AreEqual(pokemon.HPCurrent, pokemon.HPMax); }
public void PokemonShouldReceiveDamage() { IPokemon pokemon = PokemonFactory.CreatePokemon <Eevee>(); pokemon?.ReceiveDamage(10); Assert.True(pokemon?.CurrentHealthPoints < pokemon.TotalHealthPoints); }
public void CreatePokemon_GivenID_Returns_CorrectName(int level, int id, string expectedResult) { Prepare(); IPokemon pokemon = PokemonFactory.CreatePokemon(level, id); Assert.AreEqual(expectedResult, pokemon.Name); Assert.AreEqual(level, pokemon.Level); }
public void InitializeTrainerTeam() { PokemonTeam = new List <TrainerPokemon> { new TrainerPokemon(PokemonFactory.CreatePokemon <Onix>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Machamp>()) }; }
public void CreatePokemon_GivenIdAndLevel_ReturnsDefaultStatModifierStages(int level, int id) { IPokemon pokemon = PokemonFactory.CreatePokemon(level, id); for (int i = 0; i < pokemon.StatModifierStages.Length; i++) { Assert.AreEqual(pokemon.StatModifierStages[i], 0); } }
public void InitializeTrainerTeam() { PokemonTeam = new List <TrainerPokemon> { new TrainerPokemon(PokemonFactory.CreatePokemon <Gyarados>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Arcanine>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Exeggutor>()) }; }
public void InitializeTrainerTeam() { PokemonTeam = new List <TrainerPokemon> { new TrainerPokemon(PokemonFactory.CreatePokemon <Hypno>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Alakazam>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Gengar>()), }; }
public void ItemShouldNotHealPokemonWithFullHP() { IPokemon onix = PokemonFactory.CreatePokemon <Onix>(); bool pokemonIsEligibleForPotionUse = (bool)_player?.Items .ElementAt(POTION_INDEX_IN_TRAINER_INVENTORY).Value[POTION_INDEX_IN_TRAINER_INVENTORY] .TryToUseItemOnPokemon(onix); Assert.False(pokemonIsEligibleForPotionUse); }
public void CreatePokemon_GivenIdAndLevel_ReturnsPokemonWithoutSpecialStatus(int level, int id, bool expectedResult) { Prepare(); IPokemon pokemon = PokemonFactory.CreatePokemon(level, id); Assert.AreEqual(expectedResult, pokemon.IsFlinched); Assert.AreEqual(expectedResult, pokemon.IsConfused); Assert.AreEqual(expectedResult, pokemon.IsEnergyFocused); Assert.AreEqual(expectedResult, pokemon.Condition != 0); }
public void ItemShouldNotHealPokemonMoreThanItsHealthPointsProperty(int damageTaken) { IPokemon onix = PokemonFactory.CreatePokemon <Onix>(); onix.CurrentHealthPoints -= damageTaken; _player?.Items .ElementAt(POTION_INDEX_IN_TRAINER_INVENTORY).Value[POTION_INDEX_IN_TRAINER_INVENTORY] .TryToUseItemOnPokemon(onix); Assert.True(onix.CurrentHealthPoints == onix.TotalHealthPoints); }
public object Clone() { IPokemon pokemon = PokemonFactory.CreatePokemon(); foreach (PropertyInfo property in pokemon.GetType().GetProperties()) { property.SetValue(pokemon, property.GetValue(this, null), null); } pokemon.ResetStats(); return(pokemon); }
public void InitializeTrainerTeam() { PokemonTeam = new List <TrainerPokemon> { new TrainerPokemon(PokemonFactory.CreatePokemon <Pikachu>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Espeon>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Blastoise>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Charizard>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Lapras>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Venusaur>()) }; }
public void ItemShouldHealPokemon(int damageTaken) { IPokemon onix = PokemonFactory.CreatePokemon <Onix>(); onix.CurrentHealthPoints -= damageTaken; bool pokemonIsEligibleForPotionUse = (bool)_player?.Items .ElementAt(POTION_INDEX_IN_TRAINER_INVENTORY).Value[POTION_INDEX_IN_TRAINER_INVENTORY] .TryToUseItemOnPokemon(onix); Assert.True(pokemonIsEligibleForPotionUse); }
public void InitializeTrainerTeam() { PokemonTeam = new List <TrainerPokemon> { new TrainerPokemon(PokemonFactory.CreatePokemon <Gyarados>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Dragonite>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Dragonite>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Dragonite>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Aerodactyl>()), new TrainerPokemon(PokemonFactory.CreatePokemon <Charizard>()) }; }
public void PokemonStatModifierStages_CannotGoBelowMinusSix(int level, int id, int changeValueBy, int expectedResult) { IPokemon pokemon = PokemonFactory.CreatePokemon(level, id); for (int i = 0; i < pokemon.StatModifierStages.Length; i++) { //StatsChanger.ChangeTempPokemonStats(pokemon, i, changeValueBy); } for (int i = 0; i < pokemon.StatModifierStages.Length; i++) { Assert.AreEqual(expectedResult, pokemon.StatModifierStages[i]); } }
public void ShouldDealMoreThanFiftyDamagePoints() { IPokemon attackingPokemon = PokemonFactory.CreatePokemon <Venusaur>(); IPokemon targetPokemon = PokemonFactory.CreatePokemon <Golem>(); TypeEffect effectOfTypeOnTargetPokemon = TypeComparer.CompareGrassType(targetPokemon.Types[0]); int totalDamage = TypeDamageCalculator.CalculateDamage( attackingPokemon, targetPokemon, attackingPokemon.Moves[3], effectOfTypeOnTargetPokemon ); Assert.True(totalDamage > 50); }
public void PikachuCreationShouldNotReturnNull() => Assert.NotNull(PokemonFactory.CreatePokemon <Pikachu>());
public void CreatePokemon_NoParameters_EmptyPokemon() { IPokemon pokemon = PokemonFactory.CreatePokemon(); Assert.AreEqual(pokemon.ID, 0); }
public void EeveeCreationShouldNotReturnNull() => Assert.NotNull(PokemonFactory.CreatePokemon <Eevee>());
public void CreatePokemon_() { IPokemon pokemon = PokemonFactory.CreatePokemon(); Assert.AreEqual(pokemon.Attacks.Count(), 0); }