This commit is contained in:
Muz 2026-01-27 05:23:34 +00:00 committed by GitHub
commit 7f5a332719
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 67 additions and 170 deletions

View file

@ -1,7 +1,6 @@
package mage.cards.t;
import mage.MageInt;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
@ -11,7 +10,7 @@ import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SpellAbilityType;
import mage.constants.SubType;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.common.TargetAnyTarget;
import mage.target.common.TargetCreaturePermanent;
@ -28,8 +27,12 @@ public final class TurnBurn extends SplitCard {
// Turn
// Until end of turn, target creature loses all abilities and becomes a red Weird with base power and toughness 0/1.
Effect effect = new BecomesCreatureTargetEffect(new WeirdToken(), true, false, Duration.EndOfTurn)
.withDurationRuleAtStart(true);
Effect effect = new BecomesCreatureTargetEffect(
new CreatureToken(0, 1, "red Weird with base power and toughness 0/1", SubType.WEIRD).withColor("R"),
true,
false,
Duration.EndOfTurn
).withDurationRuleAtStart(true);
getLeftHalfCard().getSpellAbility().addEffect(effect);
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent().withChooseHint("becomes a Weird"));
@ -48,25 +51,4 @@ public final class TurnBurn extends SplitCard {
public TurnBurn copy() {
return new TurnBurn(this);
}
private static class WeirdToken extends TokenImpl {
private WeirdToken() {
super("Weird", "red Weird with base power and toughness 0/1");
cardType.add(CardType.CREATURE);
color.setRed(true);
subtype.add(SubType.WEIRD);
power = new MageInt(0);
toughness = new MageInt(1);
}
private WeirdToken(final WeirdToken token) {
super(token);
}
public WeirdToken copy() {
return new WeirdToken(this);
}
}
}

View file

@ -12,11 +12,14 @@ import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.game.Game;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.common.TargetControlledPermanent;
/**
@ -34,7 +37,7 @@ public final class VastwoodAnimist extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
// {tap}: Target land you control becomes an X/X Elemental creature until end of turn, where X is the number of Allies you control. It's still a land.
// {T}: Target land you control becomes an X/X Elemental creature until end of turn, where X is the number of Allies you control. It's still a land.
Ability ability = new SimpleActivatedAbility(new VastwoodAnimistEffect(), new TapSourceCost());
ability.addTarget(new TargetControlledPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
@ -52,14 +55,10 @@ public final class VastwoodAnimist extends CardImpl {
class VastwoodAnimistEffect extends OneShotEffect {
static final FilterControlledPermanent filterAllies = new FilterControlledPermanent("allies you control");
static {
filterAllies.add(SubType.ALLY.getPredicate());
}
static final FilterControlledPermanent filterAllies = new FilterControlledPermanent(SubType.ALLY);
public VastwoodAnimistEffect() {
super(Outcome.Benefit);
super(Outcome.BecomeCreature);
this.staticText = "Target land you control becomes an X/X Elemental creature until end of turn, where X is the number of Allies you control. It's still a land.";
}
@ -75,27 +74,14 @@ class VastwoodAnimistEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
int amount = new PermanentsOnBattlefieldCount(filterAllies).calculate(game, source, this);
ContinuousEffect effect = new BecomesCreatureTargetEffect(new VastwoodAnimistElementalToken(amount), false, true, Duration.EndOfTurn);
ContinuousEffect effect = new BecomesCreatureTargetEffect(
new CreatureToken(amount, amount, "X/X Elemental creature, where X is the number of Allies you control", SubType.ELEMENTAL),
false,
true,
Duration.EndOfTurn
);
effect.setTargetPointer(this.getTargetPointer().copy());
game.addEffect(effect, source);
return false;
}
}
class VastwoodAnimistElementalToken extends TokenImpl {
VastwoodAnimistElementalToken(int amount) {
super("", "X/X Elemental creature, where X is the number of Allies you control");
cardType.add(CardType.CREATURE);
subtype.add(SubType.ELEMENTAL);
power = new MageInt(amount);
toughness = new MageInt(amount);
}
private VastwoodAnimistElementalToken(final VastwoodAnimistElementalToken token) {
super(token);
}
public VastwoodAnimistElementalToken copy() {
return new VastwoodAnimistElementalToken(this);
}
}

View file

@ -14,7 +14,7 @@ import mage.constants.Duration;
import mage.constants.SubType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.TargetPermanent;
import java.util.UUID;
@ -38,7 +38,11 @@ public final class WakerootElemental extends CardImpl {
new UntapTargetEffect(), new ManaCostsImpl<>("{G}{G}{G}{G}{G}")
);
ability.addEffect(new BecomesCreatureTargetEffect(
new WakerootElementalToken(), false, true, Duration.Custom
new CreatureToken(5, 5, "Elemental creature with haste", SubType.ELEMENTAL)
.withAbility(HasteAbility.getInstance()),
false,
true,
Duration.Custom
).setText("It becomes a 5/5 Elemental creature with haste. It's still a land."));
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
@ -53,25 +57,3 @@ public final class WakerootElemental extends CardImpl {
return new WakerootElemental(this);
}
}
class WakerootElementalToken extends TokenImpl {
WakerootElementalToken() {
super("", "5/5 Elemental creature with haste");
this.cardType.add(CardType.CREATURE);
this.subtype.add(SubType.ELEMENTAL);
this.power = new MageInt(5);
this.toughness = new MageInt(5);
this.addAbility(HasteAbility.getInstance());
}
private WakerootElementalToken(final WakerootElementalToken token) {
super(token);
}
public WakerootElementalToken copy() {
return new WakerootElementalToken(this);
}
}

View file

@ -1,8 +1,6 @@
package mage.cards.w;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesAttachedTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.AttachEffect;
@ -12,9 +10,11 @@ import mage.abilities.keyword.EnchantAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.game.permanent.token.TokenImpl;
import mage.target.TargetPermanent;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.common.TargetLandPermanent;
/**
@ -27,24 +27,25 @@ public final class WindZendikon extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}");
this.subtype.add(SubType.AURA);
// Enchant land
// Enchanted land is a 2/2 blue Elemental creature with flying. It's still a land.
// When enchanted land dies, return that card to its owner's hand.
TargetPermanent auraTarget = new TargetLandPermanent();
TargetLandPermanent auraTarget = new TargetLandPermanent();
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.PutCreatureInPlay));
Ability ability = new EnchantAbility(auraTarget);
this.addAbility(ability);
Ability ability2 = new SimpleStaticAbility(new BecomesCreatureAttachedEffect(
new WindZendikonElementalToken(), "Enchanted land is a 2/2 blue Elemental creature with flying. It's still a land",
Duration.WhileOnBattlefield, BecomesCreatureAttachedEffect.LoseType.COLOR));
this.addAbility(ability2);
Ability ability3 = new DiesAttachedTriggeredAbility(new ReturnToHandAttachedEffect(), "enchanted land", false);
this.addAbility(ability3);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BecomeCreature));
this.addAbility(new EnchantAbility(auraTarget));
this.addAbility(new SimpleStaticAbility(new BecomesCreatureAttachedEffect(
new CreatureToken(
2, 2, "2/2 blue Elemental creature with flying", SubType.ELEMENTAL
).withColor("U").withAbility(FlyingAbility.getInstance()),
"Enchanted land is a 2/2 blue Elemental creature with flying. It's still a land",
Duration.WhileOnBattlefield,
BecomesCreatureAttachedEffect.LoseType.COLOR
)));
this.addAbility(new DiesAttachedTriggeredAbility(new ReturnToHandAttachedEffect(), "enchanted land"));
}
private WindZendikon(final WindZendikon card) {
@ -55,25 +56,4 @@ public final class WindZendikon extends CardImpl {
public WindZendikon copy() {
return new WindZendikon(this);
}
}
class WindZendikonElementalToken extends TokenImpl {
WindZendikonElementalToken() {
super("", "2/2 blue Elemental creature with flying");
cardType.add(CardType.CREATURE);
color.setBlue(true);
subtype.add(SubType.ELEMENTAL);
power = new MageInt(2);
toughness = new MageInt(2);
addAbility(FlyingAbility.getInstance());
}
private WindZendikonElementalToken(final WindZendikonElementalToken token) {
super(token);
}
public WindZendikonElementalToken copy() {
return new WindZendikonElementalToken(this);
}
}

View file

@ -14,9 +14,8 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterLandPermanent;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.TargetPermanent;
/**
@ -40,7 +39,13 @@ public final class WoodwraithCorrupter extends CardImpl {
this.toughness = new MageInt(6);
// {1}{B}{G}, {T}: Target Forest becomes a 4/4 black and green Elemental Horror creature. It's still a land.
Effect effect = new BecomesCreatureTargetEffect(new WoodwraithCorrupterToken(), false, true, Duration.Custom);
Effect effect = new BecomesCreatureTargetEffect(
new CreatureToken(4, 4, "4/4 black and green Elemental Horror creature", SubType.ELEMENTAL, SubType.HORROR)
.withColor("BG"),
false,
true,
Duration.Custom
);
Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{1}{B}{G}"));
ability.addTarget(new TargetPermanent(filter));
ability.addCost(new TapSourceCost());
@ -56,26 +61,3 @@ public final class WoodwraithCorrupter extends CardImpl {
return new WoodwraithCorrupter(this);
}
}
class WoodwraithCorrupterToken extends TokenImpl {
public WoodwraithCorrupterToken() {
super("", "4/4 black and green Elemental Horror creature");
cardType.add(CardType.CREATURE);
color.setBlack(true);
color.setGreen(true);
subtype.add(SubType.ELEMENTAL);
subtype.add(SubType.HORROR);
power = new MageInt(4);
toughness = new MageInt(4);
}
private WoodwraithCorrupterToken(final WoodwraithCorrupterToken token) {
super(token);
}
public WoodwraithCorrupterToken copy() {
return new WoodwraithCorrupterToken(this);
}
}

View file

@ -2,7 +2,6 @@
package mage.cards.x;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
@ -11,8 +10,8 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.game.permanent.token.TokenImpl;
import mage.constants.SubType;
import mage.game.permanent.token.custom.CreatureToken;
/**
*
@ -24,9 +23,15 @@ public final class XanthicStatue extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{8}");
// {5}: Until end of turn, Xanthic Statue becomes an 8/8 Golem artifact creature with trample.
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(new XanthicStatueCreature(), CardType.ARTIFACT, Duration.EndOfTurn)
.setText("until end of turn, {this} becomes an 8/8 Golem artifact creature with trample")
, new ManaCostsImpl<>("{5}")));
this.addAbility(new SimpleActivatedAbility(
new BecomesCreatureSourceEffect(
new CreatureToken(8, 8, "8/8 Golem artifact creature with trample", SubType.GOLEM)
.withAbility(TrampleAbility.getInstance()),
CardType.ARTIFACT,
Duration.EndOfTurn
).setText("until end of turn, {this} becomes an 8/8 Golem artifact creature with trample"),
new ManaCostsImpl<>("{5}")
));
}
private XanthicStatue(final XanthicStatue card) {
@ -38,23 +43,3 @@ public final class XanthicStatue extends CardImpl {
return new XanthicStatue(this);
}
}
class XanthicStatueCreature extends TokenImpl {
public XanthicStatueCreature() {
super("Xanthic Statue", "8/8 Golem artifact creature with trample");
cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE);
power = new MageInt(8);
toughness = new MageInt(8);
this.addAbility(TrampleAbility.getInstance());
}
private XanthicStatueCreature(final XanthicStatueCreature token) {
super(token);
}
public XanthicStatueCreature copy() {
return new XanthicStatueCreature(this);
}
}

View file

@ -27190,7 +27190,7 @@ Snapping Creeper|Worldwake|112|C|{2}{G}|Creature - Plant|2|3|Landfall - Whenever
Strength of the Tajuru|Worldwake|113|R|{X}{G}{G}|Instant|||Multikicker {1} <i>(You may pay an additional {1} any number of times as you cast this spell.)</i>$Choose target creature, then choose another target creature for each time Strength of the Tajuru was kicked. Put X +1/+1 counters on each of them.|
Summit Apes|Worldwake|114|U|{3}{G}|Creature - Ape|5|2|As long as you control a Mountain, Summit Apes can't be blocked except by two or more creatures.|
Terastodon|Worldwake|115|R|{6}{G}{G}|Creature - Elephant|9|9|When Terastodon enters the battlefield, you may destroy up to three target noncreature permanents. For each permanent put into a graveyard this way, its controller puts a 3/3 green Elephant creature token onto the battlefield.|
Vastwood Animist|Worldwake|116|U|{2}{G}|Creature - Elf Shaman Ally|1|1|{tap}: Target land you control becomes an X/X Elemental creature until end of turn, where X is the number of Allies you control. It's still a land.|
Vastwood Animist|Worldwake|116|U|{2}{G}|Creature - Elf Shaman Ally|1|1|{T}: Target land you control becomes an X/X Elemental creature until end of turn, where X is the number of Allies you control. It's still a land.|
Vastwood Zendikon|Worldwake|117|C|{4}{G}|Enchantment - Aura|||Enchant land$Enchanted land is a 6/4 green Elemental creature. It's still a land.$When enchanted land dies, return that card to its owner's hand.|
Wolfbriar Elemental|Worldwake|118|R|{2}{G}{G}|Creature - Elemental|4|4|Multikicker {G} <i>(You may pay an additional {G} any number of times as you cast this spell.)</i>$When Wolfbriar Elemental enters the battlefield, put a 2/2 green Wolf creature token onto the battlefield for each time it was kicked.|
Novablast Wurm|Worldwake|119|M|{3}{G}{G}{W}{W}|Creature - Wurm|7|7|Whenever Novablast Wurm attacks, destroy all other creatures.|