Migrated Dunland cards in set 5 to hjson

This commit is contained in:
MarcinSc
2024-04-21 23:17:44 +07:00
parent aba90bdac9
commit b75e975092
13 changed files with 131 additions and 592 deletions

View File

@@ -1,57 +0,0 @@
package com.gempukku.lotro.cards.set5.dunland;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
import com.gempukku.lotro.common.Culture;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Shadow
* Culture: Dunland
* Twilight Cost: 1
* Type: Minion • Man
* Strength: 9
* Vitality: 1
* Site: 3
* Game Text: When you play this minion, the Free Peoples player may discard 2 cards from hand to discard him.
*/
public class Card5_001 extends AbstractMinion {
public Card5_001() {
super(1, 9, 1, 3, Race.MAN, Culture.DUNLAND, "Dunlending Rampager");
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(final LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)
&& game.getGameState().getHand(game.getGameState().getCurrentPlayerId()).size() >= 2) {
final RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendCost(
new PlayoutDecisionEffect(game.getGameState().getCurrentPlayerId(),
new MultipleChoiceAwaitingDecision(1, "Do you want to discard 2 cards from hand to discard this minion?", new String[]{"Yes", "No"}) {
@Override
protected void validDecisionMade(int index, String result) {
if (result.equals("Yes")) {
action.insertCost(
new ChooseAndDiscardCardsFromHandEffect(action, game.getGameState().getCurrentPlayerId(), false, 2));
action.appendEffect(
new SelfDiscardEffect(self));
}
}
}));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,57 +0,0 @@
package com.gempukku.lotro.cards.set5.dunland;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
import com.gempukku.lotro.common.Culture;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Shadow
* Culture: Dunland
* Twilight Cost: 2
* Type: Minion • Man
* Strength: 10
* Vitality: 1
* Site: 3
* Game Text: When you play this minion, the Free Peoples player may discard 2 cards from hand to discard him.
*/
public class Card5_002 extends AbstractMinion {
public Card5_002() {
super(2, 10, 1, 3, Race.MAN, Culture.DUNLAND, "Dunlending Renegade");
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(final LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)
&& game.getGameState().getHand(game.getGameState().getCurrentPlayerId()).size() >= 2) {
final RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendCost(
new PlayoutDecisionEffect(game.getGameState().getCurrentPlayerId(),
new MultipleChoiceAwaitingDecision(1, "Do you want to discard 2 cards from hand to discard this minion?", new String[]{"Yes", "No"}) {
@Override
protected void validDecisionMade(int index, String result) {
if (result.equals("Yes")) {
action.insertCost(
new ChooseAndDiscardCardsFromHandEffect(action, game.getGameState().getCurrentPlayerId(), false, 2));
action.appendEffect(
new SelfDiscardEffect(self));
}
}
}));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,69 +0,0 @@
package com.gempukku.lotro.cards.set5.dunland;
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.CostToEffectAction;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
import com.gempukku.lotro.logic.effects.PreventableEffect;
import com.gempukku.lotro.logic.effects.ShuffleCardsFromHandIntoDeckEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.UnrespondableEffect;
import java.util.HashSet;
/**
* Set: Battle of Helm's Deep
* Side: Shadow
* Culture: Dunland
* Twilight Cost: 1
* Type: Event
* Game Text: Shadow: Spot 3 [DUNLAND] minions to shuffle your hand into your draw deck and draw 8 cards.
* The Free Peoples player may discard 3 cards from hand to prevent this.
*/
public class Card5_003 extends AbstractEvent {
public Card5_003() {
super(Side.SHADOW, 1, Culture.DUNLAND, "Leaping Blaze", Phase.SHADOW);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, 3, Culture.DUNLAND, CardType.MINION);
}
@Override
public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, final PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new PreventableEffect(action,
new UnrespondableEffect() {
@Override
protected void doPlayEffect(LotroGame game) {
action.appendEffect(
new ShuffleCardsFromHandIntoDeckEffect(self, playerId, new HashSet<>(game.getGameState().getHand(playerId))));
action.appendEffect(
new DrawCardsEffect(action, playerId, 8));
}
@Override
public String getText(LotroGame game) {
return "Shuffle hand into draw deck and draw 8 cards";
}
}, game.getGameState().getCurrentPlayerId(),
new PreventableEffect.PreventionCost() {
@Override
public Effect createPreventionCostForPlayer(CostToEffectAction subAction, String playerId) {
return new ChooseAndDiscardCardsFromHandEffect(subAction, playerId, false, 3);
}
}
));
return action;
}
}

View File

@@ -1,66 +0,0 @@
package com.gempukku.lotro.cards.set5.dunland;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
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: Shadow
* Culture: Dunland
* Twilight Cost: 6
* Type: Minion • Man
* Strength: 18
* Vitality: 2
* Site: 3
* Game Text: The twilight cost of this minion is -2 during the skirmish phase. When you play this minion, the Free
* Peoples player may discard 4 cards from hand to discard it.
*/
public class Card5_004 extends AbstractMinion {
public Card5_004() {
super(6, 18, 2, 3, Race.MAN, Culture.DUNLAND, "Wild Men of the Hills");
}
@Override
public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) {
if (game.getGameState().getCurrentPhase() == Phase.SKIRMISH)
return -2;
return 0;
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(final LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)
&& game.getGameState().getHand(game.getGameState().getCurrentPlayerId()).size() >= 4) {
final RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendCost(
new PlayoutDecisionEffect(game.getGameState().getCurrentPlayerId(),
new MultipleChoiceAwaitingDecision(1, "Do you want to discard 4 cards from hand to discard this minion?", new String[]{"Yes", "No"}) {
@Override
protected void validDecisionMade(int index, String result) {
if (result.equals("Yes")) {
action.insertCost(
new ChooseAndDiscardCardsFromHandEffect(action, game.getGameState().getCurrentPlayerId(), false, 4));
action.appendEffect(
new SelfDiscardEffect(self));
}
}
}));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,42 +0,0 @@
package com.gempukku.lotro.cards.set5.dwarven;
import com.gempukku.lotro.common.*;
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.ChooseAndWoundCharactersEffect;
import com.gempukku.lotro.logic.effects.SetUpConsecutiveActionEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Dwarven
* Twilight Cost: 0
* Type: Event
* Game Text: Maneuver: Exert a Dwarf to wound a minion. You may take the next maneuver action.
*/
public class Card5_005 extends AbstractEvent {
public Card5_005() {
super(Side.FREE_PEOPLE, 0, Culture.DWARVEN, "Baruk Khazâd", Phase.MANEUVER);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canExert(self, game, Race.DWARF);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.DWARF));
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.MINION));
action.appendEffect(
new SetUpConsecutiveActionEffect());
return action;
}
}

