diff --git a/src/main/java/forge/game/phase/PhaseUtil.java b/src/main/java/forge/game/phase/PhaseUtil.java index 6e07e0f77ca..8732531d906 100644 --- a/src/main/java/forge/game/phase/PhaseUtil.java +++ b/src/main/java/forge/game/phase/PhaseUtil.java @@ -25,7 +25,6 @@ import com.google.common.base.Predicate; import forge.Card; import forge.CardLists; -import forge.CardPredicates.Presets; import forge.card.cost.Cost; import forge.card.mana.ManaCost; import forge.card.spellability.Ability; diff --git a/src/main/java/forge/game/player/HumanPlay.java b/src/main/java/forge/game/player/HumanPlay.java index 1598e945088..a4f27bf67a8 100644 --- a/src/main/java/forge/game/player/HumanPlay.java +++ b/src/main/java/forge/game/player/HumanPlay.java @@ -185,7 +185,7 @@ public class HumanPlay { if (sa != null) { sa.setActivatingPlayer(player); - playSaWithoutPayingManaCost(player, sa); + playSaWithoutPayingManaCost(player.getGame(), sa); } } @@ -197,7 +197,7 @@ public class HumanPlay { * @param sa * a {@link forge.card.spellability.SpellAbility} object. */ - public static final void playSaWithoutPayingManaCost(final Player player, final SpellAbility sa) { + public static final void playSaWithoutPayingManaCost(final GameState game, final SpellAbility sa) { FThreads.assertExecutedByEdt(false); final Card source = sa.getSourceCard(); @@ -215,12 +215,12 @@ public class HumanPlay { if (sa.isSpell()) { final Card c = sa.getSourceCard(); if (!c.isCopiedSpell()) { - sa.setSourceCard(player.getGame().getAction().moveToStack(c)); + sa.setSourceCard(game.getAction().moveToStack(c)); } } boolean x = sa.getSourceCard().getManaCost().getShardCount(ManaCostShard.X) > 0; - player.getGame().getStack().add(sa, x); + game.getStack().add(sa, x); } } diff --git a/src/main/java/forge/game/player/PlayerController.java b/src/main/java/forge/game/player/PlayerController.java index 30bb3628d65..0db9708648a 100644 --- a/src/main/java/forge/game/player/PlayerController.java +++ b/src/main/java/forge/game/player/PlayerController.java @@ -78,6 +78,8 @@ public abstract class PlayerController { if ( handler.getPriorityPlayer() == player ) game.getPhaseHandler().passPriority(); +/* else // it is not our priority! - have to check if this works fine + game.getInputQueue().updateObservers(); */ } // Triggers preliminary choice: ask, decline or play diff --git a/src/main/java/forge/game/player/PlayerControllerHuman.java b/src/main/java/forge/game/player/PlayerControllerHuman.java index c7b57d828ff..6ebdc1330db 100644 --- a/src/main/java/forge/game/player/PlayerControllerHuman.java +++ b/src/main/java/forge/game/player/PlayerControllerHuman.java @@ -130,7 +130,7 @@ public class PlayerControllerHuman extends PlayerController { */ @Override public void playSpellAbilityForFree(SpellAbility copySA) { - HumanPlay.playSaWithoutPayingManaCost(player, copySA); + HumanPlay.playSaWithoutPayingManaCost(player.getGame(), copySA); } /* (non-Javadoc) diff --git a/src/main/java/forge/gui/GuiDisplayUtil.java b/src/main/java/forge/gui/GuiDisplayUtil.java index c72a74579d7..6c4a32a729e 100644 --- a/src/main/java/forge/gui/GuiDisplayUtil.java +++ b/src/main/java/forge/gui/GuiDisplayUtil.java @@ -418,7 +418,8 @@ public final class GuiDisplayUtil { game.getAction().moveToHand(forgeCard); // this is really needed (for rollbacks at least) // Human player is choosing targets for an ability controlled by chosen player. sa.setActivatingPlayer(p); - HumanPlay.playSaWithoutPayingManaCost(game.getPhaseHandler().getPriorityPlayer(), sa); + HumanPlay.playSaWithoutPayingManaCost(game, sa); + game.getInputQueue().updateObservers(); } }); }