"Bill Ferny"
This commit is contained in:
@@ -10,11 +10,11 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PreventMinionBeingAssignedToCompanionModifier extends AbstractModifier {
|
public class PreventMinionBeingAssignedToCharacterModifier extends AbstractModifier {
|
||||||
private Filter _minionFilter;
|
private Filter _minionFilter;
|
||||||
|
|
||||||
public PreventMinionBeingAssignedToCompanionModifier(PhysicalCard source, Filter companionFilter, Filter minionFilter) {
|
public PreventMinionBeingAssignedToCharacterModifier(PhysicalCard source, Filter characterFilter, Filter minionFilter) {
|
||||||
super(source, "Is affected by assignment restriction", companionFilter, new ModifierEffect[]{ModifierEffect.ASSIGNMENT_MODIFIER});
|
super(source, "Is affected by assignment restriction", characterFilter, new ModifierEffect[]{ModifierEffect.ASSIGNMENT_MODIFIER});
|
||||||
_minionFilter = minionFilter;
|
_minionFilter = minionFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,7 +5,7 @@ import com.gempukku.lotro.cards.PlayConditions;
|
|||||||
import com.gempukku.lotro.cards.costs.ExertCharactersCost;
|
import com.gempukku.lotro.cards.costs.ExertCharactersCost;
|
||||||
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
||||||
import com.gempukku.lotro.cards.effects.CardAffectsCardEffect;
|
import com.gempukku.lotro.cards.effects.CardAffectsCardEffect;
|
||||||
import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCompanionModifier;
|
import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -48,7 +48,7 @@ public class Card1_147 extends AbstractMinion {
|
|||||||
action.appendEffect(new CardAffectsCardEffect(self, companion));
|
action.appendEffect(new CardAffectsCardEffect(self, companion));
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new AddUntilEndOfPhaseModifierEffect(
|
new AddUntilEndOfPhaseModifierEffect(
|
||||||
new PreventMinionBeingAssignedToCompanionModifier(self, Filters.sameCard(companion), Filters.sameCard(self))
|
new PreventMinionBeingAssignedToCharacterModifier(self, Filters.sameCard(companion), Filters.sameCard(self))
|
||||||
, Phase.ASSIGNMENT));
|
, Phase.ASSIGNMENT));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package com.gempukku.lotro.cards.set2.wraith;
|
||||||
|
|
||||||
|
import com.gempukku.lotro.cards.AbstractMinion;
|
||||||
|
import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier;
|
||||||
|
import com.gempukku.lotro.common.CardType;
|
||||||
|
import com.gempukku.lotro.common.Culture;
|
||||||
|
import com.gempukku.lotro.common.Keyword;
|
||||||
|
import com.gempukku.lotro.common.Race;
|
||||||
|
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.effects.DiscardCardsFromPlayEffect;
|
||||||
|
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||||
|
import com.gempukku.lotro.logic.modifiers.RemoveKeywordModifier;
|
||||||
|
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set: Mines of Moria
|
||||||
|
* Side: Shadow
|
||||||
|
* Culture: Wraith
|
||||||
|
* Twilight Cost: 2
|
||||||
|
* Type: Minion • Man
|
||||||
|
* Strength: 4
|
||||||
|
* Vitality: 1
|
||||||
|
* Site: 2
|
||||||
|
* Game Text: Nazgul are not roaming. The Free Peoples player may not assign a character to skirmish Bill Ferny.
|
||||||
|
* Discard Bill Ferny if underground.
|
||||||
|
*/
|
||||||
|
public class Card2_075 extends AbstractMinion {
|
||||||
|
public Card2_075() {
|
||||||
|
super(2, 4, 1, 2, Race.MAN, Culture.WRAITH, "Bill Ferny", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<? extends Modifier> getAlwaysOnModifiers(PhysicalCard self) {
|
||||||
|
List<Modifier> modifiers = new LinkedList<Modifier>();
|
||||||
|
modifiers.add(new RemoveKeywordModifier(self, Filters.race(Race.NAZGUL), Keyword.ROAMING));
|
||||||
|
modifiers.add(
|
||||||
|
new PreventMinionBeingAssignedToCharacterModifier(self, Filters.or(Filters.type(CardType.COMPANION), Filters.type(CardType.ALLY)), Filters.sameCard(self)));
|
||||||
|
return modifiers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
|
if (game.getModifiersQuerying().hasKeyword(game.getGameState(), game.getGameState().getCurrentSite(), Keyword.UNDERGROUND)) {
|
||||||
|
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
|
action.appendEffect(
|
||||||
|
new DiscardCardsFromPlayEffect(self, self));
|
||||||
|
return Collections.singletonList(action);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,10 +6,7 @@ import com.gempukku.lotro.filters.Filter;
|
|||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.game.state.GameState;
|
import com.gempukku.lotro.game.state.GameState;
|
||||||
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
|
import com.gempukku.lotro.logic.modifiers.*;
|
||||||
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.ModifiersLogic;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
|
|
||||||
|
|
||||||
public class RoamingRule {
|
public class RoamingRule {
|
||||||
private ModifiersLogic _modifiersLogic;
|
private ModifiersLogic _modifiersLogic;
|
||||||
@@ -27,21 +24,10 @@ public class RoamingRule {
|
|||||||
});
|
});
|
||||||
|
|
||||||
_modifiersLogic.addAlwaysOnModifier(
|
_modifiersLogic.addAlwaysOnModifier(
|
||||||
new AbstractModifier(null, "Is Roaming", roamingFilter, new ModifierEffect[]{ModifierEffect.KEYWORD_MODIFIER, ModifierEffect.TWILIGHT_COST_MODIFIER}) {
|
new KeywordModifier(null, roamingFilter, Keyword.ROAMING));
|
||||||
@Override
|
|
||||||
public int getKeywordCount(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, Keyword keyword, int result) {
|
|
||||||
if (keyword == Keyword.ROAMING)
|
|
||||||
return result + 1;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasKeyword(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, Keyword keyword, boolean result) {
|
|
||||||
if (keyword == Keyword.ROAMING)
|
|
||||||
return true;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
_modifiersLogic.addAlwaysOnModifier(
|
||||||
|
new AbstractModifier(null, "Roaming twilight cost increase", Filters.keyword(Keyword.ROAMING), new ModifierEffect[]{ModifierEffect.TWILIGHT_COST_MODIFIER}) {
|
||||||
@Override
|
@Override
|
||||||
public int getTwilightCost(GameState gameState, ModifiersQuerying modifiersLogic, PhysicalCard physicalCard, int result) {
|
public int getTwilightCost(GameState gameState, ModifiersQuerying modifiersLogic, PhysicalCard physicalCard, int result) {
|
||||||
return result + Math.max(0, modifiersLogic.getRoamingPenalty(gameState, physicalCard));
|
return result + Math.max(0, modifiersLogic.getRoamingPenalty(gameState, physicalCard));
|
||||||
|
|||||||
Reference in New Issue
Block a user