"Overwhelming Numbers"
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
package com.gempukku.lotro.cards.modifiers.evaluator;
|
||||||
|
|
||||||
|
import com.gempukku.lotro.common.Filterable;
|
||||||
|
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.ModifiersQuerying;
|
||||||
|
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||||
|
|
||||||
|
public class CountSpottableEvaluator implements Evaluator {
|
||||||
|
private int _over;
|
||||||
|
private Filterable[] _filters;
|
||||||
|
private Integer _limit;
|
||||||
|
|
||||||
|
public CountSpottableEvaluator(Filterable... filters) {
|
||||||
|
this(null, filters);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountSpottableEvaluator(Integer limit, Filterable... filters) {
|
||||||
|
this(0, limit, filters);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountSpottableEvaluator(int over, Integer limit, Filterable... filters) {
|
||||||
|
_over = over;
|
||||||
|
_filters = filters;
|
||||||
|
_limit = limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
|
||||||
|
final int active = Math.max(0, Filters.countSpottable(gameState, modifiersQuerying, _filters) - _over);
|
||||||
|
if (_limit == null)
|
||||||
|
return active;
|
||||||
|
return Math.min(_limit, active);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set20.dunland;
|
package com.gempukku.lotro.cards.set20.dunland;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
import com.gempukku.lotro.cards.AbstractMinion;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
|
||||||
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.Race;
|
import com.gempukku.lotro.common.Race;
|
||||||
@@ -30,7 +30,7 @@ public class Card20_007 extends AbstractMinion {
|
|||||||
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
|
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
|
||||||
List<Modifier> modifiers = new LinkedList<Modifier>();
|
List<Modifier> modifiers = new LinkedList<Modifier>();
|
||||||
modifiers.add(
|
modifiers.add(
|
||||||
new StrengthModifier(self, self, null, new CountActiveEvaluator(Side.FREE_PEOPLE, CardType.POSSESSION)));
|
new StrengthModifier(self, self, null, new CountSpottableEvaluator(Side.FREE_PEOPLE, CardType.POSSESSION)));
|
||||||
return modifiers;
|
return modifiers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set20.dunland;
|
package com.gempukku.lotro.cards.set20.dunland;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
import com.gempukku.lotro.cards.AbstractMinion;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
|
||||||
import com.gempukku.lotro.common.Culture;
|
import com.gempukku.lotro.common.Culture;
|
||||||
import com.gempukku.lotro.common.Race;
|
import com.gempukku.lotro.common.Race;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
@@ -29,7 +29,7 @@ public class Card20_012 extends AbstractMinion {
|
|||||||
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
|
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
|
||||||
List<Modifier> modifiers = new LinkedList<Modifier>();
|
List<Modifier> modifiers = new LinkedList<Modifier>();
|
||||||
modifiers.add(
|
modifiers.add(
|
||||||
new StrengthModifier(self, self, null, new CountActiveEvaluator(Filters.not(self), Culture.DUNLAND, Race.MAN)));
|
new StrengthModifier(self, self, null, new CountSpottableEvaluator(Filters.not(self), Culture.DUNLAND, Race.MAN)));
|
||||||
return modifiers;
|
return modifiers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set20.dunland;
|
|||||||
import com.gempukku.lotro.cards.AbstractEvent;
|
import com.gempukku.lotro.cards.AbstractEvent;
|
||||||
import com.gempukku.lotro.cards.actions.PlayEventAction;
|
import com.gempukku.lotro.cards.actions.PlayEventAction;
|
||||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
|
||||||
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;
|
||||||
@@ -22,7 +22,7 @@ public class Card20_023 extends AbstractEvent {
|
|||||||
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
|
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
|
||||||
PlayEventAction action = new PlayEventAction(self);
|
PlayEventAction action = new PlayEventAction(self);
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new CountActiveEvaluator(CardType.POSSESSION), Culture.DUNLAND, Race.MAN));
|
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new CountSpottableEvaluator(CardType.POSSESSION), Culture.DUNLAND, Race.MAN));
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.gempukku.lotro.cards.set20.elven;
|
|||||||
import com.gempukku.lotro.cards.AbstractEvent;
|
import com.gempukku.lotro.cards.AbstractEvent;
|
||||||
import com.gempukku.lotro.cards.actions.PlayEventAction;
|
import com.gempukku.lotro.cards.actions.PlayEventAction;
|
||||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.MultiplyEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.MultiplyEvaluator;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -25,7 +25,7 @@ public class Card20_095 extends AbstractEvent {
|
|||||||
PlayEventAction action = new PlayEventAction(self);
|
PlayEventAction action = new PlayEventAction(self);
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
||||||
new MultiplyEvaluator(-1, new CountActiveEvaluator(CardType.ALLY, Keyword.RIVENDELL)), CardType.MINION));
|
new MultiplyEvaluator(-1, new CountSpottableEvaluator(CardType.ALLY, Keyword.RIVENDELL)), CardType.MINION));
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set20.fallenRealms;
|
package com.gempukku.lotro.cards.set20.fallenRealms;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractMinion;
|
import com.gempukku.lotro.cards.AbstractMinion;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.CountActiveEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
|
||||||
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.Race;
|
import com.gempukku.lotro.common.Race;
|
||||||
@@ -28,6 +28,6 @@ public class Card20_127 extends AbstractMinion {
|
|||||||
@Override
|
@Override
|
||||||
public Modifier getAlwaysOnModifier(PhysicalCard self) {
|
public Modifier getAlwaysOnModifier(PhysicalCard self) {
|
||||||
return new StrengthModifier(self, self, null,
|
return new StrengthModifier(self, self, null,
|
||||||
new CountActiveEvaluator(Filters.not(self), Keyword.EASTERLING));
|
new CountSpottableEvaluator(Filters.not(self), Keyword.EASTERLING));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.gempukku.lotro.cards.set20.fallenRealms;
|
||||||
|
|
||||||
|
import com.gempukku.lotro.cards.AbstractEvent;
|
||||||
|
import com.gempukku.lotro.cards.actions.PlayEventAction;
|
||||||
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
||||||
|
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
|
||||||
|
import com.gempukku.lotro.common.Culture;
|
||||||
|
import com.gempukku.lotro.common.Keyword;
|
||||||
|
import com.gempukku.lotro.common.Phase;
|
||||||
|
import com.gempukku.lotro.common.Side;
|
||||||
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
|
import com.gempukku.lotro.game.state.LotroGame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2
|
||||||
|
* Overwhelming Numbers
|
||||||
|
* Fallen Realms Event • Skirmish
|
||||||
|
* Make an Easterling strength +1 for each Easterling you can spot.
|
||||||
|
*/
|
||||||
|
public class Card20_132 extends AbstractEvent {
|
||||||
|
public Card20_132() {
|
||||||
|
super(Side.SHADOW, 2, Culture.FALLEN_REALMS, "Overwhelming Numbers", Phase.SKIRMISH);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
|
||||||
|
PlayEventAction action = new PlayEventAction(self);
|
||||||
|
action.appendEffect(
|
||||||
|
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
||||||
|
new CountSpottableEvaluator(Keyword.EASTERLING), Keyword.EASTERLING));
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user