Merge pull request #2368 from Dilnu/master

Fix Flashback so it can't cause Stack Overflows
This commit is contained in:
Samuel Sandeen 2016-09-23 21:25:43 -04:00 committed by GitHub
commit ad2f5a4d46
2 changed files with 4 additions and 3 deletions

View file

@ -88,7 +88,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
MageObject object = game.getObject(getSourceId()); MageObject object = game.getObject(getSourceId());
Player player = game.getPlayer(this.getControllerId()); Player player = game.getPlayer(this.getControllerId());
if (player != null && object != null) { if (player != null && object != null) {
if (!player.chooseUse(getEffects().get(0).getOutcome(), (object != null ? this.getRule(object.getLogName()) : this.getRule()), this, game)) { if (!player.chooseUse(getEffects().get(0).getOutcome(), this.getRule(object.getLogName()), this, game)) {
return false; return false;
} }
} else { } else {
@ -216,7 +216,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
/* /*
603.6c,603.6d 603.6c,603.6d
This has to be set, if the triggered ability has to check back in time if the permanent the ability is connected to had the ability on the battlefeild while the trigger is checked This has to be set, if the triggered ability has to check back in time if the permanent the ability is connected to had the ability on the battlefield while the trigger is checked
*/ */
@Override @Override
public final void setLeavesTheBattlefieldTrigger(boolean leavesTheBattlefieldTrigger) { public final void setLeavesTheBattlefieldTrigger(boolean leavesTheBattlefieldTrigger) {

View file

@ -274,7 +274,8 @@ class FlashbackReplacementEffect extends ReplacementEffectImpl {
if (controller != null) { if (controller != null) {
Card card = game.getCard(event.getTargetId()); Card card = game.getCard(event.getTargetId());
if (card != null) { if (card != null) {
return controller.moveCards(card, Zone.EXILED, source, game); return controller.moveCards(
card, Zone.EXILED, source, game, false, false, false, event.getAppliedEffects());
} }
} }
return false; return false;