Implemented Sorin, Vampire Lord

This commit is contained in:
Evan Kranzler 2019-06-22 11:54:08 -04:00
parent 498d752294
commit a6a6df26ab
2 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,69 @@
package mage.cards.s;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetAnyTarget;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SorinVampireLord extends CardImpl {
private static final FilterPermanent filter = new FilterCreaturePermanent(SubType.VAMPIRE, "");
public SorinVampireLord(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{B}{B}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.SORIN);
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(4));
// +1: Up to one target creature gets +2/+0 until end of turn.
Ability ability = new LoyaltyAbility(new BoostTargetEffect(2, 0), 1);
ability.addTarget(new TargetCreaturePermanent(0, 1));
this.addAbility(ability);
// 2: Sorin, Vampire Lord deals 4 damage to any target. You gain 4 life.
ability = new LoyaltyAbility(new DamageTargetEffect(4), -2);
ability.addEffect(new GainLifeEffect(4).setText("You gain 4 life"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
// 8: Until end of turn, each Vampire you control gains "{T}: Gain control of target creature."
ability = new SimpleActivatedAbility(new GainControlTargetEffect(Duration.Custom), new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(new LoyaltyAbility(new GainAbilityControlledEffect(
ability, Duration.EndOfTurn, filter
).setText("Until end of turn, each Vampire you control gains " +
"\"{T}: Gain control of target creature.\""
), -8));
}
private SorinVampireLord(final SorinVampireLord card) {
super(card);
}
@Override
public SorinVampireLord copy() {
return new SorinVampireLord(this);
}
}

View file

@ -146,6 +146,7 @@ public final class CoreSet2020 extends ExpansionSet {
cards.add(new SetCardInfo("Shared Summons", 193, Rarity.RARE, mage.cards.s.SharedSummons.class)); cards.add(new SetCardInfo("Shared Summons", 193, Rarity.RARE, mage.cards.s.SharedSummons.class));
cards.add(new SetCardInfo("Silverback Shaman", 195, Rarity.COMMON, mage.cards.s.SilverbackShaman.class)); cards.add(new SetCardInfo("Silverback Shaman", 195, Rarity.COMMON, mage.cards.s.SilverbackShaman.class));
cards.add(new SetCardInfo("Sorin, Imperious Bloodlord", 115, Rarity.MYTHIC, mage.cards.s.SorinImperiousBloodlord.class)); cards.add(new SetCardInfo("Sorin, Imperious Bloodlord", 115, Rarity.MYTHIC, mage.cards.s.SorinImperiousBloodlord.class));
cards.add(new SetCardInfo("Sorin, Vampire Lord", 290, Rarity.MYTHIC, mage.cards.s.SorinVampireLord.class));
cards.add(new SetCardInfo("Spectral Sailor", 76, Rarity.UNCOMMON, mage.cards.s.SpectralSailor.class)); cards.add(new SetCardInfo("Spectral Sailor", 76, Rarity.UNCOMMON, mage.cards.s.SpectralSailor.class));
cards.add(new SetCardInfo("Starfield Mystic", 39, Rarity.RARE, mage.cards.s.StarfieldMystic.class)); cards.add(new SetCardInfo("Starfield Mystic", 39, Rarity.RARE, mage.cards.s.StarfieldMystic.class));
cards.add(new SetCardInfo("Steel Overseer", 239, Rarity.RARE, mage.cards.s.SteelOverseer.class)); cards.add(new SetCardInfo("Steel Overseer", 239, Rarity.RARE, mage.cards.s.SteelOverseer.class));