Additional sites for The Short Rest

This commit is contained in:
PhallenCassidy
2017-01-05 10:40:55 -05:00
committed by GitHub
parent 2399aa9d3a
commit baf2236e33
4 changed files with 186 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
package com.gempukku.lotro.cards.set31.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.CheckTurnLimitEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
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: The Short Rest
* Twilight Cost: 1
* Type: Site
* Site: 3
* Game Text: Plains. Sanctuary. Shadow: Exert your fierce minion to play a condition from your draw deck
* (limit one per turn).
*/
public class Card31_046 extends AbstractSite {
public Card31_046() {
super("Rhudaur", Block.HOBBIT, 3, 1, Direction.RIGHT);
addKeyword(Keyword.PLAINS);
}
@Override
public List<? extends Action> getPhaseActions(final String playerId, final LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseSiteDuringPhase(game, Phase.SHADOW, self)
&& PlayConditions.canExert(self, game, Keyword.FIERCE)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Keyword.FIERCE));
action.appendEffect(
new CheckTurnLimitEffect(action, self, 1,
new ChooseAndPlayCardFromDeckEffect(playerId, CardType.CONDITION)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -0,0 +1,45 @@
package com.gempukku.lotro.cards.set31.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.CheckTurnLimitEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
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: The Short Rest
* Twilight Cost: 2
* Type: Site
* Site: 4
* Game Text: Underground. River. Maneuver: Play a Shadow condition or The One Ring from your draw deck
* (limit one per player).
*/
public class Card31_048 extends AbstractSite {
public Card31_048() {
super("Underground Lake", Block.HOBBIT, 4, 2, Direction.RIGHT);
addKeyword(Keyword.UNDERGROUND);
addKeyword(Keyword.RIVER);
}
@Override
public List<? extends Action> getPhaseActions(final String playerId, final LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseSiteDuringPhase(game, Phase.MANEUVER, self)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendEffect(new CheckTurnLimitEffect(action, self, 1,
new ChooseAndPlayCardFromDeckEffect(playerId, Side.FREE_PEOPLE, Filters.name("The One Ring"))));
action.appendEffect(new CheckTurnLimitEffect(action, self, 1,
new ChooseAndPlayCardFromDeckEffect(playerId, Side.SHADOW, CardType.CONDITION)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -0,0 +1,48 @@
package com.gempukku.lotro.cards.set31.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
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.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.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.SpecialFlagModifier;
import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections;
import java.util.List;
/**
* Set: The Short Rest
* Twilight Cost: 6
* Type: Site
* Site: 7
* Game Text: River. Regroup: Spot your minion and 6 companions to make The Fellowship move again this turn
* (if the move limit allows).
*/
public class Card31_053 extends AbstractSite {
public Card31_053() {
super("Dale", Block.HOBBIT, 7, 6, Direction.RIGHT);
addKeyword(Keyword.MOUNTAIN);
}
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseSiteDuringPhase(game, Phase.REGROUP, self)
&& PlayConditions.canSpot(game, Filters.owner(playerId), CardType.MINION)
&& PlayConditions.canSpot(game, 6, CardType.COMPANION)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendEffect(
new AddUntilEndOfPhaseModifierEffect(
new SpecialFlagModifier(self, ModifierFlag.HAS_TO_MOVE_IF_POSSIBLE)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -0,0 +1,47 @@
package com.gempukku.lotro.cards.set31.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.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
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.Action;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: The Short Rest
* Twilight Cost: 6
* Type: Site
* Site: 5
* Game Text: Forest. At the start of the Shadow phase, you may discard Gandalf to play a minion from
* your discard pile.
*/
public class Card31_054 extends AbstractSite {
public Card31_054() {
super("Ravenhill", Block.HOBBIT, 5, 6, Direction.RIGHT);
addKeyword(Keyword.FOREST);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.startOfPhase(game, effectResult, Phase.SHADOW)
&& PlayConditions.canSpot(game, Filters.gandalf)
&& PlayConditions.canPlayFromDiscard(playerId, game, CardType.MINION)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.gandalf));
action.appendEffect(
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Race.NAZGUL));
return Collections.singletonList(action);
}
return null;
}
}