reverted change to triggered abilities (#6001)

This commit is contained in:
Evan Kranzler 2019-09-30 18:45:10 -04:00
parent 037998a187
commit 3d224ffb61
2 changed files with 24 additions and 18 deletions

View file

@ -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.";

View file

@ -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();