[EOE] Implement Syr Vondam, Sunstar Exemplar

This commit is contained in:
theelk801 2025-07-14 19:54:24 -04:00
parent 69e6b718ec
commit 49976e5433
3 changed files with 150 additions and 0 deletions

View file

@ -0,0 +1,146 @@
package mage.cards.s;
import mage.MageInt;
import mage.MageItem;
import mage.MageObject;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.MenaceAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.ZoneChangeEvent;
import mage.target.common.TargetNonlandPermanent;
import java.util.Optional;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SyrVondamSunstarExemplar extends CardImpl {
public SyrVondamSunstarExemplar(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{B}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.KNIGHT);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// Menace
this.addAbility(new MenaceAbility());
// Whenever another creature you control dies or is put into exile, put a +1/+1 counter on Syr Vondam and you gain 1 life.
this.addAbility(new SyrVondamSunstarExemplarFirstTriggeredAbility());
// When Syr Vondam dies or is put into exile while its power is 4 or greater, destroy up to one target nonland permanent.
this.addAbility(new SyrVondamSunstarExemplarSecondTriggeredAbility());
}
private SyrVondamSunstarExemplar(final SyrVondamSunstarExemplar card) {
super(card);
}
@Override
public SyrVondamSunstarExemplar copy() {
return new SyrVondamSunstarExemplar(this);
}
}
class SyrVondamSunstarExemplarFirstTriggeredAbility extends TriggeredAbilityImpl {
SyrVondamSunstarExemplarFirstTriggeredAbility() {
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
this.addEffect(new GainLifeEffect(1).concatBy("and"));
this.setTriggerPhrase("Whenever another creature you control dies or is put into exile, ");
this.setLeavesTheBattlefieldTrigger(true);
}
private SyrVondamSunstarExemplarFirstTriggeredAbility(final SyrVondamSunstarExemplarFirstTriggeredAbility ability) {
super(ability);
}
@Override
public SyrVondamSunstarExemplarFirstTriggeredAbility copy() {
return new SyrVondamSunstarExemplarFirstTriggeredAbility(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.ZONE_CHANGE;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
return Zone.BATTLEFIELD.match(zEvent.getFromZone())
&& (Zone.GRAVEYARD.match(zEvent.getToZone()) || Zone.EXILED.match(zEvent.getToZone()))
&& StaticFilters
.FILTER_ANOTHER_CREATURE_YOU_CONTROL
.match(zEvent.getTarget(), getControllerId(), this, game);
}
@Override
public boolean isInUseableZone(Game game, MageObject sourceObject, GameEvent event) {
return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, sourceObject, event, game);
}
}
class SyrVondamSunstarExemplarSecondTriggeredAbility extends TriggeredAbilityImpl {
SyrVondamSunstarExemplarSecondTriggeredAbility() {
super(Zone.BATTLEFIELD, new DestroyTargetEffect());
this.addTarget(new TargetNonlandPermanent(0, 1));
this.setTriggerPhrase("When {this} dies or is put into exile while its power is 4 or greater, ");
this.setLeavesTheBattlefieldTrigger(true);
}
private SyrVondamSunstarExemplarSecondTriggeredAbility(final SyrVondamSunstarExemplarSecondTriggeredAbility ability) {
super(ability);
}
@Override
public SyrVondamSunstarExemplarSecondTriggeredAbility copy() {
return new SyrVondamSunstarExemplarSecondTriggeredAbility(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.ZONE_CHANGE;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
return Zone.BATTLEFIELD.match(zEvent.getFromZone())
&& (Zone.GRAVEYARD.match(zEvent.getToZone()) || Zone.EXILED.match(zEvent.getToZone()))
&& Optional
.ofNullable(zEvent)
.map(ZoneChangeEvent::getTarget)
.filter(permanent -> permanent.getPower().getValue() >= 4)
.map(MageItem::getId)
.filter(getSourceId()::equals)
.isPresent();
}
@Override
public boolean isInUseableZone(Game game, MageObject sourceObject, GameEvent event) {
return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, sourceObject, event, game);
}
}

View file

