- "A Ranger's Adaptability" now only spots a ranger (instead of exerts), exhausts the minion (instead of exerting twice)

and allows to do that to any minion if it's your site (per card text).
This commit is contained in:
marcins78
2013-03-12 14:53:55 +00:00
parent ca25576b11
commit 01502a1c03
3 changed files with 24 additions and 6 deletions

View File

@@ -30,6 +30,8 @@ Lady of Imladris" with completely different text (per card text).
- Fixed the image link problem for "Gimli's Battle Axe".
- Fixed the image link problem for "Retribution".
- "Whip of Many Thongs, Ancient Serpentine Weapon" can now be born as an additional weapon (per card text).
- "A Ranger's Adaptability" now only spots a ranger (instead of exerts), exhausts the minion (instead of exerting twice)
and allows to do that to any minion if it's your site (per card text).
<b>11 Mar. 2013</b>
- Second Edition is playable now.

View File

@@ -3,8 +3,10 @@ package com.gempukku.lotro.cards.set20.gondor;
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.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.cards.effects.choose.ChooseAndExhaustCharactersEffect;
import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
@@ -12,7 +14,7 @@ import com.gempukku.lotro.game.state.LotroGame;
* 1
* A Ranger's Adaptability
* Gondor Event • Maneuver
* Exert a [Gondor] ranger to exert a roaming minion twice.
* Spot a [Gondor] ranger to exhaust a roaming minion (or any minion if at a site from your adventure deck).
*/
public class Card20_202 extends AbstractEvent {
public Card20_202() {
@@ -22,16 +24,15 @@ public class Card20_202 extends AbstractEvent {
@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.canExert(self, game, Culture.GONDOR, Keyword.RANGER);
&& PlayConditions.canSpot(game, Culture.GONDOR, Keyword.RANGER);
}
@Override
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.GONDOR, Keyword.RANGER));
action.appendEffect(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, CardType.MINION, Keyword.ROAMING));
new ChooseAndExhaustCharactersEffect(action, playerId, 1, 1,
CardType.MINION, Filters.conditionFilter(Keyword.ROAMING, new LocationCondition(Filters.owner(playerId)), Filters.any)));
return action;
}
}

View File

@@ -10,6 +10,7 @@ import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.game.state.Skirmish;
import com.gempukku.lotro.logic.GameUtils;
import com.gempukku.lotro.logic.modifiers.Condition;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
@@ -105,6 +106,20 @@ public class Filters {
// Filters available
public static Filter conditionFilter(final Filterable defaultFilters, final Condition condition, final Filterable conditionMetFilter) {
final Filter filter1 = changeToFilter(defaultFilters);
final Filter filter2 = changeToFilter(conditionMetFilter);
return new Filter() {
@Override
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
if (condition.isFullfilled(gameState, modifiersQuerying))
return filter2.accepts(gameState, modifiersQuerying, physicalCard);
else
return filter1.accepts(gameState, modifiersQuerying, physicalCard);
}
};
}
public static Filter canSpotCompanionWithStrengthAtLeast(final int strength) {
return new Filter() {
@Override