From db31a446b18aa805a5989b54fd0966e275e7b895 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 6 Dec 2011 13:24:23 +0000 Subject: [PATCH] "Furious Uruk" --- .../RemoveSpecialAbilitiesModifier.java | 34 ++++++++++++++++++ .../lotro/cards/set11/shire/Card11_168.java | 2 +- .../cards/set11/uruk_hai/Card11_186.java | 35 +++++++++++++++++++ .../com/gempukku/lotro/filters/Filters.java | 2 ++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/RemoveSpecialAbilitiesModifier.java create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_186.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/RemoveSpecialAbilitiesModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/RemoveSpecialAbilitiesModifier.java new file mode 100644 index 000000000..363fbe2db --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/RemoveSpecialAbilitiesModifier.java @@ -0,0 +1,34 @@ +package com.gempukku.lotro.cards.modifiers; + +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.GameState; +import com.gempukku.lotro.logic.modifiers.AbstractModifier; +import com.gempukku.lotro.logic.modifiers.Condition; +import com.gempukku.lotro.logic.modifiers.ModifierEffect; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; +import com.gempukku.lotro.logic.timing.Action; + +public class RemoveSpecialAbilitiesModifier extends AbstractModifier { + private Phase _phase; + private Filterable _affectFilter; + + public RemoveSpecialAbilitiesModifier(PhysicalCard source, Filterable affectFilter) { + this(source, null, affectFilter); + } + + public RemoveSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Filterable affectFilter) { + super(source, "Removed special abilities", affectFilter, condition, ModifierEffect.ACTION_MODIFIER); + _affectFilter = affectFilter; + } + + @Override + public boolean canPlayAction(GameState gameState, ModifiersQuerying modifiersQuerying, String performingPlayer, Action action) { + if (action.getType() == Action.Type.SPECIAL_ABILITY + && action.getActionSource() != null && Filters.and(_affectFilter).accepts(gameState, modifiersQuerying, action.getActionSource())) + return false; + return true; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java index a1a3ac67f..4110e53f5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java @@ -30,6 +30,6 @@ public class Card11_168 extends AbstractCompanion { public Modifier getAlwaysOnModifier(PhysicalCard self) { return new StrengthModifier(self, self, null, new MultiplyEvaluator(2, - new CountActiveEvaluator(Filters.not(self), Filters.unboundCompanion, Filters.assignedAgainst(Filters.any)))); + new CountActiveEvaluator(Filters.not(self), Filters.unboundCompanion, Filters.assignedToSkirmish))); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_186.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_186.java new file mode 100644 index 000000000..4b81d106c --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_186.java @@ -0,0 +1,35 @@ +package com.gempukku.lotro.cards.set11.uruk_hai; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.modifiers.RemoveSpecialAbilitiesModifier; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.SpotCondition; + +/** + * Set: Shadows + * Side: Shadow + * Culture: Uruk-hai + * Twilight Cost: 3 + * Type: Minion • Uruk-Hai + * Strength: 9 + * Vitality: 2 + * Site: 5 + * Game Text: Damage +1. While this minion is assigned to a skirmish, each companion and Free Peoples possession loses + * its special abilities. + */ +public class Card11_186 extends AbstractMinion { + public Card11_186() { + super(3, 9, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Furious Uruk"); + addKeyword(Keyword.DAMAGE, 1); + } + + @Override + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new RemoveSpecialAbilitiesModifier(self, + new SpotCondition(self, Filters.assignedToSkirmish), + Filters.or(CardType.COMPANION, Filters.and(Side.FREE_PEOPLE, CardType.POSSESSION))); + } +} 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 616cd8d24..3443e8357 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 @@ -389,6 +389,8 @@ public class Filters { } }; + public static final Filter assignedToSkirmish = Filters.not(Filters.notAssignedToSkirmish); + public static final Filter assignedAgainst(final Filterable... againstFilters) { return new Filter() { @Override