From 0df55264522fbd9344994f35155cb79f33d12d9c Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 10 Sep 2021 10:42:58 -0400 Subject: [PATCH] add ReplaceLifeReduced --- .../game/replacement/ReplaceLifeReduced.java | 44 +++++++++++++++++++ .../game/replacement/ReplacementType.java | 1 + 2 files changed, 45 insertions(+) create mode 100644 forge-game/src/main/java/forge/game/replacement/ReplaceLifeReduced.java diff --git a/forge-game/src/main/java/forge/game/replacement/ReplaceLifeReduced.java b/forge-game/src/main/java/forge/game/replacement/ReplaceLifeReduced.java new file mode 100644 index 00000000000..d6b6f770ec7 --- /dev/null +++ b/forge-game/src/main/java/forge/game/replacement/ReplaceLifeReduced.java @@ -0,0 +1,44 @@ +package forge.game.replacement; + +import java.util.Map; + +import forge.game.ability.AbilityKey; +import forge.game.card.Card; +import forge.util.Expressions; + +/** + * TODO: Write javadoc for this type. + * + */ +public class ReplaceLifeReduced extends ReplacementEffect { + + /** + * Instantiates a new replace life reduced. + * + * @param map the map + * @param host the host + */ + public ReplaceLifeReduced(Map map, Card host, boolean intrinsic) { + super(map, host, intrinsic); + } + + /* (non-Javadoc) + * @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap) + */ + @Override + public boolean canReplace(Map runParams) { + if (!matchesValidParam("ValidPlayer", runParams.get(AbilityKey.Affected))) { + return false; + } + if (hasParam("Result")) { + final int n = (Integer)runParams.get(AbilityKey.Result); + String comparator = getParam("Result"); + final String operator = comparator.substring(0, 2); + final int operandValue = Integer.parseInt(comparator.substring(2)); + if (!Expressions.compare(n, operator, operandValue)) { + return false; + } + } + return true; + } +} diff --git a/forge-game/src/main/java/forge/game/replacement/ReplacementType.java b/forge-game/src/main/java/forge/game/replacement/ReplacementType.java index 335564f6c62..4a15d9aa846 100644 --- a/forge-game/src/main/java/forge/game/replacement/ReplacementType.java +++ b/forge-game/src/main/java/forge/game/replacement/ReplacementType.java @@ -29,6 +29,7 @@ public enum ReplacementType { GainLife(ReplaceGainLife.class), GameLoss(ReplaceGameLoss.class), Learn(ReplaceLearn.class), + LifeReduced(ReplaceLifeReduced.class), Mill(ReplaceMill.class), Moved(ReplaceMoved.class), ProduceMana(ReplaceProduceMana.class),