- "Barad-Dur Captain" and "Orc Stalker" should no longer cancel the game.

This commit is contained in:
marcins78@gmail.com
2013-03-19 23:38:26 +00:00
parent 08c8f3ec94
commit 4c19ededd7
3 changed files with 37 additions and 30 deletions

View File

@@ -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.
<b>15 Mar. 2013</b>
- "Lothlorien" correctly requires to spot 2 elves, instead of just one to remove the burden.

View File

@@ -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

View File

@@ -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<RequiredTriggerAction> 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<String> possibleCultures = new LinkedHashSet<String>();
for (Culture culture : Culture.values())
if (culture.isFP())
possibleCultures.add(culture.getHumanReadable());
final Set<String> possibleCultures = new LinkedHashSet<String>();
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);
}
}