diff --git a/src/main/java/forge/game/phase/Upkeep.java b/src/main/java/forge/game/phase/Upkeep.java index 4b201a62ca3..317cac5788a 100644 --- a/src/main/java/forge/game/phase/Upkeep.java +++ b/src/main/java/forge/game/phase/Upkeep.java @@ -227,13 +227,20 @@ public class Upkeep extends Phase { *

*/ private static void upkeepSlowtrips() { - final Player player = Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn(); + Player turnOwner = Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn(); + + // does order matter here? + drawForSlowtrips(turnOwner); + for(Player p : Singletons.getModel().getGame().getPlayers()) { + if ( p == turnOwner ) continue; + drawForSlowtrips(p); + } + } + public static void drawForSlowtrips(final Player player) { List list = player.getSlowtripList(); - for (int i = 0; i < list.size(); i++) { - final Card card = list.get(i); - + for (Card card : list) { // otherwise another slowtrip gets added card.removeIntrinsicKeyword("Draw a card at the beginning of the next turn's upkeep."); @@ -250,31 +257,6 @@ public class Upkeep extends Phase { } player.clearSlowtripList(); - - // Do the same for the opponent - final Player opponent = player.getOpponent(); - - list = opponent.getSlowtripList(); - - for (int i = 0; i < list.size(); i++) { - final Card card = list.get(i); - - // otherwise another slowtrip gets added - card.removeIntrinsicKeyword("Draw a card at the beginning of the next turn's upkeep."); - - final Ability slowtrip = new Ability(card, "0") { - @Override - public void resolve() { - opponent.drawCard(); - } - }; - slowtrip.setStackDescription(card.getName() + " - Draw a card"); - slowtrip.setDescription(card + " - Draw a card."); - - Singletons.getModel().getGame().getStack().addSimultaneousStackEntry(slowtrip); - - } - opponent.clearSlowtripList(); } /**