Fixing Beyond All Darkness (and other "put cards from hand on the bottom of the deck" cards) revealing the cards to the wrong player
This commit is contained in:
@@ -1,13 +1,11 @@
|
|||||||
package com.gempukku.lotro.cards.build.field.effect.appender;
|
package com.gempukku.lotro.cards.build.field.effect.appender;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.build.ActionContext;
|
import com.gempukku.lotro.cards.build.*;
|
||||||
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.FieldUtils;
|
||||||
import com.gempukku.lotro.cards.build.field.effect.EffectAppender;
|
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.EffectAppenderProducer;
|
||||||
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.CardResolver;
|
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.CardResolver;
|
||||||
|
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.PlayerResolver;
|
||||||
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.ValueResolver;
|
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.ValueResolver;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.game.state.GameState;
|
import com.gempukku.lotro.game.state.GameState;
|
||||||
@@ -25,24 +23,26 @@ public class PutCardsFromHandOnBottomOfDeck implements EffectAppenderProducer {
|
|||||||
public EffectAppender createEffectAppender(boolean cost, JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
public EffectAppender createEffectAppender(boolean cost, JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
FieldUtils.validateAllowedFields(effectObject, "player", "select", "count", "reveal");
|
FieldUtils.validateAllowedFields(effectObject, "player", "select", "count", "reveal");
|
||||||
|
|
||||||
final String player = FieldUtils.getString(effectObject.get("player"), "player", "you");
|
final String playerName = FieldUtils.getString(effectObject.get("player"), "player", "you");
|
||||||
final String select = FieldUtils.getString(effectObject.get("select"), "select", "choose(any)");
|
final String select = FieldUtils.getString(effectObject.get("select"), "select", "choose(any)");
|
||||||
final ValueSource count = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
final ValueSource count = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
||||||
final boolean reveal = FieldUtils.getBoolean(effectObject.get("reveal"), "reveal", false);
|
final boolean reveal = FieldUtils.getBoolean(effectObject.get("reveal"), "reveal", false);
|
||||||
|
final PlayerSource player = PlayerResolver.resolvePlayer(playerName);
|
||||||
|
|
||||||
MultiEffectAppender result = new MultiEffectAppender();
|
MultiEffectAppender result = new MultiEffectAppender();
|
||||||
|
|
||||||
result.addEffectAppender(
|
result.addEffectAppender(
|
||||||
CardResolver.resolveCardsInHand(select, count, "_temp", player, player, "Choose cards from hand", environment));
|
CardResolver.resolveCardsInHand(select, count, "_temp", playerName, playerName, "Choose cards from hand", environment));
|
||||||
result.addEffectAppender(
|
result.addEffectAppender(
|
||||||
new DelayedAppender() {
|
new DelayedAppender() {
|
||||||
@Override
|
@Override
|
||||||
protected List<Effect> createEffects(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
protected List<Effect> createEffects(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||||
final List<? extends PhysicalCard> cards = new ArrayList<>(actionContext.getCardsFromMemory("_temp"));
|
final List<? extends PhysicalCard> cards = new ArrayList<>(actionContext.getCardsFromMemory("_temp"));
|
||||||
List<Effect> result = new LinkedList<>();
|
List<Effect> result = new LinkedList<>();
|
||||||
|
|
||||||
for (int i = 0; i < cards.size(); i++) {
|
for (int i = 0; i < cards.size(); i++) {
|
||||||
result.add(
|
result.add(
|
||||||
new ChooseArbitraryCardsEffect(actionContext.getPerformingPlayer(),
|
new ChooseArbitraryCardsEffect(player.getPlayer(actionContext),
|
||||||
"Choose card to put beneath draw deck", cards, 1, 1) {
|
"Choose card to put beneath draw deck", cards, 1, 1) {
|
||||||
@Override
|
@Override
|
||||||
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> selectedCards) {
|
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> selectedCards) {
|
||||||
|
|||||||
Reference in New Issue
Block a user