mirror of
https://github.com/magefree/mage.git
synced 2025-12-23 03:51:58 -08:00
* Bloodlord of Vaasgoth - Fixed that it did not apply bloodthirst properly to other vampires (fixes #1792).
This commit is contained in:
parent
cdb37813ca
commit
f56e9b1de1
3 changed files with 14 additions and 8 deletions
|
|
@ -134,10 +134,7 @@ class BloodlordOfVaasgothEffect extends ContinuousEffectImpl {
|
||||||
}
|
}
|
||||||
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source));
|
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
|
if (spell != null) { // Bloodthirst checked while spell is on the stack so needed to give it already to the spell
|
||||||
Ability ability1 = ability.copy();
|
game.getState().addOtherAbility(spell.getCard(), ability, true);
|
||||||
ability1.setSourceId(spell.getSourceId());
|
|
||||||
ability1.setControllerId(spell.getControllerId());
|
|
||||||
game.getState().addAbility(ability1, spell);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -65,15 +65,16 @@ public class BloodthirstTest extends CardTestPlayerBase {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testBloodlord() {
|
public void testBloodlord() {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3);
|
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 8);
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1);
|
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1);
|
||||||
// Bloodthirst 3
|
// Bloodthirst 3
|
||||||
// Whenever you cast a Vampire creature spell, it gains 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, "Barony Vampire"); // 3/2 {2}{B}
|
||||||
addCard(Zone.HAND, playerA, "Lightning Bolt");
|
addCard(Zone.HAND, playerA, "Lightning Bolt");
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
|
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");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barony Vampire");
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
@ -89,6 +90,9 @@ public class BloodthirstTest extends CardTestPlayerBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Assert.assertTrue("Baron Vampire is missing the bloodthirst ability", bloodthirstFound);
|
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);
|
assertPowerToughness(playerA, "Barony Vampire", 6, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ package mage.game.permanent;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import mage.abilities.Abilities;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.costs.mana.ManaCost;
|
import mage.abilities.costs.mana.ManaCost;
|
||||||
import mage.abilities.costs.mana.ManaCosts;
|
import mage.abilities.costs.mana.ManaCosts;
|
||||||
|
|
@ -53,7 +54,7 @@ public class PermanentCard extends PermanentImpl {
|
||||||
|
|
||||||
public PermanentCard(Card card, UUID controllerId, Game game) {
|
public PermanentCard(Card card, UUID controllerId, Game game) {
|
||||||
super(card.getId(), card.getOwnerId(), controllerId, card.getName());
|
super(card.getId(), card.getOwnerId(), controllerId, card.getName());
|
||||||
// this.card = card.copy();
|
|
||||||
this.card = card;
|
this.card = card;
|
||||||
this.zoneChangeCounter = card.getZoneChangeCounter(game); // local value already set to the raised number
|
this.zoneChangeCounter = card.getZoneChangeCounter(game); // local value already set to the raised number
|
||||||
init(card, game);
|
init(card, game);
|
||||||
|
|
@ -61,7 +62,11 @@ public class PermanentCard extends PermanentImpl {
|
||||||
|
|
||||||
private void init(Card card, Game game) {
|
private void init(Card card, Game game) {
|
||||||
copyFromCard(card);
|
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)) {
|
/*if (card.getCardType().contains(CardType.PLANESWALKER)) {
|
||||||
this.loyalty = new MageInt(card.getLoyalty().getValue());
|
this.loyalty = new MageInt(card.getLoyalty().getValue());
|
||||||
}*/
|
}*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue