Fixing naming conventions to be somewhat more specific with this family of effects
This commit is contained in:
@@ -86,7 +86,7 @@
|
||||
"memorize": "playedUrukHai"
|
||||
},
|
||||
"effect": {
|
||||
"type": "putCardsFromDiscardOnBottomOfDrawDeck",
|
||||
"type": "putCardsFromDiscardOnBottomOfDeck",
|
||||
"filter": "all(nameFromMemory(playedUrukHai))"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -413,7 +413,7 @@
|
||||
"filter": "self"
|
||||
},
|
||||
"effect": {
|
||||
"type": "putCardsFromDiscardOnBottomOfDrawDeck",
|
||||
"type": "putCardsFromDiscardOnBottomOfDeck",
|
||||
"filter": "choose(culture(moria),orc)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
"filter": "memory(chosenCard)"
|
||||
},
|
||||
{
|
||||
"type": "putCardsFromDiscardOnBottomOfDrawDeck",
|
||||
"type": "putCardsFromDiscardOnBottomOfDeck",
|
||||
"filter": "memory(chosenCard)"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -555,7 +555,7 @@
|
||||
"filter": "choose(culture(dwarven),follower)"
|
||||
},
|
||||
"effect": {
|
||||
"type": "putCardsFromDiscardOnBottomOfDrawDeck",
|
||||
"type": "putCardsFromDiscardOnBottomOfDeck",
|
||||
"filter": "choose(culture(dwarven),artifact)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -538,7 +538,7 @@
|
||||
"filter": "self"
|
||||
},
|
||||
"effect": {
|
||||
"type": "putCardsFromDiscardOnBottomOfDrawDeck",
|
||||
"type": "putCardsFromDiscardOnBottomOfDeck",
|
||||
"filter": "choose(orc)",
|
||||
"count": {
|
||||
"type": "condition",
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
"filter": "choose(name(Balin))"
|
||||
},
|
||||
{
|
||||
"type": "putCardsFromDiscardOnBottomOfDrawDeck",
|
||||
"type": "putCardsFromDiscardOnBottomOfDeck",
|
||||
"count": 2
|
||||
}
|
||||
]
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
"filter": "self"
|
||||
},
|
||||
"effect": {
|
||||
"type": "putCardsFromDiscardOnBottomOfDrawDeck",
|
||||
"type": "putCardsFromDiscardOnBottomOfDeck",
|
||||
"filter": "choose(orc)"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -94,9 +94,11 @@ public class EffectAppenderFactory {
|
||||
effectAppenderProducers.put("preventheal", new PreventCardEffectAppender());
|
||||
effectAppenderProducers.put("preventwound", new PreventWound());
|
||||
effectAppenderProducers.put("putcardsfromdeckintohand", new PutCardsFromDeckIntoHand());
|
||||
effectAppenderProducers.put("putcardsfromdeckontopofdeck", new PutCardsFromDeckOnTopOfDeck());
|
||||
effectAppenderProducers.put("putcardsfromdeckonbottomofdeck", new PutCardsFromDeckOnBottomOfDeck());
|
||||
effectAppenderProducers.put("putcardsfromdiscardintohand", new PutCardsFromDiscardIntoHand());
|
||||
effectAppenderProducers.put("putcardsfromdiscardonbottomofdrawdeck", new PutCardsFromDiscardOnBottomOfDrawDeck());
|
||||
effectAppenderProducers.put("putcardsfromdiscardontopofdrawdeck", new PutCardsFromDiscardOnTopOfDrawDeck());
|
||||
effectAppenderProducers.put("putcardsfromdiscardonbottomofdeck", new PutCardsFromDiscardOnBottomOfDeck());
|
||||
effectAppenderProducers.put("putcardsfromdiscardontopofdeck", new PutCardsFromDiscardOnTopOfDeck());
|
||||
effectAppenderProducers.put("putcardsfromhandonbottomofdeck", new PutCardsFromHandOnBottomOfDeck());
|
||||
effectAppenderProducers.put("putcardsfromhandontopofdeck", new PutCardsFromHandOnTopOfDeck());
|
||||
effectAppenderProducers.put("putcardsfromplayonbottomofdeck", new PutCardsFromPlayOnBottomOfDeck());
|
||||
|
||||
@@ -61,7 +61,7 @@ public class PlayCardFromDrawDeck implements EffectAppenderProducer {
|
||||
final CostToEffectAction playCardAction = PlayUtils.getPlayCardAction(actionContext.getGame(), cardsToPlay.iterator().next(), costModifier, onFilterable, false);
|
||||
return new StackActionEffect(playCardAction);
|
||||
} else {
|
||||
return null;
|
||||
return null; //Fix Wizard is Never Late by changing this to a DoNothingEffect?
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
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.PutCardFromDeckIntoHandEffect;
|
||||
import com.gempukku.lotro.logic.effects.PutCardFromDeckOnBottomOfDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.PutCardFromDeckOnTopOfDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.ShuffleDeckEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class PutCardsFromDeckOnBottomOfDeck implements EffectAppenderProducer {
|
||||
@Override
|
||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "count", "filter");
|
||||
|
||||
final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
||||
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)");
|
||||
|
||||
MultiEffectAppender result = new MultiEffectAppender();
|
||||
|
||||
result.addEffectAppender(
|
||||
CardResolver.resolveCardsInDeck(filter, null, valueSource, "_temp", "you", "Choose cards from deck", environment));
|
||||
result.addEffectAppender(
|
||||
new DelayedAppender() {
|
||||
@Override
|
||||
protected List<? extends Effect> createEffects(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||
final Collection<? extends PhysicalCard> cards = actionContext.getCardsFromMemory("_temp");
|
||||
List<Effect> result = new LinkedList<>();
|
||||
for (PhysicalCard card : cards) {
|
||||
result.add(new PutCardFromDeckOnBottomOfDeckEffect(action.getActionSource(), card));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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.ValueResolver;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
||||
import com.gempukku.lotro.logic.effects.PutCardFromDeckIntoHandEffect;
|
||||
import com.gempukku.lotro.logic.effects.PutCardFromDeckOnTopOfDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.PutCardsFromDeckOnTopOfDrawDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.ShuffleDeckEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class PutCardsFromDeckOnTopOfDeck implements EffectAppenderProducer {
|
||||
@Override
|
||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "count", "filter");
|
||||
|
||||
final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
||||
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)");
|
||||
|
||||
MultiEffectAppender result = new MultiEffectAppender();
|
||||
|
||||
result.addEffectAppender(
|
||||
CardResolver.resolveCardsInDeck(filter, null, valueSource, "_temp", "you", "Choose cards from deck", environment));
|
||||
result.addEffectAppender(
|
||||
new DelayedAppender() {
|
||||
@Override
|
||||
protected List<? extends Effect> createEffects(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||
final Collection<? extends PhysicalCard> cards = actionContext.getCardsFromMemory("_temp");
|
||||
List<Effect> result = new LinkedList<>();
|
||||
for (PhysicalCard card : cards) {
|
||||
result.add(new PutCardFromDeckOnTopOfDeckEffect(action.getActionSource(), card));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class PutCardsFromDiscardOnBottomOfDrawDeck implements EffectAppenderProducer {
|
||||
public class PutCardsFromDiscardOnBottomOfDeck implements EffectAppenderProducer {
|
||||
@Override
|
||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "count", "filter");
|
||||
@@ -19,7 +19,7 @@ import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class PutCardsFromDiscardOnTopOfDrawDeck implements EffectAppenderProducer {
|
||||
public class PutCardsFromDiscardOnTopOfDeck implements EffectAppenderProducer {
|
||||
@Override
|
||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "count", "filter");
|
||||
Reference in New Issue
Block a user