refactor: common logic for "at..." triggered abilities (#13045)

* add new common framework for at step triggered abilities

* move postcombat main and second main triggers to it

* update draw step triggers

* refactor BeginningOfCombatTriggeredAbility

* refactor BeginningOfFirstMainTriggeredAbility

* move Pronoun to constants package

* cleanup some cards to use simpler constructors

* package reorganization
This commit is contained in:
xenohedron 2024-10-27 21:03:40 -04:00 committed by GitHub
parent c9cc398b48
commit eee0fee79e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
329 changed files with 1149 additions and 1331 deletions

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.cost.SpellsCostIncreasingAllEffect;
import mage.cards.CardImpl;
@ -29,7 +29,7 @@ public final class AcademyLoremaster extends CardImpl {
// At the beginning of each player's draw step, that player may draw an additional card. If they do, spells they cast this turn cost {2} more to cast.
this.addAbility(new BeginningOfDrawTriggeredAbility(
new AcademyLoremasterEffect(), TargetController.ANY, false
TargetController.EACH_PLAYER, new AcademyLoremasterEffect(), false
));
}

View file

@ -1,7 +1,7 @@
package mage.cards.a;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@ -38,7 +38,7 @@ public final class AdherentOfHope extends CardImpl {
// At the beginning of combat on your turn, if you control a Basri planeswalker, put a +1/+1 counter on Adherent of Hope.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), TargetController.YOU, false),
new BeginningOfCombatTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false),
new PermanentsOnTheBattlefieldCondition(filter),
"At the beginning of combat on your turn, if you control a Basri planeswalker, put a +1/+1 counter on {this}."));
}

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.MillCardsControllerEffect;
@ -53,7 +53,6 @@ public final class AdmiralBrassUnsinkable extends CardImpl {
Effect returnFromGraveyardEffect = new ReturnFromGraveyardToBattlefieldWithCounterTargetEffect(CounterType.FINALITY.createInstance());
BeginningOfCombatTriggeredAbility ability = new BeginningOfCombatTriggeredAbility(
returnFromGraveyardEffect,
TargetController.YOU,
true
);
ability.addEffect(new SetBasePowerToughnessTargetEffect(4, 4, Duration.WhileOnBattlefield).setText("It has base power and toughness 4/4."));

View file

@ -3,7 +3,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.IndestructibleAbility;
@ -41,7 +41,7 @@ public final class AethershieldArtificer extends CardImpl {
Ability ability = new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(2, 2, Duration.EndOfTurn)
.setText("target artifact creature you control gets +2/+2"),
TargetController.YOU, false
false
);
ability.addEffect(new GainAbilityTargetEffect(
IndestructibleAbility.getInstance(),

View file

@ -1,7 +1,7 @@
package mage.cards.a;
import mage.MageInt;
import mage.abilities.Pronoun;
import mage.constants.Pronoun;
import mage.abilities.common.DiesOneOrMoreCreatureTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;

View file

@ -3,7 +3,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@ -42,7 +42,7 @@ public final class AjanisComrade extends CardImpl {
// At the beginning of combat on your turn, if you control an Ajani planeswalker, put a +1/+1 counter on Ajani's Comrade.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), TargetController.YOU, false),
new BeginningOfCombatTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false),
new PermanentsOnTheBattlefieldCondition(filter),
"At the beginning of combat on your turn, if you control an Ajani planeswalker, put a +1/+1 counter on {this}."));
}

View file

@ -3,7 +3,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Abilities;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
@ -48,7 +48,7 @@ public final class AkromaVisionOfIxidor extends CardImpl {
// At the beginning of each combat, until end of turn, each other creature you control gets +1/+1 if it has flying, +1/+1 if it has first strike, and so on for double strike, deathtouch, haste, hexproof, indestructible, lifelink, menace, protection, reach, trample, vigilance, and partner.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new AkromaVisionOfIxidorEffect(), TargetController.ANY, false
TargetController.ANY, new AkromaVisionOfIxidorEffect(), false
));
// Partner

View file

@ -4,7 +4,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -33,7 +33,7 @@ public final class AltarOfShadows extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{7}");
// At the beginning of your precombat main phase, add {B} for each charge counter on Altar of Shadows.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new AltarOfShadowsEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new AltarOfShadowsEffect(), false));
// {7}, {tap}: Destroy target creature. Then put a charge counter on Altar of Shadows.
Ability destroyAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(7));

View file

@ -5,7 +5,7 @@ import java.util.*;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.FirstStrikeAbility;
@ -39,7 +39,7 @@ public final class AngelicSkirmisher extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// At the beginning of each combat, choose first strike, vigilance or lifelink. Creatures you control gain that ability until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(new AngelicSkirmisherEffect(), TargetController.ANY, false);
Ability ability = new BeginningOfCombatTriggeredAbility(TargetController.ANY, new AngelicSkirmisherEffect(), false);
this.addAbility(ability);
}

View file

@ -1,19 +1,21 @@
package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author caldover
*/
public final class AnointedDeacon extends CardImpl {
@ -33,9 +35,8 @@ public final class AnointedDeacon extends CardImpl {
this.toughness = new MageInt(3);
// At the beginning of combat on your turn, you may have target Vampire get +2/+0 until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD,
new BoostTargetEffect(2, 0, Duration.EndOfTurn).setText("you may have target Vampire get +2/+0 until end of turn"),
TargetController.YOU, true, false);
Ability ability = new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(2, 0, Duration.EndOfTurn), true);
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}

View file

