Consolidating RemoveText -> DisableGameText. Refactoring away the three XUsesYInsteadOfZ stat altering modifiers. Making phase required in SkipPhase.
This commit is contained in:
@@ -349,7 +349,7 @@
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: removeText
|
||||
type: DisableGameText
|
||||
filter: site,zone(adventure path),storedTitle
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,7 +336,7 @@
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: removeText
|
||||
type: DisableGameText
|
||||
filter: bearer,name(Denethor)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,19 +26,17 @@
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: addModifier
|
||||
modifier: {
|
||||
type: FPUsesVitInsteadOfStr
|
||||
filter: companion,InSkirmishAgainst(your,Uruk-hai)
|
||||
}
|
||||
}
|
||||
{
|
||||
type: addModifier
|
||||
modifier: {
|
||||
type: ShadowUsesVitInsteadOfStr
|
||||
filter: your,Uruk-hai,InSkirmishAgainst(companion)
|
||||
}
|
||||
}
|
||||
type: setFPStrengthOverride
|
||||
amount: {
|
||||
type: forEachVitality
|
||||
}
|
||||
}
|
||||
{
|
||||
type: setShadowStrengthOverride
|
||||
amount: {
|
||||
type: forEachVitality
|
||||
}
|
||||
}
|
||||
{
|
||||
type: addModifier
|
||||
modifier: {
|
||||
|
||||
@@ -868,10 +868,9 @@
|
||||
memorize: chosenCharacter
|
||||
}
|
||||
{
|
||||
type: addModifier
|
||||
modifier: {
|
||||
type: FPUsesResInsteadOfStr
|
||||
filter: memory(chosenCharacter)
|
||||
type: setFPStrengthOverride
|
||||
amount: {
|
||||
type: forEachResistance
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.RemoveGameTextModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -16,8 +17,13 @@ public class DisableGameText implements ModifierSourceProducer {
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return (actionContext) -> new RemoveGameTextModifier(actionContext.getSource(),
|
||||
RequirementCondition.createCondition(requirements, actionContext),
|
||||
filterableSource.getFilterable(actionContext));
|
||||
return new ModifierSource() {
|
||||
@Override
|
||||
public Modifier getModifier(ActionContext actionContext) {
|
||||
return new RemoveGameTextModifier(actionContext.getSource(),
|
||||
RequirementCondition.createCondition(requirements, actionContext),
|
||||
filterableSource.getFilterable(actionContext));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.modifiers.FPSkirmishResistanceStrengthOverrideModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class FPUsesResInsteadOfStr implements ModifierSourceProducer {
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object, "filter", "requires");
|
||||
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires");
|
||||
final String filter = FieldUtils.getString(object.get("filter"), "filter");
|
||||
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return (actionContext) ->
|
||||
new FPSkirmishResistanceStrengthOverrideModifier(actionContext.getSource(),
|
||||
filterableSource.getFilterable(actionContext),
|
||||
RequirementCondition.createCondition(requirements, actionContext));
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.modifiers.FPSkirmishVitalityStrengthOverrideModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class FPUsesVitInsteadOfStr implements ModifierSourceProducer {
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object, "filter", "requires");
|
||||
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires");
|
||||
final String filter = FieldUtils.getString(object.get("filter"), "filter");
|
||||
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return (actionContext) ->
|
||||
new FPSkirmishVitalityStrengthOverrideModifier(actionContext.getSource(),
|
||||
filterableSource.getFilterable(actionContext),
|
||||
RequirementCondition.createCondition(requirements, actionContext));
|
||||
}
|
||||
}
|
||||
@@ -60,8 +60,6 @@ public class ModifierSourceFactory {
|
||||
modifierProducers.put("doesnotaddtoarcherytotal", new DoesNotAddToArcheryTotal());
|
||||
modifierProducers.put("extracosttoplay", new ExtraCostToPlay());
|
||||
modifierProducers.put("fpculturespot", new FPCultureSpot());
|
||||
modifierProducers.put("fpusesresinsteadofstr", new FPUsesResInsteadOfStr());
|
||||
modifierProducers.put("fpusesvitinsteadofstr", new FPUsesVitInsteadOfStr());
|
||||
modifierProducers.put("hastomoveifable", new AddModifierFlag(ModifierFlag.HAS_TO_MOVE_IF_POSSIBLE));
|
||||
modifierProducers.put("itemclassspot", new ItemClassSpot());
|
||||
modifierProducers.put("modifyarcherytotal", new ModifyArcheryTotal());
|
||||
@@ -80,12 +78,10 @@ public class ModifierSourceFactory {
|
||||
modifierProducers.put("removeallkeywords", new RemoveAllKeywords());
|
||||
modifierProducers.put("removecardsgoingtodiscard", new AddModifierFlag(ModifierFlag.REMOVE_CARDS_GOING_TO_DISCARD));
|
||||
modifierProducers.put("removekeyword", new RemoveKeyword());
|
||||
modifierProducers.put("removetext", new RemoveText());
|
||||
modifierProducers.put("ringbearercanttakethreatwounds", new AddModifierFlag(ModifierFlag.RING_BEARER_CANT_TAKE_THREAT_WOUNDS));
|
||||
modifierProducers.put("ringtextisinactive", new AddModifierFlag(ModifierFlag.RING_TEXT_INACTIVE));
|
||||
modifierProducers.put("sarumanfirstsentenceinactive", new AddModifierFlag(ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE));
|
||||
modifierProducers.put("shadowhasinitiative", new ShadowHasInitiative());
|
||||
modifierProducers.put("shadowusesvitinsteadofstr", new ShadowUsesVitInsteadOfStr());
|
||||
modifierProducers.put("skipphase", new SkipPhase());
|
||||
modifierProducers.put("skirmishesresolvedinorderbyfirstshadowplayer", new AddModifierFlag(ModifierFlag.SKIRMISH_ORDER_BY_FIRST_SHADOW_PLAYER));
|
||||
modifierProducers.put("transferforfree", new AddModifierFlag(ModifierFlag.TRANSFERS_FOR_FREE));
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.RemoveGameTextModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class RemoveText implements ModifierSourceProducer {
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object, "filter", "requires");
|
||||
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires");
|
||||
final String filter = FieldUtils.getString(object.get("filter"), "filter");
|
||||
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return new ModifierSource() {
|
||||
@Override
|
||||
public Modifier getModifier(ActionContext actionContext) {
|
||||
return new RemoveGameTextModifier(actionContext.getSource(),
|
||||
RequirementCondition.createCondition(requirements, actionContext),
|
||||
filterableSource.getFilterable(actionContext));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.modifiers.ShadowSkirmishVitalityStrengthOverrideModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class ShadowUsesVitInsteadOfStr implements ModifierSourceProducer {
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object, "filter", "requires");
|
||||
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires");
|
||||
final String filter = FieldUtils.getString(object.get("filter"), "filter");
|
||||
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return (actionContext) ->
|
||||
new ShadowSkirmishVitalityStrengthOverrideModifier(actionContext.getSource(),
|
||||
filterableSource.getFilterable(actionContext),
|
||||
RequirementCondition.createCondition(requirements, actionContext));
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,9 @@ public class SkipPhase implements ModifierSourceProducer {
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires");
|
||||
final Phase phase = FieldUtils.getEnum(Phase.class, object.get("phase"), "phase");
|
||||
|
||||
if (phase == null)
|
||||
throw new InvalidCardDefinitionException("'phase' is required for SkipPhase modifier.");
|
||||
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return new ModifierSource() {
|
||||
|
||||
Reference in New Issue
Block a user