Corrections to Riftmarked Knight

Made ability only place a single token on the battlefield and only
trigger if the card getting its final counter removed is Riftmarked
Knight.
This commit is contained in:
JRHerlehy 2016-11-21 01:08:00 -08:00
parent d0383f4fb4
commit f7c322ade6

View file

@ -83,6 +83,10 @@ public class RiftmarkedKnight extends CardImpl {
} }
class RiftmarkedKnightTriggeredAbility extends TriggeredAbilityImpl { class RiftmarkedKnightTriggeredAbility extends TriggeredAbilityImpl {
/* We want this to only trigger once due to edge cases allowing it to fire multiple times
* if more counters are removed than remain on the suspended card. */
private boolean eventTriggered = false;
public RiftmarkedKnightTriggeredAbility() { super(Zone.EXILED, new CreateTokenEffect(new RiftmarkedKnightToken()), false); } public RiftmarkedKnightTriggeredAbility() { super(Zone.EXILED, new CreateTokenEffect(new RiftmarkedKnightToken()), false); }
public RiftmarkedKnightTriggeredAbility(final RiftmarkedKnightTriggeredAbility ability) { super(ability); } public RiftmarkedKnightTriggeredAbility(final RiftmarkedKnightTriggeredAbility ability) { super(ability); }
@ -96,7 +100,9 @@ class RiftmarkedKnightTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) { public boolean checkTrigger(GameEvent event, Game game) {
boolean trigger = false; boolean trigger = false;
if (game.getCard(event.getTargetId()).getCounters(game).getCount(CounterType.TIME) == 0) { if (event.getTargetId().equals(this.getSourceId()) && !eventTriggered &&
game.getCard(event.getTargetId()).getCounters(game).getCount(CounterType.TIME) == 0) {
eventTriggered = true;
trigger = true; trigger = true;
} }
return trigger; return trigger;