Migrated Shire cards in set 5 to hjson

This commit is contained in:
MarcinSc
2024-04-22 12:54:27 +07:00
parent 1ba44e294d
commit 2082cc5b2d
8 changed files with 110 additions and 414 deletions

View File

@@ -1,47 +0,0 @@
package com.gempukku.lotro.cards.set5.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.AbstractCompanion;
import com.gempukku.lotro.logic.effects.AddBurdenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Shire
* Twilight Cost: 0
* Type: Companion • Hobbit
* Strength: 3
* Vitality: 4
* Resistance: 10
* Signet: Aragorn
* Game Text: Ring-bearer (resistance 10). Fellowship: Add a burden to play Smeagol from your discard pile.
*/
public class Card5_111 extends AbstractCompanion {
public Card5_111() {
super(0, 3, 4, 10, Culture.SHIRE, Race.HOBBIT, Signet.ARAGORN, "Frodo", "Master of the Precious", true);
addKeyword(Keyword.CAN_START_WITH_RING);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& PlayConditions.canPlayFromDiscard(playerId, game, Filters.smeagol)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new AddBurdenEffect(self.getOwner(), self, 1));
action.appendEffect(
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.smeagol));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,43 +0,0 @@
package com.gempukku.lotro.cards.set5.shire;
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.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.RemoveBurdenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Shire
* Twilight Cost: 0
* Type: Event
* Game Text: Regroup: Spot Sam and discard Smeagol or Gollum to remove 3 burdens.
*/
public class Card5_112 extends AbstractEvent {
public Card5_112() {
super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "No Help for It", Phase.REGROUP);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Filters.sam)
&& PlayConditions.canDiscardFromPlay(self, game, Filters.gollumOrSmeagol);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.gollumOrSmeagol));
action.appendEffect(
new RemoveBurdenEffect(playerId, self, 3));
return action;
}
}

View File

@@ -1,34 +0,0 @@
package com.gempukku.lotro.cards.set5.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.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.AddBurdenEffect;
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Shire
* Twilight Cost: 0
* Type: Event
* Game Text: Skirmish: Add 3 burdens to wound a minion skirmishing a companion who has the Frodo signet twice.
*/
public class Card5_113 extends AbstractEvent {
public Card5_113() {
super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "No Use That Way", Phase.SKIRMISH);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new AddBurdenEffect(self.getOwner(), self, 3));
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, 2, CardType.MINION, Filters.inSkirmishAgainst(CardType.COMPANION, Signet.FRODO)));
return action;
}
}

View File

@@ -1,60 +0,0 @@
package com.gempukku.lotro.cards.set5.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.AbstractAttachable;
import com.gempukku.lotro.logic.effects.CancelActivatedEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
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.ActivateCardResult;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Shire
* Twilight Cost: 1
* Type: Condition
* Vitality: +1
* Game Text: Plays on Sam. Response: If a regroup special ability is used, discard Smeagol or Gollum to cancel
* that action.
*/
public class Card5_114 extends AbstractAttachable {
public Card5_114() {
super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.SHIRE, null, "Rare Good Ballast", null, true);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.sam;
}
@Override
public int getVitality() {
return 1;
}
@Override
public List<? extends ActivateCardAction> getOptionalInPlayAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.activated(game, effectResult, Filters.any)) {
ActivateCardResult activateEffect = (ActivateCardResult) effectResult;
if (activateEffect.getActionTimeword() == Phase.REGROUP
&& PlayConditions.canDiscardFromPlay(self, game, Filters.gollumOrSmeagol)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.gollumOrSmeagol));
action.appendEffect(
new CancelActivatedEffect(self, activateEffect));
return Collections.singletonList(action);
}
}
return null;
}
}

View File