@ -3,7 +3,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
@ -29,7 +29,7 @@ public final class AnvilOfBogardan extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
// At the beginning of each player's draw step, that player draws an additional card, then discards a card.
this.addAbility(new BeginningOfDrawTriggeredAbility(Zone.BATTLEFIELD, new AnvilOfBogardanEffect(), TargetController.ANY, false));
this.addAbility(new BeginningOfDrawTriggeredAbility(TargetController.EACH_PLAYER, new AnvilOfBogardanEffect(), false));
}
private AnvilOfBogardan(final AnvilOfBogardan card) {

View file

@ -3,7 +3,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.SourceOnBattlefieldOrCommandZoneCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.ContinuousEffect;
@ -53,8 +53,8 @@ public final class ArahboRoarOfTheWorld extends CardImpl {
// Eminence — At the beginning of combat on your turn, if Arahbo, Roar of the World is in the command zone or on the battlefield, another target Cat you control gets +3/+3 until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.ALL,
new BoostTargetEffect(3, 3, Duration.EndOfTurn),
TargetController.YOU, false, false).withInterveningIf(
TargetController.YOU, new BoostTargetEffect(3, 3, Duration.EndOfTurn),
false).withInterveningIf(
SourceOnBattlefieldOrCommandZoneCondition.instance);
ability.addTarget(new TargetCreaturePermanent(filter));
ability.setAbilityWord(AbilityWord.EMINENCE);

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.FullPartyCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
@ -44,7 +44,7 @@ public final class ArchpriestOfIona extends CardImpl {
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(1, 1, Duration.EndOfTurn),
TargetController.YOU, false
false
), FullPartyCondition.instance, "At the beginning of combat on your turn, " +
"if you have a full party, target creature gets +1/+1 and gains flying until end of turn."
);

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.Condition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
@ -42,8 +42,8 @@ public final class ArclightPhoenix extends CardImpl {
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
Zone.GRAVEYARD,
new ReturnSourceFromGraveyardToBattlefieldEffect(),
TargetController.YOU, false, false
TargetController.YOU, new ReturnSourceFromGraveyardToBattlefieldEffect(),
false
), ArclightPhoenixCondition.instance,
"At the beginning of combat on your turn, "
+ "if you've cast three or more instant "

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.PartnerAbility;
import mage.cards.CardImpl;
@ -35,7 +35,7 @@ public final class ArdennIntrepidArchaeologist extends CardImpl {
// At the beginning of combat on your turn, you may attach any number of Auras and Equipment you control to target permanent or player.
Ability ability = new BeginningOfCombatTriggeredAbility(
new ArdennIntrepidArchaeologistEffect(), TargetController.YOU, true
new ArdennIntrepidArchaeologistEffect(), true
);
ability.addTarget(new TargetPermanentOrPlayer());
this.addAbility(ability);

View file

@ -1,9 +1,7 @@
package mage.cards.a;
import java.util.UUID;
import mage.abilities.ActivatedAbilityImpl;
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.IsStepCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -18,8 +16,9 @@ import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.counters.CounterType;
import java.util.UUID;
/**
*
* @author MarcoMarin
*/
public final class ArmageddonClock extends CardImpl {
@ -29,9 +28,11 @@ public final class ArmageddonClock extends CardImpl {
// At the beginning of your upkeep, put a doom counter on Armageddon Clock.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.DOOM.createInstance(), StaticValue.get(1), true), TargetController.YOU, false));
// At the beginning of your draw step, Armageddon Clock deals damage equal to the number of doom counters on it to each player.
this.addAbility(new BeginningOfDrawTriggeredAbility(new DamagePlayersEffect(Outcome.Damage, new CountersSourceCount(CounterType.DOOM))
.setText("{this} deals damage equal to the number of doom counters on it to each player"), TargetController.YOU, false));
.setText("{this} deals damage equal to the number of doom counters on it to each player"), false));
// {4}: Remove a doom counter from Armageddon Clock. Any player may activate this ability but only during any upkeep step.
ActivatedAbilityImpl ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new RemoveCounterSourceEffect(CounterType.DOOM.createInstance()), new ManaCostsImpl<>("{4}"), new IsStepCondition(PhaseStep.UPKEEP, false),

View file

@ -1,7 +1,7 @@
package mage.cards.a;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
@ -50,7 +50,7 @@ public final class AtraxasSkitterfang extends CardImpl {
ability,
new RemoveCountersSourceCost(CounterType.OIL.createInstance()),
"Remove an oil counter?"
), TargetController.YOU, false));
), false));
}
private AtraxasSkitterfang(final AtraxasSkitterfang card) {

View file

@ -3,7 +3,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
@ -46,7 +46,7 @@ public final class AureliaExemplarOfJustice extends CardImpl {
// At the beginning of combat on your turn, choose up to one target creature you control. Until end of turn, that creature gets +2/+0, gains trample if it's red, and gains vigilance if it's white.
Ability ability = new BeginningOfCombatTriggeredAbility(
new AureliaExemplarOfJusticeEffect(),
TargetController.YOU, false
false
);
ability.addTarget(new TargetControlledCreaturePermanent(0, 1));
this.addAbility(ability);

View file

@ -4,7 +4,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.PayEnergyCost;
@ -51,7 +51,7 @@ public final class AuroraShifter extends CardImpl {
this.addAbility(new BeginningOfCombatTriggeredAbility(
new DoWhenCostPaid(reflexive, new PayEnergyCost(2),
"Pay {E}{E}? When you do, {this} becomes a copy of another target creature you control, except it has this ability and \"Whenever this creature deals combat damage to a player, you get that many {E}.\""),
TargetController.YOU, false));
false));
}
private AuroraShifter(final AuroraShifter card) {
@ -108,7 +108,7 @@ class AuroraShifterCopyApplier extends CopyApplier {
blueprint.getAbilities().add(new BeginningOfCombatTriggeredAbility(
new DoWhenCostPaid(reflexive, new PayEnergyCost(2),
"Pay {E}{E}? When you do, {this} becomes a copy of another target creature you control, except it has this ability and \"Whenever this creature deals combat damage to a player, you get that many {E}.\""),
TargetController.YOU, false));
false));
blueprint.getAbilities().add(new DealsCombatDamageToAPlayerTriggeredAbility(

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.keyword.DayboundAbility;
import mage.abilities.keyword.HexproofAbility;
@ -38,7 +38,7 @@ public final class AvabruckCaretaker extends CardImpl {
Ability ability = new BeginningOfCombatTriggeredAbility(
new AddCountersTargetEffect(
CounterType.P1P1.createInstance(2)
), TargetController.YOU, false
), false
);
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL));
this.addAbility(ability);

View file

@ -1,9 +1,7 @@
package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.discard.DiscardHandControllerEffect;
@ -14,23 +12,26 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.TargetController;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class AvariciousDragon extends CardImpl {
public AvariciousDragon(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
this.subtype.add(SubType.DRAGON);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// Flying
this.addAbility(FlyingAbility.getInstance());
// At the beginning of your draw step, draw an additional card.
this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardSourceControllerEffect(1)
.setText("draw an additional card"), TargetController.YOU, false));
.setText("draw an additional card"), false));
// At the beginning of your end step, discard your hand.
this.addAbility(new BeginningOfEndStepTriggeredAbility(new DiscardHandControllerEffect(), TargetController.YOU, false));
}

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileTargetEffect;
@ -50,7 +50,7 @@ public final class AyaraFurnaceQueen extends CardImpl {
// At the beginning of combat on your turn, return up to one target artifact or creature card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step.
Ability ability = new BeginningOfCombatTriggeredAbility(
new AyaraFurnaceQueenEffect(), TargetController.YOU, false
new AyaraFurnaceQueenEffect(), false
);
ability.addTarget(new TargetCardInYourGraveyard(0, 1, filter));
this.addAbility(ability);

View file

@ -5,7 +5,7 @@ import mage.MageInt;
import mage.MageObjectReference;
import mage.abilities.Ability;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DoIfCostPaid;
@ -44,7 +44,7 @@ public final class AzraOddsmaker extends CardImpl {
new DoIfCostPaid(
new AzraOddsmakerEffect(),
new DiscardCardCost()
), TargetController.YOU, false
), false
));
}

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
@ -61,7 +61,7 @@ public final class BanditsTalent extends CardImpl {
this.addAbility(new ClassLevelAbility(3, "{3}{B}"));
// At the beginning of your draw step, draw an additional card for each opponent who has one or fewer cards in hand.
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(new BeginningOfDrawTriggeredAbility(
new DrawCardSourceControllerEffect(BanditsTalentValue.instance), TargetController.YOU, false), 3))
TargetController.YOU, new DrawCardSourceControllerEffect(BanditsTalentValue.instance), false), 3))
.addHint(BanditsTalentValue.getHint()));
}

