diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set14.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set14.json index 7d4a3bf21..b24c89f17 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set14.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set14.json @@ -237,7 +237,8 @@ "amount": { "type": "printedStrengthFromMemory", "memory": "discardedCard" - } + }, + "until": "start(regroup)" } } ] diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseARace.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseARace.java index a3cecd24a..eae807c02 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseARace.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseARace.java @@ -13,8 +13,8 @@ import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; import com.gempukku.lotro.logic.timing.Effect; import org.json.simple.JSONObject; -import java.util.LinkedHashSet; import java.util.Set; +import java.util.TreeSet; public class ChooseARace implements EffectAppenderProducer { @Override @@ -26,7 +26,7 @@ public class ChooseARace implements EffectAppenderProducer { return new DelayedAppender() { @Override protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) { - final Set possibleRaces = new LinkedHashSet(); + final Set possibleRaces = new TreeSet<>(); for (Race race : Race.values()) { possibleRaces.add(race.getHumanReadable()); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java index 0946801bf..fcd264109 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java @@ -265,8 +265,16 @@ public class FilterFactory { return new FilterableSource() { @Override public Filterable getFilterable(ActionContext actionContext) { - final String value = (String) actionContext.getSource().getWhileInZoneData(); - return Race.valueOf(value); + return new Filter() { + @Override + public boolean accepts(LotroGame game, PhysicalCard physicalCard) { + final String value = (String) actionContext.getSource().getWhileInZoneData(); + if (value == null) + return false; + else + return Race.valueOf(value) == physicalCard.getBlueprint().getRace(); + } + }; } }; } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java index 3045d824b..6d0afdc34 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java @@ -518,4 +518,25 @@ public class NewCardsAtTest extends AbstractAtTest { assertEquals(Zone.DISCARD, blackBreath.getZone()); assertEquals(Zone.ATTACHED, blackBreath2.getZone()); } + + @Test + public void strengthBonus() throws DecisionResultInvalidException, CardNotFoundException { + initializeSimplestGame(); + + final PhysicalCardImpl grimbeorn = createCard(P1, "14_6"); + final PhysicalCardImpl nazgulInHand = createCard(P1, "40_211"); + final PhysicalCardImpl nazgul = createCard(P2, "40_211"); + + _game.getGameState().addCardToZone(_game, grimbeorn, Zone.FREE_CHARACTERS); + _game.getGameState().addCardToZone(_game, nazgul, Zone.SHADOW_CHARACTERS); + _game.getGameState().addCardToZone(_game, nazgulInHand, Zone.HAND); + + skipMulligans(); + + playerDecided(P1, ""); + playerDecided(P2, ""); + + playerDecided(P1, "0"); + playerDecided(P1, ""); + } }