@@ -1,64 +0,0 @@
package com.gempukku.lotro.cards.set5.shire;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Signet;
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.modifiers.Condition;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.OverwhelmedByMultiplierModifier;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Shire
* Twilight Cost: 2
* Type: Companion • Hobbit
* Strength: 3
* Vitality: 4
* Resistance: 6
* Signet: Aragorn
* Game Text: Ring-bound. While you can spot Frodo and Smeagol, Sam may not be overwhelmed unless is strength
* is tripled. Response: If Frodo is killed, make Sam the Ring-bearer (resistance 5).
*/
public class Card5_115 extends AbstractCompanion {
public Card5_115() {
super(2, 3, 4, 5, Culture.SHIRE, Race.HOBBIT, Signet.ARAGORN, "Sam", "Nice Sensible Hobbit", true);
addKeyword(Keyword.RING_BOUND);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new OverwhelmedByMultiplierModifier(self, self,
new Condition() {
@Override
public boolean isFullfilled(LotroGame game) {
return Filters.canSpot(game, Filters.frodo)
&& Filters.canSpot(game, Filters.smeagol);
}
}, 3));
}
@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,65 +0,0 @@
package com.gempukku.lotro.cards.set5.shire;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.common.Phase;
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.actions.ActivateCardAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession;
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Shire
* Twilight Cost: 1
* Type: Possession • Hand Weapon
* Strength: +2
* Game Text: Bearer must be Frodo. Skirmish: Exert Frodo to make Smeagol strength +2 or Gollum strength -2.
*/
public class Card5_116 extends AbstractAttachableFPPossession {
public Card5_116() {
super(1, 2, 0, Culture.SHIRE, PossessionClass.HAND_WEAPON, "Sting", "Baggins Heirloom", true);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.frodo;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
&& PlayConditions.canExert(self, game, Filters.frodo)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.frodo));
action.appendEffect(
new ChooseActiveCardEffect(self, playerId, "Choose Smeagol or Gollum", Filters.gollumOrSmeagol) {
@Override
protected void cardSelected(LotroGame game, PhysicalCard card) {
if (card.getBlueprint().getTitle().equals("Smeagol"))
action.insertEffect(
new AddUntilEndOfPhaseModifierEffect(
new StrengthModifier(self, Filters.sameCard(card), 2)));
else
action.insertEffect(
new AddUntilEndOfPhaseModifierEffect(
new StrengthModifier(self, Filters.sameCard(card), -2)));
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,42 +0,0 @@
package com.gempukku.lotro.cards.set5.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.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.HealCharactersEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Shire
* Twilight Cost: 0
* Type: Event
* Game Text: Fellowship: Play Smeagol from your discard pile to heal each Ring-bound Hobbit twice.
*/
public class Card5_117 extends AbstractEvent {
public Card5_117() {
super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "You Must Help Us", Phase.FELLOWSHIP);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canPlayFromDiscard(self.getOwner(), game, Filters.smeagol);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.smeagol));
action.appendEffect(
new HealCharactersEffect(self, self.getOwner(), Filters.and(Race.HOBBIT, Keyword.RING_BOUND)));
action.appendEffect(
new HealCharactersEffect(self, self.getOwner(), Filters.and(Race.HOBBIT, Keyword.RING_BOUND)));
return action;
}
}

View File

