Migrated Sauron cards in set 10 to hjson

This commit is contained in:
MarcinSc
2024-05-16 21:57:21 +07:00
parent 001fc00a1f
commit 4618357597
30 changed files with 567 additions and 1733 deletions

View File

@@ -1,38 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
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.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Orc
* Strength: 10
* Vitality: 3
* Site: 6
* Game Text: Each roaming [SAURON] minion is damage +1.
*/
public class Card10_075 extends AbstractMinion {
public Card10_075() {
super(3, 10, 3, 6, Race.ORC, Culture.SAURON, "Advance Captain", null, true);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new KeywordModifier(self, Filters.and(Culture.SAURON, CardType.MINION, Keyword.ROAMING), Keyword.DAMAGE, 1));
}
}

View File

@@ -1,44 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.*;
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.SelfExertEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Orc
* Strength: 9
* Vitality: 3
* Site: 6
* Game Text: Skirmish: Exert this minion to make a roaming [SAURON] minion strength +3.
*/
public class Card10_076 extends AbstractMinion {
public Card10_076() {
super(3, 9, 3, 6, Race.ORC, Culture.SAURON, "Advance Marauder");
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0)
&& PlayConditions.canSelfExert(self, game)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfExertEffect(action, self));
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 3, Culture.SAURON, CardType.MINION, Keyword.ROAMING));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,38 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
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.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Orc
* Strength: 9
* Vitality: 3
* Site: 6
* Game Text: Each roaming [SAURON] minion is fierce.
*/
public class Card10_077 extends AbstractMinion {
public Card10_077() {
super(3, 9, 3, 6, Race.ORC, Culture.SAURON, "Advance Regular");
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new KeywordModifier(self, Filters.and(Culture.SAURON, CardType.MINION, Keyword.ROAMING), Keyword.FIERCE));
}
}

View File

@@ -1,61 +0,0 @@
package com.gempukku.lotro.cards.set10.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.AbstractMinion;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 2
* Type: Minion • Orc
* Strength: 7
* Vitality: 2
* Site: 6
* Game Text: Shadow: Exert or discard this minion to make each [SAURON] minion you spot roaming until
* the regroup phase.
*/
public class Card10_078 extends AbstractMinion {
public Card10_078() {
super(2, 7, 2, 6, Race.ORC, Culture.SAURON, "Advance Scout");
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& (PlayConditions.canSelfExert(self, game) || PlayConditions.canSelfDiscard(self, game))) {
final ActivateCardAction action = new ActivateCardAction(self);
List<Effect> possibleCosts = new LinkedList<>();
possibleCosts.add(
new SelfExertEffect(action, self));
possibleCosts.add(
new SelfDiscardEffect(self));
action.appendCost(
new ChoiceEffect(action, playerId, possibleCosts));
action.appendEffect(
new ChooseActiveCardsEffect(self, playerId, "Choose SAURON minions to make roaming", 0, Integer.MAX_VALUE, Culture.SAURON, CardType.MINION) {
@Override
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> cards) {
action.appendEffect(
new AddUntilStartOfPhaseModifierEffect(
new KeywordModifier(self, Filters.in(cards), Keyword.ROAMING), Phase.REGROUP));
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,64 +0,0 @@
package com.gempukku.lotro.cards.set10.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.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.effects.ExertCharactersEffect;
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromHandEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 2
* Type: Condition • Support Area
* Game Text: To play, spot a [SAURON] minion. Each time the fellowship moves to any site 8 or 9, exert each Ring-bound
* companion. Shadow: Discard this condition to play a [SAURON] minion. Its twilight cost is -2.
*/
public class Card10_079 extends AbstractPermanent {
public Card10_079() {
super(Side.SHADOW, 2, CardType.CONDITION, Culture.SAURON, "Barren Land", null, true);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Culture.SAURON, CardType.MINION);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.movesTo(game, effectResult, Filters.or(Filters.siteNumber(8), Filters.siteNumber(9)))) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendEffect(
new ExertCharactersEffect(action, self, CardType.COMPANION, Keyword.RING_BOUND));
return Collections.singletonList(action);
}
return null;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& PlayConditions.canSelfDiscard(self, game)
&& PlayConditions.canPlayFromHand(playerId, game, -2, Culture.SAURON, CardType.MINION)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfDiscardEffect(self));
action.appendEffect(
new ChooseAndPlayCardFromHandEffect(playerId, game, -2, Culture.SAURON, CardType.MINION));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,50 +0,0 @@
package com.gempukku.lotro.cards.set10.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.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.logic.modifiers.evaluator.MultiplyEvaluator;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 1
* Type: Event • Skirmish
* Game Text: Make a [SAURON] minion strength +2 for each site you control. If you have initiative, that minion
* is fierce until the regroup phase.
*/
public class Card10_080 extends AbstractEvent {
public Card10_080() {
super(Side.SHADOW, 1, Culture.SAURON, "Beaten Back", Phase.SKIRMISH);
}
@Override
public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, final PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseActiveCardEffect(self, playerId, "Choose a SAURON minion", Culture.SAURON, CardType.MINION) {
@Override
protected void cardSelected(LotroGame game, PhysicalCard card) {
action.appendEffect(
new AddUntilEndOfPhaseModifierEffect(
new StrengthModifier(self, card, null, new MultiplyEvaluator(2, new CountActiveEvaluator(Filters.siteControlled(playerId))))));
if (PlayConditions.hasInitiative(game, Side.SHADOW))
action.appendEffect(
new AddUntilStartOfPhaseModifierEffect(
new KeywordModifier(self, card, Keyword.FIERCE), Phase.REGROUP));
}
});
return action;
}
}

