From 22c842dfec89ef25f221c89f2a4a71586cf25b67 Mon Sep 17 00:00:00 2001 From: ingmargoudt Date: Wed, 5 Apr 2017 17:43:39 +0200 Subject: [PATCH] refactored IntCompareCondition --- Mage.Sets/src/mage/cards/a/AngelicAccord.java | 6 ++--- .../src/mage/cards/b/BloodchiefAscension.java | 4 ++-- .../src/mage/cards/g/GhirapurOrrery.java | 3 ++- .../src/mage/cards/h/HellkiteHatchling.java | 13 +++++----- Mage.Sets/src/mage/cards/l/LoneRider.java | 9 +++---- .../src/mage/cards/m/MaskOfIntolerance.java | 6 +++-- .../src/mage/cards/s/SpinerockKnoll.java | 12 ++++++---- .../src/mage/cards/s/SyggRiverCutthroat.java | 4 ++-- Mage/src/main/java/mage/MageObject.java | 2 +- .../condition/IntCompareCondition.java | 24 ++++--------------- .../common/DevouredCreaturesCondition.java | 4 ++-- .../common/OpponentLostLifeCondition.java | 14 +++++------ 12 files changed, 46 insertions(+), 55 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AngelicAccord.java b/Mage.Sets/src/mage/cards/a/AngelicAccord.java index 5f4610ac060..eb732671823 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicAccord.java +++ b/Mage.Sets/src/mage/cards/a/AngelicAccord.java @@ -28,8 +28,8 @@ package mage.cards.a; import mage.abilities.Ability; +import mage.abilities.CountType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.IntCompareCondition; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -54,7 +54,7 @@ public class AngelicAccord extends CardImpl { // At the beginning of each end step, if you gained 4 or more life this turn, create a 4/4 white Angel creature token with flying. this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new AngelToken()), TargetController.ANY, - new YouGainedLifeCondition(Condition.ComparisonType.GreaterThan, 3), false), new PlayerGainedLifeWatcher()); + new YouGainedLifeCondition(CountType.MORE_THAN, 3), false), new PlayerGainedLifeWatcher()); } public AngelicAccord(final AngelicAccord card) { @@ -69,7 +69,7 @@ public class AngelicAccord extends CardImpl { class YouGainedLifeCondition extends IntCompareCondition { - public YouGainedLifeCondition(Condition.ComparisonType type, int value) { + public YouGainedLifeCondition(CountType type, int value) { super(type, value); } diff --git a/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java b/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java index 0100501110f..7efa892a8c0 100644 --- a/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java +++ b/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java @@ -28,9 +28,9 @@ package mage.cards.b; import mage.abilities.Ability; +import mage.abilities.CountType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.OpponentLostLifeCondition; import mage.abilities.condition.common.SourceHasCounterCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -61,7 +61,7 @@ public class BloodchiefAscension extends CardImpl { this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.QUEST.createInstance(1), false), TargetController.ANY, - new OpponentLostLifeCondition(Condition.ComparisonType.GreaterThan, 1), + new OpponentLostLifeCondition(CountType.MORE_THAN, 1), true)); // Whenever a card is put into an opponent's graveyard from anywhere, if Bloodchief Ascension has three or more quest counters on it, you may have that player lose 2 life. If you do, you gain 2 life. diff --git a/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java b/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java index 129cf12bac3..0ebcfada162 100644 --- a/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java +++ b/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java @@ -28,6 +28,7 @@ package mage.cards.g; import mage.abilities.Ability; +import mage.abilities.CountType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.IntCompareCondition; @@ -76,7 +77,7 @@ public class GhirapurOrrery extends CardImpl { class GhirapurOrreryCondition extends IntCompareCondition { GhirapurOrreryCondition() { - super(ComparisonType.Equal, 0); + super(CountType.EQUAL_TO, 0); } @Override diff --git a/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java b/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java index 2d6cf010070..72866d3810e 100644 --- a/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java +++ b/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java @@ -27,12 +27,9 @@ */ package mage.cards.h; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; +import mage.abilities.CountType; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.DevouredCreaturesCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.DevourEffect.DevourFactor; @@ -42,6 +39,10 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -62,11 +63,11 @@ public class HellkiteHatchling extends CardImpl { // Hellkite Hatchling has flying and trample if it devoured a creature. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(FlyingAbility.getInstance()), - new DevouredCreaturesCondition(Condition.ComparisonType.GreaterThan, 0), + new DevouredCreaturesCondition(CountType.MORE_THAN, 0), "{this} has flying if it devoured a creature"))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(TrampleAbility.getInstance()), - new DevouredCreaturesCondition(Condition.ComparisonType.GreaterThan, 0), + new DevouredCreaturesCondition(CountType.MORE_THAN, 0), "{this} has trample if it devoured a creature"))); } diff --git a/Mage.Sets/src/mage/cards/l/LoneRider.java b/Mage.Sets/src/mage/cards/l/LoneRider.java index e490bb46048..9ab1c92918f 100644 --- a/Mage.Sets/src/mage/cards/l/LoneRider.java +++ b/Mage.Sets/src/mage/cards/l/LoneRider.java @@ -27,12 +27,11 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.abilities.CountType; import mage.abilities.TriggeredAbility; import mage.abilities.common.OnEventTriggeredAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.IntCompareCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.watchers.common.PlayerGainedLifeWatcher; +import java.util.UUID; + /** * * @author fireshoes @@ -74,7 +75,7 @@ public class LoneRider extends CardImpl { // At the beginning of the end step, if you gained 3 or more life this turn, transform Lone Rider. this.addAbility(new TransformAbility()); TriggeredAbility triggered = new OnEventTriggeredAbility(GameEvent.EventType.END_TURN_STEP_PRE, "beginning of the end step", true, new TransformSourceEffect(true)); - this.addAbility(new ConditionalTriggeredAbility(triggered, new YouGainedLifeCondition(Condition.ComparisonType.GreaterThan, 2), ruleText), new PlayerGainedLifeWatcher()); + this.addAbility(new ConditionalTriggeredAbility(triggered, new YouGainedLifeCondition(CountType.MORE_THAN, 2), ruleText), new PlayerGainedLifeWatcher()); } public LoneRider(final LoneRider card) { @@ -89,7 +90,7 @@ public class LoneRider extends CardImpl { class YouGainedLifeCondition extends IntCompareCondition { - public YouGainedLifeCondition(Condition.ComparisonType type, int value) { + public YouGainedLifeCondition(CountType type, int value) { super(type, value); } diff --git a/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java b/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java index 77ad74035b7..f7145b0db80 100644 --- a/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java +++ b/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java @@ -27,8 +27,8 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; +import mage.abilities.CountType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.IntCompareCondition; @@ -42,6 +42,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.game.Game; +import java.util.UUID; + /** * * @author LoneFox @@ -70,7 +72,7 @@ public class MaskOfIntolerance extends CardImpl { class MaskOfIntoleranceCondition extends IntCompareCondition { public MaskOfIntoleranceCondition() { - super(ComparisonType.GreaterThan, 3); + super(CountType.MORE_THAN, 3); } @Override diff --git a/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java b/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java index ff92c7b8975..034806b8d37 100644 --- a/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java +++ b/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java @@ -27,11 +27,8 @@ */ package mage.cards.s; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.UUID; import mage.abilities.Ability; +import mage.abilities.CountType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.IntCompareCondition; import mage.abilities.costs.common.TapSourceCost; @@ -50,6 +47,11 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.watchers.Watcher; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + /** * * @author emerald000 @@ -88,7 +90,7 @@ public class SpinerockKnoll extends CardImpl { class SpinerockKnollCondition extends IntCompareCondition { SpinerockKnollCondition() { - super(ComparisonType.GreaterThan, 6); + super(CountType.MORE_THAN, 6); } @Override diff --git a/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java b/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java index a13834053d9..8a176814abd 100644 --- a/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java +++ b/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java @@ -28,8 +28,8 @@ package mage.cards.s; import mage.MageInt; +import mage.abilities.CountType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.OpponentLostLifeCondition; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -60,7 +60,7 @@ public class SyggRiverCutthroat extends CardImpl { this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), TargetController.ANY, - new OpponentLostLifeCondition(Condition.ComparisonType.GreaterThan, 2), + new OpponentLostLifeCondition(CountType.MORE_THAN, 2), true)); } diff --git a/Mage/src/main/java/mage/MageObject.java b/Mage/src/main/java/mage/MageObject.java index 370b55e1760..0aa2be0cf05 100644 --- a/Mage/src/main/java/mage/MageObject.java +++ b/Mage/src/main/java/mage/MageObject.java @@ -138,7 +138,7 @@ public interface MageObject extends MageItem, Serializable { } default void addCardType(CardType cardType) { - addCardType(cardType); + getCardType().add(cardType); } /** diff --git a/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java b/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java index 2e89464c28d..2ba089daa5d 100644 --- a/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java @@ -28,6 +28,7 @@ package mage.abilities.condition; import mage.abilities.Ability; +import mage.abilities.CountType; import mage.game.Game; /** @@ -36,10 +37,10 @@ import mage.game.Game; */ public abstract class IntCompareCondition implements Condition { - protected final Condition.ComparisonType type; + protected final CountType type; protected final int value; - public IntCompareCondition(Condition.ComparisonType type, int value) { + public IntCompareCondition(CountType type, int value) { this.type = type; this.value = value; } @@ -49,24 +50,7 @@ public abstract class IntCompareCondition implements Condition { @Override public final boolean apply(Game game, Ability source) { int inputValue = getInputValue(game, source); - switch (type) { - case Equal: - if (inputValue != value) { - return false; - } - break; - case GreaterThan: - if (inputValue <= value) { - return false; - } - break; - case LessThan: - if (inputValue >= value) { - return false; - } - break; - } - return true; + return CountType.compare(inputValue , type, value); } @Override diff --git a/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java b/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java index fa62e96f2b3..8aa2e963418 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java @@ -28,7 +28,7 @@ package mage.abilities.condition.common; import mage.abilities.Ability; -import mage.abilities.condition.Condition; +import mage.abilities.CountType; import mage.abilities.condition.IntCompareCondition; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DevourEffect; @@ -43,7 +43,7 @@ import mage.game.permanent.Permanent; */ public class DevouredCreaturesCondition extends IntCompareCondition { - public DevouredCreaturesCondition(Condition.ComparisonType type, int value) { + public DevouredCreaturesCondition(CountType type, int value) { super(type, value); } diff --git a/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java index 4d4cfbf24c2..5fa01a16973 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java @@ -27,14 +27,14 @@ */ package mage.abilities.condition.common; -import java.util.UUID; - import mage.abilities.Ability; -import mage.abilities.condition.Condition; +import mage.abilities.CountType; import mage.abilities.condition.IntCompareCondition; import mage.game.Game; import mage.watchers.common.PlayerLostLifeWatcher; +import java.util.UUID; + /** * Describes condition when an opponent has lost an amount of life * @@ -42,7 +42,7 @@ import mage.watchers.common.PlayerLostLifeWatcher; */ public class OpponentLostLifeCondition extends IntCompareCondition { - public OpponentLostLifeCondition(Condition.ComparisonType type, int value) { + public OpponentLostLifeCondition(CountType type, int value) { super(type, value); } @@ -65,13 +65,13 @@ public class OpponentLostLifeCondition extends IntCompareCondition { public String toString() { StringBuilder sb = new StringBuilder("if an opponent lost "); switch (type) { - case GreaterThan: + case MORE_THAN: sb.append(value + 1).append(" or more life this turn "); break; - case Equal: + case EQUAL_TO: sb.append(value).append(" life this turn "); break; - case LessThan: + case FEWER_THAN: sb.append(" less than ").append(value).append(" life this turn "); break; }