diff --git a/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java b/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java index a0748bad7d5..5ba3a53b97b 100644 --- a/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java +++ b/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java @@ -68,7 +68,7 @@ public class BontuTheGlorified extends CardImpl { } public BontuTheGlorified(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java b/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java index e64f7bc1873..84daa609ddd 100644 --- a/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java +++ b/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java @@ -125,7 +125,6 @@ class GontiLordOfLuxuryEffect extends OneShotEffect { card.setFaceDown(true, game); if (controller.moveCardsToExile(card, source, game, false, exileZoneId, sourceObject.getIdName())) { card.setFaceDown(true, game); - @SuppressWarnings("unchecked") Set exileZones = (Set) game.getState().getValue(GontiLordOfLuxury.VALUE_PREFIX + source.getSourceId().toString()); if (exileZones == null) { exileZones = new HashSet<>(); diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java b/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java index f141991953a..92460ddf872 100644 --- a/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java +++ b/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java @@ -53,7 +53,7 @@ public class MagusOfTheMoon extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); } public MagusOfTheMoon(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TrespassersCurse.java b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java index 659e3dcdea0..d918c5a861b 100644 --- a/Mage.Sets/src/mage/cards/t/TrespassersCurse.java +++ b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java @@ -97,11 +97,11 @@ class TrespassersCurseTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { - Permanent enchantment = game.getPermanent(this.getSourceId()); + Permanent enchantment = game.getPermanent(this.sourceId); if (enchantment != null && enchantment.getAttachedTo() != null - && game.getControllerId(event.getSourceId()).equals(enchantment.getAttachedTo()) - && game.getPermanent(this.getSourceId()).isCreature()) { + && game.getControllerId(event.getTargetId()).equals(enchantment.getAttachedTo()) + && game.getPermanent(event.getTargetId()).isCreature()) { for (Effect effect : this.getEffects()) { effect.setTargetPointer(new FixedTarget(enchantment.getAttachedTo())); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java index 54e9d836173..41e734c88d5 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java @@ -437,4 +437,78 @@ public class FlashbackTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Elemental Cat", 1); assertGraveyardCount(playerA, mountain, 1); } + + /* + * Reported bug: Battle Screech doesn't flashback (i get the pop up to choose flashback, tap the creatures and nothing happens) + */ + @Test + public void battleScreechFlashback() { + + /* + Battle Screech {2}{W}{W} + Sorcery + Create two 1/1 white Bird creature tokens with flying. + Flashback—Tap three untapped white creatures you control. + */ + String bScreech = "Battle Screech"; + String eVanguard = "Elite Vanguard"; // {W} 2/1 + String yOx = "Yoked Ox"; // {W} 0/4 + String wKnight = "White Knight"; // {W}{W} 2/2 + + addCard(Zone.GRAVEYARD, playerA, bScreech); + addCard(Zone.BATTLEFIELD, playerA, eVanguard); + addCard(Zone.BATTLEFIELD, playerA, yOx); + addCard(Zone.BATTLEFIELD, playerA, wKnight); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback"); // Flashback Battle Screech + addTarget(playerA, eVanguard + '^' + yOx + '^' + wKnight); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertTapped(eVanguard, true); + assertTapped(yOx, true); + assertTapped(wKnight, true); + assertExileCount(playerA, bScreech, 1); // this fails, but the creatures are tapped as part of paying the cost + assertPermanentCount(playerA, "Bird", 2); // if you comment out the above line, this is failing as well + } + + /* + Reported bug: tried to flashback Dread Return, it allowed me to sac the creatures but the spell did not resolve after the costs had been paid. + It did not allow me to select a creature to return from yard to board. + */ + @Test + public void dreadReturnFlashback() { + + /* + Dread Return {2}{B}{B} + Sorcery + Return target creature card from your graveyard to the battlefield. + Flashback—Sacrifice three creatures + */ + String dReturn = "Dread Return"; + String yOx = "Yoked Ox"; // {W} 0/4 + String eVanguard = "Elite Vanguard"; // {W} 2/1 + String memnite = "Memnite"; // {0} 1/1 + String bSable = "Bronze Sable"; // {2} 2/1 + + addCard(Zone.GRAVEYARD, playerA, dReturn); + addCard(Zone.GRAVEYARD, playerA, bSable); + addCard(Zone.BATTLEFIELD, playerA, yOx); + addCard(Zone.BATTLEFIELD, playerA, eVanguard); + addCard(Zone.BATTLEFIELD, playerA, memnite); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback"); // Flashback Dread Return + addTarget(playerA, yOx + '^' + eVanguard + '^' + memnite); // sac 3 creatures + addTarget(playerA, bSable); // return to battlefield + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerA, eVanguard, 1); + assertGraveyardCount(playerA,yOx, 1); + assertGraveyardCount(playerA, memnite, 1); + assertExileCount(playerA, dReturn, 1); + assertPermanentCount(playerA, bSable, 1); + } }