diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_143.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_143.java new file mode 100644 index 000000000..4a11efaf4 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_143.java @@ -0,0 +1,66 @@ +package com.gempukku.lotro.cards.set1.isengard; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.modifiers.CancelStrengthBonusModifier; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +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; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.LinkedList; +import java.util.List; + +/** + * Set: The Fellowship of the Ring + * Side: Shadow + * Culture: Isengard + * Twilight Cost: 5 + * Type: Minion • Uruk-Hai + * Strength: 9 + * Vitality: 4 + * Site: 5 + * Game Text: Damage +1. A character skirmishing this minion does not gain strength bonuses from weapons. + */ +public class Card1_143 extends AbstractMinion { + public Card1_143() { + super(5, 9, 4, 5, Culture.ISENGARD, "Troop of Uruk-hai", "1_143"); + addKeyword(Keyword.DAMAGE); + } + + @Override + public List getPlayablePhaseActions(String playerId, LotroGame game, PhysicalCard self) { + List actions = new LinkedList(); + + appendPlayMinionAction(actions, game, self); + + return actions; + } + + @Override + public Modifier getAlwaysOnEffect(final PhysicalCard self) { + return new CancelStrengthBonusModifier(self, Filters.and( + // Weapon bonus (Hand or Ranged) + Filters.or(Filters.keyword(Keyword.HAND_WEAPON), Filters.keyword(Keyword.RANGED_WEAPON)), + // That is attached to Companion or Ally + Filters.attachedTo(Filters.or(Filters.type(CardType.COMPANION), Filters.type(CardType.ALLY))), + // In a skirmish with this minion + new com.gempukku.lotro.filters.Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + Skirmish skirmish = gameState.getSkirmish(); + if (skirmish != null + && skirmish.getShadowCharacters().contains(self)) + return true; + return false; + } + } + )) + } +} 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 8b2ecbb41..a35fe48a5 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 @@ -158,9 +158,6 @@ public class Filters { return new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - if (physicalCard == null) { - System.out.println("Blah!"); - } return (physicalCard.getBlueprint().getCardType() == cardType); } }; @@ -175,6 +172,15 @@ public class Filters { }; } + public static Filter attachedTo(final Filter filter) { + return new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + return filter.accepts(gameState, modifiersQuerying, physicalCard.getAttachedTo()); + } + }; + } + public static Filter culture(final Culture culture) { return new Filter() { @Override