From 156c474df88f90023b56298167ad8218092bb672 Mon Sep 17 00:00:00 2001 From: xenohedron Date: Sun, 2 Jun 2024 02:27:38 -0400 Subject: [PATCH] remove bloated class used only once --- .../src/mage/cards/c/ChampionsDrake.java | 30 ++++++--- .../common/PermanentHasCounterCondition.java | 61 ------------------- 2 files changed, 22 insertions(+), 69 deletions(-) delete mode 100644 Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java diff --git a/Mage.Sets/src/mage/cards/c/ChampionsDrake.java b/Mage.Sets/src/mage/cards/c/ChampionsDrake.java index 3991b6049eb..bc12f11b438 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionsDrake.java +++ b/Mage.Sets/src/mage/cards/c/ChampionsDrake.java @@ -1,21 +1,22 @@ package mage.cards.c; -import java.util.UUID; import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.common.PermanentHasCounterCondition; +import mage.abilities.condition.Condition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.ComparisonType; import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.SubType; import mage.counters.CounterType; import mage.filter.StaticFilters; +import mage.game.Game; + +import java.util.UUID; /** * @@ -37,9 +38,9 @@ public final class ChampionsDrake extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Champion's Drake gets +3/+3 as long as you control a creature with three or more level counters on it. - ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), - new PermanentHasCounterCondition(CounterType.LEVEL, 2, StaticFilters.FILTER_CONTROLLED_CREATURE, ComparisonType.MORE_THAN), rule); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( + new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), + ChampionsDrakeCondition.instance, rule))); } private ChampionsDrake(final ChampionsDrake card) { @@ -51,3 +52,16 @@ public final class ChampionsDrake extends CardImpl { return new ChampionsDrake(this); } } + +enum ChampionsDrakeCondition implements Condition { + instance; + + @Override + public boolean apply(Game game, Ability source) { + return game.getBattlefield() + .getActivePermanents(StaticFilters.FILTER_CONTROLLED_CREATURE, source.getControllerId(), source, game) + .stream() + .anyMatch(p -> p.getCounters(game).getCount(CounterType.LEVEL) >= 3); + } + +} diff --git a/Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java b/Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java deleted file mode 100644 index 0e434224cf7..00000000000 --- a/Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java +++ /dev/null @@ -1,61 +0,0 @@ - -package mage.abilities.condition.common; - -import mage.abilities.Ability; -import mage.constants.ComparisonType; -import mage.abilities.condition.Condition; -import mage.counters.CounterType; -import mage.game.Game; -import mage.filter.FilterPermanent; -import mage.game.permanent.Permanent; - -import java.util.List; - -/** - * @author jeffwadsworth - */ -public class PermanentHasCounterCondition implements Condition { - - - - private CounterType counterType; - private int amount; - private FilterPermanent filter; - private ComparisonType counttype; - private boolean anyPlayer; - - public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter) { - this(counterType, amount, filter, ComparisonType.EQUAL_TO); - this.anyPlayer = false; - } - - public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter, ComparisonType type) { - this.counterType = counterType; - this.amount = amount; - this.filter = filter; - this.counttype = type; - this.anyPlayer = false; - } - - public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter, ComparisonType type, boolean any) { - this.counterType = counterType; - this.amount = amount; - this.filter = filter; - this.counttype = type; - this.anyPlayer = any; - } - @Override - public boolean apply(Game game, Ability source) { - List permanents = game.getBattlefield().getActivePermanents(this.filter, source.getControllerId(), game); - if(this.anyPlayer) { - permanents = game.getBattlefield().getAllActivePermanents(this.filter, game); - } - for (Permanent permanent : permanents) { - if(ComparisonType.compare(permanent.getCounters(game).getCount(this.counterType), counttype, this.amount)) - { - return true; - } - } - return false; - } -}