diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set16.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set16.json index 17bc5fabc..6d314def3 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set16.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set16.json @@ -52,7 +52,7 @@ "type": "trigger", "optional": true, "trigger": { - "type": "assignedToSkirmish", + "type": "assignedAgainst", "side": "free people", "filter": "self", "against": "companion", @@ -86,7 +86,7 @@ "type": "trigger", "optional": true, "trigger": { - "type": "assignedToSkirmish", + "type": "assignedAgainst", "side": "free people", "filter": "self", "against": "companion" @@ -118,7 +118,7 @@ "type": "trigger", "optional": true, "trigger": { - "type": "assignedToSkirmish", + "type": "assignedAgainst", "side": "free people", "filter": "self", "against": "companion" diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set19.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set19.json index e3729a02a..a3927bbd0 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set19.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set19.json @@ -1459,7 +1459,7 @@ { "type": "trigger", "trigger": { - "type": "assignedToSkirmish", + "type": "assignedAgainst", "filter": "self", "memorizeAgainst": "against" }, diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-sauron.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-sauron.json index 8146c868b..8a9c922dd 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-sauron.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-sauron.json @@ -800,7 +800,7 @@ "effects": { "type": "trigger", "trigger": { - "type": "assignedToSkirmish", + "type": "assignedAgainst", "filter": "self", "against": "companion", "memorizeAgainst": "assignedAgainst" diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-wraith.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-wraith.json index d3a26435b..7c61d17aa 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-wraith.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-wraith.json @@ -554,7 +554,7 @@ "effects": { "type": "responseEvent", "trigger": { - "type": "assignedToSkirmish", + "type": "assignedAgainst", "side": "free people", "filter": "hobbit", "against": "nazgul", diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html index 7c6151840..681a4780b 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html @@ -1,7 +1,15 @@
Most recent update
-2021 December 21 - A
+2021 December 22 - A
+- Fixed I Would Have Gone With You to the End (V1_23) permitting the use of any stacked cards for its ability.
+- Fixed Gaze of the Eye's image not showing the uniqueness dot.
+- Fixed Desperate Defense of the Ring (1R244) triggering each time minions are added to that companion's skirmish, instead of once per total assignment.
+- Due to the above fix, several other cards also had their underlying code for assignment triggers affected.
+ If you see any issues with cards that trigger upon being assigned (such as the set 16 wraiths), please let us know!
+
+
+2021 December 21
- NEW ERRATA: Great Hill Troll (8C102).
Twilight Cost: 9 -> 10
Game Text:
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AssignedAgainst.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AssignedAgainst.java
new file mode 100644
index 000000000..776d54ae9
--- /dev/null
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AssignedAgainst.java
@@ -0,0 +1,52 @@
+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.common.Side;
+import com.gempukku.lotro.logic.timing.TriggerConditions;
+import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
+import org.json.simple.JSONObject;
+
+public class AssignedAgainst implements TriggerCheckerProducer {
+ @Override
+ public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
+ FieldUtils.validateAllowedFields(value, "filter", "side", "against", "memorizeAgainst", "memorizeAssigned");
+
+ final String filter = FieldUtils.getString(value.get("filter"), "filter", "any");
+ final String against = FieldUtils.getString(value.get("against"), "against", "any");
+ final String memorizeAssigned = FieldUtils.getString(value.get("memorizeAssigned"), "memorizeAssigned");
+ final String memorizeAgainst = FieldUtils.getString(value.get("memorizeAgainst"), "memorizeAgainst");
+ final Side side = FieldUtils.getEnum(Side.class, value.get("side"), "side");
+
+ final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
+ final FilterableSource againstSource = environment.getFilterFactory().generateFilter(against, environment);
+
+ return new TriggerChecker() {
+ @Override
+ public boolean isBefore() {
+ return false;
+ }
+
+ @Override
+ public boolean accepts(ActionContext actionContext) {
+ final Filterable assignedFilterable = filterableSource.getFilterable(actionContext);
+ final Filterable againstFilterable = againstSource.getFilterable(actionContext);
+ final boolean result = TriggerConditions.assignedAgainst(actionContext.getGame(), actionContext.getEffectResult(), side,
+ againstFilterable, assignedFilterable);
+ if (result && memorizeAgainst != null) {
+ AssignAgainstResult assignmentResult = (AssignAgainstResult) actionContext.getEffectResult();
+ actionContext.setCardMemory(memorizeAgainst, assignmentResult.getAgainst());
+ }
+ if (result && memorizeAssigned != null) {
+ AssignAgainstResult assignmentResult = (AssignAgainstResult) actionContext.getEffectResult();
+ actionContext.setCardMemory(memorizeAssigned, assignmentResult.getAssignedCard());
+ }
+ return result;
+ }
+ };
+ }
+}
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AssignedToSkirmish.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AssignedToSkirmish.java
index c7c93e25d..8c1c82135 100644
--- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AssignedToSkirmish.java
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AssignedToSkirmish.java
@@ -14,16 +14,13 @@ import org.json.simple.JSONObject;
public class AssignedToSkirmish implements TriggerCheckerProducer {
@Override
public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
- FieldUtils.validateAllowedFields(value, "filter", "side", "against", "memorizeAgainst", "memorizeAssigned");
+ FieldUtils.validateAllowedFields(value, "filter", "side", "memorize");
final String filter = FieldUtils.getString(value.get("filter"), "filter", "any");
- final String against = FieldUtils.getString(value.get("against"), "against", "any");
- final String memorizeAssigned = FieldUtils.getString(value.get("memorizeAssigned"), "memorizeAssigned");
- final String memorizeAgainst = FieldUtils.getString(value.get("memorizeAgainst"), "memorizeAgainst");
+ final String memorize = FieldUtils.getString(value.get("memorize"), "memorize");
final Side side = FieldUtils.getEnum(Side.class, value.get("side"), "side");
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
- final FilterableSource againstSource = environment.getFilterFactory().generateFilter(against, environment);
return new TriggerChecker() {
@Override
@@ -34,16 +31,10 @@ public class AssignedToSkirmish implements TriggerCheckerProducer {
@Override
public boolean accepts(ActionContext actionContext) {
final Filterable assignedFilterable = filterableSource.getFilterable(actionContext);
- final Filterable againstFilterable = againstSource.getFilterable(actionContext);
- final boolean result = TriggerConditions.assignedAgainst(actionContext.getGame(), actionContext.getEffectResult(), side,
- againstFilterable, assignedFilterable);
- if (result && memorizeAgainst != null) {
+ final boolean result = TriggerConditions.assignedToSkirmish(actionContext.getGame(), actionContext.getEffectResult(), side, assignedFilterable);
+ if (result && memorize != null) {
AssignAgainstResult assignmentResult = (AssignAgainstResult) actionContext.getEffectResult();
- actionContext.setCardMemory(memorizeAgainst, assignmentResult.getAgainst());
- }
- if (result && memorizeAssigned != null) {
- AssignAgainstResult assignmentResult = (AssignAgainstResult) actionContext.getEffectResult();
- actionContext.setCardMemory(memorizeAssigned, assignmentResult.getAssignedCard());
+ actionContext.setCardMemory(memorize, assignmentResult.getAssignedCard());
}
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 21b9f00ac..25772ff94 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
@@ -20,6 +20,7 @@ public class TriggerCheckerFactory {
triggerCheckers.put("activated", new ActivatedTriggerCheckerProducer());
triggerCheckers.put("addsburden", new AddsBurden());
triggerCheckers.put("addsthreat", new AddsThreat());
+ triggerCheckers.put("assignedagainst", new AssignedAgainst());
triggerCheckers.put("assignedtoskirmish", new AssignedToSkirmish());
triggerCheckers.put("cancelledskirmish", new CancelledSkirmish());
triggerCheckers.put("condition", new ConditionTrigger());