YesOrNo choice can now be given to any player
This commit is contained in:
@@ -6,6 +6,7 @@ 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.cards.build.field.effect.appender.resolver.PlayerResolver;
|
||||
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
||||
import com.gempukku.lotro.logic.decisions.YesNoDecision;
|
||||
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
|
||||
@@ -15,7 +16,7 @@ import org.json.simple.JSONObject;
|
||||
public class ChooseYesOrNo implements EffectAppenderProducer {
|
||||
@Override
|
||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "text", "memorize", "yes", "no");
|
||||
FieldUtils.validateAllowedFields(effectObject, "text", "player", "memorize", "yes", "no");
|
||||
|
||||
final String text = FieldUtils.getString(effectObject.get("text"), "text");
|
||||
if (text == null)
|
||||
@@ -23,11 +24,12 @@ public class ChooseYesOrNo implements EffectAppenderProducer {
|
||||
final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize");
|
||||
final String yesAnswer = FieldUtils.getString(effectObject.get("yes"), "yes");
|
||||
final String noAnswer = FieldUtils.getString(effectObject.get("no"), "no");
|
||||
String player = FieldUtils.getString(effectObject.get("player"), "player", "you");
|
||||
|
||||
return new DelayedAppender() {
|
||||
@Override
|
||||
protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) {
|
||||
return new PlayoutDecisionEffect(actionContext.getPerformingPlayer(),
|
||||
return new PlayoutDecisionEffect(player,
|
||||
new YesNoDecision(text) {
|
||||
@Override
|
||||
protected void yes() {
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect.requirement;
|
||||
|
||||
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.Requirement;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public class MemoryIs implements RequirementProducer {
|
||||
@Override
|
||||
public Requirement getPlayRequirement(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object, "memory", "value");
|
||||
|
||||
final String memory = FieldUtils.getString(object.get("memory"), "memory");
|
||||
final String value = FieldUtils.getString(object.get("value"), "value");
|
||||
|
||||
return (actionContext) -> {
|
||||
String valueFromMemory = actionContext.getValueFromMemory(memory);
|
||||
return valueFromMemory != null && valueFromMemory.equals(value);
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,7 @@ public class RequirementFactory {
|
||||
requirementProducers.put("phase", new PhaseRequirement());
|
||||
requirementProducers.put("ringisactive", new RingIsActive());
|
||||
requirementProducers.put("memorymatches", new MemoryMatches());
|
||||
requirementProducers.put("memoryis", new MemoryIs());
|
||||
requirementProducers.put("cantspotfpcultures", new CantSpotFPCultures());
|
||||
requirementProducers.put("haveinitiative", new HaveInitiative());
|
||||
requirementProducers.put("fierceskirmish", new FierceSkirmish());
|
||||
|
||||
Reference in New Issue
Block a user