View File

@@ -1,24 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Uruk-Hai
* Strength: 9
* Vitality: 2
* Site: 6
* Game Text: Damage +1.
*/
public class Card10_081 extends AbstractMinion {
public Card10_081() {
super(3, 9, 2, 6, Race.URUK_HAI, Culture.SAURON, "Cirith Ungol Guard");
addKeyword(Keyword.DAMAGE, 1);
}
}

View File

@@ -1,39 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Uruk-Hai
* Strength: 8
* Vitality: 2
* Site: 6
* Game Text: Damage +1. While you can spot 3 possessions, this minion is fierce.
*/
public class Card10_082 extends AbstractMinion {
public Card10_082() {
super(3, 8, 2, 6, Race.URUK_HAI, Culture.SAURON, "Cirith Ungol Patroller");
addKeyword(Keyword.DAMAGE, 1);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new KeywordModifier(self, self, new SpotCondition(3, CardType.POSSESSION), Keyword.FIERCE, 1));
}
}

View File

@@ -1,36 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
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.cardtype.AbstractMinion;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 2
* Type: Minion • Uruk-Hai
* Strength: 7
* Vitality: 2
* Site: 6
* Game Text: Damage +1. If you can spot another [SAURON] Uruk-hai, this minion is twilight cost -1 for each possession
* you can spot.
*/
public class Card10_083 extends AbstractMinion {
public Card10_083() {
super(2, 7, 2, 6, Race.URUK_HAI, Culture.SAURON, "Cirith Ungol Sentinel");
addKeyword(Keyword.DAMAGE, 1);
}
@Override
public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) {
if (Filters.canSpot(game, Filters.not(self), Culture.SAURON, Race.URUK_HAI))
return -Filters.countActive(game, CardType.POSSESSION);
return 0;
}
}

View File

@@ -1,24 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 2
* Type: Minion • Uruk-Hai
* Strength: 8
* Vitality: 2
* Site: 6
* Game Text: Damage +1.
*/
public class Card10_084 extends AbstractMinion {
public Card10_084() {
super(2, 8, 2, 6, Race.URUK_HAI, Culture.SAURON, "Cirith Ungol Sentry");
addKeyword(Keyword.DAMAGE, 1);
}
}

View File

