"Corsair Scimitar"
This commit is contained in:
@@ -12,17 +12,24 @@ import java.util.Map;
|
||||
|
||||
public class CountCultureTokensEvaluator implements Evaluator {
|
||||
private Filterable[] _filters;
|
||||
private Token _token;
|
||||
|
||||
public CountCultureTokensEvaluator(Filterable... filters) {
|
||||
_filters = filters;
|
||||
}
|
||||
|
||||
public CountCultureTokensEvaluator(Token token, Filterable... filters) {
|
||||
_token = token;
|
||||
_filters = filters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) {
|
||||
int count = 0;
|
||||
for (PhysicalCard physicalCard : Filters.filterActive(gameState, modifiersQuerying, Filters.and(_filters, Filters.hasAnyCultureTokens(1)))) {
|
||||
for (Map.Entry<Token, Integer> tokens : gameState.getTokens(physicalCard).entrySet()) {
|
||||
if (tokens.getKey().getCulture() != null)
|
||||
if (tokens.getKey().getCulture() != null
|
||||
&& ((_token == null) || tokens.getKey() == _token))
|
||||
count += tokens.getValue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.gempukku.lotro.cards.modifiers.evaluator;
|
||||
|
||||
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 LimitEvaluator implements Evaluator {
|
||||
private int _limit;
|
||||
private Evaluator _evaluator;
|
||||
|
||||
public LimitEvaluator(Evaluator evaluator, int limit) {
|
||||
_evaluator = evaluator;
|
||||
_limit = limit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) {
|
||||
return Math.min(_limit, _evaluator.evaluateExpression(gameState, modifiersQuerying, cardAffected));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.gempukku.lotro.cards.set18.men;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractAttachable;
|
||||
import com.gempukku.lotro.cards.modifiers.evaluator.CountCultureTokensEvaluator;
|
||||
import com.gempukku.lotro.cards.modifiers.evaluator.LimitEvaluator;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
||||
|
||||
/**
|
||||
* Set: Treachery & Deceit
|
||||
* Side: Shadow
|
||||
* Culture: Men
|
||||
* Twilight Cost: 2
|
||||
* Type: Possession • Hand Weapon
|
||||
* Game Text: Bearer must be a [MEN] minion. Bearer is strength +1 for each [MEN] token you can spot (limit +5).
|
||||
*/
|
||||
public class Card18_064 extends AbstractAttachable {
|
||||
public Card18_064() {
|
||||
super(Side.SHADOW, CardType.POSSESSION, 2, Culture.MEN, PossessionClass.HAND_WEAPON, "Corsair Scimitar");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
||||
return Filters.and(Culture.MEN, CardType.MINION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Modifier getAlwaysOnModifier(PhysicalCard self) {
|
||||
return new StrengthModifier(self, Filters.hasAttached(self), null,
|
||||
new LimitEvaluator(new CountCultureTokensEvaluator(Token.MEN, Filters.any), 5));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user