From 12828b78d631755b1551450a1a4e2c0ec9590d41 Mon Sep 17 00:00:00 2001 From: Adrian Petrescu Date: Thu, 12 Sep 2019 14:32:59 -0400 Subject: [PATCH] Check Archfiend of Spite trigger on CREATURE_DAMAGED Currently, it ignored the trigger unless a player was also damaged (by other unblocked attacking creatures, for example), so there are plenty of situations where it will fail to occur. The included test fails against current master, but passes with the patch. Fixes #5971. --- .../src/mage/cards/a/ArchfiendOfSpite.java | 2 +- .../cards/single/ArchfiendOfSpiteTest.java | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 Mage.Tests/src/test/java/org/mage/test/cards/single/ArchfiendOfSpiteTest.java diff --git a/Mage.Sets/src/mage/cards/a/ArchfiendOfSpite.java b/Mage.Sets/src/mage/cards/a/ArchfiendOfSpite.java index be750846580..fc186f0ba0e 100644 --- a/Mage.Sets/src/mage/cards/a/ArchfiendOfSpite.java +++ b/Mage.Sets/src/mage/cards/a/ArchfiendOfSpite.java @@ -73,7 +73,7 @@ class ArchfiendOfSpiteAbility extends TriggeredAbilityImpl { @Override public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.DAMAGED_PLAYER; + return event.getType() == GameEvent.EventType.DAMAGED_CREATURE; } @Override diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/ArchfiendOfSpiteTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/ArchfiendOfSpiteTest.java new file mode 100644 index 00000000000..00622f14713 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/ArchfiendOfSpiteTest.java @@ -0,0 +1,32 @@ +package org.mage.test.cards.single; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Assert; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +public class ArchfiendOfSpiteTest extends CardTestPlayerBase { + + @Test + public void damageTriggerTest() { + addCard(Zone.BATTLEFIELD, playerA, "Archfiend of Spite"); + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1); + addCard(Zone.HAND, playerB, "Lightning Bolt", 1); + setStopAt(1, PhaseStep.UNTAP); + execute(); + + assertPermanentCount(playerA, "Archfiend of Spite", 1); + assertLife(playerB, 20); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Archfiend of Spite"); + setStopAt(1, PhaseStep.POSTCOMBAT_MAIN); + setStrictChooseMode(true); + execute(); + + assertPermanentCount(playerA, "Archfiend of Spite", 1); + assertPermanentCount(playerB, "Mountain", 1); + assertDamageReceived(playerA, "Archfiend of Spite", 3); + assertLife(playerB, 17); + } +}