Migrated Moria cards in set 3 to hjson

This commit is contained in:
MarcinSc
2024-04-11 14:16:26 +07:00
parent 33eb35edba
commit 14ff21a614
6 changed files with 145 additions and 258 deletions

View File

@@ -1,53 +0,0 @@
package com.gempukku.lotro.cards.set3.moria;
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.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
import com.gempukku.lotro.logic.effects.RevealRandomCardsFromHandEffect;
import java.util.List;
/**
* Set: Realms of Elf-lords
* Side: Shadow
* Culture: Moria
* Twilight Cost: 2
* Type: Event
* Game Text: Shadow: Spot a [MORIA] minion to reveal a card at random from the Free Peoples player's hand. Add (X),
* where X is the twilight cost of the card revealed.
*/
public class Card3_076 extends AbstractEvent {
public Card3_076() {
super(Side.SHADOW, 2, Culture.MORIA, "Dangerous Gamble", Phase.SHADOW);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return Filters.canSpot(game, Culture.MORIA, CardType.MINION);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, final PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new RevealRandomCardsFromHandEffect(playerId, game.getGameState().getCurrentPlayerId(), self, 1) {
@Override
protected void cardsRevealed(List<PhysicalCard> revealedCards) {
if (revealedCards.size() > 0) {
PhysicalCard revealedCard = revealedCards.get(0);
int twilightCost = revealedCard.getBlueprint().getTwilightCost();
action.appendEffect(
new AddTwilightEffect(self, twilightCost));
}
}
});
return action;
}
}

View File

@@ -1,46 +0,0 @@
package com.gempukku.lotro.cards.set3.moria;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Realms of Elf-lords
* Side: Shadow
* Culture: Moria
* Twilight Cost: 1
* Type: Condition
* Game Text: To play, spot a [MORIA] Orc. Plays to your support area. Each time the fellowship moves during
* the regroup phase, add (2).
*/
public class Card3_077 extends AbstractPermanent {
public Card3_077() {
super(Side.SHADOW, 1, CardType.CONDITION, Culture.MORIA, "Depths of Moria");
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return Filters.canSpot(game, Culture.MORIA, Race.ORC);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.moves(game, effectResult)
&& game.getGameState().getCurrentPhase() == Phase.REGROUP) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendEffect(
new AddTwilightEffect(self, 2));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,47 +0,0 @@
package com.gempukku.lotro.cards.set3.moria;
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.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Realms of Elf-lords
* Side: Shadow
* Culture: Moria
* Twilight Cost: 1
* Type: Event
* Game Text: Search. Skirmish: Spot 2 [SHIRE] companions to make a [MORIA] minion damage +1.
*/
public class Card3_078 extends AbstractEvent {
public Card3_078() {
super(Side.SHADOW, 1, Culture.MORIA, "Hide and Seek", Phase.SKIRMISH);
addKeyword(Keyword.SEARCH);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, 2, Culture.SHIRE, CardType.COMPANION);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, final PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseActiveCardEffect(self, playerId, "Choose MORIA minion", Culture.MORIA, CardType.MINION) {
@Override
protected void cardSelected(LotroGame game, PhysicalCard card) {
action.appendEffect(
new AddUntilEndOfPhaseModifierEffect(
new KeywordModifier(self, Filters.sameCard(card), Keyword.DAMAGE)));
}
});
return action;
}
}

View File

@@ -1,37 +0,0 @@
package com.gempukku.lotro.cards.set3.moria;
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.ChooseAndWoundCharactersEffect;
/**
* Set: Realms of Elf-lords
* Side: Shadow
* Culture: Moria
* Twilight Cost: 0
* Type: Event
* Game Text: Archery: Spot a [MORIA] Orc and a [SAURON] Orc to wound an archer.
*/
public class Card3_079 extends AbstractEvent {
public Card3_079() {
super(Side.SHADOW, 0, Culture.MORIA, "Malice", Phase.ARCHERY);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return Filters.canSpot(game, Culture.MORIA, Race.ORC)
&& Filters.canSpot(game, Culture.SAURON, Race.ORC);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Keyword.ARCHER));
return action;
}
}

