Main Deck: sites
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
import com.gempukku.lotro.common.*;
|
||||
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.timing.EffectResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 3
|
||||
* Type: Site
|
||||
* Site: 2
|
||||
* Game Text: Forest. Underground. At the start of your fellowship phase, you may play a hand weapon from your draw deck.
|
||||
*/
|
||||
public class Card30_050 extends AbstractSite {
|
||||
public Card30_050() {
|
||||
super("The Troll Hoard", Block.HOBBIT, 2, 3, Direction.RIGHT);
|
||||
addKeyword(Keyword.FOREST);
|
||||
addKeyword(Keyword.UNDERGROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.startOfPhase(game, effectResult, Phase.FELLOWSHIP)
|
||||
&& playerId.equals(game.getGameState().getCurrentPlayerId())) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, PossessionClass.HAND_WEAPON));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.common.Block;
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Race;
|
||||
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.CantPlayCardsModifier;
|
||||
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.Action;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 1
|
||||
* Type: Site
|
||||
* Site: 3
|
||||
* Game Text: Sanctuary. Trolls cannot be played at Rivendell.
|
||||
*/
|
||||
public class Card30_051 extends AbstractSite {
|
||||
public Card30_051() {
|
||||
super("Rivendell", Block.HOBBIT, 3, 1, Direction.RIGHT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) {
|
||||
return new CantPlayCardsModifier(self, Race.TROLL);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
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.timing.Action;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 4
|
||||
* Type: Site
|
||||
* Site: 4
|
||||
* Game Text: Underground. Maneuver: Play The One Ring from your draw deck.
|
||||
*/
|
||||
public class Card30_052 extends AbstractSite {
|
||||
public Card30_052() {
|
||||
super("Goblin Town", Block.HOBBIT, 4, 4, Direction.RIGHT);
|
||||
addKeyword(Keyword.UNDERGROUND);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseSiteDuringPhase(game, Phase.MANEUVER, self)
|
||||
&& PlayConditions.canSpot(game, 1, Filters.name("Bilbo"))) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Filters.name("The One Ring")));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.common.Block;
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
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.timing.EffectResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 6
|
||||
* Type: Site
|
||||
* Site: 5
|
||||
* Game Text: Forest. When the fellowship moves to Mirkwood, discard Gandalf.
|
||||
*/
|
||||
public class Card30_053 extends AbstractSite {
|
||||
public Card30_053() {
|
||||
super("Mirkwood", Block.HOBBIT, 5, 6, Direction.RIGHT);
|
||||
addKeyword(Keyword.FOREST);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.movesTo(game, effectResult, self)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new DiscardCardsFromPlayEffect(self, Filters.gandalf));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
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.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 3
|
||||
* Type: Site
|
||||
* Site: 6
|
||||
* Game Text: River. Sanctuary. At the start of the regroup phase,
|
||||
* you may play a [ESGAROTH] or [DWARVEN] ally from your draw deck.
|
||||
*/
|
||||
public class Card30_054 extends AbstractSite {
|
||||
public Card30_054() {
|
||||
super("Esgaroth", Block.HOBBIT, 6, 3, Direction.RIGHT);
|
||||
addKeyword(Keyword.RIVER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.startOfPhase(game, effectResult, Phase.REGROUP)
|
||||
&& playerId.equals(game.getGameState().getCurrentPlayerId())) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Filters.or(Culture.ESGAROTH, Culture.DWARVEN), CardType.ALLY));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.common.Block;
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
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.DrawCardsEffect;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 6
|
||||
* Type: Site
|
||||
* Site: 7
|
||||
* Game Text: Mountain. River. Shadow: Exert 2 minions and spot 6 companions to draw 2 cards.
|
||||
*/
|
||||
public class Card30_055 extends AbstractSite {
|
||||
public Card30_055() {
|
||||
super("Erebor", Block.HOBBIT, 7, 6, Direction.RIGHT);
|
||||
addKeyword(Keyword.MOUNTAIN);
|
||||
addKeyword(Keyword.RIVER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseSiteDuringPhase(game, Phase.SHADOW, self)
|
||||
&& PlayConditions.canExert(self, game, 1, 2, CardType.MINION)
|
||||
&& PlayConditions.canSpot(game, 6, CardType.COMPANION)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 2, 2, CardType.MINION));
|
||||
action.appendEffect(
|
||||
new DrawCardsEffect(action, playerId, 2));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect;
|
||||
import com.gempukku.lotro.common.Block;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
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.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 8
|
||||
* Type: Site
|
||||
* Site: 8
|
||||
* Game Text: Mountain. Underground. Shadow: Play Smaug from your draw deck or discard pile.
|
||||
*/
|
||||
public class Card30_056 extends AbstractSite {
|
||||
public Card30_056() {
|
||||
super("Smaug's Den", Block.HOBBIT, 8, 8, Direction.RIGHT);
|
||||
addKeyword(Keyword.MOUNTAIN);
|
||||
addKeyword(Keyword.UNDERGROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Action> getPhaseActions(String playerId, final LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseSiteDuringPhase(game, Phase.SHADOW, self)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
if (Filters.filter(game.getGameState().getHand(playerId), game.getGameState(), game.getModifiersQuerying(), Filters.name("Smaug")).size() > 0) {
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Filters.name("Smaug")) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play Smaug from your draw deck";
|
||||
}
|
||||
});
|
||||
}
|
||||
if (PlayConditions.canPlayFromDiscard(playerId, game, Filters.name("Smaug"))) {
|
||||
possibleEffects.add(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.name("Smaug")) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Play Smaug from your discard pile";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
action.appendEffect(
|
||||
new ChoiceEffect(action, playerId, possibleEffects));
|
||||
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.gempukku.lotro.cards.set30.site;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractSite;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.effects.RemoveBurdenEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect;
|
||||
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.timing.Action;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: Main Deck
|
||||
* Twilight Cost: 9
|
||||
* Type: Site
|
||||
* Site: 9
|
||||
* Game Text: Mountain. Battleground. Shadow: Remove 2 doubts to play a minion from your discard pile (Except Smaug)
|
||||
*/
|
||||
public class Card30_057 extends AbstractSite {
|
||||
public Card30_057() {
|
||||
super("Battle of the Five Armies", Block.HOBBIT, 9, 9, Direction.RIGHT);
|
||||
addKeyword(Keyword.MOUNTAIN);
|
||||
addKeyword(Keyword.BATTLEGROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseSiteDuringPhase(game, Phase.SHADOW, self)
|
||||
&& game.getGameState().getBurdens() >= 2
|
||||
&& PlayConditions.canPlayFromDiscard(playerId, game, CardType.MINION, Filters.not(Filters.name("Smaug")))) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new RemoveBurdenEffect(playerId, self, 2));
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDiscardEffect(playerId, game, CardType.MINION, Filters.not(Filters.name("Smaug"))));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user