diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Ringwraith.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Ringwraith.hjson index 79b4f7ec0..bcf943deb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Ringwraith.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Ringwraith.hjson @@ -573,9 +573,9 @@ effects: { type: responseEvent trigger: { - type: killedBy + type: killed filter: character - by: nazgul + killer: nazgul } effect: [ { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/Killed.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/Killed.java index 95579dcbf..ce073f892 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/Killed.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/Killed.java @@ -14,12 +14,14 @@ import org.json.simple.JSONObject; public class Killed implements TriggerCheckerProducer { @Override public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(value, "filter", "memorize"); + FieldUtils.validateAllowedFields(value, "filter", "killer", "memorize"); final String filter = FieldUtils.getString(value.get("filter"), "filter", "any"); + final String byFilter = FieldUtils.getString(value.get("killer"), "killer", "any"); final String memorize = FieldUtils.getString(value.get("memorize"), "memorize"); final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment); + final FilterableSource byFilterableSource = environment.getFilterFactory().generateFilter(byFilter, environment); return new TriggerChecker() { @Override @@ -30,7 +32,8 @@ public class Killed implements TriggerCheckerProducer { @Override public boolean accepts(ActionContext actionContext) { final Filterable filterable = filterableSource.getFilterable(actionContext); - final boolean result = TriggerConditions.forEachKilled(actionContext.getGame(), actionContext.getEffectResult(), filterable); + Filterable byFilterable = byFilterableSource.getFilterable(actionContext); + final boolean result = TriggerConditions.forEachKilledBy(actionContext.getGame(), actionContext.getEffectResult(), byFilterable, filterable); if (result && memorize != null) { final PhysicalCard killedCard = ((ForEachKilledResult) actionContext.getEffectResult()).getKilledCard(); actionContext.setCardMemory(memorize, killedCard); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/KilledBy.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/KilledBy.java deleted file mode 100644 index 2ba98f27e..000000000 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/KilledBy.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gempukku.lotro.cards.build.field.effect.trigger; - -import com.gempukku.lotro.cards.build.ActionContext; -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.field.FieldUtils; -import com.gempukku.lotro.common.Filterable; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.timing.results.ForEachKilledResult; -import org.json.simple.JSONObject; - -public class KilledBy implements TriggerCheckerProducer { - @Override - public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(value, "filter", "by", "memorize"); - - final String filter = FieldUtils.getString(value.get("filter"), "filter", "any"); - final String byFilter = FieldUtils.getString(value.get("by"), "by", "any"); - final String memorize = FieldUtils.getString(value.get("memorize"), "memorize"); - - final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment); - final FilterableSource byFilterableSource = environment.getFilterFactory().generateFilter(byFilter, environment); - - return new TriggerChecker() { - @Override - public boolean isBefore() { - return false; - } - - @Override - public boolean accepts(ActionContext actionContext) { - final Filterable filterable = filterableSource.getFilterable(actionContext); - Filterable byFilterable = byFilterableSource.getFilterable(actionContext); - final boolean result = TriggerConditions.forEachKilledBy(actionContext.getGame(), actionContext.getEffectResult(), byFilterable, filterable); - if (result && memorize != null) { - final PhysicalCard killedCard = ((ForEachKilledResult) actionContext.getEffectResult()).getKilledCard(); - actionContext.setCardMemory(memorize, killedCard); - } - return result; - } - }; - } -} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java index 0005ba36c..a33e0aa9b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java @@ -54,7 +54,6 @@ public class TriggerCheckerFactory { triggerCheckers.put("fpstartedassigning", new FPStartedAssigning()); triggerCheckers.put("heals", new Heals()); triggerCheckers.put("killed", new Killed()); - triggerCheckers.put("killedby", new KilledBy()); triggerCheckers.put("killedinskirmish", new KilledInSkirmish()); triggerCheckers.put("losesinitiative", new LosesInitiative()); triggerCheckers.put("losesskirmish", new LosesSkirmish()); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TriggerConditions.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TriggerConditions.java index 04d411b91..c0b8a4fbc 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TriggerConditions.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TriggerConditions.java @@ -269,11 +269,7 @@ public class TriggerConditions { } public static boolean forEachKilled(LotroGame game, EffectResult effectResult, Filterable... filters) { - if (effectResult.getType() == EffectResult.Type.FOR_EACH_KILLED) { - ForEachKilledResult killResult = (ForEachKilledResult) effectResult; - return Filters.and(filters).accepts(game, killResult.getKilledCard()); - } - return false; + return forEachKilledBy(game, effectResult, Filters.any, filters); } public static boolean forEachKilledBy(LotroGame game, EffectResult effectResult, Filterable killedBy, Filterable... killed) {