View File

@@ -1,54 +0,0 @@
package com.gempukku.lotro.cards.set5.dwarven;
import com.gempukku.lotro.common.*;
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.DrawCardsEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Dwarven
* Twilight Cost: 0
* Type: Event
* Game Text: Fellowship: Spot a Dwarf to Draw a card or play a [DWARVEN] condition from your discard pile.
*/
public class Card5_006 extends AbstractEvent {
public Card5_006() {
super(Side.FREE_PEOPLE, 0, Culture.DWARVEN, "Defending the Keep", Phase.FELLOWSHIP);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Race.DWARF);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
List<Effect> possibleEffects = new LinkedList<>();
possibleEffects.add(
new DrawCardsEffect(action, playerId, 1));
possibleEffects.add(
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Culture.DWARVEN, CardType.CONDITION) {
@Override
public String getText(LotroGame game) {
return "Play a DWARVEN condition from your discard pile";
}
});
action.appendEffect(
new ChoiceEffect(action, playerId, possibleEffects));
return action;
}
}

View File

@@ -1,45 +0,0 @@
package com.gempukku.lotro.cards.set5.dwarven;
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.cardtype.AbstractCompanion;
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
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: Dwarven
* Twilight Cost: 2
* Type: Companion • Dwarf
* Strength: 6
* Vitality: 3
* Resistance: 6
* Signet: Theoden
* Game Text: Damage +1. Each time Gimli wins a skirmish, you may wound a minion assigned to skirmish
* an unbound companion.
*/
public class Card5_007 extends AbstractCompanion {
public Card5_007() {
super(2, 6, 3, 6, Culture.DWARVEN, Race.DWARF, Signet.THEODEN, "Gimli", "Skilled Defender", true);
addKeyword(Keyword.DAMAGE, 1);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.winsSkirmish(game, effectResult, self)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.MINION, Filters.assignedToSkirmishAgainst(Filters.unboundCompanion)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,45 +0,0 @@
package com.gempukku.lotro.cards.set5.dwarven;
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.AbstractPermanent;
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.modifiers.RemoveKeywordModifier;
import com.gempukku.lotro.logic.modifiers.condition.LocationCondition;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Dwarven
* Twilight Cost: 2
* Type: Possession
* Game Text: Plays to your support area. Maneuver: Exert a Dwarf companion to make each minion at a battleground lose
* all damage bonuses until the regroup phase.
*/
public class Card5_008 extends AbstractPermanent {
public Card5_008() {
super(Side.FREE_PEOPLE, 2, CardType.POSSESSION, Culture.DWARVEN, "Horn of Helm", null, true);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)
&& PlayConditions.canExert(self, game, Race.DWARF, CardType.COMPANION)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.DWARF, CardType.COMPANION));
action.appendEffect(
new AddUntilStartOfPhaseModifierEffect(
new RemoveKeywordModifier(self, CardType.MINION, new LocationCondition(Keyword.BATTLEGROUND), Keyword.DAMAGE), Phase.REGROUP));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,72 +0,0 @@
package com.gempukku.lotro.cards.set5.dwarven;
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.IncrementPhaseLimitEffect;
import com.gempukku.lotro.logic.effects.PutCardFromStackedIntoHandEffect;
import com.gempukku.lotro.logic.effects.StackTopCardsFromDeckEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardStackedCardsEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseStackedCardsEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Battle of Helm's Deep
* Side: Free
* Culture: Dwarven
* Twilight Cost: 2
* Type: Condition
* Game Text: Plays to your support area. Maneuver: Stack the top card from your draw deck here (limit once per phase).
* Maneuver: Spot a Dwarf and discard a card stacked on a [DWARVEN] condition to take a Free Peoples card stacked here
* into hand.
*/
public class Card5_009 extends AbstractPermanent {
public Card5_009() {
super(Side.FREE_PEOPLE, 2, CardType.CONDITION, Culture.DWARVEN, "More to My Liking", null, true);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)) {
List<ActivateCardAction> actions = new LinkedList<>();
if (PlayConditions.checkPhaseLimit(game, self, 1)) {
ActivateCardAction action = new ActivateCardAction(self);
action.setText("Stack card here");
action.appendCost(
new IncrementPhaseLimitEffect(self, 1));
action.appendEffect(
new StackTopCardsFromDeckEffect(self, playerId, 1, self));
actions.add(action);
}
if (PlayConditions.canSpot(game, Race.DWARF)
&& Filters.countActive(game, Culture.DWARVEN, CardType.CONDITION, Filters.hasStacked(Filters.any)) > 0) {
final ActivateCardAction action = new ActivateCardAction(self);
action.setText("Take Free Peoples stacked here into hand");
action.appendCost(
new ChooseAndDiscardStackedCardsEffect(action, playerId, 1, 1, Filters.and(Culture.DWARVEN, CardType.CONDITION), Filters.any));
action.appendEffect(
new ChooseStackedCardsEffect(action, playerId, 1, 1, self, Side.FREE_PEOPLE) {
@Override
protected void cardsChosen(LotroGame game, Collection<PhysicalCard> stackedCards) {
for (PhysicalCard stackedCard : stackedCards)
action.insertEffect(
new PutCardFromStackedIntoHandEffect(stackedCard));
}
});
actions.add(action);
}
return actions;
}
return null;
}
}

