Merge pull request #10 from Tbiesty/master
Fix X-list errata and update playtesting formats
This commit is contained in:
@@ -117,7 +117,7 @@
|
||||
"condition": [
|
||||
{
|
||||
"type": "canSpot",
|
||||
"filter": "smeagol"
|
||||
"filter": "name(smeagol)"
|
||||
},
|
||||
{
|
||||
"type": "canSpot",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"text": "Assign to Gandalf",
|
||||
"effect": {
|
||||
"type": "assignFpCharacterToSkirmish",
|
||||
"fpCharacter": "choose(gandalf)",
|
||||
"fpCharacter": "choose(name(gandalf))",
|
||||
"against": "self"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
"effects": [
|
||||
{
|
||||
"type": "modifier",
|
||||
"condition": {
|
||||
"type": "haveInitiative",
|
||||
"side": "free_people"
|
||||
},
|
||||
"modifier": {
|
||||
"type": "addKeyword",
|
||||
"filter": "dwarf",
|
||||
"keyword": "damage+1"
|
||||
"keyword": "damage+1",
|
||||
"condition": {
|
||||
"type": "haveInitiative",
|
||||
"side": "free_people"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
},
|
||||
"effect": {
|
||||
"type": "transfer",
|
||||
"filter": "choose(or(possession,condition)),attachedTo(character)",
|
||||
"filter": "choose(or(possession,condition),attachedTo(character))",
|
||||
"where": "choose(any)",
|
||||
"checkTarget": true
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"83_188": {
|
||||
"title": "Courtyard Parapet",
|
||||
"type": "site",
|
||||
"block": "Shadows and onwards",
|
||||
"block": "Shadows",
|
||||
"cost": 0,
|
||||
"keyword": "Dwelling",
|
||||
"direction": "left",
|
||||
|
||||
@@ -23,6 +23,7 @@ public class EffectAppenderFactory {
|
||||
effectAppenderProducers.put("modifystrength", new ModifyStrength());
|
||||
effectAppenderProducers.put("addkeyword", new AddKeyword());
|
||||
effectAppenderProducers.put("modifyarcherytotal", new ModifyArcheryTotal());
|
||||
effectAppenderProducers.put("modifysitenumber", new ModifySiteNumber());
|
||||
effectAppenderProducers.put("addburdens", new AddBurdens());
|
||||
effectAppenderProducers.put("discardtopcardsfromdeck", new DiscardTopCardFromDeck());
|
||||
effectAppenderProducers.put("addtwilight", new AddTwilight());
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
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.TimeResolver;
|
||||
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.ValueResolver;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilModifierEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.MinionSiteNumberModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public class ModifySiteNumber implements EffectAppenderProducer {
|
||||
@Override
|
||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "amount", "count", "filter", "until", "memorize");
|
||||
|
||||
final ValueSource amountSource = ValueResolver.resolveEvaluator(effectObject.get("amount"), environment);
|
||||
final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
||||
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter");
|
||||
final String memory = FieldUtils.getString(effectObject.get("memorize"), "memorize", "_temp");
|
||||
final TimeResolver.Time time = TimeResolver.resolveTime(effectObject.get("until"), "end(current)");
|
||||
|
||||
MultiEffectAppender result = new MultiEffectAppender();
|
||||
|
||||
result.addEffectAppender(
|
||||
CardResolver.resolveCards(filter, valueSource, memory, "you", "Choose cards to modify site number of", environment));
|
||||
result.addEffectAppender(
|
||||
new DelayedAppender() {
|
||||
@Override
|
||||
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||
final Collection<? extends PhysicalCard> cardsFromMemory = actionContext.getCardsFromMemory(memory);
|
||||
final Evaluator evaluator = amountSource.getEvaluator(actionContext);
|
||||
final int amount = evaluator.evaluateExpression(actionContext.getGame(), actionContext.getSource());
|
||||
return new AddUntilModifierEffect(
|
||||
new MinionSiteNumberModifier(actionContext.getSource(), Filters.in(cardsFromMemory), amount), time);
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,6 +10,10 @@ public class MinionSiteNumberModifier extends AbstractModifier {
|
||||
private Evaluator evaluator;
|
||||
private boolean nonCardTextModifier;
|
||||
|
||||
public MinionSiteNumberModifier(PhysicalCard source, Filterable affectFilter, int modifier) {
|
||||
this(source, affectFilter, null, modifier);
|
||||
}
|
||||
|
||||
public MinionSiteNumberModifier(PhysicalCard source, Filterable affectFilter, Condition condition, int modifier) {
|
||||
this(source, affectFilter, condition, new ConstantEvaluator(modifier));
|
||||
}
|
||||
|
||||
@@ -427,7 +427,6 @@
|
||||
"set":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
|
||||
"hall":false
|
||||
},
|
||||
|
||||
{
|
||||
"name":"PLAYTEST - PC Fellowship Block",
|
||||
"code":"test_pc_fotr_block",
|
||||
@@ -444,8 +443,8 @@
|
||||
"sites":"KING",
|
||||
"hall":true,
|
||||
"playtest":true,
|
||||
"set":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 51, 52, 53, 71, 72, 73, 101, 151],
|
||||
"banned":["1_40", "1_45", "1_80", "1_108", "1_138", "1_139", "1_195", "1_234", "1_248", "1_311", "1_313", "1_316", "2_32", "2_75", "2_101", "2_108", "2_121", "3_17", "3_38", "3_42", "3_67", "3_68", "3_106", "3_108", "3_113", "7_49", "7_96", "8_1", "10_2", "10_91"],
|
||||
"set":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 51, 52, 53, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 101, 151],
|
||||
"banned":["1_40", "1_45", "1_80", "1_108", "1_138", "1_139", "1_195", "1_234", "1_248", "1_311", "1_313", "1_316", "2_32", "2_75", "2_101", "2_108", "2_121", "3_17", "3_38", "3_42", "3_67", "3_68", "3_106", "3_108", "3_113", "4_73", "4_192", "4_276", "4_304", "7_49", "7_96", "8_1", "10_2", "10_11", "10_91"]
|
||||
},
|
||||
{
|
||||
"name":"PLAYTEST - PC Expanded",
|
||||
@@ -453,8 +452,7 @@
|
||||
"sites":"SHADOWS",
|
||||
"hall":true,
|
||||
"playtest":true,
|
||||
"banned":["1_40", "1_45", "1_80", "1_108", "1_138", "1_139", "1_195", "1_234", "1_248", "1_311", "1_313", "1_316", "2_32", "2_75", "2_101", "2_108", "2_121", "3_17", "3_38", "3_42", "3_67", "3_68", "3_106", "3_108", "3_113", "4_73", "7_49", "8_1", "10_2", "10_11", "10_91", "11_31", "11_100", "11_132"],
|
||||
"restricted":["4_276", "4_304"],
|
||||
"set":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 51, 52, 53, 71, 72, 73, 101, 151]
|
||||
},
|
||||
"set":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 51, 52, 53, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 101, 151],
|
||||
"banned":["1_40", "1_45", "1_80", "1_108", "1_138", "1_139", "1_195", "1_234", "1_248", "1_311", "1_313", "1_316", "2_32", "2_75", "2_101", "2_108", "2_121", "3_17", "3_38", "3_42", "3_67", "3_68", "3_106", "3_108", "3_113", "4_73", "4_192", "4_276", "4_304", "7_49", "7_96", "8_1", "10_2", "10_11", "10_91", "11_31", "11_100", "11_114", "11_132", "13_188", "15_64"]
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user