View file

@ -4,7 +4,7 @@ package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
@ -39,7 +39,7 @@ public final class BatteringRam extends CardImpl {
this.toughness = new MageInt(1);
// At the beginning of combat on your turn, Battering Ram gains banding until end of combat.
this.addAbility(new BeginningOfCombatTriggeredAbility(new GainAbilitySourceEffect(BandingAbility.getInstance(), Duration.EndOfCombat), TargetController.YOU, false));
this.addAbility(new BeginningOfCombatTriggeredAbility(new GainAbilitySourceEffect(BandingAbility.getInstance(), Duration.EndOfCombat), false));
// Whenever Battering Ram becomes blocked by a Wall, destroy that Wall at end of combat.
Effect effect = new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility(new DestroyTargetEffect()), true);

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.keyword.BasicLandcyclingAbility;
@ -23,7 +23,7 @@ public final class BattlePlan extends CardImpl {
// At the beginning of combat on your turn, target creature you control gets +2/+0 until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(2, 0), TargetController.YOU, false
new BoostTargetEffect(2, 0), false
);
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);

View file

@ -1,34 +1,34 @@
package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author jeffwadsworth
*/
public final class BattleRattleShaman extends CardImpl {
public BattleRattleShaman(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
this.subtype.add(SubType.GOBLIN, SubType.SHAMAN);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// At the beginning of combat on your turn, you may have target creature get +2/+0 until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD,
new BoostTargetEffect(2, 0, Duration.EndOfTurn).setText("you may have target creature get +2/+0 until end of turn"),
TargetController.YOU, true, false);
Ability ability = new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(2, 0, Duration.EndOfTurn), true);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostAllEffect;
@ -45,7 +45,7 @@ public final class BeckoningWillOWisp extends CardImpl {
// Lure the Unwary At the beginning of combat on your turn, choose an opponent.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new BeckoningWillOWispEffect(), TargetController.YOU, false
new BeckoningWillOWispEffect(), false
).withFlavorWord("Lure the Unwary"));
// Creatures attacking the last chosen player get +1/+0.

View file

@ -3,7 +3,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfPostCombatMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfPostcombatMainTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
@ -37,8 +37,8 @@ public final class BelbeCorruptedObserver extends CardImpl {
this.toughness = new MageInt(2);
// At the beginning of each player's postcombat main phase, that player adds {C}{C} for each of your opponents who lost life this turn.
this.addAbility(new BeginningOfPostCombatMainTriggeredAbility(
new BelbeCorruptedObserverEffect(), TargetController.ANY, false
this.addAbility(new BeginningOfPostcombatMainTriggeredAbility(
TargetController.ANY, new BelbeCorruptedObserverEffect(), false
).addHint(hint), new BelbeCorruptedObserverWatcher());
}

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.CelebrationCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
@ -36,7 +36,6 @@ public final class BelligerentOfTheBall extends CardImpl {
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(1, 0),
TargetController.YOU,
false),
CelebrationCondition.instance, "At the beginning of combat on your turn, if two or more nonland "
+ "permanents entered the battlefield under your control this turn, target creature you control "

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.CelebrationCondition;
import mage.abilities.costs.mana.GenericManaCost;
@ -37,7 +37,6 @@ public final class BespokeBattlegarb extends CardImpl {
Outcome.BoostCreature,
"attach {this} to up to one target creature you control"
),
TargetController.YOU,
false
), CelebrationCondition.instance, "At the beginning of combat on your turn, if two "
+ "or more nonland permanents entered the battlefield under your control this turn, "

View file

@ -4,7 +4,7 @@ package mage.cards.b;
import java.util.UUID;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@ -30,7 +30,7 @@ public final class BlackMarket extends CardImpl {
// Whenever a creature dies, put a charge counter on Black Market.
this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), false));
// At the beginning of your precombat main phase, add {B} for each charge counter on Black Market.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new BlackMarketEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new BlackMarketEffect(), false));
}

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
@ -26,7 +26,7 @@ public final class BlackMarketConnections extends CardImpl {
// At the beginning of your precombat main phase, choose one or more
// Sell Contraband Create a Treasure token. You lose 1 life.
Ability ability = new BeginningOfFirstMainTriggeredAbility(
new CreateTokenEffect(new TreasureToken()), TargetController.YOU, false
new CreateTokenEffect(new TreasureToken()), false
);
ability.addEffect(new LoseLifeSourceControllerEffect(1));
ability.withFirstModeFlavorWord("Sell Contraband");

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
@ -60,7 +60,7 @@ public final class BlacksmithsTalent extends CardImpl {
// At the beginning of combat on your turn, attach target Equipment you control to up to one target creature you control.
Ability ability = new BeginningOfCombatTriggeredAbility(
new BlacksmithsTalentEffect(), TargetController.YOU, false
new BlacksmithsTalentEffect(), false
);
ability.addTarget(new TargetPermanent(filter));
ability.addTarget(new TargetControlledCreaturePermanent(0, 1));

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.*;
@ -30,7 +30,7 @@ public final class BleedingEffect extends CardImpl {
// At the beginning of combat on your turn, creatures you control gain flying until end of turn if a creature card in your graveyard has flying.
// The same is true for first strike, double strike, deathtouch, hexproof, indestructible, lifelink, menace, reach, trample, and vigilance.
this.addAbility(new BeginningOfCombatTriggeredAbility(new BleedingEffectEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfCombatTriggeredAbility(new BleedingEffectEffect(), false));
}
private BleedingEffect(final BleedingEffect card) {

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.condition.common.SourceTappedCondition;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -28,7 +28,7 @@ public final class BlinkmothUrn extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}");
// At the beginning of each player's precombat main phase, if Blinkmoth Urn is untapped, that player adds {C} for each artifact they control.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new BlinkmothUrnEffect(), TargetController.ANY, false)
this.addAbility(new BeginningOfFirstMainTriggeredAbility(TargetController.EACH_PLAYER, new BlinkmothUrnEffect(), false)
.withInterveningIf(SourceTappedCondition.UNTAPPED));
}

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.TransformSourceEffect;
@ -38,7 +38,7 @@ public final class BlitzwingAdaptiveAssailant extends CardImpl {
// At the beginning of combat on your turn, choose flying or indestructible at random. Blitzwing gains that ability until end of turn.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new BlitzwingAdaptiveAssailantEffect(), TargetController.YOU, false
new BlitzwingAdaptiveAssailantEffect(), false
));
// Whenever Blitzwing deals combat damage to a player, convert it.

View file

@ -3,7 +3,7 @@ package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.DoubleStrikeAbility;
import mage.cards.CardImpl;
@ -23,7 +23,7 @@ public final class BloodMist extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{R}");
// At the beginning of combat on your turn, target creature you control gains double strike until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn), TargetController.YOU, false);
Ability ability = new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn), false);
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.HasteAbility;
@ -53,7 +53,7 @@ public final class BloodbatSummoner extends CardImpl {
.withColor("B"),
false, false, Duration.Custom
).setText("up to one target Blood token you control becomes a " +
"2/2 black Bat creature with flying and haste in addition to its other types"), TargetController.YOU, false);
"2/2 black Bat creature with flying and haste in addition to its other types"), false);
ability.addTarget(new TargetPermanent(0, 1, filter));
this.addAbility(ability);
}

