Added all Shire cards from Second Edition

This commit is contained in:
marcin.sciesinski
2019-09-09 14:05:30 -07:00
parent 4afa0ba03d
commit 9389d6d138
7 changed files with 199 additions and 367 deletions

View File

@@ -711,6 +711,205 @@
}
]
},
"40_267": {
"title": "*Sam",
"subtitle": "Dropper of Eaves",
"culture": "shire",
"cost": 2,
"type": "companion",
"race": "hobbit",
"strength": 3,
"vitality": 4,
"resistance": 9,
"keyword": "ring-bound",
"effects": [
{
"type": "modifier",
"modifier": {
"type": "modifyResistance",
"amount": -4,
"filter": "self,ring bearer"
}
},
{
"type": "activated",
"phase": "fellowship",
"cost": {
"type": "exert",
"filter": "self",
"times": 2
},
"effect": {
"type": "discard",
"filter": "choose(side(shadow),condition,attachedTo(companion))"
}
},
{
"type": "trigger",
"optional": true,
"trigger": {
"type": "killed",
"filter": "name(Frodo),ring bearer"
},
"effect": {
"type": "makeSelfRingBearer"
}
}
]
},
"40_268": {
"title": "*Sam",
"subtitle": "Humble Halfling",
"culture": "shire",
"cost": 2,
"type": "companion",
"race": "hobbit",
"strength": 3,
"vitality": 4,
"resistance": 9,
"keyword": "ring-bound",
"effects": [
{
"type": "modifier",
"modifier": {
"type": "modifyResistance",
"amount": -4,
"filter": "self,ring bearer"
}
},
{
"type": "trigger",
"optional": true,
"trigger": {
"type": "startOfTurn"
},
"cost": {
"type": "exert",
"filter": "choose(name(Sam))"
},
"effect": {
"type": "removeBurdens"
}
},
{
"type": "trigger",
"optional": true,
"trigger": {
"type": "killed",
"filter": "name(Frodo),ring bearer"
},
"effect": {
"type": "makeSelfRingBearer"
}
}
]
},
"40_269": {
"title": "*Sam's Pipe",
"culture": "shire",
"cost": 1,
"type": "possession",
"possession": "pipe",
"target": "name(Sam)",
"effects": {
"type": "activated",
"phase": "regroup",
"cost": [
{
"type": "discard",
"filter": "choose(pipeweed,possession)"
},
{
"type": "chooseHowManyToSpot",
"filter": "pipe",
"memorize": "numberOfPipes"
}
],
"effect": {
"type": "removeBurdens",
"amount": {
"type": "fromMemory",
"memory": "numberOfPipes"
}
},
"limitPerPhase": 1
}
},
"40_270": {
"title": "Save the Shire",
"culture": "shire",
"cost": 0,
"type": "event",
"keyword": "skirmish",
"effects": {
"type": "event",
"effect": [
{
"type": "modifyStrength",
"filter": "choose(hobbit)",
"amount": 1,
"memorize": "chosenHobbit"
},
{
"type": "addTrigger",
"optional": true,
"trigger": {
"type": "winsSkirmish",
"filter": "memory(chosenHobbit)"
},
"effect": {
"type": "removeBurdens",
"amount": 2
}
}
]
}
},
"40_271": {
"title": "Southern Star",
"subtitle": "Southfarthing Vintage",
"culture": "shire",
"cost": 1,
"type": "possession",
"keyword": [
"support area",
"pipeweed"
],
"effects": {
"type": "trigger",
"optional": true,
"trigger": {
"type": "played",
"filter": "self"
},
"cost": {
"type": "discardFromHand",
"forced": false
},
"effect": {
"type": "heal",
"filter": "choose(hobbit)"
}
}
},
"40_272": {
"title": "*Sting",
"subtitle": "Baggins Birthright",
"culture": "shire",
"cost": 1,
"type": "possession",
"possession": "hand weapon",
"strength": 2,
"target": "name(Frodo)",
"effects": {
"type": "modifier",
"modifier": {
"type": "modifyStrength",
"filter": "bearer,strengthLessThan(9)",
"amount": 2
}
}
},
"40_319": {
"title": "*A Hobbit's Tale",
"culture": "shire",

View File

@@ -1,74 +0,0 @@
package com.gempukku.lotro.cards.set40.shire;
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.OptionalTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractCompanion;
import com.gempukku.lotro.logic.effects.MakeRingBearerEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ResistanceModifier;
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;
/**
* Title: *Sam, Dropper of Eaves
* Set: Second Edition
* Side: Free
* Culture: Shire
* Twilight Cost: 2
* Type: Companion - Hobbit
* Strength: 3
* Vitality: 4
* Resistance: 9
* Card Number: 1C267
* Game Text: Ring-bound. While bearing The One Ring, Sam is resistance -4.
* Fellowship: Exert Sam twice to discard a Shadow condition borne by a companion.
* Response: If Frodo dies, make Sam the Ring-bearer.
*/
public class Card40_267 extends AbstractCompanion {
public Card40_267() {
super(2, 3, 4, 9, Culture.SHIRE, Race.HOBBIT, null, "Sam",
"Dropper of Eaves", true);
addKeyword(Keyword.RING_BOUND);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
ResistanceModifier modifier = new ResistanceModifier(self, Filters.and(self, Filters.hasAttached(CardType.THE_ONE_RING)), -4);
return Collections.singletonList(modifier);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& PlayConditions.canSelfExert(self, 2, game)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, self));
action.appendEffect(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Side.SHADOW, CardType.CONDITION, Filters.attachedTo(CardType.COMPANION)));
return Collections.singletonList(action);
}
return null;
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.forEachKilled(game, effectResult, Filters.frodo, Filters.ringBearer)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(new MakeRingBearerEffect(self));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,71 +0,0 @@
package com.gempukku.lotro.cards.set40.shire;
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.cardtype.AbstractCompanion;
import com.gempukku.lotro.logic.effects.MakeRingBearerEffect;
import com.gempukku.lotro.logic.effects.RemoveBurdenEffect;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ResistanceModifier;
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;
/**
* Title: *Sam, Humble Halfling
* Set: Second Edition
* Side: Free
* Culture: Shire
* Twilight Cost: 2
* Type: Companion - Hobbit
* Strength: 3
* Vitality: 4
* Resistance: 9
* Card Number: 1R268
* Game Text: Ring-bound. While bearing The One Ring, Sam is resistance -4.
* At the start of each of your turns, you may exert Sam to remove a burden.
* Response: If Frodo dies, make Sam the Ring-bearer.
*/
public class Card40_268 extends AbstractCompanion {
public Card40_268() {
super(2, 3, 4, 9, Culture.SHIRE, Race.HOBBIT, null, "Sam",
"Humble Halfling", true);
addKeyword(Keyword.RING_BOUND);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
ResistanceModifier modifier = new ResistanceModifier(self, Filters.and(self, Filters.hasAttached(CardType.THE_ONE_RING)), -4);
return Collections.singletonList(modifier);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.forEachKilled(game, effectResult, Filters.frodo, Filters.ringBearer)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(new MakeRingBearerEffect(self));
return Collections.singletonList(action);
}
if (TriggerConditions.startOfTurn(game, effectResult)
&& PlayConditions.canSelfExert(self, game)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendCost(
new SelfExertEffect(action, self));
action.appendEffect(
new RemoveBurdenEffect(playerId, self));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,64 +0,0 @@
package com.gempukku.lotro.cards.set40.shire;
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.AbstractAttachableFPPossession;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import com.gempukku.lotro.logic.decisions.ForEachYouSpotDecision;
import com.gempukku.lotro.logic.effects.IncrementPhaseLimitEffect;
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
import com.gempukku.lotro.logic.effects.RemoveBurdenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Title: *Sam's Pipe
* Set: Second Edition
* Side: Free
* Culture: Shire
* Twilight Cost: 1
* Type: Possession - Pipe
* Card Number: 1U269
* Game Text: Bearer must be Sam. Fellowship: Discard a Pipeweed possession and spot X pipes to remove X burdens (limit once per phase).
*/
public class Card40_269 extends AbstractAttachableFPPossession {
public Card40_269() {
super(1, 0, 0, Culture.SHIRE, PossessionClass.PIPE, "Sam's Pipe", null, true);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.sam;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& PlayConditions.canDiscardFromPlay(self, game, CardType.POSSESSION, Keyword.PIPEWEED)
&& PlayConditions.checkPhaseLimit(game, self, 1)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new IncrementPhaseLimitEffect(self, 1));
action.appendCost(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.POSSESSION, Keyword.PIPEWEED));
action.appendEffect(
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 {
final int spotCount = getValidatedResult(result);
action.appendEffect(
new RemoveBurdenEffect(playerId, self, spotCount));
}
}));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,65 +0,0 @@
package com.gempukku.lotro.cards.set40.shire;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.game.AbstractActionProxy;
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.actions.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseActionProxyEffect;
import com.gempukku.lotro.logic.effects.RemoveBurdenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Title: Save the Shire
* Set: Second Edition
* Side: Free
* Culture: Shire
* Twilight Cost: 0
* Type: Event - Skirmish
* Card Number: 1R270
* Game Text: Make a Hobbit strength +1. If that Hobbit wins this skirmish, you may remove 2 burdens.
*/
public class Card40_270 extends AbstractEvent {
public Card40_270() {
super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "Save the Shire", Phase.SKIRMISH);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, final PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 1, Race.HOBBIT) {
@Override
protected void selectedCharacterCallback(final PhysicalCard selectedCharacter) {
action.appendEffect(
new AddUntilEndOfPhaseActionProxyEffect(
new AbstractActionProxy() {
@Override
public List<? extends OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult) {
if (TriggerConditions.winsSkirmish(game, effectResult, selectedCharacter)
&& playerId.equals(self.getOwner())) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.setVirtualCardAction(true);
action.appendEffect(
new RemoveBurdenEffect(playerId, self, 2));
return Collections.singletonList(action);
}
return null;
}
}
));
}
});
return action;
}
}

View File

@@ -1,48 +0,0 @@
package com.gempukku.lotro.cards.set40.shire;
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
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.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Title: Southern Star, Southfarthing Vintage
* Set: Second Edition
* Side: Free
* Culture: Shire
* Twilight Cost: 1
* Type: Possession - Support Area
* Card Number: 1C271
* Game Text: Pipeweed. When you play this possession, you may discard a card from hand to heal a Hobbit.
*/
public class Card40_271 extends AbstractPermanent {
public Card40_271() {
super(Side.FREE_PEOPLE, 1, CardType.POSSESSION, Culture.SHIRE, "Southern Star",
"Southfarthing Vintage", false);
addKeyword(Keyword.PIPEWEED);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)
&& PlayConditions.canDiscardFromHand(game, playerId, 1, Filters.any)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Filters.any));
action.appendEffect(
new ChooseAndHealCharactersEffect(action, playerId, Race.HOBBIT));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,45 +0,0 @@
package com.gempukku.lotro.cards.set40.shire;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.common.PossessionClass;
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.AbstractAttachableFPPossession;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import java.util.Collections;
import java.util.List;
/**
* Title: *Sting, Baggins Birthright
* Set: Second Edition
* Side: Free
* Culture: Shire
* Twilight Cost: 1
* Type: Possession - Hand Weapon
* Strength: +2
* Card Number: 1R272
* Game Text: Bearer must be Frodo. While skirmishing a minion that has strength 8 or less, Frodo is strength +2.
*/
public class Card40_272 extends AbstractAttachableFPPossession {
public Card40_272() {
super(1, 2, 0, Culture.SHIRE, PossessionClass.HAND_WEAPON, "Sting",
"Baggins Birthright", true);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.frodo;
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
StrengthModifier modifier = new StrengthModifier(self, Filters.and(Filters.hasAttached(self),
Filters.inSkirmishAgainst(CardType.MINION, Filters.lessStrengthThan(9))), 2);
return Collections.singletonList(modifier);
}
}