@@ -26,18 +26,22 @@
strength: 3
vitality: 4
signet: Aragorn
resistance: 6
/*requires: {
}
resistance: 10
keyword: can start with ring
effects: [
{
}
{
}
]*/
{
type: activated
phase: fellowship
cost: {
type: addBurdens
amount: 1
}
effect: {
type: playCardFromDiscard
filter: choose(name(Sméagol))
}
}
]
gametext: <b>Ring-bearer (resistance 10).</b><br><b>Fellowship:</b> Add a burden to play Sméagol from your discard pile.
lore: We promises, yes I promise!... Good master, good Sméagol, gollum, gollum!'
promotext: ""
@@ -71,20 +75,23 @@
twilight: 0
type: Event
keywords: Regroup
/*requires: {
}
effects: {
type: event
requires: {
type: canSpot
filter: name(Sam)
}
cost: {
type: discard
filter: choose(or(name(Sméagol),name(Gollum)))
},
effect: [
{
type: removeBurdens
amount: 3
}
]
}*/
}
gametext: <b>Regroup:</b> Spot Sam and discard Sméagol or Gollum to remove 3 burdens.
lore: ...he'll come back, you'll see. The promise will hold yet a while. And he won't leave his Precious, anyway.'
promotext: ""
@@ -118,20 +125,20 @@
twilight: 0
type: Event
keywords: Skirmish
/*requires: {
}
effects: {
type: event
cost: {
type: addBurdens
amount: 3
},
effect: [
{
type: wound
filter: choose(minion,inSkirmishAgainst(companion,signet(Frodo)))
times: 2
}
]
}*/
}
gametext: <b>Skirmish:</b> Add 3 burdens to wound a minion skirmishing a companion who has the Frodo signet twice.
lore: Don't take the Precious to Him!... Keep it, nice master, and be kind to Sméagol.'
promotext: ""
@@ -165,17 +172,23 @@
twilight: 1
type: Condition
vitality: 1
/*requires: {
}
target: name(Sam)
effects: [
{
}
{
}
]*/
{
type: activatedTrigger
trigger: {
type: usesSpecialAbility
phase: regroup
}
cost: {
type: discard
filter: choose(or(name(Sméagol),name(Gollum)))
}
effect: {
type: cancelSpecialAbility
}
}
]
gametext: Plays on Sam.<br><b>Response:</b> If a regroup special ability is used, discard Sméagol or Gollum to cancel that action.
lore: What a hobbit needs with coney... is some herbs and roots, especially taters not to mention bread.'
promotext: ""
@@ -213,19 +226,39 @@
strength: 3
vitality: 4
signet: Aragorn
resistance: 6
resistance: 5
keywords: Ring-bound
/*requires: {
}
effects: [
{
type: modifier
modifier: {
type: cantBeOverwhelmedMultiplier
requires: [
{
type: canSpot
filter: name(Frodo)
}
{
type: canSpot
filter: name(Sméagol)
}
]
filter: self
multiplier: 3
}
}
{
type: trigger
optional: true
trigger: {
type: killed
filter: name(Frodo),ring bearer
}
effect: {
type: makeSelfRingBearer
}
}
{
}
]*/
]
gametext: <b>Ring-bound</b>.<br>While you can spot Frodo and Sméagol, Sam may not be overwhelmed unless his strength is tripled.<br><b>Response:</b> If Frodo is killed, make Sam the <b>Ring-bearer (resistance 5)</b>.
lore: Trust Sméagol now? Very, very good.'
promotext: ""
@@ -261,18 +294,36 @@
type: Possession
strength: 2
itemclass: Hand weapon
#target: title(Frodo)
/*requires: {
}
target: title(Frodo)
effects: [
{
}
{
}
]*/
{
type: activated
phase: skirmish
cost: {
type: exert
filter: bearer
}
effect: {
type: choice
texts: [
Make Sméagol strength +2
Make Gollum strength -2
]
effects: [
{
type: modifyStrength
filter: choose(name(Sméagol))
amount: 2
}
{
type: modifyStrength
filter: choose(name(Gollum))
amount: -2
}
]
}
}
]
gametext: Bearer must be Frodo.<br><b>Skirmish:</b> Exert Frodo to make Sméagol strength +2 or Gollum strength -2.
lore: This is Sting. You have seen it before once upon a time.'
promotext: ""
@@ -306,20 +357,20 @@
twilight: 0
type: Event
keywords: Fellowship
/*requires: {
}
effects: {
type: event
cost: {
type: playCardFromDiscard
filter: choose(name(Sméagol))
},
effect: [
{
type: heal
filter: all(ringBound,hobbit)
times: 2
}
]
}*/
}
gametext: <b>Fellowship:</b> Play Sméagol from your discard pile to heal each Ring-bound Hobbit twice.
lore: You will have to come with us, that's all, while we keep an eye on you.'
promotext: ""