From 9b3d5cebab77413179e55d3f82f983a78e609f8b Mon Sep 17 00:00:00 2001 From: marcins78 Date: Fri, 25 Jul 2014 13:32:21 +0000 Subject: [PATCH] Introducing adventures. --- .../com/gempukku/lotro/game/Adventure.java | 17 +++++ .../game/adventure/DefaultAdventure.java | 76 +++++++++++++++++++ .../gempukku/lotro/game/state/LotroGame.java | 2 + .../lotro/logic/timing/DefaultLotroGame.java | 5 ++ .../lotro/logic/timing/TurnProcedure.java | 11 ++- ...ingBearerRingAndAddBurdersGameProcess.java | 1 - .../processes/turn/RegroupGameProcess.java | 3 +- .../turn/archery/ArcheryFireGameProcess.java | 4 +- ...PeoplePlayerAssignsMinionsGameProcess.java | 4 +- .../turn/move/MovementGameProcess.java | 31 +------- .../regroup/DiscardAllMinionsGameProcess.java | 9 +-- ...pPlayerChoosesToMoveOrStayGameProcess.java | 13 ++-- 12 files changed, 127 insertions(+), 49 deletions(-) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/Adventure.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/Adventure.java index 2ee2214c9..957c1aecf 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/Adventure.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/Adventure.java @@ -2,8 +2,25 @@ package com.gempukku.lotro.game; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.actions.DefaultActionsEnvironment; +import com.gempukku.lotro.logic.actions.SystemQueueAction; import com.gempukku.lotro.logic.modifiers.ModifiersLogic; +import com.gempukku.lotro.logic.timing.PlayerOrderFeedback; +import com.gempukku.lotro.logic.timing.processes.GameProcess; + +import java.util.Set; public interface Adventure { public void applyAdventureRules(LotroGame game, DefaultActionsEnvironment actionsEnvironment, ModifiersLogic modifiersLogic); + + public void appendNextSiteAction(SystemQueueAction action); + + public GameProcess getAfterFellowshipArcheryGameProcess(int fellowshipArcheryTotal, GameProcess followingProcess); + + public GameProcess getAfterFellowshipAssignmentGameProcess(Set leftoverMinions, GameProcess followingProcess); + + GameProcess getBeforeFellowshipChooseToMoveGameProcess(GameProcess followingProcess); + + GameProcess getPlayerStaysGameProcess(LotroGame game, GameProcess followingProcess); + + GameProcess getStartingGameProcess(Set players, PlayerOrderFeedback playerOrderFeedback); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/adventure/DefaultAdventure.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/adventure/DefaultAdventure.java index ccf321585..b7abae98f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/adventure/DefaultAdventure.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/adventure/DefaultAdventure.java @@ -1,14 +1,90 @@ package com.gempukku.lotro.game.adventure; import com.gempukku.lotro.game.Adventure; +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.game.state.actions.DefaultActionsEnvironment; +import com.gempukku.lotro.logic.PlayOrder; +import com.gempukku.lotro.logic.actions.SystemQueueAction; +import com.gempukku.lotro.logic.effects.PlaySiteEffect; import com.gempukku.lotro.logic.modifiers.ModifiersLogic; +import com.gempukku.lotro.logic.timing.PlayerOrderFeedback; +import com.gempukku.lotro.logic.timing.UnrespondableEffect; +import com.gempukku.lotro.logic.timing.processes.GameProcess; +import com.gempukku.lotro.logic.timing.processes.pregame.BiddingGameProcess; +import com.gempukku.lotro.logic.timing.processes.turn.archery.FellowshipPlayerChoosesShadowPlayerToAssignDamageToGameProcess; +import com.gempukku.lotro.logic.timing.processes.turn.assign.ShadowPlayersAssignTheirMinionsGameProcess; +import com.gempukku.lotro.logic.timing.processes.turn.regroup.DiscardAllMinionsGameProcess; +import com.gempukku.lotro.logic.timing.processes.turn.regroup.PlayerReconcilesGameProcess; +import com.gempukku.lotro.logic.timing.processes.turn.regroup.ReturnFollowersToSupportGameProcess; +import com.gempukku.lotro.logic.timing.processes.turn.regroup.ShadowPlayersReconcileGameProcess; import com.gempukku.lotro.logic.timing.rules.WinConditionRule; +import java.util.Set; + public class DefaultAdventure implements Adventure { @Override public void applyAdventureRules(LotroGame game, DefaultActionsEnvironment actionsEnvironment, ModifiersLogic modifiersLogic) { new WinConditionRule(actionsEnvironment).applyRule(); } + + @Override + public void appendNextSiteAction(final SystemQueueAction action) { + action.appendEffect( + new UnrespondableEffect() { + @Override + protected void doPlayEffect(LotroGame game) { + GameState gameState = game.getGameState(); + + final int nextSiteNumber = gameState.getCurrentSiteNumber() + 1; + PhysicalCard nextSite = gameState.getSite(nextSiteNumber); + + if (nextSite == null) { + LotroCardBlueprint.Direction nextSiteDirection = gameState.getCurrentSite().getBlueprint().getSiteDirection(); + String playerToPlaySite; + 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(); + } + + action.insertEffect( + new PlaySiteEffect(action, playerToPlaySite, null, nextSiteNumber)); + } + } + }); + } + + @Override + public GameProcess getAfterFellowshipArcheryGameProcess(int fellowshipArcheryTotal, GameProcess followingProcess) { + return new FellowshipPlayerChoosesShadowPlayerToAssignDamageToGameProcess(fellowshipArcheryTotal, followingProcess); + } + + @Override + public GameProcess getAfterFellowshipAssignmentGameProcess(Set leftoverMinions, GameProcess followingProcess) { + return new ShadowPlayersAssignTheirMinionsGameProcess(followingProcess, leftoverMinions); + } + + @Override + public GameProcess getBeforeFellowshipChooseToMoveGameProcess(GameProcess followingProcess) { + return new ShadowPlayersReconcileGameProcess(followingProcess); + } + + @Override + public GameProcess getPlayerStaysGameProcess(LotroGame game, GameProcess followingProcess) { + return new PlayerReconcilesGameProcess(game.getGameState().getCurrentPlayerId(), + new ReturnFollowersToSupportGameProcess( + new DiscardAllMinionsGameProcess(followingProcess))); + } + + @Override + public GameProcess getStartingGameProcess(Set players, PlayerOrderFeedback playerOrderFeedback) { + return new BiddingGameProcess(players, playerOrderFeedback); + } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/LotroGame.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/LotroGame.java index a58b842c5..892fdaaf2 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/LotroGame.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/LotroGame.java @@ -31,4 +31,6 @@ public interface LotroGame { public LotroFormat getFormat(); public boolean shouldAutoPass(String playerId, Phase phase); + + public boolean isSolo(); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java index bf2660dc0..36fd3d921 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/DefaultLotroGame.java @@ -105,6 +105,11 @@ public class DefaultLotroGame implements LotroGame { return passablePhases.contains(phase); } + @Override + public boolean isSolo() { + return _allPlayers.size() == 1; + } + public void addGameResultListener(GameResultListener listener) { _gameResultListeners.add(listener); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java index e2615a7f7..f0445a185 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java @@ -12,14 +12,19 @@ import com.gempukku.lotro.logic.decisions.ActionSelectionDecision; import com.gempukku.lotro.logic.decisions.CardActionSelectionDecision; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.timing.processes.GameProcess; -import com.gempukku.lotro.logic.timing.processes.pregame.BiddingGameProcess; import com.gempukku.lotro.logic.timing.results.DiscardCardsFromPlayResult; import com.gempukku.lotro.logic.timing.results.KilledResult; import com.gempukku.lotro.logic.timing.results.ReturnCardsToHandResult; import com.gempukku.lotro.logic.timing.rules.CharacterDeathRule; import com.gempukku.lotro.logic.timing.rules.InitiativeChangeRule; -import java.util.*; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; // Action generates multiple Effects, both costs and result of an action are Effects. @@ -42,7 +47,7 @@ public class TurnProcedure { _gameStats = new GameStats(); - _gameProcess = new BiddingGameProcess(players, playerOrderFeedback); + _gameProcess = lotroGame.getFormat().getAdventure().getStartingGameProcess(players, playerOrderFeedback); } public GameStats getGameStats() { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java index c8b5b92a6..bfc5bea1a 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java @@ -12,7 +12,6 @@ import java.util.Map; public class PlayRingBearerRingAndAddBurdersGameProcess implements GameProcess { private Map _bids; private String _firstPlayer; - private GameProcess _nextProcess; public PlayRingBearerRingAndAddBurdersGameProcess(Map bids, String firstPlayer) { _bids = bids; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/RegroupGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/RegroupGameProcess.java index b7cf862d7..bfd6f72e8 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/RegroupGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/RegroupGameProcess.java @@ -6,7 +6,6 @@ import com.gempukku.lotro.logic.timing.processes.GameProcess; import com.gempukku.lotro.logic.timing.processes.turn.general.PlayersPlayPhaseActionsInOrderGameProcess; import com.gempukku.lotro.logic.timing.processes.turn.general.StartOfPhaseGameProcess; import com.gempukku.lotro.logic.timing.processes.turn.regroup.FellowshipPlayerChoosesToMoveOrStayGameProcess; -import com.gempukku.lotro.logic.timing.processes.turn.regroup.ShadowPlayersReconcileGameProcess; public class RegroupGameProcess implements GameProcess { private GameProcess _followingGameProcess; @@ -15,7 +14,7 @@ public class RegroupGameProcess implements GameProcess { public void process(LotroGame game) { _followingGameProcess = new StartOfPhaseGameProcess(Phase.REGROUP, new PlayersPlayPhaseActionsInOrderGameProcess(game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), true), 0, - new ShadowPlayersReconcileGameProcess( + game.getFormat().getAdventure().getBeforeFellowshipChooseToMoveGameProcess( new FellowshipPlayerChoosesToMoveOrStayGameProcess()))); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ArcheryFireGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ArcheryFireGameProcess.java index 948bf59f4..f739b6d86 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ArcheryFireGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ArcheryFireGameProcess.java @@ -9,6 +9,7 @@ public class ArcheryFireGameProcess implements GameProcess { private int _fellowshipArcheryTotal; private int _shadowArcheryTotal; + private LotroGame _game; public ArcheryFireGameProcess(GameProcess followingGameProcess) { _followingGameProcess = followingGameProcess; @@ -16,6 +17,7 @@ public class ArcheryFireGameProcess implements GameProcess { @Override public void process(LotroGame game) { + _game = game; _fellowshipArcheryTotal = RuleUtils.calculateFellowshipArcheryTotal(game); _shadowArcheryTotal = RuleUtils.calculateShadowArcheryTotal(game); @@ -25,6 +27,6 @@ public class ArcheryFireGameProcess implements GameProcess { @Override public GameProcess getNextProcess() { return new FellowshipPlayerAssignsArcheryDamageGameProcess(_shadowArcheryTotal, - new FellowshipPlayerChoosesShadowPlayerToAssignDamageToGameProcess(_fellowshipArcheryTotal, _followingGameProcess)); + _game.getFormat().getAdventure().getAfterFellowshipArcheryGameProcess(_fellowshipArcheryTotal, _followingGameProcess)); } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/assign/FreePeoplePlayerAssignsMinionsGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/assign/FreePeoplePlayerAssignsMinionsGameProcess.java index 78fa0403f..a7eafa2ee 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/assign/FreePeoplePlayerAssignsMinionsGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/assign/FreePeoplePlayerAssignsMinionsGameProcess.java @@ -26,6 +26,7 @@ import java.util.Set; public class FreePeoplePlayerAssignsMinionsGameProcess implements GameProcess { private Set _leftoverMinions; private GameProcess _followingAssignments; + private LotroGame _game; public FreePeoplePlayerAssignsMinionsGameProcess(GameProcess followingAssignments) { _followingAssignments = followingAssignments; @@ -33,6 +34,7 @@ public class FreePeoplePlayerAssignsMinionsGameProcess implements GameProcess { @Override public void process(LotroGame game) { + _game = game; final SystemQueueAction action = new SystemQueueAction(); action.appendEffect( new TriggeringResultEffect(new FreePlayerStartsAssigningResult(), "Free people player starts assigning")); @@ -94,6 +96,6 @@ public class FreePeoplePlayerAssignsMinionsGameProcess implements GameProcess { @Override public GameProcess getNextProcess() { - return new ShadowPlayersAssignTheirMinionsGameProcess(_followingAssignments, _leftoverMinions); + return _game.getFormat().getAdventure().getAfterFellowshipAssignmentGameProcess(_leftoverMinions, _followingAssignments); } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/MovementGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/MovementGameProcess.java index c4c8f833e..cd2e38725 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/MovementGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/move/MovementGameProcess.java @@ -3,14 +3,11 @@ package com.gempukku.lotro.logic.timing.processes.turn.move; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; -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.actions.SystemQueueAction; import com.gempukku.lotro.logic.effects.AddTwilightEffect; -import com.gempukku.lotro.logic.effects.PlaySiteEffect; import com.gempukku.lotro.logic.effects.TriggeringResultEffect; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.timing.UnrespondableEffect; @@ -37,33 +34,7 @@ public class MovementGameProcess implements GameProcess { game.getGameState().setMoving(true); } }); - action.appendEffect( - new UnrespondableEffect() { - @Override - protected void doPlayEffect(LotroGame game) { - GameState gameState = game.getGameState(); - - final int nextSiteNumber = gameState.getCurrentSiteNumber() + 1; - PhysicalCard nextSite = gameState.getSite(nextSiteNumber); - - if (nextSite == null) { - LotroCardBlueprint.Direction nextSiteDirection = gameState.getCurrentSite().getBlueprint().getSiteDirection(); - String playerToPlaySite; - 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(); - } - - action.insertEffect( - new PlaySiteEffect(action, playerToPlaySite, null, nextSiteNumber)); - } - } - }); + game.getFormat().getAdventure().appendNextSiteAction(action); action.appendEffect( new TriggeringResultEffect(new WhenMoveFromResult(currentSite), "Fellowship moved from")); action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/DiscardAllMinionsGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/DiscardAllMinionsGameProcess.java index 496fd9d40..a4b114c8e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/DiscardAllMinionsGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/DiscardAllMinionsGameProcess.java @@ -1,25 +1,24 @@ package com.gempukku.lotro.logic.timing.processes.turn.regroup; import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.SystemQueueAction; import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; import com.gempukku.lotro.logic.timing.processes.GameProcess; -import com.gempukku.lotro.logic.timing.processes.turn.EndOfTurnGameProcess; -import com.gempukku.lotro.logic.timing.processes.turn.general.EndOfPhaseGameProcess; public class DiscardAllMinionsGameProcess implements GameProcess { private GameProcess _followingGameProcess; + public DiscardAllMinionsGameProcess(GameProcess followingGameProcess) { + _followingGameProcess = followingGameProcess; + } + @Override public void process(LotroGame game) { SystemQueueAction action = new SystemQueueAction(); action.appendEffect( new DiscardCardsFromPlayEffect(null, CardType.MINION)); game.getActionsEnvironment().addActionToStack(action); - _followingGameProcess = new EndOfPhaseGameProcess(Phase.REGROUP, - new EndOfTurnGameProcess()); } @Override diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/FellowshipPlayerChoosesToMoveOrStayGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/FellowshipPlayerChoosesToMoveOrStayGameProcess.java index 0015508c5..c244c3438 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/FellowshipPlayerChoosesToMoveOrStayGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/regroup/FellowshipPlayerChoosesToMoveOrStayGameProcess.java @@ -7,6 +7,7 @@ import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision; import com.gempukku.lotro.logic.modifiers.ModifierFlag; import com.gempukku.lotro.logic.timing.RuleUtils; import com.gempukku.lotro.logic.timing.processes.GameProcess; +import com.gempukku.lotro.logic.timing.processes.turn.EndOfTurnGameProcess; import com.gempukku.lotro.logic.timing.processes.turn.ShadowPhasesGameProcess; import com.gempukku.lotro.logic.timing.processes.turn.general.EndOfPhaseGameProcess; import com.gempukku.lotro.logic.timing.processes.turn.move.MovementGameProcess; @@ -29,13 +30,13 @@ public class FellowshipPlayerChoosesToMoveOrStayGameProcess implements GameProce if (result.equals("Yes")) playerMoves(); else { - playerStays(currentPlayerId); + playerStays(game); } } }); } } else { - playerStays(currentPlayerId); + playerStays(game); } } @@ -45,10 +46,10 @@ public class FellowshipPlayerChoosesToMoveOrStayGameProcess implements GameProce new ShadowPhasesGameProcess())); } - private void playerStays(String currentPlayerId) { - _nextProcess = new PlayerReconcilesGameProcess(currentPlayerId, - new ReturnFollowersToSupportGameProcess( - new DiscardAllMinionsGameProcess())); + private void playerStays(LotroGame game) { + _nextProcess = game.getFormat().getAdventure().getPlayerStaysGameProcess(game, + new EndOfPhaseGameProcess(Phase.REGROUP, + new EndOfTurnGameProcess())); } @Override