[FIN] Implement Vincent Valentine / Galian Beast

This commit is contained in:
theelk801 2025-05-14 10:49:15 -04:00
parent 05ded6d1eb
commit 13e633f1ca
4 changed files with 147 additions and 0 deletions

View file

@ -0,0 +1,51 @@
package mage.cards.g;
import mage.MageInt;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
import mage.abilities.keyword.LifelinkAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class GalianBeast extends CardImpl {
public GalianBeast(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.WEREWOLF);
this.subtype.add(SubType.BEAST);
this.power = new MageInt(3);
this.toughness = new MageInt(2);
this.nightCard = true;
this.color.setBlack(true);
// Trample
this.addAbility(TrampleAbility.getInstance());
// Lifelink
this.addAbility(LifelinkAbility.getInstance());
// When Galian Beast dies, return it to the battlefield tapped.
this.addAbility(new DiesSourceTriggeredAbility(new ReturnSourceFromGraveyardToBattlefieldEffect(true)
.setText("return it to the battlefield tapped")));
}
private GalianBeast(final GalianBeast card) {
super(card);
}
@Override
public GalianBeast copy() {
return new GalianBeast(this);
}
}

View file

@ -0,0 +1,88 @@
package mage.cards.v;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.TransformSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.TransformAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.permanent.Permanent;
import java.util.Optional;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class VincentValentine extends CardImpl {
public VincentValentine(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.ASSASSIN);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.secondSideCardClazz = mage.cards.g.GalianBeast.class;
// Whenever a creature an opponent controls dies, put a number of +1/+1 counters on Vincent Valentine equal to that creature's power.
this.addAbility(new DiesCreatureTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(), VincentValentineValue.instance)
.setText("put a number of +1/+1 counters on {this} equal to that creature's power"),
false, StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE
));
// Whenever Vincent Valentine attacks, you may transform it.
this.addAbility(new TransformAbility());
this.addAbility(new AttacksTriggeredAbility(new TransformSourceEffect(), true));
}
private VincentValentine(final VincentValentine card) {
super(card);
}
@Override
public VincentValentine copy() {
return new VincentValentine(this);
}
}
enum VincentValentineValue implements DynamicValue {
instance;
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
return Optional
.of((Permanent) effect.getValue("creatureDied"))
.map(MageObject::getPower)
.map(MageInt::getValue)
.orElse(0);
}
@Override
public VincentValentineValue copy() {
return this;
}
@Override
public String getMessage() {
return "";
}
@Override
public String toString() {
return "1";
}
}

View file

@ -98,6 +98,8 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Forest", 307, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Forest", 308, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Forest", 576, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Galian Beast", 125, Rarity.RARE, mage.cards.g.GalianBeast.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Galian Beast", 383, Rarity.RARE, mage.cards.g.GalianBeast.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Garland, Knight of Cornelia", 221, Rarity.UNCOMMON, mage.cards.g.GarlandKnightOfCornelia.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Garland, Knight of Cornelia", 486, Rarity.UNCOMMON, mage.cards.g.GarlandKnightOfCornelia.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Gladiolus Amicitia", 224, Rarity.UNCOMMON, mage.cards.g.GladiolusAmicitia.class, NON_FULL_USE_VARIOUS));
@ -220,6 +222,8 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Vanille, Cheerful l'Cie", 392, Rarity.UNCOMMON, mage.cards.v.VanilleCheerfulLCie.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Vanille, Cheerful l'Cie", 475, Rarity.UNCOMMON, mage.cards.v.VanilleCheerfulLCie.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Vanille, Cheerful l'Cie", 537, Rarity.UNCOMMON, mage.cards.v.VanilleCheerfulLCie.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Vincent Valentine", 125, Rarity.RARE, mage.cards.v.VincentValentine.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Vincent Valentine", 383, Rarity.RARE, mage.cards.v.VincentValentine.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Wastes", 309, Rarity.COMMON, mage.cards.w.Wastes.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("White Auracite", 41, Rarity.COMMON, mage.cards.w.WhiteAuracite.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("White Auracite", 579, Rarity.COMMON, mage.cards.w.WhiteAuracite.class, NON_FULL_USE_VARIOUS));

View file