View File

@@ -22,20 +22,22 @@
twilight: 0
type: Event
keywords: Maneuver
/*requires: {
}
effects: {
type: event
cost: {
type: exert
filter: choose(dwarf)
},
effect: [
{
}
{
type: wound
filter: choose(minion)
}
{
type: canPlayNextAction
}
]
}*/
}
gametext: <b>Maneuver:</b> Exert a Dwarf to wound a minion. You may take the next maneuver action.
lore: ...a small dark figure that none had observed sprang out of the shadows and gave a hoarse shout....
promotext: ""
@@ -69,20 +71,31 @@
twilight: 0
type: Event
keywords: Fellowship
/*requires: {
}
effects: {
type: event
cost: {
},
requires: {
type: canSpot
filter: dwarf
}
effect: [
{
}
{
type: choice
texts: [
Draw a card
Play a {dwarven} condition from your discard pile
]
effects: [
{
type: drawCards
}
{
type: playCardFromDiscard
filter: choose(culture(dwarven),condition)
}
]
}
]
}*/
}
gametext: <b>Fellowship:</b> Spot a Dwarf to draw a card or play a [dwarven] condition from your discard pile.
lore: I have fought many wars, master Dwarf. I know how to defend my own Keep.'
promotext: ""
@@ -122,17 +135,18 @@
signet: Theoden
resistance: 6
keywords: Damage+1
/*requires: {
effects: {
type: trigger
optional: true
trigger: {
type: winsSkirmish
filter: self
}
effect: {
type: wound
filter: choose(minion,assignedToSkirmish(unbound,companion))
}
}
effects: [
{
}
{
}
]*/
gametext: <b>Damage +1</b>.<br>Each time Gimli wins a skirmish, you may wound a minion assigned to skirmish an unbound companion.
lore: Despite Théoden's preparations, Gimli found it necessary to warn him of the advancing Uruk army.
promotext: ""
@@ -166,17 +180,29 @@
twilight: 2
type: Possession
keywords: Support Area
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: activated
phase: maneuver
cost: {
type: exert
filter: choose(dwarf,companion)
}
effect: {
type: addModifier
modifier: {
type: removeKeyword
filter: minion
requires: {
type: location
filter: battleground
}
keyword: damage
}
until: regroup
}
}
]
gametext: Plays to your support area.<br><b>Maneuver:</b> Exert a Dwarf companion to make each minion at a battleground lose all <b>damage</b> bonuses until the regroup phase.
lore: ...sudden and terrible, from the tower above, the sound of the great horn of Helm rang out.
promotext: ""
@@ -210,17 +236,36 @@
twilight: 2
type: Condition
keywords: Support Area
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: activated
phase: maneuver
text: Stack top card from draw deck
limitPerPhase: 1
effect: {
type: stackTopCardsOfDrawDeck
where: self
}
}
{
type: activated
phase: maneuver
text: Take a Free Peoples card stacked here into hand
requires: {
type: canSpot
filter: dwarf
}
cost: {
type: discardStackedCards
on: culture(dwarven),condition
}
effect: {
type: putStackedCardsIntoHand
filter: choose(side(free people))
on: self
}
}
]
gametext: Plays to your support area.<br><b>Maneuver:</b> Stack the top card from your draw deck here (limit once per phase).<br><b>Maneuver:</b> Spot a Dwarf and discard a card stacked on a [dwarven] condition to take a Free Peoples card stacked here into hand.
lore: This country has tough bones.'
promotext: ""
@@ -254,20 +299,22 @@
twilight: 0
type: Event
keywords: Maneuver
/*requires: {
}
effects: {
type: event
cost: {
type: exert
filter: choose(dwarf)
},
effect: [
{
}
{
type: wound
filter: choose(minion)
}
{
type: canPlayNextAction
}
]
}*/
}
gametext: <b>Maneuver:</b> Exert a Dwarf to wound a minion. You may take the next maneuver action.
lore: Axes of the Dwarves! cried Gimli in the secret tongue of his kin.
promotext: ""

