Simplifying some modifiers.

This commit is contained in:
marcins78@gmail.com
2011-10-25 09:44:31 +00:00
parent 952d8787f5
commit d87ec4dd46
16 changed files with 134 additions and 150 deletions

View File

@@ -0,0 +1,25 @@
package com.gempukku.lotro.cards.modifiers;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Condition;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
public class CantHealModifier extends AbstractModifier {
public CantHealModifier(PhysicalCard source, Filterable... affectFilters) {
this(source, null, affectFilters);
}
public CantHealModifier(PhysicalCard source, Condition condition, Filterable... affectFilters) {
super(source, "Can't be healed", Filters.and(affectFilters), condition, new ModifierEffect[]{ModifierEffect.WOUND_MODIFIER});
}
@Override
public boolean canBeHealed(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card) {
return false;
}
}

View File

@@ -14,12 +14,16 @@ public class ShouldSkipPhaseModifier extends AbstractModifier {
private String _playerId;
public ShouldSkipPhaseModifier(PhysicalCard source, Phase phase) {
super(source, "Skip " + phase.toString() + " phase", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER});
_phase = phase;
this(source, null, phase);
}
public ShouldSkipPhaseModifier(PhysicalCard source, Condition condition, Phase phase) {
this(source, null, condition, phase);
}
public ShouldSkipPhaseModifier(PhysicalCard source, String playerId, Condition condition, Phase phase) {
super(source, "Skip " + phase.toString() + " phase", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER});
_playerId = playerId;
_condition = condition;
_phase = phase;
}

View File

@@ -0,0 +1,20 @@
package com.gempukku.lotro.cards.modifiers.conditions;
import com.gempukku.lotro.common.Filterable;
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;
public class CantSpotCondition implements Condition {
private Filterable[] _filters;
public CantSpotCondition(Filterable... filters) {
this._filters = filters;
}
@Override
public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) {
return !Filters.canSpot(gameState, modifiersQuerying, _filters);
}
}

View File

@@ -0,0 +1,36 @@
package com.gempukku.lotro.cards.modifiers.evaluator;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
public class CountActiveEvaluator implements Evaluator {
private int _over;
private Filterable[] _filters;
private Integer _limit;
public CountActiveEvaluator(Filterable... filters) {
this(null, filters);
}
public CountActiveEvaluator(Integer limit, Filterable... filters) {
this(0, limit, filters);
}
public CountActiveEvaluator(int over, Integer limit, Filterable... filters) {
_over = over;
_filters = filters;
_limit = limit;
}
@Override
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
final int active = Math.max(0, Filters.countSpottable(gameState, modifiersQuerying, _filters) - _over);
if (_limit == null)
return active;
return Math.min(_limit, active);
}
}

View File

@@ -4,6 +4,8 @@ import com.gempukku.lotro.cards.AbstractAttachable;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.AttachPermanentAction;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.cards.modifiers.ShouldSkipPhaseModifier;
import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
@@ -11,14 +13,10 @@ 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.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
@@ -59,15 +57,7 @@ public class Card1_140 extends AbstractAttachable {
@Override
public Modifier getAlwaysOnModifier(final PhysicalCard self) {
return new AbstractModifier(self, "Skip archery phase", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER}) {
@Override
public boolean shouldSkipPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, String playerId) {
if (phase == Phase.ARCHERY
&& gameState.getCurrentSite() == self.getAttachedTo())
return true;
return false;
}
};
return new ShouldSkipPhaseModifier(self, new LocationCondition(Filters.hasAttached(self)), Phase.ARCHERY);
}
@Override

View File

