Migrated Rohan cards in set 4 to hjson

This commit is contained in:
MarcinSc
2024-04-20 17:19:29 +07:00
parent 23f581b114
commit 2c19c2e289
7 changed files with 741 additions and 413 deletions

View File

@@ -102,11 +102,12 @@ public class EffectAppenderFactory {
effectAppenderProducers.put("playsite", new PlaySite());
effectAppenderProducers.put("preventable", new PreventableAppenderProducer());
effectAppenderProducers.put("preventallwounds", new PreventAllWounds());
effectAppenderProducers.put("preventburden", new PreventBurden());
effectAppenderProducers.put("preventburden", new PreventEffect());
effectAppenderProducers.put("preventdiscard", new PreventCardEffectAppender());
effectAppenderProducers.put("preventeffect", new PreventEffect());
effectAppenderProducers.put("preventexert", new PreventExert());
effectAppenderProducers.put("preventheal", new PreventCardEffectAppender());
effectAppenderProducers.put("preventtwilight", new PreventTwilight());
effectAppenderProducers.put("preventtwilight", new PreventEffect());
effectAppenderProducers.put("preventwound", new PreventWound());
effectAppenderProducers.put("putcardsfromdeckintohand", new PutCardsFromDeckIntoHand());
effectAppenderProducers.put("putcardsfromdeckontopofdeck", new PutCardsFromDeckOnTopOfDeck());

View File

@@ -7,12 +7,11 @@ 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.logic.actions.CostToEffectAction;
import com.gempukku.lotro.logic.effects.AddBurdenEffect;
import com.gempukku.lotro.logic.effects.PreventEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.Preventable;
import org.json.simple.JSONObject;
public class PreventBurden implements EffectAppenderProducer {
public class PreventEffect implements EffectAppenderProducer {
@Override
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
FieldUtils.validateAllowedFields(effectObject);
@@ -23,8 +22,8 @@ public class PreventBurden implements EffectAppenderProducer {
new DelayedAppender() {
@Override
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
AddBurdenEffect addBurdenEffect = (AddBurdenEffect) actionContext.getEffect();
return new PreventEffect(addBurdenEffect);
Preventable preventable = (Preventable) actionContext.getEffect();
return new com.gempukku.lotro.logic.effects.PreventEffect(preventable);
}
});

View File

@@ -1,34 +0,0 @@
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.logic.actions.CostToEffectAction;
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
import com.gempukku.lotro.logic.effects.PreventEffect;
import com.gempukku.lotro.logic.timing.Effect;
import org.json.simple.JSONObject;
public class PreventTwilight implements EffectAppenderProducer {
@Override
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
FieldUtils.validateAllowedFields(effectObject);
MultiEffectAppender result = new MultiEffectAppender();
result.addEffectAppender(
new DelayedAppender() {
@Override
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
AddTwilightEffect addTwilightEffect = (AddTwilightEffect) actionContext.getEffect();
return new PreventEffect(addTwilightEffect);
}
});
return result;
}
}

View File

@@ -42,6 +42,8 @@ public class FilterFactory {
simpleFilters.put("bearer", (actionContext -> Filters.hasAttached(actionContext.getSource())));
simpleFilters.put("character", (actionContext) -> Filters.character);
simpleFilters.put("canexert", (actionContext -> Filters.canExert(actionContext.getSource())));
simpleFilters.put("controlledbyotherplayer",
(actionContext -> Filters.siteControlledByOtherPlayer(actionContext.getPerformingPlayer())));
simpleFilters.put("controlledsite",
(actionContext -> Filters.siteControlled(actionContext.getPerformingPlayer())));
simpleFilters.put("currentsite",

View File

@@ -0,0 +1,34 @@
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.logic.timing.TriggerConditions;
import org.json.simple.JSONObject;
public class AboutToTakeControlOfSite 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 sourceFilter = environment.getFilterFactory().generateFilter(filter, environment);
return new TriggerChecker() {
@Override
public boolean accepts(ActionContext actionContext) {
final Filterable source = sourceFilter.getFilterable(actionContext);
return TriggerConditions.isTakingControlOfSite(actionContext.getEffect(), actionContext.getGame(), source);
}
@Override
public boolean isBefore() {
return true;
}
};
}
}

View File

@@ -13,12 +13,13 @@ public class TriggerCheckerFactory {
public TriggerCheckerFactory() {
triggerCheckers.put("abouttoaddburden", new AboutToAddBurden());
triggerCheckers.put("abouttoaddtwilight", new AboutToAddBurden());
triggerCheckers.put("abouttoaddtwilight", new AboutToAddTwilight());
triggerCheckers.put("abouttobekilled", new AboutToBeKilled());
triggerCheckers.put("abouttodiscard", new AboutToDiscardFromPlay());
triggerCheckers.put("abouttoexert", new AboutToExert());
triggerCheckers.put("abouttoheal", new AboutToHeal());
triggerCheckers.put("abouttomoveto", new AboutToMoveTo());
triggerCheckers.put("abouttotakecontrolofsite", new AboutToTakeControlOfSite());
triggerCheckers.put("abouttotakewound", new AboutToTakeWound());
triggerCheckers.put("addsburden", new AddsBurden());
triggerCheckers.put("addsthreat", new AddsThreat());