From 57c80ff09a5e0c7c91d71b6a9e8788e8c2a8ad71 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Mon, 26 Aug 2019 17:58:10 -0700 Subject: [PATCH] Added additional cards to JSON card definition --- .../gemp-lotr-async/src/main/web/cards/set40.json | 1 + .../cards/build/field/effect/appender/Choice.java | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40.json index 97cb90ee6..cc61619ca 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40.json @@ -170,6 +170,7 @@ }, "effect": { "type": "choice", + "player": "fp", "texts": [ "Exert the Ring-bearer", "Add a burden" diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/Choice.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/Choice.java index 4b6dffd9b..42c4173e2 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/Choice.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/Choice.java @@ -2,9 +2,11 @@ package com.gempukku.lotro.cards.build.field.effect.appender; import com.gempukku.lotro.cards.build.CardGenerationEnvironment; import com.gempukku.lotro.cards.build.InvalidCardDefinitionException; +import com.gempukku.lotro.cards.build.PlayerSource; 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.PlayerResolver; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.CostToEffectAction; @@ -20,8 +22,9 @@ import java.util.List; public class Choice implements EffectAppenderProducer { @Override public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(effectObject, "effects", "texts"); + FieldUtils.validateAllowedFields(effectObject, "player", "effects", "texts"); + final String player = FieldUtils.getString(effectObject.get("player"), "player", "owner"); final JSONObject[] effectArray = FieldUtils.getObjectArray(effectObject.get("effects"), "effects"); final String[] textArray = FieldUtils.getStringArray(effectObject.get("texts"), "texts"); @@ -34,6 +37,8 @@ public class Choice implements EffectAppenderProducer { environment.getEffectAppenderFactory().getEffectAppender(effect, environment)); } + final PlayerSource playerSource = PlayerResolver.resolvePlayer(player, environment); + return new EffectAppender() { @Override public void appendCost(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { @@ -60,7 +65,9 @@ public class Choice implements EffectAppenderProducer { }); } - action.appendCost(new ChoiceEffect(action, playerId, possibleEffects)); + final String choicePlayerId = playerSource.getPlayer(playerId, game, self, effectResult, effect); + + action.appendCost(new ChoiceEffect(action, choicePlayerId, possibleEffects)); } @Override @@ -88,7 +95,9 @@ public class Choice implements EffectAppenderProducer { }); } - action.appendEffect(new ChoiceEffect(action, playerId, possibleEffects)); + final String choicePlayerId = playerSource.getPlayer(playerId, game, self, effectResult, effect); + + action.appendEffect(new ChoiceEffect(action, choicePlayerId, possibleEffects)); } @Override