public void GetDamageTest_1_Energy() { var attack = new ExtraForUnusedEnergy() { Damage = 10, MaxExtraDamage = 20, AmountPerEnergy = 10, EnergyType = EnergyTypes.Water, Cost = new ObservableCollection <Energy> { new Energy(EnergyTypes.Water, 1) } }; var owner = new PokemonCard() { Attacks = new ObservableCollection <Attack> { attack } }; owner.AttachedEnergy.Add(new EnergyCard() { Amount = 1, EnergyType = EnergyTypes.Water }); var player = new Player(); player.ActivePokemonCard = owner; var damage = attack.GetDamage(player, null, null); Assert.Equal(10, damage.NormalDamage); }
public void GetDamage_Discard_Extra(int attached, int expected) { var opponentPokemon = new PokemonCard() { }; var opponent = new Player { ActivePokemonCard = opponentPokemon }; var attack = new ExtraForUnusedEnergy() { Damage = 20, MaxExtraDamage = 265750, AmountPerEnergy = 20, EnergyType = EnergyTypes.Fire, DiscardUnusedEnergy = true, Cost = new ObservableCollection <Energy> { new Energy(EnergyTypes.Fire, 1) } }; var player = new Player() { ActivePokemonCard = new PokemonCard() { Attacks = new ObservableCollection <Attack> { attack } } }; player.ActivePokemonCard.Owner = player; for (int i = 0; i < attached; i++) { player.ActivePokemonCard.AttachedEnergy.Add(new EnergyCard() { Amount = 1, EnergyType = EnergyTypes.Fire }); } Assert.Equal(expected, attack.GetDamage(player, opponent, new GameField()).NormalDamage); Assert.Single(player.ActivePokemonCard.AttachedEnergy); }
public void Seadra_4_Extra(int attachedEnergy) { var attack = new ExtraForUnusedEnergy() { Damage = 20, MaxExtraDamage = 20, AmountPerEnergy = 10, EnergyType = EnergyTypes.Water, Cost = new ObservableCollection <Energy> { new Energy(EnergyTypes.Water, 1), new Energy(EnergyTypes.Colorless, 1), } }; var owner = new PokemonCard() { Attacks = new ObservableCollection <Attack> { attack } }; for (int i = 0; i < attachedEnergy; i++) { owner.AttachedEnergy.Add(new EnergyCard() { Amount = 1, EnergyType = EnergyTypes.Water }); } var player = new Player(); player.ActivePokemonCard = owner; var damage = attack.GetDamage(player, null, null); Assert.Equal(40, damage.NormalDamage); }