Finished 100 cards!

This commit is contained in:
marcin.sciesinski
2019-08-02 00:35:56 -07:00
parent e1c2f4522b
commit cd8bfc582e
8 changed files with 399 additions and 1 deletions

View File

@@ -0,0 +1,52 @@
package com.gempukku.lotro.cards.set40.gondor;
import com.gempukku.lotro.cards.AbstractAttachable;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
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.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections;
import java.util.List;
/**
* Title: Alliance of Old
* Set: Second Edition
* Side: Free
* Culture: Gondor
* Twilight Cost: 1
* Type: Condition - Companion
* Card Number: 1R93
* Game Text: Tale. Bearer must be an Elf. Skirmish: Exert a [GONDOR] Man to make bearer strength +2.
*/
public class Card40_093 extends AbstractAttachable {
public Card40_093() {
super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.GONDOR, null, "Alliance of Old");
addKeyword(Keyword.TALE);
}
@Override
protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Race.ELF;
}
@Override
protected List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
&& PlayConditions.canExert(self, game, Culture.GONDOR, Race.MAN)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.GONDOR, Race.MAN));
action.appendEffect(
new AddUntilEndOfPhaseModifierEffect(
new StrengthModifier(self, self.getAttachedTo(), 2)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -0,0 +1,42 @@
package com.gempukku.lotro.cards.set40.gondor;
import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition;
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.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import java.util.Collections;
import java.util.List;
/**
* Title: *Aragorn, Dunedain Ranger
* Set: Second Edition
* Side: Free
* Culture: Gondor
* Twilight Cost: 4
* Type: Companion - Man
* Strength: 8
* Vitality: 4
* Resistance: 8
* Card Number: 1C94
* Game Text: Ranger. While at a site from your adventure deck, Aragorn is defender +1.
*/
public class Card40_094 extends AbstractCompanion {
public Card40_094() {
super(4, 8, 4, 8, Culture.GONDOR, Race.MAN, null, "Aragorn", "Dunedain Ranger", true);
addKeyword(Keyword.RANGER);
}
@Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
KeywordModifier modifier = new KeywordModifier(self, self,
new LocationCondition(Filters.owner(self.getOwner())), Keyword.DEFENDER, 1);
return Collections.singletonList(modifier);
}
}

View File

@@ -0,0 +1,62 @@
package com.gempukku.lotro.cards.set40.gondor;
import com.gempukku.lotro.cards.AbstractAttachable;
import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.ExtraFilters;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.AttachPermanentAction;
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromHandEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseCardsFromDeckEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseCardsFromHandEffect;
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.effects.HealCharactersEffect;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* Title: *Aragorn, Isildur's Heir
* Set: Second Edition
* Side: Free
* Culture: Gondor
* Twilight Cost: 4
* Type: Companion - Man
* Strength: 8
* Vitality: 4
* Resistance: 8
* Card Number: 1R95
* Game Text: Ranger. Maneuver: Play an artifact or possession on Aragorn to heal him.
*/
public class Card40_095 extends AbstractCompanion {
public Card40_095() {
super(4, 8, 4, 8, Culture.GONDOR, Race.MAN, null, "Aragorn", "Isildur's Heir", true);
addKeyword(Keyword.RANGER);
}
@Override
protected List<ActivateCardAction> getExtraInPlayPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)
&& PlayConditions.canPlayFromHand(playerId, game, Filters.or(CardType.ARTIFACT, CardType.POSSESSION), ExtraFilters.attachableTo(game, self))) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseCardsFromHandEffect(playerId, 1, 1, Filters.or(CardType.ARTIFACT, CardType.POSSESSION), ExtraFilters.attachableTo(game, self)) {
@Override
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> cards) {
for (PhysicalCard card : cards) {
AttachPermanentAction attachPermanentAction = ((AbstractAttachable) card.getBlueprint()).getPlayCardAction(playerId, game, card, Filters.and(self), 0);
game.getActionsEnvironment().addActionToStack(attachPermanentAction);
}
}
});
action.appendEffect(
new HealCharactersEffect(self, self));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -0,0 +1,67 @@
package com.gempukku.lotro.cards.set40.gondor;
import com.gempukku.lotro.cards.AbstractAttachableFPPossession;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.TriggerConditions;
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.cards.modifiers.DoesNotAddToArcheryTotalModifier;
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.effects.ChooseAndWoundCharactersEffect;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Title: *Aragorn's Bow, Swift and True
* Set: Second Edition
* Side: Free
* Culture: Gondor
* Twilight Cost: 1
* Type: Possession - Ranged Weapon
* Card Number: 1R96
* Game Text: Bearer must be Aragorn.
* He is an archer.
* At the beginning of the archery phase, you may exert Aragorn to wound a minion. If you do, Aragorn does not add
* to the fellowship archery total.
*/
public class Card40_096 extends AbstractAttachableFPPossession {
public Card40_096() {
super(1, 0, 0, Culture.GONDOR, PossessionClass.RANGED_WEAPON, "Aragorn's Bow", "Swift and True", true);
}
@Override
protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.aragorn;
}
@Override
protected List<? extends Modifier> getNonBasicStatsModifiers(PhysicalCard self) {
KeywordModifier modifier = new KeywordModifier(self, Filters.hasAttached(self), Keyword.ARCHER);
return Collections.singletonList(modifier);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.startOfPhase(game, effectResult, Phase.ARCHERY)
&& PlayConditions.canExert(self, game, Filters.aragorn)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.aragorn));
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.MINION));
action.appendEffect(
new AddUntilEndOfPhaseModifierEffect(
new DoesNotAddToArcheryTotalModifier(self, self)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -0,0 +1,67 @@
package com.gempukku.lotro.cards.set40.gondor;
import com.gempukku.lotro.cards.AbstractAttachableFPPossession;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.decisions.ForEachYouSpotDecision;
import com.gempukku.lotro.cards.effects.CheckPhaseLimitEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
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.ActivateCardAction;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect;
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections;
import java.util.List;
/**
* Title: *Aragorn's Pipe
* Set: Second Edition
* Side: Free
* Culture: Gondor
* Twilight Cost: 1
* Type: Possession - Pipe
* Card Number: 1U97
* Game Text: Bearer must be a [GONDOR] Man.
* Skirmish: Discard a pipeweed possession and spot X pipes to make a companion bearing a pipe strength +X
* (limit once per phase).
*/
public class Card40_097 extends AbstractAttachableFPPossession {
public Card40_097() {
super(1, 0, 0, Culture.GONDOR, PossessionClass.PIPE, "Aragorn's Pipe", null, true);
}
@Override
protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.and(Culture.GONDOR, Race.MAN);
}
@Override
protected List<? extends Action> getExtraInPlayPhaseActions(final String playerId, final LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
&& PlayConditions.canDiscardFromPlay(self, game, CardType.POSSESSION, Keyword.PIPEWEED)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.POSSESSION, Keyword.PIPEWEED));
action.appendEffect(
new CheckPhaseLimitEffect(action, self, 1,
new PlayoutDecisionEffect(playerId,
new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, Integer.MAX_VALUE, PossessionClass.PIPE) {
@Override
public void decisionMade(String result) throws DecisionResultInvalidException {
int spotCount = getValidatedResult(result);
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, spotCount, CardType.COMPANION,
Filters.hasAttached(PossessionClass.PIPE)));
}
})));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -0,0 +1,46 @@
package com.gempukku.lotro.cards.set40.gondor;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.AddUntilEndOfTurnModifierEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.cards.modifiers.AddNoTwilightForCompanionMoveModifier;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
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;
/**
* Title: Avoid Being Seen
* Set: Second Edition
* Side: Free
* Culture: Gondor
* Twilight Cost: 0
* Type: Event - Fellowship
* Card Number: 1R99
* Game Text: To play, exert X Rangers. Until the end of turn, add no twilight for each exerted Ranger when the fellowship moves.
*/
public class Card40_099 extends AbstractEvent {
public Card40_099() {
super(Side.FREE_PEOPLE, 0, Culture.GONDOR, "Aboid Being Seen", Phase.FELLOWSHIP);
}
@Override
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
final PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 0, Integer.MAX_VALUE, Filters.character, Keyword.RANGER) {
@Override
protected void forEachCardExertedCallback(PhysicalCard character) {
action.appendEffect(
new AddUntilEndOfTurnModifierEffect(
new AddNoTwilightForCompanionMoveModifier(self, character)));
}
});
return action;
}
}