@@ -1,53 +0,0 @@
package com.gempukku.lotro.cards.set10.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.SelfDiscardEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.condition.InitiativeCondition;
import com.gempukku.lotro.logic.modifiers.evaluator.CardMatchesEvaluator;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 0
* Type: Condition • Support Area
* Game Text: While you have initiative, each of your [SAURON] minions is strength +2. Skirmish: Discard this condition
* to make a [SAURON] minion strength +2 (or +4 if it is roaming).
*/
public class Card10_085 extends AbstractPermanent {
public Card10_085() {
super(Side.SHADOW, 0, CardType.CONDITION, Culture.SAURON, "Flames Within", null, true);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new StrengthModifier(self, Filters.and(Filters.owner(self.getOwner()), Culture.SAURON, CardType.MINION), new InitiativeCondition(Side.SHADOW), 2));
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0)
&& PlayConditions.canSelfDiscard(self, game)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfDiscardEffect(self));
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new CardMatchesEvaluator(2, 4, Keyword.ROAMING), Culture.SAURON, CardType.MINION));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,60 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
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.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.effects.StackCardFromPlayEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 4
* Type: Minion • Orc
* Strength: 10
* Vitality: 2
* Site: 5
* Game Text: Besieger. While you control a site, this minion's twilight cost is -2. Regroup: Stack this minion on
* a site you control.
*/
public class Card10_086 extends AbstractMinion {
public Card10_086() {
super(4, 10, 2, 5, Race.ORC, Culture.SAURON, "Gorgoroth Keeper");
addKeyword(Keyword.BESIEGER);
}
@Override
public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) {
if (Filters.canSpot(game, Filters.siteControlled(self.getOwner())))
return -2;
return 0;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendEffect(
new ChooseActiveCardEffect(self, playerId, "Choose a site you control", Filters.siteControlled(playerId)) {
@Override
protected void cardSelected(LotroGame game, PhysicalCard card) {
action.appendEffect(
new StackCardFromPlayEffect(self, card));
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,54 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.TakeControlOfASiteEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
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.OptionalTriggerAction;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 5
* Type: Minion • Orc
* Strength: 12
* Vitality: 3
* Site: 5
* Game Text: Besieger. When you play this minion, you may spot 6 companions and another besieger to play a besieger
* from your discard pile and control a site.
*/
public class Card10_087 extends AbstractMinion {
public Card10_087() {
super(5, 12, 3, 5, Race.ORC, Culture.SAURON, "Gorgoroth Swarm");
addKeyword(Keyword.BESIEGER);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)
&& PlayConditions.canSpot(game, 6, CardType.COMPANION)
&& PlayConditions.canSpot(game, Filters.not(self), Keyword.BESIEGER)
&& PlayConditions.canPlayFromDiscard(playerId, game, Keyword.BESIEGER)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Keyword.BESIEGER));
action.appendEffect(
new TakeControlOfASiteEffect(self, playerId));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,58 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 6
* Type: Minion • Orc
* Strength: 13
* Vitality: 3
* Site: 4
* Game Text: Besieger. When you play Gothmog, the Free Peoples player must wound a companion for each site you control.
* While you control a site, Gothmog is fierce.
*/
public class Card10_088 extends AbstractMinion {
public Card10_088() {
super(6, 13, 3, 4, Race.ORC, Culture.SAURON, "Gothmog", "Lieutenant of Morgul", true);
addKeyword(Keyword.BESIEGER);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
int countControlled = Filters.countActive(game, Filters.siteControlled(self.getOwner()));
for (int i = 0; i < countControlled; i++)
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION));
return Collections.singletonList(action);
}
return null;
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new KeywordModifier(self, self, new SpotCondition(Filters.siteControlled(self.getOwner())), Keyword.FIERCE, 1));
}
}

View File

@@ -1,58 +0,0 @@
package com.gempukku.lotro.cards.set10.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.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.logic.modifiers.evaluator.MultiplyEvaluator;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 1
* Type: Possession • Mount
* Strength: +1
* Vitality: +1
* Game Text: Bearer must be a [SAURON] Orc. For each site you control, bearer is strength +1 (or +2 if bearer
* is Gothmog).
*/
public class Card10_089 extends AbstractAttachable {
public Card10_089() {
super(Side.SHADOW, CardType.POSSESSION, 1, Culture.SAURON, PossessionClass.MOUNT, "Gothmog's Warg", null, true);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.and(Culture.SAURON, Race.ORC);
}
@Override
public int getStrength() {
return 1;
}
@Override
public int getVitality() {
return 1;
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<>();
modifiers.add(
new StrengthModifier(self, Filters.and(Filters.name("Gothmog"), Filters.hasAttached(self)), null,
new MultiplyEvaluator(2, new CountActiveEvaluator(Filters.siteControlled(self.getOwner())))));
modifiers.add(
new StrengthModifier(self, Filters.and(Filters.not(Filters.name("Gothmog")), Filters.hasAttached(self)), null,
new CountActiveEvaluator(Filters.siteControlled(self.getOwner()))));
return modifiers;
}
}

View File

@@ -1,41 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
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.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.modifiers.CantTakeWoundsModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.condition.NotCondition;
import com.gempukku.lotro.logic.modifiers.condition.PhaseCondition;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Orc
* Strength: 9
* Vitality: 3
* Site: 6
* Game Text: Each [SAURON] Orc bearing a possession cannot take wounds (except during skirmish phases).
*/
public class Card10_090 extends AbstractMinion {
public Card10_090() {
super(3, 9, 3, 6, Race.ORC, Culture.SAURON, "Mordor Brute");
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new CantTakeWoundsModifier(self, new NotCondition(new PhaseCondition(Phase.SKIRMISH)),
Filters.and(Culture.SAURON, Race.ORC, Filters.hasAttached(CardType.POSSESSION))));
}
}

