diff --git a/Mage.Sets/src/mage/sets/bornofthegods/RaisedByWolves.java b/Mage.Sets/src/mage/sets/bornofthegods/RaisedByWolves.java index 9ae5c235150..d0f51973bd3 100644 --- a/Mage.Sets/src/mage/sets/bornofthegods/RaisedByWolves.java +++ b/Mage.Sets/src/mage/sets/bornofthegods/RaisedByWolves.java @@ -28,7 +28,6 @@ package mage.sets.bornofthegods; import java.util.UUID; -import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -47,7 +46,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WolfToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -92,16 +91,3 @@ public class RaisedByWolves extends CardImpl { return new RaisedByWolves(this); } } - -class WolfToken extends Token { - - public WolfToken() { - super("Wolf", "2/2 green Wolf creature token"); - this.setOriginalExpansionSetCode("BNG"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Wolf"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/sets/commander2014/HallowedSpiritkeeper.java b/Mage.Sets/src/mage/sets/commander2014/HallowedSpiritkeeper.java index b052260ed7e..e9fd02c7262 100644 --- a/Mage.Sets/src/mage/sets/commander2014/HallowedSpiritkeeper.java +++ b/Mage.Sets/src/mage/sets/commander2014/HallowedSpiritkeeper.java @@ -39,7 +39,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; import mage.filter.common.FilterCreatureCard; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SpiritWhiteToken; /** * @@ -59,7 +59,7 @@ public class HallowedSpiritkeeper extends CardImpl { this.addAbility(VigilanceAbility.getInstance()); // When Hallowed Spiritkeeper dies, put X 1/1 white Spirit creature tokens with flying onto the battlefield, where X is the number of creature cards in your graveyard. - Effect effect = new CreateTokenEffect(new HallowedSpiritkeeperSpiritToken(), new CardsInControllerGraveyardCount(new FilterCreatureCard("creature cards"))); + Effect effect = new CreateTokenEffect(new SpiritWhiteToken(), new CardsInControllerGraveyardCount(new FilterCreatureCard("creature cards"))); effect.setText("put X 1/1 white Spirit creature tokens with flying onto the battlefield, where X is the number of creature cards in your graveyard"); this.addAbility(new DiesTriggeredAbility(effect, false)); @@ -74,19 +74,3 @@ public class HallowedSpiritkeeper extends CardImpl { return new HallowedSpiritkeeper(this); } } - -class HallowedSpiritkeeperSpiritToken extends Token { - - public HallowedSpiritkeeperSpiritToken() { - super("Spirit", "1/1 white Spirit creature token with flying"); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Spirit"); - power = new MageInt(1); - toughness = new MageInt(1); - - addAbility(FlyingAbility.getInstance()); - - } -} diff --git a/Mage.Sets/src/mage/sets/commander2014/SylvanOffering.java b/Mage.Sets/src/mage/sets/commander2014/SylvanOffering.java index 069978000ba..fab6eea4bed 100644 --- a/Mage.Sets/src/mage/sets/commander2014/SylvanOffering.java +++ b/Mage.Sets/src/mage/sets/commander2014/SylvanOffering.java @@ -41,6 +41,7 @@ import mage.constants.Outcome; import mage.constants.Rarity; import mage.game.Game; import mage.game.permanent.token.SpiritWhiteToken; +import mage.game.permanent.token.ElfToken; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.Target; @@ -149,28 +150,13 @@ class SylvanOfferingEffect2 extends OneShotEffect { Player opponent = game.getPlayer(target.getFirstTarget()); if (opponent != null) { int xValue = source.getManaCostsToPay().getX(); - Effect effect = new CreateTokenTargetEffect(new SylvanOfferingElfWarriorToken(), xValue); + Effect effect = new CreateTokenTargetEffect(new ElfToken(), xValue); effect.setTargetPointer(new FixedTarget(opponent.getId())); effect.apply(game, source); - new CreateTokenEffect(new SylvanOfferingElfWarriorToken(), xValue).apply(game, source); + new CreateTokenEffect(new ElfToken(), xValue).apply(game, source); return true; } } return false; } } - -class SylvanOfferingElfWarriorToken extends Token { - - public SylvanOfferingElfWarriorToken() { - super("Elf Warrior", "1/1 green Elf Warrior creature token"); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - subtype.add("Elf"); - subtype.add("Warrior"); - color.setGreen(true); - power = new MageInt(1); - toughness = new MageInt(1); - - } -} diff --git a/Mage.Sets/src/mage/sets/eventide/PatrolSignaler.java b/Mage.Sets/src/mage/sets/eventide/PatrolSignaler.java index d23a120320f..3f4c9e306f0 100644 --- a/Mage.Sets/src/mage/sets/eventide/PatrolSignaler.java +++ b/Mage.Sets/src/mage/sets/eventide/PatrolSignaler.java @@ -39,7 +39,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.KithkinToken; /** * @@ -57,10 +57,9 @@ public class PatrolSignaler extends CardImpl { this.toughness = new MageInt(1); // {1}{W}, {untap}: Put a 1/1 white Kithkin Soldier creature token onto the battlefield. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new KithkinSoldierToken()), new ManaCostsImpl("{1}{W}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new KithkinToken()), new ManaCostsImpl("{1}{W}")); ability.addCost(new UntapSourceCost()); this.addAbility(ability); - } public PatrolSignaler(final PatrolSignaler card) { @@ -72,17 +71,3 @@ public class PatrolSignaler extends CardImpl { return new PatrolSignaler(this); } } - -class KithkinSoldierToken extends Token { - - public KithkinSoldierToken() { - super("Kithkin Soldier", "1/1 white Kithkin Soldier creature token"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/guildpact/WurmweaverCoil.java b/Mage.Sets/src/mage/sets/guildpact/WurmweaverCoil.java index da5e93aa789..afc106c50d5 100644 --- a/Mage.Sets/src/mage/sets/guildpact/WurmweaverCoil.java +++ b/Mage.Sets/src/mage/sets/guildpact/WurmweaverCoil.java @@ -28,8 +28,6 @@ package mage.sets.guildpact; import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -42,9 +40,14 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WurmToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -71,7 +74,7 @@ public class WurmweaverCoil extends CardImpl { Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(6, 6, Duration.WhileOnBattlefield))); - Ability activatedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WurmweaverCoilToken(), 1), new ManaCostsImpl("{G}{G}{G}")); + Ability activatedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WurmToken(), 1), new ManaCostsImpl("{G}{G}{G}")); activatedAbility.addCost(new SacrificeSourceCost()); this.addAbility(activatedAbility); } @@ -85,14 +88,3 @@ public class WurmweaverCoil extends CardImpl { return new WurmweaverCoil(this); } } - -class WurmweaverCoilToken extends Token { - WurmweaverCoilToken() { - super("Wurm", "6/6 green Wurm creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Wurm"); - power = new MageInt(6); - toughness = new MageInt(6); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/magicorigins/GideonsPhalanx.java b/Mage.Sets/src/mage/sets/magicorigins/GideonsPhalanx.java index 58afd8bc82e..d091b330b4e 100644 --- a/Mage.Sets/src/mage/sets/magicorigins/GideonsPhalanx.java +++ b/Mage.Sets/src/mage/sets/magicorigins/GideonsPhalanx.java @@ -28,7 +28,6 @@ package mage.sets.magicorigins; import java.util.UUID; -import mage.MageInt; import mage.ObjectColor; import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -37,13 +36,12 @@ import mage.abilities.effects.common.AddContinuousEffectToGame; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.IndestructibleAbility; -import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; import mage.filter.common.FilterControlledCreaturePermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.KnightToken; /** * @@ -56,7 +54,7 @@ public class GideonsPhalanx extends CardImpl { this.expansionSetCode = "ORI"; // Put four 2/2 white Knight creature tokens with vigilance onto the battlefield. - this.getSpellAbility().addEffect(new CreateTokenEffect(new GideonsPhalanxKnightToken(), 4)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new KnightToken(), 4)); // Spell mastery - If there are two or more instant and/or sorcery cards in your graveyard, creatures you control gain indestructible until end of turn. Effect effect = new ConditionalOneShotEffect( @@ -75,17 +73,3 @@ public class GideonsPhalanx extends CardImpl { return new GideonsPhalanx(this); } } - -class GideonsPhalanxKnightToken extends Token { - - public GideonsPhalanxKnightToken() { - super("Knight", "2/2 white Knight creature tokens with vigilance"); - this.setOriginalExpansionSetCode("ORI"); - cardType.add(CardType.CREATURE); - color.setColor(ObjectColor.WHITE); - subtype.add("Knight"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(VigilanceAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/sets/magicorigins/ThopterEngineer.java b/Mage.Sets/src/mage/sets/magicorigins/ThopterEngineer.java index dd0a4a1c202..a0cd37ed550 100644 --- a/Mage.Sets/src/mage/sets/magicorigins/ThopterEngineer.java +++ b/Mage.Sets/src/mage/sets/magicorigins/ThopterEngineer.java @@ -42,7 +42,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ThopterColorlessToken; /** * @@ -55,7 +55,7 @@ public class ThopterEngineer extends CardImpl { static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); } - + public ThopterEngineer(UUID ownerId) { super(ownerId, 165, "Thopter Engineer", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.expansionSetCode = "ORI"; @@ -65,8 +65,8 @@ public class ThopterEngineer extends CardImpl { this.toughness = new MageInt(3); // When Thopter Engineer enters the battlefield, put a 1/1 colorless Thopter artifact creature token with flying onto the battlefield. - this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ThopterEngineerThopterToken(), 1))); - + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ThopterColorlessToken(), 1))); + // Artifact creatures you control have haste. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, filter, false))); } @@ -80,15 +80,3 @@ public class ThopterEngineer extends CardImpl { return new ThopterEngineer(this); } } - -class ThopterEngineerThopterToken extends Token { - ThopterEngineerThopterToken() { - super("Thopter", "a 1/1 colorless Thopter artifact creature token with flying"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - subtype.add("Thopter"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/sets/onslaught/CentaurGlade.java b/Mage.Sets/src/mage/sets/onslaught/CentaurGlade.java index 75c0807d8d2..83937e00c64 100644 --- a/Mage.Sets/src/mage/sets/onslaught/CentaurGlade.java +++ b/Mage.Sets/src/mage/sets/onslaught/CentaurGlade.java @@ -28,7 +28,6 @@ package mage.sets.onslaught; import java.util.UUID; -import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,7 +35,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CentaurToken; /** * @@ -61,14 +60,3 @@ public class CentaurGlade extends CardImpl { return new CentaurGlade(this); } } - -class CentaurToken extends Token { - CentaurToken() { - super("Centaur", "3/3 green Centaur creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Centaur"); - power = new MageInt(3); - toughness = new MageInt(3); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/returntoravnica/CentaursHerald.java b/Mage.Sets/src/mage/sets/returntoravnica/CentaursHerald.java index 92c32cd12fa..6d3819d0672 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/CentaursHerald.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/CentaursHerald.java @@ -29,8 +29,6 @@ package mage.sets.returntoravnica; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,8 +37,10 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CentaurToken; /** * @@ -58,7 +58,7 @@ public class CentaursHerald extends CardImpl { this.toughness = new MageInt(1); // {2}{G}, Sacrifice Centaur's Herald: Put a 3/3 green Centaur creature token onto the battlefield. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CentaursHeraldToken()), new ManaCostsImpl("{2}{G}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CentaurToken()), new ManaCostsImpl("{2}{G}")); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); } @@ -71,16 +71,4 @@ public class CentaursHerald extends CardImpl { public CentaursHerald copy() { return new CentaursHerald(this); } - - private class CentaursHeraldToken extends Token { - - public CentaursHeraldToken() { - super("Centaur", "3/3 green Centaur creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Centaur"); - power = new MageInt(3); - toughness = new MageInt(3); - } - } } diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/CarrionCall.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/CarrionCall.java index 6e230d5b0a5..230f49814f1 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/CarrionCall.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/CarrionCall.java @@ -29,13 +29,12 @@ package mage.sets.scarsofmirrodin; import java.util.UUID; -import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.InsectInfectToken; /** * @@ -48,7 +47,7 @@ public class CarrionCall extends CardImpl { this.expansionSetCode = "SOM"; // Put two 1/1 green Insect creature tokens with infect onto the battlefield. (They deal damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) - this.getSpellAbility().addEffect(new CreateTokenEffect(new CarrionCallInsectToken(), 2)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new InsectInfectToken(), 2)); } public CarrionCall (final CarrionCall card) { @@ -60,19 +59,3 @@ public class CarrionCall extends CardImpl { return new CarrionCall(this); } } - -class CarrionCallInsectToken extends Token { - - public CarrionCallInsectToken() { - super("Insect", "1/1 green Insect creature tokens with infect"); - setOriginalExpansionSetCode("SOM"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Insect"); - power = new MageInt(1); - toughness = new MageInt(1); - - addAbility(InfectAbility.getInstance()); - } -} - diff --git a/Mage.Sets/src/mage/sets/theros/AkroanHorse.java b/Mage.Sets/src/mage/sets/theros/AkroanHorse.java index 014fb58c23a..702daa268df 100644 --- a/Mage.Sets/src/mage/sets/theros/AkroanHorse.java +++ b/Mage.Sets/src/mage/sets/theros/AkroanHorse.java @@ -49,6 +49,7 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.game.permanent.token.SoldierToken; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.Target; @@ -175,23 +176,9 @@ class AkroanHorseCreateTokenEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { for (UUID opponentId: game.getOpponents(source.getControllerId())) { - Token token = new AkroanHorseSoldierToken(); + Token token = new SoldierToken(); token.putOntoBattlefield(1, game, source.getSourceId(), opponentId); } return true; } } - -class AkroanHorseSoldierToken extends Token { - - public AkroanHorseSoldierToken() { - super("Soldier", "1/1 white Soldier creature token"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/theros/EvangelOfHeliod.java b/Mage.Sets/src/mage/sets/theros/EvangelOfHeliod.java index 21614846b7b..81b53460c64 100644 --- a/Mage.Sets/src/mage/sets/theros/EvangelOfHeliod.java +++ b/Mage.Sets/src/mage/sets/theros/EvangelOfHeliod.java @@ -37,7 +37,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Rarity; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SoldierToken; /** * @@ -55,7 +55,7 @@ public class EvangelOfHeliod extends CardImpl { this.toughness = new MageInt(3); // When Evangel of Heliod enters the battlefield, put a number of 1/1 white Soldier creature tokens onto the battlefield equal to your devotion to white. - this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new EvangelOfHeliodSoldierToken(), new DevotionCount(ColoredManaSymbol.W)))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SoldierToken(), new DevotionCount(ColoredManaSymbol.W)))); } public EvangelOfHeliod(final EvangelOfHeliod card) { @@ -67,17 +67,3 @@ public class EvangelOfHeliod extends CardImpl { return new EvangelOfHeliod(this); } } - -class EvangelOfHeliodSoldierToken extends Token { - - public EvangelOfHeliodSoldierToken() { - super("Soldier", "1/1 white Soldier creature tokens"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - } - -} diff --git a/Mage.Sets/src/mage/sets/timespiral/SarpadianEmpiresVolVii.java b/Mage.Sets/src/mage/sets/timespiral/SarpadianEmpiresVolVii.java index 406595d7c1e..8b3f154f19d 100644 --- a/Mage.Sets/src/mage/sets/timespiral/SarpadianEmpiresVolVii.java +++ b/Mage.Sets/src/mage/sets/timespiral/SarpadianEmpiresVolVii.java @@ -43,6 +43,7 @@ import mage.constants.Outcome; import mage.constants.Rarity; import mage.constants.Zone; import mage.game.Game; +import mage.game.permanent.token.CitizenToken; import mage.game.permanent.token.GoblinToken; import mage.game.permanent.token.SaprolingToken; import mage.game.permanent.token.Token; @@ -154,17 +155,6 @@ class CreateSelectedTokenEffect extends OneShotEffect { } } -class CitizenToken extends Token { - public CitizenToken() { - super("Citizen", "1/1 white Citizen creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Citizen"); - color.setWhite(true); - power = new MageInt(1); - toughness = new MageInt(1); - } -} - class CamaridToken extends Token { public CamaridToken() { super("Camarid", "1/1 blue Camarid creature token"); diff --git a/Mage.Sets/src/mage/sets/urzassaga/GoblinOffensive.java b/Mage.Sets/src/mage/sets/urzassaga/GoblinOffensive.java index 4d11aa29eec..a9937de242e 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/GoblinOffensive.java +++ b/Mage.Sets/src/mage/sets/urzassaga/GoblinOffensive.java @@ -28,13 +28,12 @@ package mage.sets.urzassaga; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageInt; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.GoblinToken; /** * @@ -46,7 +45,6 @@ public class GoblinOffensive extends CardImpl { super(ownerId, 192, "Goblin Offensive", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{X}{1}{R}{R}"); this.expansionSetCode = "USG"; - // Put X 1/1 red Goblin creature tokens onto the battlefield. this.getSpellAbility().addEffect(new CreateTokenEffect(new GoblinToken(), new ManacostVariableValue())); } @@ -60,14 +58,3 @@ public class GoblinOffensive extends CardImpl { return new GoblinOffensive(this); } } - -class GoblinToken extends Token { - public GoblinToken() { - super("Goblin", "1/1 red Goblin creature token"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Goblin"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/vintagemasters/ThopterSquadron.java b/Mage.Sets/src/mage/sets/vintagemasters/ThopterSquadron.java index c5748f4dcc3..24ec01d3920 100644 --- a/Mage.Sets/src/mage/sets/vintagemasters/ThopterSquadron.java +++ b/Mage.Sets/src/mage/sets/vintagemasters/ThopterSquadron.java @@ -48,7 +48,7 @@ import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ThopterColorlessToken; import mage.target.common.TargetControlledPermanent; /** @@ -56,14 +56,14 @@ import mage.target.common.TargetControlledPermanent; * @author LevelX2 */ public class ThopterSquadron extends CardImpl { - + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Thopter"); - + static { filter.add(new AnotherPredicate()); filter.add(new SubtypePredicate("Thopter")); } - + public ThopterSquadron(UUID ownerId) { super(ownerId, 286, "Thopter Squadron", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}"); this.expansionSetCode = "VMA"; @@ -75,16 +75,16 @@ public class ThopterSquadron extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Thopter Squadron enters the battlefield with three +1/+1 counters on it. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), "with three +1/+1 counters on it")); - + // {1}, Remove a +1/+1 counter from Thopter Squadron: Put a 1/1 colorless Thopter artifact creature token with flying onto the battlefield. Activate this ability only any time you could cast a sorcery. - Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ThopterSquadronThopterToken(), 1), new GenericManaCost(1)); + Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ThopterColorlessToken(), 1), new GenericManaCost(1)); firstAbility.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); this.addAbility(firstAbility); - + // {1}, Sacrifice another Thopter: Put a +1/+1 counter on Thopter Squadron. Activate this ability only any time you could cast a sorcery. Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(), true), new ManaCostsImpl("{1}")); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); - + } public ThopterSquadron(final ThopterSquadron card) { @@ -96,16 +96,3 @@ public class ThopterSquadron extends CardImpl { return new ThopterSquadron(this); } } - -class ThopterSquadronThopterToken extends Token { - public ThopterSquadronThopterToken() { - super("Thopter", "1/1 colorless Thopter artifact creature token with flying"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Thopter"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } - -} \ No newline at end of file