mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
remove timing argument from ActivateIfConditionActivatedAbility
This commit is contained in:
parent
72551143a3
commit
fd371c8932
9 changed files with 35 additions and 78 deletions
|
|
@ -41,8 +41,8 @@ public final class BalustradeWurm extends CardImpl {
|
||||||
this.addAbility(new ActivateIfConditionActivatedAbility(
|
this.addAbility(new ActivateIfConditionActivatedAbility(
|
||||||
Zone.GRAVEYARD,
|
Zone.GRAVEYARD,
|
||||||
new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false),
|
new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false),
|
||||||
new ManaCostsImpl<>("{2}{G}{G}"), DeliriumCondition.instance, TimingRule.SORCERY
|
new ManaCostsImpl<>("{2}{G}{G}"), DeliriumCondition.instance
|
||||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
).setTiming(TimingRule.SORCERY).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BalustradeWurm(final BalustradeWurm card) {
|
private BalustradeWurm(final BalustradeWurm card) {
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,8 @@ public final class ResurrectedCultist extends CardImpl {
|
||||||
this.addAbility(new ActivateIfConditionActivatedAbility(
|
this.addAbility(new ActivateIfConditionActivatedAbility(
|
||||||
Zone.GRAVEYARD,
|
Zone.GRAVEYARD,
|
||||||
new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false),
|
new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false),
|
||||||
new ManaCostsImpl<>("{2}{B}{B}"), DeliriumCondition.instance, TimingRule.SORCERY
|
new ManaCostsImpl<>("{2}{B}{B}"), DeliriumCondition.instance
|
||||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
).setTiming(TimingRule.SORCERY).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ResurrectedCultist(final ResurrectedCultist card) {
|
private ResurrectedCultist(final ResurrectedCultist card) {
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.TimingRule;
|
import mage.constants.TimingRule;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.permanent.token.AngelToken;
|
import mage.game.permanent.token.AngelToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
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.
|
// {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(
|
this.addAbility(new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD, new CreateTokenEffect(new AngelToken()),
|
new CreateTokenEffect(new AngelToken()), new TapSourceCost(), MoreThanStartingLifeTotalCondition.SEVEN
|
||||||
new TapSourceCost(), MoreThanStartingLifeTotalCondition.SEVEN,
|
).setTiming(TimingRule.SORCERY));
|
||||||
TimingRule.SORCERY
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SpeakerOfTheHeavens(final SpeakerOfTheHeavens card) {
|
private SpeakerOfTheHeavens(final SpeakerOfTheHeavens card) {
|
||||||
|
|
@ -52,4 +49,4 @@ public final class SpeakerOfTheHeavens extends CardImpl {
|
||||||
public SpeakerOfTheHeavens copy() {
|
public SpeakerOfTheHeavens copy() {
|
||||||
return new SpeakerOfTheHeavens(this);
|
return new SpeakerOfTheHeavens(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.TimingRule;
|
import mage.constants.TimingRule;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.watchers.common.PlayerAttackedWatcher;
|
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.
|
// {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(
|
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
new TransformSourceEffect(), new ManaCostsImpl<>("{2}{W}"), TempleOfCivilizationCondition.instance
|
||||||
new TransformSourceEffect(),
|
).setTiming(TimingRule.SORCERY);
|
||||||
new ManaCostsImpl<>("{2}{W}"),
|
|
||||||
TempleOfCivilizationCondition.instance,
|
|
||||||
TimingRule.SORCERY
|
|
||||||
);
|
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability, new PlayerAttackedWatcher());
|
this.addAbility(ability, new PlayerAttackedWatcher());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,20 +2,19 @@ package mage.cards.t;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
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.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.dynamicvalue.common.PermanentsYouControlCount;
|
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
import mage.abilities.hint.ValueHint;
|
import mage.abilities.hint.common.PermanentsYouControlHint;
|
||||||
import mage.abilities.mana.GreenManaAbility;
|
import mage.abilities.mana.GreenManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.ComparisonType;
|
import mage.constants.ComparisonType;
|
||||||
import mage.constants.TimingRule;
|
import mage.constants.TimingRule;
|
||||||
import mage.constants.Zone;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.game.Game;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -24,6 +23,10 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class TempleOfCultivation extends CardImpl {
|
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) {
|
public TempleOfCultivation(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
this.nightCard = true;
|
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.
|
// {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(
|
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
new TransformSourceEffect(), new ManaCostsImpl<>("{2}{G}"), condition
|
||||||
new TransformSourceEffect(),
|
).setTiming(TimingRule.SORCERY);
|
||||||
new ManaCostsImpl<>("{2}{G}"),
|
|
||||||
new TempleOfCultivationCondition(),
|
|
||||||
TimingRule.SORCERY
|
|
||||||
);
|
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addHint(new ValueHint("controlled permanents", PermanentsYouControlCount.instance));
|
this.addAbility(ability.addHint(PermanentsYouControlHint.instance));
|
||||||
this.addAbility(ability);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private TempleOfCultivation(final TempleOfCultivation card) {
|
private TempleOfCultivation(final TempleOfCultivation card) {
|
||||||
|
|
@ -55,20 +53,3 @@ public final class TempleOfCultivation extends CardImpl {
|
||||||
return new TempleOfCultivation(this);
|
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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.ComparisonType;
|
import mage.constants.ComparisonType;
|
||||||
import mage.constants.TimingRule;
|
import mage.constants.TimingRule;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
|
|
||||||
import java.util.UUID;
|
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.
|
// {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(
|
ability = new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD, new TransformSourceEffect(),
|
new TransformSourceEffect(), new ManaCostsImpl<>("{2}{U}"), condition
|
||||||
new ManaCostsImpl<>("{2}{U}"), condition, TimingRule.SORCERY
|
).setTiming(TimingRule.SORCERY);
|
||||||
);
|
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.TimingRule;
|
import mage.constants.TimingRule;
|
||||||
import mage.constants.WatcherScope;
|
import mage.constants.WatcherScope;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.command.CommandObject;
|
import mage.game.command.CommandObject;
|
||||||
import mage.game.events.DamagedEvent;
|
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.
|
// {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(
|
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
new TransformSourceEffect(), new ManaCostsImpl<>("{2}{R}"), TempleOfPowerCondition.instance
|
||||||
new TransformSourceEffect(),
|
).setTiming(TimingRule.SORCERY);
|
||||||
new ManaCostsImpl<>("{2}{R}"),
|
|
||||||
TempleOfPowerCondition.instance,
|
|
||||||
TimingRule.SORCERY
|
|
||||||
);
|
|
||||||
ability.addWatcher(new TempleOfPowerWatcher());
|
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addHint(TempleOfPowerHint.instance);
|
this.addAbility(ability.addHint(TempleOfPowerHint.instance), new TempleOfPowerWatcher());
|
||||||
this.addAbility(ability);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private TempleOfPower(final TempleOfPower card) {
|
private TempleOfPower(final TempleOfPower card) {
|
||||||
|
|
@ -77,7 +70,7 @@ enum TempleOfPowerCondition implements Condition {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
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";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,10 @@ import mage.abilities.hint.Hint;
|
||||||
import mage.abilities.mana.BlackManaAbility;
|
import mage.abilities.mana.BlackManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
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;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -22,7 +25,7 @@ import java.util.UUID;
|
||||||
public final class TempleOfTheDead extends CardImpl {
|
public final class TempleOfTheDead extends CardImpl {
|
||||||
|
|
||||||
private static final Condition condition = new CardsInHandCondition(ComparisonType.FEWER_THAN, 2, TargetController.ANY);
|
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) {
|
public TempleOfTheDead(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
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.
|
// {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(
|
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
new TransformSourceEffect(), new ManaCostsImpl<>("{2}{B}"), condition
|
||||||
new TransformSourceEffect(),
|
).setTiming(TimingRule.SORCERY);
|
||||||
new ManaCostsImpl<>("{2}{B}"),
|
|
||||||
condition,
|
|
||||||
TimingRule.SORCERY
|
|
||||||
);
|
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addHint(hint);
|
this.addAbility(ability.addHint(hint));
|
||||||
this.addAbility(ability);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private TempleOfTheDead(final TempleOfTheDead card) {
|
private TempleOfTheDead(final TempleOfTheDead card) {
|
||||||
|
|
|
||||||
|
|
@ -14,17 +14,12 @@ import mage.constants.Zone;
|
||||||
public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
|
public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
|
||||||
|
|
||||||
public ActivateIfConditionActivatedAbility(Effect effect, Cost cost, Condition condition) {
|
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) {
|
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);
|
super(zone, effect, cost);
|
||||||
this.condition = condition;
|
this.condition = condition;
|
||||||
this.timing = timing;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) {
|
protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue