Additional sites for The Short Rest

This commit is contained in:
PhallenCassidy
2017-01-05 14:10:48 -05:00
committed by GitHub
parent 6ac6e6bfdf
commit 6587dc4f16
2 changed files with 99 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
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.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.GameState;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.TwilightCostModifier;
import com.gempukku.lotro.logic.modifiers.condition.PhaseCondition;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.List;
/**
* Set: The Short Rest
* Twilight Cost: 3
* Type: Site
* Site: 6
* Game Text: Sanctuary. The twilight cost of the first Orc played at Lake-Town each turn is -2.
*/
public class Card31_052 extends AbstractSite {
public Card31_052() {
super("Lake-Town", Block.HOBBIT, 6, 3, Direction.RIGHT);
addKeyword(Keyword.RIVER);
}
@Override
public Modifier getAlwaysOnModifier(LotroGame game, final PhysicalCard self) {
return new TwilightCostModifier(self, Filters.and(Race.ORC,
new Filter() {
@Override
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
return modifiersQuerying.getUntilEndOfPhaseLimitCounter(self, Phase.SHADOW).getUsedLimit() < 1;
}
}), new PhaseCondition(Phase.SHADOW), -2);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, Race.ORC)
&& PlayConditions.isPhase(game, Phase.SHADOW))
game.getModifiersQuerying().getUntilEndOfPhaseLimitCounter(self, Phase.SHADOW).incrementToLimit(1, 1);
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.effects.RemoveBurdenEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndRemoveFromTheGameCardsInPlayEffect;
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: 8
* Type: Site
* Site: 9
* Game Text: Mountain. Maneuver: Remove your minion from the game to play a minion from your discard
* pile. Its twilight cost is -2.
*/
public class Card31_054 extends AbstractSite {
public Card31_054() {
super("Ravenhill", Block.HOBBIT, 9, 8, Direction.RIGHT);
addKeyword(Keyword.MOUNTAIN);
}
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseSiteDuringPhase(game, Phase.MANEUVER, self)
&& PlayConditions.canSpot(game, CardType.MINION, Filters.owner(playerId))
&& PlayConditions.canPlayFromDiscard(playerId, game, CardType.MINION)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndRemoveFromTheGameCardsInPlayEffect(action, playerId, 1, 1, CardType.MINION));
action.appendEffect(
new ChooseAndPlayCardFromDiscardEffect(playerId, game, -2, CardType.MINION));
return Collections.singletonList(action);
}
return null;
}
}