View file

@ -1,9 +1,8 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.combat.AttacksIfAbleTargetEffect;
@ -13,14 +12,14 @@ import mage.abilities.effects.common.combat.CantBlockTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetCreaturePermanent;
import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class BorosBattleshaper extends CardImpl {
@ -33,9 +32,9 @@ public final class BorosBattleshaper extends CardImpl {
this.toughness = new MageInt(5);
// At the beginning of each combat, up to one target creature attacks or blocks this combat if able and up to one target creature can't attack or block this combat.
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD, new BorosBattleshaperEffect(), TargetController.ANY, false, false);
ability.addTarget(new TargetCreaturePermanent(0, 1, new FilterCreaturePermanent("creature that attacks or blocks if able"), false));
ability.addTarget(new TargetCreaturePermanent(0, 1, new FilterCreaturePermanent("creature that can't attack or block"), false));
Ability ability = new BeginningOfCombatTriggeredAbility(TargetController.ANY, new BorosBattleshaperEffect(), false);
ability.addTarget(new TargetCreaturePermanent(0, 1).withChooseHint("attacks or blocks this combat if able"));
ability.addTarget(new TargetCreaturePermanent(0, 1).withChooseHint("can't attack or block this combat"));
this.addAbility(ability);
}

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.FerociousCondition;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
@ -34,7 +34,7 @@ public final class BoundaryLandsRanger extends CardImpl {
new BeginningOfCombatTriggeredAbility(
new DoIfCostPaid(
new DrawCardSourceControllerEffect(1), new DiscardCardCost()
), TargetController.YOU, false
), false
), FerociousCondition.instance, "At the beginning of combat on your turn, if you control " +
"a creature with power 4 or greater, you may discard a card. If you do, draw a card."
).addHint(FerociousHint.instance));

View file

@ -3,7 +3,7 @@ package mage.cards.b;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
@ -29,7 +29,7 @@ public final class BountyOfTheLuxa extends CardImpl {
// At the beginning of your precombat main phase, remove all flood counters from Bounty of the Luxa.
// If no counters were removed this way, put a flood counter on Bounty of the Luxa and draw a card.
// Otherwise, add {C}{G}{U}.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new BountyOfTheLuxaEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new BountyOfTheLuxaEffect(), false));
}
private BountyOfTheLuxa(final BountyOfTheLuxa card) {

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
@ -32,7 +32,7 @@ public final class BrambleguardCaptain extends CardImpl {
// At the beginning of combat on your turn, target creature you control gets +X/+0 until end of turn, where X is Brambleguard Captain's power.
Ability ability = new BeginningOfCombatTriggeredAbility(new BoostTargetEffect(
SourcePermanentPowerValue.NOT_NEGATIVE, StaticValue.get(0), Duration.EndOfTurn
), TargetController.YOU, false);
), false);
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
}

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfPostCombatMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfPostcombatMainTriggeredAbility;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.condition.common.RaidCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
@ -43,10 +43,10 @@ public final class BrazenCannonade extends CardImpl {
// Raid -- At the beginning of your postcombat main phase, if you attacked with a creature this turn, exile the top card of your library. Until end of combat on your next turn, you may play that card.
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new BeginningOfPostCombatMainTriggeredAbility(
new BeginningOfPostcombatMainTriggeredAbility(
new ExileTopXMayPlayUntilEffect(
1, Duration.UntilEndCombatOfYourNextTurn
), TargetController.YOU, false
), false
), RaidCondition.instance, "At the beginning of each of your postcombat main phases, " +
"if you attacked this turn, exile the top card of your library. " +
"Until end of combat on your next turn, you may play that card."

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
@ -43,7 +43,7 @@ public final class BrotherhoodSpy extends CardImpl {
// At the beginning of combat on your turn, if you control a legendary Assassin, Brotherhood Spy gets +1/+0 until end of turn and can't be blocked this turn.
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(1, 0), TargetController.YOU, false
new BoostTargetEffect(1, 0), false
), condition, "At the beginning of combat on your turn, if you control a legendary Assassin, " +
"{this} gets +1/+0 until end of turn and can't be blocked this turn."
);

View file

@ -2,7 +2,7 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
@ -47,7 +47,7 @@ public final class BrudicladTelchorEngineer extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, filter, false)));
// At the beginning of combat on your turn, create a 2/1 blue Myr artifact creature token. Then you may choose a token you control. If you do, each other token you control becomes a copy of that token.
this.addAbility(new BeginningOfCombatTriggeredAbility(new BrudicladTelchorEngineerEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfCombatTriggeredAbility(new BrudicladTelchorEngineerEffect(), false));
}
private BrudicladTelchorEngineer(final BrudicladTelchorEngineer card) {

View file

@ -3,7 +3,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.effects.OneShotEffect;
@ -51,7 +51,7 @@ public final class CabalTherapist extends CardImpl {
ability.addTarget(new TargetPlayer());
this.addAbility(new BeginningOfFirstMainTriggeredAbility(
new DoWhenCostPaid(ability, new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE
), "Sacrifice a creature?"), TargetController.YOU, false
), "Sacrifice a creature?"), false
));
}

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.HasteAbility;
@ -46,7 +46,7 @@ public final class CactusfolkSureshot extends CardImpl {
// At the beginning of combat on your turn, other creatures you control with power 4 or greater gain trample and haste until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(new GainAbilityControlledEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn, filter, true
).setText("other creatures you control with power 4 or greater gain trample"), TargetController.YOU, false);
).setText("other creatures you control with power 4 or greater gain trample"), false);
ability.addEffect(new GainAbilityControlledEffect(
HasteAbility.getInstance(), Duration.EndOfTurn, filter, true
).setText("and haste until end of turn"));

View file

@ -1,7 +1,7 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.CovenCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
@ -31,7 +31,7 @@ public final class CandlegroveWitch extends CardImpl {
new BeginningOfCombatTriggeredAbility(
new GainAbilitySourceEffect(
FlyingAbility.getInstance(), Duration.EndOfTurn
), TargetController.YOU, false
), false
), CovenCondition.instance, "At the beginning of combat on your turn, if you control three " +
"or more creatures with different powers, {this} gains flying until end of turn."
).addHint(CovenHint.instance).setAbilityWord(AbilityWord.COVEN));

