From 1a8ba7b7ebc7c463f2b9d6549cd0579e99d537d6 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Mon, 23 Sep 2019 09:04:03 -0700 Subject: [PATCH] Fixing couple of bugs --- .../src/main/web/cards/set1/set1-elven.json | 1 + .../src/main/web/cards/set40/set40.json | 9 ++++++ .../field/effect/EffectAppenderFactory.java | 1 + .../effect/appender/ResetWhileInZoneData.java | 32 +++++++++++++++++++ .../effects/IncrementPhaseLimitEffect.java | 6 ++-- 5 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ResetWhileInZoneData.java diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-elven.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-elven.json index c6eac6fe9..e3078986b 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-elven.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-elven.json @@ -202,6 +202,7 @@ { "type": "discardFromHand", "hand": "shadowPlayer", + "player": "shadowPlayer", "forced": true, "count": { "type": "forEachMatchingInMemory", diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40.json index faad6bd0b..d33601031 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40.json @@ -378,6 +378,15 @@ "type": "appendCardIdsToWhileInZone", "memory": "playedNazgul" } + }, + { + "type": "trigger", + "trigger": { + "type": "endOfTurn" + }, + "effect": { + "type": "resetWhileInZoneData" + } } ] }, diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java index d1f809851..2cde12c46 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java @@ -102,6 +102,7 @@ public class EffectAppenderFactory { effectAppenderProducers.put("makeselfringbearer", new MakeSelfRingBearer()); effectAppenderProducers.put("choosearace", new ChooseARace()); effectAppenderProducers.put("storewhileinzone", new StoreWhileInZone()); + effectAppenderProducers.put("resetwhileinzonedata", new ResetWhileInZoneData()); effectAppenderProducers.put("appendcardidstowhileinzone", new AppendCardIdsToWhileInZone()); effectAppenderProducers.put("corruptringbearer", new CorruptRingBearer()); effectAppenderProducers.put("kill", new Kill()); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ResetWhileInZoneData.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ResetWhileInZoneData.java new file mode 100644 index 000000000..dd10e07e0 --- /dev/null +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ResetWhileInZoneData.java @@ -0,0 +1,32 @@ +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.field.FieldUtils; +import com.gempukku.lotro.cards.build.field.effect.EffectAppender; +import com.gempukku.lotro.cards.build.field.effect.EffectAppenderProducer; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.actions.CostToEffectAction; +import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.timing.UnrespondableEffect; +import org.json.simple.JSONObject; + +public class ResetWhileInZoneData implements EffectAppenderProducer { + @Override + public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { + FieldUtils.validateAllowedFields(effectObject); + + return new DelayedAppender() { + @Override + protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) { + return new UnrespondableEffect() { + @Override + protected void doPlayEffect(LotroGame game) { + actionContext.getSource().setWhileInZoneData(null); + } + }; + } + }; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/IncrementPhaseLimitEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/IncrementPhaseLimitEffect.java index 9ed7aa2c9..1ce60e164 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/IncrementPhaseLimitEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/IncrementPhaseLimitEffect.java @@ -12,15 +12,15 @@ public class IncrementPhaseLimitEffect extends UnrespondableEffect { private String prefix; public IncrementPhaseLimitEffect(PhysicalCard card, int limit) { - this(card, null, "", 1); + this(card, null, "", limit); } public IncrementPhaseLimitEffect(PhysicalCard card, Phase phase, int limit) { - this(card, phase, "", 1); + this(card, phase, "", limit); } public IncrementPhaseLimitEffect(PhysicalCard card, String prefix, int limit) { - this(card, null, "", 1); + this(card, null, prefix, limit); } private IncrementPhaseLimitEffect(PhysicalCard card, Phase phase, String prefix, int limit) {