Couple of Sauron cards
This commit is contained in:
@@ -177,6 +177,115 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"40_218": {
|
||||||
|
"title": "*Gathering Evil",
|
||||||
|
"culture": "sauron",
|
||||||
|
"cost": 2,
|
||||||
|
"type": "condition",
|
||||||
|
"keyword": "support area",
|
||||||
|
"effects": {
|
||||||
|
"type": "trigger",
|
||||||
|
"optional": true,
|
||||||
|
"trigger": {
|
||||||
|
"type": "startOfPhase",
|
||||||
|
"phase": "shadow"
|
||||||
|
},
|
||||||
|
"condition": {
|
||||||
|
"type": "cantSpotFPCultures",
|
||||||
|
"amount": 3
|
||||||
|
},
|
||||||
|
"effect": {
|
||||||
|
"type": "choice",
|
||||||
|
"texts": [
|
||||||
|
"Play [Sauron] minion from your draw deck",
|
||||||
|
"Play [Sauron] minion from your discard pile"
|
||||||
|
],
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "playCardFromDrawDeck",
|
||||||
|
"filter": "choose(culture(sauron),minion)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "playCardFromDiscard",
|
||||||
|
"filter": "choose(culture(sauron),minion)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"40_219": {
|
||||||
|
"title": "*The Great Eye",
|
||||||
|
"subtitle": "Wreathed in Flame",
|
||||||
|
"culture": "sauron",
|
||||||
|
"cost": 3,
|
||||||
|
"type": "minion",
|
||||||
|
"strength": 6,
|
||||||
|
"vitality": 4,
|
||||||
|
"site": 6,
|
||||||
|
"keyword": "cunning",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "trigger",
|
||||||
|
"trigger": {
|
||||||
|
"type": "played",
|
||||||
|
"filter": "self"
|
||||||
|
},
|
||||||
|
"effect": {
|
||||||
|
"type": "addThreats",
|
||||||
|
"amount": {
|
||||||
|
"type": "forEachYouCanSpot",
|
||||||
|
"filter": "companion",
|
||||||
|
"over": 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inHandTrigger",
|
||||||
|
"trigger": {
|
||||||
|
"type": "putsOnRing"
|
||||||
|
},
|
||||||
|
"cost": {
|
||||||
|
"type": "revealCardsFromHand",
|
||||||
|
"filter": "self"
|
||||||
|
},
|
||||||
|
"effect": {
|
||||||
|
"type": "addBurdens",
|
||||||
|
"amount": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "activated",
|
||||||
|
"phase": "skirmish",
|
||||||
|
"cost": {
|
||||||
|
"type": "exert",
|
||||||
|
"filter": "self"
|
||||||
|
},
|
||||||
|
"effect": {
|
||||||
|
"type": "modifyStrength",
|
||||||
|
"filter": "choose(culture(sauron),minion)",
|
||||||
|
"amount": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"40_220": {
|
||||||
|
"title": "Hate",
|
||||||
|
"culture": "sauron",
|
||||||
|
"cost": 0,
|
||||||
|
"type": "event",
|
||||||
|
"keyword": "maneuver",
|
||||||
|
"effects": {
|
||||||
|
"type": "event",
|
||||||
|
"cost": {
|
||||||
|
"type": "exert",
|
||||||
|
"filter": "choose(culture(sauron),orc)"
|
||||||
|
},
|
||||||
|
"effect": {
|
||||||
|
"type": "wound",
|
||||||
|
"filter": "choose(companion,not(ring bearer))"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"40_221": {
|
"40_221": {
|
||||||
"title": "It Will Destroy Them All",
|
"title": "It Will Destroy Them All",
|
||||||
"culture": "sauron",
|
"culture": "sauron",
|
||||||
@@ -220,7 +329,7 @@
|
|||||||
],
|
],
|
||||||
"effects": [
|
"effects": [
|
||||||
{
|
{
|
||||||
"type": "addBurden",
|
"type": "addBurdens",
|
||||||
"player": "fp"
|
"player": "fp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
"filter": "choose(ring bearer)"
|
"filter": "choose(ring bearer)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "addBurden",
|
"type": "addBurdens",
|
||||||
"player": "fp"
|
"player": "fp"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
"filter": "all(bearer)"
|
"filter": "all(bearer)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "addBurden"
|
"type": "addBurdens"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
"filter": "all(bearer)"
|
"filter": "all(bearer)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "addBurden"
|
"type": "addBurdens"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
"filter": "all(bearer)"
|
"filter": "all(bearer)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "addBurden"
|
"type": "addBurdens"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "putOnRing"
|
"type": "putOnRing"
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint {
|
|||||||
private List<ActionSource> optionalInHandBeforeActions;
|
private List<ActionSource> optionalInHandBeforeActions;
|
||||||
private List<ActionSource> optionalInHandAfterActions;
|
private List<ActionSource> optionalInHandAfterActions;
|
||||||
|
|
||||||
|
private List<ActionSource> optionalInHandAfterTriggers;
|
||||||
|
|
||||||
private List<ActionSource> inPlayPhaseActions;
|
private List<ActionSource> inPlayPhaseActions;
|
||||||
private List<ActionSource> fromStackedPhaseActions;
|
private List<ActionSource> fromStackedPhaseActions;
|
||||||
|
|
||||||
@@ -85,6 +87,12 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint {
|
|||||||
discountSources.add(discountSource);
|
discountSources.add(discountSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void appendOptionalInHandAfterTrigger(ActionSource actionSource) {
|
||||||
|
if (optionalInHandAfterTriggers == null)
|
||||||
|
optionalInHandAfterTriggers = new LinkedList<>();
|
||||||
|
optionalInHandAfterTriggers.add(actionSource);
|
||||||
|
}
|
||||||
|
|
||||||
public void appendOptionalInHandBeforeAction(ActionSource actionSource) {
|
public void appendOptionalInHandBeforeAction(ActionSource actionSource) {
|
||||||
if (optionalInHandBeforeActions == null)
|
if (optionalInHandBeforeActions == null)
|
||||||
optionalInHandBeforeActions = new LinkedList<>();
|
optionalInHandBeforeActions = new LinkedList<>();
|
||||||
@@ -603,6 +611,24 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OptionalTriggerAction> getOptionalInHandAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
|
if (optionalInHandAfterTriggers == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
List<OptionalTriggerAction> result = new LinkedList<>();
|
||||||
|
for (ActionSource optionalInHandAfterTrigger : optionalInHandAfterTriggers) {
|
||||||
|
DefaultActionContext actionContext = new DefaultActionContext(playerId, game, self, effectResult, null);
|
||||||
|
if (optionalInHandAfterTrigger.isValid(actionContext)) {
|
||||||
|
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||||
|
optionalInHandAfterTrigger.createAction(action, actionContext);
|
||||||
|
result.add(action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<? extends ExtraPlayCost> getExtraCostToPlay(LotroGame game, PhysicalCard self) {
|
public List<? extends ExtraPlayCost> getExtraCostToPlay(LotroGame game, PhysicalCard self) {
|
||||||
if (extraPlayCosts == null)
|
if (extraPlayCosts == null)
|
||||||
@@ -630,11 +656,6 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<OptionalTriggerAction> getOptionalInHandAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtraPossessionClass(LotroGame game, PhysicalCard self, PhysicalCard attachedTo) {
|
public boolean isExtraPossessionClass(LotroGame game, PhysicalCard self, PhysicalCard attachedTo) {
|
||||||
if (extraPossessionClassTest != null)
|
if (extraPossessionClassTest != null)
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class EffectFieldProcessor implements FieldProcessor {
|
|||||||
|
|
||||||
public EffectFieldProcessor() {
|
public EffectFieldProcessor() {
|
||||||
effectProcessors.put("trigger", new TriggerEffectProcessor());
|
effectProcessors.put("trigger", new TriggerEffectProcessor());
|
||||||
|
effectProcessors.put("inhandtrigger", new InHandTriggerEffectProcessor());
|
||||||
effectProcessors.put("activatedtrigger", new ActivatedTriggerEffectProcessor());
|
effectProcessors.put("activatedtrigger", new ActivatedTriggerEffectProcessor());
|
||||||
effectProcessors.put("activated", new ActivatedEffectProcessor());
|
effectProcessors.put("activated", new ActivatedEffectProcessor());
|
||||||
effectProcessors.put("event", new EventEffectProcessor());
|
effectProcessors.put("event", new EventEffectProcessor());
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class EffectAppenderFactory {
|
|||||||
effectAppenderProducers.put("modifystrength", new ModifyStrength());
|
effectAppenderProducers.put("modifystrength", new ModifyStrength());
|
||||||
effectAppenderProducers.put("addkeyword", new AddKeyword());
|
effectAppenderProducers.put("addkeyword", new AddKeyword());
|
||||||
effectAppenderProducers.put("modifyarcherytotal", new ModifyArcheryTotal());
|
effectAppenderProducers.put("modifyarcherytotal", new ModifyArcheryTotal());
|
||||||
effectAppenderProducers.put("addburden", new AddBurden());
|
effectAppenderProducers.put("addburdens", new AddBurdens());
|
||||||
effectAppenderProducers.put("discardtopcardsfromdeck", new DiscardTopCardFromDeck());
|
effectAppenderProducers.put("discardtopcardsfromdeck", new DiscardTopCardFromDeck());
|
||||||
effectAppenderProducers.put("addtwilight", new AddTwilight());
|
effectAppenderProducers.put("addtwilight", new AddTwilight());
|
||||||
effectAppenderProducers.put("wound", new Wound());
|
effectAppenderProducers.put("wound", new Wound());
|
||||||
@@ -82,6 +82,8 @@ public class EffectAppenderFactory {
|
|||||||
effectAppenderProducers.put("addmodifier", new AddModifier());
|
effectAppenderProducers.put("addmodifier", new AddModifier());
|
||||||
effectAppenderProducers.put("playnextsite", new PlayNextSite());
|
effectAppenderProducers.put("playnextsite", new PlayNextSite());
|
||||||
effectAppenderProducers.put("duplicate", new Duplicate());
|
effectAppenderProducers.put("duplicate", new Duplicate());
|
||||||
|
effectAppenderProducers.put("revealcardsfromhand", new RevealCardsFromHand());
|
||||||
|
effectAppenderProducers.put("revealcardsfromhand", new RevealCardsFromHand());
|
||||||
}
|
}
|
||||||
|
|
||||||
public EffectAppender getEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
public EffectAppender getEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
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.field.EffectProcessor;
|
||||||
|
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||||
|
import com.gempukku.lotro.cards.build.field.effect.trigger.TriggerChecker;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
|
public class InHandTriggerEffectProcessor implements EffectProcessor {
|
||||||
|
@Override
|
||||||
|
public void processEffect(JSONObject value, BuiltLotroCardBlueprint blueprint, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
|
FieldUtils.validateAllowedFields(value, "trigger", "condition", "cost", "effect");
|
||||||
|
|
||||||
|
final JSONObject[] triggerArray = FieldUtils.getObjectArray(value.get("trigger"), "trigger");
|
||||||
|
|
||||||
|
for (JSONObject trigger : triggerArray) {
|
||||||
|
final TriggerChecker triggerChecker = environment.getTriggerCheckerFactory().getTriggerChecker(trigger, environment);
|
||||||
|
final boolean before = triggerChecker.isBefore();
|
||||||
|
if (before)
|
||||||
|
throw new InvalidCardDefinitionException("Only after triggers from hand are supported");
|
||||||
|
|
||||||
|
DefaultActionSource triggerActionSource = new DefaultActionSource();
|
||||||
|
triggerActionSource.addPlayRequirement(triggerChecker);
|
||||||
|
EffectUtils.processRequirementsCostsAndEffects(value, environment, triggerActionSource);
|
||||||
|
|
||||||
|
blueprint.appendOptionalInHandAfterTrigger(triggerActionSource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ import com.gempukku.lotro.logic.timing.Effect;
|
|||||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
public class AddBurden implements EffectAppenderProducer {
|
public class AddBurdens implements EffectAppenderProducer {
|
||||||
@Override
|
@Override
|
||||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
FieldUtils.validateAllowedFields(effectObject, "amount", "player");
|
FieldUtils.validateAllowedFields(effectObject, "amount", "player");
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
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.ValueSource;
|
||||||
|
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.cards.build.field.effect.appender.resolver.CardResolver;
|
||||||
|
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.ValueResolver;
|
||||||
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
|
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
||||||
|
import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect;
|
||||||
|
import com.gempukku.lotro.logic.timing.Effect;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
public class RevealCardsFromHand implements EffectAppenderProducer {
|
||||||
|
@Override
|
||||||
|
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
|
FieldUtils.validateAllowedFields(effectObject, "count", "filter", "memorize");
|
||||||
|
|
||||||
|
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)");
|
||||||
|
final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize", "_temp");
|
||||||
|
|
||||||
|
final ValueSource countSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
||||||
|
|
||||||
|
MultiEffectAppender result = new MultiEffectAppender();
|
||||||
|
|
||||||
|
result.addEffectAppender(
|
||||||
|
CardResolver.resolveCardsInHand(filter, countSource, memorize, "you", "Choose cards to reveal", environment));
|
||||||
|
result.addEffectAppender(
|
||||||
|
new DelayedAppender() {
|
||||||
|
@Override
|
||||||
|
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||||
|
final Collection<? extends PhysicalCard> cardsToReveal = actionContext.getCardsFromMemory(memorize);
|
||||||
|
return new RevealCardsFromYourHandEffect(actionContext.getSource(), actionContext.getPerformingPlayer(), cardsToReveal);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import com.gempukku.lotro.cards.build.*;
|
|||||||
import com.gempukku.lotro.cards.build.field.effect.EffectAppender;
|
import com.gempukku.lotro.cards.build.field.effect.EffectAppender;
|
||||||
import com.gempukku.lotro.cards.build.field.effect.appender.DelayedAppender;
|
import com.gempukku.lotro.cards.build.field.effect.appender.DelayedAppender;
|
||||||
import com.gempukku.lotro.common.Filterable;
|
import com.gempukku.lotro.common.Filterable;
|
||||||
|
import com.gempukku.lotro.common.Zone;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.game.state.LotroGame;
|
import com.gempukku.lotro.game.state.LotroGame;
|
||||||
@@ -110,7 +111,24 @@ public class CardResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static EffectAppender resolveCardsInHand(String type, FilterableSource additionalFilter, ValueSource countSource, String memory, String choicePlayer, String choiceText, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
public static EffectAppender resolveCardsInHand(String type, FilterableSource additionalFilter, ValueSource countSource, String memory, String choicePlayer, String choiceText, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
if (type.startsWith("memory(") && type.endsWith(")")) {
|
if (type.equals("self")) {
|
||||||
|
return new DelayedAppender() {
|
||||||
|
@Override
|
||||||
|
public boolean isPlayableInFull(ActionContext actionContext) {
|
||||||
|
return actionContext.getSource().getZone() == Zone.HAND;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||||
|
return new UnrespondableEffect() {
|
||||||
|
@Override
|
||||||
|
protected void doPlayEffect(LotroGame game) {
|
||||||
|
actionContext.setCardMemory(memory, actionContext.getSource());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else if (type.startsWith("memory(") && type.endsWith(")")) {
|
||||||
final PlayerSource playerSource = PlayerResolver.resolvePlayer(choicePlayer, environment);
|
final PlayerSource playerSource = PlayerResolver.resolvePlayer(choicePlayer, environment);
|
||||||
|
|
||||||
String sourceMemory = type.substring(type.indexOf("(") + 1, type.lastIndexOf(")"));
|
String sourceMemory = type.substring(type.indexOf("(") + 1, type.lastIndexOf(")"));
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.gempukku.lotro.cards.build.field.effect.trigger;
|
||||||
|
|
||||||
|
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.logic.timing.EffectResult;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
|
public class PutsOnRing implements TriggerCheckerProducer {
|
||||||
|
@Override
|
||||||
|
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
|
FieldUtils.validateAllowedFields(value, "filter");
|
||||||
|
|
||||||
|
return new TriggerChecker() {
|
||||||
|
@Override
|
||||||
|
public boolean accepts(ActionContext actionContext) {
|
||||||
|
return actionContext.getEffectResult().getType() == EffectResult.Type.PUT_ON_THE_ONE_RING;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBefore() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,6 +28,7 @@ public class TriggerCheckerFactory {
|
|||||||
triggerCheckers.put("losesinitiative", new LosesInitiative());
|
triggerCheckers.put("losesinitiative", new LosesInitiative());
|
||||||
triggerCheckers.put("takeswound", new TakesWound());
|
triggerCheckers.put("takeswound", new TakesWound());
|
||||||
triggerCheckers.put("discardfromhand", new DiscardFromHand());
|
triggerCheckers.put("discardfromhand", new DiscardFromHand());
|
||||||
|
triggerCheckers.put("putsonring", new PutsOnRing());
|
||||||
}
|
}
|
||||||
|
|
||||||
public TriggerChecker getTriggerChecker(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
public TriggerChecker getTriggerChecker(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
|
|||||||
Reference in New Issue
Block a user