View file

@ -1,7 +1,7 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.CovenCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
@ -31,7 +31,7 @@ public final class CandlelitCavalry extends CardImpl {
new BeginningOfCombatTriggeredAbility(
new GainAbilitySourceEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn
), TargetController.YOU, false
), false
), CovenCondition.instance, "At the beginning of combat on your turn, if you control " +
"three or more creatures with different powers, {this} gains trample until end of turn."
).addHint(CovenHint.instance).setAbilityWord(AbilityWord.COVEN));

View file

@ -4,7 +4,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.EarlyTargetCost;
@ -62,7 +62,7 @@ public final class CaptainAmericaFirstAvenger extends CardImpl {
// ... Catch At the beginning of combat on your turn, attach up to one target Equipment you control to Captain America.
ability = new BeginningOfCombatTriggeredAbility(
new CaptainAmericaFirstAvengerCatchEffect(), TargetController.YOU, false
new CaptainAmericaFirstAvengerCatchEffect(), false
);
ability.addTarget(new TargetPermanent(0, 1, filter));
this.addAbility(ability.withFlavorWord("... Catch"));
@ -212,4 +212,4 @@ class CaptainAmericaFirstAvengerCatchEffect extends OneShotEffect {
Permanent creature = source.getSourcePermanentIfItStillExists(game);
return equipment != null && creature != null && creature.addAttachment(equipment.getId(), source, game);
}
}
}

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.CaseAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.Condition;
@ -45,7 +45,7 @@ public final class CaseOfTheShatteredPact extends CardImpl {
// Solved -- At the beginning of combat on your turn, target creature you control gains flying, double strike, and vigilance until end of turn.
TriggeredAbility triggeredAbility = new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance())
.setText("target creature you control gains flying"),
TargetController.YOU, false);
false);
triggeredAbility.addEffect(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance())
.setText(", double strike,"));
triggeredAbility.addEffect(new GainAbilityTargetEffect(VigilanceAbility.getInstance())

View file

@ -3,7 +3,7 @@ package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.Condition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.TransformSourceEffect;
@ -33,7 +33,7 @@ public final class CatapultFodder extends CardImpl {
// At the beginning of combat on your turn, if you control three or more creatures that each have toughness greater than their power, transform Catapult Fodder.
this.addAbility(new TransformAbility());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(new TransformSourceEffect(), TargetController.YOU, false),
new BeginningOfCombatTriggeredAbility(new TransformSourceEffect(), false),
CatapultFodderCondition.instance,
"At the beginning of combat on your turn, if you control three or more creatures that each have toughness greater than their power, transform {this}"
));

View file

@ -4,7 +4,7 @@ import java.util.List;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
@ -40,7 +40,7 @@ public final class Celebr8000 extends CardImpl {
// * 5 -- flying
// * 6 -- indestructible
this.addAbility(
new BeginningOfCombatTriggeredAbility(new Celebr8000Effect(), TargetController.YOU, false));
new BeginningOfCombatTriggeredAbility(new Celebr8000Effect(), false));
}
private Celebr8000(final Celebr8000 card) {

View file

@ -3,7 +3,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
@ -37,7 +37,7 @@ public final class CephalidFacetaker extends CardImpl {
// At the beginning of combat on your turn, you may have Cephalid Facetaker become a copy of another target creature until end of turn, except its a 1/4 and has "This creature can't be blocked."
Ability ability = new BeginningOfCombatTriggeredAbility(
new CephalidFacetakerEffect(), TargetController.YOU, true
new CephalidFacetakerEffect(), true
);
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE));
this.addAbility(ability);

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.MonarchIsSourceControllerCondition;
import mage.abilities.costs.Cost;
@ -43,10 +43,8 @@ public final class ChampionsOfMinasTirith extends CardImpl {
this.addAbility(new ConditionalTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
Zone.BATTLEFIELD,
new ChampionsOfMinasTirithEffect(),
TargetController.OPPONENT,
false,
true
TargetController.OPPONENT, new ChampionsOfMinasTirithEffect(),
false
),
MonarchIsSourceControllerCondition.instance,
"At the beginning of combat on each opponent's turn, if you're the monarch, that opponent may pay {X}, "

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.Pronoun;
import mage.constants.Pronoun;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.condition.common.SourceDealtDamageCondition;

View file

@ -3,7 +3,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksEachCombatStaticAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.RestrictionEffect;
import mage.abilities.keyword.FlyingAbility;
@ -40,7 +40,7 @@ public final class ChaosDragon extends CardImpl {
// At the beginning of combat on your turn, each player rolls a d20. If one or more opponents had the highest result, Chaos Dragon can't attack those players or planeswalkers they control this combat.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new ChaosDragonEffect(), TargetController.YOU, false
new ChaosDragonEffect(), false
));
}

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.DoubleStrikeAbility;
import mage.cards.CardImpl;
@ -31,7 +31,7 @@ public final class ChaosTerminatorLord extends CardImpl {
// Lord of Chaos -- At the beginning of combat on your turn, another target creature you control gains double strike until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(
new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance()),
TargetController.YOU, false
false
);
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL));
this.addAbility(ability.withFlavorWord("Lord of Chaos"));

View file

@ -2,7 +2,7 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.ModeChoiceSourceCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility;
@ -45,7 +45,7 @@ public final class CitadelSiege extends CardImpl {
// * Khans - At the beginning of combat on your turn, put two +1/+1 counters on target creature you control.
Ability ability = new ConditionalTriggeredAbility(
new BeginningOfCombatTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)), TargetController.YOU, false),
new BeginningOfCombatTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)), false),
new ModeChoiceSourceCondition("Khans"),
ruleTrigger1);
ability.addTarget(new TargetControlledCreaturePermanent());
@ -53,7 +53,7 @@ public final class CitadelSiege extends CardImpl {
// * Dragons - At the beginning of combat on each opponent's turn, tap target creature that player controls.
ability = new ConditionalTriggeredAbility(
new BeginningOfCombatTriggeredAbility(new TapTargetEffect(), TargetController.OPPONENT, false),
new BeginningOfCombatTriggeredAbility(TargetController.OPPONENT, new TapTargetEffect(), false),
new ModeChoiceSourceCondition("Dragons"),
ruleTrigger2);
ability.addTarget(new TargetCreaturePermanent(filter));

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenTargetEffect;
@ -50,7 +50,7 @@ public final class ClackbridgeTroll extends CardImpl {
// At the beginning of combat on your turn, any opponent may sacrifice a creature. If a player does, tap Clackbridge Troll, you gain 3 life, and you draw a card.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new ClackbridgeTrollEffect(), TargetController.YOU, false)
new ClackbridgeTrollEffect(), false)
);
}
@ -115,4 +115,4 @@ class ClackbridgeTrollEffect extends OneShotEffect {
}
return true;
}
}
}

View file

@ -3,7 +3,7 @@ package mage.cards.c;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.OneShotEffect;
@ -36,7 +36,7 @@ public final class CoalitionRelic extends CardImpl {
// {tap}: Put a charge counter on Coalition Relic.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true), new TapSourceCost()));
// At the beginning of your precombat main phase, remove all charge counters from Coalition Relic. Add one mana of any color for each charge counter removed this way.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new CoalitionRelicEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new CoalitionRelicEffect(), false));
}
private CoalitionRelic(final CoalitionRelic card) {

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.FlyingAbility;
@ -37,7 +37,7 @@ public final class CombatProfessor extends CardImpl {
Ability ability = new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(1, 0)
.setText("target creature you control gets +1/+0"),
TargetController.YOU, false
false
);
ability.addEffect(new GainAbilityTargetEffect(
VigilanceAbility.getInstance(), Duration.EndOfTurn

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.common.PayEnergyCost;
import mage.abilities.effects.common.DoIfCostPaid;
@ -41,7 +41,7 @@ public final class ConduitGoblin extends CardImpl {
new DoIfCostPaid(new BoostTargetEffect(1, 0), new PayEnergyCost(1))
.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance()))
.setText("you may pay {E}. If you do, another target creature you control gets +1/+0 and gains haste until end of turn"),
TargetController.YOU, false
false
);
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL));
this.addAbility(ability);

View file

@ -1,7 +1,7 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.Pronoun;
import mage.constants.Pronoun;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;

View file

@ -1,7 +1,7 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.ForageTriggeredAbility;
import mage.abilities.costs.common.ForageCost;
import mage.abilities.effects.common.DoIfCostPaid;
@ -31,7 +31,7 @@ public final class CorpseberryCultivator extends CardImpl {
// At the beginning of combat on your turn, you may forage.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new DoIfCostPaid(null, new ForageCost()),
TargetController.YOU, false
false
));
// Whenever you forage, put a +1/+1 counter on Corpseberry Cultivator.

View file

@ -1,7 +1,7 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
import mage.abilities.keyword.VanishingAbility;
@ -31,7 +31,7 @@ public final class CrackInTime extends CardImpl {
Ability ability = new OrTriggeredAbility(Zone.BATTLEFIELD, new ExileUntilSourceLeavesEffect(), false,
"When {this} enters and at the beginning of your first main phase, ",
new EntersBattlefieldTriggeredAbility(null),
new BeginningOfFirstMainTriggeredAbility(null, TargetController.YOU, false)
new BeginningOfFirstMainTriggeredAbility(null, false)
);
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
this.addAbility(ability);

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -35,7 +35,7 @@ public final class CrystallineGiant extends CardImpl {
// At the beginning of combat on your turn, choose a kind of counter at random that Crystalline Giant doesn't have on it from among flying, first strike, deathtouch, hexproof, lifelink, menace, reach, trample, vigilance, or +1/+1. Put a counter of that kind on Crystalline Giant.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new CrystallineGiantEffect(), TargetController.YOU, false
new CrystallineGiantEffect(), false
));
}
@ -99,4 +99,4 @@ class CrystallineGiantEffect extends OneShotEffect {
RandomUtil.nextInt(counterTypes.size())
).createInstance(), source.getControllerId(), source, game);
}
}
}

View file

@ -1,7 +1,7 @@
package mage.cards.c;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
@ -37,9 +37,9 @@ public final class CurseOfObsession extends CardImpl {
// At the beginning of enchanted player's draw step, that player draws two additional cards.
this.addAbility(new BeginningOfDrawTriggeredAbility(
new DrawCardTargetEffect(2)
TargetController.ENCHANTED, new DrawCardTargetEffect(2)
.setText("that player draws two additional cards"),
TargetController.ENCHANTED, false
false
));
// At the beginning of enchanted player's end step, that player discards their hand.

View file

@ -1,7 +1,7 @@
package mage.cards.d;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.cards.CardImpl;
@ -24,7 +24,7 @@ public final class DaringPiracy extends CardImpl {
// At the beginning of your combat on your turn, create a 1/1 red Pirate creature token with menace and haste. Exile it at the beginning of the next end step.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new DaringPiracyEffect(), TargetController.YOU, false
new DaringPiracyEffect(), false
));
}

View file

@ -1,7 +1,7 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.CovenCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
@ -33,7 +33,7 @@ public final class DawnhartWardens extends CardImpl {
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
new BoostControlledEffect(1, 0, Duration.EndOfTurn),
TargetController.YOU, false
false
), CovenCondition.instance, "At the beginning of combat on your turn, " +
"if you control three or more creatures with different powers, " +
"creatures you control get +1/+0 until end of turn."

View file

@ -4,7 +4,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CopyEffect;
import mage.cards.*;
@ -30,7 +30,7 @@ public final class DeceiverOfForm extends CardImpl {
// At the beginning of combat on your turn, reveal the top card of your library.
// If a creature card is revealed this way, you may have creatures you control other than Deceiver of Form becomes copies of that card until end of turn.
// You may put that card on the bottom of your library.
this.addAbility(new BeginningOfCombatTriggeredAbility(new DeceiverOfFormEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfCombatTriggeredAbility(new DeceiverOfFormEffect(), false));
}
private DeceiverOfForm(final DeceiverOfForm card) {

View file

@ -2,7 +2,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.keyword.ExploreSourceEffect;
import mage.cards.CardImpl;
@ -32,7 +32,7 @@ public final class DeepfathomEcho extends CardImpl {
// At the beginning of combat on your turn, Deepfathom Echo explores. Then you may have it become a copy of another creature you control until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(
new ExploreSourceEffect(false, "{this}"), TargetController.YOU, false
new ExploreSourceEffect(false, "{this}"), false
);
ability.addEffect(new DeepfathomEchoEffect());
this.addAbility(ability);

View file

@ -29,7 +29,7 @@ public final class Delirium extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
static {
filter.add(new ControllerIsActivePlayerPredicate());
filter.add(ControllerIsActivePlayerPredicate.instance);
}
public Delirium(UUID ownerId, CardSetInfo setInfo) {

View file

@ -4,7 +4,7 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
@ -38,7 +38,7 @@ public final class DesecrationDemon extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// At the beginning of each combat, any opponent may sacrifice a creature. If a player does, tap Desecration Demon and put a +1/+1 counter on it.
this.addAbility(new BeginningOfCombatTriggeredAbility(new DesecrationDemonEffect(), TargetController.ANY, false));
this.addAbility(new BeginningOfCombatTriggeredAbility(TargetController.ANY, new DesecrationDemonEffect(), false));
}
private DesecrationDemon(final DesecrationDemon card) {

View file

@ -1,7 +1,7 @@
package mage.cards.d;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PopulateEffect;
@ -29,7 +29,7 @@ public final class DeterminedIteration extends CardImpl {
// At the beginning of combat on your turn, populate. The token created this way gains haste. Sacrifice it at the beginning of the next end step.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new DeterminedIterationEffect(), TargetController.YOU, false
new DeterminedIterationEffect(), false
));
}

View file

@ -1,7 +1,7 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
@ -14,7 +14,6 @@ import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.StaticFilters;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
@ -37,7 +36,7 @@ public final class DireFleetWarmonger extends CardImpl {
new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)
).addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)
.concatBy("and").setText("gains trample until end of turn")),
TargetController.YOU, false));
false));
}
private DireFleetWarmonger(final DireFleetWarmonger card) {

View file

@ -3,7 +3,7 @@ package mage.cards.d;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.Condition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.TransformSourceEffect;
@ -35,7 +35,7 @@ public final class DormantGrove extends CardImpl {
Ability ability = new BeginningOfCombatTriggeredAbility(
new AddCountersTargetEffect(CounterType.P1P1.createInstance()),
TargetController.YOU, false
false
);
ability.addEffect(new ConditionalOneShotEffect(
new TransformSourceEffect(),

View file

@ -3,7 +3,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect;
import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.keyword.FlyingAbility;
@ -34,7 +34,7 @@ public final class DreamshackleGeist extends CardImpl {
// At the beginning of combat on your turn, choose up to one
// Tap target creature.
Ability ability = new BeginningOfCombatTriggeredAbility(
new TapTargetEffect(), TargetController.YOU, false
new TapTargetEffect(), false
);
ability.addTarget(new TargetCreaturePermanent());
ability.getModes().setMinModes(0);

View file

@ -2,7 +2,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.CovenCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
@ -36,7 +36,7 @@ public final class DuelcraftTrainer extends CardImpl {
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(
DoubleStrikeAbility.getInstance(), Duration.EndOfTurn
), TargetController.YOU, false), CovenCondition.instance, "At the beginning " +
), false), CovenCondition.instance, "At the beginning " +
"of combat on your turn, if you control three or more creatures with different powers, " +
"target creature you control gains double strike until end of turn."
);

View file

@ -2,7 +2,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.MyriadAbility;
@ -36,7 +36,7 @@ public final class DukeUlderRavengard extends CardImpl {
Ability ability = new BeginningOfCombatTriggeredAbility(
new GainAbilityTargetEffect(HasteAbility.getInstance())
.setText("another target creature you control gains haste"),
TargetController.YOU, false
false
);
ability.addEffect(new GainAbilityTargetEffect(new MyriadAbility()).setText("and myriad until end of turn"));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE));

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.CompletedDungeonCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
@ -43,7 +43,7 @@ public final class EccentricApprentice extends CardImpl {
// At the beginning of combat on your turn, if you've completed a dungeon, up to one target creature becomes a Bird with base power and toughness 1/1 and flying until end of turn.
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
new EccentricApprenticeEffect(), TargetController.YOU, false
new EccentricApprenticeEffect(), false
), CompletedDungeonCondition.instance, "At the beginning of combat on your turn, " +
"if you've completed a dungeon, up to one target creature becomes a Bird " +
"with base power and toughness 1/1 and flying until end of turn."

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -27,7 +27,7 @@ public final class EidolonOfInspiration extends CardImpl {
// At the beginning of combat on your turn, target creature you control gets +2/+0 until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(2, 0), TargetController.YOU, false
new BoostTargetEffect(2, 0), false
);
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);

View file

@ -1,29 +1,27 @@
package mage.cards.e;
import java.util.UUID;
import mage.Mana;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.effects.mana.AddManaToManaPoolTargetControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetController;
import mage.constants.Zone;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class EladamrisVineyard extends CardImpl {
public EladamrisVineyard(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{G}");
// At the beginning of each player's precombat main phase, add {G}{G} to that player's mana pool.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(
Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(2), "that player's"), TargetController.ANY, false, true));
TargetController.EACH_PLAYER, new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(2), "that player's"),
false));
}
private EladamrisVineyard(final EladamrisVineyard card) {

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.dynamicvalue.common.StaticValue;
@ -48,7 +48,7 @@ public final class EldraziLinebreaker extends CardImpl {
Ability ability = new BeginningOfCombatTriggeredAbility(
new GainAbilityTargetEffect(HasteAbility.getInstance())
.setText("target creature you control gains haste"),
TargetController.YOU, false
false
);
ability.addEffect(new BoostTargetEffect(xValue, StaticValue.get(0))
.setText("and gets +X/+0 until end of turn, where X is the number of Eldrazi you control"));

View file

@ -1,7 +1,7 @@
package mage.cards.e;
import mage.MageInt;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.common.PayEnergyCost;
import mage.abilities.effects.common.TapSourceUnlessPaysEffect;
@ -39,7 +39,7 @@ public final class Electrozoa extends CardImpl {
// At the beginning of your precombat main phase, tap Electrozoa unless you pay {E}.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(
new TapSourceUnlessPaysEffect(new PayEnergyCost(1)), TargetController.YOU, false
new TapSourceUnlessPaysEffect(new PayEnergyCost(1)), false
));
}

View file

@ -7,7 +7,7 @@ import java.util.List;
import java.util.UUID;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.keyword.EnchantAbility;
@ -43,7 +43,7 @@ public final class ElementalResonance extends CardImpl {
this.addAbility(ability);
// At the beginning of your precombat main phase, add mana equal to enchanted permanent's mana cost.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new ElementalResonanceEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new ElementalResonanceEffect(), false));
}
private ElementalResonance(final ElementalResonance card) {

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.OneOrMoreCountersAddedTriggeredAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
@ -45,7 +45,7 @@ public final class EmperorOfBones extends CardImpl {
// At the beginning of combat on your turn, exile up to one target card from a graveyard.
Ability ability = new BeginningOfCombatTriggeredAbility(
new ExileTargetEffect().setToSourceExileZone(true),
TargetController.YOU, false
false
);
ability.addTarget(new TargetCardInGraveyard(0, 1));
this.addAbility(ability);
@ -115,4 +115,4 @@ class EmperorOfBonesEffect extends OneShotEffect {
), source);
return true;
}
}
}

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
@ -38,7 +38,7 @@ public final class EowynLadyOfRohan extends CardImpl {
// At the beginning of combat on your turn, target creature gains your choice of first strike or vigilance until end of turn. If that creature is equipped, it gains first strike and vigilance until end of turn instead.
Ability ability = new BeginningOfCombatTriggeredAbility(
new EowynLadyOfRohanEffect(), TargetController.YOU, false
new EowynLadyOfRohanEffect(), false
);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);

View file