View File

@@ -1,45 +0,0 @@
package com.gempukku.lotro.cards.set10.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.AbstractMinion;
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Orc
* Strength: 9
* Vitality: 3
* Site: 6
* Game Text: Shadow: If you cannot spot another minion and there are 3 or fewer twilight tokens, add (3) (or (5)
* if this minion is roaming).
*/
public class Card10_091 extends AbstractMinion {
public Card10_091() {
super(3, 9, 3, 6, Race.ORC, Culture.SAURON, "Mordor Fiend");
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& !PlayConditions.canSpot(game, Filters.not(self), CardType.MINION)
&& game.getGameState().getTwilightPool() <= 3) {
ActivateCardAction action = new ActivateCardAction(self);
int count = game.getModifiersQuerying().hasKeyword(game, self, Keyword.ROAMING) ? 5 : 3;
action.appendEffect(
new AddTwilightEffect(self, count));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,70 +0,0 @@
package com.gempukku.lotro.cards.set10.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.GameUtils;
import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.CostToEffectAction;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.effects.PreventableEffect;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.effects.TakeControlOfASiteEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Orc
* Strength: 9
* Vitality: 2
* Site: 5
* Game Text: Besieger. Fierce. Shadow: Exert this minion and spot another [SAURON] minion to control a site. If you
* cannot spot 3 Free Peoples cultures, the Free Peoples player may exert a companion to prevent this.
*/
public class Card10_092 extends AbstractMinion {
public Card10_092() {
super(3, 9, 2, 5, Race.ORC, Culture.SAURON, "Mordor Pillager");
addKeyword(Keyword.BESIEGER);
addKeyword(Keyword.FIERCE);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& PlayConditions.canSelfExert(self, game)
&& PlayConditions.canSpot(game, Filters.not(self), Culture.SAURON, CardType.MINION)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfExertEffect(action, self));
int cultures = GameUtils.getSpottableCulturesCount(game, Side.FREE_PEOPLE);
if (cultures < 3)
action.appendEffect(
new PreventableEffect(action, new TakeControlOfASiteEffect(self, playerId), game.getGameState().getCurrentPlayerId(),
new PreventableEffect.PreventionCost() {
@Override
public Effect createPreventionCostForPlayer(CostToEffectAction subAction, String playerId) {
return new ChooseAndExertCharactersEffect(subAction, playerId, 1, 1, CardType.COMPANION) {
@Override
public String getText(LotroGame game) {
return "Exert a companion";
}
};
}
}));
else
action.appendEffect(
new TakeControlOfASiteEffect(self, playerId));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,50 +0,0 @@
package com.gempukku.lotro.cards.set10.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.GameUtils;
import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 3
* Type: Minion • Orc
* Strength: 9
* Vitality: 3
* Site: 6
* Game Text: Shadow: Spot 4 Free Peoples cultures and exert another [SAURON] minion twice to add (3) and draw a card.
*/
public class Card10_093 extends AbstractMinion {
public Card10_093() {
super(3, 9, 3, 6, Race.ORC, Culture.SAURON, "Mordor Wretch");
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& GameUtils.getSpottableCulturesCount(game, Side.FREE_PEOPLE) >= 4
&& PlayConditions.canExert(self, game, 2, Filters.not(self), Culture.SAURON, CardType.MINION)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.not(self), Culture.SAURON, CardType.MINION));
action.appendEffect(
new AddTwilightEffect(self, 3));
action.appendEffect(
new DrawCardsEffect(action, playerId, 1));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,52 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race;
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.RemoveThreatsEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 4
* Type: Minion • Orc
* Strength: 10
* Vitality: 3
* Site: 6
* Game Text: To play, spot a [SAURON] minion. Shadow: Remove 2 threats to discard a condition.
*/
public class Card10_094 extends AbstractMinion {
public Card10_094() {
super(4, 10, 3, 6, Race.ORC, Culture.SAURON, "Orc Ravager");
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Culture.SAURON, CardType.MINION);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& PlayConditions.canRemoveThreat(game, self, 2)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new RemoveThreatsEffect(self, 2));
action.appendEffect(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.CONDITION));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,44 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 4
* Type: Minion • Orc
* Strength: 10
* Vitality: 3
* Site: 6
* Game Text: Enduring. For each wound on this minion, it is strength +2.
*/
public class Card10_095 extends AbstractMinion {
public Card10_095() {
super(4, 10, 3, 6, Race.ORC, Culture.SAURON, "Orc Slaughterer");
addKeyword(Keyword.ENDURING);
}
@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 cardAffected) {
return 2 * game.getGameState().getWounds(cardAffected);
}
}));
}
}

