diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java
index 622383974f..57bb3500af 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java
@@ -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
diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt
index fa5a6e8612..02f2b4c9f8 100644
--- a/Mage.Client/src/main/resources/card-pictures-tok.txt
+++ b/Mage.Client/src/main/resources/card-pictures-tok.txt
@@ -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|
\ No newline at end of file
+|Generate|TOK:C21|Zombie|||ZombieToken|
\ No newline at end of file
diff --git a/Mage.Sets/src/mage/cards/b/BeledrosWitherbloom.java b/Mage.Sets/src/mage/cards/b/BeledrosWitherbloom.java
index 1b64d70236..2b3f8c5825 100644
--- a/Mage.Sets/src/mage/cards/b/BeledrosWitherbloom.java
+++ b/Mage.Sets/src/mage/cards/b/BeledrosWitherbloom.java
@@ -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()
diff --git a/Mage.Sets/src/mage/cards/b/Biomathematician.java b/Mage.Sets/src/mage/cards/b/Biomathematician.java
index 09aefa8c1a..9c82c4d8fa 100644
--- a/Mage.Sets/src/mage/cards/b/Biomathematician.java
+++ b/Mage.Sets/src/mage/cards/b/Biomathematician.java
@@ -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);
}
diff --git a/Mage.Sets/src/mage/cards/b/BlightMound.java b/Mage.Sets/src/mage/cards/b/BlightMound.java
index 9628bc7a9b..273b0a5d92 100644
--- a/Mage.Sets/src/mage/cards/b/BlightMound.java
+++ b/Mage.Sets/src/mage/cards/b/BlightMound.java
@@ -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
));
}
diff --git a/Mage.Sets/src/mage/cards/b/BlotOutTheSky.java b/Mage.Sets/src/mage/cards/b/BlotOutTheSky.java
index b68272384a..a0acafec34 100644
--- a/Mage.Sets/src/mage/cards/b/BlotOutTheSky.java
+++ b/Mage.Sets/src/mage/cards/b/BlotOutTheSky.java
@@ -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,
diff --git a/Mage.Sets/src/mage/cards/b/BodyOfResearch.java b/Mage.Sets/src/mage/cards/b/BodyOfResearch.java
index ff02fc8406..25498ae428 100644
--- a/Mage.Sets/src/mage/cards/b/BodyOfResearch.java
+++ b/Mage.Sets/src/mage/cards/b/BodyOfResearch.java
@@ -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"
));
diff --git a/Mage.Sets/src/mage/cards/c/CallousBloodmage.java b/Mage.Sets/src/mage/cards/c/CallousBloodmage.java
index 243c2b55c7..d4beb0114c 100644
--- a/Mage.Sets/src/mage/cards/c/CallousBloodmage.java
+++ b/Mage.Sets/src/mage/cards/c/CallousBloodmage.java
@@ -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"));
diff --git a/Mage.Sets/src/mage/cards/c/CombatCalligrapher.java b/Mage.Sets/src/mage/cards/c/CombatCalligrapher.java
index 98bbde793e..8ba88c356c 100644
--- a/Mage.Sets/src/mage/cards/c/CombatCalligrapher.java
+++ b/Mage.Sets/src/mage/cards/c/CombatCalligrapher.java
@@ -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);
}
diff --git a/Mage.Sets/src/mage/cards/c/ContainmentBreach.java b/Mage.Sets/src/mage/cards/c/ContainmentBreach.java
index b5b4ff81d7..c4dc78d5fe 100644
--- a/Mage.Sets/src/mage/cards/c/ContainmentBreach.java
+++ b/Mage.Sets/src/mage/cards/c/ContainmentBreach.java
@@ -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;
}
diff --git a/Mage.Sets/src/mage/cards/d/DeekahFractalTheorist.java b/Mage.Sets/src/mage/cards/d/DeekahFractalTheorist.java
index 28642f1e74..24c3387956 100644
--- a/Mage.Sets/src/mage/cards/d/DeekahFractalTheorist.java
+++ b/Mage.Sets/src/mage/cards/d/DeekahFractalTheorist.java
@@ -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"
)));
diff --git a/Mage.Sets/src/mage/cards/d/DramaticFinale.java b/Mage.Sets/src/mage/cards/d/DramaticFinale.java
index 4f962f0b31..bdfa96118c 100644
--- a/Mage.Sets/src/mage/cards/d/DramaticFinale.java
+++ b/Mage.Sets/src/mage/cards/d/DramaticFinale.java
@@ -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));
}
diff --git a/Mage.Sets/src/mage/cards/e/ElementalExpressionist.java b/Mage.Sets/src/mage/cards/e/ElementalExpressionist.java
index 039a1f079f..975bb2a666 100644
--- a/Mage.Sets/src/mage/cards/e/ElementalExpressionist.java
+++ b/Mage.Sets/src/mage/cards/e/ElementalExpressionist.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/e/ElementalMasterpiece.java b/Mage.Sets/src/mage/cards/e/ElementalMasterpiece.java
index 4442a2f101..a7c25775ca 100644
--- a/Mage.Sets/src/mage/cards/e/ElementalMasterpiece.java
+++ b/Mage.Sets/src/mage/cards/e/ElementalMasterpiece.java
@@ -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(
diff --git a/Mage.Sets/src/mage/cards/e/ElementalSummoning.java b/Mage.Sets/src/mage/cards/e/ElementalSummoning.java
index 2feedeb1ec..d8478abe9f 100644
--- a/Mage.Sets/src/mage/cards/e/ElementalSummoning.java
+++ b/Mage.Sets/src/mage/cards/e/ElementalSummoning.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/e/EmergentSequence.java b/Mage.Sets/src/mage/cards/e/EmergentSequence.java
index 9c7b0f6b58..adfc9479cf 100644
--- a/Mage.Sets/src/mage/cards/e/EmergentSequence.java
+++ b/Mage.Sets/src/mage/cards/e/EmergentSequence.java
@@ -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)
diff --git a/Mage.Sets/src/mage/cards/f/FainTheBroker.java b/Mage.Sets/src/mage/cards/f/FainTheBroker.java
index c395ab3218..d08e4dc2a2 100644
--- a/Mage.Sets/src/mage/cards/f/FainTheBroker.java
+++ b/Mage.Sets/src/mage/cards/f/FainTheBroker.java
@@ -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)
));
diff --git a/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java b/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java
index 88241f01a6..c90584ed5a 100644
--- a/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java
+++ b/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java
@@ -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));
}
diff --git a/Mage.Sets/src/mage/cards/f/FractalHarness.java b/Mage.Sets/src/mage/cards/f/FractalHarness.java
index f56ab7bf9d..5d09fb9740 100644
--- a/Mage.Sets/src/mage/cards/f/FractalHarness.java
+++ b/Mage.Sets/src/mage/cards/f/FractalHarness.java
@@ -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;
diff --git a/Mage.Sets/src/mage/cards/f/FractalSummoning.java b/Mage.Sets/src/mage/cards/f/FractalSummoning.java
index fa94b4365b..5ecda1518c 100644
--- a/Mage.Sets/src/mage/cards/f/FractalSummoning.java
+++ b/Mage.Sets/src/mage/cards/f/FractalSummoning.java
@@ -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"
));
}
diff --git a/Mage.Sets/src/mage/cards/g/GeometricNexus.java b/Mage.Sets/src/mage/cards/g/GeometricNexus.java
index 237b820beb..f228ce729c 100644
--- a/Mage.Sets/src/mage/cards/g/GeometricNexus.java
+++ b/Mage.Sets/src/mage/cards/g/GeometricNexus.java
@@ -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));
diff --git a/Mage.Sets/src/mage/cards/h/HuntForSpecimens.java b/Mage.Sets/src/mage/cards/h/HuntForSpecimens.java
index 649b77a083..4d2878f0ff 100644
--- a/Mage.Sets/src/mage/cards/h/HuntForSpecimens.java
+++ b/Mage.Sets/src/mage/cards/h/HuntForSpecimens.java
@@ -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("
"));
diff --git a/Mage.Sets/src/mage/cards/i/IlluminateHistory.java b/Mage.Sets/src/mage/cards/i/IlluminateHistory.java
index 073de314dd..af5c84a264 100644
--- a/Mage.Sets/src/mage/cards/i/IlluminateHistory.java
+++ b/Mage.Sets/src/mage/cards/i/IlluminateHistory.java
@@ -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"
));
}
diff --git a/Mage.Sets/src/mage/cards/i/IllustriousHistorian.java b/Mage.Sets/src/mage/cards/i/IllustriousHistorian.java
index d7428f2027..9bb133190e 100644
--- a/Mage.Sets/src/mage/cards/i/IllustriousHistorian.java
+++ b/Mage.Sets/src/mage/cards/i/IllustriousHistorian.java
@@ -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());
diff --git a/Mage.Sets/src/mage/cards/i/InklingSummoning.java b/Mage.Sets/src/mage/cards/i/InklingSummoning.java
index 274b3e86ce..cc1a0b1856 100644
--- a/Mage.Sets/src/mage/cards/i/InklingSummoning.java
+++ b/Mage.Sets/src/mage/cards/i/InklingSummoning.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/i/Inkshield.java b/Mage.Sets/src/mage/cards/i/Inkshield.java
index c728534308..fbf835475d 100644
--- a/Mage.Sets/src/mage/cards/i/Inkshield.java
+++ b/Mage.Sets/src/mage/cards/i/Inkshield.java
@@ -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;
}
diff --git a/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java b/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java
index 0aac5aa974..942c8dfae8 100644
--- a/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java
+++ b/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java
@@ -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"
)));
diff --git a/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java b/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java
index 4517e66136..2dd530f0e1 100644
--- a/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java
+++ b/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java
@@ -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));
diff --git a/Mage.Sets/src/mage/cards/l/LeylineInvocation.java b/Mage.Sets/src/mage/cards/l/LeylineInvocation.java
index 426d3dcb80..6de7079262 100644
--- a/Mage.Sets/src/mage/cards/l/LeylineInvocation.java
+++ b/Mage.Sets/src/mage/cards/l/LeylineInvocation.java
@@ -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"
));
diff --git a/Mage.Sets/src/mage/cards/l/LoreholdCommand.java b/Mage.Sets/src/mage/cards/l/LoreholdCommand.java
index 0eb8f24319..c7b6341f61 100644
--- a/Mage.Sets/src/mage/cards/l/LoreholdCommand.java
+++ b/Mage.Sets/src/mage/cards/l/LoreholdCommand.java
@@ -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(
diff --git a/Mage.Sets/src/mage/cards/l/LoreholdExcavation.java b/Mage.Sets/src/mage/cards/l/LoreholdExcavation.java
index 985faf4194..b4c47a1f42 100644
--- a/Mage.Sets/src/mage/cards/l/LoreholdExcavation.java
+++ b/Mage.Sets/src/mage/cards/l/LoreholdExcavation.java
@@ -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);
diff --git a/Mage.Sets/src/mage/cards/m/MagmaOpus.java b/Mage.Sets/src/mage/cards/m/MagmaOpus.java
index e442a26918..1e21d26eed 100644
--- a/Mage.Sets/src/mage/cards/m/MagmaOpus.java
+++ b/Mage.Sets/src/mage/cards/m/MagmaOpus.java
@@ -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.
diff --git a/Mage.Sets/src/mage/cards/m/MakeYourMark.java b/Mage.Sets/src/mage/cards/m/MakeYourMark.java
index 8a4d85a2a4..d6e97b41ff 100644
--- a/Mage.Sets/src/mage/cards/m/MakeYourMark.java
+++ b/Mage.Sets/src/mage/cards/m/MakeYourMark.java
@@ -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);
}
diff --git a/Mage.Sets/src/mage/cards/m/ManifestationSage.java b/Mage.Sets/src/mage/cards/m/ManifestationSage.java
index 93a4fd74fe..fe1f6c9050 100644
--- a/Mage.Sets/src/mage/cards/m/ManifestationSage.java
+++ b/Mage.Sets/src/mage/cards/m/ManifestationSage.java
@@ -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"
)));
diff --git a/Mage.Sets/src/mage/cards/m/MascotExhibition.java b/Mage.Sets/src/mage/cards/m/MascotExhibition.java
index a75f8accba..61582afee5 100644
--- a/Mage.Sets/src/mage/cards/m/MascotExhibition.java
+++ b/Mage.Sets/src/mage/cards/m/MascotExhibition.java
@@ -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"));
}
diff --git a/Mage.Sets/src/mage/cards/m/MultipleChoice.java b/Mage.Sets/src/mage/cards/m/MultipleChoice.java
index 467e4f6bb2..bb75538f47 100644
--- a/Mage.Sets/src/mage/cards/m/MultipleChoice.java
+++ b/Mage.Sets/src/mage/cards/m/MultipleChoice.java
@@ -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;
diff --git a/Mage.Sets/src/mage/cards/o/Oversimplify.java b/Mage.Sets/src/mage/cards/o/Oversimplify.java
index e4a8f6625c..0c4c2a03ee 100644
--- a/Mage.Sets/src/mage/cards/o/Oversimplify.java
+++ b/Mage.Sets/src/mage/cards/o/Oversimplify.java
@@ -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()) {
diff --git a/Mage.Sets/src/mage/cards/p/ParadoxZone.java b/Mage.Sets/src/mage/cards/p/ParadoxZone.java
index f763ca33bc..49b1976b14 100644
--- a/Mage.Sets/src/mage/cards/p/ParadoxZone.java
+++ b/Mage.Sets/src/mage/cards/p/ParadoxZone.java
@@ -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"));
diff --git a/Mage.Sets/src/mage/cards/p/PestInfestation.java b/Mage.Sets/src/mage/cards/p/PestInfestation.java
index 7d58c42efd..9e53786cd8 100644
--- a/Mage.Sets/src/mage/cards/p/PestInfestation.java
+++ b/Mage.Sets/src/mage/cards/p/PestInfestation.java
@@ -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);
}
diff --git a/Mage.Sets/src/mage/cards/p/PestSummoning.java b/Mage.Sets/src/mage/cards/p/PestSummoning.java
index 65664350b2..2732bc593d 100644
--- a/Mage.Sets/src/mage/cards/p/PestSummoning.java
+++ b/Mage.Sets/src/mage/cards/p/PestSummoning.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/p/PestilentCauldron.java b/Mage.Sets/src/mage/cards/p/PestilentCauldron.java
index 8b54f08adc..30ae4c1caa 100644
--- a/Mage.Sets/src/mage/cards/p/PestilentCauldron.java
+++ b/Mage.Sets/src/mage/cards/p/PestilentCauldron.java
@@ -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);
diff --git a/Mage.Sets/src/mage/cards/p/ProfessorOfZoomancy.java b/Mage.Sets/src/mage/cards/p/ProfessorOfZoomancy.java
index da4f6e92fc..de51c407ff 100644
--- a/Mage.Sets/src/mage/cards/p/ProfessorOfZoomancy.java
+++ b/Mage.Sets/src/mage/cards/p/ProfessorOfZoomancy.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/q/QuintoriusFieldHistorian.java b/Mage.Sets/src/mage/cards/q/QuintoriusFieldHistorian.java
index 2f1c9c83c6..34620a5cc7 100644
--- a/Mage.Sets/src/mage/cards/q/QuintoriusFieldHistorian.java
+++ b/Mage.Sets/src/mage/cards/q/QuintoriusFieldHistorian.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/r/ReduceToMemory.java b/Mage.Sets/src/mage/cards/r/ReduceToMemory.java
index 443e93b14d..cc3e94bb8e 100644
--- a/Mage.Sets/src/mage/cards/r/ReduceToMemory.java
+++ b/Mage.Sets/src/mage/cards/r/ReduceToMemory.java
@@ -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;
}
}
diff --git a/Mage.Sets/src/mage/cards/r/Resculpt.java b/Mage.Sets/src/mage/cards/r/Resculpt.java
index 0f33a0f57d..c5e735ea93 100644
--- a/Mage.Sets/src/mage/cards/r/Resculpt.java
+++ b/Mage.Sets/src/mage/cards/r/Resculpt.java
@@ -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;
}
}
diff --git a/Mage.Sets/src/mage/cards/r/RowanScholarOfSparks.java b/Mage.Sets/src/mage/cards/r/RowanScholarOfSparks.java
index 3fe3c63832..8d8ff3c1cc 100644
--- a/Mage.Sets/src/mage/cards/r/RowanScholarOfSparks.java
+++ b/Mage.Sets/src/mage/cards/r/RowanScholarOfSparks.java
@@ -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 entry : playerMap.entrySet()) {
- new PrismariToken().putOntoBattlefield(entry.getValue(), game, source, entry.getKey());
+ new Elemental44Token().putOntoBattlefield(entry.getValue(), game, source, entry.getKey());
}
return true;
}
diff --git a/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java b/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java
index 7256fb5efc..ad6c017201 100644
--- a/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java
+++ b/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/s/SequenceEngine.java b/Mage.Sets/src/mage/cards/s/SequenceEngine.java
index 234200fbaa..6a62f1dc4c 100644
--- a/Mage.Sets/src/mage/cards/s/SequenceEngine.java
+++ b/Mage.Sets/src/mage/cards/s/SequenceEngine.java
@@ -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);
diff --git a/Mage.Sets/src/mage/cards/s/SerpentineCurve.java b/Mage.Sets/src/mage/cards/s/SerpentineCurve.java
index 268ae5ecbc..14a8c40c55 100644
--- a/Mage.Sets/src/mage/cards/s/SerpentineCurve.java
+++ b/Mage.Sets/src/mage/cards/s/SerpentineCurve.java
@@ -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"
));
diff --git a/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java b/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java
index 5eb3ea5faf..05d41cf56c 100644
--- a/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java
+++ b/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java
@@ -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"));
diff --git a/Mage.Sets/src/mage/cards/s/SpiritSummoning.java b/Mage.Sets/src/mage/cards/s/SpiritSummoning.java
index 64cf93766d..590b494218 100644
--- a/Mage.Sets/src/mage/cards/s/SpiritSummoning.java
+++ b/Mage.Sets/src/mage/cards/s/SpiritSummoning.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/t/TendThePests.java b/Mage.Sets/src/mage/cards/t/TendThePests.java
index 4aa5477031..266e96064d 100644
--- a/Mage.Sets/src/mage/cards/t/TendThePests.java
+++ b/Mage.Sets/src/mage/cards/t/TendThePests.java
@@ -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"));
}
diff --git a/Mage.Sets/src/mage/cards/u/UmbralJuke.java b/Mage.Sets/src/mage/cards/u/UmbralJuke.java
index 11d53c19d0..79ad8d8012 100644
--- a/Mage.Sets/src/mage/cards/u/UmbralJuke.java
+++ b/Mage.Sets/src/mage/cards/u/UmbralJuke.java
@@ -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) {
diff --git a/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java b/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java
index 1a1007091c..c055c843b1 100644
--- a/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java
+++ b/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java
@@ -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);
diff --git a/Mage.Sets/src/mage/cards/z/ZaffaiThunderConductor.java b/Mage.Sets/src/mage/cards/z/ZaffaiThunderConductor.java
index 3e1e797fbd..45b20aaeba 100644
--- a/Mage.Sets/src/mage/cards/z/ZaffaiThunderConductor.java
+++ b/Mage.Sets/src/mage/cards/z/ZaffaiThunderConductor.java
@@ -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;
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/BloodAvatarToken.java b/Mage/src/main/java/mage/game/permanent/token/BloodAvatarToken.java
index ae42520f57..5a1dac5d30 100644
--- a/Mage/src/main/java/mage/game/permanent/token/BloodAvatarToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/BloodAvatarToken.java
@@ -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) {
diff --git a/Mage/src/main/java/mage/game/permanent/token/PrismariToken.java b/Mage/src/main/java/mage/game/permanent/token/Elemental44Token.java
similarity index 61%
rename from Mage/src/main/java/mage/game/permanent/token/PrismariToken.java
rename to Mage/src/main/java/mage/game/permanent/token/Elemental44Token.java
index 90faca6bc2..a03e1137df 100644
--- a/Mage/src/main/java/mage/game/permanent/token/PrismariToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/Elemental44Token.java
@@ -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);
}
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/QuandrixToken.java b/Mage/src/main/java/mage/game/permanent/token/FractalToken.java
similarity index 89%
rename from Mage/src/main/java/mage/game/permanent/token/QuandrixToken.java
rename to Mage/src/main/java/mage/game/permanent/token/FractalToken.java
index 88a3b218ea..a427e9b1b0 100644
--- a/Mage/src/main/java/mage/game/permanent/token/QuandrixToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/FractalToken.java
@@ -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) {
diff --git a/Mage/src/main/java/mage/game/permanent/token/SilverquillToken.java b/Mage/src/main/java/mage/game/permanent/token/InklingToken.java
similarity index 67%
rename from Mage/src/main/java/mage/game/permanent/token/SilverquillToken.java
rename to Mage/src/main/java/mage/game/permanent/token/InklingToken.java
index 8e653834be..9a86376eed 100644
--- a/Mage/src/main/java/mage/game/permanent/token/SilverquillToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/InklingToken.java
@@ -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);
}
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/WitherbloomToken.java b/Mage/src/main/java/mage/game/permanent/token/Pest11GainLifeToken.java
similarity index 68%
rename from Mage/src/main/java/mage/game/permanent/token/WitherbloomToken.java
rename to Mage/src/main/java/mage/game/permanent/token/Pest11GainLifeToken.java
index 55b88117d6..5724949cff 100644
--- a/Mage/src/main/java/mage/game/permanent/token/WitherbloomToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/Pest11GainLifeToken.java
@@ -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);
}
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/PestToken.java b/Mage/src/main/java/mage/game/permanent/token/PestToken.java
index 2aca577dda..75be33db38 100644
--- a/Mage/src/main/java/mage/game/permanent/token/PestToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/PestToken.java
@@ -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) {
diff --git a/Mage/src/main/java/mage/game/permanent/token/LoreholdToken.java b/Mage/src/main/java/mage/game/permanent/token/Spirit32Token.java
similarity index 62%
rename from Mage/src/main/java/mage/game/permanent/token/LoreholdToken.java
rename to Mage/src/main/java/mage/game/permanent/token/Spirit32Token.java
index 90b354e650..22716ab5f7 100644
--- a/Mage/src/main/java/mage/game/permanent/token/LoreholdToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/Spirit32Token.java
@@ -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);
}
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java
index ea35102dfc..31961b7c5e 100644
--- a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java
@@ -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) {