"Sneak Attack"

This commit is contained in:
marcins78
2013-01-03 16:06:02 +00:00
parent 3be898cd5e
commit 6de6fd479d
10 changed files with 69 additions and 19 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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