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 cd800a50a..67814bd21 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 @@ -347,7 +347,7 @@ var set20 = { '20_346': 'http://lotrtcg.org/coreset/rohan/tothesmithy(r1).png', '20_347': 'http://lotrtcg.org/coreset/rohan/towhateverend.png', '20_348': 'http://lotrtcg.org/coreset/rohan/wallneverbreached.png', - '20_349': 'http://lotrtcg.org/coreset/sauron/baraddurcaptain.png', + '20_349': 'http://lotrtcg.org/coreset/sauron/baraddurcaptain(r1).png', '20_350': 'http://lotrtcg.org/coreset/sauron/blackgateologhai.png', '20_351': 'http://lotrtcg.org/coreset/sauron/bladeofgorgoroth.png', '20_352': 'http://lotrtcg.org/coreset/sauron/bladeofmorannon.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 735eec54d..9ae6f6b1b 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 @@ -2,39 +2,79 @@ package com.gempukku.lotro.cards.set20.sauron; 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.cards.modifiers.conditions.CanSpotFPCulturesCondition; -import com.gempukku.lotro.cards.modifiers.conditions.NotCondition; 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.decisions.MultipleChoiceAwaitingDecision; import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; +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.Action; +import com.gempukku.lotro.logic.timing.EffectResult; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; /** - * 4 + * 5 * •Barad-Dur Captain - * Sauron Minion • Orc - * 10 3 6 - * While you cannot spot 3 Free Peoples cultures, this minion is damage +1. + * Minion • Orc + * 11 3 6 + * When you play this minion, name a Free Peoples culture. + * While skirmishing a character of the named culture, this minion is damage +1. * Skirmish: Exert Barad-Dur Captain to wound a character it is skirmishing. + * http://lotrtcg.org/coreset/sauron/baraddurcaptain(r1).png */ public class Card20_349 extends AbstractMinion { public Card20_349() { - super(5, 13, 3, 6, Race.ORC, Culture.SAURON, "Barad-Dur Captain", null, true); + super(5, 11, 3, 6, Race.ORC, Culture.SAURON, "Barad-Dur Captain", null, true); } @Override public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) { return new KeywordModifier(self, self, - new NotCondition(new CanSpotFPCulturesCondition(self.getOwner(), 3)), Keyword.DAMAGE, 1); + new GameHasCondition(self, Filters.inSkirmishAgainst((Culture) self.getWhileInZoneData())), Keyword.DAMAGE, 1); + } + + @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 diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java index 2d44e9644..5bf77821c 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java @@ -1,19 +1,22 @@ package com.gempukku.lotro.common; public enum Culture implements Filterable { - DWARVEN("Dwarven"), ELVEN("Elven"), GANDALF("Gandalf"), GOLLUM("Gollum"), GONDOR("Gondor"), ROHAN("Rohan"), SHIRE("Shire"), - DUNLAND("Dunland"), ISENGARD("Isengard"), MEN("Men"), MORIA("Moria"), ORC("Orc"), RAIDER("Raider"), SAURON("Sauron"), URUK_HAI("Uruk-hai"), WRAITH("Wraith"), - FALLEN_REALMS("Fallen Realms", false); + DWARVEN("Dwarven", true), ELVEN("Elven", true), GANDALF("Gandalf", true), GOLLUM("Gollum", true), GONDOR("Gondor", true), ROHAN("Rohan", true), SHIRE("Shire", true), + DUNLAND("Dunland", false), ISENGARD("Isengard", false), MEN("Men", false), MORIA("Moria", false), ORC("Orc", false), RAIDER("Raider", false), + SAURON("Sauron", false), URUK_HAI("Uruk-hai", false), WRAITH("Wraith", false), + FALLEN_REALMS("Fallen Realms", false, false); private String _humanReadable; + private boolean _fp; private boolean _official; - private Culture(String humanReadable) { - this(humanReadable, true); + private Culture(String humanReadable, boolean fp) { + this(humanReadable, fp, true); } - private Culture(String humanReadable, boolean official) { + private Culture(String humanReadable, boolean fp, boolean official) { _humanReadable = humanReadable; + _fp = fp; _official = official; } @@ -25,6 +28,10 @@ public enum Culture implements Filterable { return _humanReadable; } + public boolean isFP() { + return _fp; + } + public static Culture findCultureByHumanReadable(String humanReadable) { for (Culture culture : values()) { if (culture.getHumanReadable().equals(humanReadable))