From 6de6fd479de09535510a1f6bd4e2298c714a2ced Mon Sep 17 00:00:00 2001 From: marcins78 Date: Thu, 3 Jan 2013 16:06:02 +0000 Subject: [PATCH] "Sneak Attack" --- ...ava => CantBeAssignedAgainstModifier.java} | 6 +-- .../lotro/cards/set1/isengard/Card1_147.java | 4 +- .../lotro/cards/set12/orc/Card12_094.java | 4 +- .../cards/set12/uruk_hai/Card12_156.java | 4 +- .../lotro/cards/set15/men/Card15_072.java | 4 +- .../lotro/cards/set19/moria/Card19_018.java | 4 +- .../lotro/cards/set19/wraith/Card19_038.java | 4 +- .../lotro/cards/set19/wraith/Card19_039.java | 4 +- .../lotro/cards/set20/dunland/Card20_028.java | 50 +++++++++++++++++++ .../lotro/cards/set6/moria/Card6_076.java | 4 +- 10 files changed, 69 insertions(+), 19 deletions(-) rename gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/{PreventMinionBeingAssignedToCharacterModifier.java => CantBeAssignedAgainstModifier.java} (76%) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dunland/Card20_028.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PreventMinionBeingAssignedToCharacterModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CantBeAssignedAgainstModifier.java similarity index 76% rename from gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PreventMinionBeingAssignedToCharacterModifier.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CantBeAssignedAgainstModifier.java index edd3f3005..91c38e04e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PreventMinionBeingAssignedToCharacterModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CantBeAssignedAgainstModifier.java @@ -12,17 +12,17 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import java.util.Set; -public class PreventMinionBeingAssignedToCharacterModifier extends AbstractModifier { +public class CantBeAssignedAgainstModifier extends AbstractModifier { private Side _side; private Filterable _minionFilter; - public PreventMinionBeingAssignedToCharacterModifier(PhysicalCard source, Side side, Filterable characterFilter, Filterable minionFilter) { + public CantBeAssignedAgainstModifier(PhysicalCard source, Side side, Filterable characterFilter, Filterable minionFilter) { super(source, "Is affected by assignment restriction", characterFilter, ModifierEffect.ASSIGNMENT_MODIFIER); _side = side; _minionFilter = minionFilter; } - public PreventMinionBeingAssignedToCharacterModifier(PhysicalCard source, Side side, Filterable characterFilter, Condition condition, Filterable minionFilter) { + public CantBeAssignedAgainstModifier(PhysicalCard source, Side side, Filterable characterFilter, Condition condition, Filterable minionFilter) { super(source, "Is affected by assignment restriction", characterFilter, condition, ModifierEffect.ASSIGNMENT_MODIFIER); _side = side; _minionFilter = minionFilter; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_147.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_147.java index d4fd25252..69cc03104 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_147.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_147.java @@ -4,7 +4,7 @@ import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -46,7 +46,7 @@ public class Card1_147 extends AbstractMinion { protected void cardSelected(LotroGame game, PhysicalCard companion) { action.appendEffect( new AddUntilEndOfPhaseModifierEffect( - new PreventMinionBeingAssignedToCharacterModifier(self, Side.FREE_PEOPLE, Filters.sameCard(companion), self) + new CantBeAssignedAgainstModifier(self, Side.FREE_PEOPLE, Filters.sameCard(companion), self) , Phase.ASSIGNMENT)); } }); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_094.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_094.java index 734877cc9..76844d964 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_094.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/orc/Card12_094.java @@ -4,7 +4,7 @@ import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Phase; @@ -47,7 +47,7 @@ public class Card12_094 extends AbstractMinion { protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendEffect( new AddUntilStartOfPhaseModifierEffect( - new PreventMinionBeingAssignedToCharacterModifier(self, null, card, self), Phase.REGROUP)); + new CantBeAssignedAgainstModifier(self, null, card, self), Phase.REGROUP)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_156.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_156.java index 17f1bbe05..bf12a3827 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_156.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/uruk_hai/Card12_156.java @@ -4,7 +4,7 @@ import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -47,7 +47,7 @@ public class Card12_156 extends AbstractMinion { protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendEffect( new AddUntilEndOfPhaseModifierEffect( - new PreventMinionBeingAssignedToCharacterModifier(self, Side.FREE_PEOPLE, card, self), Phase.ASSIGNMENT)); + new CantBeAssignedAgainstModifier(self, Side.FREE_PEOPLE, card, self), Phase.ASSIGNMENT)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java index 2cf1b1de9..2a911314f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/men/Card15_072.java @@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set15.men; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.SelfExertEffect; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -24,7 +24,7 @@ public class Card15_072 extends AbstractMinion { @Override public Modifier getAlwaysOnModifier(PhysicalCard self) { - return new PreventMinionBeingAssignedToCharacterModifier(self, Side.FREE_PEOPLE, CardType.COMPANION, new SpotCondition(self, Filters.unwounded), self); + return new CantBeAssignedAgainstModifier(self, Side.FREE_PEOPLE, CardType.COMPANION, new SpotCondition(self, Filters.unwounded), self); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/moria/Card19_018.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/moria/Card19_018.java index 6453facd0..e9892eb21 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/moria/Card19_018.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/moria/Card19_018.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.cards.set19.moria; import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.cards.modifiers.ShouldSkipPhaseModifier; import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition; import com.gempukku.lotro.common.*; @@ -40,7 +40,7 @@ public class Card19_018 extends AbstractMinion { modifiers.add( new ShouldSkipPhaseModifier(self, new LocationCondition(Keyword.UNDERGROUND), Phase.MANEUVER)); modifiers.add( - new PreventMinionBeingAssignedToCharacterModifier(self, null, Filters.and(CardType.COMPANION, Filters.lessStrengthThan(7)), + new CantBeAssignedAgainstModifier(self, null, Filters.and(CardType.COMPANION, Filters.lessStrengthThan(7)), new LocationCondition(Keyword.UNDERGROUND), self)); return modifiers; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_038.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_038.java index bd79c2830..2dc0ce372 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_038.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_038.java @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set19.wraith; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.TriggerConditions; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; @@ -41,7 +41,7 @@ public class Card19_038 extends AbstractMinion { @Override public Modifier getAlwaysOnModifier(final PhysicalCard self) { - return new PreventMinionBeingAssignedToCharacterModifier(self, Side.FREE_PEOPLE, + return new CantBeAssignedAgainstModifier(self, Side.FREE_PEOPLE, Filters.and(CardType.COMPANION, new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { 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 16b9258e9..1ea8fe6b5 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 @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set19.wraith; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.TriggerConditions; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Names; @@ -43,7 +43,7 @@ public class Card19_039 extends AbstractMinion { @Override public Modifier getAlwaysOnModifier(final PhysicalCard self) { - return new PreventMinionBeingAssignedToCharacterModifier(self, null, + return new CantBeAssignedAgainstModifier(self, null, new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dunland/Card20_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dunland/Card20_028.java new file mode 100644 index 000000000..00a273cac --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dunland/Card20_028.java @@ -0,0 +1,50 @@ +package com.gempukku.lotro.cards.set20.dunland; + +import com.gempukku.lotro.cards.AbstractEvent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; +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.effects.ChooseActiveCardEffect; + +/** + * 2 + * Sneak Attack + * Dunland Event • Assignment + * Spot a [Dunland] Man and a site you control to spot an unbound companion. Until the regroup phase, + * that companion may not be assigned to skirmish a [Dunland] man. + */ +public class Card20_028 extends AbstractEvent { + public Card20_028() { + super(Side.SHADOW, 2, Culture.DUNLAND, "Sneak Attack", Phase.ASSIGNMENT); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, int twilightModifier, boolean ignoreRoamingPenalty, boolean ignoreCheckingDeadPile) { + return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, twilightModifier, ignoreRoamingPenalty, ignoreCheckingDeadPile) + && PlayConditions.canSpot(game, Culture.DUNLAND, Race.MAN) + && PlayConditions.canSpot(game, Filters.siteControlled(playerId)); + } + + @Override + public PlayEventAction getPlayCardAction(String playerId, LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { + final PlayEventAction action = new PlayEventAction(self); + action.appendEffect( + new ChooseActiveCardEffect(self, playerId, "Choose an unbound companion", Filters.unboundCompanion) { + @Override + protected void cardSelected(LotroGame game, PhysicalCard companion) { + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new CantBeAssignedAgainstModifier(self, null, companion, Filters.and(Culture.DUNLAND, Race.MAN)), Phase.REGROUP)); + } + }); + return action; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_076.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_076.java index fcbfc30bd..52cd2255b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_076.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_076.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.cards.set6.moria; import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.cards.modifiers.PreventMinionBeingAssignedToCharacterModifier; +import com.gempukku.lotro.cards.modifiers.CantBeAssignedAgainstModifier; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -44,7 +44,7 @@ public class Card6_076 extends AbstractMinion { @Override public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { return Collections.singletonList( - new PreventMinionBeingAssignedToCharacterModifier(self, null, + new CantBeAssignedAgainstModifier(self, null, Filters.and(Filters.or(CardType.COMPANION, CardType.ALLY), Filters.lessStrengthThan(6)), self)); } }