From db907d122fe84e41a4ec5832035467b91dd5b673 Mon Sep 17 00:00:00 2001 From: marcins78 Date: Mon, 4 Mar 2013 11:48:19 +0000 Subject: [PATCH] - Game should now correctly apply any passive effects of sites on turn 1 of player 1. --- .../src/main/web/includes/changeLog.html | 1 + .../PlayersDrawEightCardsGameProcess.java | 8 ++- .../lotro/at/IndividualCardAtTest.java | 58 ++++++++++++++++++- 3 files changed, 62 insertions(+), 5 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html index 0fc0b4c0c..f5204203f 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html @@ -2,6 +2,7 @@ 4 Mar. 2013 - "Elrond", "Herald to Gil-galad" now gives an option, on how many times you wish to heal that ally. - "So Polite" now counts the threats when it resolves. +- Game should now correctly apply any passive effects of sites on turn 1 of player 1. 20 Feb. 2013 - Corruption check at the beginning of the game (after bidding) now takes into account all resistance modifiers. diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayersDrawEightCardsGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayersDrawEightCardsGameProcess.java index 468915981..a28280383 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayersDrawEightCardsGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayersDrawEightCardsGameProcess.java @@ -1,5 +1,6 @@ package com.gempukku.lotro.logic.timing.processes.pregame; +import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.timing.processes.GameProcess; @@ -21,10 +22,13 @@ public class PlayersDrawEightCardsGameProcess implements GameProcess { for (int i = 0; i < 8; i++) gameState.playerDrawsCard(player); } - if (game.getFormat().hasMulliganRule()) + if (game.getFormat().hasMulliganRule()) { + gameState.setCurrentPhase(Phase.BETWEEN_TURNS); _followingGameProcess = new MulliganProcess(game.getGameState().getPlayerOrder().getClockwisePlayOrder(_firstPlayer, false)); - else + } else { + gameState.setCurrentPhase(Phase.BETWEEN_TURNS); _followingGameProcess = new BetweenTurnsProcess(); + } } @Override diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java index 947339172..a0f7e17dc 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java @@ -13,9 +13,6 @@ import com.gempukku.lotro.logic.decisions.AwaitingDecisionType; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.timing.DefaultLotroGame; import com.gempukku.lotro.logic.vo.LotroDeck; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertTrue; -import static org.junit.Assert.assertFalse; import org.junit.Test; import java.util.Arrays; @@ -23,6 +20,10 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertFalse; + public class IndividualCardAtTest extends AbstractAtTest { @Test public void dwarvenAxeDoesNotFreeze() throws DecisionResultInvalidException { @@ -858,4 +859,55 @@ public class IndividualCardAtTest extends AbstractAtTest { assertFalse(_game.isFinished()); } + + @Test + public void greenHillCountryWorksForFirstPlayer() throws DecisionResultInvalidException { + Map decks = new HashMap(); + LotroDeck lotroDeck = new LotroDeck("Some deck"); + lotroDeck.setRingBearer("10_121"); + lotroDeck.setRing("1_2"); + // 7_330,7_336,8_117,7_342,7_345,7_350,8_120,10_120,7_360 + lotroDeck.addSite("1_323"); + lotroDeck.addSite("7_335"); + lotroDeck.addSite("8_117"); + lotroDeck.addSite("7_342"); + lotroDeck.addSite("7_345"); + lotroDeck.addSite("7_350"); + lotroDeck.addSite("8_120"); + lotroDeck.addSite("10_120"); + lotroDeck.addSite("7_360"); + lotroDeck.addCard("1_303"); + decks.put(P1, lotroDeck); + decks.put(P2, createSimplestDeck()); + + _userFeedback = new DefaultUserFeedback(); + + LotroFormatLibrary formatLibrary = new LotroFormatLibrary(_library); + LotroFormat format = formatLibrary.getFormat("movie"); + + _game = new DefaultLotroGame(format, decks, _userFeedback, _library); + _userFeedback.setGame(_game); + _game.startGame(); + + // Bidding + playerDecided(P1, "1"); + playerDecided(P2, "0"); + + // Seating choice + playerDecided(P1, "0"); + + // Play no starting companions + playerDecided(P1, ""); + + // Mulligans + playerDecided(P1, "0"); + playerDecided(P2, "0"); + + // Fellowship phase + AwaitingDecision playFellowshipAction = _userFeedback.getAwaitingDecision(P1); + assertEquals(AwaitingDecisionType.CARD_ACTION_CHOICE, playFellowshipAction.getDecisionType()); + playerDecided(P1, getCardActionId(playFellowshipAction, "Play Merry")); + + assertEquals(0, _game.getGameState().getTwilightPool()); + } }