diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/StartSkirmish.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/StartSkirmish.java index 9615b8ddf..3da111d9b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/StartSkirmish.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/StartSkirmish.java @@ -17,6 +17,7 @@ import com.gempukku.lotro.logic.timing.Effect; import org.json.simple.JSONObject; import java.util.Collection; +import java.util.LinkedList; import java.util.List; public class StartSkirmish implements EffectAppenderProducer { @@ -46,17 +47,19 @@ public class StartSkirmish implements EffectAppenderProducer { (actionContext) -> { final String assigningPlayer = playerSource.getPlayer(actionContext); Side assigningSide = GameUtils.getSide(actionContext.getGame(), assigningPlayer); - final Collection fpChar = actionContext.getCardsFromMemory("_tempFpCharacter"); + final Collection fpChar = actionContext.getCardsFromMemory("_fpCharacterTemp"); return Filters.assignableToSkirmishAgainst(assigningSide, Filters.in(fpChar), true, true, false); }, "_minionTemp", "you", "Choose minion to assign to character", environment)); result.addEffectAppender( new DelayedAppender() { @Override protected List createEffects(boolean cost, CostToEffectAction action, ActionContext actionContext) { + List result = new LinkedList<>(); final Collection fpChar = actionContext.getCardsFromMemory("_fpCharacterTemp"); final Collection minions = actionContext.getCardsFromMemory("_minionTemp"); if (fpChar.size() == 1 && !minions.isEmpty()) { - new AdditionalSkirmishPhaseEffect(fpChar.iterator().next(), minions); + result.add(new AdditionalSkirmishPhaseEffect(fpChar.iterator().next(), minions)); + return result; } return null; } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set10/Card_10_019_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set10/Card_10_019_Tests.java index d3738110e..88b8f5607 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set10/Card_10_019_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set10/Card_10_019_Tests.java @@ -1,10 +1,7 @@ package com.gempukku.lotro.cards.official.set10; import com.gempukku.lotro.cards.GenericCardTestHelper; -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.common.Timeword; +import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; @@ -20,8 +17,10 @@ public class Card_10_019_Tests return new GenericCardTestHelper( new HashMap<>() {{ - put("card", "10_19"); - // put other cards in here as needed for the test case + put("sprang", "10_19"); + put("gollum", "9_28"); + + put("sword", "1_299"); }}, GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FOTRFrodo, @@ -58,18 +57,37 @@ public class Card_10_019_Tests assertEquals(0, card.getBlueprint().getTwilightCost()); } - // Uncomment any @Test markers below once this is ready to be used - //@Test + @Test public void ADarkShapeSprangTest1() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); - scn.FreepsMoveCardToHand(card); + var sprang = scn.GetShadowCard("sprang"); + var gollum = scn.GetShadowCard("gollum"); + scn.ShadowMoveCardToHand(sprang, gollum); + + var frodo = scn.GetRingBearer(); + var sword = scn.GetFreepsCard("sword"); + scn.FreepsMoveCardToHand(sword); scn.StartGame(); - scn.FreepsPlayCard(card); - assertEquals(0, scn.GetTwilight()); + scn.SetTwilight(9); + scn.FreepsPlayCard(sword); + + assertTrue(scn.ShadowHasOptionalTriggerAvailable()); + assertEquals(Zone.HAND, gollum.getZone()); + assertEquals(0, scn.GetWoundsOn(frodo)); + scn.ShadowAcceptOptionalTrigger(); + assertEquals(Zone.SHADOW_CHARACTERS, gollum.getZone()); + //9 start, +1 from sword = 10; gollum costs 2 + 2 roaming -2 discount + assertEquals(8, scn.GetTwilight()); + + assertEquals(Phase.SKIRMISH, scn.GetCurrentPhase()); + scn.FreepsPassCurrentPhaseAction(); + scn.ShadowPassCurrentPhaseAction(); + assertEquals(Phase.FELLOWSHIP, scn.GetCurrentPhase()); + + assertEquals(1, scn.GetWoundsOn(gollum)); //lost skirmish } }