diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/rohan/Card15_128.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/rohan/Card15_128.java new file mode 100644 index 000000000..1a94219de --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/rohan/Card15_128.java @@ -0,0 +1,42 @@ +package com.gempukku.lotro.cards.set15.rohan; + +import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.modifiers.*; + +import java.util.LinkedList; +import java.util.List; + +/** + * Set: The Hunters + * Side: Free + * Culture: Rohan + * Twilight Cost: 2 + * Type: Companion • Man + * Strength: 5 + * Vitality: 3 + * Resistance: 6 + * Game Text: While you can spot 2 mounts, Haleth is strength +2. While you can spot 3 mounts, Haleth is damage +1. + * While you can spot 4 Free Peoples mounts, those mounts can not be discarded by a Shadow player. + */ +public class Card15_128 extends AbstractCompanion { + public Card15_128() { + super(2, 5, 3, 6, Culture.ROHAN, Race.MAN, null, "Haleth", true); + } + + @Override + public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { + List modifiers = new LinkedList(); + modifiers.add( + new StrengthModifier(self, self, new SpotCondition(2, PossessionClass.MOUNT), 2)); + modifiers.add( + new KeywordModifier(self, self, new SpotCondition(3, PossessionClass.MOUNT), Keyword.DAMAGE, 1)); + modifiers.add( + new CantDiscardFromPlayModifier(self, "Can't be discarded by a Shadow player", new SpotCondition(4, Side.FREE_PEOPLE, PossessionClass.MOUNT), + Filters.and(Side.FREE_PEOPLE, PossessionClass.MOUNT), Side.SHADOW)); + return modifiers; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CantDiscardFromPlayModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CantDiscardFromPlayModifier.java index 34df27119..7d6953170 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CantDiscardFromPlayModifier.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CantDiscardFromPlayModifier.java @@ -1,20 +1,26 @@ package com.gempukku.lotro.logic.modifiers; -import com.gempukku.lotro.filters.Filter; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; public class CantDiscardFromPlayModifier extends AbstractModifier { - private Filter _sourceFilter; + private Filterable _sourceFilter; - public CantDiscardFromPlayModifier(PhysicalCard source, String text, Filter affectFilter, Filter sourceFilter) { + public CantDiscardFromPlayModifier(PhysicalCard source, String text, Filterable affectFilter, Filterable sourceFilter) { super(source, text, affectFilter, ModifierEffect.DISCARD_FROM_PLAY_MODIFIER); _sourceFilter = sourceFilter; } + public CantDiscardFromPlayModifier(PhysicalCard source, String text, Condition condition, Filterable affectFilter, Filterable sourceFilter) { + super(source, text, affectFilter, condition, ModifierEffect.DISCARD_FROM_PLAY_MODIFIER); + _sourceFilter = sourceFilter; + } + @Override public boolean canBeDiscardedFromPlay(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card, PhysicalCard source) { - if (_sourceFilter.accepts(gameState, modifiersQuerying, source)) + if (Filters.and(_sourceFilter).accepts(gameState, modifiersQuerying, source)) return false; return true; }