From 9e6d9e8e3069618fc029e4894ee8fad86fa3a272 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Thu, 21 Feb 2019 16:19:12 +0100 Subject: [PATCH] PumpEffect: fixed Until Parameter for Player --- .../game/ability/effects/PumpEffect.java | 57 +++++++++---------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index c7841849b9e..5ed6907f405 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -94,32 +94,13 @@ public class PumpEffect extends SpellAbilityEffect { game.fireEvent(new GameEventCardStatsChanged(gameCard)); } }; - if (sa.hasParam("UntilEndOfCombat")) { - game.getEndOfCombat().addUntil(untilEOT); - } else if (sa.hasParam("UntilYourNextUpkeep")) { - game.getUpkeep().addUntil(sa.getActivatingPlayer(), untilEOT); - } else if (sa.hasParam("UntilHostLeavesPlay")) { - sa.getHostCard().addLeavesPlayCommand(untilEOT); - } else if (sa.hasParam("UntilHostLeavesPlayOrEOT")) { - sa.getHostCard().addLeavesPlayCommand(untilEOT); - game.getEndOfTurn().addUntil(untilEOT); - } else if (sa.hasParam("UntilLoseControlOfHost")) { - sa.getHostCard().addLeavesPlayCommand(untilEOT); - sa.getHostCard().addChangeControllerCommand(untilEOT); - } else if (sa.hasParam("UntilYourNextTurn")) { - game.getCleanup().addUntil(sa.getActivatingPlayer(), untilEOT); - } else if (sa.hasParam("UntilUntaps")) { - sa.getHostCard().addUntapCommand(untilEOT); - } else { - game.getEndOfTurn().addUntil(untilEOT); - } + addUntilCommand(sa, untilEOT); } game.fireEvent(new GameEventCardStatsChanged(gameCard)); } private static void applyPump(final SpellAbility sa, final Player p, final List keywords, final long timestamp) { - final Game game = p.getGame(); final Card host = sa.getHostCard(); //if host is not on the battlefield don't apply // Suspend should does Affect the Stack @@ -144,16 +125,32 @@ public class PumpEffect extends SpellAbilityEffect { } } }; - if (sa.hasParam("UntilEndOfCombat")) { - game.getEndOfCombat().addUntil(untilEOT); - } else if (sa.hasParam("UntilYourNextUpkeep")) { - game.getUpkeep().addUntil(sa.getActivatingPlayer(), untilEOT); - } else if (sa.hasParam("UntilLoseControlOfHost")) { - sa.getHostCard().addLeavesPlayCommand(untilEOT); - sa.getHostCard().addChangeControllerCommand(untilEOT); - } else { - game.getEndOfTurn().addUntil(untilEOT); - } + addUntilCommand(sa, untilEOT); + } + } + + private static void addUntilCommand(final SpellAbility sa, GameCommand untilEOT) { + final Card host = sa.getHostCard(); + final Game game = host.getGame(); + + if (sa.hasParam("UntilEndOfCombat")) { + game.getEndOfCombat().addUntil(untilEOT); + } else if (sa.hasParam("UntilYourNextUpkeep")) { + game.getUpkeep().addUntil(sa.getActivatingPlayer(), untilEOT); + } else if (sa.hasParam("UntilHostLeavesPlay")) { + host.addLeavesPlayCommand(untilEOT); + } else if (sa.hasParam("UntilHostLeavesPlayOrEOT")) { + host.addLeavesPlayCommand(untilEOT); + game.getEndOfTurn().addUntil(untilEOT); + } else if (sa.hasParam("UntilLoseControlOfHost")) { + host.addLeavesPlayCommand(untilEOT); + host.addChangeControllerCommand(untilEOT); + } else if (sa.hasParam("UntilYourNextTurn")) { + game.getCleanup().addUntil(sa.getActivatingPlayer(), untilEOT); + } else if (sa.hasParam("UntilUntaps")) { + host.addUntapCommand(untilEOT); + } else { + game.getEndOfTurn().addUntil(untilEOT); } }