From 37456de949d6aa94af5703f4a341a4cc025a2fd9 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Mon, 19 Sep 2011 00:27:07 +0000 Subject: [PATCH] Opponent's sites should be played when player moves, not his own. Also the attached and stacked cards should be sent to player after all the non-stacked, non-attached are. --- .../com/gempukku/lotro/game/state/GameState.java | 14 ++++++++++++-- .../PlayerPlaysNextSiteIfNotThereGameProcess.java | 14 ++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) 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);