@ -4,7 +4,7 @@ import mage.MageInt;
import mage.MageObjectReference;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
@ -51,8 +51,8 @@ public final class EowynShieldmaiden extends CardImpl {
TriggeredAbility triggeredAbility = new BeginningOfCombatTriggeredAbility(
Zone.BATTLEFIELD,
new CreateTokenEffect(new HumanKnightToken(), 2),
TargetController.YOU, false, false
TargetController.YOU, new CreateTokenEffect(new HumanKnightToken(), 2),
false
);
triggeredAbility.addEffect(new ConditionalOneShotEffect(
new DrawCardSourceControllerEffect(1),

View file

@ -1,7 +1,7 @@
package mage.cards.e;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.CollectEvidenceTriggeredAbility;
import mage.abilities.costs.common.CollectEvidenceCost;
import mage.abilities.effects.common.DoIfCostPaid;
@ -30,7 +30,7 @@ public final class EvidenceExaminer extends CardImpl {
// At the beginning of combat on your turn, you may collect evidence 4.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new DoIfCostPaid(null, new CollectEvidenceCost(4)),
TargetController.YOU, false
false
));
// Whenever you collect evidence, investigate.

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersPlayersEffect;
@ -49,7 +49,7 @@ public final class EzuriClawOfProgress extends CardImpl {
), filter));
// At the beginning of combat on your turn, put X +1/+1 counters on another target creature you control, where X is the number of experience counters you have.
Ability ability = new BeginningOfCombatTriggeredAbility(new EzuriClawOfProgressEffect(), TargetController.YOU, false);
Ability ability = new BeginningOfCombatTriggeredAbility(new EzuriClawOfProgressEffect(), false);
ability.addTarget(new TargetControlledCreaturePermanent(filter2));
this.addAbility(ability);
}

View file

@ -3,7 +3,7 @@ package mage.cards.f;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.MeleeAbility;
import mage.cards.CardImpl;
@ -32,7 +32,7 @@ public final class FangOfThePack extends CardImpl {
this.addAbility(new MeleeAbility());
// At the beginning of combat on your turn, another target creature you control gains melee until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(new MeleeAbility(), Duration.EndOfTurn), TargetController.YOU, false);
Ability ability = new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(new MeleeAbility(), Duration.EndOfTurn), false);
ability.addTarget(new TargetControlledCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL));
this.addAbility(ability);
}

View file

@ -2,7 +2,7 @@ package mage.cards.f;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.HasteAbility;
@ -26,7 +26,7 @@ public final class Ferocification extends CardImpl {
// At the beginning of combat on your turn, choose one--
// * Target creature you control gets +2/+0 until end of turn.
Ability ability = new BeginningOfCombatTriggeredAbility(
new BoostTargetEffect(2, 0), TargetController.YOU, false
new BoostTargetEffect(2, 0), false
);
ability.addTarget(new TargetControlledCreaturePermanent());

View file

@ -1,7 +1,7 @@
package mage.cards.f;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.combat.CantAttackAllEffect;
import mage.cards.CardImpl;
@ -35,7 +35,7 @@ public final class FightOrFlight extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}");
// At the beginning of combat on each opponents turn, separate all creatures that player controls into two piles. Only creatures in the pile of their choice can attack this turn.
this.addAbility(new BeginningOfCombatTriggeredAbility(new FightOrFlightEffect(), TargetController.OPPONENT, false));
this.addAbility(new BeginningOfCombatTriggeredAbility(TargetController.OPPONENT, new FightOrFlightEffect(), false));
}
private FightOrFlight(final FightOrFlight card) {

View file

@ -1,7 +1,7 @@
package mage.cards.f;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
@ -43,7 +43,7 @@ public final class FightRigging extends CardImpl {
// At the beginning of combat on your turn, put a +1/+1 counter on target creature you control. Then if you control a creature with power 7 or greater, you may play the exiled card without paying its mana cost.
Ability ability = new BeginningOfCombatTriggeredAbility(
new AddCountersTargetEffect(CounterType.P1P1.createInstance()),
TargetController.YOU, false
false
);
ability.addEffect(new ConditionalOneShotEffect(
new HideawayPlayEffect(), condition, "Then if you control a creature " +

View file

@ -2,9 +2,8 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfSecondMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfSecondMainTriggeredAbility;
import mage.abilities.condition.common.OpponentsLostLifeCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.OneShotEffect;
import mage.cards.*;
import mage.constants.*;
@ -31,10 +30,8 @@ public final class FireglassMentor extends CardImpl {
this.toughness = new MageInt(1);
// At the beginning of your second main phase, if an opponent lost life this turn, exile the top two cards of your library. Choose one of them. Until end of turn, you may play that card.
//TODO: Currently using postcombat main phase, change it (and most others) to second main phase
this.addAbility(new BeginningOfSecondMainTriggeredAbility(
new ConditionalOneShotEffect(new FireglassMentorEffect(), OpponentsLostLifeCondition.instance),
TargetController.YOU, false));
this.addAbility(new BeginningOfSecondMainTriggeredAbility(new FireglassMentorEffect(), false)
.withInterveningIf(OpponentsLostLifeCondition.instance));
}
private FireglassMentor(final FireglassMentor card) {

View file

@ -2,7 +2,7 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.common.AttacksEachCombatStaticAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.condition.common.FerociousCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
@ -42,8 +42,8 @@ public final class FlamewakePhoenix extends CardImpl {
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(
Zone.GRAVEYARD,
new DoIfCostPaid(new ReturnToBattlefieldUnderOwnerControlSourceEffect(), new ManaCostsImpl<>("{R}")),
TargetController.YOU, false, false),
TargetController.YOU, new DoIfCostPaid(new ReturnToBattlefieldUnderOwnerControlSourceEffect(), new ManaCostsImpl<>("{R}")),
false),
FerociousCondition.instance,
"<i>Ferocious</i> &mdash; At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return {this} from your graveyard to the battlefield."
).addHint(FerociousHint.instance));

View file

@ -3,7 +3,7 @@ package mage.cards.f;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfPostCombatMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfPostcombatMainTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.asthought.PlayFromNotOwnHandZoneTargetEffect;
import mage.cards.*;
@ -35,7 +35,7 @@ public final class FlorianVoldarenScion extends CardImpl {
// At the beginning of your postcombat main phase, look at the top X cards of your library, where X is the total amount of life your opponents lost this turn.
// Exile one of those cards and put the rest on the bottom of your library in a random order. You may play the exiled card this turn.
this.addAbility(new BeginningOfPostCombatMainTriggeredAbility(new FlorianVoldarenScionEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfPostcombatMainTriggeredAbility(new FlorianVoldarenScionEffect(), false));
}
private FlorianVoldarenScion(final FlorianVoldarenScion card) {

View file

@ -1,7 +1,7 @@
package mage.cards.f;
import mage.MageInt;
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
import mage.abilities.effects.mana.AddManaOfAnyColorEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -24,7 +24,7 @@ public class ForsakenThresher extends CardImpl {
this.nightCard = true;
// At the beginning of your precombat main phase, add one mana of any color.
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new AddManaOfAnyColorEffect(), TargetController.YOU, false));
this.addAbility(new BeginningOfFirstMainTriggeredAbility(new AddManaOfAnyColorEffect(), false));
}
private ForsakenThresher(final ForsakenThresher card) {

Some files were not shown because too many files have changed in this diff Show more