* Bloodlord of Vaasgoth - Fixed that it did not apply bloodthirst properly to other vampires (fixes #1792).

This commit is contained in:
LevelX2 2016-04-08 13:45:12 +02:00
parent cdb37813ca
commit f56e9b1de1
3 changed files with 14 additions and 8 deletions

View file

@ -134,10 +134,7 @@ class BloodlordOfVaasgothEffect extends ContinuousEffectImpl {
}
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source));
if (spell != null) { // Bloodthirst checked while spell is on the stack so needed to give it already to the spell
Ability ability1 = ability.copy();
ability1.setSourceId(spell.getSourceId());
ability1.setControllerId(spell.getControllerId());
game.getState().addAbility(ability1, spell);
game.getState().addOtherAbility(spell.getCard(), ability, true);
}
}
return true;

View file

@ -65,15 +65,16 @@ public class BloodthirstTest extends CardTestPlayerBase {
*/
@Test
public void testBloodlord() {
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3);
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 8);
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1);
// Bloodthirst 3
// Whenever you cast a Vampire creature spell, it gains bloodthirst 3
addCard(Zone.BATTLEFIELD, playerA, "Bloodlord of Vaasgoth");
addCard(Zone.HAND, playerA, "Bloodlord of Vaasgoth"); // {3}{B}{B}
addCard(Zone.HAND, playerA, "Barony Vampire"); // 3/2 {2}{B}
addCard(Zone.HAND, playerA, "Lightning Bolt");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Bloodlord of Vaasgoth");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barony Vampire");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -89,6 +90,9 @@ public class BloodthirstTest extends CardTestPlayerBase {
}
}
Assert.assertTrue("Baron Vampire is missing the bloodthirst ability", bloodthirstFound);
assertPermanentCount(playerA, "Bloodlord of Vaasgoth", 1);
assertPowerToughness(playerA, "Bloodlord of Vaasgoth", 6, 6);
assertPermanentCount(playerA, "Barony Vampire", 1);
assertPowerToughness(playerA, "Barony Vampire", 6, 5);
}

View file

@ -29,6 +29,7 @@ package mage.game.permanent;
import java.util.ArrayList;
import java.util.UUID;
import mage.abilities.Abilities;
import mage.abilities.Ability;
import mage.abilities.costs.mana.ManaCost;
import mage.abilities.costs.mana.ManaCosts;
@ -53,7 +54,7 @@ public class PermanentCard extends PermanentImpl {
public PermanentCard(Card card, UUID controllerId, Game game) {
super(card.getId(), card.getOwnerId(), controllerId, card.getName());
// this.card = card.copy();
this.card = card;
this.zoneChangeCounter = card.getZoneChangeCounter(game); // local value already set to the raised number
init(card, game);
@ -61,7 +62,11 @@ public class PermanentCard extends PermanentImpl {
private void init(Card card, Game game) {
copyFromCard(card);
// if temporary added abilities to the spell/card exist, you need to add it to the permanent derived from that card
Abilities<Ability> otherAbilities = game.getState().getAllOtherAbilities(card.getId());
if (otherAbilities != null) {
abilities.addAll(otherAbilities);
}
/*if (card.getCardType().contains(CardType.PLANESWALKER)) {
this.loyalty = new MageInt(card.getLoyalty().getValue());
}*/