@ -222,6 +222,8 @@ public final class EdgeOfEternities extends ExpansionSet {
cards.add(new SetCardInfo("Swamp", 271, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Swamp", 271, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Swamp", 272, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Swamp", 272, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Swamp", 369, Rarity.LAND, mage.cards.basiclands.Swamp.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Swamp", 369, Rarity.LAND, mage.cards.basiclands.Swamp.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Syr Vondam, Sunstar Exemplar", 231, Rarity.RARE, mage.cards.s.SyrVondamSunstarExemplar.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Syr Vondam, Sunstar Exemplar", 302, Rarity.RARE, mage.cards.s.SyrVondamSunstarExemplar.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Syr Vondam, the Lucent", 232, Rarity.UNCOMMON, mage.cards.s.SyrVondamTheLucent.class)); cards.add(new SetCardInfo("Syr Vondam, the Lucent", 232, Rarity.UNCOMMON, mage.cards.s.SyrVondamTheLucent.class));
cards.add(new SetCardInfo("Systems Override", 161, Rarity.UNCOMMON, mage.cards.s.SystemsOverride.class)); cards.add(new SetCardInfo("Systems Override", 161, Rarity.UNCOMMON, mage.cards.s.SystemsOverride.class));
cards.add(new SetCardInfo("Tannuk, Memorial Ensign", 233, Rarity.UNCOMMON, mage.cards.t.TannukMemorialEnsign.class)); cards.add(new SetCardInfo("Tannuk, Memorial Ensign", 233, Rarity.UNCOMMON, mage.cards.t.TannukMemorialEnsign.class));

View file

@ -59221,6 +59221,7 @@ Sami, Ship's Engineer|Edge of Eternities|225|U|{2}{R}{W}|Legendary Creature - Hu
Sami, Wildcat Captain|Edge of Eternities|226|M|{4}{R}{W}|Legendary Creature - Human Artificer Rogue|4|4|Double strike, vigilance$Spells you cast have affinity for artifacts.| Sami, Wildcat Captain|Edge of Eternities|226|M|{4}{R}{W}|Legendary Creature - Human Artificer Rogue|4|4|Double strike, vigilance$Spells you cast have affinity for artifacts.|
Seedship Broodtender|Edge of Eternities|227|U|{B}{G}|Creature - Insect Citizen|2|3|When this creature enters, mill three cards.${3}{B}{G}, Sacrifice this creature: Return target creature or Spacecraft card from your graveyard to the battlefield. Activate only as a sorcery.| Seedship Broodtender|Edge of Eternities|227|U|{B}{G}|Creature - Insect Citizen|2|3|When this creature enters, mill three cards.${3}{B}{G}, Sacrifice this creature: Return target creature or Spacecraft card from your graveyard to the battlefield. Activate only as a sorcery.|
Singularity Rupture|Edge of Eternities|228|R|{3}{U}{B}{B}|Sorcery|||Destroy all creatures, then any number of target players each mill half their library, rounded down.| Singularity Rupture|Edge of Eternities|228|R|{3}{U}{B}{B}|Sorcery|||Destroy all creatures, then any number of target players each mill half their library, rounded down.|
Syr Vondam, Sunstar Exemplar|Edge of Eternities|231|R|{W}{B}|Legendary Creature - Human Knight|2|2|Vigilance, menace$Whenever another creature you control dies or is put into exile, put a +1/+1 counter on Syr Vondam and you gain 1 life.$When Syr Vondam dies or is put into exile while its power is 4 or greater, destroy up to one target nonland permanent.|
Syr Vondam, the Lucent|Edge of Eternities|232|U|{2}{W}{B}{B}|Legendary Creature - Human Knight|4|4|Deathtouch, lifelink$Whenever Syr Vondam enters or attacks, other creatures you control get +1/+0 and gain deathtouch until end of turn.| Syr Vondam, the Lucent|Edge of Eternities|232|U|{2}{W}{B}{B}|Legendary Creature - Human Knight|4|4|Deathtouch, lifelink$Whenever Syr Vondam enters or attacks, other creatures you control get +1/+0 and gain deathtouch until end of turn.|
Tannuk, Memorial Ensign|Edge of Eternities|233|U|{1}{R}{G}|Legendary Creature - Kavu Pilot|2|4|Landfall -- Whenever a land you control enters, Tannuk deals 1 damage to each opponent. If this is the second time this ability has resolved this turn, draw a card.| Tannuk, Memorial Ensign|Edge of Eternities|233|U|{1}{R}{G}|Legendary Creature - Kavu Pilot|2|4|Landfall -- Whenever a land you control enters, Tannuk deals 1 damage to each opponent. If this is the second time this ability has resolved this turn, draw a card.|
All-Fates Scroll|Edge of Eternities|234|U|{3}|Artifact|||{T}: Add one mana of any color.${7}, {T}, Sacrifice this artifact: Draw X cards, where X is the number of differently named lands you control.| All-Fates Scroll|Edge of Eternities|234|U|{3}|Artifact|||{T}: Add one mana of any color.${7}, {T}, Sacrifice this artifact: Draw X cards, where X is the number of differently named lands you control.|
@ -59285,6 +59286,7 @@ Dyadrine, Synthesis Amalgam|Edge of Eternities|298|R|{X}{G}{W}|Legendary Artifac
Genemorph Imago|Edge of Eternities|299|R|{G}{U}|Creature - Insect Druid|1|3|Flying$Landfall -- Whenever a land you control enters, target creature has base power and toughness 3/3 until end of turn. If you control six or more lands, that creature has base power and toughness 6/6 until end of turn instead.| Genemorph Imago|Edge of Eternities|299|R|{G}{U}|Creature - Insect Druid|1|3|Flying$Landfall -- Whenever a land you control enters, target creature has base power and toughness 3/3 until end of turn. If you control six or more lands, that creature has base power and toughness 6/6 until end of turn instead.|
Ragost, Deft Gastronaut|Edge of Eternities|300|R|{R}{W}|Legendary Creature - Lobster Citizen|2|2|Artifacts you control are Foods in addition to their other types and have "{2}, {T}, Sacrifice this artifact: You gain 3 life."${1}, {T}, Sacrifice a Food: Ragost deals 3 damage to each opponent.$At the beginning of each end step, if you gained life this turn, untap Ragost.| Ragost, Deft Gastronaut|Edge of Eternities|300|R|{R}{W}|Legendary Creature - Lobster Citizen|2|2|Artifacts you control are Foods in addition to their other types and have "{2}, {T}, Sacrifice this artifact: You gain 3 life."${1}, {T}, Sacrifice a Food: Ragost deals 3 damage to each opponent.$At the beginning of each end step, if you gained life this turn, untap Ragost.|
Sami, Wildcat Captain|Edge of Eternities|301|M|{4}{R}{W}|Legendary Creature - Human Artificer Rogue|4|4|Double strike, vigilance$Spells you cast have affinity for artifacts.| Sami, Wildcat Captain|Edge of Eternities|301|M|{4}{R}{W}|Legendary Creature - Human Artificer Rogue|4|4|Double strike, vigilance$Spells you cast have affinity for artifacts.|
Syr Vondam, Sunstar Exemplar|Edge of Eternities|302|R|{W}{B}|Legendary Creature - Human Knight|2|2|Vigilance, menace$Whenever another creature you control dies or is put into exile, put a +1/+1 counter on Syr Vondam and you gain 1 life.$When Syr Vondam dies or is put into exile while its power is 4 or greater, destroy up to one target nonland permanent.|
Cosmogrand Zenith|Edge of Eternities|304|M|{2}{W}|Creature - Human Soldier|2|4|Whenever you cast your second spell each turn, choose one --$* Create two 1/1 white Human Soldier creature tokens.$* Put a +1/+1 counter on each creature you control.| Cosmogrand Zenith|Edge of Eternities|304|M|{2}{W}|Creature - Human Soldier|2|4|Whenever you cast your second spell each turn, choose one --$* Create two 1/1 white Human Soldier creature tokens.$* Put a +1/+1 counter on each creature you control.|
Quantum Riddler|Edge of Eternities|305|M|{3}{U}{U}|Creature - Sphinx|4|6|Flying$When this creature enters, draw a card.$As long as you have one or fewer cards in hand, if you would draw one or more cards, you draw that many cards plus one instead.$Warp {1}{U}| Quantum Riddler|Edge of Eternities|305|M|{3}{U}{U}|Creature - Sphinx|4|6|Flying$When this creature enters, draw a card.$As long as you have one or fewer cards in hand, if you would draw one or more cards, you draw that many cards plus one instead.$Warp {1}{U}|
Archenemy's Charm|Edge of Eternities|307|R|{B}{B}{B}|Instant|||Choose one --$* Exile target creature or planeswalker.$* Return one or two target creature and/or planeswalker cards from your graveyard to your hand.$* Put two +1/+1 counters on target creature you control. It gains lifelink until end of turn.| Archenemy's Charm|Edge of Eternities|307|R|{B}{B}{B}|Instant|||Choose one --$* Exile target creature or planeswalker.$* Return one or two target creature and/or planeswalker cards from your graveyard to your hand.$* Put two +1/+1 counters on target creature you control. It gains lifelink until end of turn.|