Continued cleanup and fixes
This commit is contained in:
@@ -163,6 +163,7 @@
|
||||
optional: true
|
||||
trigger: {
|
||||
type: discardFromHandBy
|
||||
player: you
|
||||
by: side(shadow)
|
||||
forced: true
|
||||
}
|
||||
|
||||
@@ -178,6 +178,9 @@
|
||||
select: choose(minion,notAssignedToSkirmish)
|
||||
}
|
||||
}
|
||||
{
|
||||
type: consumeSurplusDamage
|
||||
}
|
||||
]
|
||||
}
|
||||
gametext: If a Dwarf kills a minion in a skirmish and that minion did not take all wounds caused by that Dwarf's damage bonus, assign those remaining wounds to minions not assigned to a skirmish.
|
||||
|
||||
@@ -168,13 +168,9 @@
|
||||
keywords: Plains
|
||||
effects: [
|
||||
{
|
||||
type: modifier
|
||||
type: controlledSiteModifier
|
||||
modifier: {
|
||||
type: modifyStrength
|
||||
requires: {
|
||||
type: canSpot
|
||||
filter: self,controlledByShadowPlayer
|
||||
}
|
||||
filter: hunter,minion
|
||||
amount: 1
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ public class EffectFieldProcessor implements FieldProcessor {
|
||||
effectProcessors.put("activatedindiscard", new ActivatedInDiscardEffectProcessor());
|
||||
effectProcessors.put("aidcost", new AidCost());
|
||||
effectProcessors.put("assignmentcost", new AssignmentCost());
|
||||
effectProcessors.put("controlledsitemodifier", new ControlledSiteModifier());
|
||||
effectProcessors.put("copycard", new CopyCard());
|
||||
effectProcessors.put("deckbuildingrestriction", new DeckBuildingRestrictionGameTextProcessor());
|
||||
effectProcessors.put("discardedfromplaytrigger", new DiscardedFromPlayTriggerEffectProcessor());
|
||||
|
||||
@@ -14,8 +14,8 @@ import com.gempukku.lotro.logic.decisions.YesNoDecision;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
|
||||
import com.gempukku.lotro.logic.effects.StackActionEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.CantBeAssignedToSkirmishModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Condition;
|
||||
import com.gempukku.lotro.logic.modifiers.FreePeoplePlayerMayNotAssignCharacterModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.PaidAssignmentCostModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.condition.AndCondition;
|
||||
@@ -44,7 +44,7 @@ public class AssignmentCost implements EffectProcessor {
|
||||
new ModifierSource() {
|
||||
@Override
|
||||
public Modifier getModifier(ActionContext actionContext) {
|
||||
return new FreePeoplePlayerMayNotAssignCharacterModifier(actionContext.getSource(),
|
||||
return new CantBeAssignedToSkirmishModifier(actionContext.getSource(),
|
||||
new AndCondition(
|
||||
RequirementCondition.createCondition(requirements, actionContext),
|
||||
new Condition() {
|
||||
@@ -53,7 +53,7 @@ public class AssignmentCost implements EffectProcessor {
|
||||
return !game.getModifiersQuerying().assignmentCostWasPaid(game, actionContext.getSource());
|
||||
}
|
||||
}
|
||||
), actionContext.getSource());
|
||||
), actionContext.getGame().getGameState().getCurrentPlayerId(), actionContext.getSource());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect;
|
||||
|
||||
import com.gempukku.lotro.cards.build.BuiltLotroCardBlueprint;
|
||||
import com.gempukku.lotro.cards.build.CardGenerationEnvironment;
|
||||
import com.gempukku.lotro.cards.build.InvalidCardDefinitionException;
|
||||
import com.gempukku.lotro.cards.build.ModifierSource;
|
||||
import com.gempukku.lotro.cards.build.field.EffectProcessor;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class ControlledSiteModifier implements EffectProcessor {
|
||||
@Override
|
||||
public void processEffect(JSONObject value, BuiltLotroCardBlueprint blueprint, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "modifier");
|
||||
|
||||
JSONObject jsonObject = (JSONObject) value.get("modifier");
|
||||
final ModifierSource modifier = environment.getModifierSourceFactory().getModifier(jsonObject, environment);
|
||||
|
||||
blueprint.appendControlledSiteModifier(modifier);
|
||||
}
|
||||
}
|
||||
@@ -45,6 +45,7 @@ public class EffectAppenderFactory {
|
||||
effectAppenderProducers.put("choosehowmanytwilighttokenstospot", new ChooseHowManyTwilightTokensToSpot());
|
||||
effectAppenderProducers.put("chooseyesorno", new ChooseYesOrNo());
|
||||
effectAppenderProducers.put("conditional", new ConditionalEffect());
|
||||
effectAppenderProducers.put("consumesurplusdamage", new ConsumeSurplusDamage());
|
||||
effectAppenderProducers.put("corruptringbearer", new CorruptRingBearer());
|
||||
effectAppenderProducers.put("costtoeffect", new CostToEffect());
|
||||
effectAppenderProducers.put("disablearcherytotalcontribution", new DisableArcheryTotalContribution());
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
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.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
||||
import com.gempukku.lotro.logic.actions.ResolveSkirmishDamageAction;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.UnrespondableEffect;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class ConsumeSurplusDamage 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 UnrespondableEffect() {
|
||||
@Override
|
||||
protected void doPlayEffect(LotroGame game) {
|
||||
final ResolveSkirmishDamageAction resolveSkirmishDamageAction = game.getActionsEnvironment().findTopmostActionOfType(ResolveSkirmishDamageAction.class);
|
||||
if (resolveSkirmishDamageAction != null
|
||||
&& resolveSkirmishDamageAction.getRemainingDamage() > 0) {
|
||||
resolveSkirmishDamageAction.consumeRemainingDamage();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ 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.AddUntilEndOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.CantPlayPhaseEventsOrphaseSpecialAbilitiesModifier;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -21,7 +21,7 @@ public class EndPhase implements EffectAppenderProducer {
|
||||
@Override
|
||||
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||
return new AddUntilEndOfPhaseModifierEffect(
|
||||
new PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(actionContext.getSource(), null, actionContext.getGame().getGameState().getCurrentPhase()));
|
||||
new CantPlayPhaseEventsOrphaseSpecialAbilitiesModifier(actionContext.getSource(), null, actionContext.getGame().getGameState().getCurrentPhase(), null));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,8 +6,6 @@ import com.gempukku.lotro.cards.build.field.effect.appender.resolver.PlayerResol
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.logic.modifiers.CantUseSpecialAbilitiesModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.PlayerCantUseCardSpecialAbilitiesModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.PlayersCantUseCardSpecialAbilitiesModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class CantUseSpecialAbilities implements ModifierSourceProducer {
|
||||
|
||||
@@ -39,8 +39,8 @@ public class DiscardFromHandBy implements TriggerCheckerProducer {
|
||||
}
|
||||
if (result && playerSource != null) {
|
||||
// Need to check if it was that player discarding the card
|
||||
final String performingPlayer = ((DiscardCardFromHandResult) actionContext.getEffectResult()).getSource().getOwner();
|
||||
if (performingPlayer == null || !performingPlayer.equals(playerSource.getPlayer(actionContext)))
|
||||
final String handPlayerId = ((DiscardCardFromHandResult) actionContext.getEffectResult()).getHandPlayerId();
|
||||
if (handPlayerId == null || !handPlayerId.equals(playerSource.getPlayer(actionContext)))
|
||||
result = false;
|
||||
}
|
||||
if (result && memorize != null) {
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
|
||||
public class FPSkirmishResistanceStrengthOverrideModifier extends AbstractModifier {
|
||||
private static final Evaluator _resistanceEvaluator =
|
||||
new Evaluator() {
|
||||
@Override
|
||||
public int evaluateExpression(LotroGame game, PhysicalCard cardAffected) {
|
||||
return game.getModifiersQuerying().getResistance(game, cardAffected);
|
||||
}
|
||||
};
|
||||
|
||||
public FPSkirmishResistanceStrengthOverrideModifier(PhysicalCard source, Filterable affectFilter, Condition condition) {
|
||||
super(source, null, affectFilter, condition, ModifierEffect.SKIRMISH_STRENGTH_EVALUATOR_MODIFIER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(LotroGame game, PhysicalCard self) {
|
||||
return "Uses resistance instead of strength when resolving skirmish";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Evaluator getFpSkirmishStrengthOverrideEvaluator(LotroGame game, PhysicalCard fpCharacter) {
|
||||
return _resistanceEvaluator;
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
|
||||
public class FPSkirmishVitalityStrengthOverrideModifier extends AbstractModifier {
|
||||
private static final Evaluator _vitalityEvaluator =
|
||||
(game, cardAffected) -> game.getModifiersQuerying().getVitality(game, cardAffected);
|
||||
|
||||
public FPSkirmishVitalityStrengthOverrideModifier(PhysicalCard source, Filterable affectFilter, Condition condition) {
|
||||
super(source, null, affectFilter, condition, ModifierEffect.SKIRMISH_STRENGTH_EVALUATOR_MODIFIER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(LotroGame game, PhysicalCard self) {
|
||||
return "Uses vitality instead of strength when resolving skirmish";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Evaluator getFpSkirmishStrengthOverrideEvaluator(LotroGame game, PhysicalCard fpCharacter) {
|
||||
return _vitalityEvaluator;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
|
||||
public class FreePeoplePlayerMayNotAssignCharacterModifier extends AbstractModifier {
|
||||
public FreePeoplePlayerMayNotAssignCharacterModifier(PhysicalCard source, Condition condition, Filterable affectFilter) {
|
||||
super(source, "Free people player may not assign character to skirmish", affectFilter, condition, ModifierEffect.ASSIGNMENT_MODIFIER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPreventedFromBeingAssignedToSkirmish(LotroGame game, Side sidePlayer, PhysicalCard card) {
|
||||
if (sidePlayer == Side.FREE_PEOPLE)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.filters.Filter;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
|
||||
public class PlayerCantUseCardSpecialAbilitiesModifier extends AbstractModifier {
|
||||
private final String playerId;
|
||||
private final Filter _sourceFilters;
|
||||
|
||||
public PlayerCantUseCardSpecialAbilitiesModifier(PhysicalCard source, String playerId, Condition condition, Filterable... sourceFilters) {
|
||||
super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER);
|
||||
this.playerId = playerId;
|
||||
_sourceFilters = Filters.and(sourceFilters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAction(LotroGame game, String performingPlayer, Action action) {
|
||||
if (action.getType() == Action.Type.SPECIAL_ABILITY
|
||||
&& _sourceFilters.accepts(game, action.getActionSource())
|
||||
&& performingPlayer.equals(playerId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
|
||||
public class PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier extends AbstractModifier {
|
||||
private final Phase _phase;
|
||||
|
||||
public PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Phase phase) {
|
||||
super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER);
|
||||
_phase = phase;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAction(LotroGame game, String performingPlayer, Action action) {
|
||||
if ((action.getType() == Action.Type.PLAY_CARD || action.getType() == Action.Type.SPECIAL_ABILITY)
|
||||
&& action.getActionTimeword() == _phase)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.filters.Filter;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
|
||||
public class PlayersCantUseCardSpecialAbilitiesModifier extends AbstractModifier {
|
||||
private final Filter _sourceFilters;
|
||||
|
||||
public PlayersCantUseCardSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Filterable... sourceFilters) {
|
||||
super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER);
|
||||
_sourceFilters = Filters.and(sourceFilters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAction(LotroGame game, String performingPlayer, Action action) {
|
||||
if (action.getType() == Action.Type.SPECIAL_ABILITY
|
||||
&& _sourceFilters.accepts(game, action.getActionSource()))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
|
||||
public class ShadowSkirmishVitalityStrengthOverrideModifier extends AbstractModifier {
|
||||
private static final Evaluator _vitalityEvaluator =
|
||||
(game, cardAffected) -> game.getModifiersQuerying().getVitality(game, cardAffected);
|
||||
|
||||
public ShadowSkirmishVitalityStrengthOverrideModifier(PhysicalCard source, Filterable affectFilter, Condition condition) {
|
||||
super(source, null, affectFilter, condition, ModifierEffect.SKIRMISH_STRENGTH_EVALUATOR_MODIFIER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(LotroGame game, PhysicalCard self) {
|
||||
return "Uses vitality instead of strength when resolving skirmish";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Evaluator getShadowSkirmishStrengthOverrideEvaluator(LotroGame game, PhysicalCard fpCharacter) {
|
||||
return _vitalityEvaluator;
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,12 @@ import java.util.Objects;
|
||||
public class TriggerConditions {
|
||||
public static boolean startOfPhase(LotroGame game, EffectResult effectResult, Phase phase) {
|
||||
return (effectResult.getType() == EffectResult.Type.START_OF_PHASE
|
||||
&& game.getGameState().getCurrentPhase() == phase);
|
||||
&& ((StartOfPhaseResult) effectResult).getPhase() == phase || phase == null);
|
||||
}
|
||||
|
||||
public static boolean endOfPhase(LotroGame game, EffectResult effectResult, Phase phase) {
|
||||
return (effectResult.getType() == EffectResult.Type.END_OF_PHASE
|
||||
&& (game.getGameState().getCurrentPhase() == phase || phase == null));
|
||||
&& ((EndOfPhaseResult) effectResult).getPhase() == phase || phase == null);
|
||||
}
|
||||
|
||||
public static boolean startOfTurn(LotroGame game, EffectResult effectResult) {
|
||||
|
||||
@@ -9,7 +9,8 @@ import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class Card_01_311_Tests
|
||||
{
|
||||
@@ -64,18 +65,22 @@ public class Card_01_311_Tests
|
||||
assertEquals(Signet.ARAGORN, card.getBlueprint().getSignet());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void SamTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
@Test
|
||||
public void samPicksUpTheRing() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
|
||||
var sam = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCharToTable(sam);
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
|
||||
assertEquals(2, scn.GetTwilight());
|
||||
PhysicalCardImpl frodo = scn.GetRingBearer();
|
||||
scn.AddWoundsToChar(frodo, 4);
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
|
||||
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||
scn.FreepsAcceptOptionalTrigger();
|
||||
|
||||
assertEquals(scn.GetRingBearer(), sam);
|
||||
assertEquals(Zone.DEAD, frodo.getZone());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.gempukku.lotro.cards.official.set04;
|
||||
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.game.CardNotFoundException;
|
||||
import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class Card_04_001_Tests
|
||||
{
|
||||
@@ -23,7 +23,7 @@ public class Card_04_001_Tests
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
GenericCardTestHelper.RulingRing
|
||||
"4_1"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user