From 5bd4b44449f075ffa076183b34f9977797144e27 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 10 Jan 2012 16:05:49 +0000 Subject: [PATCH] "Southron Murderer" --- .../CanSpotCultureTokensCondition.java | 33 +++++++++++++++ .../lotro/cards/set13/men/Card13_086.java | 29 +++---------- .../lotro/cards/set13/men/Card13_098.java | 41 +++++++++++++++++++ 3 files changed, 80 insertions(+), 23 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/CanSpotCultureTokensCondition.java create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_098.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/CanSpotCultureTokensCondition.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/CanSpotCultureTokensCondition.java new file mode 100644 index 000000000..82d9924df --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/CanSpotCultureTokensCondition.java @@ -0,0 +1,33 @@ +package com.gempukku.lotro.cards.modifiers.conditions; + +import com.gempukku.lotro.common.Token; +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.Condition; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; + +import java.util.Map; + +public class CanSpotCultureTokensCondition implements Condition { + private int _count; + + public CanSpotCultureTokensCondition(int count) { + _count = count; + } + + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + int count = 0; + for (PhysicalCard physicalCard : Filters.filterActive(gameState, modifiersQuerying, Filters.hasAnyCultureTokens(1))) { + for (Map.Entry tokenCountEntry : gameState.getTokens(physicalCard).entrySet()) { + if (tokenCountEntry.getKey().getCulture() != null) { + count += tokenCountEntry.getValue(); + if (count >= _count) + return true; + } + } + } + return false; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_086.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_086.java index e813529e7..c15c296de 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_086.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_086.java @@ -3,16 +3,14 @@ package com.gempukku.lotro.cards.set13.men; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.modifiers.ArcheryTotalModifier; -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.cards.modifiers.conditions.CanSpotCultureTokensCondition; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.modifiers.Condition; import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; - -import java.util.Map; /** * Set: Bloodlines @@ -39,21 +37,6 @@ public class Card13_086 extends AbstractMinion { @Override public Modifier getAlwaysOnModifier(PhysicalCard self) { return new ArcheryTotalModifier(self, Side.SHADOW, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - int count = 0; - for (PhysicalCard physicalCard : Filters.filterActive(gameState, modifiersQuerying, Filters.hasAnyCultureTokens(1))) { - for (Map.Entry tokenCountEntry : gameState.getTokens(physicalCard).entrySet()) { - if (tokenCountEntry.getKey().getCulture() != null) { - count += tokenCountEntry.getValue(); - if (count >= 5) - return true; - } - } - } - return false; - } - }, 2); + new CanSpotCultureTokensCondition(5), 2); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_098.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_098.java new file mode 100644 index 000000000..d1b5e970d --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_098.java @@ -0,0 +1,41 @@ +package com.gempukku.lotro.cards.set13.men; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; +import com.gempukku.lotro.cards.modifiers.conditions.CanSpotCultureTokensCondition; +import com.gempukku.lotro.cards.modifiers.conditions.NotCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.modifiers.Modifier; + +/** + * Set: Bloodlines + * Side: Shadow + * Culture: Men + * Twilight Cost: 3 + * Type: Minion • Man + * Strength: 8 + * Vitality: 1 + * Site: 4 + * Game Text: Archer. While you can spot 4 or more culture tokens, this minion cannot take wounds except during + * skirmishes. + */ +public class Card13_098 extends AbstractMinion { + public Card13_098() { + super(3, 8, 1, 4, Race.MAN, Culture.MEN, "Southron Murderer"); + addKeyword(Keyword.ARCHER); + } + + @Override + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new CantTakeWoundsModifier(self, + new AndCondition( + new NotCondition(new PhaseCondition(Phase.SKIRMISH)), + new CanSpotCultureTokensCondition(4)), self); + } +}