forked from External/mage
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:
parent
c9cc398b48
commit
eee0fee79e
329 changed files with 1149 additions and 1331 deletions
|
|
@ -1,7 +1,7 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersAllEffect;
|
||||
import mage.constants.TargetController;
|
||||
|
|
@ -20,8 +20,8 @@ public final class BasriKetEmblem extends Emblem {
|
|||
super("Emblem Basri");
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(
|
||||
Zone.COMMAND,
|
||||
new CreateTokenEffect(new SoldierToken()),
|
||||
TargetController.YOU, false, false);
|
||||
TargetController.YOU, new CreateTokenEffect(new SoldierToken()),
|
||||
false);
|
||||
ability.addEffect(
|
||||
new AddCountersAllEffect(CounterType.P1P1.createInstance(), StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED)
|
||||
.setText(", then put a +1/+1 counter on each creature you control")
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
|
|
@ -18,8 +18,8 @@ public final class LilianaWakerOfTheDeadEmblem extends Emblem {
|
|||
super("Emblem Liliana");
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(
|
||||
Zone.COMMAND,
|
||||
new ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect(),
|
||||
TargetController.YOU, false, false);
|
||||
TargetController.YOU, new ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect(),
|
||||
false);
|
||||
ability.addTarget(new TargetCardInGraveyard(StaticFilters.FILTER_CARD_CREATURE));
|
||||
this.getAbilities().add(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfFirstMainTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfFirstMainTriggeredAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
|
@ -31,7 +31,7 @@ public class RadiationEmblem extends Emblem {
|
|||
this.frameStyle = FrameStyle.M15_NORMAL;
|
||||
|
||||
this.getAbilities().add(new ConditionalInterveningIfTriggeredAbility(
|
||||
new BeginningOfFirstMainTriggeredAbility(Zone.ALL, new RadiationEffect(), TargetController.YOU, false, false),
|
||||
new BeginningOfFirstMainTriggeredAbility(Zone.ALL, TargetController.YOU, new RadiationEffect(), false),
|
||||
RadiationCondition.instance,
|
||||
"At the beginning of your precombat main phase, if you have any rad counters, "
|
||||
+ "mill that many cards. For each nonland card milled this way, you lose 1 life and a rad counter."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
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;
|
||||
|
|
@ -16,7 +16,7 @@ public final class SarkhanTheDragonspeakerEmblem extends Emblem {
|
|||
public SarkhanTheDragonspeakerEmblem() {
|
||||
super("Emblem Sarkhan");
|
||||
|
||||
this.getAbilities().add(new BeginningOfDrawTriggeredAbility(Zone.COMMAND, new DrawCardSourceControllerEffect(2).setText("draw two additional cards"), TargetController.YOU, false));
|
||||
this.getAbilities().add(new BeginningOfDrawTriggeredAbility(Zone.COMMAND, TargetController.YOU, new DrawCardSourceControllerEffect(2).setText("draw two additional cards"), false));
|
||||
this.getAbilities().add(new BeginningOfEndStepTriggeredAbility(Zone.COMMAND, new DiscardHandControllerEffect(), TargetController.YOU, null, false));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.AddCardTypeTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessTargetEffect;
|
||||
|
|
@ -23,7 +23,7 @@ public final class TezzeretTheSchemerEmblem extends Emblem {
|
|||
|
||||
Effect effect = new AddCardTypeTargetEffect(Duration.EndOfGame, CardType.ARTIFACT, CardType.CREATURE);
|
||||
effect.setText("target artifact you control becomes an artifact creature");
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.COMMAND, effect, TargetController.YOU, false, true);
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.COMMAND, TargetController.YOU, effect, false);
|
||||
effect = new SetBasePowerToughnessTargetEffect(5, 5, Duration.EndOfGame);
|
||||
effect.setText("with base power and toughness 5/5");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package mage.game.command.planes;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.MainPhaseStackEmptyCondition;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
|
|
@ -41,7 +41,7 @@ public class PanopticonPlane extends Plane {
|
|||
this.getAbilities().add(pwability);
|
||||
|
||||
// At the beginning of your draw step, draw an additional card.
|
||||
Ability ability = new BeginningOfDrawTriggeredAbility(Zone.COMMAND, new DrawCardTargetEffect(1), TargetController.ACTIVE, false);
|
||||
Ability ability = new BeginningOfDrawTriggeredAbility(Zone.COMMAND, TargetController.YOU, new DrawCardTargetEffect(1), false);
|
||||
this.getAbilities().add(ability);
|
||||
|
||||
// Active player can roll the planar die: Whenever you roll {CHAOS}, draw a card
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.condition.common.WasCardExiledThisTurnCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
|
|
@ -33,7 +33,6 @@ public final class AshiokWickedManipulatorNightmareToken extends TokenImpl {
|
|||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new BeginningOfCombatTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
|
||||
TargetController.YOU,
|
||||
false
|
||||
),
|
||||
WasCardExiledThisTurnCondition.instance,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue