JSON interface cleanup
- Renamed ClassSpot -> ItemClassSpot - Fixed MemoryLike being case sensitive - Added default filter to CantRemoveBurdens - Renamed FreePlayerStartedAssigning -> FPStartedAssigning - Renamed RevealCardFromTopOfDrawDeck -> RevealsCardFromTopOfDrawDeck - Remove unused filter field on Moves, PutsOnRing, TakesOffRing, and FreePlayerStartedAssigning trigger - Consolidated Activated into UsesSpecialAbility (much better name)
This commit is contained in:
@@ -116,7 +116,7 @@
|
||||
{
|
||||
type: trigger
|
||||
trigger: {
|
||||
type: freeplayerstartedassigning
|
||||
type: fpstartedassigning
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
|
||||
@@ -676,7 +676,7 @@
|
||||
effects: {
|
||||
type: trigger
|
||||
trigger: {
|
||||
type: revealCardFromTopOfDrawDeck
|
||||
type: revealsCardFromTopOfDrawDeck
|
||||
filter: culture(elven)
|
||||
}
|
||||
optional: true
|
||||
@@ -942,7 +942,7 @@
|
||||
effects: {
|
||||
type: trigger
|
||||
trigger: {
|
||||
type: revealCardFromTopOfDrawDeck
|
||||
type: revealsCardFromTopOfDrawDeck
|
||||
}
|
||||
optional: true
|
||||
cost: {
|
||||
|
||||
@@ -410,7 +410,7 @@
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: classSpot
|
||||
type: ItemClassSpot
|
||||
class: pipe
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ public class CantRemoveBurdens implements ModifierSourceProducer {
|
||||
FieldUtils.validateAllowedFields(object, "filter", "requires");
|
||||
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires");
|
||||
final String filter = FieldUtils.getString(object.get("filter"), "filter");
|
||||
final String filter = FieldUtils.getString(object.get("filter"), "filter", "any");
|
||||
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.PossessionClassSpotModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class ClassSpot implements ModifierSourceProducer {
|
||||
public class ItemClassSpot implements ModifierSourceProducer {
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object, "class");
|
||||
@@ -45,12 +45,12 @@ public class ModifierSourceFactory {
|
||||
modifierProducers.put("canttakemorewoundsthan", new CantTakeMoreWoundsThan());
|
||||
modifierProducers.put("canttakewounds", new CantTakeWounds());
|
||||
modifierProducers.put("cantusespecialabilities", new CantUseSpecialAbilities());
|
||||
modifierProducers.put("classspot", new ClassSpot());
|
||||
modifierProducers.put("extracosttoplay", new ExtraCostToPlay());
|
||||
modifierProducers.put("fpculturespot", new FPCultureSpot());
|
||||
modifierProducers.put("fpusesresinsteadofstr", new FPUsesResInsteadOfStr());
|
||||
modifierProducers.put("fpusesvitinsteadofstr", new FPUsesVitInsteadOfStr());
|
||||
modifierProducers.put("hastomoveifable", new HasToMoveIfAble());
|
||||
modifierProducers.put("itemclassspot", new ItemClassSpot());
|
||||
modifierProducers.put("modifyarcherytotal", new ModifyArcheryTotal());
|
||||
modifierProducers.put("modifycost", new ModifyCost());
|
||||
modifierProducers.put("modifymovelimit", new ModifyMoveLimit());
|
||||
|
||||
@@ -16,7 +16,7 @@ public class MemoryLike implements RequirementProducer {
|
||||
|
||||
return (actionContext) -> {
|
||||
String valueFromMemory = actionContext.getValueFromMemory(memory);
|
||||
return valueFromMemory != null && valueFromMemory.contains(value);
|
||||
return valueFromMemory != null && valueFromMemory.toLowerCase().contains(value.toLowerCase());
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
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.FilterableSource;
|
||||
import com.gempukku.lotro.cards.build.InvalidCardDefinitionException;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
import com.gempukku.lotro.logic.timing.results.ActivateCardResult;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class ActivatedTriggerCheckerProducer implements TriggerCheckerProducer {
|
||||
@Override
|
||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "filter", "memorize");
|
||||
|
||||
final String filterString = FieldUtils.getString(value.get("filter"), "filter");
|
||||
final String memorize = FieldUtils.getString(value.get("memorize"), "memorize");
|
||||
final FilterableSource filter = environment.getFilterFactory().generateFilter(filterString, environment);
|
||||
return new TriggerChecker() {
|
||||
@Override
|
||||
public boolean accepts(ActionContext actionContext) {
|
||||
final Filterable filterable = filter.getFilterable(actionContext);
|
||||
boolean activated = TriggerConditions.activated(actionContext.getGame(), actionContext.getEffectResult(), filterable);
|
||||
|
||||
if (activated) {
|
||||
ActivateCardResult activateCardResult = (ActivateCardResult) actionContext.getEffectResult();
|
||||
|
||||
if (memorize != null) {
|
||||
PhysicalCard playedCard = activateCardResult.getSource();
|
||||
actionContext.setCardMemory(memorize, playedCard);
|
||||
}
|
||||
}
|
||||
return activated;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBefore() {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -2,19 +2,15 @@ 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.FilterableSource;
|
||||
import com.gempukku.lotro.cards.build.InvalidCardDefinitionException;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class FreePlayerStartedAssigning implements TriggerCheckerProducer {
|
||||
public class FPStartedAssigning implements TriggerCheckerProducer {
|
||||
@Override
|
||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "filter");
|
||||
|
||||
String filter = FieldUtils.getString(value.get("filter"), "filter", "any");
|
||||
final FilterableSource fpFilter = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
FieldUtils.validateAllowedFields(value);
|
||||
|
||||
return new TriggerChecker() {
|
||||
@Override
|
||||
@@ -10,7 +10,7 @@ import org.json.simple.JSONObject;
|
||||
public class Moves implements TriggerCheckerProducer {
|
||||
@Override
|
||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "filter");
|
||||
FieldUtils.validateAllowedFields(value);
|
||||
|
||||
return new TriggerChecker() {
|
||||
@Override
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.json.simple.JSONObject;
|
||||
public class PutsOnRing implements TriggerCheckerProducer {
|
||||
@Override
|
||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "filter");
|
||||
FieldUtils.validateAllowedFields(value);
|
||||
|
||||
return new TriggerChecker() {
|
||||
@Override
|
||||
|
||||
@@ -12,7 +12,7 @@ import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
import com.gempukku.lotro.logic.timing.results.RevealCardFromTopOfDeckResult;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class RevealCardFromTopOfDrawDeck implements TriggerCheckerProducer {
|
||||
public class RevealsCardFromTopOfDrawDeck implements TriggerCheckerProducer {
|
||||
@Override
|
||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "filter");
|
||||
@@ -10,7 +10,7 @@ import org.json.simple.JSONObject;
|
||||
public class TakesOffRing implements TriggerCheckerProducer {
|
||||
@Override
|
||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "filter");
|
||||
FieldUtils.validateAllowedFields(value);
|
||||
|
||||
return new TriggerChecker() {
|
||||
@Override
|
||||
|
||||
@@ -18,7 +18,6 @@ public class TriggerCheckerFactory {
|
||||
triggerCheckers.put("abouttoheal", new AboutToHeal());
|
||||
triggerCheckers.put("abouttomoveto", new AboutToMoveTo());
|
||||
triggerCheckers.put("abouttotakewound", new AboutToTakeWound());
|
||||
triggerCheckers.put("activated", new ActivatedTriggerCheckerProducer());
|
||||
triggerCheckers.put("addsburden", new AddsBurden());
|
||||
triggerCheckers.put("addsthreat", new AddsThreat());
|
||||
triggerCheckers.put("assignedagainst", new AssignedAgainst());
|
||||
@@ -33,7 +32,7 @@ public class TriggerCheckerFactory {
|
||||
triggerCheckers.put("endofturn", new EndOfTurn());
|
||||
triggerCheckers.put("exertedby", new ExertedBy());
|
||||
triggerCheckers.put("exerts", new Exerts());
|
||||
triggerCheckers.put("freeplayerstartedassigning", new FreePlayerStartedAssigning());
|
||||
triggerCheckers.put("fpstartedassigning", new FPStartedAssigning());
|
||||
triggerCheckers.put("heals", new Heals());
|
||||
triggerCheckers.put("killed", new Killed());
|
||||
triggerCheckers.put("losesinitiative", new LosesInitiative());
|
||||
@@ -46,7 +45,7 @@ public class TriggerCheckerFactory {
|
||||
triggerCheckers.put("putsonring", new PutsOnRing());
|
||||
triggerCheckers.put("reconciles", new Reconciles());
|
||||
triggerCheckers.put("removesburden", new RemovesBurden());
|
||||
triggerCheckers.put("revealcardfromtopofdrawdeck", new RevealCardFromTopOfDrawDeck());
|
||||
triggerCheckers.put("revealscardfromtopofdrawdeck", new RevealsCardFromTopOfDrawDeck());
|
||||
triggerCheckers.put("startofphase", new StartOfPhase());
|
||||
triggerCheckers.put("startofturn", new StartOfTurn());
|
||||
triggerCheckers.put("takesoffring", new TakesOffRing());
|
||||
|
||||
@@ -5,17 +5,20 @@ import com.gempukku.lotro.cards.build.CardGenerationEnvironment;
|
||||
import com.gempukku.lotro.cards.build.FilterableSource;
|
||||
import com.gempukku.lotro.cards.build.InvalidCardDefinitionException;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
import com.gempukku.lotro.logic.timing.results.ActivateCardResult;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class UsesSpecialAbility implements TriggerCheckerProducer {
|
||||
@Override
|
||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(value, "filter");
|
||||
String filter = FieldUtils.getString(value.get("filter"), "filter", "any");
|
||||
FieldUtils.validateAllowedFields(value, "filter", "memorize");
|
||||
|
||||
String filter = FieldUtils.getString(value.get("filter"), "filter", "any");
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
|
||||
final String memorize = FieldUtils.getString(value.get("memorize"), "memorize");
|
||||
return new TriggerChecker() {
|
||||
@Override
|
||||
public boolean isBefore() {
|
||||
@@ -24,7 +27,17 @@ public class UsesSpecialAbility implements TriggerCheckerProducer {
|
||||
|
||||
@Override
|
||||
public boolean accepts(ActionContext actionContext) {
|
||||
return TriggerConditions.activated(actionContext.getGame(), actionContext.getEffectResult(), filterableSource.getFilterable(actionContext));
|
||||
boolean activated = TriggerConditions.activated(actionContext.getGame(), actionContext.getEffectResult(), filterableSource.getFilterable(actionContext));
|
||||
|
||||
if (activated) {
|
||||
ActivateCardResult activateCardResult = (ActivateCardResult) actionContext.getEffectResult();
|
||||
|
||||
if (memorize != null) {
|
||||
PhysicalCard playedCard = activateCardResult.getSource();
|
||||
actionContext.setCardMemory(memorize, playedCard);
|
||||
}
|
||||
}
|
||||
return activated;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user