@@ -1,14 +1,11 @@
package com.gempukku.lotro.cards.set1.sauron;
import com.gempukku.lotro.cards.AbstractPermanent;
import com.gempukku.lotro.cards.modifiers.ArcheryTotalModifier;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
/**
* Set: The Fellowship of the Ring
@@ -25,14 +22,6 @@ public class Card1_264 extends AbstractPermanent {
@Override
public Modifier getAlwaysOnModifier(PhysicalCard self) {
return new AbstractModifier(self, "While you can spot a SAURON Orc, add 1 to the minion archery total.", null, new ModifierEffect[]{ModifierEffect.ARCHERY_MODIFIER}) {
@Override
public int getArcheryTotalModifier(GameState gameState, ModifiersQuerying modifiersLogic, Side side) {
if (side == Side.SHADOW
&& Filters.canSpot(gameState, modifiersLogic, Filters.culture(Culture.SAURON), Filters.race(Race.ORC)))
return 1;
return 0;
}
};
return new ArcheryTotalModifier(self, Side.SHADOW, new SpotCondition(Culture.SAURON, Race.ORC), 1);
}
}

View File

@@ -1,16 +1,14 @@
package com.gempukku.lotro.cards.set1.sauron;
import com.gempukku.lotro.cards.AbstractAttachable;
import com.gempukku.lotro.cards.modifiers.CantHealModifier;
import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition;
import com.gempukku.lotro.common.*;
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.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/**
* Set: The Fellowship of the Ring
@@ -39,13 +37,6 @@ public class Card1_283 extends AbstractAttachable {
@Override
public Modifier getAlwaysOnModifier(PhysicalCard self) {
return new AbstractModifier(self, "While at a sanctuary, bearer cannot heal.", Filters.hasAttached(self), new ModifierEffect[]{ModifierEffect.WOUND_MODIFIER}) {
@Override
public boolean canBeHealed(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card) {
if (modifiersQuerying.hasKeyword(gameState, gameState.getCurrentSite(), Keyword.SANCTUARY))
return false;
return true;
}
};
return new CantHealModifier(self, new LocationCondition(Keyword.SANCTUARY), Filters.hasAttached(self));
}
}

View File

@@ -1,14 +1,16 @@
package com.gempukku.lotro.cards.set1.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.modifiers.ShouldSkipPhaseModifier;
import com.gempukku.lotro.cards.modifiers.conditions.CantSpotCondition;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import java.util.LinkedList;
import java.util.List;
/**
* Set: The Fellowship of the Ring
@@ -25,16 +27,12 @@ public class Card1_330 extends AbstractSite {
}
@Override
public Modifier getAlwaysOnModifier(final PhysicalCard self) {
return new AbstractModifier(self, "While only Hobbits are in the fellowship, there are no assignment and skirmish phases at Buckleberry Ferry.", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER}) {
@Override
public boolean shouldSkipPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, String playerId) {
if (gameState.getCurrentSite() == self
&& (phase == Phase.ASSIGNMENT || phase == Phase.SKIRMISH)
&& !Filters.canSpot(gameState, modifiersQuerying, Filters.type(CardType.COMPANION), Filters.not(Filters.race(Race.HOBBIT))))
return true;
return false;
}
};
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new ShouldSkipPhaseModifier(self, new CantSpotCondition(CardType.COMPANION, Filters.not(Race.HOBBIT)), Phase.ASSIGNMENT));
modifiers.add(
new ShouldSkipPhaseModifier(self, new CantSpotCondition(CardType.COMPANION, Filters.not(Race.HOBBIT)), Phase.SKIRMISH));
return modifiers;
}
}

View File

@@ -1,15 +1,13 @@
package com.gempukku.lotro.cards.set1.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.modifiers.ShouldSkipPhaseModifier;
import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition;
import com.gempukku.lotro.common.Block;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/**
* Set: The Fellowship of the Ring
@@ -27,14 +25,6 @@ public class Card1_354 extends AbstractSite {
@Override
public Modifier getAlwaysOnModifier(final PhysicalCard self) {
return new AbstractModifier(self, "Skip archery phase", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER}) {
@Override
public boolean shouldSkipPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, String playerId) {
if (phase == Phase.ARCHERY
&& gameState.getCurrentSite() == self)
return true;
return false;
}
};
return new ShouldSkipPhaseModifier(self, new LocationCondition(self), Phase.ARCHERY);
}
}

View File

@@ -1,17 +1,15 @@
package com.gempukku.lotro.cards.set1.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.modifiers.ArcheryTotalModifier;
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.cards.modifiers.evaluator.MultiplyEvaluator;
import com.gempukku.lotro.common.Block;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/**
* Set: The Fellowship of the Ring
@@ -28,15 +26,6 @@ public class Card1_356 extends AbstractSite {
@Override
public Modifier getAlwaysOnModifier(PhysicalCard self) {
return new AbstractModifier(self, "For each companion in the fellowship over 4, add 2 to the minion archery total.", null, new ModifierEffect[]{ModifierEffect.ARCHERY_MODIFIER}) {
@Override
public int getArcheryTotalModifier(GameState gameState, ModifiersQuerying modifiersLogic, Side side) {
if (side == Side.SHADOW) {
int bonus = Math.max(0, Filters.countActive(gameState, modifiersLogic, Filters.type(CardType.COMPANION)) - 4);
return bonus * 2;
}
return 0;
}
};
return new ArcheryTotalModifier(self, Side.SHADOW, null, new MultiplyEvaluator(2, new CountActiveEvaluator(4, null, CardType.COMPANION)));
}
}

View File

@@ -1,17 +1,14 @@
package com.gempukku.lotro.cards.set1.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.modifiers.ArcheryTotalModifier;
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.common.Block;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/**
* Set: The Fellowship of the Ring
@@ -28,15 +25,6 @@ public class Card1_357 extends AbstractSite {
@Override
public Modifier getAlwaysOnModifier(PhysicalCard self) {
return new AbstractModifier(self, "For each minion archer at Brown Lands, the minion archery total is +1 (limit +4).", null, new ModifierEffect[]{ModifierEffect.ARCHERY_MODIFIER}) {
@Override
public int getArcheryTotalModifier(GameState gameState, ModifiersQuerying modifiersLogic, Side side) {
if (side == Side.SHADOW) {
int bonus = Math.min(Filters.countActive(gameState, modifiersLogic, Filters.type(CardType.MINION), Filters.keyword(Keyword.ARCHER)), 4);
return bonus;
}
return 0;
}
};
return new ArcheryTotalModifier(self, Side.SHADOW, null, new CountActiveEvaluator(4, CardType.MINION, Keyword.ARCHER));
}
}

View File

@@ -3,14 +3,15 @@ package com.gempukku.lotro.cards.set1.wraith;
import com.gempukku.lotro.cards.AbstractPermanent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.TransferPermanentEffect;
import com.gempukku.lotro.cards.modifiers.CantHealModifier;
import com.gempukku.lotro.cards.modifiers.CantRemoveBurdensModifier;
import com.gempukku.lotro.common.*;
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.modifiers.*;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections;
@@ -49,12 +50,7 @@ public class Card1_207 extends AbstractPermanent {
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new AbstractModifier(self, "Burdens and wounds may not be removed from bearer.", Filters.hasAttached(self), new ModifierEffect[]{ModifierEffect.WOUND_MODIFIER}) {
@Override
public boolean canBeHealed(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card) {
return false;
}
});
new CantHealModifier(self, Filters.hasAttached(self)));
modifiers.add(
new CantRemoveBurdensModifier(self, new SpotCondition(Keyword.RING_BEARER, Filters.hasAttached(self)), Filters.any));
return modifiers;

View File

@@ -7,18 +7,15 @@ import com.gempukku.lotro.cards.effects.ChoiceEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseOpponentEffect;
import com.gempukku.lotro.cards.modifiers.ShouldSkipPhaseModifier;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Side;
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.effects.DrawCardEffect;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Effect;
import java.util.LinkedList;
@@ -84,13 +81,7 @@ public class Card2_015 extends AbstractOldEvent {
private class SkipNextShadowPhaseChooseableEffect extends AddUntilEndOfTurnModifierEffect {
public SkipNextShadowPhaseChooseableEffect(PhysicalCard card, final String opponentId) {
super(
new AbstractModifier(card, "Skip Shadow phase", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER}) {
@Override
public boolean shouldSkipPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, String playerId) {
return phase == Phase.SHADOW && opponentId.equals(playerId);
}
}
);
new ShouldSkipPhaseModifier(card, opponentId, null, Phase.SHADOW));
}
@Override

View File

@@ -1,17 +1,14 @@
package com.gempukku.lotro.cards.set2.moria;
import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.modifiers.ShouldSkipPhaseModifier;
import com.gempukku.lotro.common.*;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
@@ -40,15 +37,7 @@ public class Card2_051 extends AbstractMinion {
@Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new AbstractModifier(self, "Skip archery phase", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER}) {
@Override
public boolean shouldSkipPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, String playerId) {
if (phase == Phase.ARCHERY)
return true;
return false;
}
}
);
new ShouldSkipPhaseModifier(self, Phase.ARCHERY));
}
@Override

View File

@@ -1,15 +1,17 @@
package com.gempukku.lotro.cards.set4.dunland;
import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.modifiers.ShouldSkipPhaseModifier;
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.GameState;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import java.util.LinkedList;
import java.util.List;
@@ -35,13 +37,7 @@ public class Card4_022 extends AbstractMinion {
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, final PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new AbstractModifier(self, "Skip the archery phase", null, new ModifierEffect[]{ModifierEffect.ACTION_MODIFIER}) {
@Override
public boolean shouldSkipPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, String playerId) {
return phase == Phase.ARCHERY
&& Filters.countSpottable(gameState, modifiersQuerying, Filters.siteControlled(self.getOwner())) >= 2;
}
});
new ShouldSkipPhaseModifier(self, new SpotCondition(2, Filters.siteControlled(self.getOwner())), Phase.ARCHERY));
modifiers.add(
new KeywordModifier(self, Filters.and(Filters.owner(self.getOwner()), Filters.culture(Culture.DUNLAND), Filters.race(Race.MAN)),
new SpotCondition(3, Filters.siteControlled(self.getOwner())), Keyword.FIERCE, 1));

View File

@@ -5,6 +5,7 @@ import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.AttachPermanentAction;
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.cards.modifiers.CantHealModifier;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race;
@@ -12,13 +13,9 @@ 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.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
@@ -71,11 +68,6 @@ public class Card4_215 extends AbstractAttachable {
@Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new AbstractModifier(self, "Can't have wounds removed", Filters.hasAttached(self), new ModifierEffect[]{ModifierEffect.WOUND_MODIFIER}) {
@Override
public boolean canBeHealed(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card) {
return false;
}
});
new CantHealModifier(self, Filters.hasAttached(self)));
}
}