View File

@@ -1,87 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.*;
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.OptionalTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.effects.AddTokenEffect;
import com.gempukku.lotro.logic.effects.ChoiceEffect;
import com.gempukku.lotro.logic.effects.RemoveTokenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
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.EffectResult;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 1
* Type: Condition • Support Area
* Game Text: Each time a roaming [SAURON] minion takes a wound, you may add a [SAURON] token here. Regroup: Exert
* an Uruk-hai or discard a [SAURON] minion to add a [SAURON] token here. Skirmish: Remove 2 [SAURON] tokens from here
* to make a [SAURON] minion strength +2.
*/
public class Card10_096 extends AbstractPermanent {
public Card10_096() {
super(Side.SHADOW, 1, CardType.CONDITION, Culture.SAURON, "Rank and File", null, true);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.forEachWounded(game, effectResult, Culture.SAURON, CardType.MINION, Keyword.ROAMING)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new AddTokenEffect(self, self, Token.SAURON));
return Collections.singletonList(action);
}
return null;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)
&& (PlayConditions.canExert(self, game, Race.URUK_HAI) || PlayConditions.canDiscardFromPlay(self, game, Culture.SAURON, CardType.MINION))) {
ActivateCardAction action = new ActivateCardAction(self);
List<Effect> possibleCosts = new LinkedList<>();
possibleCosts.add(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.URUK_HAI) {
@Override
public String getText(LotroGame game) {
return "Exert an Uruk-hai";
}
});
possibleCosts.add(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Culture.SAURON, CardType.MINION) {
@Override
public String getText(LotroGame game) {
return "Discard a SAURON minion";
}
});
action.appendCost(
new ChoiceEffect(action, playerId, possibleCosts));
action.appendEffect(
new AddTokenEffect(self, self, Token.SAURON));
return Collections.singletonList(action);
}
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0)
&& PlayConditions.canRemoveTokens(game, self, Token.SAURON, 2)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new RemoveTokenEffect(self, self, Token.SAURON, 2));
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 2, Culture.SAURON, CardType.MINION));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,45 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
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.PlayUtils;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractResponseEvent;
import com.gempukku.lotro.logic.effects.AddBurdenEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 0
* Type: Event • Response
* Game Text: If a burden is added, spot a [SAURON] minion to add an additional burden.
*/
public class Card10_097 extends AbstractResponseEvent {
public Card10_097() {
super(Side.SHADOW, 0, Culture.SAURON, "The Ring is Mine!");
}
@Override
public List<PlayEventAction> getPlayResponseEventAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.addedBurden(game, effectResult, Filters.any)
&& PlayUtils.checkPlayRequirements(game, self, Filters.any, 0, 0, false, false)
&& PlayConditions.canSpot(game, Culture.SAURON, CardType.MINION)) {
PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new AddBurdenEffect(playerId, self, 1));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,51 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
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.PlayUtils;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractResponseEvent;
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.modifiers.PlayerCantPlayCardsModifier;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 0
* Type: Event • Response
* Game Text: If the Free Peoples player plays a possession, discard a [SAURON] minion from hand to prevent him or her
* from playing any more cards until the end of this phase.
*/
public class Card10_098 extends AbstractResponseEvent {
public Card10_098() {
super(Side.SHADOW, 0, Culture.SAURON, "Ruinous Hall");
}
@Override
public List<PlayEventAction> getPlayResponseEventAfterActions(String playerId, final LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, Filters.owner(game.getGameState().getCurrentPlayerId()), CardType.POSSESSION)
&& PlayUtils.checkPlayRequirements(game, self, Filters.any, 0, 0, false, false)
&& PlayConditions.canDiscardCardsFromHandToPlay(self, game, playerId, 1, Culture.SAURON, CardType.MINION)) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Culture.SAURON, CardType.MINION));
action.appendEffect(
new AddUntilEndOfPhaseModifierEffect(
new PlayerCantPlayCardsModifier(self, game.getGameState().getCurrentPlayerId())));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,45 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
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.OptionalTriggerAction;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 5
* Type: Minion • Uruk-Hai
* Strength: 13
* Vitality: 3
* Site: 6
* Game Text: Damage +1. Each time Shagrat loses a skirmish, you may exert a character.
*/
public class Card10_099 extends AbstractMinion {
public Card10_099() {
super(5, 13, 3, 6, Race.URUK_HAI, Culture.SAURON, "Shagrat", "Captain of Cirith Ungol", true);
addKeyword(Keyword.DAMAGE, 1);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.losesSkirmish(game, effectResult, self)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.character));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,63 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
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.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.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndReturnCardsToHandEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 1
* Type: Event • Shadow
* Game Text: Exert a [SAURON] minion to return a Free Peoples condition to its owner's hand (or 2 if both are [SHIRE]
* conditions).
*/
public class Card10_100 extends AbstractEvent {
public Card10_100() {
super(Side.SHADOW, 1, Culture.SAURON, "Speak No More to Me", Phase.SHADOW);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canExert(self, game, Culture.SAURON, CardType.MINION);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.SAURON, CardType.MINION));
List<Effect> possibleEffects = new LinkedList<>();
possibleEffects.add(
new ChooseAndReturnCardsToHandEffect(action, playerId, 1, 1, Side.FREE_PEOPLE, CardType.CONDITION) {
@Override
public String getText(LotroGame game) {
return "Return Free Peoples condition to its owner's hand";
}
});
possibleEffects.add(
new ChooseAndReturnCardsToHandEffect(action, playerId, 2, 2, Side.FREE_PEOPLE, CardType.CONDITION, Culture.SHIRE) {
@Override
public String getText(LotroGame game) {
return "Return 2 Free Peoples SHIRE conditions to its owner's hand";
}
});
action.appendEffect(
new ChoiceEffect(action, playerId, possibleEffects));
return action;
}
}

