forked from External/mage
[DRC] Saheeli, Radiant Creation
This commit is contained in:
parent
3d2d61eef7
commit
e5846d8d0a
2 changed files with 109 additions and 0 deletions
108
Mage.Sets/src/mage/cards/s/SaheeliRadiantCreator.java
Normal file
108
Mage.Sets/src/mage/cards/s/SaheeliRadiantCreator.java
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
|
||||
import mage.abilities.costs.common.PayEnergyCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
|
||||
import mage.abilities.effects.common.DoWhenCostPaid;
|
||||
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
|
||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.Game;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jmlundeen
|
||||
*/
|
||||
public final class SaheeliRadiantCreator extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("Artificer or artifact spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(
|
||||
SubType.ARTIFICER.getPredicate(),
|
||||
CardType.ARTIFACT.getPredicate())
|
||||
);
|
||||
}
|
||||
|
||||
public SaheeliRadiantCreator(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{U}{R}");
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.ARTIFICER);
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// Whenever you cast an Artificer or artifact spell, you get {E}.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(
|
||||
new GetEnergyCountersControllerEffect(1),
|
||||
filter, false);
|
||||
this.addAbility(ability);
|
||||
|
||||
// At the beginning of combat on your turn, you may pay {E}{E}{E}. When you do, create a token that's a copy of target permanent you control, except it's a 5/5 artifact creature in addition to its other types and has haste. Sacrifice it at the beginning of the next end step.
|
||||
ReflexiveTriggeredAbility reflexiveAbility = new ReflexiveTriggeredAbility(
|
||||
new SaheeliRadiantCreatorCopyEffect(), false
|
||||
);
|
||||
reflexiveAbility.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_A_PERMANENT));
|
||||
Ability combatTriggeredAbility = new BeginningOfCombatTriggeredAbility(
|
||||
new DoWhenCostPaid(reflexiveAbility, new PayEnergyCost(3),
|
||||
"Pay {E}{E}{E}?")
|
||||
);
|
||||
this.addAbility(combatTriggeredAbility);
|
||||
}
|
||||
|
||||
private SaheeliRadiantCreator(final SaheeliRadiantCreator card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SaheeliRadiantCreator copy() {
|
||||
return new SaheeliRadiantCreator(this);
|
||||
}
|
||||
}
|
||||
|
||||
class SaheeliRadiantCreatorCopyEffect extends OneShotEffect {
|
||||
|
||||
public SaheeliRadiantCreatorCopyEffect() {
|
||||
super(Outcome.Copy);
|
||||
staticText = "create a token that's a copy of target permanent you control, " +
|
||||
"except it's a 5/5 artifact creature in addition to its other types and has haste. " +
|
||||
"Sacrifice it at the beginning of the next end step.";
|
||||
}
|
||||
|
||||
public SaheeliRadiantCreatorCopyEffect(final SaheeliRadiantCreatorCopyEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SaheeliRadiantCreatorCopyEffect copy() {
|
||||
return new SaheeliRadiantCreatorCopyEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
CreateTokenCopyTargetEffect effect = new CreateTokenCopyTargetEffect(null, CardType.CREATURE,
|
||||
true, 1, false, false, null,
|
||||
5, 5, false);
|
||||
effect.setBecomesArtifact(true);
|
||||
effect.setTargetPointer(new FixedTarget(source.getFirstTarget()));
|
||||
effect.apply(game, source);
|
||||
effect.sacrificeTokensCreatedAtNextEndStep(game, source);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -142,6 +142,7 @@ public final class AetherdriftCommander extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Rogue Refiner", 118, Rarity.UNCOMMON, mage.cards.r.RogueRefiner.class));
|
||||
cards.add(new SetCardInfo("Rootbound Crag", 168, Rarity.RARE, mage.cards.r.RootboundCrag.class));
|
||||
cards.add(new SetCardInfo("Rot Hulk", 98, Rarity.MYTHIC, mage.cards.r.RotHulk.class));
|
||||
cards.add(new SetCardInfo("Saheeli, Radiant Creator", 3, Rarity.MYTHIC, mage.cards.s.SaheeliRadiantCreator.class));
|
||||
cards.add(new SetCardInfo("Saheeli, Sublime Artificer", 119, Rarity.UNCOMMON, mage.cards.s.SaheeliSublimeArtificer.class));
|
||||
cards.add(new SetCardInfo("Sai, Master Thopterist", 82, Rarity.RARE, mage.cards.s.SaiMasterThopterist.class));
|
||||
cards.add(new SetCardInfo("Servant of the Conduit", 114, Rarity.UNCOMMON, mage.cards.s.ServantOfTheConduit.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue