Consolidating KilledBy/Killed -> Killed
This commit is contained in:
@@ -573,9 +573,9 @@
|
|||||||
effects: {
|
effects: {
|
||||||
type: responseEvent
|
type: responseEvent
|
||||||
trigger: {
|
trigger: {
|
||||||
type: killedBy
|
type: killed
|
||||||
filter: character
|
filter: character
|
||||||
by: nazgul
|
killer: nazgul
|
||||||
}
|
}
|
||||||
effect: [
|
effect: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,12 +14,14 @@ import org.json.simple.JSONObject;
|
|||||||
public class Killed implements TriggerCheckerProducer {
|
public class Killed implements TriggerCheckerProducer {
|
||||||
@Override
|
@Override
|
||||||
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
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 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 String memorize = FieldUtils.getString(value.get("memorize"), "memorize");
|
||||||
|
|
||||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||||
|
final FilterableSource byFilterableSource = environment.getFilterFactory().generateFilter(byFilter, environment);
|
||||||
|
|
||||||
return new TriggerChecker() {
|
return new TriggerChecker() {
|
||||||
@Override
|
@Override
|
||||||
@@ -30,7 +32,8 @@ public class Killed implements TriggerCheckerProducer {
|
|||||||
@Override
|
@Override
|
||||||
public boolean accepts(ActionContext actionContext) {
|
public boolean accepts(ActionContext actionContext) {
|
||||||
final Filterable filterable = filterableSource.getFilterable(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) {
|
if (result && memorize != null) {
|
||||||
final PhysicalCard killedCard = ((ForEachKilledResult) actionContext.getEffectResult()).getKilledCard();
|
final PhysicalCard killedCard = ((ForEachKilledResult) actionContext.getEffectResult()).getKilledCard();
|
||||||
actionContext.setCardMemory(memorize, killedCard);
|
actionContext.setCardMemory(memorize, killedCard);
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -54,7 +54,6 @@ public class TriggerCheckerFactory {
|
|||||||
triggerCheckers.put("fpstartedassigning", new FPStartedAssigning());
|
triggerCheckers.put("fpstartedassigning", new FPStartedAssigning());
|
||||||
triggerCheckers.put("heals", new Heals());
|
triggerCheckers.put("heals", new Heals());
|
||||||
triggerCheckers.put("killed", new Killed());
|
triggerCheckers.put("killed", new Killed());
|
||||||
triggerCheckers.put("killedby", new KilledBy());
|
|
||||||
triggerCheckers.put("killedinskirmish", new KilledInSkirmish());
|
triggerCheckers.put("killedinskirmish", new KilledInSkirmish());
|
||||||
triggerCheckers.put("losesinitiative", new LosesInitiative());
|
triggerCheckers.put("losesinitiative", new LosesInitiative());
|
||||||
triggerCheckers.put("losesskirmish", new LosesSkirmish());
|
triggerCheckers.put("losesskirmish", new LosesSkirmish());
|
||||||
|
|||||||
@@ -269,11 +269,7 @@ public class TriggerConditions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean forEachKilled(LotroGame game, EffectResult effectResult, Filterable... filters) {
|
public static boolean forEachKilled(LotroGame game, EffectResult effectResult, Filterable... filters) {
|
||||||
if (effectResult.getType() == EffectResult.Type.FOR_EACH_KILLED) {
|
return forEachKilledBy(game, effectResult, Filters.any, filters);
|
||||||
ForEachKilledResult killResult = (ForEachKilledResult) effectResult;
|
|
||||||
return Filters.and(filters).accepts(game, killResult.getKilledCard());
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean forEachKilledBy(LotroGame game, EffectResult effectResult, Filterable killedBy, Filterable... killed) {
|
public static boolean forEachKilledBy(LotroGame game, EffectResult effectResult, Filterable killedBy, Filterable... killed) {
|
||||||
|
|||||||
Reference in New Issue
Block a user