View File

@@ -1,75 +0,0 @@
package com.gempukku.lotro.cards.set3.moria;
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.CostToEffectAction;
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.PreventableEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.UnrespondableEffect;
import java.util.Collections;
/**
* Set: Realms of Elf-lords
* Side: Shadow
* Culture: Moria
* Twilight Cost: 0
* Type: Event
* Game Text: Maneuver: Spot a [MORIA] minion to wound Boromir 3 times. The Free Peoples player may discard 2 Free
* Peoples possessions to prevent this.
*/
public class Card3_080 extends AbstractEvent {
public Card3_080() {
super(Side.SHADOW, 0, Culture.MORIA, "Such a Little Thing", Phase.MANEUVER);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return Filters.canSpot(game, Culture.MORIA, CardType.MINION);
}
@Override
public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new PreventableEffect(action,
new UnrespondableEffect() {
@Override
public String getText(LotroGame game) {
return "Wound Boromir 3 times";
}
@Override
protected void doPlayEffect(LotroGame game) {
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.boromir));
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.boromir));
action.appendEffect(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.boromir));
}
}, Collections.singletonList(game.getGameState().getCurrentPlayerId()),
new PreventableEffect.PreventionCost() {
@Override
public Effect createPreventionCostForPlayer(CostToEffectAction subAction, String playerId) {
return new ChooseAndDiscardCardsFromPlayEffect(subAction, playerId, 2, 2, Side.FREE_PEOPLE, CardType.POSSESSION) {
@Override
public String getText(LotroGame game) {
return "Discard 2 Free People possessions";
}
};
}
}
));
return action;
}
}

View File

@@ -0,0 +1,145 @@
{
3_76: {
title: Dangerous Gamble
side: shadow
culture: Moria
twilight: 2
type: event
keyword: Shadow
effects: {
type: event
requires: {
type: canSpot
filter: culture(moria),minion
}
effect: [
{
type: revealRandomCardsFromHand
forced: true
hand: fp
memorize: revealedCard
}
{
type: addTwilight
amount: {
type: twilightCostInMemory
memory: revealedCard
}
}
]
}
}
3_77: {
title: Depths of Moria
side: shadow
culture: Moria
twilight: 1
type: condition
keyword: Support Area
effects: [
{
type: toPlay
requires: {
type: canSpot
filter: culture(moria),orc
}
}
{
type: trigger
trigger: {
type: moves
}
requires: {
type: phase
phase: regroup
}
effect: {
type: addTwilight
amount: 2
}
}
]
}
3_78: {
title: Hide and Seek
side: shadow
culture: Moria
twilight: 1
type: event
keyword:
[
Skirmish
Search
]
effects: {
type: event
requires: {
type: canSpot
count: 2
filter: culture(shire),companion
}
effect: {
type: addKeyword
filter: choose(culture(moria),minion)
keyword: damage
amount: 1
}
}
}
3_79: {
title: Malice
side: shadow
culture: Moria
twilight: 0
type: event
keyword: Archery
effects: {
type: event
requires: [
{
type: canSpot
filter: culture(moria),orc
}
{
type: canSpot
filter: culture(sauron),orc
}
]
effect: {
type: wound
filter: choose(archer)
}
}
}
3_80: {
title: Such a Little Thing
side: shadow
culture: Moria
twilight: 0
type: event
keyword: Maneuver
effects: {
type: event
requires: {
type: canSpot
filter: culture(moria),minion
}
effect: {
type: preventable
text: Would you like to discard 2 FP possession to prevent wounding Boromir 3 times?
player: fp
cost: {
type: discard
filter: choose(side(free),possession)
count: 2
}
effect: {
type: wound
filter: choose(name(Boromir))
times: 3
}
}
}
}
}