mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
[STX] added tokens and images download;
This commit is contained in:
parent
50c9258263
commit
27a55529a9
63 changed files with 192 additions and 149 deletions
|
@ -550,6 +550,17 @@ public class ScryfallImageSupportTokens {
|
|||
put("TSR/Soldier", "https://api.scryfall.com/cards/ttsr/2/en?format=image");
|
||||
put("TSR/Spider", "https://api.scryfall.com/cards/ttsr/6/en?format=image");
|
||||
|
||||
// STX
|
||||
put("STX/Avatar", "https://api.scryfall.com/cards/tstx/1/en?format=image");
|
||||
put("STX/Elemental", "https://api.scryfall.com/cards/tstx/2/en?format=image");
|
||||
put("STX/Fractal", "https://api.scryfall.com/cards/tstx/3/en?format=image");
|
||||
put("STX/Inkling", "https://api.scryfall.com/cards/tstx/4/en?format=image");
|
||||
put("STX/Emblem Lukka, Wayward Bonder", "https://api.scryfall.com/cards/tstx/8/en?format=image");
|
||||
put("STX/Pest", "https://api.scryfall.com/cards/tstx/5/en?format=image");
|
||||
put("STX/Emblem Rowan, Scholar of Sparks", "https://api.scryfall.com/cards/tstx/9/en?format=image");
|
||||
put("STX/Spirit", "https://api.scryfall.com/cards/tstx/6/en?format=image");
|
||||
put("STX/Treasure", "https://api.scryfall.com/cards/tstx/7/en?format=image");
|
||||
|
||||
// C21
|
||||
put("C21/Beast/1", "https://api.scryfall.com/cards/tc21/10/en?format=image"); // 3/3
|
||||
put("C21/Beast/2", "https://api.scryfall.com/cards/tc21/11/en?format=image"); // 4/4
|
||||
|
|
|
@ -106,6 +106,8 @@
|
|||
|Generate|EMBLEM:KHM|Kaya the Inexorable||Emblem Kaya|KayaTheInexorableEmblem|
|
||||
|Generate|EMBLEM:KHM|Tibalt Cosmic Imposter||Emblem Tibalt|TibaltCosmicImposterEmblem|
|
||||
|Generate|EMBLEM:KHM|Tyvar Kell||Emblem Tyvar|TyvarKellEmblem|
|
||||
|Generate|EMBLEM:STX|Lukka, Wayward Bonder||Emblem Lukka|LukkaWaywardBonderEmblem|
|
||||
|Generate|EMBLEM:STX|Rowan, Scholar of Sparks||Emblem Rowan|RowanScholarOfSparksEmblem|
|
||||
|
||||
# Planes
|
||||
|Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane|
|
||||
|
@ -1499,6 +1501,15 @@
|
|||
|Generate|TOK:TSR|Soldier|||SoldierToken|
|
||||
|Generate|TOK:TSR|Spider|||PenumbraSpiderToken|
|
||||
|
||||
// STX
|
||||
|Generate|TOK:STX|Avatar|||BloodAvatarToken|
|
||||
|Generate|TOK:STX|Elemental|||Elemental44Token|
|
||||
|Generate|TOK:STX|Fractal|||FractalToken|
|
||||
|Generate|TOK:STX|Inkling|||InklingToken|
|
||||
|Generate|TOK:STX|Pest|||Pest11GainLifeToken|
|
||||
|Generate|TOK:STX|Spirit|||Spirit32Token|
|
||||
|Generate|TOK:STX|Treasure|||TreasureToken|
|
||||
|
||||
# C21
|
||||
|Generate|TOK:C21|Beast|1||BeastToken|
|
||||
|Generate|TOK:C21|Beast|2||BeastToken2|
|
||||
|
@ -1529,7 +1540,4 @@
|
|||
|Generate|TOK:C21|Thopter|||ThopterColorlessToken|
|
||||
|Generate|TOK:C21|Whale|||ReefWormWhaleToken|
|
||||
|Generate|TOK:C21|Wurm|||WurmToken|
|
||||
|Generate|TOK:C21|Zombie|||ZombieToken|
|
||||
|
||||
|
||||
#|Generate|TOK:C21|xxx|||xxxToken|
|
||||
|Generate|TOK:C21|Zombie|||ZombieToken|
|
|
@ -1,23 +1,23 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.PayLifeCost;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.UntapAllLandsControllerEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author weirddan455
|
||||
*/
|
||||
public final class BeledrosWitherbloom extends CardImpl {
|
||||
|
@ -35,7 +35,7 @@ public final class BeledrosWitherbloom extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// At the beginning of each upkeep, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new WitherbloomToken()), TargetController.EACH_PLAYER, false));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new Pest11GainLifeToken()), TargetController.EACH_PLAYER, false));
|
||||
|
||||
// Pay 10 life: Untap all lands you control. Activate only once each turn.
|
||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(new UntapAllLandsControllerEffect()
|
||||
|
|
|
@ -12,7 +12,7 @@ import mage.constants.SubType;
|
|||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -32,7 +32,7 @@ public final class Biomathematician extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// When Biomathematician enters the battlefield, create a 0/0 green and blue Fractal creature token. Put a +1/+1 counter on each Fractal you control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new QuandrixToken()));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new FractalToken()));
|
||||
ability.addEffect(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.permanent.AttackingPredicate;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -51,7 +51,7 @@ public final class BlightMound extends CardImpl {
|
|||
|
||||
// Whenever a nontoken creature you control dies, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(
|
||||
new CreateTokenEffect(new WitherbloomToken()), false, filter2
|
||||
new CreateTokenEffect(new Pest11GainLifeToken()), false, filter2
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import mage.filter.FilterPermanent;
|
|||
import mage.filter.common.FilterNonlandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -33,7 +33,7 @@ public final class BlotOutTheSky extends CardImpl {
|
|||
|
||||
// Create X tapped 2/1 white and black Inkling creature tokens with flying. If X is 6 or more, destroy all noncreature, nonland permanents.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(
|
||||
new SilverquillToken(), ManacostVariableValue.REGULAR, true, false
|
||||
new InklingToken(), ManacostVariableValue.REGULAR, true, false
|
||||
));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DestroyAllEffect(filter), BlotOutTheSkyCondition.instance,
|
||||
|
|
|
@ -7,7 +7,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -21,7 +21,7 @@ public final class BodyOfResearch extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{G}{G}{G}{U}{U}{U}");
|
||||
|
||||
// Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of cards in your library.
|
||||
this.getSpellAbility().addEffect(QuandrixToken.getEffect(
|
||||
this.getSpellAbility().addEffect(FractalToken.getEffect(
|
||||
BodyOfResearchValue.instance, "Put X +1/+1 counters on it, " +
|
||||
"where X is the number of cards in your library"
|
||||
));
|
||||
|
|
|
@ -12,7 +12,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -32,7 +32,7 @@ public final class CallousBloodmage extends CardImpl {
|
|||
|
||||
// When Callous Bloodmage enters the battlefield, choose one —
|
||||
// • Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WitherbloomToken()));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new Pest11GainLifeToken()));
|
||||
|
||||
// • You draw a card and you lose 1 life.
|
||||
Mode mode = new Mode(new DrawCardSourceControllerEffect(1).setText("you draw a card"));
|
||||
|
|
|
@ -17,7 +17,7 @@ import mage.constants.Zone;
|
|||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -58,7 +58,7 @@ class CombatCalligrapherTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
CombatCalligrapherTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenTargetEffect(
|
||||
new SilverquillToken(), StaticValue.get(1), true, true
|
||||
new InklingToken(), StaticValue.get(1), true, true
|
||||
), false);
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import mage.constants.SubType;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -65,7 +65,7 @@ class ContainmentBreachEffect extends OneShotEffect {
|
|||
}
|
||||
permanent.destroy(source, game, false);
|
||||
if (permanent.getManaValue() <= 2) {
|
||||
new WitherbloomToken().putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
new Pest11GainLifeToken().putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -37,7 +37,7 @@ public final class DeekahFractalTheorist extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Magecraft — Whenever you cast or copy an instant or sorcery spell, create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is that spell's mana value.
|
||||
this.addAbility(new MagecraftAbility(QuandrixToken.getEffect(
|
||||
this.addAbility(new MagecraftAbility(FractalToken.getEffect(
|
||||
DeekahFractalTheoristValue.instance, "Put X +1/+1 counters on it, " +
|
||||
"where X is that spell's mana value"
|
||||
)));
|
||||
|
|
|
@ -13,7 +13,7 @@ import mage.filter.StaticFilters;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -39,7 +39,7 @@ public final class DramaticFinale extends CardImpl {
|
|||
|
||||
// Whenever one or more nontoken creatures you control die, create a 2/1 white and black Inkling creature token with flying. This ability triggers only once each turn.
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(
|
||||
new CreateTokenEffect(new SilverquillToken()), false, filter
|
||||
new CreateTokenEffect(new InklingToken()), false, filter
|
||||
).setTriggersOnce(true));
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ import mage.constants.*;
|
|||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.ZoneChangeEvent;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -99,7 +99,7 @@ class ElementalExpressionistReplacementEffect extends ReplacementEffectImpl {
|
|||
class ElementalExpressionistTriggeredAbility extends ZoneChangeTriggeredAbility {
|
||||
|
||||
ElementalExpressionistTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, Zone.BATTLEFIELD, Zone.EXILED, new CreateTokenEffect(new PrismariToken()), "", false);
|
||||
super(Zone.BATTLEFIELD, Zone.BATTLEFIELD, Zone.EXILED, new CreateTokenEffect(new Elemental44Token()), "", false);
|
||||
}
|
||||
|
||||
private ElementalExpressionistTriggeredAbility(final ElementalExpressionistTriggeredAbility ability) {
|
||||
|
|
|
@ -9,7 +9,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.game.permanent.token.TreasureToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -23,7 +23,7 @@ public final class ElementalMasterpiece extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{U}{R}");
|
||||
|
||||
// Create two 4/4 blue and red Elemental creature tokens.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new PrismariToken(), 2));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Elemental44Token(), 2));
|
||||
|
||||
// {U/R}{U/R}, Discard Elemental Masterpiece: Create a Treasure token.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
|
|
|
@ -5,7 +5,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public final class ElementalSummoning extends CardImpl {
|
|||
this.subtype.add(SubType.LESSON);
|
||||
|
||||
// Create a 4/4 blue and red Elemental creature token.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new PrismariToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Elemental44Token()));
|
||||
}
|
||||
|
||||
private ElementalSummoning(final ElementalSummoning card) {
|
||||
|
|
|
@ -14,7 +14,7 @@ import mage.game.Game;
|
|||
import mage.game.events.EntersTheBattlefieldEvent;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
@ -85,7 +85,7 @@ class EmergentSequenceEffect extends OneShotEffect {
|
|||
return true;
|
||||
}
|
||||
game.addEffect(new BecomesCreatureTargetEffect(
|
||||
new QuandrixToken(), false, true, Duration.Custom
|
||||
new FractalToken(), false, true, Duration.Custom
|
||||
).setTargetPointer(new FixedTarget(permanent, game)), source);
|
||||
permanent.addCounters(CounterType.P1P1.createInstance(
|
||||
EmergentSequenceWatcher.getAmount(source.getControllerId(), game)
|
||||
|
|
|
@ -17,7 +17,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.SuperType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
import mage.game.permanent.token.TreasureToken;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
@ -55,7 +55,7 @@ public final class FainTheBroker extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// {T}, Sacrifice an artifact: Create a 2/1 white and black Inkling creature token with flying.
|
||||
ability = new SimpleActivatedAbility(new CreateTokenEffect(new SilverquillToken()), new TapSourceCost());
|
||||
ability = new SimpleActivatedAbility(new CreateTokenEffect(new InklingToken()), new TapSourceCost());
|
||||
ability.addCost(new SacrificeTargetCost(
|
||||
new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN)
|
||||
));
|
||||
|
|
|
@ -21,7 +21,7 @@ import mage.filter.predicate.permanent.CounterAnyPredicate;
|
|||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
@ -60,7 +60,7 @@ public final class FelisaFangOfSilverquill extends CardImpl {
|
|||
|
||||
// Whenever a nontoken creature you control dies, if it had counters on it, create X tapped 2/1 white and black Inkling creature tokens with flying, where X is the number of counters it had on it.
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(new CreateTokenEffect(
|
||||
new SilverquillToken(), FelisaFangOfSilverquillValue.instance, true, false
|
||||
new InklingToken(), FelisaFangOfSilverquillValue.instance, true, false
|
||||
).setText(rule), false, filter));
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ import mage.constants.SubType;
|
|||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -71,7 +71,7 @@ class FractalHarnessTokenEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Token token = new QuandrixToken();
|
||||
Token token = new FractalToken();
|
||||
token.putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
int xValue = ManacostVariableValue.ETB.calculate(game, source, this);
|
||||
boolean flag = true;
|
||||
|
|
|
@ -5,7 +5,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public final class FractalSummoning extends CardImpl {
|
|||
this.subtype.add(SubType.LESSON);
|
||||
|
||||
// Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it.
|
||||
this.getSpellAbility().addEffect(QuandrixToken.getEffect(
|
||||
this.getSpellAbility().addEffect(FractalToken.getEffect(
|
||||
ManacostVariableValue.REGULAR, "Put X +1/+1 counters on it"
|
||||
));
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ import mage.constants.CardType;
|
|||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.game.stack.Spell;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -39,7 +39,7 @@ public final class GeometricNexus extends CardImpl {
|
|||
));
|
||||
|
||||
// {6}, {T}, Remove all charge counters from Geometric Nexus: Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of charge counters removed this way.
|
||||
Ability ability = new SimpleActivatedAbility(QuandrixToken.getEffect(
|
||||
Ability ability = new SimpleActivatedAbility(FractalToken.getEffect(
|
||||
GeometricNexusRemovedCounterValue.instance, "Put X +1/+1 counters on it, " +
|
||||
"where X is the number of charge counters removed this way"
|
||||
), new GenericManaCost(6));
|
||||
|
|
|
@ -5,7 +5,7 @@ import mage.abilities.effects.common.LearnEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -18,7 +18,7 @@ public final class HuntForSpecimens extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}");
|
||||
|
||||
// Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new WitherbloomToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Pest11GainLifeToken()));
|
||||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
|
|
|
@ -9,7 +9,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -28,7 +28,7 @@ public final class IlluminateHistory extends CardImpl {
|
|||
// Discard any number of cards, then draw that many cards. Then if there are seven or more cards in your graveyard, create a 3/2 red and white Spirit creature token.
|
||||
this.getSpellAbility().addEffect(new DiscardAndDrawThatManyEffect(Integer.MAX_VALUE));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new CreateTokenEffect(new LoreholdToken()), condition, "Then if there are seven or more " +
|
||||
new CreateTokenEffect(new Spirit32Token()), condition, "Then if there are seven or more " +
|
||||
"cards in your graveyard, create a 3/2 red and white Spirit creature token"
|
||||
));
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -32,7 +32,7 @@ public final class IllustriousHistorian extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(
|
||||
Zone.GRAVEYARD,
|
||||
new CreateTokenEffect(
|
||||
new LoreholdToken(), 1, true, false
|
||||
new Spirit32Token(), 1, true, false
|
||||
), new GenericManaCost(5)
|
||||
);
|
||||
ability.addCost(new ExileSourceFromGraveCost());
|
||||
|
|
|
@ -5,7 +5,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public final class InklingSummoning extends CardImpl {
|
|||
this.subtype.add(SubType.LESSON);
|
||||
|
||||
// Create a 2/1 white and black Inkling creature token with flying.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new SilverquillToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new InklingToken()));
|
||||
}
|
||||
|
||||
private InklingSummoning(final InklingSummoning card) {
|
||||
|
|
|
@ -10,7 +10,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -67,7 +67,7 @@ class InkshieldEffect extends PreventionEffectImpl {
|
|||
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
|
||||
PreventionEffectData preventionEffectData = preventDamageAction(event, source, game);
|
||||
if (preventionEffectData.getPreventedDamage() > 0) {
|
||||
new CreateTokenEffect(new SilverquillToken(), preventionEffectData.getPreventedDamage()).apply(game, source);
|
||||
new CreateTokenEffect(new InklingToken(), preventionEffectData.getPreventedDamage()).apply(game, source);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ import mage.filter.common.FilterInstantOrSorceryCard;
|
|||
import mage.filter.predicate.mageobject.SharesColorPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
||||
|
@ -46,7 +46,7 @@ public final class KasminaEnigmaSage extends CardImpl {
|
|||
this.addAbility(new LoyaltyAbility(new ScryEffect(1), 2));
|
||||
|
||||
// −X: Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it.
|
||||
this.addAbility(new LoyaltyAbility(QuandrixToken.getEffect(
|
||||
this.addAbility(new LoyaltyAbility(FractalToken.getEffect(
|
||||
GetXLoyaltyValue.instance, "Put X +1/+1 counters on it"
|
||||
)));
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import mage.counters.CounterType;
|
|||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterOwnedCard;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetCard;
|
||||
import mage.target.common.TargetCardInExile;
|
||||
|
@ -48,7 +48,7 @@ public final class KianneDeanOfSubstance extends ModalDoubleFacesCard {
|
|||
));
|
||||
|
||||
// {4}{G}: Create a 0/0 green and blue Fractal creature token. Put a +1/+1 counter on it for each different mana value among nonland cards you own in exile with study counters on them.
|
||||
this.getLeftHalfCard().addAbility(new SimpleActivatedAbility(QuandrixToken.getEffect(
|
||||
this.getLeftHalfCard().addAbility(new SimpleActivatedAbility(FractalToken.getEffect(
|
||||
KianneDeanOfSubstanceValue.instance, "Put a +1/+1 counter on it for each different mana value " +
|
||||
"among nonland cards you own in exile with study counters on them"
|
||||
), new ManaCostsImpl("{4}{G}")).addHint(KianneDeanOfSubstanceHint.instance));
|
||||
|
|
|
@ -5,7 +5,7 @@ import mage.abilities.hint.common.LandsYouControlHint;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -18,7 +18,7 @@ public final class LeylineInvocation extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{G}");
|
||||
|
||||
// Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of lands you control.
|
||||
this.getSpellAbility().addEffect(QuandrixToken.getEffect(
|
||||
this.getSpellAbility().addEffect(FractalToken.getEffect(
|
||||
LandsYouControlCount.instance, "Put X +1/+1 counters on it, " +
|
||||
"where X is the number of lands you control"
|
||||
));
|
||||
|
|
|
@ -18,7 +18,7 @@ import mage.constants.Outcome;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
@ -38,7 +38,7 @@ public final class LoreholdCommand extends CardImpl {
|
|||
this.getSpellAbility().getModes().setMaxModes(2);
|
||||
|
||||
// • Create a 3/2 red and white Spirit creature token.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new LoreholdToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Spirit32Token()));
|
||||
|
||||
// • Creatures you control get +1/+0 and gain indestructible and haste until end of turn.
|
||||
Mode mode = new Mode(new BoostControlledEffect(
|
||||
|
|
|
@ -16,7 +16,7 @@ import mage.constants.Outcome;
|
|||
import mage.constants.TargetController;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
|
@ -37,7 +37,7 @@ public final class LoreholdExcavation extends CardImpl {
|
|||
|
||||
// {5}, Exile a creature card from your graveyard: Create a tapped 3/2 red and white Spirit creature token.
|
||||
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(
|
||||
new LoreholdToken(), 1, true, false
|
||||
new Spirit32Token(), 1, true, false
|
||||
), new GenericManaCost(5));
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_A)));
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -13,7 +13,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.game.permanent.token.TreasureToken;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetAnyTargetAmount;
|
||||
|
@ -34,7 +34,7 @@ public final class MagmaOpus extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(4).withChooseHint("damage"));
|
||||
this.getSpellAbility().addEffect(new TapTargetEffect().setTargetPointer(new SecondTargetPointer()).setText("two target permanents"));
|
||||
this.getSpellAbility().addTarget(new TargetPermanent(2, StaticFilters.FILTER_PERMANENTS).withChooseHint("tap"));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new PrismariToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Elemental44Token()));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2).setText("Draw two cards"));
|
||||
|
||||
// {U/R}{U/R}, Discard Magma Opus: Create a Treasure token.
|
||||
|
|
|
@ -15,7 +15,7 @@ import mage.game.Game;
|
|||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.ZoneChangeEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -76,7 +76,7 @@ class MakeYourMarkDelayedTriggeredAbility extends DelayedTriggeredAbility {
|
|||
private final MageObjectReference mor;
|
||||
|
||||
MakeYourMarkDelayedTriggeredAbility(Permanent permanent, Game game) {
|
||||
super(new CreateTokenEffect(new LoreholdToken()), Duration.EndOfTurn, false, false);
|
||||
super(new CreateTokenEffect(new Spirit32Token()), Duration.EndOfTurn, false, false);
|
||||
this.mor = new MageObjectReference(permanent, game);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -25,7 +25,7 @@ public final class ManifestationSage extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// When Manifestation Sage enters the battlefield, create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of cards in your hand.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(QuandrixToken.getEffect(
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(FractalToken.getEffect(
|
||||
CardsInControllerHandCount.instance, "Put X +1/+1 counters on it, " +
|
||||
"where X is the number of cards in your hand"
|
||||
)));
|
||||
|
|
|
@ -5,9 +5,9 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -22,10 +22,10 @@ public final class MascotExhibition extends CardImpl {
|
|||
this.subtype.add(SubType.LESSON);
|
||||
|
||||
// Create a 2/1 white and black Inkling creature token with flying, a 3/2 red and white Spirit creature token, and a 4/4 blue and red Elemental creature token.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new SilverquillToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new LoreholdToken())
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new InklingToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Spirit32Token())
|
||||
.setText(", a 3/2 red and white Spirit creature token"));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new PrismariToken())
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Elemental44Token())
|
||||
.setText(", and a 4/4 blue and red Elemental creature token"));
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.TargetPlayer;
|
||||
|
@ -74,7 +74,7 @@ class MultipleChoiceEffect extends OneShotEffect {
|
|||
controller.drawCards(1, source, game);
|
||||
}
|
||||
if (xValue == 3 || xValue >= 4) {
|
||||
new PrismariToken().putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
new Elemental44Token().putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
}
|
||||
if (xValue != 2 && xValue < 4) {
|
||||
return true;
|
||||
|
|
|
@ -13,7 +13,7 @@ import mage.filter.StaticFilters;
|
|||
import mage.game.Controllable;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -83,7 +83,7 @@ class OversimplifyEffect extends OneShotEffect {
|
|||
));
|
||||
controller.moveCards(new CardsImpl(permanents), Zone.EXILED, source, game);
|
||||
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
|
||||
Token token = new QuandrixToken();
|
||||
Token token = new FractalToken();
|
||||
token.putOntoBattlefield(1, game, source, playerId);
|
||||
int counter = playerMap.getOrDefault(playerId, 0);
|
||||
for (UUID tokenId : token.getLastAddedTokenIds()) {
|
||||
|
|
|
@ -13,7 +13,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -37,7 +37,7 @@ public final class ParadoxZone extends CardImpl {
|
|||
Ability ability = new BeginningOfEndStepTriggeredAbility(
|
||||
new DoubleCountersSourceEffect(CounterType.GROWTH), TargetController.YOU, false
|
||||
);
|
||||
Effect effect = QuandrixToken.getEffect(
|
||||
Effect effect = FractalToken.getEffect(
|
||||
xValue, "Put X +1/+1 counters on it, where X is the number of growth counters on {this}"
|
||||
);
|
||||
ability.addEffect(effect.concatBy("Then"));
|
||||
|
|
|
@ -11,7 +11,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.targetadjustment.TargetAdjuster;
|
||||
|
||||
|
@ -30,7 +30,7 @@ public final class PestInfestation extends CardImpl {
|
|||
// Destroy up to X target artifacts and/or enchantments. Create twice X 1/1 black and green Pest creature tokens with "When this creature dies, you gain 1 life."
|
||||
this.getSpellAbility().addEffect(new DestroyTargetEffect()
|
||||
.setText("destroy up to X target artifacts and/or enchantments."));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new WitherbloomToken(), xValue)
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Pest11GainLifeToken(), xValue)
|
||||
.setText("Create twice X 1/1 black and green Pest creature tokens with \"When this creature dies, you gain 1 life.\""));
|
||||
this.getSpellAbility().setTargetAdjuster(PestInfestationAdjuster.instance);
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public final class PestSummoning extends CardImpl {
|
|||
this.subtype.add(SubType.LESSON);
|
||||
|
||||
// Create two 1/1 black and green Pest creature tokens with "When this creature dies, you gain 1 life."
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new WitherbloomToken(), 2));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Pest11GainLifeToken(), 2));
|
||||
}
|
||||
|
||||
private PestSummoning(final PestSummoning card) {
|
||||
|
|
|
@ -18,7 +18,7 @@ import mage.filter.FilterCard;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInASingleGraveyard;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
@ -55,7 +55,7 @@ public final class PestilentCauldron extends ModalDoubleFacesCard {
|
|||
// Artifact
|
||||
// {T}, Discard a card: Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new CreateTokenEffect(new WitherbloomToken()), new TapSourceCost()
|
||||
new CreateTokenEffect(new Pest11GainLifeToken()), new TapSourceCost()
|
||||
);
|
||||
ability.addCost(new DiscardCardCost());
|
||||
this.getLeftHalfCard().addAbility(ability);
|
||||
|
|
|
@ -7,7 +7,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -25,7 +25,7 @@ public final class ProfessorOfZoomancy extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Professor of Zoomancy enters the battlefield, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WitherbloomToken())));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new Pest11GainLifeToken())));
|
||||
}
|
||||
|
||||
private ProfessorOfZoomancy(final ProfessorOfZoomancy card) {
|
||||
|
|
|
@ -12,7 +12,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -38,7 +38,7 @@ public final class QuintoriusFieldHistorian extends CardImpl {
|
|||
)));
|
||||
|
||||
// Whenever one or more cards leave your graveyard, create a 3/2 red and white Spirit creature token.
|
||||
this.addAbility(new CardsLeaveGraveyardTriggeredAbility(new CreateTokenEffect(new LoreholdToken())));
|
||||
this.addAbility(new CardsLeaveGraveyardTriggeredAbility(new CreateTokenEffect(new Spirit32Token())));
|
||||
}
|
||||
|
||||
private QuintoriusFieldHistorian(final QuintoriusFieldHistorian card) {
|
||||
|
|
|
@ -10,7 +10,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetNonlandPermanent;
|
||||
|
||||
|
@ -65,7 +65,7 @@ class ReduceToMemoryEffect extends OneShotEffect {
|
|||
}
|
||||
Player player = game.getPlayer(permanent.getControllerId());
|
||||
player.moveCards(permanent, Zone.EXILED, source, game);
|
||||
new LoreholdToken().putOntoBattlefield(1, game, source, player.getId());
|
||||
new Spirit32Token().putOntoBattlefield(1, game, source, player.getId());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -64,7 +64,7 @@ class ResculptEffect extends OneShotEffect {
|
|||
}
|
||||
Player player = game.getPlayer(permanent.getControllerId());
|
||||
player.moveCards(permanent, Zone.EXILED, source, game);
|
||||
new PrismariToken().putOntoBattlefield(1, game, source, player.getId());
|
||||
new Elemental44Token().putOntoBattlefield(1, game, source, player.getId());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ import mage.filter.StaticFilters;
|
|||
import mage.filter.common.FilterInstantOrSorceryCard;
|
||||
import mage.game.Game;
|
||||
import mage.game.command.emblems.RowanScholarOfSparksEmblem;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -175,7 +175,7 @@ class WillScholarOfFrostEffect extends OneShotEffect {
|
|||
));
|
||||
player.moveCards(cards, Zone.EXILED, source, game);
|
||||
for (Map.Entry<UUID, Integer> entry : playerMap.entrySet()) {
|
||||
new PrismariToken().putOntoBattlefield(entry.getValue(), game, source, entry.getKey());
|
||||
new Elemental44Token().putOntoBattlefield(entry.getValue(), game, source, entry.getKey());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -34,7 +34,7 @@ public final class SedgemoorWitch extends CardImpl {
|
|||
this.addAbility(new WardAbility(new PayLifeCost(3)));
|
||||
|
||||
// Magecraft — Whenever you cast or copy an instant or sorcery spell, create a 1/1 black and green Pest creature token with "Whenever this creature dies, you gain 1 life."
|
||||
this.addAbility(new MagecraftAbility(new CreateTokenEffect(new WitherbloomToken())));
|
||||
this.addAbility(new MagecraftAbility(new CreateTokenEffect(new Pest11GainLifeToken())));
|
||||
}
|
||||
|
||||
private SedgemoorWitch(final SedgemoorWitch card) {
|
||||
|
|
|
@ -14,7 +14,7 @@ import mage.filter.FilterCard;
|
|||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
import mage.target.targetadjustment.TargetAdjuster;
|
||||
|
||||
|
@ -35,7 +35,7 @@ public final class SequenceEngine extends CardImpl {
|
|||
new ManaCostsImpl<>("{X}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addEffect(QuandrixToken.getEffect(
|
||||
ability.addEffect(FractalToken.getEffect(
|
||||
ManacostVariableValue.REGULAR, "Put X +1/+1 counters on it"
|
||||
));
|
||||
ability.setTargetAdjuster(SequenceEngineAdjuster.instance);
|
||||
|
|
|
@ -9,7 +9,7 @@ import mage.abilities.hint.ValueHint;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.permanent.token.QuandrixToken;
|
||||
import mage.game.permanent.token.FractalToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -29,7 +29,7 @@ public final class SerpentineCurve extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U}");
|
||||
|
||||
// Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is one plus the total number of instant and sorcery cards you own in exile and in your graveyard.
|
||||
this.getSpellAbility().addEffect(QuandrixToken.getEffect(
|
||||
this.getSpellAbility().addEffect(FractalToken.getEffect(
|
||||
xValue, "Put X +1/+1 counters on it, where X is one plus the total number " +
|
||||
"of instant and sorcery cards you own in exile and in your graveyard"
|
||||
));
|
||||
|
|
|
@ -19,7 +19,7 @@ import mage.filter.StaticFilters;
|
|||
import mage.filter.predicate.other.AnotherTargetPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -63,7 +63,7 @@ public final class ShadrixSilverquill extends CardImpl {
|
|||
ability.getModes().setMayChooseNone(true);
|
||||
|
||||
// • Target player creates a 2/1 white and black Inkling creature token with flying.
|
||||
ability.addEffect(new CreateTokenTargetEffect(new SilverquillToken()));
|
||||
ability.addEffect(new CreateTokenTargetEffect(new InklingToken()));
|
||||
TargetPlayer target = new TargetPlayer(filter1);
|
||||
target.setTargetTag(1);
|
||||
ability.addTarget(target.withChooseHint("to create a token"));
|
||||
|
|
|
@ -5,7 +5,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.LoreholdToken;
|
||||
import mage.game.permanent.token.Spirit32Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public final class SpiritSummoning extends CardImpl {
|
|||
this.subtype.add(SubType.LESSON);
|
||||
|
||||
// Create a 3/2 red and white Spirit creature token.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new LoreholdToken()));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new Spirit32Token()));
|
||||
}
|
||||
|
||||
private SpiritSummoning(final SpiritSummoning card) {
|
||||
|
|
|
@ -7,7 +7,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -27,7 +27,7 @@ public final class TendThePests extends CardImpl {
|
|||
|
||||
// Create X 1/1 black and green Pest creature tokens with "When this creature dies, you gain 1 life," where X is the sacrificed creature's power.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(
|
||||
new WitherbloomToken(), SacrificeCostCreaturesPower.instance
|
||||
new Pest11GainLifeToken(), SacrificeCostCreaturesPower.instance
|
||||
).setText("create X 1/1 black and green Pest creature tokens with " +
|
||||
"\"When this creature dies, you gain 1 life,\" where X is the sacrificed creature's power"));
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.SilverquillToken;
|
||||
import mage.game.permanent.token.InklingToken;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -28,7 +28,7 @@ public final class UmbralJuke extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
// • Create a 2/1 white and black Inkling creature token with flying.
|
||||
this.getSpellAbility().addMode(new Mode(new CreateTokenEffect(new SilverquillToken())));
|
||||
this.getSpellAbility().addMode(new Mode(new CreateTokenEffect(new InklingToken())));
|
||||
}
|
||||
|
||||
private UmbralJuke(final UmbralJuke card) {
|
||||
|
|
|
@ -22,7 +22,7 @@ import mage.game.Game;
|
|||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.ZoneChangeEvent;
|
||||
import mage.game.permanent.PermanentToken;
|
||||
import mage.game.permanent.token.WitherbloomToken;
|
||||
import mage.game.permanent.token.Pest11GainLifeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -102,7 +102,7 @@ class ValentinDeanOfTheVeinEffect extends ReplacementEffectImpl {
|
|||
((ZoneChangeEvent) event).setToZone(Zone.EXILED);
|
||||
game.fireReflexiveTriggeredAbility(new ReflexiveTriggeredAbility(
|
||||
new DoIfCostPaid(
|
||||
new CreateTokenEffect(new WitherbloomToken()), new GenericManaCost(2)
|
||||
new CreateTokenEffect(new Pest11GainLifeToken()), new GenericManaCost(2)
|
||||
), false, "you may pay {2}. If you do, create a 1/1 black and green " +
|
||||
"Pest creature token with \"When this creature dies, you gain 1 life.\""
|
||||
), source);
|
||||
|
|
|
@ -11,7 +11,7 @@ import mage.constants.Outcome;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.PrismariToken;
|
||||
import mage.game.permanent.token.Elemental44Token;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
@ -75,7 +75,7 @@ class ZaffaiThunderConductorEffect extends OneShotEffect {
|
|||
if (spell == null || spell.getManaValue() < 5) {
|
||||
return false;
|
||||
}
|
||||
new PrismariToken().putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
new Elemental44Token().putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
if (spell.getManaValue() < 10) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -21,11 +23,14 @@ public final class BloodAvatarToken extends TokenImpl {
|
|||
subtype.add(SubType.AVATAR);
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(6);
|
||||
|
||||
addAbility(HasteAbility.getInstance());
|
||||
addAbility(new AttacksTriggeredAbility(
|
||||
new DamagePlayersEffect(3, TargetController.OPPONENT), false,
|
||||
"Whenever this creature attacks, it deals 3 damage to each opponent."
|
||||
));
|
||||
|
||||
availableImageSetCodes = Arrays.asList("STX");
|
||||
}
|
||||
|
||||
private BloodAvatarToken(final BloodAvatarToken token) {
|
||||
|
|
|
@ -4,12 +4,14 @@ import mage.MageInt;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class PrismariToken extends TokenImpl {
|
||||
public final class Elemental44Token extends TokenImpl {
|
||||
|
||||
public PrismariToken() {
|
||||
public Elemental44Token() {
|
||||
super("Elemental", "4/4 blue and red Elemental creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlue(true);
|
||||
|
@ -17,14 +19,16 @@ public final class PrismariToken extends TokenImpl {
|
|||
subtype.add(SubType.ELEMENTAL);
|
||||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("STX");
|
||||
}
|
||||
|
||||
private PrismariToken(final PrismariToken token) {
|
||||
private Elemental44Token(final Elemental44Token token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PrismariToken copy() {
|
||||
return new PrismariToken(this);
|
||||
public Elemental44Token copy() {
|
||||
return new Elemental44Token(this);
|
||||
}
|
||||
}
|
|
@ -17,9 +17,9 @@ import java.util.UUID;
|
|||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class QuandrixToken extends TokenImpl {
|
||||
public final class FractalToken extends TokenImpl {
|
||||
|
||||
public QuandrixToken() {
|
||||
public FractalToken() {
|
||||
super("Fractal", "0/0 green and blue Fractal creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.FRACTAL);
|
||||
|
@ -31,12 +31,12 @@ public final class QuandrixToken extends TokenImpl {
|
|||
availableImageSetCodes = Arrays.asList("STX");
|
||||
}
|
||||
|
||||
private QuandrixToken(final QuandrixToken token) {
|
||||
private FractalToken(final FractalToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public QuandrixToken copy() {
|
||||
return new QuandrixToken(this);
|
||||
public FractalToken copy() {
|
||||
return new FractalToken(this);
|
||||
}
|
||||
|
||||
public static QuandrixTokenEffect getEffect(DynamicValue xValue, String text) {
|
||||
|
@ -65,7 +65,7 @@ public final class QuandrixToken extends TokenImpl {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Token token = new QuandrixToken();
|
||||
Token token = new FractalToken();
|
||||
token.putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
int value = xValue.calculate(game, source, this);
|
||||
if (value < 1) {
|
|
@ -5,12 +5,14 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SilverquillToken extends TokenImpl {
|
||||
public final class InklingToken extends TokenImpl {
|
||||
|
||||
public SilverquillToken() {
|
||||
public InklingToken() {
|
||||
super("Inkling", "2/1 white and black Inkling creature token with flying");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setWhite(true);
|
||||
|
@ -18,15 +20,18 @@ public final class SilverquillToken extends TokenImpl {
|
|||
subtype.add(SubType.INKLING);
|
||||
power = new MageInt(2);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("STX");
|
||||
}
|
||||
|
||||
private SilverquillToken(final SilverquillToken token) {
|
||||
private InklingToken(final InklingToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SilverquillToken copy() {
|
||||
return new SilverquillToken(this);
|
||||
public InklingToken copy() {
|
||||
return new InklingToken(this);
|
||||
}
|
||||
}
|
|
@ -6,12 +6,14 @@ import mage.abilities.effects.common.GainLifeEffect;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class WitherbloomToken extends TokenImpl {
|
||||
public final class Pest11GainLifeToken extends TokenImpl {
|
||||
|
||||
public WitherbloomToken() {
|
||||
public Pest11GainLifeToken() {
|
||||
super("Pest", "1/1 black and green Pest creature token with \"When this creature dies, you gain 1 life.\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlack(true);
|
||||
|
@ -21,13 +23,15 @@ public final class WitherbloomToken extends TokenImpl {
|
|||
toughness = new MageInt(1);
|
||||
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(1)));
|
||||
|
||||
availableImageSetCodes = Arrays.asList("STX");
|
||||
}
|
||||
|
||||
private WitherbloomToken(final WitherbloomToken token) {
|
||||
private Pest11GainLifeToken(final Pest11GainLifeToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public WitherbloomToken copy() {
|
||||
return new WitherbloomToken(this);
|
||||
public Pest11GainLifeToken copy() {
|
||||
return new Pest11GainLifeToken(this);
|
||||
}
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class PestToken extends TokenImpl {
|
||||
|
@ -18,6 +18,8 @@ public final class PestToken extends TokenImpl {
|
|||
subtype.add(SubType.PEST);
|
||||
power = new MageInt(0);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("HOP", "MRD");
|
||||
}
|
||||
|
||||
public PestToken(final PestToken token) {
|
||||
|
|
|
@ -4,12 +4,14 @@ import mage.MageInt;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class LoreholdToken extends TokenImpl {
|
||||
public final class Spirit32Token extends TokenImpl {
|
||||
|
||||
public LoreholdToken() {
|
||||
public Spirit32Token() {
|
||||
super("Spirit", "3/2 red and white Spirit creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setRed(true);
|
||||
|
@ -17,14 +19,16 @@ public final class LoreholdToken extends TokenImpl {
|
|||
subtype.add(SubType.SPIRIT);
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("STX");
|
||||
}
|
||||
|
||||
private LoreholdToken(final LoreholdToken token) {
|
||||
private Spirit32Token(final Spirit32Token token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoreholdToken copy() {
|
||||
return new LoreholdToken(this);
|
||||
public Spirit32Token copy() {
|
||||
return new Spirit32Token(this);
|
||||
}
|
||||
}
|
|
@ -29,7 +29,7 @@ public final class TreasureToken extends TokenImpl {
|
|||
ability.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM");
|
||||
availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM", "STX");
|
||||
}
|
||||
|
||||
public TreasureToken(final TreasureToken token) {
|
||||
|
|
Loading…
Reference in a new issue