View File

@@ -1,28 +0,0 @@
{
5_7: {
title: Gimli
subtitle: Skilled Defender
unique: true
culture: dwarven
twilight: 2
type: companion
race: dwarf
strength: 6
vitality: 3
resistance: 6
signet: theoden
keyword: damage+1
effects: {
type: trigger
optional: true
trigger: {
type: winsSkirmish
filter: self
}
effect: {
type: wound
filter: choose(minion,assignedToSkirmish(unbound,companion))
}
}
}
}

View File

@@ -27,7 +27,8 @@ public class EffectAppenderFactory {
effectAppenderProducers.put("cancelevent", new CancelEvent());
effectAppenderProducers.put("cancelskirmish", new CancelSkirmish());
effectAppenderProducers.put("cancelskirmishbetween", new CancelSkirmishBetween());
effectAppenderProducers.put("cancelspecialability", new CancelSpecialAbility());
effectAppenderProducers.put("canplaynextaction", new CanPlayNextAction());
effectAppenderProducers.put("canplaynextaction", new CanPlayNextAction());
effectAppenderProducers.put("choice", new Choice());
effectAppenderProducers.put("chooseactivecards", new ChooseActiveCards());
effectAppenderProducers.put("chooseakeyword", new ChooseAKeyword());

View File

@@ -0,0 +1,26 @@
package com.gempukku.lotro.cards.build.field.effect.appender;
import com.gempukku.lotro.cards.build.ActionContext;
import com.gempukku.lotro.cards.build.CardGenerationEnvironment;
import com.gempukku.lotro.cards.build.InvalidCardDefinitionException;
import com.gempukku.lotro.cards.build.field.FieldUtils;
import com.gempukku.lotro.cards.build.field.effect.EffectAppender;
import com.gempukku.lotro.cards.build.field.effect.EffectAppenderProducer;
import com.gempukku.lotro.logic.actions.CostToEffectAction;
import com.gempukku.lotro.logic.effects.SetUpConsecutiveActionEffect;
import com.gempukku.lotro.logic.timing.Effect;
import org.json.simple.JSONObject;
public class CanPlayNextAction implements EffectAppenderProducer {
@Override
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
FieldUtils.validateAllowedFields(effectObject);
return new DelayedAppender() {
@Override
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
return new SetUpConsecutiveActionEffect();
}
};
}
}