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());