"Horn of Helm"

This commit is contained in:
marcins78@gmail.com
2011-10-17 10:58:57 +00:00
parent f4a1530a95
commit dcb1999349
4 changed files with 61 additions and 7 deletions

View File

@@ -1,6 +1,8 @@
package com.gempukku.lotro.cards.modifiers;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.Condition;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
@@ -8,8 +10,8 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
public class LocationCondition implements Condition {
private Filter _filter;
public LocationCondition(Filter filter) {
_filter = filter;
public LocationCondition(Filterable... filters) {
_filter = Filters.and(filters);
}
@Override

View File

@@ -0,0 +1,45 @@
package com.gempukku.lotro.cards.set5.dwarven;
import com.gempukku.lotro.cards.AbstractPermanent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.cards.modifiers.LocationCondition;
import com.gempukku.lotro.common.*;
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.modifiers.RemoveKeywordModifier;
import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Dwarven
* Twilight Cost: 2
* Type: Possession
* Game Text: Plays to your support area. Maneuver: Exert a Dwarf companion to make each minion at a battleground lose
* all damage bonuses until the regroup phase.
*/
public class Card5_008 extends AbstractPermanent {
public Card5_008() {
super(Side.FREE_PEOPLE, 2, CardType.POSSESSION, Culture.DWARVEN, Zone.SUPPORT, "Horn of Helm", true);
}
@Override
protected List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canExert(self, game, Race.DWARF, CardType.COMPANION)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.DWARF, CardType.COMPANION));
action.appendEffect(
new AddUntilStartOfPhaseModifierEffect(
new RemoveKeywordModifier(self, CardType.MINION, new LocationCondition(Keyword.BATTLEGROUND), Keyword.DAMAGE), Phase.REGROUP));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,9 +1,11 @@
package com.gempukku.lotro.logic.modifiers;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.timing.Action;
@@ -18,14 +20,14 @@ public abstract class AbstractModifier implements Modifier {
private Condition _condition;
private ModifierEffect[] _effects;
protected AbstractModifier(PhysicalCard source, String text, Filter affectFilter, ModifierEffect[] effects) {
protected AbstractModifier(PhysicalCard source, String text, Filterable affectFilter, ModifierEffect[] effects) {
this(source, text, affectFilter, null, effects);
}
protected AbstractModifier(PhysicalCard source, String text, Filter affectFilter, Condition condition, ModifierEffect[] effects) {
protected AbstractModifier(PhysicalCard source, String text, Filterable affectFilter, Condition condition, ModifierEffect[] effects) {
_physicalCard = source;
_text = text;
_affectFilter = affectFilter;
_affectFilter = Filters.and(affectFilter);
_condition = condition;
_effects = effects;
}

View File

@@ -1,18 +1,23 @@
package com.gempukku.lotro.logic.modifiers;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
public class RemoveKeywordModifier extends AbstractModifier {
private Keyword _keyword;
public RemoveKeywordModifier(PhysicalCard physicalCard, Filter affectFilter, Keyword keyword) {
public RemoveKeywordModifier(PhysicalCard physicalCard, Filterable affectFilter, Keyword keyword) {
super(physicalCard, "Loses " + keyword.getHumanReadable() + "keyword(s)", affectFilter, new ModifierEffect[]{ModifierEffect.KEYWORD_MODIFIER});
_keyword = keyword;
}
public RemoveKeywordModifier(PhysicalCard physicalCard, Filterable affectFilter, Condition condition, Keyword keyword) {
super(physicalCard, "Loses " + keyword.getHumanReadable() + "keyword(s)", affectFilter, condition, new ModifierEffect[]{ModifierEffect.KEYWORD_MODIFIER});
_keyword = keyword;
}
@Override
public boolean isKeywordRemoved(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, Keyword keyword) {
return _keyword == keyword;