From 4c19ededd7d031ab73b27e82367417dea9f85b3e Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 19 Mar 2013 23:38:26 +0000 Subject: [PATCH] - "Barad-Dur Captain" and "Orc Stalker" should no longer cancel the game. --- .../src/main/web/includes/changeLog.html | 1 + .../lotro/cards/set20/sauron/Card20_349.java | 16 ++++-- .../lotro/cards/set20/sauron/Card20_371.java | 50 +++++++++---------- 3 files changed, 37 insertions(+), 30 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html index 57b934938..ad38b4d3e 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html @@ -5,6 +5,7 @@ - Cards that prevent adding burdens, now should do so correctly. - "Cleaved" can now be transferred only form Support area. - "Doors of Durin" should no longer cancel a game if there is a character without race. +- "Barad-Dur Captain" and "Orc Stalker" should no longer cancel the game. 15 Mar. 2013 - "Lothlorien" correctly requires to spot 2 elves, instead of just one to remove the burden. 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 7205c9897..15def02b0 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 @@ -10,15 +10,17 @@ 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.GameState; 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.Condition; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.EffectResult; @@ -43,9 +45,17 @@ public class Card20_349 extends AbstractMinion { } @Override - public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) { + public Modifier getAlwaysOnModifier(LotroGame game, final PhysicalCard self) { return new KeywordModifier(self, self, - new GameHasCondition(self, Filters.inSkirmishAgainst((Culture) self.getWhileInZoneData())), Keyword.DAMAGE, 1); + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + Culture chosenCulture = (Culture) self.getWhileInZoneData(); + if (chosenCulture == null) + return false; + return Filters.inSkirmishAgainst(chosenCulture).accepts(gameState, modifiersQuerying, self); + } + }, Keyword.DAMAGE, 1); } @Override 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 54b9ba768..e62e1f02f 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 @@ -2,18 +2,15 @@ package com.gempukku.lotro.cards.set20.sauron; import com.gempukku.lotro.cards.AbstractMinion; 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.cards.effects.AddUntilStartOfPhaseModifierEffect; +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.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; @@ -45,31 +42,30 @@ public class Card20_371 extends AbstractMinion { @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); + RequiredTriggerAction action = new RequiredTriggerAction(self); - final Set possibleCultures = new LinkedHashSet(); - for (Culture culture : Culture.values()) - if (culture.isFP()) - possibleCultures.add(culture.getHumanReadable()); + 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); - } + 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); + } + if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.and(CardType.COMPANION, (Culture) self.getWhileInZoneData()), self)) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, self, Keyword.FIERCE), Phase.REGROUP)); + return Collections.singletonList(action); } return null; } - - @Override - public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) { - return new KeywordModifier(self, self, - new GameHasCondition(self, Filters.inSkirmishAgainst((Culture) self.getWhileInZoneData())), Keyword.FIERCE, 1); - } }