diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_011.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_011.java index 31fe1c770..8aa806973 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_011.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_011.java @@ -9,7 +9,6 @@ import com.gempukku.lotro.filters.Filters; 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.Skirmish; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; @@ -38,14 +37,14 @@ public class Card1_011 extends AbstractCompanion { @Override public Modifier getAlwaysOnEffect(final PhysicalCard self) { return new StrengthModifier(self, - new Filter() { - @Override - public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - Skirmish activeSkirmish = gameState.getSkirmish(); - return (activeSkirmish != null - && activeSkirmish.getFellowshipCharacter().equals(self) - && Filters.filter(activeSkirmish.getShadowCharacters(), gameState, modifiersQuerying, Filters.race(Race.ORC)).size() > 0); - } - }, 2); + Filters.and( + Filters.sameCard(self), + Filters.inSkirmish(), + new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + return Filters.canSpot(gameState, modifiersQuerying, Filters.race(Race.ORC), Filters.inSkirmish()); + } + }), 2); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_183.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_183.java index b425ba414..1ce935227 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_183.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_183.java @@ -51,11 +51,11 @@ public class Card1_183 extends AbstractPermanent { @Override public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { - if (PlayConditions.winsSkirmish(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.and(Filters.culture(Culture.MORIA), Filters.race(Race.ORC)))) { - List shadowCharacters = game.getGameState().getSkirmish().getShadowCharacters(); + if (PlayConditions.winsSkirmish(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.and(Filters.culture(Culture.MORIA), Filters.race(Race.ORC))) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.MORIA), Filters.race(Race.ORC), Filters.inSkirmish())) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, null, "Stack winning MORIA Orc on this condition"); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose a MORIA Orc", Filters.culture(Culture.MORIA), Filters.race(Race.ORC), Filters.in(shadowCharacters)) { + new ChooseActiveCardEffect(playerId, "Choose a MORIA Orc", Filters.culture(Culture.MORIA), Filters.race(Race.ORC), Filters.inSkirmish()) { @Override protected void cardSelected(PhysicalCard moriaOrc) { action.addEffect(new StackCardFromPlayEffect(moriaOrc, self)); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java index 3a1fd2f1e..cf4322ba8 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java @@ -63,6 +63,20 @@ public class Filters { return visitor.getCounter(); } + public static Filter inSkirmish() { + return new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + Skirmish skirmish = gameState.getSkirmish(); + if (skirmish != null) { + return (skirmish.getFellowshipCharacter() == physicalCard) + || skirmish.getShadowCharacters().contains(physicalCard); + } + return false; + } + }; + } + public static Filter notAssigned() { return new Filter() { @Override