From 96632e71f0f817c7835cd8b9894a76272aca008a Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 6 Oct 2011 07:34:08 +0000 Subject: [PATCH] "Living Off Rock" --- .../gempukku/lotro/cards/PlayConditions.java | 12 ++++ .../lotro/cards/set4/dunland/Card4_027.java | 64 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java index dd36146a5..f68b78b07 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java @@ -161,6 +161,18 @@ public class PlayConditions { return false; } + public static boolean winsSkirmishAgainst(GameState gameState, ModifiersQuerying modifiersQuerying, EffectResult effectResult, Filter winnerFilter, Filter loserFilter) { + EffectResult.Type effectType = effectResult.getType(); + if (effectType == EffectResult.Type.RESOLVE_SKIRMISH || effectType == EffectResult.Type.OVERWHELM_IN_SKIRMISH) { + SkirmishResult skirmishResult = (SkirmishResult) effectResult; + List winners = skirmishResult.getWinners(); + List losers = skirmishResult.getLosers(); + return (Filters.filter(winners, gameState, modifiersQuerying, winnerFilter).size() > 0) + && (Filters.filter(losers, gameState, modifiersQuerying, loserFilter).size() > 0); + } + return false; + } + public static boolean losesSkirmish(GameState gameState, ModifiersQuerying modifiersQuerying, EffectResult effectResult, Filter filter) { EffectResult.Type effectType = effectResult.getType(); if (effectType == EffectResult.Type.RESOLVE_SKIRMISH || effectType == EffectResult.Type.OVERWHELM_IN_SKIRMISH) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java new file mode 100644 index 000000000..56384ba7f --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java @@ -0,0 +1,64 @@ +package com.gempukku.lotro.cards.set4.dunland; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +import com.gempukku.lotro.cards.modifiers.StrengthModifier; +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.modifiers.KeywordModifier; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.results.SkirmishResult; + +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + +/** + * Set: The Two Towers + * Side: Shadow + * Culture: Dunland + * Twilight Cost: 0 + * Type: Condition + * Game Text: Plays to your support area. Each time a [DUNLAND] Man wins a skirmish involving a [ROHAN] Man, you may + * make that minion strength +2 and fierce until the regroup phase. + */ +public class Card4_027 extends AbstractPermanent { + public Card4_027() { + super(Side.SHADOW, 0, CardType.CONDITION, Culture.DUNLAND, Zone.SUPPORT, "Living Off Rock"); + } + + @Override + public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (PlayConditions.losesSkirmish(game.getGameState(), game.getModifiersQuerying(), effectResult, + Filters.and(Filters.culture(Culture.ROHAN), Filters.race(Race.MAN)))) { + + SkirmishResult skirmishResult = (SkirmishResult) effectResult; + List winners = skirmishResult.getWinners(); + Collection winningDunlandMan = Filters.filter(winners, game.getGameState(), game.getModifiersQuerying(), Filters.and(Filters.culture(Culture.DUNLAND), Filters.race(Race.MAN))); + + List actions = new LinkedList(); + for (final PhysicalCard physicalCard : winningDunlandMan) { + OptionalTriggerAction action = new OptionalTriggerAction(self) { + @Override + public String getText(LotroGame game) { + return physicalCard.getBlueprint().getName() + " wins a skirmish"; + } + }; + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new StrengthModifier(self, Filters.sameCard(physicalCard), 2), Phase.REGROUP)); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, Filters.sameCard(physicalCard), Keyword.FIERCE), Phase.REGROUP)); + actions.add(action); + } + + return actions; + } + return null; + } +}