From 69cff6c920544316fe265c8c43ee9a6f075b0e23 Mon Sep 17 00:00:00 2001 From: Adrian Petrescu Date: Fri, 11 Oct 2019 09:59:06 -0400 Subject: [PATCH] Fix buggy login in SyrKonradTheGrimTriggeredAbility.checkTrigger() Basically needed to check that creatures leaving the graveyard belong to the controlling player. --- Mage.Sets/src/mage/cards/s/SyrKonradTheGrim.java | 8 ++++++-- .../org/mage/test/cards/single/SyrKonradTheGrimTest.java | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Mage.Sets/src/mage/cards/s/SyrKonradTheGrim.java b/Mage.Sets/src/mage/cards/s/SyrKonradTheGrim.java index aa61685d409..967fc744528 100644 --- a/Mage.Sets/src/mage/cards/s/SyrKonradTheGrim.java +++ b/Mage.Sets/src/mage/cards/s/SyrKonradTheGrim.java @@ -72,6 +72,7 @@ class SyrKonradTheGrimTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; + // Whenever another creature dies if (zEvent.isDiesEvent() && zEvent.getTarget() != null && !zEvent.getTargetId().equals(this.getSourceId()) @@ -79,6 +80,7 @@ class SyrKonradTheGrimTriggeredAbility extends TriggeredAbilityImpl { return true; } Card card = game.getCard(zEvent.getTargetId()); + // Or a creature card is put into a graveyard from anywhere other than the battlefield if (card == null || !card.isCreature()) { return false; } @@ -86,7 +88,9 @@ class SyrKonradTheGrimTriggeredAbility extends TriggeredAbilityImpl { && zEvent.getFromZone() != Zone.BATTLEFIELD) { return true; } - return zEvent.getFromZone() == Zone.GRAVEYARD; + // Or a creature card leaves your graveyard + return zEvent.getFromZone() == Zone.GRAVEYARD + && zEvent.getPlayerId() == this.getControllerId(); } @Override @@ -95,4 +99,4 @@ class SyrKonradTheGrimTriggeredAbility extends TriggeredAbilityImpl { "from anywhere other than the battlefield, or a creature card leaves your graveyard, " + "{this} deals 1 damage to each opponent."; } -} \ No newline at end of file +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/SyrKonradTheGrimTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/SyrKonradTheGrimTest.java index 511ed3a9389..f24543cf40f 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/SyrKonradTheGrimTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/SyrKonradTheGrimTest.java @@ -8,11 +8,13 @@ import org.mage.test.serverside.base.CardTestPlayerBase; public class SyrKonradTheGrimTest extends CardTestPlayerBase { @Test - public void ownGraveyardTriggerTest() { + public void leavesOwnGraveyardTriggerTest() { addCard(Zone.HAND, playerA, "Rest in Peace"); addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); addCard(Zone.BATTLEFIELD, playerA, "Syr Konrad, the Grim"); + // These leaving the graveyard *should* cause loss of life addCard(Zone.GRAVEYARD, playerA, "Grizzly Bears", 2); + // These ones *shouldn't* addCard(Zone.GRAVEYARD, playerB, "Grizzly Bears"); setStopAt(1, PhaseStep.UNTAP); execute();