Balance changes
This commit is contained in:
@@ -10,10 +10,7 @@ import com.gempukku.lotro.logic.cardtype.AbstractAlly;
|
||||
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
|
||||
import com.gempukku.lotro.logic.effects.*;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
import com.gempukku.lotro.logic.timing.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -29,11 +26,11 @@ import java.util.List;
|
||||
* Strength: 8
|
||||
* Vitality: 4
|
||||
* Card Number: 1R41
|
||||
* Game Text: At the start of each of your turns, heal each Rivendell ally or heal Elrond twice.
|
||||
* Regroup: Exert Elrond twice to reveal the top card of any draw deck. If it is a Free Peoples card, you may heal
|
||||
* a companion. If it is a Shadow card, you may discard a condition.
|
||||
* Game Text: At the start of each of your turns, heal each Rivendell ally.
|
||||
* Regroup: Exert Elrond twice to reveal the top card of your draw deck. If it is an [ELVEN] card, you may discard it
|
||||
* to heal a companion. If it is a Shadow card, you may discard it to discard a Shadow condition.
|
||||
*/
|
||||
public class Card40_041 extends AbstractAlly{
|
||||
public class Card40_041 extends AbstractAlly {
|
||||
public Card40_041() {
|
||||
super(4, SitesBlock.SECOND_ED, 0, 8, 4, Race.ELF, Culture.ELVEN, "Elrond", "Peredhil", true);
|
||||
addKeyword(Keyword.RIVENDELL);
|
||||
@@ -43,23 +40,13 @@ public class Card40_041 extends AbstractAlly{
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.startOfTurn(game, effectResult)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
List<Effect> possibleEffects = new ArrayList<Effect>(2);
|
||||
possibleEffects.add(
|
||||
action.appendEffect(
|
||||
new HealCharactersEffect(self, CardType.ALLY, Keyword.RIVENDELL) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Heal each Rivendell ally";
|
||||
}
|
||||
});
|
||||
possibleEffects.add(
|
||||
new ChooseAndHealCharactersEffect(action, self.getOwner(), 1, 1, 2, self) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Heal Elrond twice";
|
||||
}
|
||||
});
|
||||
action.appendEffect(
|
||||
new ChoiceEffect(action, self.getOwner(), possibleEffects));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
@@ -76,42 +63,50 @@ public class Card40_041 extends AbstractAlly{
|
||||
new SelfExertEffect(action, self));
|
||||
action.appendCost(
|
||||
new SelfExertEffect(action, self));
|
||||
action.appendEffect(
|
||||
new PlayoutDecisionEffect(playerId,
|
||||
new MultipleChoiceAwaitingDecision(1, "Choose a player to reveal top card of deck of", allPlayers) {
|
||||
@Override
|
||||
protected void validDecisionMade(int index, String player) {
|
||||
action.appendEffect(
|
||||
new RevealTopCardsOfDrawDeckEffect(self, player, 1) {
|
||||
@Override
|
||||
protected void cardsRevealed(List<PhysicalCard> revealedCards) {
|
||||
if (revealedCards.size()>0) {
|
||||
PhysicalCard firstCard = revealedCards.get(0);
|
||||
if (Filters.and(Side.FREE_PEOPLE).accepts(game,
|
||||
firstCard)) {
|
||||
action.appendCost(
|
||||
new RevealTopCardsOfDrawDeckEffect(self, playerId, 1) {
|
||||
@Override
|
||||
protected void cardsRevealed(List<PhysicalCard> revealedCards) {
|
||||
if (revealedCards.size() > 0) {
|
||||
PhysicalCard firstCard = revealedCards.get(0);
|
||||
if (Filters.and(Side.FREE_PEOPLE).accepts(game,
|
||||
firstCard)) {
|
||||
action.appendCost(
|
||||
new OptionalEffect(action, playerId,
|
||||
new UnrespondableEffect() {
|
||||
@Override
|
||||
protected void doPlayEffect(LotroGame game) {
|
||||
action.appendCost(
|
||||
new DiscardTopCardFromDeckEffect(self, playerId, false));
|
||||
action.appendEffect(
|
||||
new OptionalEffect(action, playerId,
|
||||
new ChooseAndHealCharactersEffect(action, playerId, 1, 1, CardType.COMPANION)) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Heal a companion";
|
||||
}
|
||||
});
|
||||
} else {
|
||||
action.appendEffect(
|
||||
new OptionalEffect(action, playerId,
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1,1, CardType.CONDITION) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Discard a condition";
|
||||
}
|
||||
}));
|
||||
new ChooseAndHealCharactersEffect(action, playerId, 1, 1, CardType.COMPANION));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Discard the revealed card to heal a companion";
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
action.appendEffect(
|
||||
new UnrespondableEffect() {
|
||||
@Override
|
||||
protected void doPlayEffect(LotroGame game) {
|
||||
action.appendCost(
|
||||
new DiscardTopCardFromDeckEffect(self, playerId, false));
|
||||
action.appendEffect(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Side.SHADOW, CardType.CONDITION));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Discard the revealed card to discard a shadow condition";
|
||||
}
|
||||
});
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -7,13 +7,12 @@ import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAlly;
|
||||
import com.gempukku.lotro.logic.effects.HealCharactersEffect;
|
||||
import com.gempukku.lotro.logic.effects.RevealTopCardsOfDrawDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.SelfExertEffect;
|
||||
import com.gempukku.lotro.logic.effects.*;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
import com.gempukku.lotro.logic.timing.UnrespondableEffect;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -29,7 +28,8 @@ import java.util.List;
|
||||
* Vitality: 3
|
||||
* Card Number: 1R45
|
||||
* Game Text: At the start of each of your turns, heal each Lothlorien ally.
|
||||
* Skirmish: Exert Galadriel to reveal the top card of your draw deck. Make a minion skirmishing an Elf strength -X, where X is the twilight cost of the revealed card.
|
||||
* Skirmish: Exert Galadriel to reveal the top card of your draw deck. If it is an [ELVEN] card, you may discard it
|
||||
* to make a minion skirmishing an Elf strength -2.
|
||||
*/
|
||||
public class Card40_045 extends AbstractAlly {
|
||||
public Card40_045() {
|
||||
@@ -60,12 +60,26 @@ public class Card40_045 extends AbstractAlly {
|
||||
@Override
|
||||
protected void cardsRevealed(List<PhysicalCard> revealedCards) {
|
||||
if (revealedCards.size() > 0) {
|
||||
PhysicalCard revealedCard = revealedCards.get(0);
|
||||
int twilightCost = revealedCard.getBlueprint().getTwilightCost();
|
||||
if (twilightCost > 0)
|
||||
action.appendEffect(
|
||||
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -twilightCost,
|
||||
CardType.MINION, Filters.inSkirmishAgainst(Race.ELF)));
|
||||
if (Filters.and(Culture.ELVEN).accepts(game,
|
||||
revealedCards.get(0))) {
|
||||
action.appendCost(
|
||||
new OptionalEffect(action, playerId,
|
||||
new UnrespondableEffect() {
|
||||
@Override
|
||||
protected void doPlayEffect(LotroGame game) {
|
||||
action.appendCost(
|
||||
new DiscardTopCardFromDeckEffect(self, playerId, false));
|
||||
action.appendEffect(
|
||||
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -2,
|
||||
CardType.MINION, Filters.inSkirmishAgainst(Race.ELF)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Discard the revealed card to make a minion skirmishing an Elf strength -2";
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -4,15 +4,21 @@ import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
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.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractCompanion;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||
import com.gempukku.lotro.logic.effects.SelfExertEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.OverwhelmedByMultiplierModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.RemoveKeywordModifier;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
@@ -30,29 +36,42 @@ import java.util.List;
|
||||
* Vitality: 3
|
||||
* Resistance: 9
|
||||
* Card Number: 1R47
|
||||
* Game Text: Glorfindel may not be overwhelmed unless his strength is tripled.
|
||||
* Each time a Nazgul is assigned to skirmish Glorfindel, that Nazgul is prevented from being fierce until the regroup phase.
|
||||
* Game Text: To play, spot 3 Elves.
|
||||
* While skirmishing a Nazgul, Glorfindel may not be overwhelmed unless his strength is tripled.
|
||||
* Skirmish: Exert Glorfindel to make a Nazgul he is skirmishing lose fierce and unable to gain fierce until the regroup phase.
|
||||
*/
|
||||
public class Card40_047 extends AbstractCompanion{
|
||||
public class Card40_047 extends AbstractCompanion {
|
||||
public Card40_047() {
|
||||
super(4, 9, 3, 9, Culture.ELVEN, Race.ELF, null, "Glorfindel", "Emissary of the Valar", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
|
||||
return Filters.canSpot(game, 3, Race.ELF);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
OverwhelmedByMultiplierModifier modifier = new OverwhelmedByMultiplierModifier(self, self, 3);
|
||||
OverwhelmedByMultiplierModifier modifier = new OverwhelmedByMultiplierModifier(self, Filters.and(self, Filters.inSkirmishAgainst(Race.NAZGUL)), 3);
|
||||
return Collections.singletonList(modifier);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, null, self, Race.NAZGUL)) {
|
||||
AssignAgainstResult assignedAgainst = (AssignAgainstResult) effectResult;
|
||||
PhysicalCard nazgul = assignedAgainst.getAssignedCard();
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
public List<? extends Action> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
|
||||
&& PlayConditions.canSelfExert(self, game)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new SelfExertEffect(action, self));
|
||||
action.appendEffect(
|
||||
new AddUntilStartOfPhaseModifierEffect(
|
||||
new RemoveKeywordModifier(self, nazgul, Keyword.FIERCE), Phase.REGROUP));
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose a Nazgul", Race.NAZGUL, Filters.inSkirmishAgainst(self)) {
|
||||
@Override
|
||||
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
||||
action.appendEffect(
|
||||
new AddUntilStartOfPhaseModifierEffect(
|
||||
new RemoveKeywordModifier(self, card, Keyword.FIERCE), Phase.REGROUP));
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -30,7 +30,7 @@ import java.util.List;
|
||||
* Type: Condition - Companion
|
||||
* Card Number: 1C216
|
||||
* Game Text: To play, exert a [SAURON] tracker. Limit 1 per companion.
|
||||
* Each time the fellowship moves, the Free Peoples player must add (1) or exert this companion.
|
||||
* Each time the fellowship moves, the Free Peoples player must add (3) or exert this companion.
|
||||
*/
|
||||
public class Card40_216 extends AbstractAttachable {
|
||||
public Card40_216() {
|
||||
@@ -39,7 +39,7 @@ public class Card40_216 extends AbstractAttachable {
|
||||
|
||||
@Override
|
||||
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
||||
return Filters.and(CardType.COMPANION, Filters.not(Filters.hasAttached(Filters.name("Ever Watchful"))));
|
||||
return Filters.and(CardType.COMPANION, Filters.not(Filters.hasAttached(Filters.name(getName()))));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -59,7 +59,7 @@ public class Card40_216 extends AbstractAttachable {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
List<Effect> possibleEffects = new ArrayList<Effect>(2);
|
||||
possibleEffects.add(
|
||||
new AddTwilightEffect(self, 1));
|
||||
new AddTwilightEffect(self, 3));
|
||||
possibleEffects.add(
|
||||
new ExertCharactersEffect(action, self, self.getAttachedTo()));
|
||||
action.appendEffect(
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
package com.gempukku.lotro.cards.set40.sauron;
|
||||
|
||||
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.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.logic.effects.*;
|
||||
import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.cost.ExertExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.ForEachThreatEvaluator;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -22,7 +26,9 @@ import java.util.List;
|
||||
* Twilight Cost: 3
|
||||
* Type: Condition - Support Area
|
||||
* Card Number: 1U238
|
||||
* Game Text: To play, spot a [SAURON] Orc. Shadow: Discard this condition to add (1) for each threat.
|
||||
* Game Text: To play, exert a [SAURON] minion.
|
||||
* Shadow: Discard this condition to add (1) for each threat.
|
||||
* Maneuver: Spot a [SAURON] minion, 6 companions, and remove (2) (or 2 threats) to wound a companion (except the Ring-bearer.)
|
||||
*/
|
||||
public class Card40_238 extends AbstractPermanent {
|
||||
public Card40_238() {
|
||||
@@ -31,7 +37,13 @@ public class Card40_238 extends AbstractPermanent {
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
|
||||
return PlayConditions.canSpot(game, Culture.SAURON, Race.ORC);
|
||||
return PlayConditions.canExert(self, game, Culture.SAURON, CardType.MINION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends AbstractExtraPlayCostModifier> getExtraCostToPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new ExertExtraPlayCostModifier(self, self, null, Culture.SAURON, CardType.MINION));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -45,6 +57,22 @@ public class Card40_238 extends AbstractPermanent {
|
||||
new AddTwilightEffect(self, new ForEachThreatEvaluator()));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.MANEUVER, self, 0)
|
||||
&& PlayConditions.canSpot(game, Culture.SAURON, CardType.MINION)
|
||||
&& PlayConditions.canSpot(game, 6, CardType.COMPANION)
|
||||
&& (game.getGameState().getTwilightPool() >= 2 || PlayConditions.canRemoveThreat(game, self, 2))) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
List<Effect> possibleCosts = new ArrayList<>(2);
|
||||
possibleCosts.add(
|
||||
new RemoveTwilightEffect(2));
|
||||
possibleCosts.add(
|
||||
new RemoveThreatsEffect(self, 2));
|
||||
action.appendCost(
|
||||
new ChoiceEffect(action, playerId, possibleCosts));
|
||||
action.appendEffect(
|
||||
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.COMPANION, Filters.not(Filters.ringBearer)));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user