diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/TriggerConditions.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/TriggerConditions.java index 1e781c213..30307918f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/TriggerConditions.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/TriggerConditions.java @@ -119,8 +119,8 @@ public class TriggerConditions { } public static boolean assignedAgainst(LotroGame game, EffectResult effectResult, Side side, Filterable againstFilter, Filterable... assignedFilters) { - if (effectResult.getType() == EffectResult.Type.CHARACTER_ASSIGNED) { - AssignmentResult assignmentResult = (AssignmentResult) effectResult; + if (effectResult.getType() == EffectResult.Type.ASSIGNED_AGAINST) { + AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult; if (side != null) { if (assignmentResult.getPlayerId().equals(game.getGameState().getCurrentPlayerId())) { if (side == Side.SHADOW) @@ -137,6 +137,24 @@ public class TriggerConditions { return false; } + public static boolean assignedToSkirmish(LotroGame game, EffectResult effectResult, Side side, Filterable... filters) { + if (effectResult.getType() == EffectResult.Type.ASSIGNED_TO_SKIRMISH) { + AssignedToSkirmishResult assignResult = (AssignedToSkirmishResult) effectResult; + if (side != null) { + if (assignResult.getPlayerId().equals(game.getGameState().getCurrentPlayerId())) { + if (side == Side.SHADOW) + return false; + } else { + if (side == Side.FREE_PEOPLE) + return false; + } + } + + return Filters.and(filters).accepts(game.getGameState(), game.getModifiersQuerying(), ((AssignedToSkirmishResult) effectResult).getAssignedCard()); + } + return false; + } + public static boolean forEachCardDrawnOrPutIntoHandByOpponent(LotroGame game, EffectResult effectResult, String playerId) { if (effectResult.getType() == EffectResult.Type.DRAW_CARD_OR_PUT_INTO_HAND) { DrawCardOrPutIntoHandResult drawResult = (DrawCardOrPutIntoHandResult) effectResult; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_244.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_244.java index c39985158..23110828f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_244.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_244.java @@ -56,7 +56,7 @@ public class Card1_244 extends AbstractAttachable { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, Filters.hasAttached(self))) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, null, Filters.hasAttached(self))) { RequiredTriggerAction action = new RequiredTriggerAction(self); List possibleEffects = new LinkedList(); possibleEffects.add( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/gollum/Card10_021.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/gollum/Card10_021.java index 7537c516d..dc5e75b8b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/gollum/Card10_021.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/gollum/Card10_021.java @@ -8,7 +8,6 @@ import com.gempukku.lotro.cards.effects.ChoiceEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; @@ -39,7 +38,7 @@ public class Card10_021 extends AbstractMinion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self)) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, self)) { RequiredTriggerAction action = new RequiredTriggerAction(self); List possibleEffects = new LinkedList(); possibleEffects.add( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_086.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_086.java index c87aaf0e6..1ba311d71 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_086.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/men/Card11_086.java @@ -34,7 +34,7 @@ public class Card11_086 extends AbstractMinion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self)) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, self)) { RequiredTriggerAction action = new RequiredTriggerAction(self); int twilight = Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Side.FREE_PEOPLE, Filters.character, Filters.maxResistance(5)); action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_200.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_200.java index 8665675c2..1ebae015c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_200.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/uruk_hai/Card11_200.java @@ -13,7 +13,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; import java.util.Collections; import java.util.List; @@ -40,7 +40,7 @@ public class Card11_200 extends AbstractMinion { public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.and(Filters.character, Filters.maxResistance(3)), self) && PlayConditions.canSelfExert(self, game)) { - AssignmentResult assignmentResult = (AssignmentResult) effectResult; + AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult; final Set assignedAgainst = assignmentResult.getAgainst(); OptionalTriggerAction action = new OptionalTriggerAction(self); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_078.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_078.java index 5c3af804c..6b45adb94 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_078.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_078.java @@ -9,7 +9,6 @@ import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; @@ -39,7 +38,7 @@ public class Card12_078 extends AbstractMinion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, self) + if (TriggerConditions.assignedToSkirmish(game, effectResult, null, self) && !PlayConditions.location(game, Keyword.PLAINS)) { RequiredTriggerAction action = new RequiredTriggerAction(self); List possibleEffects = new LinkedList(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_092.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_092.java index 92f6825ed..f26752c2a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_092.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_092.java @@ -9,7 +9,6 @@ import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; @@ -39,7 +38,7 @@ public class Card12_092 extends AbstractMinion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, self) + if (TriggerConditions.assignedToSkirmish(game, effectResult, null, self) && !PlayConditions.location(game, Keyword.UNDERGROUND)) { RequiredTriggerAction action = new RequiredTriggerAction(self); List possibleEffects = new LinkedList(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/shire/Card12_129.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/shire/Card12_129.java index b0ffb50b5..8c30b4ddf 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/shire/Card12_129.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/shire/Card12_129.java @@ -41,7 +41,7 @@ public class Card12_129 extends AbstractCompanion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self)) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, self)) { RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( new AddBurdenEffect(self.getOwner(), self, 2)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_149.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_149.java index 04c5a54b7..49edd65ee 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_149.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_149.java @@ -9,7 +9,6 @@ import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; @@ -40,7 +39,7 @@ public class Card12_149 extends AbstractMinion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, self) + if (TriggerConditions.assignedToSkirmish(game, effectResult, null, self) && !PlayConditions.location(game, Keyword.BATTLEGROUND)) { RequiredTriggerAction action = new RequiredTriggerAction(self); List possibleEffects = new LinkedList(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set16/wraith/Card16_002.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set16/wraith/Card16_002.java index fea985b92..efe0a90ee 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set16/wraith/Card16_002.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set16/wraith/Card16_002.java @@ -11,7 +11,7 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.effects.WoundCharactersEffect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; import java.util.Collections; import java.util.List; @@ -39,7 +39,7 @@ public class Card16_002 extends AbstractMinion { if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, CardType.COMPANION, self) && PlayConditions.canSpot(game, Filters.not(self), Culture.WRAITH, Race.WRAITH) && game.getGameState().getTwilightPool() >= 2) { - AssignmentResult assignmentResult = (AssignmentResult) effectResult; + AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult; OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new RemoveTwilightEffect(2)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/orc/Card17_067.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/orc/Card17_067.java index d9bbb52a0..a602ff3aa 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/orc/Card17_067.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/orc/Card17_067.java @@ -16,7 +16,7 @@ import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.effects.AddTwilightEffect; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; import java.util.Collections; import java.util.LinkedList; @@ -53,7 +53,7 @@ public class Card17_067 extends AbstractPermanent { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, CardType.COMPANION, Culture.ORC, Race.ORC, Filters.mounted)) { - AssignmentResult assignResult = (AssignmentResult) effectResult; + AssignAgainstResult assignResult = (AssignAgainstResult) effectResult; PhysicalCard companion = assignResult.getAgainst().iterator().next(); RequiredTriggerAction action = new RequiredTriggerAction(self); action.setText("Assigned " + GameUtils.getCardLink(assignResult.getAssignedCard()) + " to " + GameUtils.getCardLink(companion)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java index 1ea8fe6b5..0b68b7c0b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java @@ -17,7 +17,7 @@ import com.gempukku.lotro.logic.modifiers.Condition; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; import java.util.HashSet; import java.util.List; @@ -70,7 +70,7 @@ public class Card19_039 extends AbstractMinion { data = new HashSet(); self.setWhileInZoneData(data); } - for (PhysicalCard physicalCard : ((AssignmentResult) effectResult).getAgainst()) + for (PhysicalCard physicalCard : ((AssignAgainstResult) effectResult).getAgainst()) data.add(physicalCard.getCardId()); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_170.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_170.java index db5178953..d28a29636 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_170.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_170.java @@ -33,7 +33,7 @@ public class Card4_170 extends AbstractPermanent { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, CardType.ALLY) + if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, CardType.ALLY) && PlayConditions.canPlayFromDiscard(playerId, game, -2, Culture.ISENGARD, CardType.MINION)) { OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_172.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_172.java index 061b783f2..fbea6b4bf 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_172.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_172.java @@ -45,7 +45,7 @@ public class Card4_172 extends AbstractAttachable { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, Filters.hasAttached(self))) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, Filters.hasAttached(self))) { RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( new ExertCharactersEffect(action, self, CardType.ALLY)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_178.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_178.java index 89cd5c0ac..1c94e4304 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_178.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_178.java @@ -13,7 +13,7 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; import java.util.Collections; import java.util.List; @@ -38,7 +38,7 @@ public class Card4_178 extends AbstractMinion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.and(Culture.ISENGARD, Race.MAN), Filters.or(CardType.COMPANION, CardType.ALLY))) { - AssignmentResult assignmentResult = (AssignmentResult) effectResult; + AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult; RequiredTriggerAction action = new RequiredTriggerAction(self); action.setText("Exert " + GameUtils.getCardLink(assignmentResult.getAssignedCard())); action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_336.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_336.java index d4184d266..afd63264b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_336.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_336.java @@ -31,7 +31,7 @@ public class Card4_336 extends AbstractSite { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, Filters.or(CardType.COMPANION, CardType.ALLY))) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, Filters.or(CardType.COMPANION, CardType.ALLY))) { RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( new AddTwilightEffect(self, 1)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_134.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_134.java index d7a1bc304..c80523e6a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_134.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_134.java @@ -13,7 +13,7 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; import java.util.Collections; import java.util.List; @@ -42,7 +42,7 @@ public class Card7_134 extends AbstractMinion { if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self) && PlayConditions.hasInitiative(game, Side.SHADOW)) { OptionalTriggerAction action = new OptionalTriggerAction(self); - AssignmentResult assignment = (AssignmentResult) effectResult; + AssignAgainstResult assignment = (AssignAgainstResult) effectResult; action.appendEffect( new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.assignedAgainst(self))); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gollum/Card8_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gollum/Card8_028.java index e0ee9e7eb..0ccaa55b4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gollum/Card8_028.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gollum/Card8_028.java @@ -70,7 +70,7 @@ public class Card8_028 extends AbstractPermanent { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, Filters.hasAttached(self))) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, null, Filters.hasAttached(self))) { RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( new ExertCharactersEffect(action, self, Filters.hasAttached(self))); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java index 3089cb8ca..c8ad50b97 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java @@ -13,7 +13,7 @@ import com.gempukku.lotro.logic.timing.ActionStack; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.processes.GatherPlayableActionsFromDiscardVisitor; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignedToSkirmishResult; import com.gempukku.lotro.logic.timing.results.CharacterLostSkirmishResult; import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import com.gempukku.lotro.logic.timing.results.PlayCardResult; @@ -81,9 +81,9 @@ public class DefaultActionsEnvironment implements ActionsEnvironment { new AbstractActionProxy() { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult) { - if (effectResult.getType() == EffectResult.Type.CHARACTER_ASSIGNED) { - AssignmentResult assignmentResult = (AssignmentResult) effectResult; - _assignedInTurn.add(assignmentResult.getAssignedCard()); + if (effectResult.getType() == EffectResult.Type.ASSIGNED_TO_SKIRMISH) { + AssignedToSkirmishResult assignResult = (AssignedToSkirmishResult) effectResult; + _assignedInTurn.add(assignResult.getAssignedCard()); } return null; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentEffect.java index 009f454fd..48bc617fa 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentEffect.java @@ -7,7 +7,8 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.timing.AbstractEffect; import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; +import com.gempukku.lotro.logic.timing.results.AssignedToSkirmishResult; import java.util.Collections; @@ -52,11 +53,16 @@ public class AssignmentEffect extends AbstractEffect { @Override protected FullEffectResult playEffectReturningResult(LotroGame game) { if (isPlayableInFull(game)) { + if (Filters.notAssignedToSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), _fpChar)) + game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(_fpChar, _playerId)); + if (Filters.notAssignedToSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), _minion)) + game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(_minion, _playerId)); + game.getGameState().sendMessage(_playerId + " assigns " + GameUtils.getCardLink(_minion) + " to skirmish " + GameUtils.getCardLink(_fpChar)); game.getGameState().assignToSkirmishes(_fpChar, Collections.singleton(_minion)); - game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, _fpChar, _minion)); - game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, _minion, _fpChar)); + game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, _fpChar, _minion)); + game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, _minion, _fpChar)); assignmentMadeCallback(_fpChar, _minion); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentPhaseEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentPhaseEffect.java index a2a53cf79..1e6a6f4af 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentPhaseEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AssignmentPhaseEffect.java @@ -1,10 +1,12 @@ package com.gempukku.lotro.logic.effects; +import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.timing.AbstractEffect; import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; +import com.gempukku.lotro.logic.timing.results.AssignedToSkirmishResult; import java.util.HashMap; import java.util.Map; @@ -50,11 +52,18 @@ public class AssignmentPhaseEffect extends AbstractEffect { for (Map.Entry> physicalCardListEntry : _assignments.entrySet()) { PhysicalCard fpChar = physicalCardListEntry.getKey(); Set minions = physicalCardListEntry.getValue(); + + if (Filters.notAssignedToSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), fpChar)) + game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(fpChar, _playerId)); + for (PhysicalCard notAssignedMinion : Filters.filter(minions, game.getGameState(), game.getModifiersQuerying(), Filters.notAssignedToSkirmish)) + game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(notAssignedMinion, _playerId)); + game.getGameState().assignToSkirmishes(fpChar, minions); - game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, fpChar, minions)); + + game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, fpChar, minions)); for (PhysicalCard minion : minions) - game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, minion, fpChar)); + game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, minion, fpChar)); } return new FullEffectResult(true); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java index e5359291e..c8ea96d74 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java @@ -50,7 +50,7 @@ public abstract class EffectResult { CHARACTER_WON_SKIRMISH, CHARACTER_LOST_SKIRMISH, - CHARACTER_ASSIGNED, CARD_TRANSFERRED, + ASSIGNED_AGAINST, ASSIGNED_TO_SKIRMISH, CARD_TRANSFERRED, REPLACE_SITE, TAKE_CONTROL_OF_SITE } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignmentResult.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignAgainstResult.java similarity index 65% rename from gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignmentResult.java rename to gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignAgainstResult.java index fffeb9aa1..e71542bb4 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignmentResult.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignAgainstResult.java @@ -6,20 +6,20 @@ import com.gempukku.lotro.logic.timing.EffectResult; import java.util.Collections; import java.util.Set; -public class AssignmentResult extends EffectResult { +public class AssignAgainstResult extends EffectResult { private String _playerId; private PhysicalCard _assignedCard; private Set _against; - public AssignmentResult(String playerId, PhysicalCard assignedCard, PhysicalCard against) { - super(EffectResult.Type.CHARACTER_ASSIGNED); + public AssignAgainstResult(String playerId, PhysicalCard assignedCard, PhysicalCard against) { + super(Type.ASSIGNED_AGAINST); _playerId = playerId; _assignedCard = assignedCard; _against = Collections.singleton(against); } - public AssignmentResult(String playerId, PhysicalCard assignedCard, Set against) { - super(EffectResult.Type.CHARACTER_ASSIGNED); + public AssignAgainstResult(String playerId, PhysicalCard assignedCard, Set against) { + super(Type.ASSIGNED_AGAINST); _playerId = playerId; _assignedCard = assignedCard; _against = against; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignedToSkirmishResult.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignedToSkirmishResult.java new file mode 100644 index 000000000..21245f35b --- /dev/null +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/AssignedToSkirmishResult.java @@ -0,0 +1,23 @@ +package com.gempukku.lotro.logic.timing.results; + +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.timing.EffectResult; + +public class AssignedToSkirmishResult extends EffectResult { + private PhysicalCard _assigned; + private String _playerId; + + public AssignedToSkirmishResult(PhysicalCard assigned, String playerId) { + super(Type.ASSIGNED_TO_SKIRMISH); + _assigned = assigned; + _playerId = playerId; + } + + public PhysicalCard getAssignedCard() { + return _assigned; + } + + public String getPlayerId() { + return _playerId; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/AmbushRule.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/AmbushRule.java index ac7b9eed7..6ccc1cffc 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/AmbushRule.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/AmbushRule.java @@ -11,7 +11,7 @@ import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.effects.AddTwilightEffect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.AssignmentResult; +import com.gempukku.lotro.logic.timing.results.AssignAgainstResult; import java.util.Collections; import java.util.List; @@ -28,8 +28,8 @@ public class AmbushRule { new AbstractActionProxy() { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult) { - if (effectResult.getType() == EffectResult.Type.CHARACTER_ASSIGNED) { - AssignmentResult assignmentResult = (AssignmentResult) effectResult; + if (effectResult.getType() == EffectResult.Type.ASSIGNED_AGAINST) { + AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult; if (assignmentResult.getPlayerId().equals(game.getGameState().getCurrentPlayerId())) { PhysicalCard assignedCard = assignmentResult.getAssignedCard(); if (Filters.and(CardType.MINION, Keyword.AMBUSH, Filters.owner(playerId)).accepts(game.getGameState(), game.getModifiersQuerying(), assignedCard)) { diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html index e36e8ed15..528e19d85 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html @@ -9,6 +9,7 @@ response.setDateHeader ("Expires", -1); - If FP player uses Muster, shadow player is now also able to use it. - "Gnawing, Biting, Hacking, Burning" and similar cards should now allow to stack multiple minions if they are discarded at the same time. +- "Assigned to skirmish" will now trigger only when the character became assigned (was not before an action, but is now). 03 Jan. 2013 - "Legolas, Elven Comrade" now should automatically allow to choose a minion skirmishing an unbound companion.