diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java index 276898e66..8acbe1559 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java @@ -128,9 +128,19 @@ public class GameState { for (Map.Entry stringIntegerEntry : _playerPosition.entrySet()) listener.setPlayerPosition(stringIntegerEntry.getKey(), stringIntegerEntry.getValue()); + // First non-stacked non-attached cards for (List physicalCards : _inPlay.values()) - for (PhysicalCardImpl physicalCard : physicalCards) - listener.cardCreated(physicalCard); + for (PhysicalCardImpl physicalCard : physicalCards) { + if (physicalCard.getZone() != Zone.ATTACHED && physicalCard.getZone() != Zone.STACKED) + listener.cardCreated(physicalCard); + } + + // Now the stacked and attached ones + for (List physicalCards : _inPlay.values()) + for (PhysicalCardImpl physicalCard : physicalCards) { + if (physicalCard.getZone() == Zone.ATTACHED || physicalCard.getZone() == Zone.STACKED) + listener.cardCreated(physicalCard); + } List hand = _hands.get(playerId); if (hand != null) { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/PlayerPlaysNextSiteIfNotThereGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/PlayerPlaysNextSiteIfNotThereGameProcess.java index ae8ecc1fa..ef8927e0b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/PlayerPlaysNextSiteIfNotThereGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/PlayerPlaysNextSiteIfNotThereGameProcess.java @@ -6,6 +6,7 @@ import com.gempukku.lotro.game.LotroCardBlueprint; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.PlayOrder; import com.gempukku.lotro.logic.effects.PlayCardEffect; import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction; import com.gempukku.lotro.logic.timing.processes.GameProcess; @@ -35,10 +36,15 @@ public class PlayerPlaysNextSiteIfNotThereGameProcess implements GameProcess { if (nextSite == null) { LotroCardBlueprint.Direction nextSiteDirection = gameState.getCurrentSite().getBlueprint().getSiteDirection(); String playerToPlaySite; - if (nextSiteDirection == LotroCardBlueprint.Direction.LEFT) - playerToPlaySite = gameState.getPlayerOrder().getClockwisePlayOrder(gameState.getCurrentPlayerId(), false).getNextPlayer(); - else - playerToPlaySite = gameState.getPlayerOrder().getCounterClockwisePlayOrder(gameState.getCurrentPlayerId(), false).getNextPlayer(); + if (nextSiteDirection == LotroCardBlueprint.Direction.LEFT) { + PlayOrder order = gameState.getPlayerOrder().getClockwisePlayOrder(gameState.getCurrentPlayerId(), false); + order.getNextPlayer(); + playerToPlaySite = order.getNextPlayer(); + } else { + PlayOrder order = gameState.getPlayerOrder().getCounterClockwisePlayOrder(gameState.getCurrentPlayerId(), false); + order.getNextPlayer(); + playerToPlaySite = order.getNextPlayer(); + } nextSite = Filters.filter(gameState.getAdventureDeck(playerToPlaySite), gameState, _game.getModifiersQuerying(), Filters.siteNumber(nextSiteNumber)).get(0);