Names.nertea, "Twilight Fiend"
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package com.gempukku.lotro.cards.modifiers;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.GameState;
|
||||
import com.gempukku.lotro.logic.modifiers.AbstractModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Condition;
|
||||
import com.gempukku.lotro.logic.modifiers.ModifierEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
|
||||
public class FpSkirmishResistanceStrengthOverrideModifier extends AbstractModifier {
|
||||
private static Evaluator _resistanceEvaluator =
|
||||
new Evaluator() {
|
||||
@Override
|
||||
public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) {
|
||||
return modifiersQuerying.getResistance(gameState, cardAffected);
|
||||
}
|
||||
};
|
||||
|
||||
public FpSkirmishResistanceStrengthOverrideModifier(PhysicalCard source, Filterable affectFilter, Condition condition) {
|
||||
super(source, null, affectFilter, condition, ModifierEffect.SKIRMISH_STRENGTH_EVALUATOR_MODIFIER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
|
||||
return "Uses resistance instead of strength when resolving skirmish";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Evaluator getFpSkirmishStrengthOverrideEvaluator(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard fpCharacter) {
|
||||
return _resistanceEvaluator;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.gempukku.lotro.cards.set20.wraith;
|
||||
|
||||
import com.gempukku.lotro.cards.AbstractMinion;
|
||||
import com.gempukku.lotro.cards.modifiers.FpSkirmishResistanceStrengthOverrideModifier;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Names;
|
||||
import com.gempukku.lotro.common.Race;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
|
||||
/**
|
||||
* 4
|
||||
* •Ulaire Nertea, Twilight Fiend
|
||||
* Ringwraith Minion • Nazgul
|
||||
* 9 3 3
|
||||
* Twilight. Characters skirmishing Ulaire Nertea use resistance instead of strength to resolve skirmishes.
|
||||
*/
|
||||
public class Card20_309 extends AbstractMinion {
|
||||
public Card20_309() {
|
||||
super(4, 9, 3, 3, Race.NAZGUL, Culture.WRAITH, Names.nertea, "Twilight Fiend", true);
|
||||
addKeyword(Keyword.TWILIGHT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Modifier getAlwaysOnModifier(PhysicalCard self) {
|
||||
return new FpSkirmishResistanceStrengthOverrideModifier(self, Filters.and(Filters.character, Filters.inSkirmishAgainst(self)), null);
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.GameState;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
|
||||
@@ -349,7 +350,12 @@ public abstract class AbstractModifier implements Modifier {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean lostAllKeywords(GameState gameState, ModifiersLogic modifiersLogic, PhysicalCard card) {
|
||||
public boolean lostAllKeywords(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Evaluator getFpSkirmishStrengthOverrideEvaluator(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard fpCharacter) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.GameState;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
|
||||
@@ -139,5 +140,7 @@ public interface Modifier {
|
||||
|
||||
public int getInitiativeHandSizeModifier(GameState gameState, ModifiersQuerying modifiersQuerying);
|
||||
|
||||
public boolean lostAllKeywords(GameState gameState, ModifiersLogic modifiersLogic, PhysicalCard card);
|
||||
public boolean lostAllKeywords(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card);
|
||||
|
||||
Evaluator getFpSkirmishStrengthOverrideEvaluator(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard fpCharacter);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.logic.modifiers;
|
||||
|
||||
public enum ModifierEffect {
|
||||
SIGNET_MODIFIER, STRENGTH_MODIFIER,
|
||||
SKIRMISH_STRENGTH_EVALUATOR_MODIFIER,
|
||||
STRENGTH_BONUS_SOURCE_MODIFIER,
|
||||
STRENGTH_BONUS_TARGET_MODIFIER,
|
||||
VITALITY_MODIFIER, RESISTANCE_MODIFIER, SITE_NUMBER_MODIFIER, TWILIGHT_COST_MODIFIER, OVERWHELM_MODIFIER,
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.GameState;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
|
||||
@@ -233,6 +234,16 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Evaluator getFpStrengthOverrideEvaluator(GameState gameState, PhysicalCard fpCharacter) {
|
||||
for (Modifier modifier : getModifiersAffectingCard(gameState, ModifierEffect.SKIRMISH_STRENGTH_EVALUATOR_MODIFIER, fpCharacter)) {
|
||||
Evaluator evaluator = modifier.getFpSkirmishStrengthOverrideEvaluator(gameState, this, fpCharacter);
|
||||
if (evaluator != null)
|
||||
return evaluator;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean affectsCardWithSkipSet(GameState gameState, PhysicalCard physicalCard, Modifier modifier) {
|
||||
if (!_skipSet.contains(modifier) && physicalCard != null) {
|
||||
_skipSet.add(modifier);
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.GameState;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
|
||||
@@ -25,6 +26,8 @@ public interface ModifiersQuerying {
|
||||
|
||||
public Collection<Modifier> getModifiersAffecting(GameState gameState, PhysicalCard card);
|
||||
|
||||
public Evaluator getFpStrengthOverrideEvaluator(GameState gameState, PhysicalCard fpCharacter);
|
||||
|
||||
public boolean hasTextRemoved(GameState gameState, PhysicalCard card);
|
||||
|
||||
// Keywords
|
||||
|
||||
@@ -74,6 +74,10 @@ public class RuleUtils {
|
||||
if (fpChar == null)
|
||||
return 0;
|
||||
|
||||
final Evaluator fpStrengthOverrideEvaluator = game.getModifiersQuerying().getFpStrengthOverrideEvaluator(game.getGameState(), fpChar);
|
||||
if (fpStrengthOverrideEvaluator != null)
|
||||
return fpStrengthOverrideEvaluator.evaluateExpression(game.getGameState(), game.getModifiersQuerying(), fpChar);
|
||||
|
||||
final Evaluator overrideEvaluator = skirmish.getFpStrengthOverrideEvaluator();
|
||||
if (overrideEvaluator != null)
|
||||
return overrideEvaluator.evaluateExpression(game.getGameState(), game.getModifiersQuerying(), fpChar);
|
||||
|
||||
Reference in New Issue
Block a user