diff --git a/Mage.Sets/src/mage/cards/b/BalustradeWurm.java b/Mage.Sets/src/mage/cards/b/BalustradeWurm.java index e81434332fb..f25e700c470 100644 --- a/Mage.Sets/src/mage/cards/b/BalustradeWurm.java +++ b/Mage.Sets/src/mage/cards/b/BalustradeWurm.java @@ -41,8 +41,8 @@ public final class BalustradeWurm extends CardImpl { this.addAbility(new ActivateIfConditionActivatedAbility( Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false), - new ManaCostsImpl<>("{2}{G}{G}"), DeliriumCondition.instance, TimingRule.SORCERY - ).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint())); + new ManaCostsImpl<>("{2}{G}{G}"), DeliriumCondition.instance + ).setTiming(TimingRule.SORCERY).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint())); } private BalustradeWurm(final BalustradeWurm card) { diff --git a/Mage.Sets/src/mage/cards/r/ResurrectedCultist.java b/Mage.Sets/src/mage/cards/r/ResurrectedCultist.java index fb1f574e1b9..8d46aa372ef 100644 --- a/Mage.Sets/src/mage/cards/r/ResurrectedCultist.java +++ b/Mage.Sets/src/mage/cards/r/ResurrectedCultist.java @@ -30,8 +30,8 @@ public final class ResurrectedCultist extends CardImpl { this.addAbility(new ActivateIfConditionActivatedAbility( Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false), - new ManaCostsImpl<>("{2}{B}{B}"), DeliriumCondition.instance, TimingRule.SORCERY - ).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint())); + new ManaCostsImpl<>("{2}{B}{B}"), DeliriumCondition.instance + ).setTiming(TimingRule.SORCERY).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint())); } private ResurrectedCultist(final ResurrectedCultist card) { diff --git a/Mage.Sets/src/mage/cards/s/SpeakerOfTheHeavens.java b/Mage.Sets/src/mage/cards/s/SpeakerOfTheHeavens.java index 2ced7bd3b9f..2fcfaa3cfb0 100644 --- a/Mage.Sets/src/mage/cards/s/SpeakerOfTheHeavens.java +++ b/Mage.Sets/src/mage/cards/s/SpeakerOfTheHeavens.java @@ -12,7 +12,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TimingRule; -import mage.constants.Zone; import mage.game.permanent.token.AngelToken; import java.util.UUID; @@ -38,10 +37,8 @@ public final class SpeakerOfTheHeavens extends CardImpl { // {T}: Create a 4/4 white Angel creature token with flying. Activate only if you have at least 7 more life than your starting life total and only as a sorcery. this.addAbility(new ActivateIfConditionActivatedAbility( - Zone.BATTLEFIELD, new CreateTokenEffect(new AngelToken()), - new TapSourceCost(), MoreThanStartingLifeTotalCondition.SEVEN, - TimingRule.SORCERY - )); + new CreateTokenEffect(new AngelToken()), new TapSourceCost(), MoreThanStartingLifeTotalCondition.SEVEN + ).setTiming(TimingRule.SORCERY)); } private SpeakerOfTheHeavens(final SpeakerOfTheHeavens card) { @@ -52,4 +49,4 @@ public final class SpeakerOfTheHeavens extends CardImpl { public SpeakerOfTheHeavens copy() { return new SpeakerOfTheHeavens(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/t/TempleOfCivilization.java b/Mage.Sets/src/mage/cards/t/TempleOfCivilization.java index ee18a2fb64a..0e5544cfd20 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfCivilization.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfCivilization.java @@ -11,7 +11,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TimingRule; -import mage.constants.Zone; import mage.game.Game; import mage.watchers.common.PlayerAttackedWatcher; @@ -33,12 +32,8 @@ public final class TempleOfCivilization extends CardImpl { // {2}{W}, {T}: Transform Temple of Civilization. Activate only if you attacked with three or more creatures this turn and only as a sorcery. Ability ability = new ActivateIfConditionActivatedAbility( - Zone.BATTLEFIELD, - new TransformSourceEffect(), - new ManaCostsImpl<>("{2}{W}"), - TempleOfCivilizationCondition.instance, - TimingRule.SORCERY - ); + new TransformSourceEffect(), new ManaCostsImpl<>("{2}{W}"), TempleOfCivilizationCondition.instance + ).setTiming(TimingRule.SORCERY); ability.addCost(new TapSourceCost()); this.addAbility(ability, new PlayerAttackedWatcher()); } diff --git a/Mage.Sets/src/mage/cards/t/TempleOfCultivation.java b/Mage.Sets/src/mage/cards/t/TempleOfCultivation.java index 60d3c9327a3..bd991824891 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfCultivation.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfCultivation.java @@ -2,20 +2,19 @@ package mage.cards.t; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; -import mage.abilities.condition.IntCompareCondition; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.dynamicvalue.common.PermanentsYouControlCount; import mage.abilities.effects.common.TransformSourceEffect; -import mage.abilities.hint.ValueHint; +import mage.abilities.hint.common.PermanentsYouControlHint; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ComparisonType; import mage.constants.TimingRule; -import mage.constants.Zone; -import mage.game.Game; +import mage.filter.common.FilterControlledPermanent; import java.util.UUID; @@ -24,6 +23,10 @@ import java.util.UUID; */ public final class TempleOfCultivation extends CardImpl { + private static final Condition condition = new PermanentsOnTheBattlefieldCondition( + new FilterControlledPermanent("you control ten or more permanents"), ComparisonType.MORE_THAN, 9 + ); + public TempleOfCultivation(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); this.nightCard = true; @@ -35,15 +38,10 @@ public final class TempleOfCultivation extends CardImpl { // {2}{G}, {T}: Transform Temple of Cultivation. Activate only if you control ten or more permanents and only as a sorcery. Ability ability = new ActivateIfConditionActivatedAbility( - Zone.BATTLEFIELD, - new TransformSourceEffect(), - new ManaCostsImpl<>("{2}{G}"), - new TempleOfCultivationCondition(), - TimingRule.SORCERY - ); + new TransformSourceEffect(), new ManaCostsImpl<>("{2}{G}"), condition + ).setTiming(TimingRule.SORCERY); ability.addCost(new TapSourceCost()); - ability.addHint(new ValueHint("controlled permanents", PermanentsYouControlCount.instance)); - this.addAbility(ability); + this.addAbility(ability.addHint(PermanentsYouControlHint.instance)); } private TempleOfCultivation(final TempleOfCultivation card) { @@ -55,20 +53,3 @@ public final class TempleOfCultivation extends CardImpl { return new TempleOfCultivation(this); } } - -class TempleOfCultivationCondition extends IntCompareCondition { - - TempleOfCultivationCondition() { - super(ComparisonType.OR_GREATER, 10); - } - - @Override - protected int getInputValue(Game game, Ability source) { - return PermanentsYouControlCount.instance.calculate(game, source, null); - } - - @Override - public String toString() { - return "if you control ten or more permanents"; - } -} diff --git a/Mage.Sets/src/mage/cards/t/TempleOfCyclicalTime.java b/Mage.Sets/src/mage/cards/t/TempleOfCyclicalTime.java index b5639028634..88fa042529e 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfCyclicalTime.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfCyclicalTime.java @@ -14,7 +14,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ComparisonType; import mage.constants.TimingRule; -import mage.constants.Zone; import mage.counters.CounterType; import java.util.UUID; @@ -39,9 +38,8 @@ public final class TempleOfCyclicalTime extends CardImpl { // {2}{U}, {T}: Transform Temple of Cyclical Time. Activate only if it has no time counters on it and only as a sorcery. ability = new ActivateIfConditionActivatedAbility( - Zone.BATTLEFIELD, new TransformSourceEffect(), - new ManaCostsImpl<>("{2}{U}"), condition, TimingRule.SORCERY - ); + new TransformSourceEffect(), new ManaCostsImpl<>("{2}{U}"), condition + ).setTiming(TimingRule.SORCERY); ability.addCost(new TapSourceCost()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TempleOfPower.java b/Mage.Sets/src/mage/cards/t/TempleOfPower.java index 9056b7038f5..c6bb1dc614d 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfPower.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfPower.java @@ -14,7 +14,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TimingRule; import mage.constants.WatcherScope; -import mage.constants.Zone; import mage.game.Game; import mage.game.command.CommandObject; import mage.game.events.DamagedEvent; @@ -43,16 +42,10 @@ public final class TempleOfPower extends CardImpl { // {2}{R}, {T}: Transform Temple of Power. Activate only if red sources you controlled dealt 4 or more noncombat damage this turn and only as a sorcery. Ability ability = new ActivateIfConditionActivatedAbility( - Zone.BATTLEFIELD, - new TransformSourceEffect(), - new ManaCostsImpl<>("{2}{R}"), - TempleOfPowerCondition.instance, - TimingRule.SORCERY - ); - ability.addWatcher(new TempleOfPowerWatcher()); + new TransformSourceEffect(), new ManaCostsImpl<>("{2}{R}"), TempleOfPowerCondition.instance + ).setTiming(TimingRule.SORCERY); ability.addCost(new TapSourceCost()); - ability.addHint(TempleOfPowerHint.instance); - this.addAbility(ability); + this.addAbility(ability.addHint(TempleOfPowerHint.instance), new TempleOfPowerWatcher()); } private TempleOfPower(final TempleOfPower card) { @@ -77,7 +70,7 @@ enum TempleOfPowerCondition implements Condition { @Override public String toString() { - return "if red sources you controlled dealt 4 or more noncombat damage this turn"; + return "red sources you controlled dealt 4 or more noncombat damage this turn"; } } diff --git a/Mage.Sets/src/mage/cards/t/TempleOfTheDead.java b/Mage.Sets/src/mage/cards/t/TempleOfTheDead.java index 8a4e7056961..0c63338958b 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfTheDead.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfTheDead.java @@ -12,7 +12,10 @@ import mage.abilities.hint.Hint; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.TargetController; +import mage.constants.TimingRule; import java.util.UUID; @@ -22,7 +25,7 @@ import java.util.UUID; public final class TempleOfTheDead extends CardImpl { private static final Condition condition = new CardsInHandCondition(ComparisonType.FEWER_THAN, 2, TargetController.ANY); - private static final Hint hint = new ConditionHint(condition, "a player has one or fewer cards in hand"); + private static final Hint hint = new ConditionHint(condition); public TempleOfTheDead(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); @@ -35,15 +38,10 @@ public final class TempleOfTheDead extends CardImpl { // {2}{B}, {T}: Transform Temple of the Dead. Activate only if a player has one or fewer cards in hand and only as a sorcery. Ability ability = new ActivateIfConditionActivatedAbility( - Zone.BATTLEFIELD, - new TransformSourceEffect(), - new ManaCostsImpl<>("{2}{B}"), - condition, - TimingRule.SORCERY - ); + new TransformSourceEffect(), new ManaCostsImpl<>("{2}{B}"), condition + ).setTiming(TimingRule.SORCERY); ability.addCost(new TapSourceCost()); - ability.addHint(hint); - this.addAbility(ability); + this.addAbility(ability.addHint(hint)); } private TempleOfTheDead(final TempleOfTheDead card) { diff --git a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java index 8d9804f7504..ffd7f05860c 100644 --- a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java @@ -14,17 +14,12 @@ import mage.constants.Zone; public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { public ActivateIfConditionActivatedAbility(Effect effect, Cost cost, Condition condition) { - this(Zone.BATTLEFIELD, effect, cost, condition, TimingRule.INSTANT); + this(Zone.BATTLEFIELD, effect, cost, condition); } public ActivateIfConditionActivatedAbility(Zone zone, Effect effect, Cost cost, Condition condition) { - this(zone, effect, cost, condition, TimingRule.INSTANT); - } - - public ActivateIfConditionActivatedAbility(Zone zone, Effect effect, Cost cost, Condition condition, TimingRule timing) { super(zone, effect, cost); this.condition = condition; - this.timing = timing; } protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) {