diff --git a/Mage.Sets/src/mage/cards/d/DeathlessKnight.java b/Mage.Sets/src/mage/cards/d/DeathlessKnight.java index 88500d97e2b..8b536dbf103 100644 --- a/Mage.Sets/src/mage/cards/d/DeathlessKnight.java +++ b/Mage.Sets/src/mage/cards/d/DeathlessKnight.java @@ -59,25 +59,28 @@ class DeathlessKnightTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.GAINED_LIFE; + return event.getType() == GameEvent.EventType.GAINED_LIFE + || event.getType() == GameEvent.EventType.END_PHASE_POST; } @Override public boolean checkTrigger(GameEvent event, Game game) { - if (!event.getPlayerId().equals(controllerId) - || game.getState().getZone(this.getSourceId()) == Zone.GRAVEYARD - || triggeredOnce) { + if (event.getType() == GameEvent.EventType.END_PHASE_POST) { + triggeredOnce = false; + return false; + } + if (event.getType() != GameEvent.EventType.GAINED_LIFE + || !event.getPlayerId().equals(controllerId) + || game.getState().getZone(this.getSourceId()) == Zone.GRAVEYARD) { + return false; + } + if (triggeredOnce) { return false; } triggeredOnce = true; return true; } - @Override - public void reset(Game game) { - triggeredOnce = false; - } - @Override public String getRule() { return "When you gain life for the first time each turn, return {this} from your graveyard to your hand."; diff --git a/Mage/src/main/java/mage/abilities/common/DrawSecondCardTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DrawSecondCardTriggeredAbility.java index 9cec4aaf98c..becd3c41d1a 100644 --- a/Mage/src/main/java/mage/abilities/common/DrawSecondCardTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DrawSecondCardTriggeredAbility.java @@ -26,14 +26,22 @@ public class DrawSecondCardTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.DREW_CARD; + return event.getType() == GameEvent.EventType.DREW_CARD + || event.getType() == GameEvent.EventType.END_PHASE_POST; } @Override public boolean checkTrigger(GameEvent event, Game game) { - if (!event.getPlayerId().equals(controllerId) - || game.getPermanent(sourceId) == null - || triggeredOnce) { + if (event.getType() == GameEvent.EventType.END_PHASE_POST) { + triggeredOnce = false; + return false; + } + if (event.getType() != GameEvent.EventType.DREW_CARD + || !event.getPlayerId().equals(controllerId) + || game.getPermanent(sourceId) == null) { + return false; + } + if (triggeredOnce) { return false; } CardsAmountDrawnThisTurnWatcher watcher = game.getState().getWatcher(CardsAmountDrawnThisTurnWatcher.class); @@ -47,11 +55,6 @@ public class DrawSecondCardTriggeredAbility extends TriggeredAbilityImpl { return false; } - @Override - public void reset(Game game) { - triggeredOnce = false; - } - @Override public String getRule() { return "Whenever you draw your second card each turn, " + super.getRule();