[ZNR] Implemented Sea Gate Restoraton / Sea Gate, Reborn

This commit is contained in:
Evan Kranzler 2020-09-08 11:43:12 -04:00
parent a471dc30bf
commit 27445da00f
3 changed files with 90 additions and 0 deletions

View file

@ -0,0 +1,42 @@
package mage.cards.s;
import mage.abilities.common.AsEntersBattlefieldAbility;
import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.effects.common.TapSourceUnlessPaysEffect;
import mage.abilities.mana.BlueManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SeaGateReborn extends CardImpl {
public SeaGateReborn(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
this.modalDFC = true;
this.nightCard = true;
// As Sea Gate, Reborn enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped.
this.addAbility(new AsEntersBattlefieldAbility(
new TapSourceUnlessPaysEffect(new PayLifeCost(3)),
"you may pay 3 life. If you don't, it enters the battlefield tapped"
));
// {T}: Add {U}.
this.addAbility(new BlueManaAbility());
}
private SeaGateReborn(final SeaGateReborn card) {
super(card);
}
@Override
public SeaGateReborn copy() {
return new SeaGateReborn(this);
}
}

View file

@ -0,0 +1,46 @@
package mage.cards.s;
import mage.abilities.dynamicvalue.AdditiveDynamicValue;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CardsInControllerHandCount;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SeaGateRestoration extends CardImpl {
private static final DynamicValue xValue = new AdditiveDynamicValue(CardsInControllerHandCount.instance, StaticValue.get(1));
public SeaGateRestoration(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}{U}");
this.modalDFC = true;
this.secondSideCardClazz = mage.cards.s.SeaGateReborn.class;
// Draw cards equal to the number of cards in your hand plus one. You have no maximum hand size for the rest of the game.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(xValue)
.setText("Draw cards equal to the number of cards in your hand plus one."));
this.getSpellAbility().addEffect(new MaximumHandSizeControllerEffect(
Integer.MAX_VALUE, Duration.EndOfGame,
MaximumHandSizeControllerEffect.HandSizeModification.SET
));
}
private SeaGateRestoration(final SeaGateRestoration card) {
super(card);
}
@Override
public SeaGateRestoration copy() {
return new SeaGateRestoration(this);
}
}

View file

@ -253,6 +253,8 @@ public final class ZendikarRising extends ExpansionSet {
cards.add(new SetCardInfo("Scute Swarm", 203, Rarity.RARE, mage.cards.s.ScuteSwarm.class));
cards.add(new SetCardInfo("Sea Gate Banneret", 36, Rarity.COMMON, mage.cards.s.SeaGateBanneret.class));
cards.add(new SetCardInfo("Sea Gate Colossus", 251, Rarity.COMMON, mage.cards.s.SeaGateColossus.class));
cards.add(new SetCardInfo("Sea Gate Restoration", 76, Rarity.MYTHIC, mage.cards.s.SeaGateRestoration.class));
cards.add(new SetCardInfo("Sea Gate, Reborn", 76, Rarity.MYTHIC, mage.cards.s.SeaGateReborn.class));
cards.add(new SetCardInfo("Sejiri Glacier", 37, Rarity.UNCOMMON, mage.cards.s.SejiriGlacier.class));
cards.add(new SetCardInfo("Sejiri Shelter", 37, Rarity.UNCOMMON, mage.cards.s.SejiriShelter.class));
cards.add(new SetCardInfo("Shadow Stinger", 123, Rarity.UNCOMMON, mage.cards.s.ShadowStinger.class));