- "Anarion, Lord of Anorien" effect now remembers the list of minions it affects upon use, as well as the penalty value.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PerCardMemoryEvaluator implements Evaluator {
|
||||
private Map<Integer, Integer> _rememberedValue = new HashMap<Integer, Integer>();
|
||||
private Evaluator _evaluator;
|
||||
|
||||
public PerCardMemoryEvaluator(Evaluator evaluator) {
|
||||
_evaluator = evaluator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) {
|
||||
Integer value = _rememberedValue.get(cardAffected.getCardId());
|
||||
if (value == null) {
|
||||
value = _evaluator.evaluateExpression(gameState, modifiersQuerying, cardAffected);
|
||||
_rememberedValue.put(cardAffected.getCardId(), value);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
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 SingleMemoryEvaluator implements Evaluator {
|
||||
private Integer _rememberedValue;
|
||||
private Evaluator _evaluator;
|
||||
|
||||
public SingleMemoryEvaluator(Evaluator evaluator) {
|
||||
_evaluator = evaluator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) {
|
||||
if (_rememberedValue == null)
|
||||
_rememberedValue = _evaluator.evaluateExpression(gameState, modifiersQuerying, cardAffected);
|
||||
return _rememberedValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.gempukku.lotro.cards.AbstractCompanion;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromHandEffect;
|
||||
import com.gempukku.lotro.cards.modifiers.evaluator.SingleMemoryEvaluator;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
@@ -43,13 +44,14 @@ public class Card0_058 extends AbstractCompanion {
|
||||
new ChooseAndPlayCardFromHandEffect(playerId, game, Culture.GONDOR, CardType.EVENT, Keyword.SKIRMISH));
|
||||
action.appendEffect(
|
||||
new AddUntilEndOfPhaseModifierEffect(
|
||||
new StrengthModifier(self, Filters.and(CardType.MINION, Filters.inSkirmishAgainst(self)), null,
|
||||
new Evaluator() {
|
||||
@Override
|
||||
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) {
|
||||
return -modifiersQuerying.getVitality(game.getGameState(), self);
|
||||
}
|
||||
}), Phase.SKIRMISH));
|
||||
new StrengthModifier(self, Filters.in(Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.and(CardType.MINION, Filters.inSkirmishAgainst(self)))), null,
|
||||
new SingleMemoryEvaluator(
|
||||
new Evaluator() {
|
||||
@Override
|
||||
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) {
|
||||
return -modifiersQuerying.getVitality(game.getGameState(), self);
|
||||
}
|
||||
})), Phase.SKIRMISH));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<pre style="font-size:80%">
|
||||
<b>9 Jul. 2012</b>
|
||||
- "Anarion, Lord of Anorien" effect now remembers the list of minions it affects upon use, as well as the penalty value.
|
||||
|
||||
<b>6 Jul. 2012</b>
|
||||
- "Harrowdale" now works only until the regroup phase, but both if you moved to and moved out of "Harrowdale".
|
||||
|
||||
|
||||
Reference in New Issue
Block a user