View File

@@ -1,47 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 7
* Type: Minion • Troll
* Strength: 14
* Vitality: 4
* Site: 6
* Game Text: Damage +1. Fierce. To play, spot a [SAURON] minion. This minion is strength +1 for each possession you
* can spot.
*/
public class Card10_101 extends AbstractMinion {
public Card10_101() {
super(7, 14, 4, 6, Race.TROLL, Culture.SAURON, "Troll of Cirith Gorgor");
addKeyword(Keyword.DAMAGE, 1);
addKeyword(Keyword.FIERCE);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Culture.SAURON, CardType.MINION);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new StrengthModifier(self, self, null, new CountActiveEvaluator(CardType.POSSESSION)));
}
}

View File

@@ -1,45 +0,0 @@
package com.gempukku.lotro.cards.set10.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.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 1
* Type: Possession • Hand Weapon
* Strength: +1
* Game Text: Bearer must be a [SAURON] Minion. If bearer is an Uruk-hai, it is strength +2.
*/
public class Card10_102 extends AbstractAttachable {
public Card10_102() {
super(Side.SHADOW, CardType.POSSESSION, 1, Culture.SAURON, PossessionClass.HAND_WEAPON, "Uruk Axe");
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.and(Culture.SAURON, CardType.MINION);
}
@Override
public int getStrength() {
return 1;
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<>();
modifiers.add(
new StrengthModifier(self, Filters.and(Filters.hasAttached(self), Race.URUK_HAI), 2));
return modifiers;
}
}

View File

@@ -1,54 +0,0 @@
package com.gempukku.lotro.cards.set10.sauron;
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.actions.OptionalTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
import com.gempukku.lotro.logic.effects.RemoveThreatsEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Shadow
* Culture: Sauron
* Twilight Cost: 1
* Type: Condition • Support Area
* Game Text: To play, spot a [SAURON] minion. Each time the fellowship moves during the regroup phase, you may remove
* a threat to wound an unbound companion.
*/
public class Card10_103 extends AbstractPermanent {
public Card10_103() {
super(Side.SHADOW, 1, CardType.CONDITION, Culture.SAURON, "Window of the Eye");
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Culture.SAURON, CardType.MINION);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.moves(game, effectResult)
&& PlayConditions.isPhase(game, Phase.REGROUP)
&& PlayConditions.canRemoveThreat(game, self, 1)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendCost(
new RemoveThreatsEffect(self, 1));
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.unboundCompanion));
return Collections.singletonList(action);
}
return null;
}
}