From 476225a8baaa57beeab7bf46d107c4aa2c69dd1c Mon Sep 17 00:00:00 2001 From: marcins78 Date: Tue, 19 Mar 2013 11:38:31 +0000 Subject: [PATCH] 20_371 --- .../src/main/web/js/gemp-019/set20.js | 2 +- .../lotro/cards/set20/sauron/Card20_349.java | 7 ++- .../lotro/cards/set20/sauron/Card20_371.java | 54 +++++++++++++++++-- 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/set20.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/set20.js index 14c70b16b..b5ffe5f41 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/set20.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/set20.js @@ -369,7 +369,7 @@ var set20 = { '20_368': 'http://lotrtcg.org/coreset/sauron/orcraveners(r1).png', '20_369': 'http://lotrtcg.org/coreset/sauron/orcsavage(r1).png', '20_370': 'http://lotrtcg.org/coreset/sauron/orcskulker(r1).png', - '20_371': 'http://lotrtcg.org/coreset/sauron/orcstalker.png', + '20_371': 'http://lotrtcg.org/coreset/sauron/orcstalker(r1).png', '20_372': 'http://lotrtcg.org/coreset/sauron/orcvillain.png', '20_373': 'http://lotrtcg.org/coreset/sauron/sauronsforces.png', '20_374': 'http://lotrtcg.org/coreset/sauron/shadowintheeast.png', diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_349.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_349.java index 9ae6f6b1b..7205c9897 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_349.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_349.java @@ -4,7 +4,10 @@ import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.SelfExertEffect; -import com.gempukku.lotro.common.*; +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.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -85,7 +88,7 @@ public class Card20_349 extends AbstractMinion { action.appendCost( new SelfExertEffect(action, self)); action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.COMPANION, Filters.inSkirmishAgainst(self))); + new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.character, Filters.inSkirmishAgainst(self))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_371.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_371.java index 5672c82ce..54b9ba768 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_371.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_371.java @@ -1,31 +1,75 @@ package com.gempukku.lotro.cards.set20.sauron; import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.cards.modifiers.conditions.CanSpotFPCulturesCondition; -import com.gempukku.lotro.cards.modifiers.conditions.NotCondition; +import com.gempukku.lotro.cards.TriggerConditions; 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.RequiredTriggerAction; +import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision; +import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; +import com.gempukku.lotro.logic.modifiers.GameHasCondition; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; /** * 4 * Orc Stalker - * Sauron Minion • Orc + * Minion • Orc * 10 3 6 - * While you cannot spot 3 Free Peoples cultures, this minion is fierce. + * When you play this minion, name a Free Peoples culture. + * If this minion is assigned to skirmish a companion of the named culture, it is fierce until the regroup phase. + * http://lotrtcg.org/coreset/sauron/orcstalker(r1).png */ public class Card20_371 extends AbstractMinion { public Card20_371() { super(4, 10, 3, 6, Race.ORC, Culture.SAURON, "Orc Stalker"); } + @Override + public String getDisplayableInformation(PhysicalCard self) { + if (self.getWhileInZoneData() != null) + return "Chosen culture is " + ((Culture) self.getWhileInZoneData()).getHumanReadable(); + return null; + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) { + if (TriggerConditions.played(game, effectResult, self)) { + if (TriggerConditions.played(game, effectResult, self)) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + + final Set possibleCultures = new LinkedHashSet(); + for (Culture culture : Culture.values()) + if (culture.isFP()) + possibleCultures.add(culture.getHumanReadable()); + + action.appendEffect( + new PlayoutDecisionEffect(self.getOwner(), + new MultipleChoiceAwaitingDecision(1, "Choose a culture", possibleCultures.toArray(new String[possibleCultures.size()])) { + @Override + protected void validDecisionMade(int index, String result) { + self.setWhileInZoneData(Culture.findCultureByHumanReadable(result)); + } + })); + return Collections.singletonList(action); + } + } + return null; + } + @Override public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) { return new KeywordModifier(self, self, - new NotCondition(new CanSpotFPCulturesCondition(self.getOwner(), 3)), Keyword.FIERCE, 1); + new GameHasCondition(self, Filters.inSkirmishAgainst((Culture) self.getWhileInZoneData())), Keyword.FIERCE, 1); } }