used reset method on triggered abilities

This commit is contained in:
Evan Kranzler 2019-09-21 21:29:08 -04:00
parent c3807f6c38
commit 13ba8b0900
2 changed files with 18 additions and 24 deletions

View file

@ -59,28 +59,25 @@ class DeathlessKnightTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.GAINED_LIFE
|| event.getType() == GameEvent.EventType.END_PHASE_POST;
return event.getType() == GameEvent.EventType.GAINED_LIFE;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
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) {
if (!event.getPlayerId().equals(controllerId)
|| game.getState().getZone(this.getSourceId()) == Zone.GRAVEYARD
|| 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,22 +26,14 @@ public class DrawSecondCardTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.DREW_CARD
|| event.getType() == GameEvent.EventType.END_PHASE_POST;
return event.getType() == GameEvent.EventType.DREW_CARD;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
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) {
if (!event.getPlayerId().equals(controllerId)
|| game.getPermanent(sourceId) == null
|| triggeredOnce) {
return false;
}
CardsAmountDrawnThisTurnWatcher watcher = game.getState().getWatcher(CardsAmountDrawnThisTurnWatcher.class);
@ -55,6 +47,11 @@ 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();