This commit is contained in:
marcins78@gmail.com
2012-02-03 14:35:32 +00:00
parent 7e8c2fc92b
commit a20c0816c5
2 changed files with 52 additions and 4 deletions

View File

@@ -0,0 +1,42 @@
package com.gempukku.lotro.cards.set15.rohan;
import com.gempukku.lotro.cards.AbstractCompanion;
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.modifiers.*;
import java.util.LinkedList;
import java.util.List;
/**
* Set: The Hunters
* Side: Free
* Culture: Rohan
* Twilight Cost: 2
* Type: Companion • Man
* Strength: 5
* Vitality: 3
* Resistance: 6
* Game Text: While you can spot 2 mounts, Haleth is strength +2. While you can spot 3 mounts, Haleth is damage +1.
* While you can spot 4 Free Peoples mounts, those mounts can not be discarded by a Shadow player.
*/
public class Card15_128 extends AbstractCompanion {
public Card15_128() {
super(2, 5, 3, 6, Culture.ROHAN, Race.MAN, null, "Haleth", true);
}
@Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new StrengthModifier(self, self, new SpotCondition(2, PossessionClass.MOUNT), 2));
modifiers.add(
new KeywordModifier(self, self, new SpotCondition(3, PossessionClass.MOUNT), Keyword.DAMAGE, 1));
modifiers.add(
new CantDiscardFromPlayModifier(self, "Can't be discarded by a Shadow player", new SpotCondition(4, Side.FREE_PEOPLE, PossessionClass.MOUNT),
Filters.and(Side.FREE_PEOPLE, PossessionClass.MOUNT), Side.SHADOW));
return modifiers;
}
}

View File

@@ -1,20 +1,26 @@
package com.gempukku.lotro.logic.modifiers;
import com.gempukku.lotro.filters.Filter;
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;
public class CantDiscardFromPlayModifier extends AbstractModifier {
private Filter _sourceFilter;
private Filterable _sourceFilter;
public CantDiscardFromPlayModifier(PhysicalCard source, String text, Filter affectFilter, Filter sourceFilter) {
public CantDiscardFromPlayModifier(PhysicalCard source, String text, Filterable affectFilter, Filterable sourceFilter) {
super(source, text, affectFilter, ModifierEffect.DISCARD_FROM_PLAY_MODIFIER);
_sourceFilter = sourceFilter;
}
public CantDiscardFromPlayModifier(PhysicalCard source, String text, Condition condition, Filterable affectFilter, Filterable sourceFilter) {
super(source, text, affectFilter, condition, ModifierEffect.DISCARD_FROM_PLAY_MODIFIER);
_sourceFilter = sourceFilter;
}
@Override
public boolean canBeDiscardedFromPlay(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card, PhysicalCard source) {
if (_sourceFilter.accepts(gameState, modifiersQuerying, source))
if (Filters.and(_sourceFilter).accepts(gameState, modifiersQuerying, source))
return false;
return true;
}