"Orc Skulker"

This commit is contained in:
marcins78
2013-02-07 16:01:05 +00:00
parent f846012b97
commit 6a1cb9c217
10 changed files with 88 additions and 20 deletions

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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));
}
}
}

View File

@@ -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;
}

View File

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

View File

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

View File

@@ -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));
}
}