forked from External/mage
[WOE] Implement Restless Spire (#10846)
This commit is contained in:
parent
db444906f2
commit
7d82b6b1be
3 changed files with 76 additions and 1 deletions
64
Mage.Sets/src/mage/cards/r/RestlessSpire.java
Normal file
64
Mage.Sets/src/mage/cards/r/RestlessSpire.java
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
package mage.cards.r;
|
||||
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.MyTurnCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.abilities.hint.common.MyTurnHint;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.abilities.mana.BlueManaAbility;
|
||||
import mage.abilities.mana.RedManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.custom.CreatureToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Susucr
|
||||
*/
|
||||
public final class RestlessSpire extends CardImpl {
|
||||
|
||||
public RestlessSpire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// Restless Spire enters the battlefield tapped.
|
||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||
|
||||
// {T}: Add {U} or {R}.
|
||||
this.addAbility(new BlueManaAbility());
|
||||
this.addAbility(new RedManaAbility());
|
||||
|
||||
// {U}{R}: Until end of turn, Restless Spire becomes a 2/1 blue and red Elemental creature with "As long as it's your turn, this creature has first strike". It's still a land.
|
||||
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||
new CreatureToken(2, 1, "2/1 blue and red Elemental creature with \"As long as it's your turn, this creature has first strike\"")
|
||||
.withColor("UR").withSubType(SubType.ELEMENTAL)
|
||||
.withAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
MyTurnCondition.instance, "As long as it's your turn, this creature has first strike."
|
||||
)).addHint(MyTurnHint.instance)),
|
||||
CardType.LAND, Duration.EndOfTurn, true
|
||||
), new ManaCostsImpl<>("{U}{R}")));
|
||||
|
||||
// Whenever Restless Spire attacks, scry 1.
|
||||
this.addAbility(new AttacksTriggeredAbility(new ScryEffect(1, false), false));
|
||||
}
|
||||
|
||||
private RestlessSpire(final RestlessSpire card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RestlessSpire copy() {
|
||||
return new RestlessSpire(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -58,6 +58,7 @@ public final class WildsOfEldraine extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Realm-Scorcher Hellkite", 145, Rarity.MYTHIC, mage.cards.r.RealmScorcherHellkite.class));
|
||||
cards.add(new SetCardInfo("Restless Cottage", 258, Rarity.RARE, mage.cards.r.RestlessCottage.class));
|
||||
cards.add(new SetCardInfo("Restless Fortress", 259, Rarity.RARE, mage.cards.r.RestlessFortress.class));
|
||||
cards.add(new SetCardInfo("Restless Spire", 260, Rarity.RARE, mage.cards.r.RestlessSpire.class));
|
||||
cards.add(new SetCardInfo("Return from the Wilds", 181, Rarity.COMMON, mage.cards.r.ReturnFromTheWilds.class));
|
||||
cards.add(new SetCardInfo("Rootrider Faun", 182, Rarity.COMMON, mage.cards.r.RootriderFaun.class));
|
||||
cards.add(new SetCardInfo("Ruby, Daring Tracker", 212, Rarity.UNCOMMON, mage.cards.r.RubyDaringTracker.class));
|
||||
|
|
|
|||
|
|
@ -49,10 +49,20 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl {
|
|||
* @param duration Duration for the effect
|
||||
*/
|
||||
public BecomesCreatureSourceEffect(Token token, CardType retainType, Duration duration) {
|
||||
this(token, retainType, duration, (retainType == CardType.PLANESWALKER || retainType == CardType.CREATURE));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param token Token as blueprint for creature to become
|
||||
* @param retainType If null, permanent loses its previous types, otherwise retains types with appropriate text
|
||||
* @param duration Duration for the effect
|
||||
* @param durationRuleAtStart for text rule generation
|
||||
*/
|
||||
public BecomesCreatureSourceEffect(Token token, CardType retainType, Duration duration, boolean durationRuleAtStart) {
|
||||
super(duration, Outcome.BecomeCreature);
|
||||
this.token = token;
|
||||
this.retainType = retainType;
|
||||
this.durationRuleAtStart = (retainType == CardType.PLANESWALKER || retainType == CardType.CREATURE);
|
||||
this.durationRuleAtStart = durationRuleAtStart;
|
||||
setText();
|
||||
this.addDependencyType(DependencyType.BecomeCreature);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue