"Sneak Attack"
This commit is contained in:
@@ -12,17 +12,17 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
|
|||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class PreventMinionBeingAssignedToCharacterModifier extends AbstractModifier {
|
public class CantBeAssignedAgainstModifier extends AbstractModifier {
|
||||||
private Side _side;
|
private Side _side;
|
||||||
private Filterable _minionFilter;
|
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);
|
super(source, "Is affected by assignment restriction", characterFilter, ModifierEffect.ASSIGNMENT_MODIFIER);
|
||||||
_side = side;
|
_side = side;
|
||||||
_minionFilter = minionFilter;
|
_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);
|
super(source, "Is affected by assignment restriction", characterFilter, condition, ModifierEffect.ASSIGNMENT_MODIFIER);
|
||||||
_side = side;
|
_side = side;
|
||||||
_minionFilter = minionFilter;
|
_minionFilter = minionFilter;
|
||||||
@@ -4,7 +4,7 @@ import com.gempukku.lotro.cards.AbstractMinion;
|
|||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
||||||
import com.gempukku.lotro.cards.effects.SelfExertEffect;
|
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.common.*;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -46,7 +46,7 @@ public class Card1_147 extends AbstractMinion {
|
|||||||
protected void cardSelected(LotroGame game, PhysicalCard companion) {
|
protected void cardSelected(LotroGame game, PhysicalCard companion) {
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new AddUntilEndOfPhaseModifierEffect(
|
new AddUntilEndOfPhaseModifierEffect(
|
||||||
new PreventMinionBeingAssignedToCharacterModifier(self, Side.FREE_PEOPLE, Filters.sameCard(companion), self)
|
new CantBeAssignedAgainstModifier(self, Side.FREE_PEOPLE, Filters.sameCard(companion), self)
|
||||||
, Phase.ASSIGNMENT));
|
, Phase.ASSIGNMENT));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.gempukku.lotro.cards.AbstractMinion;
|
|||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
import com.gempukku.lotro.cards.TriggerConditions;
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect;
|
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.CardType;
|
||||||
import com.gempukku.lotro.common.Culture;
|
import com.gempukku.lotro.common.Culture;
|
||||||
import com.gempukku.lotro.common.Phase;
|
import com.gempukku.lotro.common.Phase;
|
||||||
@@ -47,7 +47,7 @@ public class Card12_094 extends AbstractMinion {
|
|||||||
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new AddUntilStartOfPhaseModifierEffect(
|
new AddUntilStartOfPhaseModifierEffect(
|
||||||
new PreventMinionBeingAssignedToCharacterModifier(self, null, card, self), Phase.REGROUP));
|
new CantBeAssignedAgainstModifier(self, null, card, self), Phase.REGROUP));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return Collections.singletonList(action);
|
return Collections.singletonList(action);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.gempukku.lotro.cards.AbstractMinion;
|
|||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
||||||
import com.gempukku.lotro.cards.effects.SelfExertEffect;
|
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.common.*;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.game.state.LotroGame;
|
import com.gempukku.lotro.game.state.LotroGame;
|
||||||
@@ -47,7 +47,7 @@ public class Card12_156 extends AbstractMinion {
|
|||||||
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new AddUntilEndOfPhaseModifierEffect(
|
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);
|
return Collections.singletonList(action);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set15.men;
|
|||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
import com.gempukku.lotro.cards.AbstractMinion;
|
||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
import com.gempukku.lotro.cards.effects.SelfExertEffect;
|
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.common.*;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -24,7 +24,7 @@ public class Card15_072 extends AbstractMinion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Modifier getAlwaysOnModifier(PhysicalCard self) {
|
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
|
@Override
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set19.moria;
|
package com.gempukku.lotro.cards.set19.moria;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
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.ShouldSkipPhaseModifier;
|
||||||
import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition;
|
import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
@@ -40,7 +40,7 @@ public class Card19_018 extends AbstractMinion {
|
|||||||
modifiers.add(
|
modifiers.add(
|
||||||
new ShouldSkipPhaseModifier(self, new LocationCondition(Keyword.UNDERGROUND), Phase.MANEUVER));
|
new ShouldSkipPhaseModifier(self, new LocationCondition(Keyword.UNDERGROUND), Phase.MANEUVER));
|
||||||
modifiers.add(
|
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));
|
new LocationCondition(Keyword.UNDERGROUND), self));
|
||||||
return modifiers;
|
return modifiers;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set19.wraith;
|
|||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
import com.gempukku.lotro.cards.AbstractMinion;
|
||||||
import com.gempukku.lotro.cards.TriggerConditions;
|
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.common.*;
|
||||||
import com.gempukku.lotro.filters.Filter;
|
import com.gempukku.lotro.filters.Filter;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
@@ -41,7 +41,7 @@ public class Card19_038 extends AbstractMinion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Modifier getAlwaysOnModifier(final PhysicalCard self) {
|
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() {
|
Filters.and(CardType.COMPANION, new Filter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
|
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set19.wraith;
|
|||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
import com.gempukku.lotro.cards.AbstractMinion;
|
||||||
import com.gempukku.lotro.cards.TriggerConditions;
|
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.Culture;
|
||||||
import com.gempukku.lotro.common.Keyword;
|
import com.gempukku.lotro.common.Keyword;
|
||||||
import com.gempukku.lotro.common.Names;
|
import com.gempukku.lotro.common.Names;
|
||||||
@@ -43,7 +43,7 @@ public class Card19_039 extends AbstractMinion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Modifier getAlwaysOnModifier(final PhysicalCard self) {
|
public Modifier getAlwaysOnModifier(final PhysicalCard self) {
|
||||||
return new PreventMinionBeingAssignedToCharacterModifier(self, null,
|
return new CantBeAssignedAgainstModifier(self, null,
|
||||||
new Filter() {
|
new Filter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
|
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set6.moria;
|
package com.gempukku.lotro.cards.set6.moria;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
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.CardType;
|
||||||
import com.gempukku.lotro.common.Culture;
|
import com.gempukku.lotro.common.Culture;
|
||||||
import com.gempukku.lotro.common.Keyword;
|
import com.gempukku.lotro.common.Keyword;
|
||||||
@@ -44,7 +44,7 @@ public class Card6_076 extends AbstractMinion {
|
|||||||
@Override
|
@Override
|
||||||
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
|
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
|
||||||
return Collections.singletonList(
|
return Collections.singletonList(
|
||||||
new PreventMinionBeingAssignedToCharacterModifier(self, null,
|
new CantBeAssignedAgainstModifier(self, null,
|
||||||
Filters.and(Filters.or(CardType.COMPANION, CardType.ALLY), Filters.lessStrengthThan(6)), self));
|
Filters.and(Filters.or(CardType.COMPANION, CardType.ALLY), Filters.lessStrengthThan(6)), self));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user