Migrated Gollum cards in set 5 to hjson
This commit is contained in:
@@ -1,65 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
||||
import com.gempukku.lotro.logic.actions.PlayEventAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
|
||||
import com.gempukku.lotro.logic.effects.PreventableEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Free
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 1
|
||||
* Type: Event
|
||||
* Game Text: Maneuver: Discard Smeagol to discard a minion. An opponent may exert a minion twice to prevent this.
|
||||
*/
|
||||
public class Card5_021 extends AbstractEvent {
|
||||
public Card5_021() {
|
||||
super(Side.FREE_PEOPLE, 1, Culture.GOLLUM, "Be Back Soon", Phase.MANEUVER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
|
||||
return PlayConditions.canDiscardFromPlay(self, game, Filters.smeagol);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
|
||||
PlayEventAction action = new PlayEventAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.smeagol));
|
||||
action.appendEffect(
|
||||
new PreventableEffect(action,
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.MINION) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Discard a minion";
|
||||
}
|
||||
}, GameUtils.getShadowPlayers(game),
|
||||
new PreventableEffect.PreventionCost() {
|
||||
@Override
|
||||
public Effect createPreventionCostForPlayer(CostToEffectAction subAction, String playerId) {
|
||||
return new ChooseAndExertCharactersEffect(subAction, playerId, 1, 1, 2, CardType.MINION) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Exert a minion twice";
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
));
|
||||
return action;
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
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.cardtype.AbstractPermanent;
|
||||
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Shadow
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 1
|
||||
* Type: Condition
|
||||
* Game Text: Plays to your support area. Each site on the adventure path is a marsh. Shadow: Exert Gollum twice
|
||||
* and discard this condition to play a minion from your discard pile.
|
||||
*/
|
||||
public class Card5_022 extends AbstractPermanent {
|
||||
public Card5_022() {
|
||||
super(Side.SHADOW, 1, CardType.CONDITION, Culture.GOLLUM, "Evil-smelling Fens");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new KeywordModifier(self,
|
||||
Filters.and(
|
||||
CardType.SITE,
|
||||
Zone.ADVENTURE_PATH
|
||||
), Keyword.MARSH));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
|
||||
&& PlayConditions.canExert(self, game, 2, Filters.gollum)
|
||||
&& PlayConditions.canPlayFromDiscard(playerId, game, CardType.MINION)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.gollum));
|
||||
action.appendCost(
|
||||
new SelfDiscardEffect(self));
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, CardType.MINION));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
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.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
|
||||
import com.gempukku.lotro.logic.effects.PlayNextSiteEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Free
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 1
|
||||
* Type: Condition
|
||||
* Game Text: Plays on Smeagol. Regroup: Exert Smeagol or Gollum to play the fellowship's next site (replacing
|
||||
* opponent's site if necessary).
|
||||
*/
|
||||
public class Card5_023 extends AbstractAttachable {
|
||||
public Card5_023() {
|
||||
super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.GOLLUM, null, "Follow Sméagol");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
||||
return Filters.smeagol;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self)
|
||||
&& PlayConditions.canExert(self, game, Filters.gollumOrSmeagol)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.gollumOrSmeagol));
|
||||
action.appendEffect(new PlayNextSiteEffect(action, playerId));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
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.cardtype.AbstractMinion;
|
||||
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Shadow
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 2
|
||||
* Type: Minion
|
||||
* Strength: 5
|
||||
* Vitality: 4
|
||||
* Site: 3
|
||||
* Game Text: Regroup: Discard Gollum to exert a companion or ally.
|
||||
*/
|
||||
public class Card5_024 extends AbstractMinion {
|
||||
public Card5_024() {
|
||||
super(2, 5, 4, 3, null, Culture.GOLLUM, "Gollum", "Nasty Treacherous Creature", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)
|
||||
&& PlayConditions.canDiscardFromPlay(self, game, self)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new SelfDiscardEffect(self));
|
||||
action.appendEffect(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.or(CardType.COMPANION, CardType.ALLY)));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
|
||||
import com.gempukku.lotro.logic.effects.AddBurdenEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Shadow
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 2
|
||||
* Type: Minion
|
||||
* Strength: 5
|
||||
* Vitality: 4
|
||||
* Site: 3
|
||||
* Game Text: Gollum is strength +1 for each burden. Each times Gollum wins a skirmish, you may add a burden.
|
||||
*/
|
||||
public class Card5_025 extends AbstractMinion {
|
||||
public Card5_025() {
|
||||
super(2, 5, 4, 3, null, Culture.GOLLUM, "Gollum", "Stinker", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new StrengthModifier(self, self, null,
|
||||
new Evaluator() {
|
||||
@Override
|
||||
public int evaluateExpression(LotroGame game, PhysicalCard self) {
|
||||
return game.getGameState().getBurdens();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.winsSkirmish(game, effectResult, self)) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new AddBurdenEffect(self.getOwner(), self, 1));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
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.PlayEventAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Shadow
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 0
|
||||
* Type: Event
|
||||
* Game Text: Shadow: Spot Smeagol or Gollum to add (1) for each burden.
|
||||
*/
|
||||
public class Card5_026 extends AbstractEvent {
|
||||
public Card5_026() {
|
||||
super(Side.SHADOW, 0, Culture.GOLLUM, "Look at Him", Phase.SHADOW);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
|
||||
return PlayConditions.canSpot(game, Filters.gollumOrSmeagol);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
|
||||
PlayEventAction action = new PlayEventAction(self);
|
||||
action.appendEffect(
|
||||
new AddTwilightEffect(self, game.getGameState().getBurdens()));
|
||||
return action;
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
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.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Free
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 1
|
||||
* Type: Condition
|
||||
* Strength: +1
|
||||
* Game Text: Plays on Smeagol. Skirmish: Discard this condition to make Smeagol damage +1.
|
||||
*/
|
||||
public class Card5_027 extends AbstractAttachable {
|
||||
public Card5_027() {
|
||||
super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.GOLLUM, null, "Poor Wretch");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
||||
return Filters.smeagol;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStrength() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
|
||||
&& PlayConditions.canDiscardFromPlay(self, game, self)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new SelfDiscardEffect(self));
|
||||
action.appendEffect(
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose Smeagol", Filters.smeagol) {
|
||||
@Override
|
||||
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
||||
action.insertEffect(
|
||||
new AddUntilEndOfPhaseModifierEffect(
|
||||
new KeywordModifier(self, Filters.sameCard(card), Keyword.DAMAGE)));
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
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.cardtype.AbstractCompanion;
|
||||
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
|
||||
import com.gempukku.lotro.logic.effects.PutCardsFromDeckBeneathDrawDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.RevealTopCardsOfDrawDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.cost.AddBurdenExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Free
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 0
|
||||
* Type: Companion
|
||||
* Strength: 3
|
||||
* Vitality: 4
|
||||
* Resistance: 6
|
||||
* Signet: Frodo
|
||||
* Game Text: Ring-bound. To play add a burden. Regroup: Exert Smeagol (or Gollum) twice to reveal the top 4 cards
|
||||
* of your draw deck. Wound a minion for each Shadow card revealed. Place those 4 cards beneath your draw deck in any order.
|
||||
*/
|
||||
public class Card5_028 extends AbstractCompanion {
|
||||
public Card5_028() {
|
||||
super(0, 3, 4, 6, Culture.GOLLUM, null, Signet.FRODO, "Sméagol", "Old Noser", true);
|
||||
addKeyword(Keyword.RING_BOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends AbstractExtraPlayCostModifier> getExtraCostToPlay(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new AddBurdenExtraPlayCostModifier(self, 1, null, self));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, final LotroGame game, final PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self)
|
||||
&& PlayConditions.canExert(self, game, 2, Filters.gollumOrSmeagol)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.gollumOrSmeagol));
|
||||
action.appendEffect(
|
||||
new RevealTopCardsOfDrawDeckEffect(self, playerId, 4) {
|
||||
@Override
|
||||
protected void cardsRevealed(List<PhysicalCard> revealedCards) {
|
||||
int shadowCards = Filters.filter(revealedCards, game, Side.SHADOW).size();
|
||||
action.appendEffect(
|
||||
new PutCardsFromDeckBeneathDrawDeckEffect(action, self, playerId, revealedCards, true));
|
||||
for (int i = 0; i < shadowCards; i++)
|
||||
action.appendEffect(
|
||||
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.MINION));
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Signet;
|
||||
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.cardtype.AbstractCompanion;
|
||||
import com.gempukku.lotro.logic.effects.AddBurdenEffect;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.CantTakeWoundsModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.cost.AddBurdenExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Free
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 0
|
||||
* Type: Companion
|
||||
* Strength: 3
|
||||
* Vitality: 4
|
||||
* Resistance: 6
|
||||
* Signet: Frodo
|
||||
* Game Text: Ring-bound. To play, add a burden. Skirmish: Add a burden to make Smeagol strength +2 and takes no wound.
|
||||
*/
|
||||
public class Card5_029 extends AbstractCompanion {
|
||||
public Card5_029() {
|
||||
super(0, 3, 4, 6, Culture.GOLLUM, null, Signet.FRODO, "Sméagol", "Slinker", true);
|
||||
addKeyword(Keyword.RING_BOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends AbstractExtraPlayCostModifier> getExtraCostToPlay(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new AddBurdenExtraPlayCostModifier(self, 1, null, self));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new AddBurdenEffect(self.getOwner(), self, 1));
|
||||
action.appendEffect(
|
||||
new AddUntilEndOfPhaseModifierEffect(
|
||||
new StrengthModifier(self, self, 2)));
|
||||
action.appendEffect(
|
||||
new AddUntilEndOfPhaseModifierEffect(
|
||||
new CantTakeWoundsModifier(self, self)));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set5.gollum;
|
||||
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
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.PlayEventAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
|
||||
import com.gempukku.lotro.logic.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.logic.effects.DiscardCardAtRandomFromHandEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Battle of Helm's Deep
|
||||
* Side: Shadow
|
||||
* Culture: Gollum
|
||||
* Twilight Cost: 0
|
||||
* Type: Event
|
||||
* Game Text: Shadow: Play Gollum from your draw deck or your discard pile. Skirmish: Discard a card at random from hand
|
||||
* to make Gollum strength +3.
|
||||
*/
|
||||
public class Card5_030 extends AbstractEvent {
|
||||
public Card5_030() {
|
||||
super(Side.SHADOW, 0, Culture.GOLLUM, "We Must Have It", Phase.SHADOW, Phase.SKIRMISH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
|
||||
return (
|
||||
game.getGameState().getCurrentPhase() != Phase.SKIRMISH
|
||||
|| Filters.filter(game.getGameState().getHand(self.getOwner()), game, Filters.not(self)).size() >= 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
|
||||
PlayEventAction action = new PlayEventAction(self);
|
||||
if (game.getGameState().getCurrentPhase() == Phase.SHADOW) {
|
||||
List<Effect> possibleEffects = new LinkedList<>();
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Filters.gollum) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play Gollum from your draw deck";
|
||||
}
|
||||
});
|
||||
if (PlayConditions.canPlayFromDiscard(playerId, game, Filters.gollum)) {
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.gollum) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play Gollum from your discard pile";
|
||||
}
|
||||
});
|
||||
}
|
||||
action.appendEffect(
|
||||
new ChoiceEffect(action, playerId, possibleEffects));
|
||||
} else {
|
||||
action.appendCost(
|
||||
new DiscardCardAtRandomFromHandEffect(self, playerId, false));
|
||||
action.appendEffect(
|
||||
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 3, Filters.gollum));
|
||||
}
|
||||
return action;
|
||||
}
|
||||
}
|
||||
@@ -22,20 +22,30 @@
|
||||
twilight: 1
|
||||
type: Event
|
||||
keywords: Maneuver
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: {
|
||||
type: event
|
||||
cost: {
|
||||
|
||||
type: discard
|
||||
filter: choose(name(Sméagol))
|
||||
},
|
||||
effect: [
|
||||
{
|
||||
|
||||
type: preventable
|
||||
player: shadow
|
||||
text: Would you like to exert a minion twice to prevent discarding a minion?
|
||||
cost: {
|
||||
type: exert
|
||||
player: shadow
|
||||
filter: choose(minion)
|
||||
times: 2
|
||||
}
|
||||
effect: {
|
||||
type: discard
|
||||
filter: choose(minion)
|
||||
}
|
||||
}
|
||||
]
|
||||
}*/
|
||||
}
|
||||
gametext: <b>Maneuver:</b> Discard Sméagol to discard a minion. An opponent may exert a minion twice to prevent this.
|
||||
lore: Now I wonder where he's got to?'
|
||||
promotext: ""
|
||||
@@ -69,17 +79,35 @@
|
||||
twilight: 1
|
||||
type: Condition
|
||||
keywords: Support Area
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: [
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
]*/
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: addKeyword
|
||||
filter: site,zone(adventure path)
|
||||
keyword: marsh
|
||||
}
|
||||
}
|
||||
{
|
||||
type: activated
|
||||
phase: shadow
|
||||
cost: [
|
||||
{
|
||||
type: exert
|
||||
filter: choose(name(Gollum))
|
||||
times: 2
|
||||
}
|
||||
{
|
||||
type: discard
|
||||
filter: self
|
||||
}
|
||||
]
|
||||
effect: {
|
||||
type: playCardFromDiscard
|
||||
filter: choose(minion)
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: Plays to your support area.<br>Each site on the adventure path is a <b>marsh</b>.<br><b>Shadow:</b> Exert Gollum twice and discard this condition to play a minion from your discard pile.
|
||||
lore: No birds here. There are snakeses, wormses, things in the pools. Lots of things, lots of nasty things.'
|
||||
promotext: ""
|
||||
@@ -112,17 +140,20 @@
|
||||
culture: Gollum
|
||||
twilight: 1
|
||||
type: Condition
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
target: name(Sméagol)
|
||||
effects: [
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
]*/
|
||||
{
|
||||
type: activated
|
||||
phase: regroup
|
||||
cost: {
|
||||
type: exert
|
||||
filter: choose(or(name(Sméagol),name(Gollum)))
|
||||
}
|
||||
effect: {
|
||||
type: playNextSite
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: Plays on Sméagol.<br><b>Regroup:</b> Exert Sméagol or Gollum to play the fellowship's next site (replacing opponent's site if necessary).
|
||||
lore: Follow Sméagol very carefully, and you may go a long way, quite a long way, before He catches you, yes perhaps.'
|
||||
promotext: ""
|
||||
@@ -156,21 +187,23 @@
|
||||
culture: Gollum
|
||||
twilight: 2
|
||||
type: Minion
|
||||
race:
|
||||
strength: 5
|
||||
vitality: 4
|
||||
site: 3
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: [
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
]*/
|
||||
{
|
||||
type: activated
|
||||
phase: regroup
|
||||
cost: {
|
||||
type: discard
|
||||
filter: self
|
||||
}
|
||||
effect: {
|
||||
type: exert
|
||||
filter: choose(or(companion,ally))
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: <b>Regroup:</b> Discard Gollum to exert a companion or ally.
|
||||
lore: ...we won't let you go, either. You're full of wickedness and mischief, Gollum.'
|
||||
promotext: ""
|
||||
@@ -204,21 +237,32 @@
|
||||
culture: Gollum
|
||||
twilight: 2
|
||||
type: Minion
|
||||
race:
|
||||
strength: 5
|
||||
vitality: 4
|
||||
site: 3
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: [
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
]*/
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: modifyStrength
|
||||
filter: self
|
||||
amount: {
|
||||
type: forEachBurden
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
type: trigger
|
||||
optional: true
|
||||
trigger: {
|
||||
type: winsSkirmish
|
||||
filter: self
|
||||
}
|
||||
effect: {
|
||||
type: addBurdens
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: Gollum is strength +1 for each burden.<br>Each time Gollum wins a skirmish, you may add a burden.
|
||||
lore: Still he's a Baggins, my precious, yes, a Baggins. A Baggins stole it. He found it and he said nothing. We hates Bagginses.'
|
||||
promotext: ""
|
||||
@@ -252,20 +296,21 @@
|
||||
twilight: 0
|
||||
type: Event
|
||||
keywords: Shadow
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: {
|
||||
type: event
|
||||
cost: {
|
||||
|
||||
},
|
||||
requires: {
|
||||
type: canSpot
|
||||
filter: or(name(Sméagol),name(Gollum))
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
|
||||
type: addTwilight
|
||||
amount: {
|
||||
type: forEachBurden
|
||||
}
|
||||
}
|
||||
]
|
||||
}*/
|
||||
}
|
||||
gametext: <b>Shadow:</b> Spot Sméagol or Gollum to add (1) for each burden.
|
||||
lore: That's what it is. It's that Gollum! Snakes and adders! And to think I thought that we'd puzzle him with our bit of a climb!'
|
||||
promotext: ""
|
||||
@@ -299,17 +344,23 @@
|
||||
twilight: 1
|
||||
type: Condition
|
||||
strength: 1
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
target: name(Sméagol)
|
||||
effects: [
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
]*/
|
||||
{
|
||||
type: activated
|
||||
phase: skirmish
|
||||
cost: {
|
||||
type: discard
|
||||
filter: self
|
||||
}
|
||||
effect: {
|
||||
type: addKeyword
|
||||
filter: choose(name(Sméagol))
|
||||
keyword: damage
|
||||
amount: 1
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: Plays on Sméagol.<br><b>Skirmish:</b> Discard this condition to make Sméagol <b>damage +1</b>.
|
||||
lore: Throttle us in our sleep, that's his plan.'
|
||||
promotext: ""
|
||||
@@ -343,23 +394,51 @@
|
||||
culture: Gollum
|
||||
twilight: 0
|
||||
type: Companion
|
||||
race:
|
||||
strength: 3
|
||||
vitality: 4
|
||||
signet: Frodo
|
||||
resistance: 6
|
||||
keywords: Ring-bound
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: [
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
]*/
|
||||
{
|
||||
type: extraCost
|
||||
cost: {
|
||||
type: addBurdens
|
||||
}
|
||||
}
|
||||
{
|
||||
type: activated
|
||||
phase: regroup
|
||||
cost: {
|
||||
type: exert
|
||||
filter: choose(or(name(Sméagol),name(Gollum)))
|
||||
times: 2
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: revealTopCardsOfDrawDeck
|
||||
count: 4
|
||||
memorize: revealedCards
|
||||
}
|
||||
{
|
||||
type: repeat
|
||||
amount: {
|
||||
type: forEachMatchingInMemory
|
||||
filter: side(shadow)
|
||||
memory: revealedCards
|
||||
}
|
||||
effect: {
|
||||
type: wound
|
||||
filter: choose(minion)
|
||||
}
|
||||
}
|
||||
{
|
||||
type: putCardsFromDeckOnBottomOfDeck
|
||||
filter: memory(revealedCards)
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
gametext: <b>Ring-bound</b>. To play, add a burden.<br><b>Regroup:</b> Exert Sméagol (or Gollum) twice to reveal the top 4 cards of your draw deck. Wound a minion for each Shadow card revealed. Place those 4 cards beneath your draw deck in any order.
|
||||
lore: Could you find anything fit for a hungry hobbit?'
|
||||
promotext: ""
|
||||
@@ -393,23 +472,40 @@
|
||||
culture: Gollum
|
||||
twilight: 0
|
||||
type: Companion
|
||||
race:
|
||||
strength: 3
|
||||
vitality: 4
|
||||
signet: Frodo
|
||||
resistance: 6
|
||||
keywords: Ring-bound
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: [
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
]*/
|
||||
{
|
||||
type: extraCost
|
||||
cost: {
|
||||
type: addBurdens
|
||||
}
|
||||
}
|
||||
{
|
||||
type: activated
|
||||
phase: skirmish
|
||||
cost: {
|
||||
type: addBurdens
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: modifyStrength
|
||||
filter: self
|
||||
amount: 2
|
||||
}
|
||||
{
|
||||
type: addModifier
|
||||
modifier: {
|
||||
type: cantTakeWounds
|
||||
filter: self
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
gametext: <b>Ring-bound</b>. To play, add a burden.<br><b>Skirmish:</b> Add a burden to make Sméagol strength +2 and take no wounds.
|
||||
lore: ...that it is my fate to receive help from you, where I least looked for it, and your fate to help me whom you long pursued with evil purpose.'
|
||||
promotext: ""
|
||||
@@ -446,20 +542,48 @@
|
||||
Shadow
|
||||
Skirmish
|
||||
]
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
effects: {
|
||||
type: event
|
||||
cost: {
|
||||
|
||||
},
|
||||
effect: [
|
||||
{
|
||||
|
||||
}
|
||||
]
|
||||
}*/
|
||||
type: if
|
||||
condition: {
|
||||
type: phase
|
||||
phase: shadow
|
||||
}
|
||||
true: {
|
||||
type: costToEffect
|
||||
effect: {
|
||||
type: choice
|
||||
texts: [
|
||||
Play Gollum from your draw deck
|
||||
Play Gollum from your discard pile
|
||||
]
|
||||
effects: [
|
||||
{
|
||||
type: playCardFromDrawDeck
|
||||
filter: choose(name(Gollum))
|
||||
}
|
||||
{
|
||||
type: playCardFromDiscard
|
||||
filter: choose(name(Gollum))
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
false: {
|
||||
type: costToEffect
|
||||
cost: {
|
||||
type: discardCardAtRandomFromHand
|
||||
forced: false
|
||||
}
|
||||
effect: {
|
||||
type: modifyStrength
|
||||
filter: choose(name(Gollum))
|
||||
amount: 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
gametext: <b>Shadow:</b> Play Gollum from your draw deck or discard pile.<br><b>Skirmish:</b> Discard a card at random from hand to make Gollum strength +3.
|
||||
lore: No, sweet one. See, my precious: if we has it, then we can escape, even from Him, eh?'
|
||||
promotext: ""
|
||||
@@ -462,6 +462,9 @@ public class FilterFactory {
|
||||
});
|
||||
parameterFilters.put("zone",
|
||||
(parameter, environment) -> {
|
||||
// Fix for faulty "Sanitize" method, which removes spaces and underscores, therefore making it
|
||||
// impossible to match ADVENTURE_PATH Zone
|
||||
if (parameter.equals("adventurepath")) parameter = "adventure path";
|
||||
final Zone zone = FieldUtils.getEnum(Zone.class, parameter, "parameter");
|
||||
return actionContext -> zone;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user