@ -57664,6 +57664,8 @@ Sephiroth, Fabled SOLDIER|Final Fantasy|115|M|{2}{B}|Legendary Creature - Human
Sephiroth, One-Winged Angel|Final Fantasy|115|M||Legendary Creature - Angel Nightmare Avatar|5|5|Flying$Super Nova -- As this creature transforms into Sephiroth, One-Winged Angel, you get an emblem with "Whenever a creature dies, target opponent loses 1 life and you gain 1 life."$Whenever Sephiroth attacks, you may sacrifice any number of other creatures. If you do, draw that many cards.|
Summon: Primal Odin|Final Fantasy|121|R|{4}{B}{B}|Enchantment Creature - Saga Knight|5|3|(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)$I -- Gungnir -- Destroy target creature an opponent controls.$II -- Zantetsuken -- This creature gains "Whenever this creature deals combat damage to a player, that player loses the game."$III -- Hall of Sorrow -- Draw two cards. Each player loses 2 life.|
Tonberry|Final Fantasy|122|U|{B}|Creature - Salamander Horror|2|1|This creature enters tapped with a stun counter on it.$Chef's Knife -- During your turn, this creature has first strike and deathtouch.|
Vincent Valentine|Final Fantasy|125|R|{2}{B}{B}|Legendary Creature - Assassin|2|2|Whenever a creature an opponent controls dies, put a number of +1/+1 counters on Vincent Valentine equal to that creature's power.$Whenever Vincent Valentine attacks, you may transform it.|
Galian Beast|Final Fantasy|125|R||Legendary Creature - Werewolf Beast|3|2|Trample, lifelink$When Galian Beast dies, return it to the battlefield tapped.|
Zenos yae Galvus|Final Fantasy|127|R|{3}{B}{B}|Legendary Creature - Human Noble Warrior|4|4|My First Friend -- When Zenos yae Galvus enters, choose a creature an opponent controls. Until end of turn, creatures other than Zenos yae Galvus and the chosen creature get -2/-2.$When the chosen creature leaves the battlefield, transform Zenos yae Galvus.|
Shinryu, Transcendent Rival|Final Fantasy|127|R||Legendary Creature - Dragon|8|8|Flying$As this creature transforms into Shinryu, choose an opponent.$Burning Chains -- When the chosen player loses the game, you win the game.|
Zodiark, Umbral God|Final Fantasy|128|R|{B}{B}{B}{B}{B}|Legendary Creature - God|5|5|Indestructible$When Zodiark enters, each player sacrifices half the non-God creatures they control of their choice, rounded down.$Whenever a player sacrifices another creature, put a +1/+1 counter on Zodiark.|
@ -57782,6 +57784,8 @@ Fang, Fearless l'Cie|Final Fantasy|381|U|{2}{B}|Legendary Creature - Human Warri
Ragnarok, Divine Deliverance|Final Fantasy|381b|U||Legendary Creature - Beast Avatar|7|6|Vigilance, menace, trample, reach, haste$When Ragnarok dies, destroy target permanent and return target nonlegendary permanent card from your graveyard to the battlefield.|
Sephiroth, Fabled SOLDIER|Final Fantasy|382|M|{2}{B}|Legendary Creature - Human Avatar Soldier|3|3|Whenever Sephiroth enters or attacks, you may sacrifice another creature. If you do, draw a card.$Whenever another creature dies, target opponent loses 1 life and you gain 1 life. If this is the fourth time this ability has resolved this turn, transform Sephiroth.|
Sephiroth, One-Winged Angel|Final Fantasy|382|M||Legendary Creature - Angel Nightmare Avatar|5|5|Flying$Super Nova -- As this creature transforms into Sephiroth, One-Winged Angel, you get an emblem with "Whenever a creature dies, target opponent loses 1 life and you gain 1 life."$Whenever Sephiroth attacks, you may sacrifice any number of other creatures. If you do, draw that many cards.|
Vincent Valentine|Final Fantasy|383|R|{2}{B}{B}|Legendary Creature - Assassin|2|2|Whenever a creature an opponent controls dies, put a number of +1/+1 counters on Vincent Valentine equal to that creature's power.$Whenever Vincent Valentine attacks, you may transform it.|
Galian Beast|Final Fantasy|383|R||Legendary Creature - Werewolf Beast|3|2|Trample, lifelink$When Galian Beast dies, return it to the battlefield tapped.|
Zenos yae Galvus|Final Fantasy|384|R|{3}{B}{B}|Legendary Creature - Human Noble Warrior|4|4|My First Friend -- When Zenos yae Galvus enters, choose a creature an opponent controls. Until end of turn, creatures other than Zenos yae Galvus and the chosen creature get -2/-2.$When the chosen creature leaves the battlefield, transform Zenos yae Galvus.|
Shinryu, Transcendent Rival|Final Fantasy|384|R||Legendary Creature - Dragon|8|8|Flying$As this creature transforms into Shinryu, choose an opponent.$Burning Chains -- When the chosen player loses the game, you win the game.|
Clive, Ifrit's Dominant|Final Fantasy|385|M|{4}{R}{R}|Legendary Creature - Human Noble Warrior|5|5|When Clive enters, you may discard your hand, then draw cards equal to your devotion to red.${4}{R}{R}, {T}: Exile Clive, then return it to the battlefield transformed under its owner's control. Activate only as a sorcery.|