diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_158.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_158.java deleted file mode 100644 index d27317f44..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_158.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; -import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator; -import com.gempukku.lotro.logic.modifiers.evaluator.MultiplyEvaluator; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 9 - * Vitality: 3 - * Site: 5 - * Game Text: Damage +1. Shadow: Exert this minion and spot a Free Peoples condition to make an unbound companion - * resistance -1 for each card that has the same card title as that condition. - */ -public class Card13_158 extends AbstractMinion { - public Card13_158() { - super(4, 9, 3, 5, Race.URUK_HAI, Culture.URUK_HAI, "Assault Commander"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public List getPhaseActionsInPlay(final String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0) - && PlayConditions.canSelfExert(self, game) - && PlayConditions.canSpot(game, Side.FREE_PEOPLE, CardType.CONDITION)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendCost( - new ChooseActiveCardEffect(self, playerId, "Choose a Free Peoples condition") { - @Override - protected void cardSelected(LotroGame game, final PhysicalCard condition) { - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose an unbound companion", Filters.unboundCompanion) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard companion) { - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new ResistanceModifier(self, companion, null, - new MultiplyEvaluator(-1, new CountActiveEvaluator(Filters.name(condition.getBlueprint().getTitle())))))); - } - }); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_159.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_159.java deleted file mode 100644 index 5175b84af..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_159.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.evaluator.CountCultureTokensEvaluator; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 9 - * Vitality: 2 - * Site: 5 - * Game Text: Damage +1. This minion is strength +1 for each Free Peoples culture token you can spot. - */ -public class Card13_159 extends AbstractMinion { - public Card13_159() { - super(4, 9, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Assault Denizen"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { -return Collections.singletonList(new StrengthModifier(self, self, null, new CountCultureTokensEvaluator(Side.FREE_PEOPLE))); -} -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_160.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_160.java deleted file mode 100644 index 5b0b5c768..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_160.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.modifiers.CantTakeWoundsModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.SpotCondition; -import com.gempukku.lotro.logic.modifiers.condition.AndCondition; -import com.gempukku.lotro.logic.modifiers.condition.NotCondition; -import com.gempukku.lotro.logic.modifiers.condition.PhaseCondition; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 2 - * Type: Minion • Uruk-Hai - * Strength: 6 - * Vitality: 1 - * Site: 5 - * Game Text: Damage +1. While you can spot a Free Peoples culture token, this minion cannot take wounds except during - * skirmishes. - */ -public class Card13_160 extends AbstractMinion { - public Card13_160() { - super(2, 6, 1, 5, Race.URUK_HAI, Culture.URUK_HAI, "Cavern Denizen"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public java.util.List getInPlayModifiers(LotroGame game, PhysicalCard self) { -return java.util.Collections.singletonList(new CantTakeWoundsModifier(self, -new AndCondition( -new NotCondition(new PhaseCondition(Phase.SKIRMISH)), -new SpotCondition(Side.FREE_PEOPLE, Filters.hasAnyCultureTokens(1))), -self)); -} -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_161.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_161.java deleted file mode 100644 index 2ce6dcb73..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_161.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 1 - * Type: Condition • Support Area - * Game Text: Skirmish: Discard this condition to make an [URUK-HAI] minion strength +1 for each of the following that - * is true: it is at a battleground site; it is skirmishing a companion who has resistance 4 or less; it is bearing - * a possession; you can spot an [URUK-HAI] minion not assigned to a skirmish. - */ -public class Card13_161 extends AbstractPermanent { - public Card13_161() { - super(Side.SHADOW, 1, CardType.CONDITION, Culture.URUK_HAI, "Endless Assault"); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canSelfDiscard(self, game)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose an URUK-HAI minion", Culture.URUK_HAI, CardType.MINION) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard minion) { - int bonus = 0; - if (PlayConditions.location(game, Keyword.BATTLEGROUND)) - bonus++; - if (PlayConditions.canSpot(game, minion, Filters.inSkirmishAgainst(CardType.COMPANION, Filters.maxResistance(4)))) - bonus++; - if (PlayConditions.canSpot(game, minion, Filters.hasAttached(CardType.POSSESSION))) - bonus++; - if (PlayConditions.canSpot(game, Culture.URUK_HAI, CardType.MINION, Filters.notAssignedToSkirmish)) - bonus++; - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new StrengthModifier(self, minion, bonus))); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_162.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_162.java deleted file mode 100644 index aebbe84b1..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_162.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.AddTwilightEffect; -import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 1 - * Type: Condition • Support Area - * Game Text: To play, spot 2 [URUK-HAI] minions. Shadow: Discard 2 cards from hand to add (1). Regroup: Spot - * an [URUK-HAI] minion and discard this condition from play to add (3). - */ -public class Card13_162 extends AbstractPermanent { - public Card13_162() { - super(Side.SHADOW, 1, CardType.CONDITION, Culture.URUK_HAI, "Enemy Without Number"); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, 2, Culture.URUK_HAI, CardType.MINION); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0) - && PlayConditions.canDiscardFromHand(game, playerId, 2, Filters.any)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 2)); - action.appendEffect( - new AddTwilightEffect(self, 1)); - return Collections.singletonList(action); - } - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0) - && PlayConditions.canSpot(game, Culture.URUK_HAI, CardType.MINION) - && PlayConditions.canSelfDiscard(self, game)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new AddTwilightEffect(self, 3)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_163.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_163.java deleted file mode 100644 index b41c4187a..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_163.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.modifiers.CantDiscardFromPlayModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 9 - * Vitality: 2 - * Site: 5 - * Game Text: Damage +1. Lurker. (Skirmishes involving lurker minions must be resolved after any others.) - * Possessions borne by this minion cannot be discarded by Free Peoples cards. - */ -public class Card13_163 extends AbstractMinion { - public Card13_163() { - super(4, 9, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Entranced Uruk"); - addKeyword(Keyword.DAMAGE, 1); - addKeyword(Keyword.LURKER); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { -return Collections.singletonList(new CantDiscardFromPlayModifier(self, "Can't be discarded by Free Peoples cards", -Filters.and(CardType.POSSESSION, Filters.attachedTo(self)), -Filters.and(Side.FREE_PEOPLE))); -} -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_164.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_164.java deleted file mode 100644 index 99b96c67c..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_164.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.ReinforceTokenEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 1 - * Type: Condition • Support Area - * Game Text: To play, spot an [URUK-HAI] minion. When you play this, if you spot a battleground site on the adventure - * path, reinforce 3 [URUK-HAI] tokens. Each time the Free Peoples player plays the fellowship’s next site, you may - * discard a condition from play. - */ -public class Card13_164 extends AbstractPermanent { - public Card13_164() { - super(Side.SHADOW, 1, CardType.CONDITION, Culture.URUK_HAI, "Fearless Approach"); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Culture.URUK_HAI, CardType.MINION); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, self) - && PlayConditions.canSpot(game, CardType.SITE, Zone.ADVENTURE_PATH, Keyword.BATTLEGROUND)) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - action.appendEffect( - new ReinforceTokenEffect(self, self.getOwner(), Token.URUK_HAI, 3)); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, - CardType.SITE, - Filters.owner(game.getGameState().getCurrentPlayerId()), - Filters.siteNumber(game.getGameState().getCurrentSiteNumber() + 1))) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.CONDITION)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_165.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_165.java deleted file mode 100644 index c67e1d16b..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_165.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.modifiers.ArcheryTotalModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.condition.LocationCondition; - -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 3 - * Type: Minion • Uruk-Hai - * Strength: 7 - * Vitality: 1 - * Site: 5 - * Game Text: Damage +1. While the fellowship is at a forest site, the fellowship archery total is -1. Each [ELVEN] - * companion skirmishing this minion is strength -2. - */ -public class Card13_165 extends AbstractMinion { - public Card13_165() { - super(3, 7, 1, 5, Race.URUK_HAI, Culture.URUK_HAI, "Isengard Infiltrator"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - List modifiers = new LinkedList<>(); - modifiers.add( - new ArcheryTotalModifier(self, Side.FREE_PEOPLE, new LocationCondition(Keyword.FOREST), -1)); - modifiers.add( - new StrengthModifier(self, Filters.and(CardType.COMPANION, Culture.ELVEN, Filters.inSkirmishAgainst(self)), -2)); - return modifiers; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_166.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_166.java deleted file mode 100644 index a2dbdb70a..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_166.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.CostToEffectAction; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.effects.discount.RemoveCardsFromDiscardDiscountEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 2 - * Type: Event • Skirmish - * Game Text: You may remove from the game 4 [URUK-HAI] cards in your discard pile instead of paying the twilight cost - * for this card. Make your [URUK-HAI] minion skirmishing a companion with resistance 4 or less strength +2. - */ -public class Card13_166 extends AbstractEvent { - public Card13_166() { - super(Side.SHADOW, 2, Culture.URUK_HAI, "New Enemy", Phase.SKIRMISH); - } - - @Override - public int getPotentialDiscount(LotroGame game, String playerId, PhysicalCard self) { - if (PlayConditions.canRemoveFromDiscard(self, game, playerId, 4, Culture.URUK_HAI)) - return 1000; - return 0; - } - - @Override - public void appendPotentialDiscountEffects(LotroGame game, CostToEffectAction action, String playerId, PhysicalCard self) { - action.appendPotentialDiscount( - new RemoveCardsFromDiscardDiscountEffect(self, playerId, 4, 1000, Culture.URUK_HAI)); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 2, Filters.owner(playerId), Culture.URUK_HAI, CardType.MINION, Filters.inSkirmishAgainst(CardType.COMPANION, Filters.maxResistance(4)))); - return action; - } - -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_167.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_167.java deleted file mode 100644 index 8b8c9535b..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_167.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.ExertCharactersEffect; -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.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 2 - * Type: Condition • Support Area - * Game Text: While you can spot 3 [URUK-HAI] lurker minions, at the start of each skirmish involving an [URUK-HAI] - * lurker minion, each companion skirmishing that minion must exert. - */ -public class Card13_167 extends AbstractPermanent { - public Card13_167() { - super(Side.SHADOW, 2, CardType.CONDITION, Culture.URUK_HAI, "Signs of War", null, true); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.startOfPhase(game, effectResult, Phase.SKIRMISH) - && PlayConditions.canSpot(game, Culture.URUK_HAI, Keyword.LURKER, Filters.inSkirmish) - && PlayConditions.canSpot(game, 3, Culture.URUK_HAI, CardType.MINION, Keyword.LURKER)) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - action.appendEffect( - new ExertCharactersEffect(action, self, CardType.COMPANION, Filters.inSkirmish)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_168.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_168.java deleted file mode 100644 index abc69f485..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_168.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 3 - * Type: Minion • Uruk-Hai - * Strength: 8 - * Vitality: 2 - * Site: 5 - * Game Text: Damage +1. When you play this, you may spot a companion who has resistance 0 to make this minion - * twilight cost -2. - */ -public class Card13_168 extends AbstractMinion { - public Card13_168() { - super(3, 8, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Aggressor"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) { - if (Filters.canSpot(game, CardType.COMPANION, Filters.maxResistance(0))) - return -2; - return 0; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_169.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_169.java deleted file mode 100644 index 322d1eecf..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_169.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.condition.LocationCondition; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 12 - * Vitality: 2 - * Site: 5 - * Game Text: To play, spot an [URUK-HAI] minion. While the fellowship is in region 1, each Uruk-hai is damage +1. While - * the fellowship is in region 2, each companion is strength -1. While the fellowship is in region 3, each - * unbound companion is resistance -2. - */ -public class Card13_169 extends AbstractMinion { - public Card13_169() { - super(4, 12, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Blitz", null, true); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Culture.URUK_HAI, CardType.MINION); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - List modifiers = new LinkedList<>(); - modifiers.add( - new KeywordModifier(self, Race.URUK_HAI, new LocationCondition(Filters.region(1)), Keyword.DAMAGE, 1)); - modifiers.add( - new StrengthModifier(self, CardType.COMPANION, new LocationCondition(Filters.region(2)), -1)); - modifiers.add( - new ResistanceModifier(self, Filters.unboundCompanion, new LocationCondition(Filters.region(3)), -2)); - return modifiers; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_170.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_170.java deleted file mode 100644 index e180e0bf8..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_170.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 9 - * Vitality: 2 - * Site: 5 - * Game Text: Damage +1. Skirmish: If this minion is not assigned to a skirmish, you may exert it to discard - * a possession borne by a companion skirmishing another [URUK-HAI] minion. - */ -public class Card13_170 extends AbstractMinion { - public Card13_170() { - super(4, 9, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Distractor"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canSpot(game, self, Filters.notAssignedToSkirmish) - && PlayConditions.canSelfExert(self, game)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, - CardType.POSSESSION, - Filters.attachedTo( - CardType.COMPANION, - Filters.inSkirmishAgainst(Filters.not(self), Culture.URUK_HAI, CardType.MINION)))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_171.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_171.java deleted file mode 100644 index 809b0c0ef..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_171.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 9 - * Vitality: 2 - * Site: 5 - * Game Text: Damage +1. This minion is twilight cost -1 for each companion who has resistance 2 or less. - */ -public class Card13_171 extends AbstractMinion { - public Card13_171() { - super(4, 9, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Invader"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) { - return -Filters.countActive(game, CardType.COMPANION, Filters.maxResistance(2)); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_172.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_172.java deleted file mode 100644 index 6317d3740..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_172.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 5 - * Type: Minion • Uruk-Hai - * Strength: 15 - * Vitality: 2 - * Site: 5 - * Game Text: This minion is damage +1 for each character in the dead pile. - */ -public class Card13_172 extends AbstractMinion { - public Card13_172() { - super(5, 15, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Outrider"); - } - - @Override - public java.util.List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return java.util.Collections.singletonList(new KeywordModifier(self, self, null, Keyword.DAMAGE, - new Evaluator() { - @Override - public int evaluateExpression(LotroGame game, PhysicalCard cardAffected) { - return Filters.filter(game.getGameState().getDeadPile(game.getGameState().getCurrentPlayerId()), game, Filters.character).size(); - } - })); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_173.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_173.java deleted file mode 100644 index 6c144e622..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_173.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.PutCardFromPlayOnBottomOfDeckEffect; -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.KillEffect; -import com.gempukku.lotro.logic.timing.Effect; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 8 - * Vitality: 2 - * Site: 5 - * Game Text: Damage +1. Lurker. (Skirmishes involving lurker minions must be resolved after any others.) Each time your - * [URUK-HAI] minion is about to be killed in a skirmish, you may place that minion on the bottom of your - * draw deck instead. - */ -public class Card13_173 extends AbstractMinion { - public Card13_173() { - super(4, 8, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Reserve"); - addKeyword(Keyword.DAMAGE, 1); - addKeyword(Keyword.LURKER); - } - - @Override - public List getOptionalBeforeTriggers(String playerId, LotroGame game, Effect effect, PhysicalCard self) { - if (TriggerConditions.isGettingKilled(effect, game, Filters.owner(playerId), Culture.URUK_HAI, CardType.MINION, Filters.inSkirmish)) { - final OptionalTriggerAction action = new OptionalTriggerAction(self); - KillEffect killEffect = (KillEffect) effect; - final List charactersToBeKilled = killEffect.getCharactersToBeKilled(); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose your URUK-HAI minion", Filters.in(charactersToBeKilled), Filters.owner(playerId), Culture.URUK_HAI, CardType.MINION, Filters.inSkirmish) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.appendEffect( - new PutCardFromPlayOnBottomOfDeckEffect(card)); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_174.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_174.java deleted file mode 100644 index 9e972f255..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_174.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 5 - * Type: Minion • Uruk-Hai - * Strength: 12 - * Vitality: 3 - * Site: 5 - * Game Text: Damage +1. Skirmish: If no other minions are assigned to a skirmish, you may exert this minion twice - * to make it fierce and strength +4 until the regroup phase. - */ -public class Card13_174 extends AbstractMinion { - public Card13_174() { - super(5, 12, 3, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Rogue"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canSelfExert(self, 2, game) - && !PlayConditions.canSpot(game, Filters.not(self), CardType.MINION, Filters.assignedToSkirmish)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new StrengthModifier(self, self, 4), Phase.REGROUP)); - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new KeywordModifier(self, self, Keyword.FIERCE), Phase.REGROUP)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_175.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_175.java deleted file mode 100644 index 18d45e7b7..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_175.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 4 - * Type: Minion • Uruk-Hai - * Strength: 7 - * Vitality: 3 - * Site: 5 - * Game Text: Damage +1. Skirmish: Exert this minion to make a companion skirmishing an [URUK-HAI] lurker minion - * strength -2. - */ -public class Card13_175 extends AbstractMinion { - public Card13_175() { - super(4, 7, 3, 5, Race.URUK_HAI, Culture.URUK_HAI, "Uruk Tactician"); - addKeyword(Keyword.DAMAGE, 1); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canSelfExert(self, game)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -2, - CardType.COMPANION, - Filters.inSkirmishAgainst(Culture.URUK_HAI, CardType.MINION, Keyword.LURKER))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_176.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_176.java deleted file mode 100644 index b2402ac35..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_176.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filter; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.PlayUtils; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.ChooseArbitraryCardsEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.timing.ExtraFilters; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collection; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 1 - * Type: Event • Skirmish - * Game Text: Exert your [URUK-HAI] lurker minion to play an [URUK-HAI] hand weapon from your discard pile on your - * [URUK-HAI] minion. - */ -public class Card13_176 extends AbstractEvent { - public Card13_176() { - super(Side.SHADOW, 1, Culture.URUK_HAI, "War Machine", Phase.SKIRMISH); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canExert(self, game, Filters.owner(self.getOwner()), Culture.URUK_HAI, CardType.MINION, Keyword.LURKER) - && PlayConditions.canPlayFromDiscard(self.getOwner(), game, Culture.URUK_HAI, PossessionClass.HAND_WEAPON, ExtraFilters.attachableTo(game, Filters.owner(self.getOwner()), Culture.URUK_HAI, CardType.MINION)); - } - - @Override - public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, PhysicalCard self) { - final Filter targetFilter = Filters.and(Filters.owner(playerId), Culture.URUK_HAI, CardType.MINION); - PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.owner(playerId), Culture.URUK_HAI, CardType.MINION, Keyword.LURKER)); - action.appendEffect( - new ChooseArbitraryCardsEffect(playerId, "Choose card to play", game.getGameState().getDiscard(playerId), - Filters.and( - Culture.URUK_HAI, PossessionClass.HAND_WEAPON, - ExtraFilters.attachableTo(game, targetFilter)), 1, 1) { - @Override - protected void cardsSelected(LotroGame game, Collection selectedCards) { - if (selectedCards.size() > 0) { - PhysicalCard selectedCard = selectedCards.iterator().next(); - game.getActionsEnvironment().addActionToStack(PlayUtils.getPlayCardAction(game, selectedCard, 0, targetFilter, false)); - } - } - }); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_177.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_177.java deleted file mode 100644 index dceff8755..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_177.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.gempukku.lotro.cards.set13.uruk_hai; - -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.actions.ActivateCardAction; -import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.AddTokenEffect; -import com.gempukku.lotro.logic.effects.ChoiceEffect; -import com.gempukku.lotro.logic.effects.RemoveTokenEffect; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Shadow - * Culture: Uruk-hai - * Twilight Cost: 0 - * Type: Condition • Support Area - * Game Text: When you play this, add an [URUK-HAI] token here for each wounded companion. Skirmish: Discard this from - * play or remove 2 tokens from here to make a companion skirmishing an [URUK-HAI] minion strength -1. - */ -public class Card13_177 extends AbstractPermanent { - public Card13_177() { - super(Side.SHADOW, 0, CardType.CONDITION, Culture.URUK_HAI, "Weapons of Control"); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, self)) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - int count = Filters.countActive(game, CardType.COMPANION, Filters.wounded); - if (count > 0) - action.appendEffect( - new AddTokenEffect(self, self, Token.URUK_HAI, count)); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0)) { - ActivateCardAction action = new ActivateCardAction(self); - List possibleCosts = new LinkedList<>(); - possibleCosts.add( - new RemoveTokenEffect(self, self, Token.URUK_HAI, 2)); - possibleCosts.add( - new SelfDiscardEffect(self)); - action.appendCost( - new ChoiceEffect(action, playerId, possibleCosts)); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -1, CardType.COMPANION, Filters.inSkirmishAgainst(Culture.URUK_HAI, CardType.MINION))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set13-Uruk-hai.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Uruk-hai.hjson similarity index 58% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set13-Uruk-hai.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Uruk-hai.hjson index 7855cb8cc..49bb924ca 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set13-Uruk-hai.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Uruk-hai.hjson @@ -27,6 +27,30 @@ site: 5 keywords: Damage+1 effects: [ + { + type: activated + phase: shadow + cost: [ + { + type: exert + filter: self + } + { + type: spot + filter: choose(side(free people),condition) + memorize: spottedCondition + } + ] + effect: { + type: modifyResistance + filter: choose(unbound,companion) + amount: { + type: forEachYouCanSpot + filter: nameFromMemory(spottedCondition) + multiplier: -1 + } + } + } ] gametext: Damage +1.
Shadow: Exert this minion and spot a Free Peoples condition to make an unbound companion resistance -1 for each card that has the same card title as that condition. lore: Fear is a potent weapon in the hands of an Uruk-hai. @@ -66,6 +90,17 @@ site: 5 keywords: Damage+1 effects: [ + { + type: modifier + modifier: { + type: modifyStrength + filter: self + amount: { + type: forEachToken + filter: side(free people) + } + } + } ] gametext: Damage +1.
This minion is strength +1 for each Free Peoples culture token you can spot. lore: Theories and tactics of warfare were tested upon the battlefields of Middle-earth. @@ -105,6 +140,26 @@ site: 5 keywords: Damage+1 effects: [ + { + type: modifier + modifier: { + type: cantTakeWounds + requires: [ + { + type: canSpot + filter: side(free people),hasAnyTokens + } + { + type: not + requires: { + type: phase + phase: skirmish + } + } + ] + filter: self + } + } ] gametext: Damage +1.
While you can spot a Free Peoples culture token, this minion cannot take wounds except during skirmishes. lore: Saruman uses the enemy's strength to his own advantage. @@ -140,6 +195,62 @@ type: Condition keywords: Support Area effects: [ + { + type: activated + phase: skirmish + cost: { + type: discard + filter: self + } + effect: { + type: modifyStrength + filter: choose(culture(uruk-hai),minion) + memorize: chosenMinion + amount: { + type: sum + source: [ + { + type: condition + condition: { + type: location + filter: battleground + } + true: 1 + false: 0 + } + { + type: condition + condition: { + type: memoryMatches + memory: chosenMinion + filter: inSkirmishAgainst(companion,maxResistance(4)) + } + true: 1 + false: 0 + } + { + type: condition + condition: { + type: memoryMatches + memory: chosenMinion + filter: hasAttached(possession) + } + true: 1 + false: 0 + } + { + type: condition + condition: { + type: canSpot + filter: culture(uruk-hai),minion,notAssignedToSkirmish + } + true: 1 + false: 0 + } + ] + } + } + } ] gametext: Skirmish: Discard this condition to make an [uruk-hai] minion strength +1 for each of the following that is true: it is at a battleground site; it is skirmishing a companion who has resistance 4 or less; it is bearing a possession; you can spot an [uruk-hai] minion not assigned to a skirmish. lore: "" @@ -175,6 +286,43 @@ type: Condition keywords: Support Area effects: [ + { + type: toPlay + requires: { + type: canSpot + filter: culture(uruk-hai),minion + count: 2 + } + } + { + type: activated + phase: shadow + cost: { + type: discardFromHand + forced: false + count: 2 + } + effect: { + type: addTwilight + amount: 1 + } + } + { + type: activated + phase: regroup + requires: { + type: canSpot + filter: culture(uruk-hai),minion + } + cost: { + type: discard + filter: self + } + effect: { + type: addTwilight + amount: 3 + } + } ] gametext: To play, spot 2 [uruk-hai] minions.
Shadow: Discard 2 cards from hand to add (1).
Regroup: Spot an [uruk-hai] minion and discard this condition from play to add (3). lore: Valour could not prevent the breach of the Deeping Wall. @@ -217,6 +365,14 @@ Lurker ] effects: [ + { + type: modifier + modifier: { + type: cantBeDiscarded + filter: possession,attachedTo(self) + by: side(free people) + } + } ] gametext: Damage +1. Lurker. (Skirmishes involving lurker minions must be resolved after any others.)
Possessions borne by this minion cannot be discarded by Free Peoples cards. lore: An Uruk is disarmed only when it hurls its weapon. @@ -252,6 +408,32 @@ type: Condition keywords: Support Area effects: [ + { + type: toPlay + requires: { + type: canSpot + filter: culture(uruk-hai),minion + } + } + { + type: trigger + trigger: { + type: played + filter: self + } + requires: { + type: canSpot + filter: battleground,site,zone(adventure path) + } + effect: { + type: repeat + times: 3 + effect: { + type: reinforceTokens + culture: uruk-hai + } + } + } ] gametext: To play, spot an [uruk-hai] minion.
When you play this, if you spot a battleground site on the adventure path, reinforce 3 [uruk-hai] tokens.
Each time the Free Peoples player plays the fellowship's next site, you may discard a condition from play. lore: "" @@ -291,6 +473,26 @@ site: 5 keywords: Damage+1 effects: [ + { + type: modifier + modifier: { + type: modifyArcheryTotal + requires: { + type: location + filter: forest + } + side: free people + amount: -1 + } + } + { + type: modifier + modifier: { + type: modifyStrength + filter: culture(elven),companion,inSkirmishAgainst(self) + amount: -2 + } + } ] gametext: Damage +1.
While the fellowship is at a forest site, the fellowship archery total is -1.
Each [elven] companion skirmishing this minion is strength -2. lore: The Uruk-hai trained to engage the enemy in its own territory. @@ -325,16 +527,26 @@ twilight: 2 type: Event keywords: Skirmish - - effects: { - type: event - cost: { - }, - effect: [ - { - } - ] - } + effects: [ + { + type: discount + discount: { + type: ifRemoveFromDiscard + filter: culture(uruk-hai) + count: 4 + } + } + { + type: event + effect: [ + { + type: modifyStrength + filter: choose(culture(uruk-hai),minion,inSkirmishAgainst(companion,maxResistance(4))) + amount: 2 + } + ] + } + ] gametext: You may remove from the game 4 [uruk-hai] cards in your discard pile instead of paying the twilight cost for this card.
Make your [uruk-hai] minion skirmishing a companion with resistance 4 or less strength +2. lore: ...goblin-soldiers of greater stature. promotext: "" @@ -369,6 +581,22 @@ type: Condition keywords: Support Area effects: [ + { + type: trigger + requires: { + type: canSpot + filter: culture(uruk-hai),lurker,minion + count: 3 + } + trigger: { + type: startOfSkirmishInvolving + filter: culture(uruk-hai),lurker,minion + } + effect: { + type: exert + filter: all(companion,inSkirmishAgainst(culture(uruk-hai),lurker,minion)) + } + } ] gametext: While you can spot 3 [uruk-hai] lurker minions, at the start of each skirmish involving an [uruk-hai] lurker minion, each companion skirmishing that minion must exert. lore: Horsemen were galloping on the grass of Rohan; wolves poured from Isengard. @@ -408,6 +636,14 @@ site: 5 keywords: Damage+1 effects: [ + { + type: modifyOwnCost + requires: { + type: canSpot + filter: companion,maxResistance(0) + } + amount: -2 + } ] gametext: Damage +1.
When you play this, you may spot a companion who has resistance 0 to make this minion twilight cost -2. lore: The defenses of the Hornburg were exploited, exposing their weakest points. @@ -446,6 +682,50 @@ vitality: 2 site: 5 effects: [ + { + type: toPlay + requires: { + type: canSpot + filter: culture(uruk-hai),minion + } + } + { + type: modifier + modifier: { + type: addKeyword + requires: { + type: location + filter: regionNumber(1) + } + filter: urukHai + keyword: damage + amount: 1 + } + } + { + type: modifier + modifier: { + type: modifyStrength + requires: { + type: location + filter: regionNumber(2) + } + filter: companion + amount: -1 + } + } + { + type: modifier + modifier: { + type: modifyResistance + requires: { + type: location + filter: regionNumber(3) + } + filter: unbound,companion + amount: -2 + } + } ] gametext: To play, spot an [uruk-hai] minion.
While the fellowship is in region 1, each Uruk-hai is damage +1.
While the fellowship is in region 2, each companion is strength -1.
While the fellowship is in region 3, each unbound companion is resistance -2. lore: "" @@ -485,6 +765,22 @@ site: 5 keywords: Damage+1 effects: [ + { + type: activated + phase: skirmish + requires: { + type: canSpot + filter: self,notAssignedToSkirmish + } + cost: { + type: exert + filter: self + } + effect: { + type: discard + filter: choose(possession,attachedTo(companion,inSkirmishAgainst(another,culture(uruk-hai),minion))) + } + } ] gametext: Damage +1.
Skirmish: If this minion is not assigned to a skirmish, you may exert it to discard a possession borne by a companion skirmishing another [uruk-hai] minion. lore: Wounds do not always remove the Uruk-hai from their assault. @@ -524,6 +820,14 @@ site: 5 keywords: Damage+1 effects: [ + { + type: modifyOwnCost + amount: { + type: forEachYouCanSpot + filter: companion,maxResistance(2) + multiplier: -1 + } + } ] gametext: Damage +1.
This minion is twilight cost -1 for each companion who has resistance 2 or less. lore: To sense weakness is to assume victory. @@ -562,6 +866,18 @@ vitality: 2 site: 5 effects: [ + { + type: modifier + modifier: { + type: addKeyword + filter: self + keyword: damage + amount: { + type: forEachInDeadPile + filter: character + } + } + } ] gametext: This minion is damage +1 for each character in the dead pile. lore: The lesser the enemy, the greater the rage. @@ -604,6 +920,19 @@ Lurker ] effects: [ + { + type: trigger + optional: true + trigger: { + type: aboutToBeKilled + filter: culture(uruk-hai),minion,inSkirmish + memorize: killed + } + effect: { + type: putCardsFromPlayOnBottomOfDeck + filter: choose(memory(killed),culture(uruk-hai),minion,inSkirmish) + } + } ] gametext: Damage +1. Lurker. (Skirmishes involving lurker minions must be resolved after any others.)
Each time your [uruk-hai] minion is about to be killed in a skirmish, you may place that minion on the bottom of your draw deck instead. lore: "" @@ -643,6 +972,33 @@ site: 5 keywords: Damage+1 effects: [ + { + type: activated + phase: skirmish + requires: { + type: cantSpot + filter: other,minion,assignedToSkirmish(any) + } + cost: { + type: exert + filter: self + times: 2 + } + effect: [ + { + type: addKeyword + filter: self + keyword: fierce + until: regroup + } + { + type: modifyStrength + filter: self + amount: 4 + until: regroup + } + ] + } ] gametext: Damage +1.
Skirmish: If no other minions are assigned to a skirmish, exert this minion twice to make it fierce and strength +4 until the regroup phase. lore: Some minions prefer to fight alone. @@ -682,6 +1038,19 @@ site: 5 keywords: Damage+1 effects: [ + { + type: activated + phase: skirmish + cost: { + type: exert + filter: self + } + effect: { + type: modifyStrength + filter: choose(companion,inSkirmishAgainst(culture(uruk-hai),lurker)) + amount: -2 + } + } ] gametext: Damage +1.
Skirmish: Exert this minion to make a companion skirmishing an [uruk-hai] lurker minion strength -2. lore: Select warriors had been tasked with advancing the assault beyond the Deeping Wall. @@ -716,13 +1085,17 @@ twilight: 1 type: Event keywords: Skirmish - effects: { type: event cost: { - }, + type: exert + filter: choose(your,lurker,minion) + } effect: [ { + type: playCardFromDiscard + filter: choose(culture(uruk-hai),hand weapon) + on: your,culture(uruk-hai),minion } ] } @@ -760,6 +1133,49 @@ type: Condition keywords: Support Area effects: [ + { + type: trigger + trigger: { + type: played + filter: self + } + effect: { + type: addTokens + culture: uruk-hai + filter: self + count: { + type: forEachYouCanSpot + filter: wounded,companion + } + } + } + { + type: activated + phase: skirmish + cost: { + type: choice + texts: [ + Disard this from play + Remove 2 tokens from here + ] + effects: [ + { + type: discard + filter: self + } + { + type: removeTokens + filter: self + count: 2 + } + ] + } + effect: { + type: modifyStrength + filter: choose(companion,inSkirmishAgainst(culture(uruk-hai),minion)) + amount: -1 + } + } ] gametext: When you play this, add an [uruk-hai] token here for each wounded companion.
Skirmish: Discard this from play or remove 2 tokens from here to make a companion skirmishing an [uruk-hai] minion strength -1. lore: "" diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java index c8e8a0164..a4f586b10 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java @@ -14,6 +14,7 @@ import org.json.simple.JSONObject; import java.util.Collection; import java.util.HashSet; +import java.util.Map; import java.util.Set; public class ValueResolver { @@ -280,13 +281,13 @@ public class ValueResolver { final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment); return new SmartValueSource(environment, object, actionContext -> (game, cardAffected) -> { - final Filterable filterable = filterableSource.getFilterable(actionContext); - int count = 0; - for (String player : game.getGameState().getPlayerOrder().getAllPlayers()) - count += Filters.filter(game.getGameState().getDiscard(player), game, filterable).size(); + final Filterable filterable = filterableSource.getFilterable(actionContext); + int count = 0; + for (String player : game.getGameState().getPlayerOrder().getAllPlayers()) + count += Filters.filter(game.getGameState().getDiscard(player), game, filterable).size(); return count; - } + } ); } else if (type.equalsIgnoreCase("forEachTopCardOfDeckUntilMatching")) { FieldUtils.validateAllowedFields(object, "filter", "deck", "over", "limit", "multiplier", "divider"); @@ -586,7 +587,14 @@ public class ValueResolver { int result = 0; final Filterable filterable = filterableSource.getFilterable(actionContext); for (PhysicalCard physicalCard : Filters.filterActive(game, filterable)) { - result += game.getGameState().getTokenCount(physicalCard, tokenForCulture); + if (tokenForCulture != null) { + result += game.getGameState().getTokenCount(physicalCard, tokenForCulture); + } else { + for (Map.Entry tokens : game.getGameState().getTokens(physicalCard).entrySet()) { + if (tokens.getKey().getCulture() != null) + result += tokens.getValue(); + } + } } return multiplier * Math.min(limit, result);