From 6a1cb9c217634b412efe41c0d5f3708841a12be4 Mon Sep 17 00:00:00 2001 From: marcins78 Date: Thu, 7 Feb 2013 16:01:05 +0000 Subject: [PATCH] "Orc Skulker" --- ...ventsOrPhaseSpecialAbilitiesModifier.java} | 6 +-- ...ventsOrPhaseSpecialAbilitiesModifier.java} | 6 +-- ...tUseCardPhaseSpecialAbilitiesModifier.java | 37 +++++++++++++++++++ ...sCantUseCardSpecialAbilitiesModifier.java} | 6 +-- .../lotro/cards/set1/isengard/Card1_138.java | 4 +- .../lotro/cards/set1/site/Card1_363.java | 6 +-- .../cards/set17/uruk_hai/Card17_133.java | 4 +- .../lotro/cards/set18/gandalf/Card18_025.java | 4 +- .../cards/set19/isengard/Card19_016.java | 4 +- .../lotro/cards/set20/sauron/Card20_370.java | 31 ++++++++++++++++ 10 files changed, 88 insertions(+), 20 deletions(-) rename gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/{PlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java => PlayerCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java} (73%) rename gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/{PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier.java => PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java} (72%) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseCardPhaseSpecialAbilitiesModifier.java rename gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/{PlayersCantUseSpecialAbilitiesModifier.java => PlayersCantUseCardSpecialAbilitiesModifier.java} (77%) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_370.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayerCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java similarity index 73% rename from gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayerCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java index df60d1487..028e2777c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayerCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java @@ -9,15 +9,15 @@ import com.gempukku.lotro.logic.modifiers.ModifierEffect; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.timing.Action; -public class PlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier extends AbstractModifier { +public class PlayerCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier extends AbstractModifier { private String _playerId; private Phase _phase; - public PlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier(PhysicalCard source, String playerId, Phase phase) { + public PlayerCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(PhysicalCard source, String playerId, Phase phase) { this(source, null, playerId, phase); } - public PlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier(PhysicalCard source, Condition condition, String playerId, Phase phase) { + public PlayerCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(PhysicalCard source, Condition condition, String playerId, Phase phase) { super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER); _playerId = playerId; _phase = phase; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java similarity index 72% rename from gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java index cfc6d76c6..a710ed6db 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier.java @@ -9,14 +9,14 @@ import com.gempukku.lotro.logic.modifiers.ModifierEffect; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.timing.Action; -public class PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier extends AbstractModifier { +public class PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier extends AbstractModifier { private Phase _phase; - public PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier(PhysicalCard source, Phase phase) { + public PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(PhysicalCard source, Phase phase) { this(source, null, phase); } - public PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Phase phase) { + public PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Phase phase) { super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER); _phase = phase; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseCardPhaseSpecialAbilitiesModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseCardPhaseSpecialAbilitiesModifier.java new file mode 100644 index 000000000..b9b1cce42 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseCardPhaseSpecialAbilitiesModifier.java @@ -0,0 +1,37 @@ +package com.gempukku.lotro.cards.modifiers; + +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.GameState; +import com.gempukku.lotro.logic.modifiers.AbstractModifier; +import com.gempukku.lotro.logic.modifiers.Condition; +import com.gempukku.lotro.logic.modifiers.ModifierEffect; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; +import com.gempukku.lotro.logic.timing.Action; + +public class PlayersCantUseCardPhaseSpecialAbilitiesModifier extends AbstractModifier { + + private Phase _phase; + private Filterable[] _sourceFilters; + + public PlayersCantUseCardPhaseSpecialAbilitiesModifier(PhysicalCard source, Phase phase, Filterable... sourceFilters) { + this(source, null, phase, sourceFilters); + } + + public PlayersCantUseCardPhaseSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Phase phase, Filterable... sourceFilters) { + super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER); + _phase = phase; + _sourceFilters = sourceFilters; + } + + @Override + public boolean canPlayAction(GameState gameState, ModifiersQuerying modifiersQuerying, String performingPlayer, Action action) { + if (action.getType() == Action.Type.SPECIAL_ABILITY + && action.getActionTimeword() == _phase + && Filters.and(_sourceFilters).accepts(gameState, modifiersQuerying, action.getActionSource())) + return false; + return true; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseSpecialAbilitiesModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseCardSpecialAbilitiesModifier.java similarity index 77% rename from gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseSpecialAbilitiesModifier.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseCardSpecialAbilitiesModifier.java index 86bd8977b..a30afcf86 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseSpecialAbilitiesModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/PlayersCantUseCardSpecialAbilitiesModifier.java @@ -10,15 +10,15 @@ import com.gempukku.lotro.logic.modifiers.ModifierEffect; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.timing.Action; -public class PlayersCantUseSpecialAbilitiesModifier extends AbstractModifier { +public class PlayersCantUseCardSpecialAbilitiesModifier extends AbstractModifier { private Filterable[] _sourceFilters; - public PlayersCantUseSpecialAbilitiesModifier(PhysicalCard source, Filterable... sourceFilters) { + public PlayersCantUseCardSpecialAbilitiesModifier(PhysicalCard source, Filterable... sourceFilters) { this(source, null, sourceFilters); } - public PlayersCantUseSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Filterable... sourceFilters) { + public PlayersCantUseCardSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Filterable... sourceFilters) { super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER); _sourceFilters = sourceFilters; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_138.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_138.java index 054364769..d9e246209 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_138.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_138.java @@ -6,7 +6,7 @@ import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.actions.AttachPermanentAction; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.cards.modifiers.PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier; +import com.gempukku.lotro.cards.modifiers.PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier; import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filter; @@ -57,7 +57,7 @@ public class Card1_138 extends AbstractAttachable { @Override public Modifier getAlwaysOnModifier(final PhysicalCard self) { - return new PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier(self, new LocationCondition(Filters.hasAttached(self)), Phase.SKIRMISH); + return new PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(self, new LocationCondition(Filters.hasAttached(self)), Phase.SKIRMISH); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_363.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_363.java index 828773aa9..316b54ce0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_363.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_363.java @@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set1.site; import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.cards.modifiers.PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier; +import com.gempukku.lotro.cards.modifiers.PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier; import com.gempukku.lotro.common.Block; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Phase; @@ -86,11 +86,11 @@ public class Card1_363 extends AbstractSite { else _action.appendEffect( new AddUntilEndOfPhaseModifierEffect( - new PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier(null, Phase.SHADOW), Phase.SHADOW)); + new PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(null, Phase.SHADOW), Phase.SHADOW)); } else { _action.appendEffect( new AddUntilEndOfPhaseModifierEffect( - new PlayersCantPlayPhaseEventsOrSpecialAbilitiesModifier(null, Phase.SHADOW), Phase.SHADOW)); + new PlayersCantPlayPhaseEventsOrPhaseSpecialAbilitiesModifier(null, Phase.SHADOW), Phase.SHADOW)); } } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/uruk_hai/Card17_133.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/uruk_hai/Card17_133.java index 8ff063b93..36a0dd656 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/uruk_hai/Card17_133.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/uruk_hai/Card17_133.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.cards.set17.uruk_hai; import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.cards.modifiers.PlayersCantUseSpecialAbilitiesModifier; +import com.gempukku.lotro.cards.modifiers.PlayersCantUseCardSpecialAbilitiesModifier; import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; @@ -45,7 +45,7 @@ public class Card17_133 extends AbstractMinion { new SpotCondition(CardType.COMPANION, Keyword.HUNTER, Filters.inSkirmish) ), CardType.EVENT, Keyword.SKIRMISH)); modifiers.add( - new PlayersCantUseSpecialAbilitiesModifier(self, + new PlayersCantUseCardSpecialAbilitiesModifier(self, new SpotCondition(self, Filters.assignedToSkirmish), CardType.COMPANION, Keyword.HUNTER)); return modifiers; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gandalf/Card18_025.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gandalf/Card18_025.java index f9111bff1..3dc868f9e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gandalf/Card18_025.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gandalf/Card18_025.java @@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set18.gandalf; import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; -import com.gempukku.lotro.cards.modifiers.PlayersCantUseSpecialAbilitiesModifier; +import com.gempukku.lotro.cards.modifiers.PlayersCantUseCardSpecialAbilitiesModifier; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -43,7 +43,7 @@ public class Card18_025 extends AbstractPermanent { protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendEffect( new AddUntilStartOfPhaseModifierEffect( - new PlayersCantUseSpecialAbilitiesModifier(self, card), Phase.REGROUP)); + new PlayersCantUseCardSpecialAbilitiesModifier(self, card), Phase.REGROUP)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/isengard/Card19_016.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/isengard/Card19_016.java index 9cda8f62f..695e4de0b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/isengard/Card19_016.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/isengard/Card19_016.java @@ -5,7 +5,7 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.*; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.cards.modifiers.PlayersCantUseSpecialAbilitiesModifier; +import com.gempukku.lotro.cards.modifiers.PlayersCantUseCardSpecialAbilitiesModifier; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Race; @@ -56,7 +56,7 @@ public class Card19_016 extends AbstractMinion { protected void forEachCardExertedCallback(PhysicalCard character) { action.appendEffect( new AddUntilStartOfPhaseModifierEffect( - new PlayersCantUseSpecialAbilitiesModifier(self, character), Phase.REGROUP)); + new PlayersCantUseCardSpecialAbilitiesModifier(self, character), Phase.REGROUP)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_370.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_370.java new file mode 100644 index 000000000..347daa348 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_370.java @@ -0,0 +1,31 @@ +package com.gempukku.lotro.cards.set20.sauron; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.modifiers.PlayersCantUseCardPhaseSpecialAbilitiesModifier; +import com.gempukku.lotro.cards.modifiers.conditions.CanSpotFPCulturesCondition; +import com.gempukku.lotro.cards.modifiers.conditions.NotCondition; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.modifiers.Modifier; + +/** + * 3 + * Orc Skulker + * Sauron Minion • Orc + * 10 3 6 + * While you cannot spot 3 Free Peoples cultures, characters skirmishing this minion may not use skirmish special abilities. + */ +public class Card20_370 extends AbstractMinion { + public Card20_370() { + super(3, 10, 3, 6, Race.ORC, Culture.SAURON, "Orc Skulker"); + } + + @Override + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new PlayersCantUseCardPhaseSpecialAbilitiesModifier(self, + new NotCondition(new CanSpotFPCulturesCondition(self.getOwner(), 3)), Phase.SKIRMISH, Filters.character, Filters.inSkirmishAgainst(self)); + } +}