From 31d290526cd887e131b9571dff77c1cb67cd2447 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Fri, 27 Jan 2012 14:30:51 +0000 Subject: [PATCH] "Bill Ferny" --- ...inionBeingAssignedToCharacterModifier.java | 7 +++ .../lotro/cards/set15/men/Card15_072.java | 46 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PreventMinionBeingAssignedToCharacterModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PreventMinionBeingAssignedToCharacterModifier.java index 8f5ad336d..edd3f3005 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PreventMinionBeingAssignedToCharacterModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PreventMinionBeingAssignedToCharacterModifier.java @@ -6,6 +6,7 @@ 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; @@ -21,6 +22,12 @@ public class PreventMinionBeingAssignedToCharacterModifier extends AbstractModif _minionFilter = minionFilter; } + public PreventMinionBeingAssignedToCharacterModifier(PhysicalCard source, Side side, Filterable characterFilter, Condition condition, Filterable minionFilter) { + super(source, "Is affected by assignment restriction", characterFilter, condition, ModifierEffect.ASSIGNMENT_MODIFIER); + _side = side; + _minionFilter = minionFilter; + } + @Override public boolean isValidAssignments(GameState gameState, Side side, ModifiersQuerying modifiersQuerying, PhysicalCard companion, Set minions) { if ((_side == null || side == _side) && Filters.filter(minions, gameState, modifiersQuerying, _minionFilter).size() > 0) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java new file mode 100644 index 000000000..263709236 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java @@ -0,0 +1,46 @@ +package com.gempukku.lotro.cards.set15.men; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.SelfExertEffect; +import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +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.ActivateCardAction; +import com.gempukku.lotro.logic.effects.AddTwilightEffect; +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; +import java.util.List; + +public class Card15_072 extends AbstractMinion { + public Card15_072() { + super(2, 4, 3, 4, Race.MAN, Culture.MEN, "Bill Ferny", true); + } + + @Override + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new PreventMinionBeingAssignedToCharacterModifier(self, Side.FREE_PEOPLE, CardType.COMPANION, new SpotCondition(self, Filters.unwounded), self); + } + + @Override + protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0) + && PlayConditions.canSelfExert(self, 2, game) + && PlayConditions.canSpot(game, Filters.siteControlled(playerId))) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new SelfExertEffect(self)); + action.appendCost( + new SelfExertEffect(self)); + action.appendEffect( + new AddTwilightEffect(self, 2)); + return Collections.singletonList(action); + } + return null; + } +}