View File

@@ -0,0 +1,61 @@
package com.gempukku.lotro.cards.set40.gondor;
import com.gempukku.lotro.cards.AbstractAttachableFPPossession;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
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.effects.ChooseAndWoundCharactersEffect;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections;
import java.util.List;
/**
* Title: *Blade of Gondor, Weapon of Honor
* Set: Second Edition
* Side: Free
* Culture: Gondor
* Twilight Cost: 1
* Type: Possession - Hand Weapon
* Strength: +2
* Card Number: 1R100
* Game Text: Bearer must be Boromir. He is damage +1.
* Skirmish: Exert Boromir to wound an Orc or Uruk-hai skirmishing another unbound companion.
*/
public class Card40_100 extends AbstractAttachableFPPossession {
public Card40_100() {
super(1, 2, 0, Culture.GONDOR, PossessionClass.HAND_WEAPON, "Blade of Gondor", "Weapon of Honor", true);
}
@Override
protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.boromir;
}
@Override
protected List<? extends Modifier> getNonBasicStatsModifiers(PhysicalCard self) {
KeywordModifier modifier = new KeywordModifier(self, Filters.hasAttached(self), Keyword.DAMAGE, 1);
return Collections.singletonList(modifier);
}
@Override
protected List<? extends Action> getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
&& PlayConditions.canExert(self, game, Filters.boromir)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.boromir));
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1,
Filters.or(Race.ORC, Race.URUK_HAI), Filters.inSkirmishAgainst(Filters.not(Filters.hasAttached(self)), Filters.unboundCompanion)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -234,4 +234,5 @@ gl_theOneRing,1_2
40_84,1_78
40_87,4_99
40_88,2_26
40_90,1_87
40_90,1_87
40_98,1_92