diff --git a/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java b/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java index 823dc3b0f4..2a68d0b34a 100644 --- a/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java +++ b/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java @@ -27,6 +27,7 @@ */ package mage.cards.a; +import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.AttacksWithCreaturesTriggeredAbility; @@ -36,7 +37,6 @@ import mage.abilities.effects.common.CastSourceTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.UntapAllControllerEffect; -import mage.abilities.keyword.SpaceflightAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -47,9 +47,7 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.events.GameEvent; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.RebelStarshipToken; /** * @@ -64,7 +62,7 @@ public class AdmiralAckbar extends CardImpl { } public AdmiralAckbar(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Calamari"); this.subtype.add("Rebel"); @@ -91,20 +89,6 @@ public class AdmiralAckbar extends CardImpl { } } -class RebelStarshipToken extends Token { - - public RebelStarshipToken() { - super("B-Wing", "2/3 blue Rebel Starship artifact creature tokens with spaceflight name B-Wing", 2, 3); - this.setOriginalExpansionSetCode("SWS"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - abilities.add(SpaceflightAbility.getInstance()); - color.setBlue(true); - subtype.add("Rebel"); - subtype.add("Starship"); - } -} - class AdmiralAckbarTriggeredAbility extends TriggeredAbilityImpl { public AdmiralAckbarTriggeredAbility(Effect effect) { @@ -132,6 +116,6 @@ class AdmiralAckbarTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever two or more Starship creatures you control attack, draw a card" ; + return "Whenever two or more Starship creatures you control attack, draw a card"; } } diff --git a/Mage.Sets/src/mage/cards/a/AerieWorshippers.java b/Mage.Sets/src/mage/cards/a/AerieWorshippers.java index 54f1123d2f..c530c43095 100644 --- a/Mage.Sets/src/mage/cards/a/AerieWorshippers.java +++ b/Mage.Sets/src/mage/cards/a/AerieWorshippers.java @@ -27,18 +27,16 @@ */ package mage.cards.a; +import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.InspiredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.AerieWorshippersBirdToken; /** * @@ -47,7 +45,7 @@ import java.util.UUID; public class AerieWorshippers extends CardImpl { public AerieWorshippers(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); this.subtype.add("Human"); this.subtype.add("Cleric"); @@ -67,19 +65,3 @@ public class AerieWorshippers extends CardImpl { return new AerieWorshippers(this); } } - -class AerieWorshippersBirdToken extends Token { - - public AerieWorshippersBirdToken() { - super("Bird", "2/2 blue Bird enchantment creature token with flying"); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Bird"); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(FlyingAbility.getInstance()); - this.setOriginalExpansionSetCode("BNG"); - this.setTokenType(2); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java b/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java index 9b488d0db6..2cad7a0181 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java +++ b/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java @@ -27,6 +27,7 @@ */ package mage.cards.a; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; @@ -34,16 +35,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.keyword.HasteAbility; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.AkoumStonewakerElementalToken; /** * @@ -92,28 +89,12 @@ class AkoumStonewakerEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - + CreateTokenEffect effect = new CreateTokenEffect(new AkoumStonewakerElementalToken()); - if(effect.apply(game, source)) { - effect.exileTokensCreatedAtNextEndStep(game, source); + if (effect.apply(game, source)) { + effect.exileTokensCreatedAtNextEndStep(game, source); return true; } return false; } } - -class AkoumStonewakerElementalToken extends Token { - - public AkoumStonewakerElementalToken() { - super("Elemental", "3/1 red Elemental creature token with trample and haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(3); - toughness = new MageInt(1); - this.addAbility(TrampleAbility.getInstance()); - this.addAbility(HasteAbility.getInstance()); - this.setOriginalExpansionSetCode("BFZ"); - this.setTokenType(1); - } -} diff --git a/Mage.Sets/src/mage/cards/a/AkroanCrusader.java b/Mage.Sets/src/mage/cards/a/AkroanCrusader.java index 7cde81a3e3..c885edcf08 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanCrusader.java +++ b/Mage.Sets/src/mage/cards/a/AkroanCrusader.java @@ -27,16 +27,14 @@ */ package mage.cards.a; +import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.HeroicAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.AkroanSoldierToken; /** * @@ -45,7 +43,7 @@ import java.util.UUID; public class AkroanCrusader extends CardImpl { public AkroanCrusader(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); this.subtype.add("Human"); this.subtype.add("Soldier"); @@ -53,7 +51,7 @@ public class AkroanCrusader extends CardImpl { this.toughness = new MageInt(1); // Heroic Whenever you cast a spell that targets Akroan Crusader, create a 1/1 red Soldier creature token with haste. - this.addAbility(new HeroicAbility(new CreateTokenEffect(new SoldierToken()))); + this.addAbility(new HeroicAbility(new CreateTokenEffect(new AkroanSoldierToken()))); } public AkroanCrusader(final AkroanCrusader card) { @@ -65,19 +63,3 @@ public class AkroanCrusader extends CardImpl { return new AkroanCrusader(this); } } - - -class SoldierToken extends Token { - - public SoldierToken() { - super("Soldier", "1/1 red Soldier creature token with haste"); - setTokenType(3); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(HasteAbility.getInstance()); - } - -} diff --git a/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java b/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java index 721b99c158..10d3747032 100644 --- a/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java +++ b/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java @@ -27,14 +27,12 @@ */ package mage.cards.a; -import mage.MageInt; +import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.KnightAllyToken; /** * @@ -43,7 +41,7 @@ import java.util.UUID; public class AlliedReinforcements extends CardImpl { public AlliedReinforcements(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}"); // Create two 2/2 white Knight Ally creature tokens. this.getSpellAbility().addEffect(new CreateTokenEffect(new KnightAllyToken(), 2)); @@ -58,17 +56,3 @@ public class AlliedReinforcements extends CardImpl { return new AlliedReinforcements(this); } } - -class KnightAllyToken extends Token { - - public KnightAllyToken() { - super("Knight Ally", "2/2 white Knight Ally creature token"); - this.setExpansionSetCodeForImage("BFZ"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Knight"); - subtype.add("Ally"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java b/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java index 1e1011249e..1115c656ef 100644 --- a/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java +++ b/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java @@ -27,6 +27,7 @@ */ package mage.cards.a; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +39,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.ArchitectOfTheUntamedBeastToken; /** * @@ -49,7 +48,7 @@ import java.util.UUID; public class ArchitectOfTheUntamed extends CardImpl { public ArchitectOfTheUntamed(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); this.subtype.add("Elf"); this.subtype.add("Artificer"); this.subtype.add("Druid"); @@ -62,7 +61,7 @@ public class ArchitectOfTheUntamed extends CardImpl { // Pay {E}{E}{E}{E}{E}{E}{E}{E}: Create a 6/6 colorless Beast artifact creature token. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ArchitectOfTheUntamedBeastToken(), 1), new PayEnergyCost(8))); } - + public ArchitectOfTheUntamed(final ArchitectOfTheUntamed card) { super(card); } @@ -72,15 +71,3 @@ public class ArchitectOfTheUntamed extends CardImpl { return new ArchitectOfTheUntamed(this); } } - -class ArchitectOfTheUntamedBeastToken extends Token { - - ArchitectOfTheUntamedBeastToken() { - super("Beast", "6/6 colorless Beast artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Beast"); - power = new MageInt(6); - toughness = new MageInt(6); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BalduvianDead.java b/Mage.Sets/src/mage/cards/b/BalduvianDead.java index e6bb072ed4..48eef9554c 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianDead.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianDead.java @@ -27,6 +27,7 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -37,7 +38,6 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.SacrificeTargetEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -46,12 +46,10 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.BalduvianToken; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; -import java.util.UUID; - /** * * @author jeffwadsworth @@ -59,7 +57,7 @@ import java.util.UUID; public class BalduvianDead extends CardImpl { public BalduvianDead(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); this.subtype.add("Zombie"); this.power = new MageInt(2); this.toughness = new MageInt(3); @@ -114,17 +112,3 @@ class BalduvianDeadEffect extends OneShotEffect { return true; } } - -class BalduvianToken extends Token { - - public BalduvianToken() { - super("Graveborn", "3/1 black and red Graveborn creature token with haste"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - color.setRed(true); - power = new MageInt(3); - toughness = new MageInt(1); - subtype.add("Graveborn"); - addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BanthaHerd.java b/Mage.Sets/src/mage/cards/b/BanthaHerd.java index 4c994d8d7c..08d0ca4985 100644 --- a/Mage.Sets/src/mage/cards/b/BanthaHerd.java +++ b/Mage.Sets/src/mage/cards/b/BanthaHerd.java @@ -27,6 +27,7 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; @@ -38,11 +39,9 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TuskenRaiderToken; import mage.players.Player; -import java.util.UUID; - /** * * @author Styxo @@ -98,15 +97,3 @@ class BathaHerdEffect extends OneShotEffect { return false; } } - -class TuskenRaiderToken extends Token { - - public TuskenRaiderToken() { - super("Tusken Raider", "white Tusken Raider creature token", 1, 1); - this.setOriginalExpansionSetCode("SWS"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Tusken"); - subtype.add("Raider"); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java b/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java index 2deff0a3b5..44adad6d64 100644 --- a/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java +++ b/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java @@ -27,6 +27,7 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -47,10 +48,9 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; +import mage.game.permanent.token.BaruFistOfKrosaToken; import mage.game.permanent.token.Token; -import java.util.UUID; - /** * * @author emerald000 @@ -120,15 +120,3 @@ class BaruFistOfKrosaEffect extends OneShotEffect { return true; } } - -class BaruFistOfKrosaToken extends Token { - - BaruFistOfKrosaToken(int xValue) { - super("Wurm", "X/X green Wurm creature token, where X is the number of lands you control"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Wurm"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BearsCompanion.java b/Mage.Sets/src/mage/cards/b/BearsCompanion.java index 1ce849891d..3498916c01 100644 --- a/Mage.Sets/src/mage/cards/b/BearsCompanion.java +++ b/Mage.Sets/src/mage/cards/b/BearsCompanion.java @@ -27,15 +27,14 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.BearsCompanionBearToken; /** * @@ -44,7 +43,7 @@ import java.util.UUID; public class BearsCompanion extends CardImpl { public BearsCompanion(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{U}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{U}{R}"); this.subtype.add("Human"); this.subtype.add("Warrior"); @@ -64,16 +63,3 @@ public class BearsCompanion extends CardImpl { return new BearsCompanion(this); } } -class BearsCompanionBearToken extends Token { - - public BearsCompanionBearToken() { - super("Bear", "4/4 green Bear creature token"); - setOriginalExpansionSetCode("KTK"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Bear"); - power = new MageInt(4); - toughness = new MageInt(4); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/b/BeckonApparition.java b/Mage.Sets/src/mage/cards/b/BeckonApparition.java index fbb7975f9d..bea453e9cd 100644 --- a/Mage.Sets/src/mage/cards/b/BeckonApparition.java +++ b/Mage.Sets/src/mage/cards/b/BeckonApparition.java @@ -27,26 +27,22 @@ */ package mage.cards.b; -import mage.MageInt; +import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ExileTargetEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.BeckonApparitionToken; import mage.target.common.TargetCardInGraveyard; -import java.util.UUID; - /** * @author Loki */ public class BeckonApparition extends CardImpl { public BeckonApparition(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W/B}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W/B}"); this.getSpellAbility().addEffect(new ExileTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInGraveyard()); @@ -62,18 +58,3 @@ public class BeckonApparition extends CardImpl { return new BeckonApparition(this); } } - - -class BeckonApparitionToken extends Token { - BeckonApparitionToken() { - super("Spirit", "1/1 white and black Spirit creature token with flying"); - this.setOriginalExpansionSetCode("GTC"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - color.setBlack(true); - subtype.add("Spirit"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java b/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java index dff74ced11..ba7c64371c 100644 --- a/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java +++ b/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java @@ -27,9 +27,9 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -43,12 +43,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.l.LordOfLineage; import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.VampireToken; /** * @@ -94,15 +93,3 @@ public class BloodlineKeeper extends CardImpl { } } - -class VampireToken extends Token { - VampireToken() { - super("Vampire", "2/2 black Vampire creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Vampire"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BorisDevilboon.java b/Mage.Sets/src/mage/cards/b/BorisDevilboon.java index 9fdfab72a2..048b7e6bbb 100644 --- a/Mage.Sets/src/mage/cards/b/BorisDevilboon.java +++ b/Mage.Sets/src/mage/cards/b/BorisDevilboon.java @@ -27,6 +27,7 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +39,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SuperType; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.MinorDemonToken; /** * @@ -71,16 +70,3 @@ public class BorisDevilboon extends CardImpl { return new BorisDevilboon(this); } } - -class MinorDemonToken extends Token { - - public MinorDemonToken() { - super("Minor Demon", "1/1 black and red Demon creature token named Minor Demon"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - color.setRed(true); - subtype.add("Demon"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java b/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java index a702d13947..5f2386afbd 100644 --- a/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java +++ b/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java @@ -27,24 +27,21 @@ */ package mage.cards.b; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.DjinnToken; import mage.players.Player; -import java.util.UUID; - /** * * @author KholdFuzion @@ -52,7 +49,7 @@ import java.util.UUID; public class BottleOfSuleiman extends CardImpl { public BottleOfSuleiman(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); // {1}, Sacrifice Bottle of Suleiman: Flip a coin. If you lose the flip, Bottle of Suleiman deals 5 damage to you. If you win the flip, create a 5/5 colorless Djinn artifact creature token with flying. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BottleOfSuleimanEffect(), new GenericManaCost(1)); @@ -103,16 +100,3 @@ class BottleOfSuleimanEffect extends OneShotEffect { return false; } } - -class DjinnToken extends Token { - - public DjinnToken() { - super("Djinn", "5/5 colorless Djinn artifact creature token with flying"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Djinn"); - power = new MageInt(5); - toughness = new MageInt(5); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BreedingPit.java b/Mage.Sets/src/mage/cards/b/BreedingPit.java index d8c9a98731..33f3a6b9c4 100644 --- a/Mage.Sets/src/mage/cards/b/BreedingPit.java +++ b/Mage.Sets/src/mage/cards/b/BreedingPit.java @@ -27,7 +27,7 @@ */ package mage.cards.b; -import mage.MageInt; +import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,9 +38,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.ThrullToken; /** * @@ -49,12 +47,11 @@ import java.util.UUID; public class BreedingPit extends CardImpl { public BreedingPit(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}"); - + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}"); // At the beginning of your upkeep, sacrifice Breeding Pit unless you pay {B}{B}. this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{B}{B}")), TargetController.YOU, false)); - + // At the beginning of your end step, create a 0/1 black Thrull creature token. this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new CreateTokenEffect(new ThrullToken()), false)); } @@ -68,15 +65,3 @@ public class BreedingPit extends CardImpl { return new BreedingPit(this); } } - -class ThrullToken extends Token { - - ThrullToken() { - super("Thrull", "0/1 black Thrull creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Thrull"); - power = new MageInt(0); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java b/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java index b581ca9f34..86df708bfc 100644 --- a/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java +++ b/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java @@ -27,6 +27,7 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -38,7 +39,6 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -46,13 +46,11 @@ import mage.constants.Duration; import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ThopterToken; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author fireshoes @@ -100,17 +98,3 @@ public class BreyaEtheriumShaper extends CardImpl { return new BreyaEtheriumShaper(this); } } - -class ThopterToken extends Token { - - ThopterToken() { - super("Thopter", "1/1 blue Thopter artifact creature tokens with flying"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - color.setBlue(true); - subtype.add("Thopter"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/b/BrindleShoat.java b/Mage.Sets/src/mage/cards/b/BrindleShoat.java index de484a9013..34fb347ba8 100644 --- a/Mage.Sets/src/mage/cards/b/BrindleShoat.java +++ b/Mage.Sets/src/mage/cards/b/BrindleShoat.java @@ -27,15 +27,14 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.BoarToken; /** * @@ -44,7 +43,7 @@ import java.util.UUID; public class BrindleShoat extends CardImpl { public BrindleShoat(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); this.subtype.add("Boar"); this.power = new MageInt(1); @@ -63,14 +62,3 @@ public class BrindleShoat extends CardImpl { return new BrindleShoat(this); } } - -class BoarToken extends Token { - BoarToken() { - super("Boar", "3/3 green Boar creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Boar"); - power = new MageInt(3); - toughness = new MageInt(3); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/b/BroodKeeper.java b/Mage.Sets/src/mage/cards/b/BroodKeeper.java index 8b06fe15e7..975debc06d 100644 --- a/Mage.Sets/src/mage/cards/b/BroodKeeper.java +++ b/Mage.Sets/src/mage/cards/b/BroodKeeper.java @@ -27,22 +27,15 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.AuraAttachedTriggeredAbility; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.continuous.BoostSourceEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.BroodKeeperDragonToken; /** * @@ -51,7 +44,7 @@ import java.util.UUID; public class BroodKeeper extends CardImpl { public BroodKeeper(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add("Human"); this.subtype.add("Shaman"); @@ -74,19 +67,3 @@ public class BroodKeeper extends CardImpl { return new BroodKeeper(this); } } - -class BroodKeeperDragonToken extends Token { - - public BroodKeeperDragonToken() { - super("Dragon", "2/2 red Dragon creature token with flying. It has \"{R}: This creature gets +1/+0 until end of turn.\""); - this.setOriginalExpansionSetCode("M15"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Dragon"); - power = new MageInt(2); - toughness = new MageInt(2); - - this.addAbility(FlyingAbility.getInstance()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"))); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BudokaGardener.java b/Mage.Sets/src/mage/cards/b/BudokaGardener.java index b9e52bd819..e662803602 100644 --- a/Mage.Sets/src/mage/cards/b/BudokaGardener.java +++ b/Mage.Sets/src/mage/cards/b/BudokaGardener.java @@ -27,30 +27,26 @@ */ package mage.cards.b; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.FlipSourceEffect; import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; -import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; +import mage.game.permanent.token.DokaiWeaverofLifeToken; import mage.game.permanent.token.Token; import mage.players.Player; -import java.util.UUID; - /** * @author Loki */ @@ -85,6 +81,8 @@ public class BudokaGardener extends CardImpl { class BudokaGardenerEffect extends OneShotEffect { + final static FilterControlledPermanent filterLands = new FilterControlledLandPermanent("lands you control"); + BudokaGardenerEffect() { super(Outcome.PutLandInPlay); staticText = "If you control ten or more lands, flip {this}"; @@ -98,7 +96,7 @@ class BudokaGardenerEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (game.getBattlefield().count(DokaiWeaverofLifeToken.filterLands, source.getSourceId(), source.getControllerId(), game) >= 10) { + if (game.getBattlefield().count(filterLands, source.getSourceId(), source.getControllerId(), game) >= 10) { new FlipSourceEffect(new DokaiWeaverofLife()).apply(game, source); } return true; @@ -131,19 +129,3 @@ class DokaiWeaverofLife extends Token { this.addAbility(ability); } } - -class DokaiWeaverofLifeToken extends Token { - - final static FilterControlledPermanent filterLands = new FilterControlledLandPermanent("lands you control"); - - DokaiWeaverofLifeToken() { - super("Elemental", "X/X green Elemental creature token, where X is the number of lands you control"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Elemental"); - power = new MageInt(0); - toughness = new MageInt(0); - DynamicValue controlledLands = new PermanentsOnBattlefieldCount(filterLands); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(controlledLands, controlledLands, Duration.WhileOnBattlefield))); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java b/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java index 23bc3d53fc..0ceaa713dc 100644 --- a/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java +++ b/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java @@ -27,16 +27,13 @@ */ package mage.cards.c; -import mage.MageInt; +import java.util.UUID; import mage.abilities.effects.common.CipherEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.NightwingHorrorToken; /** * @@ -45,11 +42,10 @@ import java.util.UUID; public class CallOfTheNightwing extends CardImpl { public CallOfTheNightwing(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{U}{B}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}{B}"); // Create a 1/1 blue and black Horror creature token with flying. - this.getSpellAbility().addEffect(new CreateTokenEffect(new NightwingHorrorToken(),1)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new NightwingHorrorToken(), 1)); // Cipher (Then you may exile this spell card encoded on a creature you control. Whenever that creature deals combat damage to a player, its controller may cast a copy of the encoded card without paying its mana cost.) this.getSpellAbility().addEffect(new CipherEffect()); @@ -65,18 +61,3 @@ public class CallOfTheNightwing extends CardImpl { return new CallOfTheNightwing(this); } } - -class NightwingHorrorToken extends Token { - NightwingHorrorToken() { - super("Horror", "1/1 blue and black Horror creature token with flying"); - cardType.add(CardType.CREATURE); - this.color.setBlue(true); - this.color.setBlack(true); - this.subtype.add("Horror"); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // Flying - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java b/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java index a6ff59ccba..cfe922e21b 100644 --- a/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java +++ b/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java @@ -27,16 +27,13 @@ */ package mage.cards.c; -import mage.MageInt; +import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.RetraceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.CallTheSkyBreakerElementalToken; /** * @@ -48,7 +45,7 @@ public class CallTheSkybreaker extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{U/R}{U/R}"); // Create a 5/5 blue and red Elemental creature token with flying. - this.getSpellAbility().addEffect(new CreateTokenEffect(new ElementalToken())); + this.getSpellAbility().addEffect(new CreateTokenEffect(new CallTheSkyBreakerElementalToken())); // Retrace this.addAbility(new RetraceAbility(this)); @@ -65,19 +62,3 @@ public class CallTheSkybreaker extends CardImpl { } } - -class ElementalToken extends Token { - public ElementalToken() { - super("Elemental", "5/5 blue and red Elemental creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - color.setRed(true); - subtype.add("Elemental"); - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("EMA")) { - setTokenType(2); - } - power = new MageInt(5); - toughness = new MageInt(5); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CallowJushi.java b/Mage.Sets/src/mage/cards/c/CallowJushi.java index 79ede1923e..82cb731d50 100644 --- a/Mage.Sets/src/mage/cards/c/CallowJushi.java +++ b/Mage.Sets/src/mage/cards/c/CallowJushi.java @@ -61,7 +61,7 @@ public class CallowJushi extends CardImpl { private static final FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); public CallowJushi(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{U}"); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/c/CaribouRange.java b/Mage.Sets/src/mage/cards/c/CaribouRange.java index b244e38af7..ecd11db88a 100644 --- a/Mage.Sets/src/mage/cards/c/CaribouRange.java +++ b/Mage.Sets/src/mage/cards/c/CaribouRange.java @@ -27,7 +27,7 @@ */ package mage.cards.c; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -50,12 +50,10 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CaribouToken; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; -import java.util.UUID; - /** * * @author LoneFox @@ -99,15 +97,3 @@ public class CaribouRange extends CardImpl { return new CaribouRange(this); } } - -class CaribouToken extends Token { - - public CaribouToken() { - super("Caribou", "0/1 white Caribou creature token"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Caribou"); - power = new MageInt(0); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/c/ChasmSkulker.java b/Mage.Sets/src/mage/cards/c/ChasmSkulker.java index 480b4ccc77..00364e0697 100644 --- a/Mage.Sets/src/mage/cards/c/ChasmSkulker.java +++ b/Mage.Sets/src/mage/cards/c/ChasmSkulker.java @@ -27,6 +27,7 @@ */ package mage.cards.c; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -34,7 +35,6 @@ import mage.abilities.common.DrawCardControllerTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.IslandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -43,11 +43,9 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ChasmSkulkerSquidToken; import mage.players.Player; -import java.util.UUID; - /** * * @author LevelX2 @@ -55,7 +53,7 @@ import java.util.UUID; public class ChasmSkulker extends CardImpl { public ChasmSkulker(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); this.subtype.add("Squid"); this.subtype.add("Horror"); @@ -111,19 +109,3 @@ class ChasmSkulkerEffect extends OneShotEffect { return false; } } - -class ChasmSkulkerSquidToken extends Token { - - public ChasmSkulkerSquidToken() { - super("Squid", "1/1 blue Squid creature token with islandwalk"); - this.setOriginalExpansionSetCode("M15"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Squid"); - power = new MageInt(1); - toughness = new MageInt(1); - - this.addAbility(new IslandwalkAbility()); - } - -} diff --git a/Mage.Sets/src/mage/cards/c/Cloudseeder.java b/Mage.Sets/src/mage/cards/c/Cloudseeder.java index 1f15955224..faf8f4ba4d 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudseeder.java +++ b/Mage.Sets/src/mage/cards/c/Cloudseeder.java @@ -27,9 +27,9 @@ */ package mage.cards.c; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.TapSourceCost; @@ -40,9 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.CloudSpriteToken; /** * @@ -75,19 +73,3 @@ public class Cloudseeder extends CardImpl { return new Cloudseeder(this); } } - -class CloudSpriteToken extends Token { - - public CloudSpriteToken() { - super("Cloud Sprite", "1/1 blue faerie creature token named Cloud Sprite with flying and \"Cloud Sprite can block only creatures with flying.\""); - this.setOriginalExpansionSetCode("FUT"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Faerie"); - power = new MageInt(1); - toughness = new MageInt(1); - - this.addAbility(FlyingAbility.getInstance()); - this.addAbility(new CanBlockOnlyFlyingAbility()); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CoralBarrier.java b/Mage.Sets/src/mage/cards/c/CoralBarrier.java index 5dce0fb742..00fe2e40a8 100644 --- a/Mage.Sets/src/mage/cards/c/CoralBarrier.java +++ b/Mage.Sets/src/mage/cards/c/CoralBarrier.java @@ -27,17 +27,15 @@ */ package mage.cards.c; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.DefenderAbility; -import mage.abilities.keyword.IslandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.CoralBarrierSquidToken; /** * @@ -46,7 +44,7 @@ import java.util.UUID; public class CoralBarrier extends CardImpl { public CoralBarrier(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); this.subtype.add("Wall"); this.power = new MageInt(1); @@ -56,7 +54,7 @@ public class CoralBarrier extends CardImpl { this.addAbility(DefenderAbility.getInstance()); // When Coral Barrier enters the battlefield, create a 1/1 blue Squid creature token with islandwalk. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new CoralBarrierSquidToken()), false)); - + } public CoralBarrier(final CoralBarrier card) { @@ -68,19 +66,3 @@ public class CoralBarrier extends CardImpl { return new CoralBarrier(this); } } - -class CoralBarrierSquidToken extends Token { - - public CoralBarrierSquidToken() { - super("Squid", "1/1 blue Squid creature token with islandwalk"); - this.setOriginalExpansionSetCode("M15"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Squid"); - power = new MageInt(1); - toughness = new MageInt(1); - - this.addAbility(new IslandwalkAbility()); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/c/Corpseweft.java b/Mage.Sets/src/mage/cards/c/Corpseweft.java index 67b002e714..9b8c821d1a 100644 --- a/Mage.Sets/src/mage/cards/c/Corpseweft.java +++ b/Mage.Sets/src/mage/cards/c/Corpseweft.java @@ -27,7 +27,7 @@ */ package mage.cards.c; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -42,12 +42,10 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CorpseweftZombieToken; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; -import java.util.UUID; - /** * * @author LevelX2 @@ -107,16 +105,3 @@ class CorpseweftEffect extends OneShotEffect { return false; } } - -class CorpseweftZombieToken extends Token { - - public CorpseweftZombieToken(int power, int toughness) { - super("Zombie Horror", "X/X black Zombie Horror creature token, where X is twice the number of cards exiled this way"); - cardType.add(CardType.CREATURE); - subtype.add("Zombie"); - subtype.add("Horror"); - color.setBlack(true); - this.power = new MageInt(power); - this.toughness = new MageInt(toughness); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java b/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java index 6883c4d098..4c6629a4de 100644 --- a/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java +++ b/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java @@ -27,6 +27,7 @@ */ package mage.cards.c; +import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,9 +42,7 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.CreakwoodLiegeToken; /** * @@ -59,12 +58,10 @@ public class CreakwoodLiege extends CardImpl { filterGreenCreature.add(new ColorPredicate(ObjectColor.GREEN)); } - public CreakwoodLiege(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B/G}{B/G}{B/G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B/G}{B/G}{B/G}"); this.subtype.add("Horror"); - this.power = new MageInt(2); this.toughness = new MageInt(2); @@ -85,16 +82,3 @@ public class CreakwoodLiege extends CardImpl { return new CreakwoodLiege(this); } } - -class CreakwoodLiegeToken extends Token { - CreakwoodLiegeToken() { - super("Worm", "1/1 black and green Worm creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - color.setGreen(true); - subtype.add("Worm"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} - diff --git a/Mage.Sets/src/mage/cards/c/CribSwap.java b/Mage.Sets/src/mage/cards/c/CribSwap.java index 42fbf9f6d6..6abeb08548 100644 --- a/Mage.Sets/src/mage/cards/c/CribSwap.java +++ b/Mage.Sets/src/mage/cards/c/CribSwap.java @@ -27,7 +27,7 @@ */ package mage.cards.c; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileTargetEffect; @@ -38,12 +38,10 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CribSwapShapeshifterWhiteToken; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -51,7 +49,7 @@ import java.util.UUID; public class CribSwap extends CardImpl { public CribSwap(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.INSTANT},"{2}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.INSTANT}, "{2}{W}"); this.subtype.add("Shapeshifter"); // Changeling @@ -102,16 +100,3 @@ class CribSwapEffect extends OneShotEffect { return false; } } - -class CribSwapShapeshifterWhiteToken extends Token { - - public CribSwapShapeshifterWhiteToken() { - super("Shapeshifter", "1/1 colorless Shapeshifter creature token with changeling"); - this.setOriginalExpansionSetCode("LRW"); - cardType.add(CardType.CREATURE); - subtype.add("Shapeshifter"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(ChangelingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java b/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java index bbf0db71dc..04c731d5dc 100644 --- a/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java +++ b/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java @@ -27,7 +27,7 @@ */ package mage.cards.c; -import mage.MageInt; +import java.util.UUID; import mage.abilities.condition.common.SurgedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; @@ -38,9 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.CrushOfTentaclesToken; /** * @@ -70,16 +68,3 @@ public class CrushOfTentacles extends CardImpl { return new CrushOfTentacles(this); } } - -class CrushOfTentaclesToken extends Token { - - public CrushOfTentaclesToken() { - super("Octopus", "8/8 blue Octopus creature"); - this.setExpansionSetCodeForImage("BFZ"); - this.cardType.add(CardType.CREATURE); - this.color.setBlue(true); - this.subtype.add("Octopus"); - this.power = new MageInt(8); - this.toughness = new MageInt(8); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CunningBandit.java b/Mage.Sets/src/mage/cards/c/CunningBandit.java index d14a903175..404fd31917 100644 --- a/Mage.Sets/src/mage/cards/c/CunningBandit.java +++ b/Mage.Sets/src/mage/cards/c/CunningBandit.java @@ -61,7 +61,7 @@ public class CunningBandit extends CardImpl { private static final FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); public CunningBandit(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{R}"); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/c/CurseOfTheSwine.java b/Mage.Sets/src/mage/cards/c/CurseOfTheSwine.java index 6bd976bec8..adf64195b9 100644 --- a/Mage.Sets/src/mage/cards/c/CurseOfTheSwine.java +++ b/Mage.Sets/src/mage/cards/c/CurseOfTheSwine.java @@ -27,7 +27,7 @@ */ package mage.cards.c; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.effects.OneShotEffect; @@ -37,11 +37,9 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CurseOfTheSwineBoarToken; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -105,15 +103,3 @@ class CurseOfTheSwineEffect extends OneShotEffect { return true; } } - -class CurseOfTheSwineBoarToken extends Token { - - CurseOfTheSwineBoarToken() { - super("Boar", "2/2 green Boar creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Boar"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java b/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java index 7d018ce125..45bb0f9592 100644 --- a/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java +++ b/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java @@ -27,7 +27,7 @@ */ package mage.cards.d; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -37,7 +37,6 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.PutTokenOntoBattlefieldCopyTargetEffect; -import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -48,13 +47,11 @@ import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.DarettiConstructToken; import mage.target.TargetPermanent; import mage.target.common.TargetCardInGraveyardOrBattlefield; import mage.target.common.TargetControlledPermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -126,22 +123,3 @@ class DarettiIngeniousIconoclastEffect extends OneShotEffect { return false; } } - -class DarettiConstructToken extends Token { - - public DarettiConstructToken() { - this("CNS"); - } - - public DarettiConstructToken(String setCode) { - super("Construct", "1/1 colorless Construct artifact creature token with defender"); - this.setOriginalExpansionSetCode(setCode); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Construct"); - power = new MageInt(1); - toughness = new MageInt(1); - - addAbility(DefenderAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/d/DarkDepths.java b/Mage.Sets/src/mage/cards/d/DarkDepths.java index 795d33eacd..eb0c8f3b32 100644 --- a/Mage.Sets/src/mage/cards/d/DarkDepths.java +++ b/Mage.Sets/src/mage/cards/d/DarkDepths.java @@ -27,7 +27,7 @@ */ package mage.cards.d; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; @@ -37,8 +37,6 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -48,9 +46,7 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.MaritLageToken; /** * @@ -140,22 +136,3 @@ class DarkDepthsAbility extends StateTriggeredAbility { } } - -class MaritLageToken extends Token { - - public MaritLageToken() { - super("Marit Lage", "legendary 20/20 black Avatar creature token with flying and indestructible named Marit Lage"); - this.setOriginalExpansionSetCode("CSP"); - cardType.add(CardType.CREATURE); - subtype.add("Avatar"); - addSuperType(SuperType.LEGENDARY); - - color.setBlack(true); - power = new MageInt(20); - toughness = new MageInt(20); - - this.addAbility(FlyingAbility.getInstance()); - this.addAbility(IndestructibleAbility.getInstance()); - - } -} diff --git a/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java b/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java index f17640e5e7..2cbd014bee 100644 --- a/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java +++ b/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java @@ -27,14 +27,12 @@ */ package mage.cards.d; +import java.util.UUID; import mage.MageInt; -import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersControllerEffect; @@ -44,12 +42,7 @@ import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; -import mage.players.Player; - -import java.util.UUID; +import mage.game.permanent.token.DaxosSpiritToken; /** * @@ -64,7 +57,7 @@ public class DaxosTheReturned extends CardImpl { } public DaxosTheReturned(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{B}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Soldier"); @@ -91,54 +84,3 @@ public class DaxosTheReturned extends CardImpl { return new DaxosTheReturned(this); } } - -class DaxosSpiritToken extends Token { - - DaxosSpiritToken() { - super("Spirit", "white and black Spirit enchantment creature token with \"This creature's power and toughness are each equal to the number of experience counters you have.\""); - this.setOriginalExpansionSetCode("C15"); - setTokenType(2); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - color.setWhite(true); - color.setBlack(true); - subtype.add("Spirit"); - power = new MageInt(0); - toughness = new MageInt(0); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DaxosSpiritSetPTEffect())); - } -} - -class DaxosSpiritSetPTEffect extends ContinuousEffectImpl { - - public DaxosSpiritSetPTEffect() { - super(Duration.WhileOnBattlefield, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature); - staticText = "This creature's power and toughness are each equal to the number of experience counters you have"; - } - - public DaxosSpiritSetPTEffect(final DaxosSpiritSetPTEffect effect) { - super(effect); - } - - @Override - public DaxosSpiritSetPTEffect copy() { - return new DaxosSpiritSetPTEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - Permanent permanent = game.getPermanent(source.getSourceId()); - if (permanent != null && new MageObjectReference(source.getSourceObject(game), game).refersTo(permanent, game)) { - int amount = controller.getCounters().getCount(CounterType.EXPERIENCE); - permanent.getPower().setValue(amount); - permanent.getToughness().setValue(amount); - return true; - } else { - discard(); - } - } - return false; - } -} diff --git a/Mage.Sets/src/mage/cards/d/DeadlyGrub.java b/Mage.Sets/src/mage/cards/d/DeadlyGrub.java index a9d4a1b1c7..fd144f9749 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyGrub.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyGrub.java @@ -27,6 +27,7 @@ */ package mage.cards.d; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -35,16 +36,13 @@ import mage.abilities.condition.common.LastTimeCounterRemovedCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.ShroudAbility; import mage.abilities.keyword.VanishingSacrificeAbility; import mage.abilities.keyword.VanishingUpkeepAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.DeadlyGrubToken; /** * @@ -53,7 +51,7 @@ import java.util.UUID; public class DeadlyGrub extends CardImpl { public DeadlyGrub(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); this.subtype.add("Insect"); this.power = new MageInt(3); this.toughness = new MageInt(1); @@ -66,7 +64,7 @@ public class DeadlyGrub extends CardImpl { this.addAbility(new VanishingSacrificeAbility()); // When Deadly Grub dies, if it had no time counters on it, create a 6/1 green Insect creature token with shroud. this.addAbility(new ConditionalTriggeredAbility(new DiesTriggeredAbility(new CreateTokenEffect(new DeadlyGrubToken(), 1)), - LastTimeCounterRemovedCondition.instance, "When {this} dies, if it had no time counters on it, create a 6/1 green Insect creature token with shroud.")); + LastTimeCounterRemovedCondition.instance, "When {this} dies, if it had no time counters on it, create a 6/1 green Insect creature token with shroud.")); } public DeadlyGrub(final DeadlyGrub card) { @@ -78,15 +76,3 @@ public class DeadlyGrub extends CardImpl { return new DeadlyGrub(this); } } - -class DeadlyGrubToken extends Token { - DeadlyGrubToken() { - super("Insect", "6/1 green Insect creature token with shroud"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Insect"); - power = new MageInt(6); - toughness = new MageInt(1); - this.addAbility(ShroudAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/d/DeathpactAngel.java b/Mage.Sets/src/mage/cards/d/DeathpactAngel.java index a7f6e5fc67..cdbb65139a 100644 --- a/Mage.Sets/src/mage/cards/d/DeathpactAngel.java +++ b/Mage.Sets/src/mage/cards/d/DeathpactAngel.java @@ -28,26 +28,15 @@ */ package mage.cards.d; +import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Zone; -import mage.filter.common.FilterCreatureCard; -import mage.filter.predicate.mageobject.NamePredicate; -import mage.game.permanent.token.Token; -import mage.target.common.TargetCardInYourGraveyard; - -import java.util.UUID; +import mage.game.permanent.token.DeathpactAngelToken; /** * @@ -77,32 +66,3 @@ public class DeathpactAngel extends CardImpl { return new DeathpactAngel(this); } } - -class DeathpactAngelToken extends Token { - - private static final FilterCreatureCard filter = new FilterCreatureCard("card named Deathpact Angel from your graveyard"); - - static { - filter.add(new NamePredicate("Deathpact Angel")); - } - - public DeathpactAngelToken() { - super("Cleric", "1/1 white and black Cleric creature token. It has \"{3}{W}{B}{B}, {T}, Sacrifice this creature: Return a card named Deathpact Angel from your graveyard to the battlefield.\""); - cardType.add(CardType.CREATURE); - - color.setWhite(true); - color.setBlack(true); - - subtype.add("Cleric"); - - power = new MageInt(1); - toughness = new MageInt(1); - - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{3}{W}{B}{B}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetCardInYourGraveyard(filter)); - this.addAbility(ability); - } - -} diff --git a/Mage.Sets/src/mage/cards/d/DesolationTwin.java b/Mage.Sets/src/mage/cards/d/DesolationTwin.java index 528ad36515..1e51103922 100644 --- a/Mage.Sets/src/mage/cards/d/DesolationTwin.java +++ b/Mage.Sets/src/mage/cards/d/DesolationTwin.java @@ -27,6 +27,7 @@ */ package mage.cards.d; +import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -35,13 +36,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; -import mage.game.permanent.token.Token; +import mage.game.events.GameEvent; +import mage.game.permanent.token.EldraziToken; import mage.game.stack.Spell; -import java.util.UUID; - /** * * @author fireshoes @@ -49,7 +48,7 @@ import java.util.UUID; public class DesolationTwin extends CardImpl { public DesolationTwin(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{10}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{10}"); this.subtype.add("Eldrazi"); this.power = new MageInt(10); this.toughness = new MageInt(10); @@ -99,14 +98,3 @@ class DesolationTwinOnCastAbility extends TriggeredAbilityImpl { return "When you cast {this}, " + super.getRule(); } } - -class EldraziToken extends Token { - - public EldraziToken() { - super("Eldrazi", "10/10 colorless Eldrazi creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Eldrazi"); - power = new MageInt(10); - toughness = new MageInt(10); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/d/DevastatingSummons.java b/Mage.Sets/src/mage/cards/d/DevastatingSummons.java index 56f74298bf..e18ebed6e8 100644 --- a/Mage.Sets/src/mage/cards/d/DevastatingSummons.java +++ b/Mage.Sets/src/mage/cards/d/DevastatingSummons.java @@ -27,6 +27,7 @@ */ package mage.cards.d; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeXTargetCost; import mage.abilities.dynamicvalue.common.GetXValue; @@ -37,9 +38,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterControlledLandPermanent; import mage.game.Game; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.DevastatingSummonsElementalToken; /** * @@ -48,12 +47,11 @@ import java.util.UUID; public class DevastatingSummons extends CardImpl { public DevastatingSummons(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}"); // As an additional cost to cast Devastating Summons, sacrifice X lands. this.getSpellAbility().addCost(new SacrificeXTargetCost(new FilterControlledLandPermanent("lands"), true)); - + // Create two X/X red Elemental creature tokens. this.getSpellAbility().addEffect(new DevastatingSummonsEffect()); } @@ -81,13 +79,13 @@ class DevastatingSummonsEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - ElementalToken token = new ElementalToken(); - + DevastatingSummonsElementalToken token = new DevastatingSummonsElementalToken(); + token.getPower().modifyBaseValue(new GetXValue().calculate(game, source, this)); token.getToughness().modifyBaseValue(new GetXValue().calculate(game, source, this)); - + token.putOntoBattlefield(2, game, source.getSourceId(), source.getControllerId()); - + return true; } @@ -96,13 +94,4 @@ class DevastatingSummonsEffect extends OneShotEffect { return new DevastatingSummonsEffect(this); } - static class ElementalToken extends Token { - - public ElementalToken() { - super("Elemental", "X/X red Elemental creature"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - } - } } diff --git a/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java b/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java index edc69d1620..52af8e5dd1 100644 --- a/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java +++ b/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java @@ -27,7 +27,7 @@ */ package mage.cards.d; -import mage.MageInt; +import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.Effect; @@ -41,13 +41,12 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; +import mage.game.permanent.token.DinOfTheFireherdToken; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; -import java.util.UUID; - /** * * @author jeffwadsworth @@ -119,16 +118,3 @@ class DinOfTheFireherdEffect extends OneShotEffect { return applied; } } - -class DinOfTheFireherdToken extends Token { - - public DinOfTheFireherdToken() { - super("", "5/5 black and red Elemental creature"); - cardType.add(CardType.CREATURE); - subtype.add("Elemental"); - color.setBlack(true); - color.setRed(true); - power = new MageInt(5); - toughness = new MageInt(5); - } -} diff --git a/Mage.Sets/src/mage/cards/d/Dovescape.java b/Mage.Sets/src/mage/cards/d/Dovescape.java index 92e76a622f..9d63bde0fc 100644 --- a/Mage.Sets/src/mage/cards/d/Dovescape.java +++ b/Mage.Sets/src/mage/cards/d/Dovescape.java @@ -27,11 +27,10 @@ */ package mage.cards.d; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -41,11 +40,10 @@ import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; +import mage.game.permanent.token.DovescapeToken; import mage.game.permanent.token.Token; import mage.game.stack.Spell; -import java.util.UUID; - /** * * @author emerald000 @@ -53,13 +51,13 @@ import java.util.UUID; public class Dovescape extends CardImpl { private static final FilterSpell filter = new FilterSpell("a noncreature spell"); + static { filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); } public Dovescape(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W/U}{W/U}{W/U}"); - + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W/U}{W/U}{W/U}"); // Whenever a player casts a noncreature spell, counter that spell. That player creates X 1/1 white and blue Bird creature tokens with flying, where X is the spell's converted mana cost. this.addAbility(new SpellCastAllTriggeredAbility(new DovescapeEffect(), filter, false, SetTargetPointer.SPELL)); @@ -106,16 +104,3 @@ class DovescapeEffect extends OneShotEffect { return true; } } - -class DovescapeToken extends Token { - DovescapeToken() { - super("Bird", "1/1 white and blue Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - color.setBlue(true); - subtype.add("Bird"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/d/DragonBroodmother.java b/Mage.Sets/src/mage/cards/d/DragonBroodmother.java index de311fd610..211b795a99 100644 --- a/Mage.Sets/src/mage/cards/d/DragonBroodmother.java +++ b/Mage.Sets/src/mage/cards/d/DragonBroodmother.java @@ -27,19 +27,16 @@ */ package mage.cards.d; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.DevourEffect; -import mage.abilities.keyword.DevourAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.DragonToken; /** * @@ -70,18 +67,4 @@ public class DragonBroodmother extends CardImpl { return new DragonBroodmother(this); } - class DragonToken extends Token { - - DragonToken() { - super("Dragon", "1/1 red and green Dragon creature token with flying and devour 2"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setRed(true); - subtype.add("Dragon"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - addAbility(new DevourAbility(DevourEffect.DevourFactor.Devour2)); - } - } } diff --git a/Mage.Sets/src/mage/cards/d/DragonEgg.java b/Mage.Sets/src/mage/cards/d/DragonEgg.java index d7f4cdfeed..94ee82aad5 100644 --- a/Mage.Sets/src/mage/cards/d/DragonEgg.java +++ b/Mage.Sets/src/mage/cards/d/DragonEgg.java @@ -27,22 +27,15 @@ */ package mage.cards.d; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.DefenderAbility; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.DragonToken; /** * @@ -51,7 +44,7 @@ import java.util.UUID; public class DragonEgg extends CardImpl { public DragonEgg(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add("Dragon"); this.power = new MageInt(0); @@ -74,19 +67,4 @@ public class DragonEgg extends CardImpl { return new DragonEgg(this); } - class DragonToken extends Token { - - DragonToken() { - super("Dragon", "2/2 red Dragon creature token with flying that has \"{R}: This creature gets +1/+0 until end of turn"); - this.setOriginalExpansionSetCode("M14"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Dragon"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(FlyingAbility.getInstance()); - addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"))); - - } - } } diff --git a/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java b/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java index c282d8519c..e36f10b916 100644 --- a/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java +++ b/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java @@ -27,6 +27,7 @@ */ package mage.cards.d; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -36,9 +37,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.DuneBroodNephilimToken; /** * @author Loki @@ -48,10 +47,9 @@ public class DuneBroodNephilim extends CardImpl { final static FilterControlledPermanent filterLands = new FilterControlledLandPermanent(); public DuneBroodNephilim(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{R}{G}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{R}{G}{W}"); this.subtype.add("Nephilim"); - this.power = new MageInt(3); this.toughness = new MageInt(3); @@ -68,13 +66,3 @@ public class DuneBroodNephilim extends CardImpl { return new DuneBroodNephilim(this); } } - -class DuneBroodNephilimToken extends Token { - DuneBroodNephilimToken() { - super("Sand", "1/1 colorless Sand creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Sand"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/e/ElementalAppeal.java b/Mage.Sets/src/mage/cards/e/ElementalAppeal.java index 5fe76f43ad..fe2254fbfa 100644 --- a/Mage.Sets/src/mage/cards/e/ElementalAppeal.java +++ b/Mage.Sets/src/mage/cards/e/ElementalAppeal.java @@ -27,7 +27,7 @@ */ package mage.cards.e; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.KickedCondition; @@ -35,18 +35,14 @@ import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.KickerAbility; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.ElementalAppealElementalToken; /** * @@ -55,7 +51,7 @@ import java.util.UUID; public class ElementalAppeal extends CardImpl { public ElementalAppeal(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}{R}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}{R}{R}{R}"); // Kicker {5} this.addAbility(new KickerAbility("{5}")); @@ -97,27 +93,13 @@ class ElementalAppealEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - - CreateTokenEffect effect = new CreateTokenEffect(new ElementalToken()); - if(effect.apply(game, source)) - { - effect.exileTokensCreatedAtNextEndStep(game, source); + + CreateTokenEffect effect = new CreateTokenEffect(new ElementalAppealElementalToken()); + if (effect.apply(game, source)) { + effect.exileTokensCreatedAtNextEndStep(game, source); return true; } return false; } - class ElementalToken extends Token { - - public ElementalToken() { - super("Elemental", "7/1 red Elemental creature token with trample and haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(7); - toughness = new MageInt(1); - addAbility(TrampleAbility.getInstance()); - addAbility(HasteAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/cards/e/ElementalMastery.java b/Mage.Sets/src/mage/cards/e/ElementalMastery.java index c10e74f8bb..96139252b1 100644 --- a/Mage.Sets/src/mage/cards/e/ElementalMastery.java +++ b/Mage.Sets/src/mage/cards/e/ElementalMastery.java @@ -27,7 +27,7 @@ */ package mage.cards.e; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,7 +37,6 @@ import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; @@ -46,12 +45,10 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ElementalMasteryElementalToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author jeffwadsworth @@ -59,7 +56,7 @@ import java.util.UUID; public class ElementalMastery extends CardImpl { public ElementalMastery(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}"); this.subtype.add("Aura"); // Enchant creature @@ -106,25 +103,13 @@ class ElementalMasteryEffect extends OneShotEffect { if (creatureAttached != null) { int power = creatureAttached.getPower().getValue(); if (power > 0) { - CreateTokenEffect effect = new CreateTokenEffect(new ElementalToken(), power); + CreateTokenEffect effect = new CreateTokenEffect(new ElementalMasteryElementalToken(), power); effect.apply(game, source); - effect.exileTokensCreatedAtNextEndStep(game, source); + effect.exileTokensCreatedAtNextEndStep(game, source); return true; } } return false; } - class ElementalToken extends Token { - - public ElementalToken() { - super("Elemental", "1/1 red Elemental creature token with haste"); - cardType.add(CardType.CREATURE); - subtype.add("Elemental"); - color.setRed(true); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(HasteAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java b/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java index dc8d4c446a..81b5475727 100644 --- a/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java +++ b/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java @@ -27,7 +27,7 @@ */ package mage.cards.e; -import mage.MageInt; +import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.condition.common.MyTurnCondition; @@ -38,9 +38,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.EyesOfTheWisentElementalToken; /** * @@ -55,7 +53,7 @@ public class EyesOfTheWisent extends CardImpl { } public EyesOfTheWisent(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.ENCHANTMENT},"{1}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.ENCHANTMENT}, "{1}{G}"); this.subtype.add("Elemental"); // Whenever an opponent casts a blue spell during your turn, you may create a 4/4 green Elemental creature token. @@ -75,18 +73,3 @@ public class EyesOfTheWisent extends CardImpl { return new EyesOfTheWisent(this); } } - -class EyesOfTheWisentElementalToken extends Token { - - public EyesOfTheWisentElementalToken() { - super("Elemental", "4/4 green Elemental creature token"); - this.setOriginalExpansionSetCode("MMA"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Elemental"); - power = new MageInt(4); - toughness = new MageInt(4); - setTokenType(1); - } - -} diff --git a/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java b/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java index f041edfb2f..d6af740157 100644 --- a/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java +++ b/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java @@ -27,21 +27,18 @@ */ package mage.cards.f; -import mage.MageInt; +import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OwlToken; import mage.game.permanent.token.WolfToken; -import java.util.UUID; - /** * @author Loki */ @@ -56,8 +53,7 @@ public class FableOfWolfAndOwl extends CardImpl { } public FableOfWolfAndOwl(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{G/U}{G/U}{G/U}"); - + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G/U}{G/U}{G/U}"); this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new WolfToken(), 1), filterGreenSpell, true)); this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new OwlToken(), 1), filterBlueSpell, true)); @@ -72,15 +68,3 @@ public class FableOfWolfAndOwl extends CardImpl { return new FableOfWolfAndOwl(this); } } - -class OwlToken extends Token { - OwlToken() { - super("Bird", "1/1 blue Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Bird"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/f/FaithfulSquire.java b/Mage.Sets/src/mage/cards/f/FaithfulSquire.java index 81a9861f59..acab18b099 100644 --- a/Mage.Sets/src/mage/cards/f/FaithfulSquire.java +++ b/Mage.Sets/src/mage/cards/f/FaithfulSquire.java @@ -63,7 +63,7 @@ public class FaithfulSquire extends CardImpl { private static final FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); public FaithfulSquire(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}"); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java b/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java index 14f3b69439..4794d982d1 100644 --- a/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java +++ b/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java @@ -27,7 +27,7 @@ */ package mage.cards.f; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,11 +36,9 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.GiantWarriorToken; import mage.players.Player; -import java.util.UUID; - /** * * @author LevelX2 @@ -48,10 +46,9 @@ import java.util.UUID; public class FeudkillersVerdict extends CardImpl { public FeudkillersVerdict(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.SORCERY},"{4}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.SORCERY}, "{4}{W}{W}"); this.subtype.add("Giant"); - // You gain 10 life. Then if you have more life than an opponent, create a 5/5 white Giant Warrior creature token. this.getSpellAbility().addEffect(new FeudkillersVerdictEffect()); } @@ -88,7 +85,7 @@ class FeudkillersVerdictEffect extends OneShotEffect { if (controller != null) { controller.gainLife(10, game); boolean moreLife = false; - for (UUID opponentId :game.getOpponents(source.getControllerId())) { + for (UUID opponentId : game.getOpponents(source.getControllerId())) { Player opponent = game.getPlayer(opponentId); if (opponent != null) { if (controller.getLife() > opponent.getLife()) { @@ -106,15 +103,3 @@ class FeudkillersVerdictEffect extends OneShotEffect { return false; } } - -class GiantWarriorToken extends Token { - GiantWarriorToken() { - super("Giant Warrior", "5/5 white Giant Warrior creature token"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Giant"); - subtype.add("Warrior"); - power = new MageInt(5); - toughness = new MageInt(5); - } -} diff --git a/Mage.Sets/src/mage/cards/f/FirecatBlitz.java b/Mage.Sets/src/mage/cards/f/FirecatBlitz.java index 9e0e6216ca..ee1417e5f4 100644 --- a/Mage.Sets/src/mage/cards/f/FirecatBlitz.java +++ b/Mage.Sets/src/mage/cards/f/FirecatBlitz.java @@ -27,7 +27,7 @@ */ package mage.cards.f; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.costs.Cost; @@ -38,7 +38,6 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.FlashbackAbility; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -49,12 +48,10 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ElementalCatToken; import mage.players.Player; import mage.target.targetpointer.FixedTarget; -import java.util.UUID; - /** * * @author Styxo @@ -131,17 +128,3 @@ class FirecatBlitzEffect extends OneShotEffect { return false; } } - -class ElementalCatToken extends Token { - - public ElementalCatToken() { - super("Elemental Cat", "1/1 red Elemental Cat creature token"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - subtype.add("Cat"); - addAbility(HasteAbility.getInstance()); - power = new MageInt(1); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/f/Flamewright.java b/Mage.Sets/src/mage/cards/f/Flamewright.java index aa0b24b753..7465f3ce27 100644 --- a/Mage.Sets/src/mage/cards/f/Flamewright.java +++ b/Mage.Sets/src/mage/cards/f/Flamewright.java @@ -27,6 +27,7 @@ */ package mage.cards.f; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,12 +44,10 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ConstructToken; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; -import java.util.UUID; - /** * * @author fireshoes @@ -90,22 +89,3 @@ public class Flamewright extends CardImpl { return new Flamewright(this); } } - -class ConstructToken extends Token { - - public ConstructToken() { - this("CNS"); - } - - public ConstructToken(String setCode) { - super("Construct", "1/1 colorless Construct artifact creature token with defender"); - this.setOriginalExpansionSetCode(setCode); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Construct"); - power = new MageInt(1); - toughness = new MageInt(1); - - addAbility(DefenderAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/f/FleshCarver.java b/Mage.Sets/src/mage/cards/f/FleshCarver.java index 97d246aa96..156563f1d5 100644 --- a/Mage.Sets/src/mage/cards/f/FleshCarver.java +++ b/Mage.Sets/src/mage/cards/f/FleshCarver.java @@ -27,6 +27,7 @@ */ package mage.cards.f; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -49,12 +50,10 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.FleshCarverHorrorToken; import mage.players.Player; import mage.target.common.TargetControlledPermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -68,7 +67,7 @@ public class FleshCarver extends CardImpl { } public FleshCarver(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); this.subtype.add("Human"); this.subtype.add("Wizard"); @@ -97,6 +96,7 @@ public class FleshCarver extends CardImpl { } class FleshCarverAbility extends DiesTriggeredAbility { + public FleshCarverAbility() { super(new FleshCarverEffect(), false); } @@ -114,8 +114,8 @@ class FleshCarverAbility extends DiesTriggeredAbility { public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); - if (permanent !=null) { - for (Effect effect :this.getEffects()) { + if (permanent != null) { + for (Effect effect : this.getEffects()) { effect.setValue("power", permanent.getPower().getValue()); } return true; @@ -157,17 +157,3 @@ class FleshCarverEffect extends OneShotEffect { } } - -class FleshCarverHorrorToken extends Token { - - public FleshCarverHorrorToken(int xValue) { - super("Horror", "X/X black Horror creature token"); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Horror"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - - } -} diff --git a/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java b/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java index 078c046d04..fe2b21a8f7 100644 --- a/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java +++ b/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java @@ -27,16 +27,12 @@ */ package mage.cards.f; -import mage.MageInt; -import mage.ObjectColor; +import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.FlurryOfHornsMinotaurToken; /** * @@ -45,8 +41,7 @@ import java.util.UUID; public class FlurryOfHorns extends CardImpl { public FlurryOfHorns(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{R}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{R}"); // Create two 2/3 red Minotaur creature tokens with haste. this.getSpellAbility().addEffect(new CreateTokenEffect(new FlurryOfHornsMinotaurToken(), 2)); @@ -61,17 +56,3 @@ public class FlurryOfHorns extends CardImpl { return new FlurryOfHorns(this); } } - -class FlurryOfHornsMinotaurToken extends Token { - - public FlurryOfHornsMinotaurToken() { - super("Minotaur", "2/3 red Minotaur creature tokens with haste"); - this.setOriginalExpansionSetCode("JOU"); - cardType.add(CardType.CREATURE); - color.setColor(ObjectColor.RED); - subtype.add("Minotaur"); - power = new MageInt(2); - toughness = new MageInt(3); - addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/f/FlurryOfWings.java b/Mage.Sets/src/mage/cards/f/FlurryOfWings.java index 5af6470cdb..85f40aed42 100644 --- a/Mage.Sets/src/mage/cards/f/FlurryOfWings.java +++ b/Mage.Sets/src/mage/cards/f/FlurryOfWings.java @@ -27,17 +27,14 @@ */ package mage.cards.f; -import mage.MageInt; +import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterAttackingCreature; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.BirdSoldierToken; /** * @@ -48,11 +45,7 @@ public class FlurryOfWings extends CardImpl { private static final FilterAttackingCreature filter = new FilterAttackingCreature("the number of attacking creatures"); public FlurryOfWings(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}{W}{U}"); - - - - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}{W}{U}"); this.getSpellAbility().addEffect(new CreateTokenEffect(new BirdSoldierToken(), new PermanentsOnBattlefieldCount(filter))); } @@ -66,18 +59,3 @@ public class FlurryOfWings extends CardImpl { return new FlurryOfWings(this); } } - -class BirdSoldierToken extends Token { - - public BirdSoldierToken() { - super("Bird Soldier", "1/1 white Bird Soldier creature with flying"); - cardType.add(CardType.CREATURE); - subtype.add("Bird"); - - color.setWhite(true); - power = new MageInt(1); - toughness = new MageInt(1); - - addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java b/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java index 4add9e38f8..521ca507a2 100644 --- a/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java +++ b/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java @@ -27,6 +27,7 @@ */ package mage.cards.f; +import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,9 +37,7 @@ import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.ForlornPseudammaZombieToken; /** * @@ -47,7 +46,7 @@ import java.util.UUID; public class ForlornPseudamma extends CardImpl { public ForlornPseudamma(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); this.subtype.add("Zombie"); this.power = new MageInt(2); @@ -68,17 +67,3 @@ public class ForlornPseudamma extends CardImpl { return new ForlornPseudamma(this); } } - -class ForlornPseudammaZombieToken extends Token { - - public ForlornPseudammaZombieToken() { - super("Zombie", "2/2 black Zombie enchantment creature token"); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Zombie"); - power = new MageInt(2); - toughness = new MageInt(2); - this.setOriginalExpansionSetCode("BNG"); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java b/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java index aa9d8bc273..a8f2eb3ac1 100644 --- a/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java +++ b/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java @@ -27,7 +27,7 @@ */ package mage.cards.f; -import mage.MageInt; +import java.util.UUID; import mage.ObjectColor; import mage.abilities.LoyaltyAbility; import mage.abilities.common.CanBeYourCommanderAbility; @@ -36,18 +36,15 @@ import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.FreyaliseLlanowarsFuryToken; import mage.target.TargetPermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -88,21 +85,3 @@ public class FreyaliseLlanowarsFury extends CardImpl { return new FreyaliseLlanowarsFury(this); } } - -class FreyaliseLlanowarsFuryToken extends Token { - - FreyaliseLlanowarsFuryToken() { - super("Elf Druid", "1/1 green Elf Druid creature token with \"{T}: Add {G} to your mana pool.\""); - this.setOriginalExpansionSetCode("C14"); - this.cardType.add(CardType.CREATURE); - this.color = ObjectColor.GREEN; - this.subtype.add("Elf"); - this.subtype.add("Druid"); - - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // {T}: Add {G} to your mana pool. - this.addAbility(new GreenManaAbility()); - } -} diff --git a/Mage.Sets/src/mage/cards/g/GargoyleCastle.java b/Mage.Sets/src/mage/cards/g/GargoyleCastle.java index a60b0075fe..69ab8a9efa 100644 --- a/Mage.Sets/src/mage/cards/g/GargoyleCastle.java +++ b/Mage.Sets/src/mage/cards/g/GargoyleCastle.java @@ -27,21 +27,18 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.GargoyleToken; /** * @@ -89,16 +86,3 @@ class GargoyleCastleAbility extends ActivatedAbilityImpl { } } - -class GargoyleToken extends Token { - - public GargoyleToken() { - super("Gargoyle", "3/4 colorless Gargoyle artifact creature token with flying"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - subtype.add("Gargoyle"); - power = new MageInt(3); - toughness = new MageInt(4); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java b/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java index 367df8b3c2..c033d4d025 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java +++ b/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java @@ -27,7 +27,7 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.AttackedByCreatureTriggeredAbility; @@ -39,7 +39,6 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.GetEmblemTargetPlayerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; -import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -50,14 +49,12 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.command.Emblem; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.GarrukApexPredatorBeastToken; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponent; -import java.util.UUID; - /** * * @author LevelX2 @@ -138,24 +135,6 @@ class GarrukApexPredatorEffect3 extends OneShotEffect { } } -class GarrukApexPredatorBeastToken extends Token { - - public GarrukApexPredatorBeastToken() { - super("Beast", "3/3 black Beast creature token with deathtouch"); - setOriginalExpansionSetCode("M15"); - setTokenType(1); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Beast"); - power = new MageInt(3); - toughness = new MageInt(3); - - abilities.add(DeathtouchAbility.getInstance()); - - } - -} - /** * Emblem with "Whenever a creature attacks you, it gets +5/+5 and gains trample * until end of turn." diff --git a/Mage.Sets/src/mage/cards/g/GeistSnatch.java b/Mage.Sets/src/mage/cards/g/GeistSnatch.java index a0efdbdd78..e107045669 100644 --- a/Mage.Sets/src/mage/cards/g/GeistSnatch.java +++ b/Mage.Sets/src/mage/cards/g/GeistSnatch.java @@ -27,10 +27,9 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -38,11 +37,10 @@ import mage.constants.Outcome; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; +import mage.game.permanent.token.SpiritBlueToken; import mage.game.permanent.token.Token; import mage.target.TargetSpell; -import java.util.UUID; - /** * * @author noxx @@ -56,8 +54,7 @@ public class GeistSnatch extends CardImpl { } public GeistSnatch(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{U}"); // Counter target creature spell. Create a 1/1 blue Spirit creature token with flying. this.getSpellAbility().addTarget(new TargetSpell(filter)); @@ -98,18 +95,3 @@ class GeistSnatchCounterTargetEffect extends OneShotEffect { return true; } } - -class SpiritBlueToken extends Token { - - public SpiritBlueToken() { - super("Spirit", "1/1 blue Spirit creature token with flying"); - cardType.add(CardType.CREATURE); - subtype.add("Spirit"); - color.setBlue(true); - power = new MageInt(1); - toughness = new MageInt(1); - setTokenType(2); - addAbility(FlyingAbility.getInstance()); - } - -} diff --git a/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java b/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java index 18bf78a4ae..5ab647da3b 100644 --- a/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java +++ b/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java @@ -27,6 +27,7 @@ */ package mage.cards.g; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -35,14 +36,11 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.ButterflyToken; /** * @@ -73,16 +71,3 @@ public class GiantCaterpillar extends CardImpl { return new GiantCaterpillar(this); } } - -class ButterflyToken extends Token { - - public ButterflyToken() { - super("Butterfly", "1/1 green Insect creature token with flying named Butterfly"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Insect"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/g/Giantbaiting.java b/Mage.Sets/src/mage/cards/g/Giantbaiting.java index 7f679f2548..b2a6c5e001 100644 --- a/Mage.Sets/src/mage/cards/g/Giantbaiting.java +++ b/Mage.Sets/src/mage/cards/g/Giantbaiting.java @@ -27,20 +27,17 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.ConspireAbility; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.GiantBaitingGiantWarriorToken; /** * @@ -49,7 +46,7 @@ import java.util.UUID; public class Giantbaiting extends CardImpl { public Giantbaiting(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R/G}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R/G}"); // Create a 4/4 red and green Giant Warrior creature token with haste. Exile it at the beginning of the next end step. this.getSpellAbility().addEffect(new GiantbaitingEffect()); @@ -87,27 +84,11 @@ class GiantbaitingEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - CreateTokenEffect effect = new CreateTokenEffect(new GiantWarriorToken()); - if(effect.apply(game, source)) - { + CreateTokenEffect effect = new CreateTokenEffect(new GiantBaitingGiantWarriorToken()); + if (effect.apply(game, source)) { effect.exileTokensCreatedAtNextEndStep(game, source); return true; } return false; } } - -class GiantWarriorToken extends Token { - - GiantWarriorToken() { - super("Giant Warrior", "4/4 red and green Giant Warrior creature token with haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - color.setGreen(true); - subtype.add("Giant"); - subtype.add("Warrior"); - power = new MageInt(4); - toughness = new MageInt(4); - this.addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java b/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java index 7529a2d93d..09f1662157 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java +++ b/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java @@ -27,32 +27,21 @@ */ package mage.cards.g; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.common.FilterAttackingCreature; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.AbilityPredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.LandMineToken; import mage.players.Player; -import mage.target.common.TargetCreaturePermanent; - -import java.util.UUID; /** * @@ -117,23 +106,3 @@ class GoblinKaboomistFlipCoinEffect extends OneShotEffect { } } - -class LandMineToken extends Token { - - private static final FilterAttackingCreature filter = new FilterAttackingCreature("attacking creature without flying"); - - static { - filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); - } - - public LandMineToken() { - super("Land Mine", "colorless artifact token named Land Mine with \"{R}, Sacrifice this artifact: This artifact deals 2 damage to target attacking creature without flying.\""); - this.setOriginalExpansionSetCode("M15"); - cardType.add(CardType.ARTIFACT); - - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{R}")); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetCreaturePermanent(filter)); - this.addAbility(ability); - } -} diff --git a/Mage.Sets/src/mage/cards/g/GoblinScouts.java b/Mage.Sets/src/mage/cards/g/GoblinScouts.java index a7ae2193a7..66715039b8 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinScouts.java +++ b/Mage.Sets/src/mage/cards/g/GoblinScouts.java @@ -27,15 +27,12 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.GoblinScoutsToken; /** * @@ -44,7 +41,7 @@ import java.util.UUID; public class GoblinScouts extends CardImpl { public GoblinScouts(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}"); // Create three 1/1 red Goblin Scout creature tokens with mountainwalk. this.getSpellAbility().addEffect(new CreateTokenEffect(new GoblinScoutsToken(), 3)); @@ -59,18 +56,3 @@ public class GoblinScouts extends CardImpl { return new GoblinScouts(this); } } - -class GoblinScoutsToken extends Token { - - public GoblinScoutsToken() { - super("Goblin Scout", "1/1 red Goblin Scout creature tokens with mountainwalk"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Goblin"); - subtype.add("Scout"); - power = new MageInt(1); - toughness = new MageInt(1); - - this.addAbility(new MountainwalkAbility()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java b/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java index fe6e768486..c82cca951d 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java @@ -27,25 +27,20 @@ */ package mage.cards.g; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.combat.AttacksIfAbleAllEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; +import mage.game.permanent.token.SpyMasterGoblinToken; import mage.game.permanent.token.Token; import mage.players.Player; -import java.util.UUID; - /** * * @author spjspj @@ -105,24 +100,3 @@ class SpyMasterGoblinCreateTokenEffect extends OneShotEffect { return true; } } - -class SpyMasterGoblinToken extends Token { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control"); - - static { - filter.add(new ControllerPredicate(TargetController.YOU)); - } - - SpyMasterGoblinToken() { - super("Goblin", "1/1 red Goblin creature token with \"Creatures you control attack each combat if able.\""); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Goblin"); - power = new MageInt(1); - toughness = new MageInt(1); - - Effect effect = new AttacksIfAbleAllEffect(filter, Duration.WhileOnBattlefield, true); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); - } -} diff --git a/Mage.Sets/src/mage/cards/g/GoblinTrenches.java b/Mage.Sets/src/mage/cards/g/GoblinTrenches.java index 1c03961eb0..906177655e 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTrenches.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTrenches.java @@ -27,7 +27,7 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,11 +39,9 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.GoblinTrenchesToken; import mage.target.common.TargetControlledPermanent; -import java.util.UUID; - /** * * @author Loki @@ -52,10 +50,8 @@ public class GoblinTrenches extends CardImpl { final static FilterControlledPermanent filter = new FilterControlledLandPermanent("a land"); - public GoblinTrenches(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{R}{W}"); - - + public GoblinTrenches(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}{W}"); // {2}, Sacrifice a land: Create two 1/1 red and white Goblin Soldier creature tokens. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GoblinTrenchesToken(), 2), new GenericManaCost(2)); @@ -72,18 +68,3 @@ public class GoblinTrenches extends CardImpl { return new GoblinTrenches(this); } } - -class GoblinTrenchesToken extends Token { - GoblinTrenchesToken() { - super("Goblin Soldier", "1/1 red and white Goblin Soldier creature tokens"); - cardType.add(CardType.CREATURE); - color.setRed(true); - color.setWhite(true); - subtype.add("Goblin"); - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} - - diff --git a/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java b/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java index 56e88ed676..96f61d8c6a 100644 --- a/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java +++ b/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java @@ -27,6 +27,7 @@ */ package mage.cards.g; +import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -35,9 +36,7 @@ import mage.abilities.keyword.InspiredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.GodFavoredGeneralSoldierToken; /** * @@ -46,7 +45,7 @@ import java.util.UUID; public class GodFavoredGeneral extends CardImpl { public GodFavoredGeneral(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); this.subtype.add("Human"); this.subtype.add("Soldier"); @@ -54,7 +53,7 @@ public class GodFavoredGeneral extends CardImpl { this.toughness = new MageInt(1); // Inspired - Whenever God-Favored General becomes untapped, you may pay {2}{W}. If you do, create two 1/1 white Soldier enchantment creature tokens. - this.addAbility(new InspiredAbility(new DoIfCostPaid(new CreateTokenEffect(new SoldierToken(), 2), new ManaCostsImpl("{2}{W}")))); + this.addAbility(new InspiredAbility(new DoIfCostPaid(new CreateTokenEffect(new GodFavoredGeneralSoldierToken(), 2), new ManaCostsImpl("{2}{W}")))); } public GodFavoredGeneral(final GodFavoredGeneral card) { @@ -66,19 +65,3 @@ public class GodFavoredGeneral extends CardImpl { return new GodFavoredGeneral(this); } } - -class SoldierToken extends Token { - - public SoldierToken() { - super("Soldier", "1/1 white Soldier enchantment creature token"); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - color.setWhite(true); - - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - this.setOriginalExpansionSetCode("BNG"); - } - -} diff --git a/Mage.Sets/src/mage/cards/g/Godsire.java b/Mage.Sets/src/mage/cards/g/Godsire.java index 34310af336..938b99c8a7 100644 --- a/Mage.Sets/src/mage/cards/g/Godsire.java +++ b/Mage.Sets/src/mage/cards/g/Godsire.java @@ -25,9 +25,9 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.g; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,9 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.GodSireBeastToken; /** * @@ -47,18 +45,17 @@ import java.util.UUID; */ public class Godsire extends CardImpl { - public Godsire (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{G}{G}{W}"); + public Godsire(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{G}{G}{W}"); this.subtype.add("Beast"); - this.power = new MageInt(8); this.toughness = new MageInt(8); this.addAbility(VigilanceAbility.getInstance()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new BeastToken()), new TapSourceCost())); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GodSireBeastToken()), new TapSourceCost())); } - public Godsire (final Godsire card) { + public Godsire(final Godsire card) { super(card); } @@ -68,16 +65,3 @@ public class Godsire extends CardImpl { } } - -class BeastToken extends Token { - BeastToken() { - super("Beast", "8/8 Beast creature token that's red, green, and white"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setWhite(true); - color.setRed(true); - subtype.add("Beast"); - power = new MageInt(8); - toughness = new MageInt(8); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java b/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java index b18bf0a00d..9a925176ca 100644 --- a/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java +++ b/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java @@ -27,6 +27,7 @@ */ package mage.cards.g; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -34,15 +35,11 @@ import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; -import mage.target.common.TargetCreaturePermanent; - -import java.util.UUID; +import mage.game.permanent.token.GoldmeadowHarrierToken; /** * @@ -73,22 +70,3 @@ public class GoldmeadowLookout extends CardImpl { return new GoldmeadowLookout(this); } } - -class GoldmeadowHarrierToken extends Token { - - public GoldmeadowHarrierToken() { - super("Goldmeadow Harrier", "1/1 white Kithkin Soldier creature token named Goldmeadow Harrier with \"{W}, {T}: Tap target creature.\""); - this.setOriginalExpansionSetCode("FUT"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Kithkin"); - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl("{W}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCreaturePermanent()); - this.addAbility(ability); - } -} diff --git a/Mage.Sets/src/mage/cards/g/GriffinGuide.java b/Mage.Sets/src/mage/cards/g/GriffinGuide.java index a470b375a4..dc31ae3ab0 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinGuide.java +++ b/Mage.Sets/src/mage/cards/g/GriffinGuide.java @@ -27,7 +27,7 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,12 +40,10 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.GriffinToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -53,10 +51,9 @@ import java.util.UUID; public class GriffinGuide extends CardImpl { public GriffinGuide(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}"); this.subtype.add("Aura"); - // Enchant creature TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); @@ -64,7 +61,7 @@ public class GriffinGuide extends CardImpl { Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); // Enchanted creature gets +2/+2 and has flying. - ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2,2, Duration.WhileOnBattlefield)); + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)); ability.addEffect(new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield, "and has flying")); this.addAbility(ability); // When enchanted creature dies, create a 2/2 white Griffin creature token with flying. @@ -80,18 +77,3 @@ public class GriffinGuide extends CardImpl { return new GriffinGuide(this); } } - -class GriffinToken extends Token { - - public GriffinToken() { - super("Griffin", "2/2 white Griffin creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - - subtype.add("Griffin"); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(FlyingAbility.getInstance()); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java b/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java index 9fe2351778..51d504c9a0 100644 --- a/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java +++ b/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java @@ -27,6 +27,7 @@ */ package mage.cards.g; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; @@ -39,11 +40,9 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.GrovetenderDruidsPlantToken; import mage.players.Player; -import java.util.UUID; - /** * * @author fireshoes @@ -51,7 +50,7 @@ import java.util.UUID; public class GrovetenderDruids extends CardImpl { public GrovetenderDruids(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{W}"); this.subtype.add("Elf"); this.subtype.add("Druid"); this.subtype.add("Ally"); @@ -92,10 +91,10 @@ class GrovetenderDruidsEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); - if(player != null) { - if(player.chooseUse(Outcome.BoostCreature, "Do you want to to pay {1}?", source, game)) { + if (player != null) { + if (player.chooseUse(Outcome.BoostCreature, "Do you want to to pay {1}?", source, game)) { Cost cost = new ManaCostsImpl("{1}"); - if(cost.pay(source, game, source.getSourceId(), source.getControllerId(), false, null)) { + if (cost.pay(source, game, source.getSourceId(), source.getControllerId(), false, null)) { new CreateTokenEffect(new GrovetenderDruidsPlantToken()).apply(game, source); } return true; @@ -104,16 +103,3 @@ class GrovetenderDruidsEffect extends OneShotEffect { return false; } } - -class GrovetenderDruidsPlantToken extends Token { - - public GrovetenderDruidsPlantToken() { - super("Plant", "1/1 green Plant creature"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Plant"); - power = new MageInt(1); - toughness = new MageInt(1); - this.setOriginalExpansionSetCode("BFZ"); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/g/GutterGrime.java b/Mage.Sets/src/mage/cards/g/GutterGrime.java index 170c8c3ddc..22cc5baeee 100644 --- a/Mage.Sets/src/mage/cards/g/GutterGrime.java +++ b/Mage.Sets/src/mage/cards/g/GutterGrime.java @@ -27,32 +27,25 @@ */ package mage.cards.g; -import mage.MageInt; +import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.game.permanent.PermanentToken; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.GutterGrimeToken; /** * @@ -61,8 +54,7 @@ import java.util.UUID; public class GutterGrime extends CardImpl { public GutterGrime(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{G}"); - + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{G}"); // Whenever a nontoken creature you control dies, put a slime counter on Gutter Grime, then create a green Ooze creature token with "This creature's power and toughness are each equal to the number of slime counters on Gutter Grime." this.addAbility(new GutterGrimeTriggeredAbility()); @@ -109,8 +101,8 @@ class GutterGrimeTriggeredAbility extends TriggeredAbilityImpl { if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD && permanent.getControllerId().equals(this.controllerId) && (targetId.equals(this.getSourceId()) - || (permanent.isCreature() - && !(permanent instanceof PermanentToken)))) { + || (permanent.isCreature() + && !(permanent instanceof PermanentToken)))) { return true; } } @@ -123,7 +115,6 @@ class GutterGrimeTriggeredAbility extends TriggeredAbilityImpl { } } - class GutterGrimeEffect extends OneShotEffect { public GutterGrimeEffect() { @@ -147,49 +138,3 @@ class GutterGrimeEffect extends OneShotEffect { } } - -class GutterGrimeToken extends Token { - - public GutterGrimeToken(UUID sourceId) { - super("Ooze", "green Ooze creature token with \"This creature's power and toughness are each equal to the number of slime counters on Gutter Grime.\""); - cardType.add(CardType.CREATURE); - subtype.add("Ooze"); - color.setGreen(true); - power = new MageInt(0); - toughness = new MageInt(0); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new GutterGrimeCounters(sourceId), Duration.WhileOnBattlefield))); - } -} - -class GutterGrimeCounters implements DynamicValue { - - private final UUID sourceId; - - public GutterGrimeCounters(UUID sourceId) { - this.sourceId = sourceId; - } - - @Override - public int calculate(Game game, Ability sourceAbility, Effect effect) { - Permanent p = game.getPermanent(sourceId); - if (p != null) { - return p.getCounters(game).getCount(CounterType.SLIME); - } - return 0; - } - - @Override - public GutterGrimeCounters copy() { - return this; - } - - @Override - public String getMessage() { - return "slime counters on Gutter Grime"; - } - - @Override - public String toString() { - return "1"; - } -} diff --git a/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java b/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java index 5ec84d8a59..1169812823 100644 --- a/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java +++ b/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java @@ -27,7 +27,7 @@ */ package mage.cards.h; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,11 +45,9 @@ import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreaturePermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.HammerOfPurphorosGolemToken; import mage.target.common.TargetControlledPermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -57,13 +55,13 @@ import java.util.UUID; public class HammerOfPurphoros extends CardImpl { public HammerOfPurphoros(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.ARTIFACT},"{1}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.ARTIFACT}, "{1}{R}{R}"); addSuperType(SuperType.LEGENDARY); // Creatures you control have haste. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent("Creatures")))); - + // {2}{R}, {tap}, Sacrifice a land: Create a 3/3 colorless Golem enchantment artifact creature token. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HammerOfPurphorosGolemToken()), new ManaCostsImpl("{2}{R}")); ability.addCost(new TapSourceCost()); @@ -80,16 +78,3 @@ public class HammerOfPurphoros extends CardImpl { return new HammerOfPurphoros(this); } } -class HammerOfPurphorosGolemToken extends Token { - - public HammerOfPurphorosGolemToken() { - super("Golem", "3/3 colorless Golem enchantment artifact creature token"); - setOriginalExpansionSetCode("THS"); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Golem"); - power = new MageInt(3); - toughness = new MageInt(3); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/h/HanweirGarrison.java b/Mage.Sets/src/mage/cards/h/HanweirGarrison.java index 4cf5d31bc1..acb1cd7567 100644 --- a/Mage.Sets/src/mage/cards/h/HanweirGarrison.java +++ b/Mage.Sets/src/mage/cards/h/HanweirGarrison.java @@ -29,7 +29,6 @@ package mage.cards.h; import java.util.UUID; import mage.MageInt; -import mage.ObjectColor; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,7 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RedHumanToken; /** * @@ -47,7 +46,7 @@ import mage.game.permanent.token.Token; public class HanweirGarrison extends CardImpl { public HanweirGarrison(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(2); @@ -69,16 +68,3 @@ public class HanweirGarrison extends CardImpl { return new HanweirGarrison(this); } } - -class RedHumanToken extends Token { - - public RedHumanToken() { - super("Human", "1/1 red Human creature token"); - this.cardType.add(CardType.CREATURE); - this.subtype.add("Human"); - - this.color = ObjectColor.RED; - this.power = new MageInt(1); - this.toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HapatraVizierOfPoisons.java b/Mage.Sets/src/mage/cards/h/HapatraVizierOfPoisons.java index 803d2decbe..79eee4b62a 100644 --- a/Mage.Sets/src/mage/cards/h/HapatraVizierOfPoisons.java +++ b/Mage.Sets/src/mage/cards/h/HapatraVizierOfPoisons.java @@ -35,7 +35,6 @@ import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; -import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -45,7 +44,7 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.DeathtouchSnakeToken; import mage.target.common.TargetCreaturePermanent; /** @@ -123,16 +122,3 @@ class HapatraVizierOfPoisonsTriggeredAbility extends TriggeredAbilityImpl { return "Whenever you put one or more -1/-1 counters on a creature, " + super.getRule(); } } - -class DeathtouchSnakeToken extends Token { - - public DeathtouchSnakeToken() { - super("Snake", "1/1 green Snake creature token with deathtouch"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Snake"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(DeathtouchAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HauntedAngel.java b/Mage.Sets/src/mage/cards/h/HauntedAngel.java index 8f6f9760cf..81678aeb7d 100644 --- a/Mage.Sets/src/mage/cards/h/HauntedAngel.java +++ b/Mage.Sets/src/mage/cards/h/HauntedAngel.java @@ -39,17 +39,17 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.HauntedAngelToken; /** * * @author LoneFox - + * */ public class HauntedAngel extends CardImpl { public HauntedAngel(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); this.subtype.add("Angel"); this.power = new MageInt(3); this.toughness = new MageInt(3); @@ -92,23 +92,11 @@ class HauntedAngelEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { UUID controllerId = source.getControllerId(); HauntedAngelToken token = new HauntedAngelToken(); - for(UUID playerId: game.getState().getPlayersInRange(controllerId, game)) { - if(!playerId.equals(controllerId)) { + for (UUID playerId : game.getState().getPlayersInRange(controllerId, game)) { + if (!playerId.equals(controllerId)) { token.putOntoBattlefield(1, game, source.getSourceId(), playerId); } } return true; } } - -class HauntedAngelToken extends Token { - public HauntedAngelToken() { - super("Angel", "3/3 black Angel creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Angel"); - power = new MageInt(3); - toughness = new MageInt(3); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HazezonTamar.java b/Mage.Sets/src/mage/cards/h/HazezonTamar.java index 9775d742ac..f360f8351a 100644 --- a/Mage.Sets/src/mage/cards/h/HazezonTamar.java +++ b/Mage.Sets/src/mage/cards/h/HazezonTamar.java @@ -27,6 +27,7 @@ */ package mage.cards.h; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -47,11 +48,9 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.HazezonTamarSandWarriorToken; import mage.players.Player; -import java.util.UUID; - /** * * @author LevelX2 @@ -66,7 +65,7 @@ public class HazezonTamar extends CardImpl { } public HazezonTamar(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{G}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{G}{W}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); @@ -110,7 +109,7 @@ class HazezonTamarEntersEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - Effect effect = new CreateTokenEffect(new HazezonTamarSandWarrior(), new PermanentsOnBattlefieldCount(new FilterControlledLandPermanent())); + Effect effect = new CreateTokenEffect(new HazezonTamarSandWarriorToken(), new PermanentsOnBattlefieldCount(new FilterControlledLandPermanent())); effect.setText("create X 1/1 Sand Warrior creature tokens that are red, green, and white, where X is the number of lands you control at that time"); DelayedTriggeredAbility delayedAbility = new AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility(effect); game.addDelayedTriggeredAbility(delayedAbility, source); @@ -119,19 +118,3 @@ class HazezonTamarEntersEffect extends OneShotEffect { return false; } } - -class HazezonTamarSandWarrior extends Token { - - public HazezonTamarSandWarrior() { - super("Sand Warrior", "1/1 Sand Warrior creature tokens that are red, green, and white"); - cardType.add(CardType.CREATURE); - color.setRed(true); - color.setGreen(true); - color.setWhite(true); - subtype.add("Sand"); - subtype.add("Warrior"); - power = new MageInt(1); - toughness = new MageInt(1); - } - -} diff --git a/Mage.Sets/src/mage/cards/h/HellionCrucible.java b/Mage.Sets/src/mage/cards/h/HellionCrucible.java index b63878eb9f..38d1afcd2c 100644 --- a/Mage.Sets/src/mage/cards/h/HellionCrucible.java +++ b/Mage.Sets/src/mage/cards/h/HellionCrucible.java @@ -27,7 +27,7 @@ */ package mage.cards.h; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -36,16 +36,13 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.HasteAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.HellionHasteToken; /** * @@ -54,18 +51,18 @@ import java.util.UUID; public class HellionCrucible extends CardImpl { public HellionCrucible(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); - + // {1}{R}, {tap}: Put a pressure counter on Hellion Crucible. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.PRESSURE.createInstance()), new ManaCostsImpl("{1}{R}")); ability.addCost(new TapSourceCost()); this.addAbility(ability); - + // {1}{R}, {tap}, Remove two pressure counters from Hellion Crucible and sacrifice it: Create a 4/4 red Hellion creature token with haste. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HellionToken(), 1), new ManaCostsImpl("{1}{R}")); + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HellionHasteToken(), 1), new ManaCostsImpl("{1}{R}")); ability.addCost(new TapSourceCost()); ability.addCost(new RemoveCountersSourceCost(CounterType.PRESSURE.createInstance(2))); ability.addCost(new SacrificeSourceCost()); @@ -81,15 +78,4 @@ public class HellionCrucible extends CardImpl { return new HellionCrucible(this); } - static class HellionToken extends Token { - public HellionToken() { - super("Hellion", "4/4 red Hellion creature token with haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Hellion"); - power = new MageInt(4); - toughness = new MageInt(4); - addAbility(HasteAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/cards/h/HellionEruption.java b/Mage.Sets/src/mage/cards/h/HellionEruption.java index 957e42f6e9..45e0c43766 100644 --- a/Mage.Sets/src/mage/cards/h/HellionEruption.java +++ b/Mage.Sets/src/mage/cards/h/HellionEruption.java @@ -27,7 +27,8 @@ */ package mage.cards.h; -import mage.MageInt; +import java.util.List; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -37,10 +38,7 @@ import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; - -import java.util.List; -import java.util.UUID; +import mage.game.permanent.token.HellionToken; /** * @@ -49,8 +47,7 @@ import java.util.UUID; public class HellionEruption extends CardImpl { public HellionEruption(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{R}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{R}"); // Sacrifice all creatures you control, then create that many 4/4 red Hellion creature tokens. this.getSpellAbility().addEffect(new HellionEruptionEffect()); @@ -92,15 +89,4 @@ class HellionEruptionEffect extends OneShotEffect { return true; } - static class HellionToken extends Token { - - HellionToken() { - super("Hellion", "4/4 red Hellion creature token"); - this.cardType.add(CardType.CREATURE); - this.color.setRed(true); - this.subtype.add("Hellion"); - this.power = new MageInt(4); - this.toughness = new MageInt(4); - } - } } diff --git a/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java b/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java index 2374e42f4c..40af1b6fcb 100644 --- a/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java +++ b/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java @@ -27,7 +27,7 @@ */ package mage.cards.h; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; @@ -49,9 +49,7 @@ import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.KaldraToken; /** * @@ -166,15 +164,3 @@ class HelmOfKaldraEffect extends OneShotEffect { return false; } } - -class KaldraToken extends Token { - - public KaldraToken() { - super("Kaldra", "legendary 4/4 colorless Avatar creature token named Kaldra"); - addSuperType(SuperType.LEGENDARY); - cardType.add(CardType.CREATURE); - subtype.add("Avatar"); - power = new MageInt(4); - toughness = new MageInt(4); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java b/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java index 9e260a8eb7..101c619b95 100644 --- a/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java +++ b/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java @@ -41,7 +41,7 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CamaridToken; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -49,18 +49,18 @@ import mage.target.common.TargetControlledCreaturePermanent; * @author fireshoes */ public class HomaridSpawningBed extends CardImpl { - + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a blue creature"); - + static { filter.add(new ColorPredicate(ObjectColor.BLUE)); } public HomaridSpawningBed(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}{U}"); // {1}{U}{U}, Sacrifice a blue creature: create X 1/1 blue Camarid creature tokens, where X is the sacrificed creature's converted mana cost. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CamaridToken(), new SacrificeCostConvertedMana("creature")), + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CamaridToken(), new SacrificeCostConvertedMana("creature")), new ManaCostsImpl("{1}{U}{U}")); ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(filter))); this.addAbility(ability); @@ -75,16 +75,3 @@ public class HomaridSpawningBed extends CardImpl { return new HomaridSpawningBed(this); } } - -class CamaridToken extends Token { - - CamaridToken() { - super("Camarid", "1/1 blue Camarid creature tokens"); - this.setOriginalExpansionSetCode("FEM"); - this.getPower().modifyBaseValue(1); - this.getToughness().modifyBaseValue(1); - this.color.setBlue(true); - this.getSubtype(null).add("Camarid"); - this.addCardType(CardType.CREATURE); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java b/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java index e4027aace8..dd1e4d8468 100644 --- a/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java +++ b/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java @@ -28,7 +28,6 @@ package mage.cards.h; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.DrawCardControllerTriggeredAbility; @@ -37,13 +36,12 @@ import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WhiteElementalToken; /** * @@ -52,7 +50,7 @@ import mage.game.permanent.token.Token; public class HoofprintsOfTheStag extends CardImpl { public HoofprintsOfTheStag(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.ENCHANTMENT},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.ENCHANTMENT}, "{1}{W}"); this.subtype.add("Elemental"); // Whenever you draw a card, you may put a hoofprint counter on Hoofprints of the Stag. @@ -72,17 +70,3 @@ public class HoofprintsOfTheStag extends CardImpl { return new HoofprintsOfTheStag(this); } } - -class WhiteElementalToken extends Token { - - WhiteElementalToken() { - super("Elemental", "4/4 white Elemental creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Elemental"); - power = new MageInt(4); - toughness = new MageInt(4); - setTokenType(2); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HorncallersChant.java b/Mage.Sets/src/mage/cards/h/HorncallersChant.java index 8ad04f9694..6496fa0632 100644 --- a/Mage.Sets/src/mage/cards/h/HorncallersChant.java +++ b/Mage.Sets/src/mage/cards/h/HorncallersChant.java @@ -28,14 +28,12 @@ package mage.cards.h; import java.util.UUID; -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.PopulateEffect; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.RhinoToken; /** * @@ -44,8 +42,7 @@ import mage.game.permanent.token.Token; public class HorncallersChant extends CardImpl { public HorncallersChant(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{7}{G}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{7}{G}"); // Create a 4/4 green Rhino creature token with trample, then populate. // (Create a token that's a copy of a creature token you control.) @@ -62,16 +59,3 @@ public class HorncallersChant extends CardImpl { return new HorncallersChant(this); } } - -class RhinoToken extends Token { - - public RhinoToken() { - super("Rhino", "4/4 green Rhino creature token with trample"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Rhino"); - power = new MageInt(4); - toughness = new MageInt(4); - addAbility(TrampleAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HornetNest.java b/Mage.Sets/src/mage/cards/h/HornetNest.java index b264d2c9ca..9665ed4aa8 100644 --- a/Mage.Sets/src/mage/cards/h/HornetNest.java +++ b/Mage.Sets/src/mage/cards/h/HornetNest.java @@ -33,16 +33,14 @@ import mage.abilities.Ability; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.DefenderAbility; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.HornetNestInsectToken; import mage.players.Player; /** @@ -52,7 +50,7 @@ import mage.players.Player; public class HornetNest extends CardImpl { public HornetNest(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); this.subtype.add("Insect"); this.power = new MageInt(0); @@ -102,19 +100,3 @@ class HornetNestDealDamageEffect extends OneShotEffect { return false; } } - -class HornetNestInsectToken extends Token { - - public HornetNestInsectToken() { - super("Insect", "1/1 green Insect creature tokens with flying and deathtouch"); - setOriginalExpansionSetCode("M15"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Insect"); - power = new MageInt(1); - toughness = new MageInt(1); - - this.addAbility(FlyingAbility.getInstance()); - this.addAbility(DeathtouchAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HornetQueen.java b/Mage.Sets/src/mage/cards/h/HornetQueen.java index b0b4367744..a4136e6d15 100644 --- a/Mage.Sets/src/mage/cards/h/HornetQueen.java +++ b/Mage.Sets/src/mage/cards/h/HornetQueen.java @@ -31,12 +31,12 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.HornetQueenInsectToken; /** * @@ -45,7 +45,7 @@ import mage.game.permanent.token.Token; public class HornetQueen extends CardImpl { public HornetQueen(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}{G}"); this.subtype.add("Insect"); this.power = new MageInt(2); @@ -68,17 +68,3 @@ public class HornetQueen extends CardImpl { return new HornetQueen(this); } } -class HornetQueenInsectToken extends Token { - - public HornetQueenInsectToken() { - super("Insect", "1/1 green Insect creature token with flying and deathtouch"); - setOriginalExpansionSetCode("M15"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Insect"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - addAbility(DeathtouchAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HourOfNeed.java b/Mage.Sets/src/mage/cards/h/HourOfNeed.java index d3bcac747f..ec971df313 100644 --- a/Mage.Sets/src/mage/cards/h/HourOfNeed.java +++ b/Mage.Sets/src/mage/cards/h/HourOfNeed.java @@ -28,11 +28,9 @@ package mage.cards.h; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.OneShotEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -40,6 +38,7 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.game.permanent.token.HourOfNeedSphinxToken; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; @@ -51,8 +50,7 @@ import mage.target.common.TargetCreaturePermanent; public class HourOfNeed extends CardImpl { public HourOfNeed(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}"); // Strive — Hour of Need costs {1}{U} more to cast for each target beyond the first. this.addAbility(new StriveAbility("{1}{U}")); @@ -91,7 +89,7 @@ class HourOfNeedExileEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - for(UUID creatureId: getTargetPointer().getTargets(game, source)) { + for (UUID creatureId : getTargetPointer().getTargets(game, source)) { Permanent creature = game.getPermanent(creatureId); if (creature != null) { controller.moveCardToExileWithInfo(creature, null, null, source.getSourceId(), game, Zone.BATTLEFIELD, true); @@ -104,17 +102,3 @@ class HourOfNeedExileEffect extends OneShotEffect { return false; } } - -class HourOfNeedSphinxToken extends Token { - - public HourOfNeedSphinxToken() { - super("Sphinx", "4/4 blue Sphinx creature token with flying"); - this.setOriginalExpansionSetCode("JOU"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Sphinx"); - power = new MageInt(4); - toughness = new MageInt(4); - addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/h/HuntedDragon.java b/Mage.Sets/src/mage/cards/h/HuntedDragon.java index 08a92628a0..18b3eb91c4 100644 --- a/Mage.Sets/src/mage/cards/h/HuntedDragon.java +++ b/Mage.Sets/src/mage/cards/h/HuntedDragon.java @@ -28,17 +28,16 @@ package mage.cards.h; import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenTargetEffect; -import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.HuntedDragonKnightToken; import mage.target.Target; import mage.target.common.TargetOpponent; @@ -49,7 +48,7 @@ import mage.target.common.TargetOpponent; public class HuntedDragon extends CardImpl { public HuntedDragon(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); this.subtype.add("Dragon"); this.power = new MageInt(6); @@ -58,7 +57,7 @@ public class HuntedDragon extends CardImpl { this.addAbility(FlyingAbility.getInstance()); this.addAbility(HasteAbility.getInstance()); // When Hunted Dragon enters the battlefield, create three 2/2 white Knight creature tokens with first strike under target opponent's control. - Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenTargetEffect(new KnightToken(), 3), false); + Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenTargetEffect(new HuntedDragonKnightToken(), 3), false); Target target = new TargetOpponent(); ability.addTarget(target); this.addAbility(ability); @@ -73,16 +72,3 @@ public class HuntedDragon extends CardImpl { return new HuntedDragon(this); } } - -class KnightToken extends Token { - KnightToken() { - super("Knight", "2/2 white Knight creature tokens with first strike"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - - subtype.add("Knight"); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(FirstStrikeAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/h/HuntedHorror.java b/Mage.Sets/src/mage/cards/h/HuntedHorror.java index 0e31960fc4..6f8483bcf2 100644 --- a/Mage.Sets/src/mage/cards/h/HuntedHorror.java +++ b/Mage.Sets/src/mage/cards/h/HuntedHorror.java @@ -28,18 +28,15 @@ package mage.cards.h; import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; -import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenTargetEffect; -import mage.abilities.keyword.ProtectionAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.HuntedCentaurToken; import mage.target.Target; import mage.target.common.TargetOpponent; @@ -50,7 +47,7 @@ import mage.target.common.TargetOpponent; public class HuntedHorror extends CardImpl { public HuntedHorror(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{B}"); this.subtype.add("Horror"); this.power = new MageInt(7); @@ -58,7 +55,7 @@ public class HuntedHorror extends CardImpl { this.addAbility(TrampleAbility.getInstance()); // When Hunted Horror enters the battlefield, create two 3/3 green Centaur creature tokens with protection from black under target opponent's control. - Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenTargetEffect(new CentaurToken(), 2), false); + Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenTargetEffect(new HuntedCentaurToken(), 2), false); Target target = new TargetOpponent(); ability.addTarget(target); this.addAbility(ability); @@ -73,16 +70,3 @@ public class HuntedHorror extends CardImpl { return new HuntedHorror(this); } } - -class CentaurToken extends Token { - CentaurToken() { - super("Centaur", "3/3 green Centaur creature tokens with protection from black"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Centaur"); - power = new MageInt(3); - toughness = new MageInt(3); - this.addAbility(ProtectionAbility.from(ObjectColor.BLACK)); - } -} - diff --git a/Mage.Sets/src/mage/cards/h/HuntedLammasu.java b/Mage.Sets/src/mage/cards/h/HuntedLammasu.java index c55affc7f3..ee29b16217 100644 --- a/Mage.Sets/src/mage/cards/h/HuntedLammasu.java +++ b/Mage.Sets/src/mage/cards/h/HuntedLammasu.java @@ -28,8 +28,6 @@ package mage.cards.h; import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,7 +35,8 @@ import mage.abilities.effects.common.CreateTokenTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.HorrorToken; import mage.target.Target; import mage.target.common.TargetOpponent; @@ -47,7 +46,7 @@ import mage.target.common.TargetOpponent; public class HuntedLammasu extends CardImpl { public HuntedLammasu(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); this.subtype.add("Lammasu"); this.power = new MageInt(5); @@ -70,14 +69,3 @@ public class HuntedLammasu extends CardImpl { return new HuntedLammasu(this); } } - -class HorrorToken extends Token { - HorrorToken() { - super("Horror", "4/4 black Horror creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Horror"); - power = new MageInt(4); - toughness = new MageInt(4); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HuntedTroll.java b/Mage.Sets/src/mage/cards/h/HuntedTroll.java index 7019957aa1..32510549c5 100644 --- a/Mage.Sets/src/mage/cards/h/HuntedTroll.java +++ b/Mage.Sets/src/mage/cards/h/HuntedTroll.java @@ -28,8 +28,6 @@ package mage.cards.h; import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,12 +35,12 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.CreateTokenTargetEffect; import mage.abilities.effects.common.RegenerateSourceEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.FaerieToken; import mage.target.Target; import mage.target.common.TargetOpponent; @@ -53,7 +51,7 @@ import mage.target.common.TargetOpponent; public class HuntedTroll extends CardImpl { public HuntedTroll(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); this.subtype.add("Troll"); this.subtype.add("Warrior"); @@ -78,15 +76,3 @@ public class HuntedTroll extends CardImpl { return new HuntedTroll(this); } } - -class FaerieToken extends Token { - FaerieToken() { - super("Faerie", "1/1 blue Faerie creature tokens with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Faerie"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/h/HydraBroodmaster.java b/Mage.Sets/src/mage/cards/h/HydraBroodmaster.java index 4be46ae48e..5f1d5866bb 100644 --- a/Mage.Sets/src/mage/cards/h/HydraBroodmaster.java +++ b/Mage.Sets/src/mage/cards/h/HydraBroodmaster.java @@ -39,7 +39,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.HydraBroodmasterToken; import mage.players.Player; /** @@ -49,7 +49,7 @@ import mage.players.Player; public class HydraBroodmaster extends CardImpl { public HydraBroodmaster(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); this.subtype.add("Hydra"); this.power = new MageInt(7); @@ -58,7 +58,7 @@ public class HydraBroodmaster extends CardImpl { // {X}{X}{G}: Monstrosity X this.addAbility(new MonstrosityAbility("{X}{X}{G}", Integer.MAX_VALUE)); // When Hydra Broodmaster becomes monstrous, create X X/X green Hydra creature tokens. - this.addAbility(new BecomesMonstrousSourceTriggeredAbility(new HydraBroodmasterEffect())); + this.addAbility(new BecomesMonstrousSourceTriggeredAbility(new HydraBroodmasterEffect())); } public HydraBroodmaster(final HydraBroodmaster card) { @@ -72,42 +72,28 @@ public class HydraBroodmaster extends CardImpl { } class HydraBroodmasterEffect extends OneShotEffect { - + public HydraBroodmasterEffect() { super(Outcome.PutCreatureInPlay); this.staticText = "create X X/X green Hydra creature tokens"; } - + public HydraBroodmasterEffect(final HydraBroodmasterEffect effect) { super(effect); } - + @Override public HydraBroodmasterEffect copy() { return new HydraBroodmasterEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { int xValue = ((BecomesMonstrousSourceTriggeredAbility) source).getMonstrosityValue(); - return new CreateTokenEffect(new HydraBroodmasterToken(xValue, xValue), xValue).apply(game, source); + return new CreateTokenEffect(new HydraBroodmasterToken(xValue, xValue), xValue).apply(game, source); } return false; } } - -class HydraBroodmasterToken extends Token { - - public HydraBroodmasterToken(int power, int toughness) { - super("Hydra", "green Hydra creature token"); - this.setOriginalExpansionSetCode("JOU"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Hydra"); - this.power = new MageInt(power); - this.toughness = new MageInt(toughness); - } - -} diff --git a/Mage.Sets/src/mage/cards/i/InfernalGenesis.java b/Mage.Sets/src/mage/cards/i/InfernalGenesis.java index dcad9a7b30..f2b82678ab 100644 --- a/Mage.Sets/src/mage/cards/i/InfernalGenesis.java +++ b/Mage.Sets/src/mage/cards/i/InfernalGenesis.java @@ -28,17 +28,15 @@ package mage.cards.i; import java.util.UUID; - -import mage.constants.*; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MinionToken; import mage.players.Player; /** @@ -48,7 +46,7 @@ import mage.players.Player; public class InfernalGenesis extends CardImpl { public InfernalGenesis(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{B}{B}"); // At the beginning of each player's upkeep, that player puts the top card of his or her library into his or her graveyard. Then he or she creates X 1/1 black Minion creature tokens, where X is that card's converted mana cost. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new InfernalGenesisEffect(), TargetController.ANY, false)); @@ -96,15 +94,3 @@ class InfernalGenesisEffect extends OneShotEffect { return new InfernalGenesisEffect(this); } } - -class MinionToken extends Token { - - public MinionToken() { - super("Minion", "1/1 black Minion creature token"); - color.setBlack(true); - cardType.add(CardType.CREATURE); - this.subtype.add("Minion"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/i/IronFistOfTheEmpire.java b/Mage.Sets/src/mage/cards/i/IronFistOfTheEmpire.java index 991b088e0d..87c9c3e822 100644 --- a/Mage.Sets/src/mage/cards/i/IronFistOfTheEmpire.java +++ b/Mage.Sets/src/mage/cards/i/IronFistOfTheEmpire.java @@ -35,12 +35,11 @@ import mage.abilities.condition.common.HateCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RoyalGuardToken; import mage.watchers.common.LifeLossOtherFromCombatWatcher; /** @@ -71,15 +70,3 @@ public class IronFistOfTheEmpire extends CardImpl { return new IronFistOfTheEmpire(this); } } - -class RoyalGuardToken extends Token { - - public RoyalGuardToken() { - super("Royal Guard", "2/2 red Soldier creature token with first strike named Royal Guard", 2, 2); - this.setOriginalExpansionSetCode("SWS"); - cardType.add(CardType.CREATURE); - color.setRed(true); - addAbility(FirstStrikeAbility.getInstance()); - subtype.add("Soldier"); - } -} diff --git a/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java b/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java index a6d1544d13..c9a1115440 100644 --- a/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java +++ b/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java @@ -27,6 +27,8 @@ */ package mage.cards.j; + +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -48,13 +50,12 @@ import mage.filter.common.FilterOpponentsCreaturePermanent; import mage.filter.predicate.permanent.CounterPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.game.permanent.token.HunterToken; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponentsCreaturePermanent; -import java.util.UUID; - /** * * @author Styxo @@ -100,16 +101,6 @@ public class JabbaTheHutt extends CardImpl { } } -class HunterToken extends Token { - - public HunterToken() { - super("Hunter", "4/4 red Hunter creature token", 4, 4); - this.setOriginalExpansionSetCode("SWS"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Hunter"); - } -} class JabbaTheHuttEffect extends OneShotEffect { diff --git a/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java b/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java index f5cef06c09..c22c95a085 100644 --- a/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java +++ b/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java @@ -27,6 +27,7 @@ */ package mage.cards.j; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -35,9 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SuperType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.CatWarriorToken; /** * @@ -46,7 +45,7 @@ import java.util.UUID; public class JeditOjanenOfEfrava extends CardImpl { public JeditOjanenOfEfrava(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Warrior"); @@ -55,7 +54,7 @@ public class JeditOjanenOfEfrava extends CardImpl { // Forestwalk this.addAbility(new ForestwalkAbility()); - + // Whenever Jedit Ojanen of Efrava attacks or blocks, create a 2/2 green Cat Warrior creature token with forestwalk. this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateTokenEffect(new CatWarriorToken()), false)); } @@ -69,18 +68,3 @@ public class JeditOjanenOfEfrava extends CardImpl { return new JeditOjanenOfEfrava(this); } } - -class CatWarriorToken extends Token { - - CatWarriorToken() { - super("Cat Warrior", "2/2 green Cat Warrior creature token with forestwalk"); - this.setOriginalExpansionSetCode("PLC"); - this.getPower().modifyBaseValue(2); - this.getToughness().modifyBaseValue(2); - this.color.setGreen(true); - this.getSubtype(null).add("Cat"); - this.getSubtype(null).add("Warrior"); - this.addCardType(CardType.CREATURE); - this.addAbility(new ForestwalkAbility()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/j/JoinTheRanks.java b/Mage.Sets/src/mage/cards/j/JoinTheRanks.java index c08e0edf9f..a2bc07d611 100644 --- a/Mage.Sets/src/mage/cards/j/JoinTheRanks.java +++ b/Mage.Sets/src/mage/cards/j/JoinTheRanks.java @@ -25,16 +25,14 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.j; import java.util.UUID; -import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.JoinTheRanksSoldierToken; /** * @@ -42,15 +40,15 @@ import mage.game.permanent.token.Token; */ public class JoinTheRanks extends CardImpl { - public JoinTheRanks (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{W}"); - this.color.setWhite(true); - + public JoinTheRanks(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{W}"); + this.color.setWhite(true); + // Create two 1/1 white Soldier Ally creature tokens. this.getSpellAbility().addEffect(new CreateTokenEffect(new JoinTheRanksSoldierToken(), 2)); } - public JoinTheRanks (final JoinTheRanks card) { + public JoinTheRanks(final JoinTheRanks card) { super(card); } @@ -60,17 +58,3 @@ public class JoinTheRanks extends CardImpl { } } -class JoinTheRanksSoldierToken extends Token { - - public JoinTheRanksSoldierToken() { - super("Soldier Ally", "1/1 white Soldier Ally creature token"); - this.setOriginalExpansionSetCode("WWK"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Soldier"); - subtype.add("Ally"); - power = new MageInt(1); - toughness = new MageInt(1); - - } -} diff --git a/Mage.Sets/src/mage/cards/j/JunglePatrol.java b/Mage.Sets/src/mage/cards/j/JunglePatrol.java index e86be6174d..476403510d 100644 --- a/Mage.Sets/src/mage/cards/j/JunglePatrol.java +++ b/Mage.Sets/src/mage/cards/j/JunglePatrol.java @@ -37,7 +37,6 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -45,7 +44,7 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WoodToken; import mage.target.common.TargetControlledPermanent; /** @@ -88,18 +87,3 @@ public class JunglePatrol extends CardImpl { return new JunglePatrol(this); } } - -class WoodToken extends Token { - - public WoodToken() { - super("Wood", "0/1 green Wall creature token with defender named Wood"); - this.setOriginalExpansionSetCode("MIR"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Wall"); - power = new MageInt(0); - toughness = new MageInt(1); - - this.addAbility(DefenderAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java b/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java index c8803fd710..353bc8682e 100644 --- a/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java +++ b/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java @@ -27,6 +27,7 @@ */ package mage.cards.k; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,11 +43,9 @@ import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.KalitasVampireToken; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -54,7 +53,7 @@ import java.util.UUID; public class KalitasBloodchiefOfGhet extends CardImpl { public KalitasBloodchiefOfGhet(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{B}{B}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Warrior"); @@ -98,19 +97,9 @@ class KalitasDestroyEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); if (permanent != null && permanent.destroy(source.getSourceId(), game, false)) { // if not destroyed or moved to other zone (replacement effect) it returns false - new CreateTokenEffect(new VampireToken(permanent.getPower().getValue(), permanent.getToughness().getValue())).apply(game, source); + new CreateTokenEffect(new KalitasVampireToken(permanent.getPower().getValue(), permanent.getToughness().getValue())).apply(game, source); } return true; } - static class VampireToken extends Token { - public VampireToken(int tokenPower, int tokenToughness) { - super("Vampire", new StringBuilder(tokenPower).append('/').append(tokenToughness).append(" black Vampire creature token").toString()); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Vampire"); - power = new MageInt(tokenPower); - toughness = new MageInt(tokenToughness); - } - } } diff --git a/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java b/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java index 471eca9c06..d70b3ad200 100644 --- a/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java +++ b/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java @@ -42,8 +42,7 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; - +import mage.game.permanent.token.KalonianTwingroveTreefolkWarriorToken; import static mage.cards.k.KalonianTwingrove.filterLands; /** @@ -51,7 +50,7 @@ import static mage.cards.k.KalonianTwingrove.filterLands; * @author LevelX2 */ public class KalonianTwingrove extends CardImpl { - + final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); static { @@ -59,7 +58,7 @@ public class KalonianTwingrove extends CardImpl { } public KalonianTwingrove(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}"); this.subtype.add("Treefolk"); this.subtype.add("Warrior"); @@ -71,7 +70,7 @@ public class KalonianTwingrove extends CardImpl { // When Kalonian Twingrove enters the battlefield, create a green Treefolk Warrior creature token with "This creature's power and toughness are each equal to the number of Forests you control." Effect effect = new CreateTokenEffect(new KalonianTwingroveTreefolkWarriorToken()); effect.setText("create a green Treefolk Warrior creature token with \"This creature's power and toughness are each equal to the number of Forests you control.\""); - this.addAbility(new EntersBattlefieldTriggeredAbility(effect,false)); + this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); } public KalonianTwingrove(final KalonianTwingrove card) { @@ -83,19 +82,3 @@ public class KalonianTwingrove extends CardImpl { return new KalonianTwingrove(this); } } - -class KalonianTwingroveTreefolkWarriorToken extends Token { - - public KalonianTwingroveTreefolkWarriorToken() { - super("Treefolk Warrior", "green Treefolk Warrior creature token with \"This creature's power and toughness are each equal to the number of Forests you control.\""); - this.setOriginalExpansionSetCode("M15"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Treefolk"); - subtype.add("Warrior"); - power = new MageInt(0); - toughness = new MageInt(0); - - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterLands), Duration.WhileOnBattlefield))); - } -} diff --git a/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java b/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java index ffc7b7177a..4ece97bb7e 100644 --- a/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java +++ b/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java @@ -41,7 +41,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SuperType; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RagavanToken; import mage.players.Player; /** @@ -106,17 +106,3 @@ class KariZevSkyshipRaiderEffect extends OneShotEffect { return new KariZevSkyshipRaiderEffect(this); } } - -class RagavanToken extends Token { - - RagavanToken() { - super("Ragavan", "legendary 2/1 red Monkey creature token named Ragavan"); - this.setOriginalExpansionSetCode("AER"); - this.addSuperType(SuperType.LEGENDARY); - this.getPower().modifyBaseValue(2); - this.getToughness().modifyBaseValue(1); - this.color.setRed(true); - this.getSubtype(null).add("Monkey"); - this.addCardType(CardType.CREATURE); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java b/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java index 945c3b4187..03396bddd0 100644 --- a/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java +++ b/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java @@ -27,6 +27,8 @@ */ package mage.cards.k; +import java.util.Objects; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -40,16 +42,13 @@ import mage.constants.Outcome; import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OgreToken; import mage.players.Player; import mage.target.targetpointer.FixedTarget; -import java.util.Objects; -import java.util.UUID; - /** * * @author jeffwadsworth @@ -57,7 +56,7 @@ import java.util.UUID; public class KazuulTyrantOfTheCliffs extends CardImpl { public KazuulTyrantOfTheCliffs(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Ogre"); this.subtype.add("Warrior"); @@ -149,15 +148,3 @@ class KazuulTyrantOfTheCliffsEffect extends OneShotEffect { return new KazuulTyrantOfTheCliffsEffect(this); } } - -class OgreToken extends Token { - - OgreToken() { - super("Ogre", "3/3 red Ogre creature"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Ogre"); - power = new MageInt(3); - toughness = new MageInt(3); - } -} diff --git a/Mage.Sets/src/mage/cards/k/KherKeep.java b/Mage.Sets/src/mage/cards/k/KherKeep.java index 318995d19f..60b3e12c56 100644 --- a/Mage.Sets/src/mage/cards/k/KherKeep.java +++ b/Mage.Sets/src/mage/cards/k/KherKeep.java @@ -27,7 +27,7 @@ */ package mage.cards.k; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,9 +39,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SuperType; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.KherKeepKoboldToken; /** * @@ -70,16 +68,3 @@ public class KherKeep extends CardImpl { return new KherKeep(this); } } - -class KherKeepKoboldToken extends Token { - - public KherKeepKoboldToken() { - super("Kobolds of Kher Keep", "0/1 red Kobold creature token named Kobolds of Kher Keep"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Kobold"); - power = new MageInt(0); - toughness = new MageInt(1); - } - -} diff --git a/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java b/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java index 17ab8f8599..9af28f9736 100644 --- a/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java +++ b/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java @@ -75,16 +75,3 @@ public class KingMacarTheGoldCursed extends CardImpl { } // -//class GoldToken extends Token { -// -// public GoldToken() { -// super("Gold", "colorless artifact token named Gold. It has \"Sacrifice this artifact: Add one mana of any color to your mana pool.\""); -// this.setOriginalExpansionSetCode("BNG"); -// cardType.add(CardType.ARTIFACT); -// subtype.add("Gold"); -// -// Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new SacrificeSourceCost()); -// ability.addChoice(new ChoiceColor()); -// this.addAbility(ability); -// } -//} diff --git a/Mage.Sets/src/mage/cards/k/KioraMasterOfTheDepths.java b/Mage.Sets/src/mage/cards/k/KioraMasterOfTheDepths.java index 398112f28d..ab1e72fa48 100644 --- a/Mage.Sets/src/mage/cards/k/KioraMasterOfTheDepths.java +++ b/Mage.Sets/src/mage/cards/k/KioraMasterOfTheDepths.java @@ -28,7 +28,6 @@ package mage.cards.k; import java.util.UUID; -import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -54,7 +53,7 @@ import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.game.command.Emblem; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OctopusToken; import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCreaturePermanent; @@ -243,16 +242,3 @@ class KioraFightEffect extends OneShotEffect { return new KioraFightEffect(this); } } - -class OctopusToken extends Token { - - public OctopusToken() { - super("Octopus", "8/8 blue Octopus creature token"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Octopus"); - power = new MageInt(8); - toughness = new MageInt(8); - this.setOriginalExpansionSetCode("BFZ"); - } -} diff --git a/Mage.Sets/src/mage/cards/k/KioraTheCrashingWave.java b/Mage.Sets/src/mage/cards/k/KioraTheCrashingWave.java index 2c1e964fea..73de5a06e4 100644 --- a/Mage.Sets/src/mage/cards/k/KioraTheCrashingWave.java +++ b/Mage.Sets/src/mage/cards/k/KioraTheCrashingWave.java @@ -28,7 +28,6 @@ package mage.cards.k; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -51,7 +50,7 @@ import mage.game.command.Emblem; import mage.game.events.DamageEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.KioraKrakenToken; import mage.target.TargetPermanent; import mage.util.CardUtil; @@ -169,16 +168,3 @@ class KioraEmblem extends Emblem { this.getAbilities().add(ability); } } - -class KioraKrakenToken extends Token { - - public KioraKrakenToken() { - super("Kraken", "9/9 blue Kraken creature token"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Kraken"); - power = new MageInt(9); - toughness = new MageInt(9); - this.setOriginalExpansionSetCode("BNG"); - } -} diff --git a/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java b/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java index 03df84a190..86011206de 100644 --- a/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java +++ b/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java @@ -28,7 +28,6 @@ package mage.cards.l; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,7 +37,6 @@ import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; @@ -46,7 +44,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.LeafdrakeRoostDrakeToken; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; @@ -57,10 +55,9 @@ import mage.target.common.TargetLandPermanent; public class LeafdrakeRoost extends CardImpl { public LeafdrakeRoost(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{G}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}{U}"); this.subtype.add("Aura"); - // Enchant land TargetPermanent auraTarget = new TargetLandPermanent(); this.getSpellAbility().addTarget(auraTarget); @@ -85,18 +82,3 @@ public class LeafdrakeRoost extends CardImpl { return new LeafdrakeRoost(this); } } - -class LeafdrakeRoostDrakeToken extends Token { - - public LeafdrakeRoostDrakeToken() { - super("Drake", "2/2 green and blue Drake creature token with flying"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setBlue(true); - subtype.add("Drake"); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(FlyingAbility.getInstance()); - } - -} diff --git a/Mage.Sets/src/mage/cards/l/LichLordOfUnx.java b/Mage.Sets/src/mage/cards/l/LichLordOfUnx.java index 53df3d63c0..bd47f0f39f 100644 --- a/Mage.Sets/src/mage/cards/l/LichLordOfUnx.java +++ b/Mage.Sets/src/mage/cards/l/LichLordOfUnx.java @@ -25,12 +25,9 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.l; import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,10 +39,11 @@ import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; 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.ZombieWizardToken; import mage.target.TargetPlayer; /** @@ -53,19 +51,18 @@ import mage.target.TargetPlayer; * @author Loki */ public class LichLordOfUnx extends CardImpl { + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Zombies you control"); static { filter.add(new SubtypePredicate("Zombie")); } - public LichLordOfUnx (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{B}"); + public LichLordOfUnx(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{B}"); this.subtype.add("Zombie"); this.subtype.add("Wizard"); - - this.power = new MageInt(2); this.toughness = new MageInt(2); @@ -78,7 +75,7 @@ public class LichLordOfUnx extends CardImpl { this.addAbility(ability); } - public LichLordOfUnx (final LichLordOfUnx card) { + public LichLordOfUnx(final LichLordOfUnx card) { super(card); } @@ -88,16 +85,3 @@ public class LichLordOfUnx extends CardImpl { } } - -class ZombieWizardToken extends Token { - ZombieWizardToken() { - super("Zombie Wizard", "1/1 blue and black Zombie Wizard creature token"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - color.setBlack(true); - subtype.add("Zombie"); - subtype.add("Wizard"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java b/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java index aa656cfc4f..cd5d8193dc 100644 --- a/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java +++ b/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java @@ -27,6 +27,7 @@ */ package mage.cards.l; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.OpponentControlsMoreCondition; @@ -40,9 +41,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.LinvalaAngelToken; /** * @@ -51,7 +50,7 @@ import java.util.UUID; public class LinvalaThePreserver extends CardImpl { public LinvalaThePreserver(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(5); @@ -59,12 +58,12 @@ public class LinvalaThePreserver extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - + // When Linvala, the Preserver enters the battlefield, if an opponent has more life than you, you gain 5 life. - this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(5), false), + this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(5), false), OpponentHasMoreLifeCondition.instance, "When {this} enters the battlefield, if an opponent has more life than you, you gain 5 life.")); - + // When Linvala enters the battlefield, if an opponent controls more creatures than you, create a 3/3 white Angel creature token with flying. this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new LinvalaAngelToken()), false), new OpponentControlsMoreCondition(new FilterCreaturePermanent()), @@ -80,17 +79,3 @@ public class LinvalaThePreserver extends CardImpl { return new LinvalaThePreserver(this); } } - -class LinvalaAngelToken extends Token { - - public LinvalaAngelToken() { - super("Angel", "3/3 white Angel creature token with flying"); - setOriginalExpansionSetCode("OGW"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Angel"); - power = new MageInt(3); - toughness = new MageInt(3); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/l/LlanowarMentor.java b/Mage.Sets/src/mage/cards/l/LlanowarMentor.java index 56b18645ef..230a0e42c7 100644 --- a/Mage.Sets/src/mage/cards/l/LlanowarMentor.java +++ b/Mage.Sets/src/mage/cards/l/LlanowarMentor.java @@ -35,12 +35,11 @@ import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.LlanowarElvesToken; /** * @@ -71,19 +70,3 @@ public class LlanowarMentor extends CardImpl { return new LlanowarMentor(this); } } - -class LlanowarElvesToken extends Token { - - public LlanowarElvesToken() { - super("Llanowar Elves", "1/1 green Elf Druid creature token named Llanowar Elves with \"{T}: Add {G} to your mana pool.\""); - this.setOriginalExpansionSetCode("FUT"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Elf"); - subtype.add("Druid"); - power = new MageInt(1); - toughness = new MageInt(1); - - this.addAbility(new GreenManaAbility()); - } -} diff --git a/Mage.Sets/src/mage/cards/l/LordOfLineage.java b/Mage.Sets/src/mage/cards/l/LordOfLineage.java index c7c25e6a96..58ae0f6938 100644 --- a/Mage.Sets/src/mage/cards/l/LordOfLineage.java +++ b/Mage.Sets/src/mage/cards/l/LordOfLineage.java @@ -42,13 +42,14 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.VampireToken; /** * * @author Loki */ public class LordOfLineage extends CardImpl { + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Other Vampire creatures"); static { @@ -56,7 +57,7 @@ public class LordOfLineage extends CardImpl { } public LordOfLineage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); this.subtype.add("Vampire"); this.color.setBlack(true); @@ -83,15 +84,3 @@ public class LordOfLineage extends CardImpl { return new LordOfLineage(this); } } - -class VampireToken extends Token { - VampireToken() { - super("Vampire", "2/2 black Vampire creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Vampire"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/l/LullmageMentor.java b/Mage.Sets/src/mage/cards/l/LullmageMentor.java index 795085f1d1..fe070b4b7e 100644 --- a/Mage.Sets/src/mage/cards/l/LullmageMentor.java +++ b/Mage.Sets/src/mage/cards/l/LullmageMentor.java @@ -43,7 +43,7 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MerfolkToken; import mage.target.TargetSpell; import mage.target.common.TargetControlledCreaturePermanent; @@ -87,15 +87,3 @@ public class LullmageMentor extends CardImpl { return new LullmageMentor(this); } } - -class MerfolkToken extends Token { - - public MerfolkToken() { - super("Merfolk", "1/1 blue Merfolk creature token"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Merfolk"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java b/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java index 441c18a40e..56584fb3ab 100644 --- a/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java +++ b/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java @@ -27,6 +27,7 @@ */ package mage.cards.m; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -53,13 +54,12 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.game.permanent.token.MarathWillOfTheWildElementalToken; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -67,7 +67,7 @@ import java.util.UUID; public class MarathWillOfTheWild extends CardImpl { public MarathWillOfTheWild(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{G}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{G}{W}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.subtype.add("Beast"); @@ -99,7 +99,7 @@ public class MarathWillOfTheWild extends CardImpl { ability.addMode(mode); // X can't be 0. - for (VariableCost cost: ability.getManaCosts().getVariableCosts()) { + for (VariableCost cost : ability.getManaCosts().getVariableCosts()) { if (cost instanceof VariableManaCost) { ((VariableManaCost) cost).setMinX(1); break; @@ -115,7 +115,7 @@ public class MarathWillOfTheWild extends CardImpl { if (sourcePermanent != null) { int amount = sourcePermanent.getCounters(game).getCount(CounterType.P1P1); if (amount > 0) { - for (VariableCost cost: ability.getManaCostsToPay().getVariableCosts()) { + for (VariableCost cost : ability.getManaCostsToPay().getVariableCosts()) { if (cost instanceof VariableManaCost) { ((VariableManaCost) cost).setMaxX(amount); break; @@ -136,7 +136,6 @@ public class MarathWillOfTheWild extends CardImpl { } } - class MarathWillOfTheWildCreateTokenEffect extends OneShotEffect { public MarathWillOfTheWildCreateTokenEffect() { @@ -168,17 +167,6 @@ class MarathWillOfTheWildCreateTokenEffect extends OneShotEffect { } } -class MarathWillOfTheWildElementalToken extends Token { - public MarathWillOfTheWildElementalToken() { - super("Elemental", "X/X green Elemental creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Elemental"); - color.setGreen(true); - power = new MageInt(0); - toughness = new MageInt(0); - } -} - class MarathWillOfTheWildRemoveCountersCost extends CostImpl { public MarathWillOfTheWildRemoveCountersCost() { diff --git a/Mage.Sets/src/mage/cards/m/MarduStrikeLeader.java b/Mage.Sets/src/mage/cards/m/MarduStrikeLeader.java index 618325857a..d1a5142c1f 100644 --- a/Mage.Sets/src/mage/cards/m/MarduStrikeLeader.java +++ b/Mage.Sets/src/mage/cards/m/MarduStrikeLeader.java @@ -35,7 +35,7 @@ import mage.abilities.keyword.DashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MarduStrikeLeaderWarriorToken; /** * @@ -44,7 +44,7 @@ import mage.game.permanent.token.Token; public class MarduStrikeLeader extends CardImpl { public MarduStrikeLeader(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(3); @@ -66,16 +66,3 @@ public class MarduStrikeLeader extends CardImpl { return new MarduStrikeLeader(this); } } - -class MarduStrikeLeaderWarriorToken extends Token { - - public MarduStrikeLeaderWarriorToken() { - super("Warrior", "2/1 black Warrior creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Warrior"); - power = new MageInt(2); - toughness = new MageInt(1); - } - -} diff --git a/Mage.Sets/src/mage/cards/m/MasterOfWaves.java b/Mage.Sets/src/mage/cards/m/MasterOfWaves.java index 46187f9b93..c6e4314817 100644 --- a/Mage.Sets/src/mage/cards/m/MasterOfWaves.java +++ b/Mage.Sets/src/mage/cards/m/MasterOfWaves.java @@ -45,6 +45,7 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.permanent.token.MasterOfWavesElementalToken; import mage.game.permanent.token.Token; /** @@ -87,17 +88,3 @@ public class MasterOfWaves extends CardImpl { return new MasterOfWaves(this); } } - -class MasterOfWavesElementalToken extends Token { - - public MasterOfWavesElementalToken() { - super("Elemental", "1/0 blue Elemental creature"); - this.cardType.add(CardType.CREATURE); - this.subtype.add("Elemental"); - - this.color.setBlue(true); - - this.power = new MageInt(1); - this.toughness = new MageInt(0); - } -} diff --git a/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java b/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java index 3d94028bc5..0ef94d095f 100644 --- a/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java +++ b/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java @@ -25,9 +25,9 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.m; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,11 +42,9 @@ import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MelokuTheCloudedMirrorToken; import mage.target.common.TargetControlledPermanent; -import java.util.UUID; - /** * @author Loki */ @@ -55,7 +53,7 @@ public class MelokuTheCloudedMirror extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("land"); public MelokuTheCloudedMirror(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Moonfolk"); this.subtype.add("Wizard"); @@ -64,7 +62,7 @@ public class MelokuTheCloudedMirror extends CardImpl { this.toughness = new MageInt(4); // Flying this.addAbility(FlyingAbility.getInstance()); - + // {1}, Return a land you control to its owner's hand: Create a 1/1 blue Illusion creature token with flying. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new MelokuTheCloudedMirrorToken(), 1), new GenericManaCost(1)); ability.addCost(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))); @@ -81,15 +79,3 @@ public class MelokuTheCloudedMirror extends CardImpl { } } - -class MelokuTheCloudedMirrorToken extends Token { - MelokuTheCloudedMirrorToken() { - super("Illusion", "1/1 blue Illusion creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Illusion"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/m/MercyKilling.java b/Mage.Sets/src/mage/cards/m/MercyKilling.java index f8c9dfef56..e1c5686fa6 100644 --- a/Mage.Sets/src/mage/cards/m/MercyKilling.java +++ b/Mage.Sets/src/mage/cards/m/MercyKilling.java @@ -28,19 +28,17 @@ package mage.cards.m; import java.util.UUID; - -import mage.constants.CardType; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.SacrificeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.target.common.TargetCreaturePermanent; -import mage.abilities.effects.OneShotEffect; -import mage.game.Game; -import mage.abilities.Ability; -import mage.game.permanent.Permanent; +import mage.constants.CardType; import mage.constants.Outcome; -import mage.game.permanent.token.Token; -import mage.MageInt; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.MercyKillingToken; +import mage.target.common.TargetCreaturePermanent; /** * @author duncant @@ -48,8 +46,8 @@ import mage.MageInt; public class MercyKilling extends CardImpl { public MercyKilling(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G/W}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G/W}"); + // Target creature's controller sacrifices it, then creates X 1/1 green and white Elf Warrior creature tokens, where X is that creature's power. this.getSpellAbility().addEffect(new SacrificeTargetEffect("Target creature's controller sacrifices it")); this.getSpellAbility().addEffect(new MercyKillingTokenEffect()); @@ -93,17 +91,3 @@ class MercyKillingTokenEffect extends OneShotEffect { } } - -class MercyKillingToken extends Token { - - public MercyKillingToken() { - super("Elf Warrior", "1/1 green and white Elf Warrior creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setWhite(true); - subtype.add("Elf"); - subtype.add("Warrior"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java b/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java index f237a240e2..56c3273bad 100644 --- a/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java +++ b/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java @@ -28,9 +28,7 @@ package mage.cards.m; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; -import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.ExileSourceCost; @@ -41,6 +39,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterSpell; @@ -49,11 +48,10 @@ import mage.filter.common.FilterInstantOrSorceryCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MetallurgicSummoningsConstructToken; import mage.game.stack.Spell; import mage.players.Player; import mage.target.targetpointer.FixedTarget; -import mage.util.RandomUtil; /** * @@ -70,7 +68,7 @@ public class MetallurgicSummonings extends CardImpl { } public MetallurgicSummonings(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}"); // Whenever you cast an instant or sorcery spell, create an X/X colorless Construct artifact creature token, where X is that spell's converted mana cost. this.addAbility(new SpellCastControllerTriggeredAbility(new MetallurgicSummoningsTokenEffect(), filter, false, true)); @@ -80,7 +78,7 @@ public class MetallurgicSummonings extends CardImpl { new MetallurgicSummoningsReturnEffect(), new ManaCostsImpl("{3}{U}{U}"), new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), ComparisonType.MORE_THAN, 5), "{3}{U}{U}, Exile {this}: Return all instant and sorcery cards from your graveyard to your hand." - + " Activate this ability only if you control six or more artifacts."); + + " Activate this ability only if you control six or more artifacts."); ability.addCost(new ExileSourceCost()); this.addAbility(ability); } @@ -154,17 +152,3 @@ class MetallurgicSummoningsReturnEffect extends OneShotEffect { return false; } } - -class MetallurgicSummoningsConstructToken extends Token { - - public MetallurgicSummoningsConstructToken(int xValue) { - super("Construct", "X/X colorless Construct artifact creature token"); - setOriginalExpansionSetCode("KLD"); - setTokenType(RandomUtil.nextInt(2) + 1); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Construct"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - } -} diff --git a/Mage.Sets/src/mage/cards/m/Metrognome.java b/Mage.Sets/src/mage/cards/m/Metrognome.java index 24dd4b6859..82aacf0dec 100644 --- a/Mage.Sets/src/mage/cards/m/Metrognome.java +++ b/Mage.Sets/src/mage/cards/m/Metrognome.java @@ -28,7 +28,6 @@ package mage.cards.m; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiscardedByOpponentTriggerAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -39,7 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.GnomeToken; /** * @@ -68,15 +67,3 @@ public class Metrognome extends CardImpl { return new Metrognome(this); } } - -class GnomeToken extends Token { - - public GnomeToken() { - super("Gnome", "1/1 colorless Gnome artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Gnome"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/m/MitoticSlime.java b/Mage.Sets/src/mage/cards/m/MitoticSlime.java index 9fc1795455..ac16cc5311 100644 --- a/Mage.Sets/src/mage/cards/m/MitoticSlime.java +++ b/Mage.Sets/src/mage/cards/m/MitoticSlime.java @@ -34,8 +34,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.OozeToken; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.Ooze2Token; /** * @@ -63,16 +62,3 @@ public class MitoticSlime extends CardImpl { } } - -class Ooze2Token extends Token { - - public Ooze2Token() { - super("Ooze", "2/2 green Ooze creature tokens with \"When this creature is put into a graveyard, create two 1/1 green Ooze creature tokens.\""); - cardType.add(CardType.CREATURE); - subtype.add("Ooze"); - color.setGreen(true); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new OozeToken(1, 1), 2), false)); - } -} diff --git a/Mage.Sets/src/mage/cards/m/MoltenBirth.java b/Mage.Sets/src/mage/cards/m/MoltenBirth.java index 2eb11f78ed..3d70db0334 100644 --- a/Mage.Sets/src/mage/cards/m/MoltenBirth.java +++ b/Mage.Sets/src/mage/cards/m/MoltenBirth.java @@ -14,7 +14,7 @@ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIALs, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING @@ -27,7 +27,7 @@ */ package mage.cards.m; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -37,11 +37,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MoltenBirthElementalToken; import mage.players.Player; -import mage.util.RandomUtil; - -import java.util.UUID; /** * @@ -50,12 +47,11 @@ import java.util.UUID; public class MoltenBirth extends CardImpl { public MoltenBirth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}{R}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}{R}"); // Create two 1/1 red Elemental creature tokens. Then flip a coin. If you win the flip, return Molten Birth to its owner's hand. this.getSpellAbility().addEffect(new MoltenBirthEffect()); - + } public MoltenBirth(final MoltenBirth card) { @@ -89,28 +85,15 @@ class MoltenBirthEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Card molten = game.getCard(source.getSourceId()); if (controller != null) { - ElementalToken token = new ElementalToken(); + MoltenBirthElementalToken token = new MoltenBirthElementalToken(); token.putOntoBattlefield(2, game, source.getSourceId(), source.getControllerId()); if (controller.flipCoin(game)) { molten.moveToZone(Zone.HAND, source.getSourceId(), game, true); - game.informPlayers(controller.getLogName() + " won the flip. " + molten.getLogName() +" is returned to "+ controller.getLogName() + "'s hand."); + game.informPlayers(controller.getLogName() + " won the flip. " + molten.getLogName() + " is returned to " + controller.getLogName() + "'s hand."); } return true; } return false; } - static class ElementalToken extends Token { - - public ElementalToken() { - super("Elemental", "1/1 red Elemental creature"); - this.setOriginalExpansionSetCode("M14"); - this.setTokenType(RandomUtil.nextInt(2) + 1); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(1); - toughness = new MageInt(1); - } - } } diff --git a/Mage.Sets/src/mage/cards/m/MonasteryMentor.java b/Mage.Sets/src/mage/cards/m/MonasteryMentor.java index 19bdbdf4cb..62a43776bf 100644 --- a/Mage.Sets/src/mage/cards/m/MonasteryMentor.java +++ b/Mage.Sets/src/mage/cards/m/MonasteryMentor.java @@ -38,7 +38,7 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MonasteryMentorToken; /** * @@ -75,16 +75,3 @@ public class MonasteryMentor extends CardImpl { return new MonasteryMentor(this); } } - -class MonasteryMentorToken extends Token { - - MonasteryMentorToken() { - super("Monk", "1/1 white Monk creature token with prowess"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Monk"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(new ProwessAbility()); - } -} diff --git a/Mage.Sets/src/mage/cards/m/MonkeyCage.java b/Mage.Sets/src/mage/cards/m/MonkeyCage.java index 5ddfd86eb9..3f8b29dc91 100644 --- a/Mage.Sets/src/mage/cards/m/MonkeyCage.java +++ b/Mage.Sets/src/mage/cards/m/MonkeyCage.java @@ -28,7 +28,6 @@ package mage.cards.m; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -43,7 +42,7 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ApeToken; /** * @@ -52,11 +51,11 @@ import mage.game.permanent.token.Token; public class MonkeyCage extends CardImpl { public MonkeyCage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); // When a creature enters the battlefield, sacrifice Monkey Cage and create X 2/2 green Ape creature tokens, where X is that creature's converted mana cost. Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceEffect(), - new FilterCreaturePermanent("a creature"), false, SetTargetPointer.PERMANENT, ""); + new FilterCreaturePermanent("a creature"), false, SetTargetPointer.PERMANENT, ""); ability.addEffect(new MonkeyCageEffect()); this.addAbility(ability); } @@ -88,22 +87,11 @@ class MonkeyCageEffect extends OneShotEffect { } public boolean apply(Game game, Ability source) { - Permanent creature = game.getPermanentOrLKIBattlefield(getTargetPointer().getFirst(game, source)); - if(creature != null) { - int cmc = creature.getConvertedManaCost(); - return new CreateTokenEffect(new ApeToken(), cmc).apply(game, source); - } - return false; - } -} - -class ApeToken extends Token { - ApeToken() { - super("Ape", "2/2 green Ape creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Ape"); - power = new MageInt(2); - toughness = new MageInt(2); + Permanent creature = game.getPermanentOrLKIBattlefield(getTargetPointer().getFirst(game, source)); + if (creature != null) { + int cmc = creature.getConvertedManaCost(); + return new CreateTokenEffect(new ApeToken(), cmc).apply(game, source); + } + return false; } } diff --git a/Mage.Sets/src/mage/cards/m/MysticGenesis.java b/Mage.Sets/src/mage/cards/m/MysticGenesis.java index ae3f392604..51216b1973 100644 --- a/Mage.Sets/src/mage/cards/m/MysticGenesis.java +++ b/Mage.Sets/src/mage/cards/m/MysticGenesis.java @@ -28,16 +28,15 @@ package mage.cards.m; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.MysticGenesisOozeToken; import mage.game.stack.StackObject; import mage.target.TargetSpell; @@ -48,7 +47,7 @@ import mage.target.TargetSpell; public class MysticGenesis extends CardImpl { public MysticGenesis(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G}{U}{U}"); // Counter target spell. Create an X/X green Ooze creature token, where X is that spell's converted mana cost. this.getSpellAbility().addTarget(new TargetSpell()); @@ -92,16 +91,3 @@ class MysticGenesisEffect extends OneShotEffect { return false; } } - -class MysticGenesisOozeToken extends Token { - - public MysticGenesisOozeToken(int xValue) { - super("Ooze", "X/X green Ooze creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Ooze"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - setOriginalExpansionSetCode("RTR"); - } -} diff --git a/Mage.Sets/src/mage/cards/n/NahiriTheLithomancer.java b/Mage.Sets/src/mage/cards/n/NahiriTheLithomancer.java index 289300c2c2..342142832a 100644 --- a/Mage.Sets/src/mage/cards/n/NahiriTheLithomancer.java +++ b/Mage.Sets/src/mage/cards/n/NahiriTheLithomancer.java @@ -32,22 +32,13 @@ import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.CanBeYourCommanderAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.continuous.BoostEquippedEffect; -import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; -import mage.abilities.keyword.DoubleStrikeAbility; -import mage.abilities.keyword.EquipAbility; -import mage.abilities.keyword.IndestructibleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; import mage.constants.CardType; -import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterCard; @@ -56,6 +47,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.KorSoldierToken; +import mage.game.permanent.token.NahiriTheLithomancerEquipmentToken; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.Target; @@ -202,20 +194,3 @@ class NahiriTheLithomancerSecondAbilityEffect extends OneShotEffect { return false; } } - -class NahiriTheLithomancerEquipmentToken extends Token { - - NahiriTheLithomancerEquipmentToken() { - super("Stoneforged Blade", "colorless Equipment artifact token named Stoneforged Blade with indestructible, \"Equipped creature gets +5/+5 and has double strike,\" and equip {0}"); - cardType.add(CardType.ARTIFACT); - subtype.add("Equipment"); - - this.addAbility(IndestructibleAbility.getInstance()); - - Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(5, 5)); - ability.addEffect(new GainAbilityAttachedEffect(DoubleStrikeAbility.getInstance(), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield, "and has double strike")); - this.addAbility(ability); - - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(0))); - } -} diff --git a/Mage.Sets/src/mage/cards/n/NestOfScarabs.java b/Mage.Sets/src/mage/cards/n/NestOfScarabs.java index 55762b3cec..0e9c4a3e45 100644 --- a/Mage.Sets/src/mage/cards/n/NestOfScarabs.java +++ b/Mage.Sets/src/mage/cards/n/NestOfScarabs.java @@ -28,7 +28,6 @@ package mage.cards.n; import java.util.UUID; -import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.dynamicvalue.common.EffectKeyValue; import mage.abilities.effects.common.CreateTokenEffect; @@ -40,7 +39,7 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.NestOfScarabsBlackInsectToken; /** * @@ -108,15 +107,3 @@ class NestOfScarabsTriggeredAbility extends TriggeredAbilityImpl { return "Whenever you put one or more -1/-1 counters on a creature, create that many 1/1 black Insect tokens."; } } - -class NestOfScarabsBlackInsectToken extends Token { - - NestOfScarabsBlackInsectToken() { - super("Insect", "1/1 black Insect token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Insect"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/n/NezumiShortfang.java b/Mage.Sets/src/mage/cards/n/NezumiShortfang.java index 148c8111ea..26a8603a79 100644 --- a/Mage.Sets/src/mage/cards/n/NezumiShortfang.java +++ b/Mage.Sets/src/mage/cards/n/NezumiShortfang.java @@ -89,7 +89,7 @@ class StabwhiskerTheOdious extends Token { StabwhiskerTheOdious() { super("Stabwhisker the Odious", ""); - addSuperType(SuperType.LEGENDARY); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setBlack(true); subtype.add("Rat"); diff --git a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java b/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java index 02ad58399d..8cee85476c 100644 --- a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java +++ b/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java @@ -44,7 +44,7 @@ import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.NissaSageAnimistToken; import mage.players.Player; import mage.target.common.TargetLandPermanent; @@ -122,20 +122,6 @@ class NissaSageAnimistPlusOneEffect extends OneShotEffect { } } -class NissaSageAnimistToken extends Token { - - NissaSageAnimistToken() { - super("Ashaya, the Awoken World", "legendary 4/4 green Elemental creature token named Ashaya, the Awoken World"); - this.setOriginalExpansionSetCode("ORI"); - this.addSuperType(SuperType.LEGENDARY); - this.getPower().modifyBaseValue(4); - this.getToughness().modifyBaseValue(4); - this.color.setGreen(true); - this.getSubtype(null).add("Elemental"); - this.addCardType(CardType.CREATURE); - } -} - class NissaSageAnimistMinusSevenEffect extends ContinuousEffectImpl { NissaSageAnimistMinusSevenEffect() { diff --git a/Mage.Sets/src/mage/cards/n/NuisanceEngine.java b/Mage.Sets/src/mage/cards/n/NuisanceEngine.java index 5cc7c8701d..3da02be53c 100644 --- a/Mage.Sets/src/mage/cards/n/NuisanceEngine.java +++ b/Mage.Sets/src/mage/cards/n/NuisanceEngine.java @@ -28,9 +28,6 @@ package mage.cards.n; import java.util.UUID; - -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +35,9 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PestToken; /** * @author Loki @@ -47,7 +45,7 @@ import mage.game.permanent.token.Token; public class NuisanceEngine extends CardImpl { public NuisanceEngine(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new PestToken(), 1), new GenericManaCost(2)); ability.addCost(new TapSourceCost()); this.addAbility(ability); @@ -62,15 +60,3 @@ public class NuisanceEngine extends CardImpl { return new NuisanceEngine(this); } } - -class PestToken extends Token { - public PestToken() { - super("Pest", "0/1 colorless Pest artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Pest"); - power = new MageInt(0); - toughness = new MageInt(1); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/o/OjutaisSummons.java b/Mage.Sets/src/mage/cards/o/OjutaisSummons.java index 090cc37e97..65895b4683 100644 --- a/Mage.Sets/src/mage/cards/o/OjutaisSummons.java +++ b/Mage.Sets/src/mage/cards/o/OjutaisSummons.java @@ -28,14 +28,12 @@ package mage.cards.o; import java.util.UUID; -import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ReboundAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.DjinnMonkToken; /** * @@ -44,11 +42,11 @@ import mage.game.permanent.token.Token; public class OjutaisSummons extends CardImpl { public OjutaisSummons(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U}{U}"); // Create a 2/2 blue Djinn Monk creature token with flying. this.getSpellAbility().addEffect(new CreateTokenEffect(new DjinnMonkToken())); - + // Rebound this.addAbility(new ReboundAbility()); } @@ -62,16 +60,3 @@ public class OjutaisSummons extends CardImpl { return new OjutaisSummons(this); } } - -class DjinnMonkToken extends Token { - DjinnMonkToken() { - super("Djinn Monk", "2/2 blue Djinn Monk creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Djinn"); - subtype.add("Monk"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java b/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java index 1140cc4062..217a8a7da1 100644 --- a/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java +++ b/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java @@ -27,6 +27,7 @@ */ package mage.cards.o; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; @@ -41,11 +42,9 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OmnathElementalToken; import mage.target.common.TargetCreatureOrPlayer; -import java.util.UUID; - /** * * @author fireshoes @@ -60,7 +59,7 @@ public class OmnathLocusOfRage extends CardImpl { } public OmnathLocusOfRage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{R}{G}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(5); @@ -84,19 +83,3 @@ public class OmnathLocusOfRage extends CardImpl { return new OmnathLocusOfRage(this); } } - -class OmnathElementalToken extends Token { - - OmnathElementalToken() { - super("Elemental", "5/5 red and green Elemental creature token"); - setTokenType(2); - setOriginalExpansionSetCode("BFZ"); - cardType.add(CardType.CREATURE); - subtype.add("Elemental"); - - color.setRed(true); - color.setGreen(true); - power = new MageInt(5); - toughness = new MageInt(5); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/o/OneDozenEyes.java b/Mage.Sets/src/mage/cards/o/OneDozenEyes.java index 799bdda360..7157684dd4 100644 --- a/Mage.Sets/src/mage/cards/o/OneDozenEyes.java +++ b/Mage.Sets/src/mage/cards/o/OneDozenEyes.java @@ -28,7 +28,6 @@ package mage.cards.o; import java.util.UUID; -import mage.MageInt; import mage.abilities.Mode; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.EntwineAbility; @@ -36,7 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.InsectToken; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OneDozenEyesBeastToken; /** * @@ -45,8 +44,7 @@ import mage.game.permanent.token.Token; public class OneDozenEyes extends CardImpl { public OneDozenEyes(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{G}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{G}"); // Choose one - this.getSpellAbility().getModes().setMinModes(1); @@ -55,7 +53,7 @@ public class OneDozenEyes extends CardImpl { this.getSpellAbility().addEffect(new CreateTokenEffect(new OneDozenEyesBeastToken())); // or create five 1/1 green Insect creature tokens. Mode mode = new Mode(); - mode.getEffects().add(new CreateTokenEffect(new InsectToken(),5)); + mode.getEffects().add(new CreateTokenEffect(new InsectToken(), 5)); this.getSpellAbility().addMode(mode); // Entwine {G}{G}{G} this.addAbility(new EntwineAbility("{G}{G}{G}")); @@ -70,16 +68,3 @@ public class OneDozenEyes extends CardImpl { return new OneDozenEyes(this); } } - -class OneDozenEyesBeastToken extends Token { - - public OneDozenEyesBeastToken() { - super("Beast", "5/5 green Beast creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Beast"); - power = new MageInt(5); - toughness = new MageInt(5); - } - -} diff --git a/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java b/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java index 349bb6c16a..d6c4e4802d 100644 --- a/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java +++ b/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java @@ -44,7 +44,7 @@ import mage.constants.Outcome; import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OonaQueenFaerieToken; import mage.players.Player; import mage.target.common.TargetOpponent; @@ -55,7 +55,7 @@ import mage.target.common.TargetOpponent; public class OonaQueenOfTheFae extends CardImpl { public OonaQueenOfTheFae(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U/B}{U/B}{U/B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U/B}{U/B}{U/B}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Faerie"); this.subtype.add("Wizard"); @@ -109,7 +109,7 @@ class OonaQueenOfTheFaeEffect extends OneShotEffect { if (choice.getColor() != null) { int cardsWithColor = 0; int cardsToExile = Math.min(opponent.getLibrary().size(), source.getManaCostsToPay().getX()); - for(int i = 0; i < cardsToExile; i++) { + for (int i = 0; i < cardsToExile; i++) { Card card = opponent.getLibrary().removeFromTop(game); if (card != null) { if (card.getColor(game).contains(choice.getColor())) { @@ -121,23 +121,9 @@ class OonaQueenOfTheFaeEffect extends OneShotEffect { if (cardsWithColor > 0) { new CreateTokenEffect(new OonaQueenFaerieToken(), cardsWithColor).apply(game, source); } - game.informPlayers(new StringBuilder("Oona: ").append(cardsWithColor).append(" Token").append(cardsWithColor != 1?"s":"").append(" created").toString()); + game.informPlayers(new StringBuilder("Oona: ").append(cardsWithColor).append(" Token").append(cardsWithColor != 1 ? "s" : "").append(" created").toString()); return true; } return false; } } - -class OonaQueenFaerieToken extends Token { - OonaQueenFaerieToken() { - super("Faerie Rogue", "1/1 blue and black Faerie Rogue creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - color.setBlack(true); - subtype.add("Faerie"); - subtype.add("Rogue"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/o/Ophiomancer.java b/Mage.Sets/src/mage/cards/o/Ophiomancer.java index 3f5d4646fd..ea2e7d7d80 100644 --- a/Mage.Sets/src/mage/cards/o/Ophiomancer.java +++ b/Mage.Sets/src/mage/cards/o/Ophiomancer.java @@ -29,19 +29,18 @@ package mage.cards.o; import java.util.UUID; import mage.MageInt; -import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OphiomancerSnakeToken; /** * @@ -73,17 +72,3 @@ public class Ophiomancer extends CardImpl { return new Ophiomancer(this); } } - -class OphiomancerSnakeToken extends Token { - - public OphiomancerSnakeToken() { - super("Snake", "1/1 black Snake creature token with deathtouch"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Snake"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(DeathtouchAbility.getInstance()); - } - -} diff --git a/Mage.Sets/src/mage/cards/o/OrderedMigration.java b/Mage.Sets/src/mage/cards/o/OrderedMigration.java index 66c3c68451..179b6d6e62 100644 --- a/Mage.Sets/src/mage/cards/o/OrderedMigration.java +++ b/Mage.Sets/src/mage/cards/o/OrderedMigration.java @@ -28,14 +28,12 @@ package mage.cards.o; import java.util.UUID; -import mage.MageInt; import mage.abilities.dynamicvalue.common.DomainValue; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.OrderedMigrationBirdToken; /** * @@ -48,7 +46,7 @@ public class OrderedMigration extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}{U}"); // Domain - Create a 1/1 blue Bird creature token with flying for each basic land type among lands you control. - this.getSpellAbility().addEffect(new CreateTokenEffect(new BirdToken(), new DomainValue())); + this.getSpellAbility().addEffect(new CreateTokenEffect(new OrderedMigrationBirdToken(), new DomainValue())); } public OrderedMigration(final OrderedMigration card) { @@ -63,15 +61,3 @@ public class OrderedMigration extends CardImpl { // TODO: There is a player rewards token for this (http://magiccards.info/extra/token/player-rewards-2001/bird.html), // but player rewards tokens are not downloaded... -class BirdToken extends Token { - - public BirdToken() { - super("Bird", "1/1 blue Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Bird"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java b/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java index 4fd1551bf5..f8fabc040d 100644 --- a/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java +++ b/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java @@ -27,6 +27,7 @@ */ package mage.cards.o; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,15 +41,11 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; +import mage.game.permanent.token.OviyaPashiriSageLifecrafterToken; import mage.game.permanent.token.ServoToken; -import mage.game.permanent.token.Token; import mage.players.Player; -import mage.util.RandomUtil; - -import java.util.UUID; /** * @@ -57,7 +54,7 @@ import java.util.UUID; public class OviyaPashiriSageLifecrafter extends CardImpl { public OviyaPashiriSageLifecrafter(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); @@ -110,19 +107,3 @@ class OviyaPashiriSageLifecrafterEffect extends OneShotEffect { return false; } } - -class OviyaPashiriSageLifecrafterToken extends Token { - - final static FilterControlledCreaturePermanent filterCreature = new FilterControlledCreaturePermanent("creatures you control"); - - OviyaPashiriSageLifecrafterToken(int number) { - super("Construct", "an X/X colorless Construct artifact creature token, where X is the number of creatures you control"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Construct"); - setOriginalExpansionSetCode("KLD"); - setTokenType(RandomUtil.nextInt(2) + 1); - power = new MageInt(number); - toughness = new MageInt(number); - } -} diff --git a/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java b/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java index 3da63d175b..5f885d8e9e 100644 --- a/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java +++ b/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java @@ -27,6 +27,7 @@ */ package mage.cards.o; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,9 +37,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SuperType; import mage.filter.common.FilterSpiritOrArcaneCard; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.AnotherSpiritToken; /** * @author Loki @@ -48,7 +47,7 @@ public class OyobiWhoSplitTheHeavens extends CardImpl { private static final FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); public OyobiWhoSplitTheHeavens(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{W}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); @@ -68,16 +67,3 @@ public class OyobiWhoSplitTheHeavens extends CardImpl { return new OyobiWhoSplitTheHeavens(this); } } - -class AnotherSpiritToken extends Token { - AnotherSpiritToken() { - super("Spirit", "3/3 white Spirit creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Spirit"); - power = new MageInt(3); - toughness = new MageInt(3); - this.addAbility(FlyingAbility.getInstance()); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/p/PactOfTheTitan.java b/Mage.Sets/src/mage/cards/p/PactOfTheTitan.java index 21da8581c8..ce195f1a0e 100644 --- a/Mage.Sets/src/mage/cards/p/PactOfTheTitan.java +++ b/Mage.Sets/src/mage/cards/p/PactOfTheTitan.java @@ -28,7 +28,6 @@ package mage.cards.p; import java.util.UUID; -import mage.MageInt; import mage.abilities.common.delayed.PactDelayedTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; @@ -36,7 +35,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.GiantToken; /** * @@ -45,10 +44,10 @@ import mage.game.permanent.token.Token; public class PactOfTheTitan extends CardImpl { public PactOfTheTitan(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{0}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{0}"); this.color.setRed(true); - + // Create a 4/4 red Giant creature token. this.getSpellAbility().addEffect(new CreateTokenEffect(new GiantToken())); // At the beginning of your next upkeep, pay {4}{R}. If you don't, you lose the game. @@ -64,16 +63,3 @@ public class PactOfTheTitan extends CardImpl { return new PactOfTheTitan(this); } } - -class GiantToken extends Token { - - public GiantToken() { - super("Giant", "4/4 red Giant creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Giant"); - color.setRed(true); - power = new MageInt(4); - toughness = new MageInt(4); - } -} - diff --git a/Mage.Sets/src/mage/cards/p/PatagiaViper.java b/Mage.Sets/src/mage/cards/p/PatagiaViper.java index 29d6cac51b..9ab2a92521 100644 --- a/Mage.Sets/src/mage/cards/p/PatagiaViper.java +++ b/Mage.Sets/src/mage/cards/p/PatagiaViper.java @@ -38,7 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PatagiaViperSnakeToken; import mage.watchers.common.ManaSpentToCastWatcher; /** @@ -48,7 +48,7 @@ import mage.watchers.common.ManaSpentToCastWatcher; public class PatagiaViper extends CardImpl { public PatagiaViper(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); this.subtype.add("Snake"); this.power = new MageInt(2); @@ -56,10 +56,10 @@ public class PatagiaViper extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - + // When Patagia Viper enters the battlefield, create two 1/1 green and blue Snake creature tokens. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PatagiaViperSnakeToken(), 2), false)); - + // When Patagia Viper enters the battlefield, sacrifice it unless {U} was spent to cast it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessConditionEffect(new ManaWasSpentCondition(ColoredManaSymbol.U)), false), new ManaSpentToCastWatcher()); } @@ -73,17 +73,3 @@ public class PatagiaViper extends CardImpl { return new PatagiaViper(this); } } - -class PatagiaViperSnakeToken extends Token { - - PatagiaViperSnakeToken() { - super("Snake", "1/1 green and blue Snake creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setBlue(true); - subtype.add("Snake"); - power = new MageInt(1); - toughness = new MageInt(1); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/p/Pentavus.java b/Mage.Sets/src/mage/cards/p/Pentavus.java index ce39ca2aff..5568b3300b 100644 --- a/Mage.Sets/src/mage/cards/p/Pentavus.java +++ b/Mage.Sets/src/mage/cards/p/Pentavus.java @@ -28,8 +28,6 @@ package mage.cards.p; import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -39,14 +37,14 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PentaviteToken; import mage.target.common.TargetControlledPermanent; /** @@ -62,14 +60,14 @@ public class Pentavus extends CardImpl { } public Pentavus(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{7}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}"); this.subtype.add("Construct"); this.power = new MageInt(0); this.toughness = new MageInt(0); // Pentavus enters the battlefield with five +1/+1 counters on it. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)), - "with five +1/+1 counters on it")); + "with five +1/+1 counters on it")); // {1}, Remove a +1/+1 counter from Pentavus: Create a 1/1 colorless Pentavite artifact creature token with flying. Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new PentaviteToken(), 1), new GenericManaCost(1)); @@ -91,16 +89,3 @@ public class Pentavus extends CardImpl { return new Pentavus(this); } } - -class PentaviteToken extends Token { - public PentaviteToken() { - super("Pentavite", "1/1 colorless Pentavite artifact creature token with flying"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Pentavite"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/p/PenumbraBobcat.java b/Mage.Sets/src/mage/cards/p/PenumbraBobcat.java index 8780ea5555..efa583fdd5 100644 --- a/Mage.Sets/src/mage/cards/p/PenumbraBobcat.java +++ b/Mage.Sets/src/mage/cards/p/PenumbraBobcat.java @@ -28,13 +28,13 @@ package mage.cards.p; import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.PenumbraBobcatToken; /** * @@ -43,7 +43,7 @@ import mage.game.permanent.token.Token; public class PenumbraBobcat extends CardImpl { public PenumbraBobcat(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); this.subtype.add("Cat"); this.power = new MageInt(2); @@ -60,14 +60,3 @@ public class PenumbraBobcat extends CardImpl { return new PenumbraBobcat(this); } } - -class PenumbraBobcatToken extends Token { - PenumbraBobcatToken() { - super("Cat", "2/1 black Cat creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Cat"); - power = new MageInt(2); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/p/PenumbraKavu.java b/Mage.Sets/src/mage/cards/p/PenumbraKavu.java index c06df0711e..c9f872aa7b 100644 --- a/Mage.Sets/src/mage/cards/p/PenumbraKavu.java +++ b/Mage.Sets/src/mage/cards/p/PenumbraKavu.java @@ -28,13 +28,13 @@ package mage.cards.p; import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.PenumbraKavuToken; /** * @@ -43,7 +43,7 @@ import mage.game.permanent.token.Token; public class PenumbraKavu extends CardImpl { public PenumbraKavu(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}"); this.subtype.add("Kavu"); this.power = new MageInt(3); @@ -60,14 +60,3 @@ public class PenumbraKavu extends CardImpl { return new PenumbraKavu(this); } } - -class PenumbraKavuToken extends Token { - PenumbraKavuToken() { - super("Kavu", "3/3 black Kavu creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Kavu"); - power = new MageInt(3); - toughness = new MageInt(3); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/p/PenumbraSpider.java b/Mage.Sets/src/mage/cards/p/PenumbraSpider.java index 14eed30be4..c3cb9f8570 100644 --- a/Mage.Sets/src/mage/cards/p/PenumbraSpider.java +++ b/Mage.Sets/src/mage/cards/p/PenumbraSpider.java @@ -35,7 +35,7 @@ import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PenumbraSpiderToken; /** * @@ -44,7 +44,7 @@ import mage.game.permanent.token.Token; public class PenumbraSpider extends CardImpl { public PenumbraSpider(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); this.subtype.add("Spider"); this.power = new MageInt(2); @@ -53,7 +53,7 @@ public class PenumbraSpider extends CardImpl { // Reach this.addAbility(ReachAbility.getInstance()); // When Penumbra Spider dies, create a 2/4 black Spider creature token with reach. - this.addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new SpiderToken()), false)); + this.addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new PenumbraSpiderToken()), false)); } public PenumbraSpider(final PenumbraSpider card) { @@ -65,16 +65,3 @@ public class PenumbraSpider extends CardImpl { return new PenumbraSpider(this); } } - -class SpiderToken extends Token { - - public SpiderToken() { - super("Spider", "2/4 black Spider creature token with reach"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Spider"); - power = new MageInt(2); - toughness = new MageInt(4); - addAbility(ReachAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/p/PenumbraWurm.java b/Mage.Sets/src/mage/cards/p/PenumbraWurm.java index 9f46401fbb..d1ac7efa51 100644 --- a/Mage.Sets/src/mage/cards/p/PenumbraWurm.java +++ b/Mage.Sets/src/mage/cards/p/PenumbraWurm.java @@ -35,7 +35,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PenumbraWurmToken; /** * @@ -44,7 +44,7 @@ import mage.game.permanent.token.Token; public class PenumbraWurm extends CardImpl { public PenumbraWurm(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}"); this.subtype.add("Wurm"); this.power = new MageInt(6); @@ -66,16 +66,3 @@ public class PenumbraWurm extends CardImpl { return new PenumbraWurm(this); } } - -class PenumbraWurmToken extends Token { - PenumbraWurmToken() { - super("Wurm", "6/6 black Wurm creature token with trample"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Wurm"); - power = new MageInt(6); - toughness = new MageInt(6); - - this.addAbility(TrampleAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java b/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java index 39d4c1ed02..3a62889442 100644 --- a/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java +++ b/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java @@ -27,6 +27,7 @@ */ package mage.cards.p; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,7 +37,6 @@ import mage.abilities.dynamicvalue.common.DevotionCount; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; -import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.Card; import mage.cards.CardImpl; @@ -44,13 +44,11 @@ import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PharikaSnakeToken; import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; -import java.util.UUID; - /** * * @author LevelX2 @@ -58,7 +56,7 @@ import java.util.UUID; public class PharikaGodOfAffliction extends CardImpl { public PharikaGodOfAffliction(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{1}{B}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); @@ -124,17 +122,3 @@ class PharikaExileEffect extends OneShotEffect { } } - -class PharikaSnakeToken extends Token { - - public PharikaSnakeToken() { - super("Snake", "1/1 black and green Snake enchantment creature token with deathtouch", 1, 1); - this.setOriginalExpansionSetCode("JOU"); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - subtype.add("Snake"); - color.setBlack(true); - color.setGreen(true); - this.addAbility(DeathtouchAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianRebirth.java b/Mage.Sets/src/mage/cards/p/PhyrexianRebirth.java index 8870e2879b..cbcb3af175 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianRebirth.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianRebirth.java @@ -28,7 +28,6 @@ package mage.cards.p; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,7 +37,7 @@ import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PhyrexianRebirthHorrorToken; /** * @@ -47,7 +46,7 @@ import mage.game.permanent.token.Token; public class PhyrexianRebirth extends CardImpl { public PhyrexianRebirth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{W}{W}"); // Destroy all creatures, then create an X/X colorless Horror artifact creature token, where X is the number of creatures destroyed this way. this.getSpellAbility().addEffect(new PhyrexianRebirthEffect()); @@ -79,7 +78,7 @@ public class PhyrexianRebirth extends CardImpl { for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) { count += permanent.destroy(source.getSourceId(), game, false) ? 1 : 0; } - HorrorToken horrorToken = new HorrorToken(); + PhyrexianRebirthHorrorToken horrorToken = new PhyrexianRebirthHorrorToken(); horrorToken.getPower().modifyBaseValue(count); horrorToken.getToughness().modifyBaseValue(count); horrorToken.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); @@ -93,15 +92,4 @@ public class PhyrexianRebirth extends CardImpl { } - class HorrorToken extends Token { - - public HorrorToken() { - super("Horror", "X/X colorless Horror artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Horror"); - power = new MageInt(0); - toughness = new MageInt(0); - } - } } diff --git a/Mage.Sets/src/mage/cards/p/Pongify.java b/Mage.Sets/src/mage/cards/p/Pongify.java index a0f9369650..984f8a58d5 100644 --- a/Mage.Sets/src/mage/cards/p/Pongify.java +++ b/Mage.Sets/src/mage/cards/p/Pongify.java @@ -28,8 +28,6 @@ package mage.cards.p; import java.util.UUID; - -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -39,7 +37,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PongifyApeToken; import mage.target.common.TargetCreaturePermanent; /** @@ -49,8 +47,7 @@ import mage.target.common.TargetCreaturePermanent; public class Pongify extends CardImpl { public Pongify(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}"); // Destroy target creature. It can't be regenerated. That creature's controller creates a 3/3 green Ape creature token. this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); @@ -92,7 +89,7 @@ class PongifyEffect extends OneShotEffect { if (permanent != null) { UUID controllerId = permanent.getControllerId(); if (controllerId != null) { - new ApeToken().putOntoBattlefield(1, game, source.getSourceId(), controllerId); + new PongifyApeToken().putOntoBattlefield(1, game, source.getSourceId(), controllerId); return true; } } @@ -100,17 +97,3 @@ class PongifyEffect extends OneShotEffect { return false; } } - -class ApeToken extends Token { - - public ApeToken() { - super("Ape", "3/3 green Ape"); - this.setOriginalExpansionSetCode("PLC"); - cardType.add(CardType.CREATURE); - subtype.add("Ape"); - color.setGreen(true); - power = new MageInt(3); - toughness = new MageInt(3); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/p/PredatoryAdvantage.java b/Mage.Sets/src/mage/cards/p/PredatoryAdvantage.java index 5617f4faeb..be31794fba 100644 --- a/Mage.Sets/src/mage/cards/p/PredatoryAdvantage.java +++ b/Mage.Sets/src/mage/cards/p/PredatoryAdvantage.java @@ -28,21 +28,20 @@ package mage.cards.p; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.WatcherScope; -import mage.constants.Zone; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.Condition; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.WatcherScope; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.LizardToken; import mage.game.stack.Spell; import mage.watchers.Watcher; @@ -53,10 +52,7 @@ import mage.watchers.Watcher; public class PredatoryAdvantage extends CardImpl { public PredatoryAdvantage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{R}{G}"); - - - + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}{G}"); // At the beginning of each opponent's end step, if that player didn't cast a creature spell this turn, create a 2/2 green Lizard creature token. this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LizardToken()), TargetController.OPPONENT, new DidNotCastCreatureCondition(), false), new CastCreatureWatcher()); @@ -120,15 +116,3 @@ class CastCreatureWatcher extends Watcher { return new CastCreatureWatcher(this); } } - -class LizardToken extends Token { - - public LizardToken() { - super("Lizard", "2/2 green Lizard creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Lizard"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/p/PrincessLeia.java b/Mage.Sets/src/mage/cards/p/PrincessLeia.java index d4c90d507b..36ba8248d0 100644 --- a/Mage.Sets/src/mage/cards/p/PrincessLeia.java +++ b/Mage.Sets/src/mage/cards/p/PrincessLeia.java @@ -27,6 +27,7 @@ */ package mage.cards.p; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,9 +46,7 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.RebelToken; /** * @@ -66,7 +65,7 @@ public class PrincessLeia extends CardImpl { } public PrincessLeia(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{U}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{U}{W}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rebel"); @@ -94,14 +93,3 @@ public class PrincessLeia extends CardImpl { return new PrincessLeia(this); } } - -class RebelToken extends Token { - - public RebelToken() { - super("Rebel", "1/1 white Rebel creature token", 1, 1); - this.setOriginalExpansionSetCode("SWS"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Rebel"); - } -} diff --git a/Mage.Sets/src/mage/cards/p/PromiseOfPower.java b/Mage.Sets/src/mage/cards/p/PromiseOfPower.java index e57cfe6247..54e5574edf 100644 --- a/Mage.Sets/src/mage/cards/p/PromiseOfPower.java +++ b/Mage.Sets/src/mage/cards/p/PromiseOfPower.java @@ -28,7 +28,6 @@ package mage.cards.p; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.Effect; @@ -37,13 +36,12 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.abilities.keyword.EntwineAbility; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PromiseOfPowerDemonToken; import mage.players.Player; /** @@ -53,15 +51,14 @@ import mage.players.Player; public class PromiseOfPower extends CardImpl { public PromiseOfPower(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{B}{B}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}{B}{B}"); // Choose one - this.getSpellAbility().getModes().setMinModes(1); this.getSpellAbility().getModes().setMaxModes(1); - + // - You draw five cards and you lose 5 life. - Effect effect = new DrawCardSourceControllerEffect(5); + Effect effect = new DrawCardSourceControllerEffect(5); effect.setText("You draw five cards"); this.getSpellAbility().addEffect(effect); effect = new LoseLifeSourceControllerEffect(5); @@ -113,18 +110,3 @@ class PromiseOfPowerEffect extends OneShotEffect { } } -class PromiseOfPowerDemonToken extends Token { - - public PromiseOfPowerDemonToken(int xValue) { - super("Demon", "X/X black Demon creature token with flying"); - setOriginalExpansionSetCode("C14"); - setTokenType(2); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Demon"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java b/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java index 9bc83aab48..48e6b838c8 100644 --- a/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java +++ b/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java @@ -27,6 +27,7 @@ */ package mage.cards.p; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -43,11 +44,9 @@ import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ProsshKoboldToken; import mage.target.common.TargetControlledCreaturePermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -85,15 +84,3 @@ public class ProsshSkyraiderOfKher extends CardImpl { return new ProsshSkyraiderOfKher(this); } } - -class ProsshKoboldToken extends Token { - - public ProsshKoboldToken() { - super("Kobolds of Kher Keep", "0/1 red Kobold creature tokens"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Kobold"); - power = new MageInt(0); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/p/PuppetConjurer.java b/Mage.Sets/src/mage/cards/p/PuppetConjurer.java index c85aa83196..896d54cecf 100644 --- a/Mage.Sets/src/mage/cards/p/PuppetConjurer.java +++ b/Mage.Sets/src/mage/cards/p/PuppetConjurer.java @@ -28,8 +28,6 @@ package mage.cards.p; import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,11 +38,12 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; 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.HomunculusToken; /** * @@ -53,12 +52,13 @@ import mage.game.permanent.token.Token; public class PuppetConjurer extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Homunculus"); + static { filter.add(new SubtypePredicate("Homunculus")); } - + public PuppetConjurer(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}{B}"); this.subtype.add("Human"); this.subtype.add("Wizard"); @@ -72,7 +72,7 @@ public class PuppetConjurer extends CardImpl { // At the beginning of your upkeep, sacrifice a Homunculus. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeEffect(filter, 1, ""), TargetController.ANY, false)); } - + public PuppetConjurer(final PuppetConjurer card) { super(card); } @@ -82,17 +82,3 @@ public class PuppetConjurer extends CardImpl { return new PuppetConjurer(this); } } - -class HomunculusToken extends Token { - - public HomunculusToken() { - super("Homunculus", "0/1 blue Homunculus artifact creature token"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - color.setBlue(true); - subtype.add("Homunculus"); - power = new MageInt(0); - toughness = new MageInt(1); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/q/QueenMarchesa.java b/Mage.Sets/src/mage/cards/q/QueenMarchesa.java index ea968f102c..4a0fff3a60 100644 --- a/Mage.Sets/src/mage/cards/q/QueenMarchesa.java +++ b/Mage.Sets/src/mage/cards/q/QueenMarchesa.java @@ -27,6 +27,7 @@ */ package mage.cards.q; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -43,9 +44,7 @@ import mage.constants.CardType; import mage.constants.SuperType; import mage.constants.TargetController; import mage.game.Game; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.QueenMarchesaAssassinToken; /** * @@ -100,17 +99,3 @@ enum OpponentIsMonarchCondition implements Condition { return "an opponent is the monarch"; } } - -class QueenMarchesaAssassinToken extends Token { - - QueenMarchesaAssassinToken() { - super("Assassin", "1/1 black Assassin creature tokens with deathtouch and haste"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Assassin"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(DeathtouchAbility.getInstance()); - addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java b/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java index 6db4348655..a36773e696 100644 --- a/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java +++ b/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java @@ -28,9 +28,6 @@ package mage.cards.q; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; -import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -39,8 +36,10 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.QuestForTheGravelordZombieToken; /** * @@ -49,13 +48,13 @@ import mage.game.permanent.token.Token; public class QuestForTheGravelord extends CardImpl { public QuestForTheGravelord(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{B}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}"); // Whenever a creature dies, you may put a quest counter on Quest for the Gravelord. this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true)); // Remove three quest counters from Quest for the Gravelord and sacrifice it: Create a 5/5 black Zombie Giant creature token. SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new CreateTokenEffect(new ZombieToken()), + new CreateTokenEffect(new QuestForTheGravelordZombieToken()), new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3))); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); @@ -70,17 +69,3 @@ public class QuestForTheGravelord extends CardImpl { return new QuestForTheGravelord(this); } } - -class ZombieToken extends Token { - - public ZombieToken() { - super("Zombie Giant", "5/5 black Zombie Giant creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Zombie"); - subtype.add("Giant"); - - color.setBlack(true); - power = new MageInt(5); - toughness = new MageInt(5); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RakdosGuildmage.java b/Mage.Sets/src/mage/cards/r/RakdosGuildmage.java index 1a8046b53c..ead3a004d0 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosGuildmage.java +++ b/Mage.Sets/src/mage/cards/r/RakdosGuildmage.java @@ -36,7 +36,6 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -44,7 +43,7 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RakdosGuildmageGoblinToken; import mage.target.common.TargetCreaturePermanent; /** @@ -54,7 +53,7 @@ import mage.target.common.TargetCreaturePermanent; public class RakdosGuildmage extends CardImpl { public RakdosGuildmage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B/R}{B/R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B/R}{B/R}"); this.subtype.add("Zombie"); this.subtype.add("Shaman"); this.power = new MageInt(2); @@ -101,24 +100,10 @@ class RakdosGuildmageEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { CreateTokenEffect effect = new CreateTokenEffect(new RakdosGuildmageGoblinToken()); - if (effect.apply(game, source)) - { + if (effect.apply(game, source)) { effect.exileTokensCreatedAtNextEndStep(game, source); return true; } return false; } } - -class RakdosGuildmageGoblinToken extends Token { - - RakdosGuildmageGoblinToken() { - super("Goblin", "2/1 red Goblin creature token with haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Goblin"); - power = new MageInt(2); - toughness = new MageInt(1); - this.addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RakkaMar.java b/Mage.Sets/src/mage/cards/r/RakkaMar.java index d30dc59cee..24aa26b385 100644 --- a/Mage.Sets/src/mage/cards/r/RakkaMar.java +++ b/Mage.Sets/src/mage/cards/r/RakkaMar.java @@ -25,9 +25,9 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.r; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,19 +40,18 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SuperType; import mage.constants.Zone; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.RakkaMarElementalToken; /** * * @author Loki */ public class RakkaMar extends CardImpl { - private static ElementalToken token = new ElementalToken(); + + private RakkaMarElementalToken token = new RakkaMarElementalToken(); public RakkaMar(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); @@ -74,16 +73,4 @@ public class RakkaMar extends CardImpl { return new RakkaMar(this); } - static class ElementalToken extends Token { - - public ElementalToken() { - super("Elemental", "3/1 red Elemental creature with Haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(3); - toughness = new MageInt(1); - addAbility(HasteAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/cards/r/RallyTheHorde.java b/Mage.Sets/src/mage/cards/r/RallyTheHorde.java index 14b8a56730..88fad34d70 100644 --- a/Mage.Sets/src/mage/cards/r/RallyTheHorde.java +++ b/Mage.Sets/src/mage/cards/r/RallyTheHorde.java @@ -28,7 +28,6 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -39,7 +38,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RallyTheHordeWarriorToken; import mage.players.Player; /** @@ -49,8 +48,7 @@ import mage.players.Player; public class RallyTheHorde extends CardImpl { public RallyTheHorde(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{R}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{R}"); // Exile the top card of your library. Exile the top card of your library. Exile the top card of your library. If the last card exiled isn't a land, repeat this process. Create a 1/1 red Warrior creature token for each nonland card exiled this way. this.getSpellAbility().addEffect(new RallyTheHordeEffect()); @@ -87,7 +85,7 @@ class RallyTheHordeEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { int nonLandCardsExiled = 0; - while(controller.getLibrary().hasCards()) { + while (controller.getLibrary().hasCards()) { nonLandCardsExiled += checkIfNextLibCardIsNonLandAndExile(controller, source, game); if (controller.getLibrary().hasCards()) { nonLandCardsExiled += checkIfNextLibCardIsNonLandAndExile(controller, source, game); @@ -110,20 +108,8 @@ class RallyTheHordeEffect extends OneShotEffect { Card card = controller.getLibrary().getFromTop(game); if (card != null) { controller.moveCardToExileWithInfo(card, null, "", source.getSourceId(), game, Zone.LIBRARY, true); - return card.isLand() ? 0:1; + return card.isLand() ? 0 : 1; } return 0; } } - -class RallyTheHordeWarriorToken extends Token { - - public RallyTheHordeWarriorToken() { - super("Warrior", "1/1 red Warrior creature token"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Warrior"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RapidHybridization.java b/Mage.Sets/src/mage/cards/r/RapidHybridization.java index 6e033f730c..e5318236a8 100644 --- a/Mage.Sets/src/mage/cards/r/RapidHybridization.java +++ b/Mage.Sets/src/mage/cards/r/RapidHybridization.java @@ -28,7 +28,6 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -38,7 +37,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RapidHybridizationToken; import mage.target.common.TargetCreaturePermanent; /** @@ -48,7 +47,7 @@ import mage.target.common.TargetCreaturePermanent; public class RapidHybridization extends CardImpl { public RapidHybridization(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}"); // Destroy target creature. It can't be regenerated. That creature's controller creates a 3/3 green Frog Lizard creature token. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); @@ -93,21 +92,3 @@ class RapidHybridizationEffect extends OneShotEffect { } } - -class RapidHybridizationToken extends Token { - - public RapidHybridizationToken() { - super("Frog Lizard", "3/3 green Frog Lizard creature token"); - this.setOriginalExpansionSetCode("GTC"); - cardType.add(CardType.CREATURE); - - color.setGreen(true); - - subtype.add("Frog"); - subtype.add("Lizard"); - - power = new MageInt(3); - toughness = new MageInt(3); - } - -} diff --git a/Mage.Sets/src/mage/cards/r/ReachOfBranches.java b/Mage.Sets/src/mage/cards/r/ReachOfBranches.java index ea73a8d792..14df5f6472 100644 --- a/Mage.Sets/src/mage/cards/r/ReachOfBranches.java +++ b/Mage.Sets/src/mage/cards/r/ReachOfBranches.java @@ -28,7 +28,6 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect; @@ -40,7 +39,7 @@ import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TreefolkShamanToken; /** * @@ -74,16 +73,3 @@ public class ReachOfBranches extends CardImpl { return new ReachOfBranches(this); } } - -class TreefolkShamanToken extends Token { - - TreefolkShamanToken() { - super("Treefolk Shaman", "2/5 green Treefolk Shaman creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Treefolk"); - subtype.add("Shaman"); - power = new MageInt(2); - toughness = new MageInt(5); - } -} diff --git a/Mage.Sets/src/mage/cards/r/ReefWorm.java b/Mage.Sets/src/mage/cards/r/ReefWorm.java index 91149c41b7..f29cf904e7 100644 --- a/Mage.Sets/src/mage/cards/r/ReefWorm.java +++ b/Mage.Sets/src/mage/cards/r/ReefWorm.java @@ -34,7 +34,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ReefWormFishToken; /** * @@ -43,7 +43,7 @@ import mage.game.permanent.token.Token; public class ReefWorm extends CardImpl { public ReefWorm(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); this.subtype.add("Worm"); this.power = new MageInt(0); @@ -62,46 +62,3 @@ public class ReefWorm extends CardImpl { return new ReefWorm(this); } } - -class ReefWormFishToken extends Token { - - ReefWormFishToken() { - super("Fish", "3/3 blue Fish creature token with \"When this creature dies, create a 6/6 blue Whale creature token with \"When this creature dies, create a 9/9 blue Kraken creature token.\"\""); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Fish"); - power = new MageInt(3); - toughness = new MageInt(3); - - addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new ReefWormWhaleToken()))); - } -} - -class ReefWormWhaleToken extends Token { - - ReefWormWhaleToken() { - super("Whale", "6/6 blue Whale creature token with \"When this creature dies, create a 9/9 blue Kraken creature token.\""); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Whale"); - power = new MageInt(6); - toughness = new MageInt(6); - - addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new ReefWormKrakenToken()))); - } -} - -class ReefWormKrakenToken extends Token { - - ReefWormKrakenToken() { - super("Kraken", "9/9 blue Kraken creature token"); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Kraken"); - power = new MageInt(9); - toughness = new MageInt(9); - } -} diff --git a/Mage.Sets/src/mage/cards/r/ReignOfThePit.java b/Mage.Sets/src/mage/cards/r/ReignOfThePit.java index 9a1b794e1b..040339bcb0 100644 --- a/Mage.Sets/src/mage/cards/r/ReignOfThePit.java +++ b/Mage.Sets/src/mage/cards/r/ReignOfThePit.java @@ -30,11 +30,9 @@ package mage.cards.r; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -42,7 +40,7 @@ import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ReignOfThePitToken; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; @@ -53,7 +51,7 @@ import mage.target.common.TargetControlledCreaturePermanent; public class ReignOfThePit extends CardImpl { public ReignOfThePit(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}{B}"); // Each player sacrifices a creature. Create an X/X black Demon creature token with flying, where X is the total power of the creatures sacrificed this way. this.getSpellAbility().addEffect(new ReignOfThePitEffect()); @@ -70,21 +68,21 @@ public class ReignOfThePit extends CardImpl { } class ReignOfThePitEffect extends OneShotEffect { - + ReignOfThePitEffect() { super(Outcome.Sacrifice); this.staticText = "Each player sacrifices a creature. Create an X/X black Demon creature token with flying, where X is the total power of the creatures sacrificed this way"; } - + ReignOfThePitEffect(final ReignOfThePitEffect effect) { super(effect); } - + @Override public ReignOfThePitEffect copy() { return new ReignOfThePitEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); @@ -118,16 +116,3 @@ class ReignOfThePitEffect extends OneShotEffect { return true; } } - -class ReignOfThePitToken extends Token { - - ReignOfThePitToken(int xValue) { - super("Demon", "X/X black Demon creature token with flying"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - color.setBlack(true); - subtype.add("Demon"); - cardType.add(CardType.CREATURE); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RenownedWeaver.java b/Mage.Sets/src/mage/cards/r/RenownedWeaver.java index 251f9a7a6e..f9c30cfcb4 100644 --- a/Mage.Sets/src/mage/cards/r/RenownedWeaver.java +++ b/Mage.Sets/src/mage/cards/r/RenownedWeaver.java @@ -29,18 +29,16 @@ package mage.cards.r; import java.util.UUID; import mage.MageInt; -import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RenownedWeaverSpiderToken; /** * @@ -72,18 +70,3 @@ public class RenownedWeaver extends CardImpl { return new RenownedWeaver(this); } } - -class RenownedWeaverSpiderToken extends Token { - - public RenownedWeaverSpiderToken() { - super("Spider", "1/3 green Spider enchantment creature token with reach"); - this.setOriginalExpansionSetCode("JOU"); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - color.setColor(ObjectColor.GREEN); - subtype.add("Spider"); - power = new MageInt(1); - toughness = new MageInt(3); - this.addAbility(ReachAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RevelOfTheFallenGod.java b/Mage.Sets/src/mage/cards/r/RevelOfTheFallenGod.java index 9fa1f44ed7..4c42ec676d 100644 --- a/Mage.Sets/src/mage/cards/r/RevelOfTheFallenGod.java +++ b/Mage.Sets/src/mage/cards/r/RevelOfTheFallenGod.java @@ -28,14 +28,11 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; -import mage.ObjectColor; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RevelOfTheFallenGodSatyrToken; /** * @@ -44,8 +41,7 @@ import mage.game.permanent.token.Token; public class RevelOfTheFallenGod extends CardImpl { public RevelOfTheFallenGod(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}{G}{G}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}{G}{G}"); // Create four 2/2 red and green Satyr creature tokens with haste. this.getSpellAbility().addEffect(new CreateTokenEffect(new RevelOfTheFallenGodSatyrToken(), 4)); @@ -61,18 +57,3 @@ public class RevelOfTheFallenGod extends CardImpl { return new RevelOfTheFallenGod(this); } } - -class RevelOfTheFallenGodSatyrToken extends Token { - - public RevelOfTheFallenGodSatyrToken() { - super("Satyr", "2/2 red and green Satyr creature tokens with haste"); - this.setOriginalExpansionSetCode("THS"); - cardType.add(CardType.CREATURE); - color.setColor(ObjectColor.RED); - color.setColor(ObjectColor.GREEN); - subtype.add("Satyr"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java b/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java index 3d8d1f4928..e5e11655e6 100644 --- a/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java +++ b/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java @@ -47,7 +47,7 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RhysTheRedeemedToken; import mage.players.Player; import mage.target.targetpointer.FixedTarget; @@ -58,7 +58,7 @@ import mage.target.targetpointer.FixedTarget; public class RhysTheRedeemed extends CardImpl { public RhysTheRedeemed(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G/W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G/W}"); this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); @@ -127,17 +127,3 @@ class RhysTheRedeemedEffect extends OneShotEffect { return false; } } - -class RhysTheRedeemedToken extends Token { - - public RhysTheRedeemedToken() { - super("Elf Warrior", "1/1 green and white Elf Warrior creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setWhite(true); - subtype.add("Elf"); - subtype.add("Warrior"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RiftmarkedKnight.java b/Mage.Sets/src/mage/cards/r/RiftmarkedKnight.java index 85a7ba4a9b..15a3ffee16 100644 --- a/Mage.Sets/src/mage/cards/r/RiftmarkedKnight.java +++ b/Mage.Sets/src/mage/cards/r/RiftmarkedKnight.java @@ -27,13 +27,13 @@ */ package mage.cards.r; +import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlankingAbility; -import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ProtectionAbility; import mage.abilities.keyword.SuspendAbility; import mage.cards.CardImpl; @@ -42,11 +42,9 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.events.GameEvent; +import mage.game.permanent.token.RiftmarkedKnightToken; /** * @@ -56,7 +54,7 @@ public class RiftmarkedKnight extends CardImpl { public RiftmarkedKnight(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}"); - + this.subtype.add("Human"); this.subtype.add("Rebel"); this.subtype.add("Knight"); @@ -84,9 +82,13 @@ public class RiftmarkedKnight extends CardImpl { class RiftmarkedKnightTriggeredAbility extends TriggeredAbilityImpl { - public RiftmarkedKnightTriggeredAbility() { super(Zone.EXILED, new CreateTokenEffect(new RiftmarkedKnightToken()), false); } + public RiftmarkedKnightTriggeredAbility() { + super(Zone.EXILED, new CreateTokenEffect(new RiftmarkedKnightToken()), false); + } - public RiftmarkedKnightTriggeredAbility(final RiftmarkedKnightTriggeredAbility ability) { super(ability); } + public RiftmarkedKnightTriggeredAbility(final RiftmarkedKnightTriggeredAbility ability) { + super(ability); + } @Override public boolean checkEventType(GameEvent event, Game game) { @@ -104,19 +106,7 @@ class RiftmarkedKnightTriggeredAbility extends TriggeredAbilityImpl { } @Override - public RiftmarkedKnightTriggeredAbility copy() { return new RiftmarkedKnightTriggeredAbility(this); } -} - -class RiftmarkedKnightToken extends Token { - public RiftmarkedKnightToken() { - super("Knight", "2/2 black Knight creature token with flanking, protection from white, and haste"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Knight"); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(ProtectionAbility.from(ObjectColor.WHITE)); - this.addAbility(new FlankingAbility()); - this.addAbility(HasteAbility.getInstance()); + public RiftmarkedKnightTriggeredAbility copy() { + return new RiftmarkedKnightTriggeredAbility(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/r/RiptideReplicator.java b/Mage.Sets/src/mage/cards/r/RiptideReplicator.java index ea8056323b..2c88743fd5 100644 --- a/Mage.Sets/src/mage/cards/r/RiptideReplicator.java +++ b/Mage.Sets/src/mage/cards/r/RiptideReplicator.java @@ -28,7 +28,6 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -48,6 +47,7 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; +import mage.game.permanent.token.RiptideReplicatorToken; import mage.game.permanent.token.Token; /** @@ -57,7 +57,7 @@ import mage.game.permanent.token.Token; public class RiptideReplicator extends CardImpl { public RiptideReplicator(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{X}{4}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{X}{4}"); // As Riptide Replicator enters the battlefield, choose a color and a creature type. Ability ability = new EntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral)); @@ -110,19 +110,3 @@ class RiptideReplicatorEffect extends OneShotEffect { return token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); } } - -class RiptideReplicatorToken extends Token { - - RiptideReplicatorToken(ObjectColor color, String type, int x) { - super(type, "X/X creature token of the chosen color and type"); - cardType.add(CardType.CREATURE); - if (color != null) { - this.color.setColor(color); - } - if (type != null) { - subtype.add(type); - } - power = new MageInt(x); - toughness = new MageInt(x); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RiseOfEagles.java b/Mage.Sets/src/mage/cards/r/RiseOfEagles.java index b854f14a35..6ca45714fa 100644 --- a/Mage.Sets/src/mage/cards/r/RiseOfEagles.java +++ b/Mage.Sets/src/mage/cards/r/RiseOfEagles.java @@ -28,15 +28,12 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; -import mage.ObjectColor; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.keyword.ScryEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RiseOfEaglesBirdToken; /** * @@ -45,8 +42,7 @@ import mage.game.permanent.token.Token; public class RiseOfEagles extends CardImpl { public RiseOfEagles(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{U}{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}"); // Create two 2/2 blue Bird enchantment creature tokens with flying. Scry 1. this.getSpellAbility().addEffect(new CreateTokenEffect(new RiseOfEaglesBirdToken(), 2)); @@ -62,19 +58,3 @@ public class RiseOfEagles extends CardImpl { return new RiseOfEagles(this); } } - -class RiseOfEaglesBirdToken extends Token { - - public RiseOfEaglesBirdToken() { - super("Bird", "2/2 blue Bird enchantment creature tokens with flying"); - this.setOriginalExpansionSetCode("BNG"); - this.setTokenType(2); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - color.setColor(ObjectColor.BLUE); - subtype.add("Bird"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RiseOfTheHobgoblins.java b/Mage.Sets/src/mage/cards/r/RiseOfTheHobgoblins.java index 81c5c4c8fc..f480d83f2f 100644 --- a/Mage.Sets/src/mage/cards/r/RiseOfTheHobgoblins.java +++ b/Mage.Sets/src/mage/cards/r/RiseOfTheHobgoblins.java @@ -28,7 +28,6 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -53,6 +52,7 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; +import mage.game.permanent.token.GoblinSoldierToken; import mage.game.permanent.token.Token; import mage.players.Player; @@ -74,8 +74,7 @@ public class RiseOfTheHobgoblins extends CardImpl { } public RiseOfTheHobgoblins(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{R/W}{R/W}"); - + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{R/W}{R/W}"); // When Rise of the Hobgoblins enters the battlefield, you may pay {X}. If you do, create X 1/1 red and white Goblin Soldier creature tokens. this.addAbility(new EntersBattlefieldTriggeredAbility(new RiseOfTheHobgoblinsEffect())); @@ -126,17 +125,3 @@ class RiseOfTheHobgoblinsEffect extends OneShotEffect { return false; } } - -class GoblinSoldierToken extends Token { - - GoblinSoldierToken() { - super("Goblin Soldier", "1/1 red and white Goblin Soldier creature tokens"); - cardType.add(CardType.CREATURE); - color.setRed(true); - color.setWhite(true); - subtype.add("Goblin"); - subtype.add("Soldier"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RiteOfTheRagingStorm.java b/Mage.Sets/src/mage/cards/r/RiteOfTheRagingStorm.java index 8b44a6e1ce..fccf097899 100644 --- a/Mage.Sets/src/mage/cards/r/RiteOfTheRagingStorm.java +++ b/Mage.Sets/src/mage/cards/r/RiteOfTheRagingStorm.java @@ -28,17 +28,12 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.combat.CantAttackYouOrPlaneswalkerAllEffect; -import mage.abilities.keyword.HasteAbility; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -49,7 +44,7 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.LightningRagerToken; import mage.players.Player; /** @@ -113,20 +108,3 @@ class RiteOfTheRagingStormEffect extends OneShotEffect { return new RiteOfTheRagingStormEffect(this); } } - -class LightningRagerToken extends Token { - - LightningRagerToken() { - super("Lightning Rager", "5/1 red Elemental creature token named Lightning Rager." - + "It has trample, haste, and \"At the beginning of the end step, sacrifice this creature.\""); - this.setOriginalExpansionSetCode("C15"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(5); - toughness = new MageInt(1); - addAbility(TrampleAbility.getInstance()); - addAbility(HasteAbility.getInstance()); - this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.NEXT, false)); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RitualOfTheReturned.java b/Mage.Sets/src/mage/cards/r/RitualOfTheReturned.java index 5fcc47a897..32466b5951 100644 --- a/Mage.Sets/src/mage/cards/r/RitualOfTheReturned.java +++ b/Mage.Sets/src/mage/cards/r/RitualOfTheReturned.java @@ -28,7 +28,6 @@ package mage.cards.r; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -40,7 +39,7 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RitualOfTheReturnedZombieToken; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; @@ -51,8 +50,7 @@ import mage.target.common.TargetCardInYourGraveyard; public class RitualOfTheReturned extends CardImpl { public RitualOfTheReturned(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{B}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}"); // Exile target creature card from your graveyard. Create a black Zombie creature token with power equal to the exiled card's power and toughness equal to the exiled card's toughness. this.getSpellAbility().addEffect(new RitualOfTheReturnedExileEffect()); @@ -70,21 +68,21 @@ public class RitualOfTheReturned extends CardImpl { } class RitualOfTheReturnedExileEffect extends OneShotEffect { - + public RitualOfTheReturnedExileEffect() { super(Outcome.PutCreatureInPlay); this.staticText = "Exile target creature card from your graveyard. Create a black Zombie creature token with power equal to the exiled card's power and toughness equal to the exiled card's toughness"; } - + public RitualOfTheReturnedExileEffect(final RitualOfTheReturnedExileEffect effect) { super(effect); } - + @Override public RitualOfTheReturnedExileEffect copy() { return new RitualOfTheReturnedExileEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); @@ -99,17 +97,3 @@ class RitualOfTheReturnedExileEffect extends OneShotEffect { return false; } } - -class RitualOfTheReturnedZombieToken extends Token { - - public RitualOfTheReturnedZombieToken(int power, int toughness) { - super("Zombie", "black Zombie creature token with power equal to the exiled card's power and toughness equal to the exiled card's toughness"); - this.setOriginalExpansionSetCode("JOU"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Zombie"); - this.power = new MageInt(power); - this.toughness = new MageInt(toughness); - } - -} diff --git a/Mage.Sets/src/mage/cards/r/RocEgg.java b/Mage.Sets/src/mage/cards/r/RocEgg.java index 5753e630fb..3b7c906151 100644 --- a/Mage.Sets/src/mage/cards/r/RocEgg.java +++ b/Mage.Sets/src/mage/cards/r/RocEgg.java @@ -25,19 +25,17 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.r; import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.DefenderAbility; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.RocEggToken; /** * @@ -48,7 +46,7 @@ public class RocEgg extends CardImpl { private static RocEggToken rocEggToken = new RocEggToken(); public RocEgg(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); this.subtype.add("Bird"); this.power = new MageInt(0); @@ -68,15 +66,3 @@ public class RocEgg extends CardImpl { } } -class RocEggToken extends Token { - - public RocEggToken() { - super("Bird", "3/3 white Bird creature token with flying"); - cardType.add(CardType.CREATURE); - subtype.add("Bird"); - color.setWhite(true); - power = new MageInt(3); - toughness = new MageInt(3); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/r/RukhEgg.java b/Mage.Sets/src/mage/cards/r/RukhEgg.java index b925a7b653..4bf72415a2 100644 --- a/Mage.Sets/src/mage/cards/r/RukhEgg.java +++ b/Mage.Sets/src/mage/cards/r/RukhEgg.java @@ -35,11 +35,10 @@ import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbil import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RukhEggBirdToken; /** * @@ -54,7 +53,7 @@ public class RukhEgg extends CardImpl { this.toughness = new MageInt(3); // When Rukh Egg dies, create a 4/4 red Bird creature token with flying at the beginning of the next end step. - Effect effect = new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new CreateTokenEffect(new BirdToken()))); + Effect effect = new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new CreateTokenEffect(new RukhEggBirdToken()))); effect.setText("create a 4/4 red Bird creature token with flying at the beginning of the next end step"); Ability ability = new DiesTriggeredAbility(effect); this.addAbility(ability); @@ -69,23 +68,3 @@ public class RukhEgg extends CardImpl { return new RukhEgg(this); } } - -class BirdToken extends Token { - - public BirdToken() { - this("ARN"); //there is no such token in either ARN, 8ED or 9ED - } - - public BirdToken(String setCode) { - super("Bird", "4/4 red Bird creature token with flying"); - this.setOriginalExpansionSetCode(setCode); - cardType.add(CardType.CREATURE); - color.setRed(true); - - subtype.add("Bird"); - power = new MageInt(4); - toughness = new MageInt(4); - addAbility(FlyingAbility.getInstance()); - - } -} diff --git a/Mage.Sets/src/mage/cards/s/SaprolingBurst.java b/Mage.Sets/src/mage/cards/s/SaprolingBurst.java index c9e1f31808..0ffde66bec 100644 --- a/Mage.Sets/src/mage/cards/s/SaprolingBurst.java +++ b/Mage.Sets/src/mage/cards/s/SaprolingBurst.java @@ -33,24 +33,21 @@ import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.ZoneChangeTriggeredAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; -import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.FadingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import mage.game.permanent.token.SaprolingBurstToken; import mage.game.permanent.token.Token; import mage.util.CardUtil; @@ -122,54 +119,6 @@ class SaprolingBurstCreateTokenEffect extends OneShotEffect { } } -class SaprolingBurstToken extends Token { - - SaprolingBurstToken(MageObjectReference saprolingBurstMOR) { - super("Saproling", "green Saproling creature token with \"This creature's power and toughness are each equal to the number of fade counters on Saproling Burst.\""); - this.color.setGreen(true); - this.subtype.add("Saproling"); - this.cardType.add(CardType.CREATURE); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new SaprolingBurstTokenDynamicValue(saprolingBurstMOR), Duration.WhileOnBattlefield))); - } -} - -class SaprolingBurstTokenDynamicValue implements DynamicValue { - - private final MageObjectReference saprolingBurstMOR; - - SaprolingBurstTokenDynamicValue(MageObjectReference saprolingBurstMOR) { - this.saprolingBurstMOR = saprolingBurstMOR; - } - - SaprolingBurstTokenDynamicValue(final SaprolingBurstTokenDynamicValue dynamicValue) { - this.saprolingBurstMOR = dynamicValue.saprolingBurstMOR; - } - - @Override - public int calculate(Game game, Ability sourceAbility, Effect effect) { - Permanent permanent = this.saprolingBurstMOR.getPermanent(game); - if (permanent != null) { - return permanent.getCounters(game).getCount(CounterType.FADE); - } - return 0; - } - - @Override - public SaprolingBurstTokenDynamicValue copy() { - return new SaprolingBurstTokenDynamicValue(this); - } - - @Override - public String toString() { - return "X"; - } - - @Override - public String getMessage() { - return "the number of fade counters on Saproling Burst"; - } -} - class SaprolingBurstLeavesBattlefieldTriggeredAbility extends ZoneChangeTriggeredAbility { SaprolingBurstLeavesBattlefieldTriggeredAbility() { diff --git a/Mage.Sets/src/mage/cards/s/SarpadianEmpiresVolVii.java b/Mage.Sets/src/mage/cards/s/SarpadianEmpiresVolVii.java index d2effe914a..7ad03a350c 100644 --- a/Mage.Sets/src/mage/cards/s/SarpadianEmpiresVolVii.java +++ b/Mage.Sets/src/mage/cards/s/SarpadianEmpiresVolVii.java @@ -28,7 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -43,6 +42,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; +import mage.game.permanent.token.CamaridToken; import mage.game.permanent.token.CitizenToken; import mage.game.permanent.token.GoblinToken; import mage.game.permanent.token.SaprolingToken; @@ -57,7 +57,7 @@ import mage.players.Player; public class SarpadianEmpiresVolVii extends CardImpl { public SarpadianEmpiresVolVii(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // As Sarpadian Empires, Vol. VII enters the battlefield, choose white Citizen, blue Camarid, black Thrull, red Goblin, or green Saproling. this.addAbility(new AsEntersBattlefieldAbility(new ChooseTokenEffect())); @@ -97,7 +97,7 @@ class ChooseTokenEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); - if(sourceObject != null && controller != null) { + if (sourceObject != null && controller != null) { ChoiceImpl choices = new ChoiceImpl(true); choices.setMessage("Choose token type"); choices.getChoices().add("White Citizen"); @@ -105,7 +105,7 @@ class ChooseTokenEffect extends OneShotEffect { choices.getChoices().add("Black Thrull"); choices.getChoices().add("Red Goblin"); choices.getChoices().add("Green Saproling"); - if(controller.choose(Outcome.Neutral, choices, game)) { + if (controller.choose(Outcome.Neutral, choices, game)) { game.informPlayers(sourceObject.getLogName() + ": chosen token type is " + choices.getChoice()); game.getState().setValue(source.getSourceId().toString() + "_SarpadianEmpiresVolVii", choices.getChoice()); return true; @@ -156,14 +156,3 @@ class CreateSelectedTokenEffect extends OneShotEffect { return true; } } - -class CamaridToken extends Token { - public CamaridToken() { - super("Camarid", "1/1 blue Camarid creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Camarid"); - color.setBlue(true); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SatyrNyxSmith.java b/Mage.Sets/src/mage/cards/s/SatyrNyxSmith.java index f757d39fd2..10b5041003 100644 --- a/Mage.Sets/src/mage/cards/s/SatyrNyxSmith.java +++ b/Mage.Sets/src/mage/cards/s/SatyrNyxSmith.java @@ -37,7 +37,7 @@ import mage.abilities.keyword.InspiredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SatyrNyxSmithElementalToken; /** * @@ -46,7 +46,7 @@ import mage.game.permanent.token.Token; public class SatyrNyxSmith extends CardImpl { public SatyrNyxSmith(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add("Satyr"); this.subtype.add("Shaman"); @@ -69,18 +69,3 @@ public class SatyrNyxSmith extends CardImpl { return new SatyrNyxSmith(this); } } - -class SatyrNyxSmithElementalToken extends Token { - - public SatyrNyxSmithElementalToken() { - super("Elemental", "3/1 red Elemental enchantment creature token with haste"); - cardType.add(CardType.ENCHANTMENT); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(3); - toughness = new MageInt(1); - this.addAbility(HasteAbility.getInstance()); - this.setOriginalExpansionSetCode("BNG"); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SeedGuardian.java b/Mage.Sets/src/mage/cards/s/SeedGuardian.java index 7d8f6cfe09..75f6bd97bd 100644 --- a/Mage.Sets/src/mage/cards/s/SeedGuardian.java +++ b/Mage.Sets/src/mage/cards/s/SeedGuardian.java @@ -40,7 +40,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterCreatureCard; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SeedGuardianToken; import mage.players.Player; /** @@ -50,7 +50,7 @@ import mage.players.Player; public class SeedGuardian extends CardImpl { public SeedGuardian(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); this.subtype.add("Elemental"); this.power = new MageInt(3); this.toughness = new MageInt(4); @@ -97,18 +97,3 @@ class SeedGuardianEffect extends OneShotEffect { return false; } } - -class SeedGuardianToken extends Token { - - public SeedGuardianToken(int xValue) { - super("Elemental", "X/X green Elemental creature token"); - setTokenType(2); - setOriginalExpansionSetCode("OGW"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Elemental"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - - } -} diff --git a/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java b/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java index 8c4506cf07..84f893c3e5 100644 --- a/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java +++ b/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java @@ -27,10 +27,10 @@ */ package mage.cards.s; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -41,9 +41,7 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.SekKuarDeathkeeperGravebornToken; /** * @@ -52,6 +50,7 @@ import java.util.UUID; public class SekKuarDeathkeeper extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another nontoken creature you control"); + static { filter.add(new ControllerPredicate(TargetController.YOU)); filter.add(new AnotherPredicate()); @@ -59,7 +58,7 @@ public class SekKuarDeathkeeper extends CardImpl { } public SekKuarDeathkeeper(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{R}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{R}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Orc"); this.subtype.add("Shaman"); @@ -68,7 +67,7 @@ public class SekKuarDeathkeeper extends CardImpl { this.toughness = new MageInt(3); // Whenever another nontoken creature you control dies, create a 3/1 black and red Graveborn creature token with haste. - this.addAbility(new DiesCreatureTriggeredAbility(new CreateTokenEffect(new SekKuarDeathkeeperGravebornToken()),false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new CreateTokenEffect(new SekKuarDeathkeeperGravebornToken()), false, filter)); } public SekKuarDeathkeeper(final SekKuarDeathkeeper card) { @@ -80,17 +79,3 @@ public class SekKuarDeathkeeper extends CardImpl { return new SekKuarDeathkeeper(this); } } - -class SekKuarDeathkeeperGravebornToken extends Token { - - public SekKuarDeathkeeperGravebornToken() { - super("Graveborn", "3/1 black and red Graveborn creature token with haste"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - color.setRed(true); - subtype.add("Graveborn"); - power = new MageInt(3); - toughness = new MageInt(1); - this.addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SengirAutocrat.java b/Mage.Sets/src/mage/cards/s/SengirAutocrat.java index 4b8d245273..85b6a90a1b 100644 --- a/Mage.Sets/src/mage/cards/s/SengirAutocrat.java +++ b/Mage.Sets/src/mage/cards/s/SengirAutocrat.java @@ -40,23 +40,23 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SerfToken; /** * * @author Quercitron */ public class SengirAutocrat extends CardImpl { - + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Serf tokens"); static { filter.add(new SubtypePredicate("Serf")); filter.add(new TokenPredicate()); } - + public SengirAutocrat(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); this.subtype.add("Human"); this.power = new MageInt(2); @@ -79,14 +79,3 @@ public class SengirAutocrat extends CardImpl { return new SengirAutocrat(this); } } - -class SerfToken extends Token { - public SerfToken() { - super("Serf", "0/1 black Serf creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Serf"); - power = new MageInt(0); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/s/SengirNosferatu.java b/Mage.Sets/src/mage/cards/s/SengirNosferatu.java index 187080fd67..8d08ded9e3 100644 --- a/Mage.Sets/src/mage/cards/s/SengirNosferatu.java +++ b/Mage.Sets/src/mage/cards/s/SengirNosferatu.java @@ -32,7 +32,6 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ExileSourceCost; -import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -47,7 +46,7 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SengirNosferatuBatToken; import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInExile; @@ -55,12 +54,12 @@ import mage.target.common.TargetCardInExile; /** * * @author LoneFox - + * */ public class SengirNosferatu extends CardImpl { public SengirNosferatu(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); this.subtype.add("Vampire"); this.power = new MageInt(4); this.toughness = new MageInt(4); @@ -85,24 +84,6 @@ public class SengirNosferatu extends CardImpl { } } -class SengirNosferatuBatToken extends Token { - - SengirNosferatuBatToken() { - super("Bat", "1/2 black Bat creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Bat"); - power = new MageInt(1); - toughness = new MageInt(2); - this.addAbility(FlyingAbility.getInstance()); - ReturnSengirNosferatuEffect effect = new ReturnSengirNosferatuEffect(); - effect.setText("Return an exiled card named Sengir Nosferatu to the battlefield under its owner's control."); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{B}")); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } -} - class ReturnSengirNosferatuEffect extends OneShotEffect { private static final FilterCard filter = new FilterCard("exiled card named Sengir Nosferatu"); @@ -124,19 +105,19 @@ class ReturnSengirNosferatuEffect extends OneShotEffect { return new ReturnSengirNosferatuEffect(this); } - @Override + @Override public boolean apply(Game game, Ability source) { UUID controllerId = source.getControllerId(); Target target = new TargetCardInExile(filter); target.setNotTarget(true); - if(!target.canChoose(source.getSourceId(), controllerId, game)) { + if (!target.canChoose(source.getSourceId(), controllerId, game)) { return false; } Player player = game.getPlayer(controllerId); - if(player != null) { + if (player != null) { player.chooseTarget(Outcome.PutCreatureInPlay, target, source, game); Card card = game.getCard(target.getTargets().get(0)); - if(card != null) { + if (card != null) { return card.moveToZone(Zone.BATTLEFIELD, source.getSourceId(), game, false); } } diff --git a/Mage.Sets/src/mage/cards/s/SerpentGenerator.java b/Mage.Sets/src/mage/cards/s/SerpentGenerator.java index dee8e1f3cd..fa26198e32 100644 --- a/Mage.Sets/src/mage/cards/s/SerpentGenerator.java +++ b/Mage.Sets/src/mage/cards/s/SerpentGenerator.java @@ -28,20 +28,17 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.counter.AddPoisonCounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SerpentGeneratorSnakeToken; /** * @@ -50,10 +47,10 @@ import mage.game.permanent.token.Token; public class SerpentGenerator extends CardImpl { public SerpentGenerator(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}"); // {4}, {tap}: Create a 1/1 colorless Snake artifact creature token. It has "Whenever this creature deals damage to a player, that player gets a poison counter." - Effect effect = new CreateTokenEffect(new SnakeToken()); + Effect effect = new CreateTokenEffect(new SerpentGeneratorSnakeToken()); effect.setText("Create a 1/1 colorless Snake artifact creature token. It has \"Whenever this creature deals damage to a player, that player gets a poison counter.\""); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{4}")); ability.addCost(new TapSourceCost()); @@ -69,19 +66,3 @@ public class SerpentGenerator extends CardImpl { return new SerpentGenerator(this); } } - -class SnakeToken extends Token { - - public SnakeToken() { - super("Snake", "1/1 colorless Snake artifact creature token with \"Whenever this creature deals damage to a player, that player gets a poison counter.\""); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Snake"); - power = new MageInt(1); - toughness = new MageInt(1); - - Effect effect = new AddPoisonCounterTargetEffect(1); - effect.setText("that player gets a poison counter"); - this.addAbility(new DealsDamageToAPlayerTriggeredAbility(effect, false, true)); - } -} diff --git a/Mage.Sets/src/mage/cards/s/ShardingSphinx.java b/Mage.Sets/src/mage/cards/s/ShardingSphinx.java index a6fa9468d6..5b3388f8c1 100644 --- a/Mage.Sets/src/mage/cards/s/ShardingSphinx.java +++ b/Mage.Sets/src/mage/cards/s/ShardingSphinx.java @@ -38,7 +38,7 @@ import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ThopterToken; /** * @@ -47,13 +47,13 @@ import mage.game.permanent.token.Token; public class ShardingSphinx extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an artifact creature you control"); - - static{ + + static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); } public ShardingSphinx(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}{U}{U}"); this.subtype.add("Sphinx"); this.power = new MageInt(4); @@ -64,7 +64,7 @@ public class ShardingSphinx extends CardImpl { // Whenever an artifact creature you control deals combat damage to a player, you may create a 1/1 blue Thopter artifact creature token with flying. this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility( - new CreateTokenEffect(new ThopterToken()), + new CreateTokenEffect(new ThopterToken()), filter, true, SetTargetPointer.NONE, true)); } @@ -78,16 +78,3 @@ public class ShardingSphinx extends CardImpl { return new ShardingSphinx(this); } } - -class ThopterToken extends Token { - ThopterToken() { - super("Thopter", "1/1 blue Thopter artifact creature token with flying"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - color.setBlue(true); - subtype.add("Thopter"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SkirkRidgeExhumer.java b/Mage.Sets/src/mage/cards/s/SkirkRidgeExhumer.java index ee1e5227b6..b16ca59b7b 100644 --- a/Mage.Sets/src/mage/cards/s/SkirkRidgeExhumer.java +++ b/Mage.Sets/src/mage/cards/s/SkirkRidgeExhumer.java @@ -30,20 +30,16 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; import mage.constants.Zone; -import mage.game.permanent.token.Token; -import mage.target.common.TargetCreaturePermanent; +import mage.game.permanent.token.FesteringGoblinToken; /** * @@ -74,21 +70,3 @@ public class SkirkRidgeExhumer extends CardImpl { return new SkirkRidgeExhumer(this); } } - -class FesteringGoblinToken extends Token { - - public FesteringGoblinToken() { - super("Festering Goblin", "1/1 black Zombie Goblin creature token named Festering Goblin with \"When Festering Goblin dies, target creature gets -1/-1 until end of turn.\""); - this.setOriginalExpansionSetCode("FUT"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Zombie"); - subtype.add("Goblin"); - power = new MageInt(1); - toughness = new MageInt(1); - - Ability ability = new DiesTriggeredAbility(new BoostTargetEffect(-1, -1, Duration.EndOfTurn), false); - ability.addTarget(new TargetCreaturePermanent()); - this.addAbility(ability); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SkywiseTeachings.java b/Mage.Sets/src/mage/cards/s/SkywiseTeachings.java index a81bb117b2..a44e18ac5b 100644 --- a/Mage.Sets/src/mage/cards/s/SkywiseTeachings.java +++ b/Mage.Sets/src/mage/cards/s/SkywiseTeachings.java @@ -28,19 +28,17 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SkywiseTeachingsToken; /** * @@ -55,7 +53,7 @@ public class SkywiseTeachings extends CardImpl { } public SkywiseTeachings(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}"); // Whenever you cast a noncreature spell, you may pay {1}{U}. If you do, create a 2/2 blue Djinn Monk creature token with flying. this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new CreateTokenEffect(new SkywiseTeachingsToken()), new ManaCostsImpl("{1}{U}")), filter, false)); @@ -71,17 +69,3 @@ public class SkywiseTeachings extends CardImpl { return new SkywiseTeachings(this); } } - -class SkywiseTeachingsToken extends Token { - - SkywiseTeachingsToken() { - super("Djinn Monk", "2/2 blue Djinn Monk creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - this.subtype.add("Djinn"); - this.subtype.add("Monk"); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/s/Sliversmith.java b/Mage.Sets/src/mage/cards/s/Sliversmith.java index 84fcc25b49..5f5669393b 100644 --- a/Mage.Sets/src/mage/cards/s/Sliversmith.java +++ b/Mage.Sets/src/mage/cards/s/Sliversmith.java @@ -39,7 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SliversmithToken; /** * @@ -69,16 +69,3 @@ public class Sliversmith extends CardImpl { return new Sliversmith(this); } } - -class SliversmithToken extends Token { - - SliversmithToken() { - super("Metallic Sliver", "1/1 colorless Sliver creature token named Metallic Sliver"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - subtype.add("Sliver"); - power = new MageInt(1); - toughness = new MageInt(1); - this.setOriginalExpansionSetCode("FUT"); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SorinLordOfInnistrad.java b/Mage.Sets/src/mage/cards/s/SorinLordOfInnistrad.java index 0a36d49a39..802904d610 100644 --- a/Mage.Sets/src/mage/cards/s/SorinLordOfInnistrad.java +++ b/Mage.Sets/src/mage/cards/s/SorinLordOfInnistrad.java @@ -28,7 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -37,7 +36,6 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.GetEmblemEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; -import mage.abilities.keyword.LifelinkAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -51,7 +49,7 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.game.command.Emblem; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SorinLordOfInnistradVampireToken; import mage.players.Player; import mage.target.TargetPermanent; @@ -76,7 +74,7 @@ public class SorinLordOfInnistrad extends CardImpl { this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3)); // +1: Create a 1/1 black Vampire creature token with lifelink. - this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new VampireToken()), 1)); + this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new SorinLordOfInnistradVampireToken()), 1)); // -2: You get an emblem with "Creatures you control get +1/+0." this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new SorinLordOfInnistradEmblem()), -2)); @@ -97,19 +95,6 @@ public class SorinLordOfInnistrad extends CardImpl { } } -class VampireToken extends Token { - - VampireToken() { - super("Vampire", "1/1 black Vampire creature token with lifelink"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Vampire"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(LifelinkAbility.getInstance()); - } -} - class SorinLordOfInnistradEmblem extends Emblem { public SorinLordOfInnistradEmblem() { diff --git a/Mage.Sets/src/mage/cards/s/SorinSolemnVisitor.java b/Mage.Sets/src/mage/cards/s/SorinSolemnVisitor.java index 0514b3ec45..78a2d8b501 100644 --- a/Mage.Sets/src/mage/cards/s/SorinSolemnVisitor.java +++ b/Mage.Sets/src/mage/cards/s/SorinSolemnVisitor.java @@ -28,7 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -39,7 +38,6 @@ import mage.abilities.effects.common.GetEmblemEffect; import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -49,7 +47,7 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.command.Emblem; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SorinSolemnVisitorVampireToken; /** * @@ -102,17 +100,3 @@ class SorinSolemnVisitorEmblem extends Emblem { this.getAbilities().add(ability); } } - -class SorinSolemnVisitorVampireToken extends Token { - - SorinSolemnVisitorVampireToken() { - super("Vampire", "2/2 black Vampire creature token with flying"); - setOriginalExpansionSetCode("KTK"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Vampire"); - power = new MageInt(2); - toughness = new MageInt(2); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/s/Sparkspitter.java b/Mage.Sets/src/mage/cards/s/Sparkspitter.java index 13abfed3ee..fe70c4ed95 100644 --- a/Mage.Sets/src/mage/cards/s/Sparkspitter.java +++ b/Mage.Sets/src/mage/cards/s/Sparkspitter.java @@ -30,21 +30,16 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.SacrificeSourceEffect; -import mage.abilities.keyword.HasteAbility; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.TargetController; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SparkElementalToken; /** * @@ -53,7 +48,7 @@ import mage.game.permanent.token.Token; public class Sparkspitter extends CardImpl { public Sparkspitter(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add("Elemental"); this.subtype.add("Spellshaper"); this.power = new MageInt(1); @@ -75,20 +70,3 @@ public class Sparkspitter extends CardImpl { return new Sparkspitter(this); } } - -class SparkElementalToken extends Token { - - public SparkElementalToken() { - super("Spark Elemental", "3/1 red Elemental creature token named Spark Elemental with trample, haste, and \"At the beginning of the end step, sacrifice Spark Elemental.\""); - this.setOriginalExpansionSetCode("FUT"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(3); - toughness = new MageInt(1); - - this.addAbility(TrampleAbility.getInstance()); - this.addAbility(HasteAbility.getInstance()); - this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.ANY, false)); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SpawningGrounds.java b/Mage.Sets/src/mage/cards/s/SpawningGrounds.java index 7376a9cc14..59a6b7c592 100644 --- a/Mage.Sets/src/mage/cards/s/SpawningGrounds.java +++ b/Mage.Sets/src/mage/cards/s/SpawningGrounds.java @@ -28,7 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,7 +36,6 @@ import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; @@ -45,7 +43,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SpawningGroundsBeastToken; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; @@ -56,10 +54,9 @@ import mage.target.common.TargetLandPermanent; public class SpawningGrounds extends CardImpl { public SpawningGrounds(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{6}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{6}{G}{G}"); this.subtype.add("Aura"); - // Enchant land TargetPermanent auraTarget = new TargetLandPermanent(); this.getSpellAbility().addTarget(auraTarget); @@ -82,17 +79,3 @@ public class SpawningGrounds extends CardImpl { return new SpawningGrounds(this); } } - -class SpawningGroundsBeastToken extends Token { - - public SpawningGroundsBeastToken() { - super("Beast", "5/5 green Beast creature token with trample"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Beast"); - power = new MageInt(5); - toughness = new MageInt(5); - this.addAbility(TrampleAbility.getInstance()); - } - -} diff --git a/Mage.Sets/src/mage/cards/s/SpawningPit.java b/Mage.Sets/src/mage/cards/s/SpawningPit.java index 2fe57f71db..223e7635bf 100644 --- a/Mage.Sets/src/mage/cards/s/SpawningPit.java +++ b/Mage.Sets/src/mage/cards/s/SpawningPit.java @@ -25,13 +25,9 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.s; import java.util.UUID; - -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -41,9 +37,10 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SpawningPitToken; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -52,15 +49,15 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public class SpawningPit extends CardImpl { - public SpawningPit (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); + public SpawningPit(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new SacrificeTargetCost(new TargetControlledCreaturePermanent()))); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SpawningPitToken()), new GenericManaCost(1)); ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(2))); this.addAbility(ability); } - public SpawningPit (final SpawningPit card) { + public SpawningPit(final SpawningPit card) { super(card); } @@ -70,15 +67,3 @@ public class SpawningPit extends CardImpl { } } - -class SpawningPitToken extends Token { - public SpawningPitToken() { - super("Spawn", "2/2 colorless Spawn artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - this.subtype.add("Spawn"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} - diff --git a/Mage.Sets/src/mage/cards/s/SpikeBreeder.java b/Mage.Sets/src/mage/cards/s/SpikeBreeder.java index e9f7940e8e..c337ec0187 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeBreeder.java +++ b/Mage.Sets/src/mage/cards/s/SpikeBreeder.java @@ -42,7 +42,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SpikeToken; import mage.target.common.TargetCreaturePermanent; /** @@ -52,25 +52,25 @@ import mage.target.common.TargetCreaturePermanent; public class SpikeBreeder extends CardImpl { public SpikeBreeder(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); this.subtype.add("Spike"); this.power = new MageInt(0); this.toughness = new MageInt(0); // Spike Breeder 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")); - + // {2}, Remove a +1/+1 counter from Spike Breeder: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); - + // {2}, Remove a +1/+1 counter from Spike Breeder: Create a 1/1 green Spike creature token. Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SpikeToken()), new GenericManaCost(2)); ability2.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); this.addAbility(ability2); - + } public SpikeBreeder(final SpikeBreeder card) { @@ -82,15 +82,3 @@ public class SpikeBreeder extends CardImpl { return new SpikeBreeder(this); } } - -class SpikeToken extends Token { - - SpikeToken() { - super("Spike", "1/1 green Spike creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Spike"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/s/SpiritMirror.java b/Mage.Sets/src/mage/cards/s/SpiritMirror.java index a49fde06ff..9b34e4e8b5 100644 --- a/Mage.Sets/src/mage/cards/s/SpiritMirror.java +++ b/Mage.Sets/src/mage/cards/s/SpiritMirror.java @@ -28,10 +28,7 @@ package mage.cards.s; import java.util.UUID; - -import mage.MageInt; import mage.abilities.Ability; -import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -42,12 +39,13 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ReflectionToken; import mage.target.TargetPermanent; /** @@ -65,7 +63,6 @@ public class SpiritMirror extends CardImpl { public SpiritMirror(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}{W}"); - // At the beginning of your upkeep, if there are no Reflection tokens on the battlefield, create a 2/2 white Reflection creature token. this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new ReflectionToken()), TargetController.YOU, false), @@ -87,16 +84,3 @@ public class SpiritMirror extends CardImpl { return new SpiritMirror(this); } } - -class ReflectionToken extends Token { - - public ReflectionToken() { - super("Reflection", "2/2 white Reflection creature token"); - this.setOriginalExpansionSetCode("TMP"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Reflection"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SpoilsOfBlood.java b/Mage.Sets/src/mage/cards/s/SpoilsOfBlood.java index d4244495c3..2bb2faa281 100644 --- a/Mage.Sets/src/mage/cards/s/SpoilsOfBlood.java +++ b/Mage.Sets/src/mage/cards/s/SpoilsOfBlood.java @@ -28,7 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -40,10 +39,10 @@ import mage.constants.Outcome; import mage.constants.WatcherScope; import mage.constants.Zone; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SpoilsOfBloodHorrorToken; import mage.players.Player; import mage.watchers.Watcher; @@ -54,8 +53,7 @@ import mage.watchers.Watcher; public class SpoilsOfBlood extends CardImpl { public SpoilsOfBlood(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}"); // Create an X/X black Horror creature token, where X is the number of creatures that died this turn. this.getSpellAbility().addEffect(new SpoilsOfBloodEffect()); @@ -103,7 +101,6 @@ class SpoilsOfBloodEffect extends OneShotEffect { } - class CreaturesDiedThisTurnWatcher extends Watcher { public int creaturesDiedThisTurn = 0; @@ -123,7 +120,7 @@ class CreaturesDiedThisTurnWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == EventType.ZONE_CHANGE && ((ZoneChangeEvent)event).isDiesEvent()) { + if (event.getType() == EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) { MageObject mageObject = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (mageObject != null && mageObject.isCreature()) { creaturesDiedThisTurn++; @@ -138,16 +135,3 @@ class CreaturesDiedThisTurnWatcher extends Watcher { } } - -class SpoilsOfBloodHorrorToken extends Token { - - public SpoilsOfBloodHorrorToken(int xValue) { - super("Horror", "X/X black Horror creature token"); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Horror"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - } -} diff --git a/Mage.Sets/src/mage/cards/s/StitcherGeralf.java b/Mage.Sets/src/mage/cards/s/StitcherGeralf.java index 30f71c35ee..6f4d0b54d5 100644 --- a/Mage.Sets/src/mage/cards/s/StitcherGeralf.java +++ b/Mage.Sets/src/mage/cards/s/StitcherGeralf.java @@ -27,6 +27,7 @@ */ package mage.cards.s; +import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,12 +42,10 @@ import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.StitcherGeralfZombieToken; import mage.players.Player; import mage.target.TargetCard; -import java.util.UUID; - /** * * @author LevelX2 @@ -54,7 +53,7 @@ import java.util.UUID; public class StitcherGeralf extends CardImpl { public StitcherGeralf(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); @@ -99,17 +98,17 @@ class StitcherGeralfEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Cards cards = new CardsImpl(); - for (UUID playerId: game.getState().getPlayersInRange(controller.getId(), game)) { + for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { Player player = game.getPlayer(playerId); if (player != null) { cards.addAll(player.getLibrary().getTopCards(game, 3)); } } controller.moveCards(cards, Zone.GRAVEYARD, source, game); - TargetCard target = new TargetCard(0,2,Zone.GRAVEYARD, new FilterCreatureCard("creature cards to exile")); + TargetCard target = new TargetCard(0, 2, Zone.GRAVEYARD, new FilterCreatureCard("creature cards to exile")); controller.chooseTarget(outcome, cards, target, source, game); int power = 0; - for (UUID cardId: target.getTargets()) { + for (UUID cardId : target.getTargets()) { Card card = game.getCard(cardId); if (card != null) { power += card.getPower().getValue(); @@ -121,17 +120,3 @@ class StitcherGeralfEffect extends OneShotEffect { return false; } } - -class StitcherGeralfZombieToken extends Token { - - StitcherGeralfZombieToken(int xValue) { - super("Zombie", "X/X blue Zombie creature token"); - setOriginalExpansionSetCode("C14"); - setTokenType(1); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Zombie"); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - } -} diff --git a/Mage.Sets/src/mage/cards/s/StitchersApprentice.java b/Mage.Sets/src/mage/cards/s/StitchersApprentice.java index 1ea67910ab..bb8d4d320e 100644 --- a/Mage.Sets/src/mage/cards/s/StitchersApprentice.java +++ b/Mage.Sets/src/mage/cards/s/StitchersApprentice.java @@ -28,9 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +37,13 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.StitchersApprenticeHomunculusToken; import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; @@ -55,14 +55,14 @@ import mage.target.common.TargetControlledPermanent; public class StitchersApprentice extends CardImpl { public StitchersApprentice(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.subtype.add("Homunculus"); this.power = new MageInt(1); this.toughness = new MageInt(2); // {1}{U}, {tap}: Create a 2/2 blue Homunculus creature token, then sacrifice a creature. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HomunculusToken()), new ManaCostsImpl("{1}{U}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new StitchersApprenticeHomunculusToken()), new ManaCostsImpl("{1}{U}")); ability.addCost(new TapSourceCost()); ability.addEffect(new StitchersApprenticeEffect()); this.addAbility(ability); @@ -110,15 +110,3 @@ class StitchersApprenticeEffect extends OneShotEffect { return false; } } - -class HomunculusToken extends Token { - - public HomunculusToken() { - super("Homunculus", "2/2 blue Homunculus creature"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Homunculus"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/s/StoneIdolTrap.java b/Mage.Sets/src/mage/cards/s/StoneIdolTrap.java index b7614c51a3..54a70db600 100644 --- a/Mage.Sets/src/mage/cards/s/StoneIdolTrap.java +++ b/Mage.Sets/src/mage/cards/s/StoneIdolTrap.java @@ -28,14 +28,12 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.cost.CostModificationEffectImpl; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -46,7 +44,7 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.StoneTrapIdolToken; import mage.util.CardUtil; /** @@ -56,7 +54,7 @@ import mage.util.CardUtil; public class StoneIdolTrap extends CardImpl { public StoneIdolTrap(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{5}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{5}{R}"); this.subtype.add("Trap"); // Stone Idol Trap costs {1} less to cast for each attacking creature. @@ -133,26 +131,12 @@ class StoneIdolTrapEffect extends OneShotEffect { } @Override - public boolean apply(Game game, Ability source) { + public boolean apply(Game game, Ability source) { CreateTokenEffect effect = new CreateTokenEffect(new StoneTrapIdolToken()); - if(effect.apply(game, source)) - { + if (effect.apply(game, source)) { effect.exileTokensCreatedAtNextEndStep(game, source); return true; } return false; } } - -class StoneTrapIdolToken extends Token { - - public StoneTrapIdolToken() { - super("Construct", "6/12 colorless Construct artifact creature token with trample"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - subtype.add("Construct"); - power = new MageInt(6); - toughness = new MageInt(12); - addAbility(TrampleAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SubterraneanTremors.java b/Mage.Sets/src/mage/cards/s/SubterraneanTremors.java index 682aada72c..7ae67c657e 100644 --- a/Mage.Sets/src/mage/cards/s/SubterraneanTremors.java +++ b/Mage.Sets/src/mage/cards/s/SubterraneanTremors.java @@ -29,7 +29,6 @@ package mage.cards.s; import java.util.List; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; @@ -43,16 +42,16 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SubterraneanTremorsLizardToken; /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) */ public class SubterraneanTremors extends CardImpl { - + public SubterraneanTremors(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}"); // Subterranean Tremors deals X damage to each creature without flying. // If X is 4 or more, destroy all artifacts. @@ -71,7 +70,7 @@ public class SubterraneanTremors extends CardImpl { } class SubterraneanTremorsEffect extends OneShotEffect { - + private static final FilterCreaturePermanent filterCreatures = new FilterCreaturePermanent("creature without flying"); private static final FilterArtifactPermanent filterArtifacts = new FilterArtifactPermanent("all artifacts"); @@ -95,42 +94,30 @@ class SubterraneanTremorsEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - + int damage = source.getManaCostsToPay().getX(); UUID sourceId = source.getSourceId(); UUID controllerId = source.getControllerId(); - + // X damage to each creature without flying List creaturePermanents = game.getBattlefield().getActivePermanents(filterCreatures, controllerId, game); - for (Permanent permanent: creaturePermanents) { + for (Permanent permanent : creaturePermanents) { permanent.damage(damage, sourceId, game, false, true); } - + // X 4 or more: destroy all artifacts - if (damage >= 4) { + if (damage >= 4) { List artifactPermanents = game.getBattlefield().getActivePermanents(filterArtifacts, controllerId, game); - for (Permanent permanent: artifactPermanents) { + for (Permanent permanent : artifactPermanents) { permanent.destroy(permanent.getId(), game, false); } } // X 8 or more: create an 8/8 red lizard creature token on the battlefield if (damage >= 8) { - Token lizardToken = new LizardToken(); + SubterraneanTremorsLizardToken lizardToken = new SubterraneanTremorsLizardToken(); lizardToken.putOntoBattlefield(1, game, sourceId, controllerId); } - + return true; } } - -class LizardToken extends Token { - - public LizardToken() { - super("Lizard", "an 8/8 red Lizard creature token"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Lizard"); - power = new MageInt(8); - toughness = new MageInt(8); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SummonersBane.java b/Mage.Sets/src/mage/cards/s/SummonersBane.java index 631cbd3c3f..6a4ba14d8e 100644 --- a/Mage.Sets/src/mage/cards/s/SummonersBane.java +++ b/Mage.Sets/src/mage/cards/s/SummonersBane.java @@ -28,15 +28,14 @@ package mage.cards.s; import java.util.UUID; -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.IllusionToken; import mage.target.TargetSpell; /** @@ -52,8 +51,7 @@ public class SummonersBane extends CardImpl { } public SummonersBane(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{U}"); this.getSpellAbility().addTarget(new TargetSpell(filter)); this.getSpellAbility().addEffect(new CounterTargetEffect()); @@ -69,16 +67,3 @@ public class SummonersBane extends CardImpl { return new SummonersBane(this); } } - -class IllusionToken extends Token { - - public IllusionToken() { - super("Illusion", "2/2 blue Illusion creature token"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - - subtype.add("Illusion"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SummoningStation.java b/Mage.Sets/src/mage/cards/s/SummoningStation.java index ba6e27daf7..0c396b7392 100644 --- a/Mage.Sets/src/mage/cards/s/SummoningStation.java +++ b/Mage.Sets/src/mage/cards/s/SummoningStation.java @@ -28,7 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,7 +38,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.PincherToken; /** * @@ -48,12 +47,12 @@ import mage.game.permanent.token.Token; public class SummoningStation extends CardImpl { public SummoningStation(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{7}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{7}"); // {tap}: Create a 2/2 colorless Pincher creature token. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,new CreateTokenEffect(new PincherToken()), new TapSourceCost())); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new PincherToken()), new TapSourceCost())); // Whenever an artifact is put into a graveyard from the battlefield, you may untap Summoning Station. - this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new UntapSourceEffect(),true, new FilterArtifactPermanent(), false)); + this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new UntapSourceEffect(), true, new FilterArtifactPermanent(), false)); } public SummoningStation(final SummoningStation card) { @@ -65,17 +64,3 @@ public class SummoningStation extends CardImpl { return new SummoningStation(this); } } - -class PincherToken extends Token { - - public PincherToken() { - super("Pincher", "2/2 colorless Pincher creature token"); - setOriginalExpansionSetCode("5ND"); - cardType.add(CardType.CREATURE); - subtype.add("Pincher"); - power = new MageInt(2); - toughness = new MageInt(2); - - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/s/SwanSong.java b/Mage.Sets/src/mage/cards/s/SwanSong.java index 9e6e6f9b71..c8f7780d09 100644 --- a/Mage.Sets/src/mage/cards/s/SwanSong.java +++ b/Mage.Sets/src/mage/cards/s/SwanSong.java @@ -28,10 +28,8 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -40,6 +38,7 @@ import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; +import mage.game.permanent.token.SwanSongBirdToken; import mage.game.permanent.token.Token; import mage.game.stack.Spell; import mage.target.TargetSpell; @@ -51,15 +50,15 @@ import mage.target.TargetSpell; public class SwanSong extends CardImpl { private static final FilterSpell filter = new FilterSpell("enchantment, instant or sorcery spell"); + static { filter.add(Predicates.or(new CardTypePredicate(CardType.ENCHANTMENT), - new CardTypePredicate(CardType.INSTANT), - new CardTypePredicate(CardType.SORCERY))); + new CardTypePredicate(CardType.INSTANT), + new CardTypePredicate(CardType.SORCERY))); } public SwanSong(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}"); // Counter target enchantment, instant or sorcery spell. Its controller creates a 2/2 blue Bird creature token with flying. this.getSpellAbility().addEffect(new SwanSongEffect()); @@ -108,18 +107,3 @@ class SwanSongEffect extends OneShotEffect { return countered; } } - -class SwanSongBirdToken extends Token { - SwanSongBirdToken() { - super("Bird", "2/2 blue Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Bird"); - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C16")) { - setTokenType(2); - } - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/s/SylvanOffering.java b/Mage.Sets/src/mage/cards/s/SylvanOffering.java index 7aa99d0e31..96c0571303 100644 --- a/Mage.Sets/src/mage/cards/s/SylvanOffering.java +++ b/Mage.Sets/src/mage/cards/s/SylvanOffering.java @@ -28,7 +28,6 @@ package mage.cards.s; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -39,7 +38,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.token.ElfToken; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.SylvanOfferingTreefolkToken; import mage.players.Player; import mage.target.Target; import mage.target.common.TargetOpponent; @@ -52,7 +51,7 @@ import mage.target.targetpointer.FixedTarget; public class SylvanOffering extends CardImpl { public SylvanOffering(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{G}"); // Choose an opponent. You and that player each create an X/X green Treefolk creature token. this.getSpellAbility().addEffect(new SylvanOfferingEffect1()); @@ -107,20 +106,6 @@ class SylvanOfferingEffect1 extends OneShotEffect { } } -class SylvanOfferingTreefolkToken extends Token { - - public SylvanOfferingTreefolkToken(int xValue) { - super("Treefolk", "X/X green Treefolk creature token"); - setOriginalExpansionSetCode("C14"); - cardType.add(CardType.CREATURE); - subtype.add("Treefolk"); - color.setGreen(true); - power = new MageInt(xValue); - toughness = new MageInt(xValue); - - } -} - class SylvanOfferingEffect2 extends OneShotEffect { SylvanOfferingEffect2() { diff --git a/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java b/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java index f4df6dc7da..e6f849680e 100644 --- a/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java +++ b/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java @@ -27,7 +27,7 @@ */ package mage.cards.t; -import mage.MageInt; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,20 +40,17 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TatsumaDragonToken; import mage.target.targetpointer.FixedTarget; -import java.util.UUID; - /** * * @author LevelX2 @@ -61,7 +58,7 @@ import java.util.UUID; public class TatsumasaTheDragonsFang extends CardImpl { public TatsumasaTheDragonsFang(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); @@ -161,17 +158,3 @@ class TatsumaTheDragonsFangTriggeredAbility extends DelayedTriggeredAbility { return "Return {this} to the battlefield under its owner's control when that token dies."; } } - -class TatsumaDragonToken extends Token { - - public TatsumaDragonToken() { - super("Dragon Spirit", "5/5 blue Dragon Spirit creature token with flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Dragon"); - subtype.add("Spirit"); - power = new MageInt(5); - toughness = new MageInt(5); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TemptWithVengeance.java b/Mage.Sets/src/mage/cards/t/TemptWithVengeance.java index 4932c9ca5b..5c48e08471 100644 --- a/Mage.Sets/src/mage/cards/t/TemptWithVengeance.java +++ b/Mage.Sets/src/mage/cards/t/TemptWithVengeance.java @@ -28,15 +28,14 @@ package mage.cards.t; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; +import mage.game.permanent.token.TemptWithVengeanceElementalToken; import mage.game.permanent.token.Token; import mage.players.Player; @@ -107,17 +106,3 @@ class TemptWithVengeanceEffect extends OneShotEffect { return false; } } - -class TemptWithVengeanceElementalToken extends Token { - - public TemptWithVengeanceElementalToken() { - super("Elemental", "1/1 red Elemental creature tokens with haste"); - cardType.add(CardType.CREATURE); - subtype.add("Elemental"); - - color.setRed(true); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/Tetravus.java b/Mage.Sets/src/mage/cards/t/Tetravus.java index bf954c109e..7b3bfd2b8e 100644 --- a/Mage.Sets/src/mage/cards/t/Tetravus.java +++ b/Mage.Sets/src/mage/cards/t/Tetravus.java @@ -49,7 +49,7 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TetraviteToken; import mage.target.common.TargetControlledPermanent; /** @@ -88,21 +88,6 @@ public class Tetravus extends CardImpl { } } -class TetraviteToken extends Token { - - public TetraviteToken() { - super("Tetravite", "1/1 colorless Tetravite artifact creature token"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - subtype.add("Tetravite"); - power = new MageInt(1); - toughness = new MageInt(1); - - this.addAbility(FlyingAbility.getInstance()); - this.addAbility(new CantBeEnchantedAbility()); - } -} - class CantBeEnchantedAbility extends StaticAbility { public CantBeEnchantedAbility() { diff --git a/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java b/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java index 0edc6e2cb9..6875e52268 100644 --- a/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java +++ b/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java @@ -27,11 +27,11 @@ */ package mage.cards.t; +import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; @@ -44,11 +44,9 @@ import mage.game.Game; import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TeysaEnvoyOfGhostsToken; import mage.target.targetpointer.FixedTarget; -import java.util.UUID; - /** * * @author LevelX2 @@ -56,7 +54,7 @@ import java.util.UUID; public class TeysaEnvoyOfGhosts extends CardImpl { public TeysaEnvoyOfGhosts(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{W}{B}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); @@ -126,17 +124,3 @@ class TeysaEnvoyOfGhostsTriggeredAbility extends TriggeredAbilityImpl { } } - -class TeysaEnvoyOfGhostsToken extends Token { - - TeysaEnvoyOfGhostsToken() { - super("Spirit", "1/1 white and black Spirit creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - color.setBlack(true); - subtype.add("Spirit"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TezzeretTheSchemer.java b/Mage.Sets/src/mage/cards/t/TezzeretTheSchemer.java index 178e960415..0950c31ff1 100644 --- a/Mage.Sets/src/mage/cards/t/TezzeretTheSchemer.java +++ b/Mage.Sets/src/mage/cards/t/TezzeretTheSchemer.java @@ -32,19 +32,15 @@ import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.AddManaOfAnyColorEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.GetEmblemEffect; import mage.abilities.effects.common.continuous.AddCardTypeTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessTargetEffect; -import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -53,7 +49,7 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; import mage.game.command.Emblem; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.EtheriumCellToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -109,17 +105,3 @@ class TezzeretTheSchemerEmblem extends Emblem { this.getAbilities().add(ability); } } - -class EtheriumCellToken extends Token { - - public EtheriumCellToken() { - super("Etherium Cell", "colorless artifact token named Etherium Cell which has \"{T}, Sacrifice this artifact: Add one mana of any color to your mana pool.\""); - this.setOriginalExpansionSetCode("AER"); - cardType.add(CardType.ARTIFACT); - - Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - - this.addAbility(ability); - } -} diff --git a/Mage.Sets/src/mage/cards/t/ThatcherRevolt.java b/Mage.Sets/src/mage/cards/t/ThatcherRevolt.java index 4f101c906a..dc7e6af178 100644 --- a/Mage.Sets/src/mage/cards/t/ThatcherRevolt.java +++ b/Mage.Sets/src/mage/cards/t/ThatcherRevolt.java @@ -29,20 +29,17 @@ package mage.cards.t; import java.util.ArrayList; import java.util.UUID; -import mage.MageInt; -import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.SacrificeTargetEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RedHumanToken; import mage.target.targetpointer.FixedTargets; /** @@ -52,7 +49,7 @@ import mage.target.targetpointer.FixedTargets; public class ThatcherRevolt extends CardImpl { public ThatcherRevolt(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}"); // Create three 1/1 red Human creature tokens with haste. Sacrifice those tokens at the beginning of the next end step. this.getSpellAbility().addEffect(new ThatcherRevoltEffect()); @@ -101,18 +98,3 @@ class ThatcherRevoltEffect extends OneShotEffect { return true; } } - -class RedHumanToken extends Token { - - public RedHumanToken() { - super("Human", "1/1 red Human creature token with haste"); - this.cardType.add(CardType.CREATURE); - this.subtype.add("Human"); - - this.color = ObjectColor.RED; - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - this.addAbility(HasteAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TheBattleOfHoth.java b/Mage.Sets/src/mage/cards/t/TheBattleOfHoth.java index 2878197322..0173db6686 100644 --- a/Mage.Sets/src/mage/cards/t/TheBattleOfHoth.java +++ b/Mage.Sets/src/mage/cards/t/TheBattleOfHoth.java @@ -28,47 +28,32 @@ package mage.cards.t; import java.util.UUID; -import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; -import mage.game.permanent.token.TrooperToken; +import mage.game.permanent.token.ATATToken; /** * * @author Styxo */ public class TheBattleOfHoth extends CardImpl { - + public TheBattleOfHoth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{X}{W}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{X}{W}{W}{W}"); // Create X 5/5 white artifact AT-AT creature tokens wiht "When this creature dies, create two 1/1 white Trooper creature tokens." this.getSpellAbility().addEffect(new CreateTokenEffect(new ATATToken(), new ManacostVariableValue())); } - + public TheBattleOfHoth(final TheBattleOfHoth card) { super(card); } - + @Override public TheBattleOfHoth copy() { return new TheBattleOfHoth(this); } } - -class ATATToken extends Token { - - public ATATToken() { - super("AT-AT", "5/5 white artifact AT-AT creature tokens with \"When this creature dies, create two 1/1 white Trooper creature tokens.\"", 5, 5); - this.setOriginalExpansionSetCode("SWS"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - color.setWhite(true); - addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new TrooperToken(), 2))); - subtype.add("AT-AT"); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TheHive.java b/Mage.Sets/src/mage/cards/t/TheHive.java index a98ba10b09..3fb26a0321 100644 --- a/Mage.Sets/src/mage/cards/t/TheHive.java +++ b/Mage.Sets/src/mage/cards/t/TheHive.java @@ -28,19 +28,16 @@ package mage.cards.t; import java.util.UUID; - -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WaspToken; /** * @@ -49,7 +46,7 @@ import mage.game.permanent.token.Token; public class TheHive extends CardImpl { public TheHive(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WaspToken(), 1), new GenericManaCost(5)); ability.addCost(new TapSourceCost()); this.addAbility(ability); @@ -64,15 +61,3 @@ public class TheHive extends CardImpl { return new TheHive(this); } } - -class WaspToken extends Token { - WaspToken() { - super("Wasp", "1/1 colorless Insect artifact creature token with flying"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - this.subtype.add("Insect"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/t/ThopterFoundry.java b/Mage.Sets/src/mage/cards/t/ThopterFoundry.java index a0c8db74b9..75954c64c3 100644 --- a/Mage.Sets/src/mage/cards/t/ThopterFoundry.java +++ b/Mage.Sets/src/mage/cards/t/ThopterFoundry.java @@ -28,14 +28,12 @@ package mage.cards.t; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -44,7 +42,7 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ThopterToken; import mage.target.common.TargetControlledPermanent; /** @@ -61,11 +59,7 @@ public class ThopterFoundry extends CardImpl { } public ThopterFoundry(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{W/B}{U}"); - - - - + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{W/B}{U}"); // {1}, Sacrifice a nontoken artifact: Create a 1/1 blue Thopter artifact creature token with flying. You gain 1 life. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ThopterToken()), new GenericManaCost(1)); @@ -83,17 +77,3 @@ public class ThopterFoundry extends CardImpl { return new ThopterFoundry(this); } } - -class ThopterToken extends Token { - - ThopterToken() { - super("Thopter", "1/1 blue Thopter artifact creature token with flying"); - cardType.add(CardType.CREATURE); - cardType.add(CardType.ARTIFACT); - color.setBlue(true); - subtype.add("Thopter"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/t/Thunderheads.java b/Mage.Sets/src/mage/cards/t/Thunderheads.java index c9c33c5d0c..8286b1dd57 100644 --- a/Mage.Sets/src/mage/cards/t/Thunderheads.java +++ b/Mage.Sets/src/mage/cards/t/Thunderheads.java @@ -28,19 +28,16 @@ package mage.cards.t; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DefenderAbility; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ReplicateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WeirdToken; /** * @@ -49,7 +46,7 @@ import mage.game.permanent.token.Token; public class Thunderheads extends CardImpl { public Thunderheads(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}"); // Replicate {2}{U} this.addAbility(new ReplicateAbility(this, "{2}{U}")); @@ -93,17 +90,3 @@ class ThunderheadsEffect extends OneShotEffect { return false; } } - -class WeirdToken extends Token { - - WeirdToken() { - super("Weird", "3/3 blue Weird create token with defender and flying"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Weird"); - power = new MageInt(3); - toughness = new MageInt(3); - this.addAbility(DefenderAbility.getInstance()); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TidalWave.java b/Mage.Sets/src/mage/cards/t/TidalWave.java index e17d496d35..b24346e8ab 100644 --- a/Mage.Sets/src/mage/cards/t/TidalWave.java +++ b/Mage.Sets/src/mage/cards/t/TidalWave.java @@ -28,12 +28,10 @@ package mage.cards.t; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.SacrificeTargetEffect; -import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -41,6 +39,7 @@ import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; +import mage.game.permanent.token.TidalWaveWallToken; import mage.target.targetpointer.FixedTarget; /** @@ -50,7 +49,7 @@ import mage.target.targetpointer.FixedTarget; public class TidalWave extends CardImpl { public TidalWave(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}"); // Create a 5/5 blue Wall creature token with defender. Sacrifice it at the beginning of the next end step. this.getSpellAbility().addEffect(new TidalWaveEffect()); @@ -84,7 +83,7 @@ class TidalWaveEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Token token = new WallToken(); + Token token = new TidalWaveWallToken(); if (token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId())) { for (UUID tokenId : token.getLastAddedTokenIds()) { Permanent tokenPermanent = game.getPermanent(tokenId); @@ -99,16 +98,3 @@ class TidalWaveEffect extends OneShotEffect { return false; } } - -class WallToken extends Token { - - WallToken() { - super("Wall", "5/5 blue Wall creature token with defender"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Wall"); - power = new MageInt(5); - toughness = new MageInt(5); - this.addAbility(DefenderAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TitanForge.java b/Mage.Sets/src/mage/cards/t/TitanForge.java index aebb7efcbd..e4064612ba 100644 --- a/Mage.Sets/src/mage/cards/t/TitanForge.java +++ b/Mage.Sets/src/mage/cards/t/TitanForge.java @@ -25,13 +25,9 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.t; import java.util.UUID; - -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -41,9 +37,10 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TitanForgeGolemToken; /** * @@ -51,8 +48,8 @@ import mage.game.permanent.token.Token; */ public class TitanForge extends CardImpl { - public TitanForge (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); + public TitanForge(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new GenericManaCost(3)); ability.addCost(new TapSourceCost()); this.addAbility(ability); @@ -63,7 +60,7 @@ public class TitanForge extends CardImpl { } - public TitanForge (final TitanForge card) { + public TitanForge(final TitanForge card) { super(card); } @@ -73,14 +70,3 @@ public class TitanForge extends CardImpl { } } - -class TitanForgeGolemToken extends Token { - TitanForgeGolemToken() { - super("Golem", "9/9 colorless Golem artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Golem"); - power = new MageInt(9); - toughness = new MageInt(9); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java b/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java index 861d3ae86e..73abc5d9f2 100644 --- a/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java +++ b/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java @@ -27,8 +27,8 @@ */ package mage.cards.t; +import java.util.UUID; import mage.MageInt; -import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; @@ -42,11 +42,9 @@ import mage.constants.TargetController; import mage.filter.common.FilterLandCard; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TitaniaProtectorOfArgothElementalToken; import mage.target.common.TargetCardInYourGraveyard; -import java.util.UUID; - /** * * @author LevelX2 @@ -60,7 +58,7 @@ public class TitaniaProtectorOfArgoth extends CardImpl { } public TitaniaProtectorOfArgoth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); @@ -87,17 +85,3 @@ public class TitaniaProtectorOfArgoth extends CardImpl { return new TitaniaProtectorOfArgoth(this); } } - -class TitaniaProtectorOfArgothElementalToken extends Token { - - TitaniaProtectorOfArgothElementalToken() { - super("Elemental", "5/3 green Elemental creature token"); - this.setOriginalExpansionSetCode("C14"); - this.cardType.add(CardType.CREATURE); - this.color = ObjectColor.GREEN; - this.subtype.add("Elemental"); - - this.power = new MageInt(5); - this.toughness = new MageInt(3); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java b/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java index ab3783ebd8..c2bc07fb26 100644 --- a/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java +++ b/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java @@ -27,6 +27,7 @@ */ package mage.cards.t; +import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -40,9 +41,7 @@ import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.VojaToken; /** * @@ -86,18 +85,3 @@ public class TolsimirWolfblood extends CardImpl { return new TolsimirWolfblood(this); } } - -class VojaToken extends Token { - - public VojaToken() { - super("Voja", "legendary 2/2 green and white Wolf creature token named Voja"); - this.cardType.add(CardType.CREATURE); - addSuperType(SuperType.LEGENDARY); - this.subtype.add("Wolf"); - - this.color.setGreen(true); - this.color.setWhite(true); - this.power = new MageInt(2); - this.toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TombOfUrami.java b/Mage.Sets/src/mage/cards/t/TombOfUrami.java index 2d564d52c0..0ac7e519c7 100644 --- a/Mage.Sets/src/mage/cards/t/TombOfUrami.java +++ b/Mage.Sets/src/mage/cards/t/TombOfUrami.java @@ -28,7 +28,6 @@ package mage.cards.t; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -37,7 +36,6 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -47,7 +45,7 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.UramiToken; /** * @@ -114,20 +112,3 @@ class SacrificeAllLandCost extends CostImpl { } } - -class UramiToken extends Token { - - public UramiToken() { - super("Urami", "legendary 5/5 black Demon Spirit creature token with flying named Urami"); - cardType.add(CardType.CREATURE); - subtype.add("Demon"); - subtype.add("Spirit"); - addSuperType(SuperType.LEGENDARY); - - color.setBlack(true); - power = new MageInt(5); - toughness = new MageInt(5); - - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/ToothAndClaw.java b/Mage.Sets/src/mage/cards/t/ToothAndClaw.java index d849f51832..df7d0b661c 100644 --- a/Mage.Sets/src/mage/cards/t/ToothAndClaw.java +++ b/Mage.Sets/src/mage/cards/t/ToothAndClaw.java @@ -28,16 +28,14 @@ package mage.cards.t; import java.util.UUID; - -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.CarnivoreToken; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -47,7 +45,7 @@ import mage.target.common.TargetControlledCreaturePermanent; public class ToothAndClaw extends CardImpl { public ToothAndClaw(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CarnivoreToken(), 1), new SacrificeTargetCost(new TargetControlledCreaturePermanent(2)))); } @@ -61,14 +59,3 @@ public class ToothAndClaw extends CardImpl { return new ToothAndClaw(this); } } - -class CarnivoreToken extends Token { - CarnivoreToken() { - super("Carnivore", "3/1 red Beast creature token"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Beast"); - power = new MageInt(3); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/t/Triskelavus.java b/Mage.Sets/src/mage/cards/t/Triskelavus.java index eecfd5f98d..b6e26f800f 100644 --- a/Mage.Sets/src/mage/cards/t/Triskelavus.java +++ b/Mage.Sets/src/mage/cards/t/Triskelavus.java @@ -33,10 +33,8 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; -import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -44,8 +42,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.game.permanent.token.Token; -import mage.target.common.TargetCreatureOrPlayer; +import mage.game.permanent.token.TriskelaviteToken; /** * @@ -54,7 +51,7 @@ import mage.target.common.TargetCreatureOrPlayer; public class Triskelavus extends CardImpl { public Triskelavus(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{7}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}"); this.subtype.add("Construct"); this.power = new MageInt(1); this.toughness = new MageInt(1); @@ -80,22 +77,3 @@ public class Triskelavus extends CardImpl { return new Triskelavus(this); } } - -class TriskelaviteToken extends Token { - - public TriskelaviteToken() { - super("Triskelavite", "1/1 colorless Triskelavite artifact creature token with flying. It has \"Sacrifice this creature: This creature deals 1 damage to target creature or player.\""); - this.setOriginalExpansionSetCode("TSP"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Triskelavite"); - power = new MageInt(1); - toughness = new MageInt(1); - - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new SacrificeSourceCost()); - ability.addTarget(new TargetCreatureOrPlayer()); - this.addAbility(ability); - - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TrostanisSummoner.java b/Mage.Sets/src/mage/cards/t/TrostanisSummoner.java index 1a01038f3e..13e5b66f41 100644 --- a/Mage.Sets/src/mage/cards/t/TrostanisSummoner.java +++ b/Mage.Sets/src/mage/cards/t/TrostanisSummoner.java @@ -32,13 +32,12 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.CentaurToken; import mage.game.permanent.token.KnightToken; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.RhinoToken; /** * @@ -71,17 +70,3 @@ public class TrostanisSummoner extends CardImpl { return new TrostanisSummoner(this); } } - -class RhinoToken extends Token { - - public RhinoToken() { - super("Rhino", "4/4 green Rhino creature token with trample"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Rhino"); - power = new MageInt(4); - toughness = new MageInt(4); - addAbility(TrampleAbility.getInstance()); - setOriginalExpansionSetCode("RTR"); - } -} diff --git a/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java b/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java index cbee92a6a6..22459beb08 100644 --- a/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java +++ b/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java @@ -25,19 +25,18 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.t; import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.SuperType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.TuktukTheReturnedToken; /** * @@ -45,8 +44,8 @@ import mage.game.permanent.token.Token; */ public class TuktukTheExplorer extends CardImpl { - public TuktukTheExplorer (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + public TuktukTheExplorer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); @@ -56,7 +55,7 @@ public class TuktukTheExplorer extends CardImpl { this.addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new TuktukTheReturnedToken(expansionSetCode)))); } - public TuktukTheExplorer (final TuktukTheExplorer card) { + public TuktukTheExplorer(final TuktukTheExplorer card) { super(card); } @@ -66,17 +65,3 @@ public class TuktukTheExplorer extends CardImpl { } } - -class TuktukTheReturnedToken extends Token { - - TuktukTheReturnedToken(String setCode) { - super("Tuktuk the Returned", "legendary 5/5 colorless Goblin Golem artifact creature token"); - setOriginalExpansionSetCode(setCode); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - addSuperType(SuperType.LEGENDARY); - subtype.add("Goblin"); - power = new MageInt(5); - toughness = new MageInt(5); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/toupdate.bat b/Mage.Sets/src/mage/cards/toupdate.bat new file mode 100644 index 0000000000..7ba8e297a0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/toupdate.bat @@ -0,0 +1,258 @@ +@echo off +mkdir update +mklink update\AdmiralAckbar.java ..\A\AdmiralAckbar.java +mklink update\AerieWorshippers.java ..\A\AerieWorshippers.java +mklink update\AkkiLavarunner.java ..\A\AkkiLavarunner.java +mklink update\AkoumStonewaker.java ..\A\AkoumStonewaker.java +mklink update\AkroanCrusader.java ..\A\AkroanCrusader.java +mklink update\AlliedReinforcements.java ..\A\AlliedReinforcements.java +mklink update\ArchitectOfTheUntamed.java ..\A\ArchitectOfTheUntamed.java +mklink update\BalduvianDead.java ..\B\BalduvianDead.java +mklink update\BanthaHerd.java ..\B\BanthaHerd.java +mklink update\BaruFistOfKrosa.java ..\B\BaruFistOfKrosa.java +mklink update\BearsCompanion.java ..\B\BearsCompanion.java +mklink update\BeckonApparition.java ..\B\BeckonApparition.java +mklink update\BloodlineKeeper.java ..\B\BloodlineKeeper.java +mklink update\BorisDevilboon.java ..\B\BorisDevilboon.java +mklink update\BottleOfSuleiman.java ..\B\BottleOfSuleiman.java +mklink update\BreedingPit.java ..\B\BreedingPit.java +mklink update\BreyaEtheriumShaper.java ..\B\BreyaEtheriumShaper.java +mklink update\BrindleShoat.java ..\B\BrindleShoat.java +mklink update\BroodKeeper.java ..\B\BroodKeeper.java +mklink update\BudokaGardener.java ..\B\BudokaGardener.java +mklink update\BudokaPupil.java ..\B\BudokaPupil.java +mklink update\BushiTenderfoot.java ..\B\BushiTenderfoot.java +mklink update\CallOfTheNightwing.java ..\C\CallOfTheNightwing.java +mklink update\CallTheSkybreaker.java ..\C\CallTheSkybreaker.java +mklink update\CallowJushi.java ..\C\CallowJushi.java +mklink update\CaribouRange.java ..\C\CaribouRange.java +mklink update\ChasmSkulker.java ..\C\ChasmSkulker.java +mklink update\Cloudseeder.java ..\C\Cloudseeder.java +mklink update\CoralBarrier.java ..\C\CoralBarrier.java +mklink update\Corpseweft.java ..\C\Corpseweft.java +mklink update\CreakwoodLiege.java ..\C\CreakwoodLiege.java +mklink update\CribSwap.java ..\C\CribSwap.java +mklink update\CrushOfTentacles.java ..\C\CrushOfTentacles.java +mklink update\CunningBandit.java ..\C\CunningBandit.java +mklink update\CurseOfTheSwine.java ..\C\CurseOfTheSwine.java +mklink update\DarettiIngeniousIconoclast.java ..\D\DarettiIngeniousIconoclast.java +mklink update\DarkDepths.java ..\D\DarkDepths.java +mklink update\DaxosTheReturned.java ..\D\DaxosTheReturned.java +mklink update\DeadlyGrub.java ..\D\DeadlyGrub.java +mklink update\DeathpactAngel.java ..\D\DeathpactAngel.java +mklink update\DesolationTwin.java ..\D\DesolationTwin.java +mklink update\DevastatingSummons.java ..\D\DevastatingSummons.java +mklink update\DinOfTheFireherd.java ..\D\DinOfTheFireherd.java +mklink update\Dovescape.java ..\D\Dovescape.java +mklink update\DragonBroodmother.java ..\D\DragonBroodmother.java +mklink update\DragonEgg.java ..\D\DragonEgg.java +mklink update\DuneBroodNephilim.java ..\D\DuneBroodNephilim.java +mklink update\ElementalAppeal.java ..\E\ElementalAppeal.java +mklink update\ElementalMastery.java ..\E\ElementalMastery.java +mklink update\ErayoSoratamiAscendant.java ..\E\ErayoSoratamiAscendant.java +mklink update\EyesOfTheWisent.java ..\E\EyesOfTheWisent.java +mklink update\FableOfWolfAndOwl.java ..\F\FableOfWolfAndOwl.java +mklink update\FaithfulSquire.java ..\F\FaithfulSquire.java +mklink update\FeudkillersVerdict.java ..\F\FeudkillersVerdict.java +mklink update\FirecatBlitz.java ..\F\FirecatBlitz.java +mklink update\Flamewright.java ..\F\Flamewright.java +mklink update\FleshCarver.java ..\F\FleshCarver.java +mklink update\FlurryOfHorns.java ..\F\FlurryOfHorns.java +mklink update\FlurryOfWings.java ..\F\FlurryOfWings.java +mklink update\ForlornPseudamma.java ..\F\ForlornPseudamma.java +mklink update\FreyaliseLlanowarsFury.java ..\F\FreyaliseLlanowarsFury.java +mklink update\GargoyleCastle.java ..\G\GargoyleCastle.java +mklink update\GarrukApexPredator.java ..\G\GarrukApexPredator.java +mklink update\GeistSnatch.java ..\G\GeistSnatch.java +mklink update\GiantCaterpillar.java ..\G\GiantCaterpillar.java +mklink update\Giantbaiting.java ..\G\Giantbaiting.java +mklink update\GoblinKaboomist.java ..\G\GoblinKaboomist.java +mklink update\GoblinScouts.java ..\G\GoblinScouts.java +mklink update\GoblinSpymaster.java ..\G\GoblinSpymaster.java +mklink update\GoblinTrenches.java ..\G\GoblinTrenches.java +mklink update\GodFavoredGeneral.java ..\G\GodFavoredGeneral.java +mklink update\Godsire.java ..\G\Godsire.java +mklink update\GoldmeadowLookout.java ..\G\GoldmeadowLookout.java +mklink update\GriffinGuide.java ..\G\GriffinGuide.java +mklink update\GrovetenderDruids.java ..\G\GrovetenderDruids.java +mklink update\GutterGrime.java ..\G\GutterGrime.java +mklink update\HammerOfPurphoros.java ..\H\HammerOfPurphoros.java +mklink update\HanweirGarrison.java ..\H\HanweirGarrison.java +mklink update\HapatraVizierOfPoisons.java ..\H\HapatraVizierOfPoisons.java +mklink update\HauntedAngel.java ..\H\HauntedAngel.java +mklink update\HazezonTamar.java ..\H\HazezonTamar.java +mklink update\HellionCrucible.java ..\H\HellionCrucible.java +mklink update\HellionEruption.java ..\H\HellionEruption.java +mklink update\HelmOfKaldra.java ..\H\HelmOfKaldra.java +mklink update\HiredMuscle.java ..\H\HiredMuscle.java +mklink update\HomaridSpawningBed.java ..\H\HomaridSpawningBed.java +mklink update\HomuraHumanAscendant.java ..\H\HomuraHumanAscendant.java +mklink update\HoofprintsOfTheStag.java ..\H\HoofprintsOfTheStag.java +mklink update\HorncallersChant.java ..\H\HorncallersChant.java +mklink update\HornetNest.java ..\H\HornetNest.java +mklink update\HornetQueen.java ..\H\HornetQueen.java +mklink update\HourOfNeed.java ..\H\HourOfNeed.java +mklink update\HuntedDragon.java ..\H\HuntedDragon.java +mklink update\HuntedHorror.java ..\H\HuntedHorror.java +mklink update\HuntedLammasu.java ..\H\HuntedLammasu.java +mklink update\HuntedTroll.java ..\H\HuntedTroll.java +mklink update\HydraBroodmaster.java ..\H\HydraBroodmaster.java +mklink update\InfernalGenesis.java ..\I\InfernalGenesis.java +mklink update\InitiateOfBlood.java ..\I\InitiateOfBlood.java +mklink update\IronFistOfTheEmpire.java ..\I\IronFistOfTheEmpire.java +mklink update\JabbaTheHutt.java ..\J\JabbaTheHutt.java +mklink update\JeditOjanenOfEfrava.java ..\J\JeditOjanenOfEfrava.java +mklink update\JoinTheRanks.java ..\J\JoinTheRanks.java +mklink update\JunglePatrol.java ..\J\JunglePatrol.java +mklink update\JushiApprentice.java ..\J\JushiApprentice.java +mklink update\KalitasBloodchiefOfGhet.java ..\K\KalitasBloodchiefOfGhet.java +mklink update\KalonianTwingrove.java ..\K\KalonianTwingrove.java +mklink update\KariZevSkyshipRaider.java ..\K\KariZevSkyshipRaider.java +mklink update\KazuulTyrantOfTheCliffs.java ..\K\KazuulTyrantOfTheCliffs.java +mklink update\KherKeep.java ..\K\KherKeep.java +mklink update\KingMacarTheGoldCursed.java ..\K\KingMacarTheGoldCursed.java +mklink update\KioraMasterOfTheDepths.java ..\K\KioraMasterOfTheDepths.java +mklink update\KioraTheCrashingWave.java ..\K\KioraTheCrashingWave.java +mklink update\KitsuneMystic.java ..\K\KitsuneMystic.java +mklink update\KuonOgreAscendant.java ..\K\KuonOgreAscendant.java +mklink update\LeafdrakeRoost.java ..\L\LeafdrakeRoost.java +mklink update\LichLordOfUnx.java ..\L\LichLordOfUnx.java +mklink update\LiegeOfTheTangle.java ..\L\LiegeOfTheTangle.java +mklink update\LinvalaThePreserver.java ..\L\LinvalaThePreserver.java +mklink update\LlanowarMentor.java ..\L\LlanowarMentor.java +mklink update\LordOfLineage.java ..\L\LordOfLineage.java +mklink update\LullmageMentor.java ..\L\LullmageMentor.java +mklink update\MarathWillOfTheWild.java ..\M\MarathWillOfTheWild.java +mklink update\MarduStrikeLeader.java ..\M\MarduStrikeLeader.java +mklink update\MasterOfWaves.java ..\M\MasterOfWaves.java +mklink update\MelokuTheCloudedMirror.java ..\M\MelokuTheCloudedMirror.java +mklink update\MercyKilling.java ..\M\MercyKilling.java +mklink update\MetallurgicSummonings.java ..\M\MetallurgicSummonings.java +mklink update\Metrognome.java ..\M\Metrognome.java +mklink update\MitoticSlime.java ..\M\MitoticSlime.java +mklink update\MoltenBirth.java ..\M\MoltenBirth.java +mklink update\MonasteryMentor.java ..\M\MonasteryMentor.java +mklink update\MonkeyCage.java ..\M\MonkeyCage.java +mklink update\MysticGenesis.java ..\M\MysticGenesis.java +mklink update\NahiriTheLithomancer.java ..\N\NahiriTheLithomancer.java +mklink update\NestOfScarabs.java ..\N\NestOfScarabs.java +mklink update\NezumiGraverobber.java ..\N\NezumiGraverobber.java +mklink update\NezumiShortfang.java ..\N\NezumiShortfang.java +mklink update\NissaSageAnimist.java ..\N\NissaSageAnimist.java +mklink update\NuisanceEngine.java ..\N\NuisanceEngine.java +mklink update\OjutaisSummons.java ..\O\OjutaisSummons.java +mklink update\OmnathLocusOfRage.java ..\O\OmnathLocusOfRage.java +mklink update\OneDozenEyes.java ..\O\OneDozenEyes.java +mklink update\OonaQueenOfTheFae.java ..\O\OonaQueenOfTheFae.java +mklink update\Ophiomancer.java ..\O\Ophiomancer.java +mklink update\OrderedMigration.java ..\O\OrderedMigration.java +mklink update\OrochiEggwatcher.java ..\O\OrochiEggwatcher.java +mklink update\OviyaPashiriSageLifecrafter.java ..\O\OviyaPashiriSageLifecrafter.java +mklink update\OyobiWhoSplitTheHeavens.java ..\O\OyobiWhoSplitTheHeavens.java +mklink update\PactOfTheTitan.java ..\P\PactOfTheTitan.java +mklink update\PatagiaViper.java ..\P\PatagiaViper.java +mklink update\Pentavus.java ..\P\Pentavus.java +mklink update\PenumbraBobcat.java ..\P\PenumbraBobcat.java +mklink update\PenumbraKavu.java ..\P\PenumbraKavu.java +mklink update\PenumbraSpider.java ..\P\PenumbraSpider.java +mklink update\PenumbraWurm.java ..\P\PenumbraWurm.java +mklink update\PharikaGodOfAffliction.java ..\P\PharikaGodOfAffliction.java +mklink update\PhyrexianRebirth.java ..\P\PhyrexianRebirth.java +mklink update\Pongify.java ..\P\Pongify.java +mklink update\PredatoryAdvantage.java ..\P\PredatoryAdvantage.java +mklink update\PrincessLeia.java ..\P\PrincessLeia.java +mklink update\PromiseOfPower.java ..\P\PromiseOfPower.java +mklink update\ProsshSkyraiderOfKher.java ..\P\ProsshSkyraiderOfKher.java +mklink update\PuppetConjurer.java ..\P\PuppetConjurer.java +mklink update\QueenMarchesa.java ..\Q\QueenMarchesa.java +mklink update\QuestForTheGravelord.java ..\Q\QuestForTheGravelord.java +mklink update\RakdosGuildmage.java ..\R\RakdosGuildmage.java +mklink update\RakkaMar.java ..\R\RakkaMar.java +mklink update\RallyTheHorde.java ..\R\RallyTheHorde.java +mklink update\RapidHybridization.java ..\R\RapidHybridization.java +mklink update\ReachOfBranches.java ..\R\ReachOfBranches.java +mklink update\ReefWorm.java ..\R\ReefWorm.java +mklink update\ReignOfThePit.java ..\R\ReignOfThePit.java +mklink update\RenownedWeaver.java ..\R\RenownedWeaver.java +mklink update\RevelOfTheFallenGod.java ..\R\RevelOfTheFallenGod.java +mklink update\RhysTheRedeemed.java ..\R\RhysTheRedeemed.java +mklink update\RiftmarkedKnight.java ..\R\RiftmarkedKnight.java +mklink update\RiptideReplicator.java ..\R\RiptideReplicator.java +mklink update\RiseOfEagles.java ..\R\RiseOfEagles.java +mklink update\RiseOfTheHobgoblins.java ..\R\RiseOfTheHobgoblins.java +mklink update\RiteOfTheRagingStorm.java ..\R\RiteOfTheRagingStorm.java +mklink update\RitualOfTheReturned.java ..\R\RitualOfTheReturned.java +mklink update\RocEgg.java ..\R\RocEgg.java +mklink update\RukhEgg.java ..\R\RukhEgg.java +mklink update\RuneTailKitsuneAscendant.java ..\R\RuneTailKitsuneAscendant.java +mklink update\SaprolingBurst.java ..\S\SaprolingBurst.java +mklink update\SarpadianEmpiresVolVii.java ..\S\SarpadianEmpiresVolVii.java +mklink update\SasayaOrochiAscendant.java ..\S\SasayaOrochiAscendant.java +mklink update\SatyrNyxSmith.java ..\S\SatyrNyxSmith.java +mklink update\SeedGuardian.java ..\S\SeedGuardian.java +mklink update\SekKuarDeathkeeper.java ..\S\SekKuarDeathkeeper.java +mklink update\SengirAutocrat.java ..\S\SengirAutocrat.java +mklink update\SengirNosferatu.java ..\S\SengirNosferatu.java +mklink update\SerpentGenerator.java ..\S\SerpentGenerator.java +mklink update\ShardingSphinx.java ..\S\ShardingSphinx.java +mklink update\SkirkRidgeExhumer.java ..\S\SkirkRidgeExhumer.java +mklink update\SkywiseTeachings.java ..\S\SkywiseTeachings.java +mklink update\Sliversmith.java ..\S\Sliversmith.java +mklink update\SorinLordOfInnistrad.java ..\S\SorinLordOfInnistrad.java +mklink update\SorinSolemnVisitor.java ..\S\SorinSolemnVisitor.java +mklink update\Sparkspitter.java ..\S\Sparkspitter.java +mklink update\SpawningGrounds.java ..\S\SpawningGrounds.java +mklink update\SpawningPit.java ..\S\SpawningPit.java +mklink update\SpikeBreeder.java ..\S\SpikeBreeder.java +mklink update\SpiritMirror.java ..\S\SpiritMirror.java +mklink update\SpoilsOfBlood.java ..\S\SpoilsOfBlood.java +mklink update\StitcherGeralf.java ..\S\StitcherGeralf.java +mklink update\StitchersApprentice.java ..\S\StitchersApprentice.java +mklink update\StoneIdolTrap.java ..\S\StoneIdolTrap.java +mklink update\StudentOfElements.java ..\S\StudentOfElements.java +mklink update\SubterraneanTremors.java ..\S\SubterraneanTremors.java +mklink update\SummonersBane.java ..\S\SummonersBane.java +mklink update\SummoningStation.java ..\S\SummoningStation.java +mklink update\SwanSong.java ..\S\SwanSong.java +mklink update\SylvanOffering.java ..\S\SylvanOffering.java +mklink update\TatsumasaTheDragonsFang.java ..\T\TatsumasaTheDragonsFang.java +mklink update\TemptWithVengeance.java ..\T\TemptWithVengeance.java +mklink update\Tetravus.java ..\T\Tetravus.java +mklink update\TeysaEnvoyOfGhosts.java ..\T\TeysaEnvoyOfGhosts.java +mklink update\TezzeretTheSchemer.java ..\T\TezzeretTheSchemer.java +mklink update\ThatcherRevolt.java ..\T\ThatcherRevolt.java +mklink update\TheBattleOfHoth.java ..\T\TheBattleOfHoth.java +mklink update\TheHive.java ..\T\TheHive.java +mklink update\ThopterFoundry.java ..\T\ThopterFoundry.java +mklink update\Thunderheads.java ..\T\Thunderheads.java +mklink update\TidalWave.java ..\T\TidalWave.java +mklink update\TitanForge.java ..\T\TitanForge.java +mklink update\TitaniaProtectorOfArgoth.java ..\T\TitaniaProtectorOfArgoth.java +mklink update\TolsimirWolfblood.java ..\T\TolsimirWolfblood.java +mklink update\TombOfUrami.java ..\T\TombOfUrami.java +mklink update\ToothAndClaw.java ..\T\ToothAndClaw.java +mklink update\Triskelavus.java ..\T\Triskelavus.java +mklink update\TrostanisSummoner.java ..\T\TrostanisSummoner.java +mklink update\TuktukTheExplorer.java ..\T\TuktukTheExplorer.java +mklink update\UrzasFactory.java ..\U\UrzasFactory.java +mklink update\UtvaraHellkite.java ..\U\UtvaraHellkite.java +mklink update\VoiceOfResurgence.java ..\V\VoiceOfResurgence.java +mklink update\VoiceOfTheWoods.java ..\V\VoiceOfTheWoods.java +mklink update\VolrathsLaboratory.java ..\V\VolrathsLaboratory.java +mklink update\VraskaTheUnseen.java ..\V\VraskaTheUnseen.java +mklink update\WaitingInTheWeeds.java ..\W\WaitingInTheWeeds.java +mklink update\WalkerOfTheGrove.java ..\W\WalkerOfTheGrove.java +mklink update\WallOfKelp.java ..\W\WallOfKelp.java +mklink update\WandOfTheElements.java ..\W\WandOfTheElements.java +mklink update\WestvaleAbbey.java ..\W\WestvaleAbbey.java +mklink update\WestvaleCultLeader.java ..\W\WestvaleCultLeader.java +mklink update\WingmateRoc.java ..\W\WingmateRoc.java +mklink update\WireflyHive.java ..\W\WireflyHive.java +mklink update\WormHarvest.java ..\W\WormHarvest.java +mklink update\WortTheRaidmother.java ..\W\WortTheRaidmother.java +mklink update\Wurmcalling.java ..\W\Wurmcalling.java +mklink update\WurmcoilEngine.java ..\W\WurmcoilEngine.java +mklink update\XenagosTheReveler.java ..\X\XenagosTheReveler.java +mklink update\YoungPyromancer.java ..\Y\YoungPyromancer.java +mklink update\ZektarShrineExpedition.java ..\Z\ZektarShrineExpedition.java +mklink update\ZendikarsRoil.java ..\Z\ZendikarsRoil.java diff --git a/Mage.Sets/src/mage/cards/u/UrzasFactory.java b/Mage.Sets/src/mage/cards/u/UrzasFactory.java index 59e1c41ff0..c0e88b5dbf 100644 --- a/Mage.Sets/src/mage/cards/u/UrzasFactory.java +++ b/Mage.Sets/src/mage/cards/u/UrzasFactory.java @@ -28,9 +28,6 @@ package mage.cards.u; import java.util.UUID; - -import mage.constants.CardType; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,8 +36,9 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.AssemblyWorkerToken; /** * @@ -49,7 +47,7 @@ import mage.game.permanent.token.Token; public class UrzasFactory extends CardImpl { public UrzasFactory(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); this.subtype.add("Urza's"); // {tap}: Add {C} to your mana pool. @@ -69,14 +67,3 @@ public class UrzasFactory extends CardImpl { return new UrzasFactory(this); } } - -class AssemblyWorkerToken extends Token { - AssemblyWorkerToken() { - super("Assembly-Worker", "2/2 colorless Assembly-Worker artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Assembly-Worker"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/u/UtvaraHellkite.java b/Mage.Sets/src/mage/cards/u/UtvaraHellkite.java index b4cd68ac92..52c854f4ba 100644 --- a/Mage.Sets/src/mage/cards/u/UtvaraHellkite.java +++ b/Mage.Sets/src/mage/cards/u/UtvaraHellkite.java @@ -27,6 +27,7 @@ */ package mage.cards.u; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,9 +37,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; - -import java.util.UUID; +import mage.game.permanent.token.UtvaraHellkiteDragonToken; /** * @@ -47,12 +46,13 @@ import java.util.UUID; public class UtvaraHellkite extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Dragon you control"); + static { filter.add(new SubtypePredicate("Dragon")); } public UtvaraHellkite(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{R}{R}"); this.subtype.add("Dragon"); this.power = new MageInt(6); @@ -62,7 +62,7 @@ public class UtvaraHellkite extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Whenever a Dragon you control attacks, create a 6/6 red Dragon creature token with flying. - this.addAbility(new AttacksCreatureYouControlTriggeredAbility(new CreateTokenEffect(new UtvaraHellkiteDragonToken()),false, filter)); + this.addAbility(new AttacksCreatureYouControlTriggeredAbility(new CreateTokenEffect(new UtvaraHellkiteDragonToken()), false, filter)); } public UtvaraHellkite(final UtvaraHellkite card) { @@ -73,16 +73,4 @@ public class UtvaraHellkite extends CardImpl { public UtvaraHellkite copy() { return new UtvaraHellkite(this); } - public static class UtvaraHellkiteDragonToken extends Token { - - private UtvaraHellkiteDragonToken() { - super("Dragon", "6/6 red Dragon creature token with flying"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Dragon"); - power = new MageInt(6); - toughness = new MageInt(6); - addAbility(FlyingAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java b/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java index 3b83b95d52..42b813520d 100644 --- a/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java +++ b/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java @@ -30,21 +30,16 @@ package mage.cards.v; import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.VoiceOfResurgenceToken; import mage.game.stack.Spell; /** @@ -54,7 +49,7 @@ import mage.game.stack.Spell; public class VoiceOfResurgence extends CardImpl { public VoiceOfResurgence(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{W}"); this.subtype.add("Elemental"); this.power = new MageInt(2); @@ -120,21 +115,3 @@ class VoiceOfResurgenceTriggeredAbility extends TriggeredAbilityImpl { return new VoiceOfResurgenceTriggeredAbility(this); } } - -class VoiceOfResurgenceToken extends Token { - - public VoiceOfResurgenceToken() { - super("Elemental", "X/X green and white Elemental creature with with \"This creature's power and toughness are each equal to the number of creatures you control."); - setOriginalExpansionSetCode("DGM"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setWhite(true); - subtype.add("Elemental"); - - power = new MageInt(0); - toughness = new MageInt(0); - - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect( - new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), Duration.EndOfGame))); - } -} diff --git a/Mage.Sets/src/mage/cards/v/VoiceOfTheWoods.java b/Mage.Sets/src/mage/cards/v/VoiceOfTheWoods.java index 7dacf2433c..25ee1de9f0 100644 --- a/Mage.Sets/src/mage/cards/v/VoiceOfTheWoods.java +++ b/Mage.Sets/src/mage/cards/v/VoiceOfTheWoods.java @@ -33,7 +33,6 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -42,7 +41,7 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.VoiceOfTheWoodsElementalToken; import mage.target.common.TargetControlledPermanent; /** @@ -59,7 +58,7 @@ public class VoiceOfTheWoods extends CardImpl { } public VoiceOfTheWoods(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); this.subtype.add("Elf"); this.power = new MageInt(2); @@ -68,7 +67,7 @@ public class VoiceOfTheWoods extends CardImpl { // Tap five untapped Elves you control: Create a 7/7 green Elemental creature token with trample. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new VoiceOfTheWoodsElementalToken()), - new TapTargetCost(new TargetControlledPermanent(5,5, filter, false))); + new TapTargetCost(new TargetControlledPermanent(5, 5, filter, false))); this.addAbility(ability); } @@ -81,19 +80,3 @@ public class VoiceOfTheWoods extends CardImpl { return new VoiceOfTheWoods(this); } } - -class VoiceOfTheWoodsElementalToken extends Token { - - VoiceOfTheWoodsElementalToken() { - super("Elemental", "7/7 green Elemental creature token with trample"); - this.setOriginalExpansionSetCode("EVG"); - cardType.add(CardType.CREATURE); - subtype.add("Elemental"); - - color.setGreen(true); - power = new MageInt(7); - toughness = new MageInt(7); - - addAbility(TrampleAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/v/VolrathsLaboratory.java b/Mage.Sets/src/mage/cards/v/VolrathsLaboratory.java index 2540528357..a0e7e9948b 100644 --- a/Mage.Sets/src/mage/cards/v/VolrathsLaboratory.java +++ b/Mage.Sets/src/mage/cards/v/VolrathsLaboratory.java @@ -28,7 +28,6 @@ package mage.cards.v; import java.util.UUID; -import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -46,6 +45,7 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.token.Token; +import mage.game.permanent.token.VolrathsLaboratoryToken; /** * @@ -54,7 +54,7 @@ import mage.game.permanent.token.Token; public class VolrathsLaboratory extends CardImpl { public VolrathsLaboratory(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); // As Volrath's Laboratory enters the battlefield, choose a color and a creature type. Ability ability = new EntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral)); @@ -103,19 +103,3 @@ class VolrathsLaboratoryEffect extends OneShotEffect { return token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); } } - -class VolrathsLaboratoryToken extends Token { - - VolrathsLaboratoryToken(ObjectColor color, String type) { - super(type, "2/2 creature token of the chosen color and type"); - cardType.add(CardType.CREATURE); - if (color != null) { - this.color.setColor(color); - } - if (type != null) { - subtype.add(type); - } - power = new MageInt(2); - toughness = new MageInt(2); - } -} diff --git a/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java b/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java index 2c20318561..41e4f823d7 100644 --- a/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java +++ b/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java @@ -28,17 +28,14 @@ package mage.cards.v; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.effects.common.LoseGameTargetPlayerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -49,10 +46,10 @@ import mage.constants.SubLayer; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedPlaneswalkerEvent; -import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.AssassinToken; import mage.target.common.TargetNonlandPermanent; import mage.target.targetpointer.FixedTarget; @@ -70,7 +67,7 @@ import mage.target.targetpointer.FixedTarget; public class VraskaTheUnseen extends CardImpl { public VraskaTheUnseen(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.PLANESWALKER},"{3}{B}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{3}{B}{G}"); this.subtype.add("Vraska"); this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(5)); @@ -146,19 +143,6 @@ class VraskaTheUnseenGainAbilityEffect extends ContinuousEffectImpl { } } -class AssassinToken extends Token { - - AssassinToken() { - super("Assassin", "1/1 black Assassin creature tokens with \"Whenever this creature deals combat damage to a player, that player loses the game.\""); - cardType.add(CardType.CREATURE); - color.setBlack(true); - subtype.add("Assassin"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new LoseGameTargetPlayerEffect(), false, true)); - } -} - class VraskaTheUnseenTriggeredAbility extends TriggeredAbilityImpl { public VraskaTheUnseenTriggeredAbility() { diff --git a/Mage.Sets/src/mage/cards/w/WaitingInTheWeeds.java b/Mage.Sets/src/mage/cards/w/WaitingInTheWeeds.java index f77aadb096..7a8bb9165f 100644 --- a/Mage.Sets/src/mage/cards/w/WaitingInTheWeeds.java +++ b/Mage.Sets/src/mage/cards/w/WaitingInTheWeeds.java @@ -28,7 +28,6 @@ package mage.cards.w; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +39,7 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.game.Game; +import mage.game.permanent.token.WaitingInTheWeedsCatToken; import mage.game.permanent.token.Token; import mage.players.Player; @@ -50,8 +50,7 @@ import mage.players.Player; public class WaitingInTheWeeds extends CardImpl { public WaitingInTheWeeds(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{G}{G}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}{G}"); // Each player creates a 1/1 green Cat creature token for each untapped Forest he or she controls. this.getSpellAbility().addEffect(new WaitingInTheWeedsEffect()); @@ -70,7 +69,7 @@ public class WaitingInTheWeeds extends CardImpl { class WaitingInTheWeedsEffect extends OneShotEffect { private static final FilterPermanent filter = new FilterPermanent("untapped Forest he or she controls"); - + static { filter.add(new SubtypePredicate("Forest")); filter.add(Predicates.not(new TappedPredicate())); @@ -95,7 +94,7 @@ class WaitingInTheWeedsEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { - Token token = new CatToken(); + Token token = new WaitingInTheWeedsCatToken(); int amount = game.getBattlefield().getAllActivePermanents(filter, playerId, game).size(); token.putOntoBattlefield(amount, game, source.getSourceId(), playerId); } @@ -104,15 +103,3 @@ class WaitingInTheWeedsEffect extends OneShotEffect { return false; } } - -class CatToken extends Token { - - public CatToken() { - super("Cat", "1/1 green Cat creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Cat"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/w/WalkerOfTheGrove.java b/Mage.Sets/src/mage/cards/w/WalkerOfTheGrove.java index 2d9c514056..a2dd8ea2dc 100644 --- a/Mage.Sets/src/mage/cards/w/WalkerOfTheGrove.java +++ b/Mage.Sets/src/mage/cards/w/WalkerOfTheGrove.java @@ -28,14 +28,14 @@ package mage.cards.w; import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.EvokeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.game.permanent.token.WalkerOfTheGroveToken; /** * @@ -44,14 +44,14 @@ import mage.game.permanent.token.Token; public class WalkerOfTheGrove extends CardImpl { public WalkerOfTheGrove(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{G}{G}"); this.subtype.add("Elemental"); this.power = new MageInt(7); this.toughness = new MageInt(7); // When Walker of the Grove leaves the battlefield, create a 4/4 green Elemental creature token. - this.addAbility(new LeavesBattlefieldTriggeredAbility(new CreateTokenEffect(new WalkerOfTheGroveToken(),1),false)); + this.addAbility(new LeavesBattlefieldTriggeredAbility(new CreateTokenEffect(new WalkerOfTheGroveToken(), 1), false)); // Evoke {4}{G} this.addAbility(new EvokeAbility(this, "{4}{G}")); } @@ -65,14 +65,3 @@ public class WalkerOfTheGrove extends CardImpl { return new WalkerOfTheGrove(this); } } - -class WalkerOfTheGroveToken extends Token { - public WalkerOfTheGroveToken() { - super("Elemental", "4/4 green Elemental creature token"); - cardType.add(CardType.CREATURE); - this.subtype.add("Elemental"); - this.color.setGreen(true); - power = new MageInt(4); - toughness = new MageInt(4); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/w/WallOfKelp.java b/Mage.Sets/src/mage/cards/w/WallOfKelp.java index 8bfe49ae57..7b204f8b83 100644 --- a/Mage.Sets/src/mage/cards/w/WallOfKelp.java +++ b/Mage.Sets/src/mage/cards/w/WallOfKelp.java @@ -39,7 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.KelpToken; /** * @@ -72,19 +72,3 @@ public class WallOfKelp extends CardImpl { return new WallOfKelp(this); } } - -class KelpToken extends Token { - - public KelpToken() { - super("Kelp", "0/1 blue Plant Wall creature token with defender named Kelp"); - this.setOriginalExpansionSetCode("MIR"); - cardType.add(CardType.CREATURE); - color.setBlue(true); - subtype.add("Plant"); - subtype.add("Wall"); - power = new MageInt(0); - toughness = new MageInt(1); - - this.addAbility(DefenderAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/w/WandOfTheElements.java b/Mage.Sets/src/mage/cards/w/WandOfTheElements.java index 5eb38d8c60..b37a56b66e 100644 --- a/Mage.Sets/src/mage/cards/w/WandOfTheElements.java +++ b/Mage.Sets/src/mage/cards/w/WandOfTheElements.java @@ -25,25 +25,22 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.w; import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WandOfTheElementsFirstToken; +import mage.game.permanent.token.WandOfTheElementsSecondToken; import mage.target.common.TargetControlledPermanent; /** @@ -60,7 +57,7 @@ public class WandOfTheElements extends CardImpl { } public WandOfTheElements(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WandOfTheElementsFirstToken()), new TapSourceCost()); firstAbility.addCost(new SacrificeTargetCost(new TargetControlledPermanent(islandFilter))); this.addAbility(firstAbility); @@ -79,28 +76,3 @@ public class WandOfTheElements extends CardImpl { return new WandOfTheElements(this); } } - -class WandOfTheElementsFirstToken extends Token { - public WandOfTheElementsFirstToken() { - super("Elemental", "2/2 blue Elemental creature token with flying"); - cardType.add(CardType.CREATURE); - this.subtype.add("Elemental"); - this.color.setBlue(true); - power = new MageInt(2); - toughness = new MageInt(2); - this.addAbility(FlyingAbility.getInstance()); - } -} - - -class WandOfTheElementsSecondToken extends Token { - public WandOfTheElementsSecondToken() { - super("Elemental", "3/3 red Elemental creature token"); - cardType.add(CardType.CREATURE); - this.subtype.add("Elemental"); - this.color.setRed(true); - power = new MageInt(3); - toughness = new MageInt(3); - } -} - diff --git a/Mage.Sets/src/mage/cards/w/WestvaleAbbey.java b/Mage.Sets/src/mage/cards/w/WestvaleAbbey.java index ff328782b1..af59a347ad 100644 --- a/Mage.Sets/src/mage/cards/w/WestvaleAbbey.java +++ b/Mage.Sets/src/mage/cards/w/WestvaleAbbey.java @@ -28,7 +28,6 @@ package mage.cards.w; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayLifeCost; @@ -40,13 +39,13 @@ import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.keyword.TransformAbility; import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.o.OrmendahlProfanePrince; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.o.OrmendahlProfanePrince; import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.HumanClericToken; import mage.target.common.TargetControlledPermanent; /** @@ -56,7 +55,7 @@ import mage.target.common.TargetControlledPermanent; public class WestvaleAbbey extends CardImpl { public WestvaleAbbey(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); this.transformable = true; this.secondSideCardClazz = OrmendahlProfanePrince.class; @@ -88,16 +87,3 @@ public class WestvaleAbbey extends CardImpl { return new WestvaleAbbey(this); } } -class HumanClericToken extends Token { - - public HumanClericToken() { - super("Human Cleric", "1/1 white and black Human Cleric creature token"); - cardType.add(CardType.CREATURE); - subtype.add("Human"); - subtype.add("Cleric"); - color.setWhite(true); - color.setBlack(true); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java b/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java index 4338907dd2..43c205b692 100644 --- a/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java +++ b/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java @@ -41,6 +41,7 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import mage.game.permanent.token.HumanClericToken; /** * diff --git a/Mage.Sets/src/mage/cards/w/WingmateRoc.java b/Mage.Sets/src/mage/cards/w/WingmateRoc.java index dffbd3bfa2..51fc6ab2bb 100644 --- a/Mage.Sets/src/mage/cards/w/WingmateRoc.java +++ b/Mage.Sets/src/mage/cards/w/WingmateRoc.java @@ -41,7 +41,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WingmateRocToken; import mage.watchers.common.PlayerAttackedWatcher; /** @@ -51,7 +51,7 @@ import mage.watchers.common.PlayerAttackedWatcher; public class WingmateRoc extends CardImpl { public WingmateRoc(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); this.subtype.add("Bird"); this.power = new MageInt(3); @@ -80,16 +80,3 @@ public class WingmateRoc extends CardImpl { return new WingmateRoc(this); } } - -class WingmateRocToken extends Token { - - WingmateRocToken() { - super("Bird", "3/4 white Bird creature token with flying"); - cardType.add(CardType.CREATURE); - subtype.add("Bird"); - color.setWhite(true); - power = new MageInt(3); - toughness = new MageInt(4); - addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/w/WireflyHive.java b/Mage.Sets/src/mage/cards/w/WireflyHive.java index e843b17b29..89b9b384de 100644 --- a/Mage.Sets/src/mage/cards/w/WireflyHive.java +++ b/Mage.Sets/src/mage/cards/w/WireflyHive.java @@ -35,14 +35,13 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyAllEffect; import mage.abilities.effects.common.FlipCoinEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.NamePredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WireflyToken; /** * @@ -71,17 +70,3 @@ public class WireflyHive extends CardImpl { return new WireflyHive(this); } } - -class WireflyToken extends Token { - - WireflyToken() { - super("Wirefly", "2/2 colorless Insect artifact creature token with flying named Wirefly"); - this.setOriginalExpansionSetCode("DST"); - this.getPower().modifyBaseValue(2); - this.getToughness().modifyBaseValue(2); - this.getSubtype(null).add("Insect"); - this.addCardType(CardType.ARTIFACT); - this.addCardType(CardType.CREATURE); - this.addAbility(FlyingAbility.getInstance()); - } -} diff --git a/Mage.Sets/src/mage/cards/w/WormHarvest.java b/Mage.Sets/src/mage/cards/w/WormHarvest.java index 611c2972a6..0de345c406 100644 --- a/Mage.Sets/src/mage/cards/w/WormHarvest.java +++ b/Mage.Sets/src/mage/cards/w/WormHarvest.java @@ -28,7 +28,6 @@ package mage.cards.w; import java.util.UUID; -import mage.MageInt; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.RetraceAbility; @@ -36,7 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandCard; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WormHarvestToken; /** * @@ -45,7 +44,7 @@ import mage.game.permanent.token.Token; public class WormHarvest extends CardImpl { public WormHarvest(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B/G}{B/G}{B/G}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B/G}{B/G}{B/G}"); // Create a 1/1 black and green Worm creature token for each land card in your graveyard. CardsInControllerGraveyardCount value = new CardsInControllerGraveyardCount(new FilterLandCard()); @@ -64,15 +63,3 @@ public class WormHarvest extends CardImpl { return new WormHarvest(this); } } - -class WormHarvestToken extends Token { - WormHarvestToken() { - super("Worm", "1/1 black and green Worm creature token"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - color.setGreen(true); - subtype.add("Worm"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java b/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java index c19d807ae1..2fe89eab31 100644 --- a/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java +++ b/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java @@ -27,6 +27,7 @@ */ package mage.cards.w; +import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -42,12 +43,10 @@ import mage.filter.common.FilterInstantOrSorcerySpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WortTheRaidmotherToken; import mage.game.stack.Spell; import mage.game.stack.StackObject; -import java.util.UUID; - /** * * @author LevelX2 @@ -55,7 +54,7 @@ import java.util.UUID; public class WortTheRaidmother extends CardImpl { public WortTheRaidmother(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R/G}{R/G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R/G}{R/G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Shaman"); @@ -118,17 +117,3 @@ class WortGainConspireEffect extends ContinuousEffectImpl { return true; } } - -class WortTheRaidmotherToken extends Token { - - public WortTheRaidmotherToken() { - super("Goblin Warrior", "1/1 red and green Goblin Warrior creature token"); - cardType.add(CardType.CREATURE); - color.setRed(true); - color.setGreen(true); - subtype.add("Goblin"); - subtype.add("Warrior"); - power = new MageInt(1); - toughness = new MageInt(1); - } -} diff --git a/Mage.Sets/src/mage/cards/w/Wurmcalling.java b/Mage.Sets/src/mage/cards/w/Wurmcalling.java index 4f0aefd8ab..39de00f238 100644 --- a/Mage.Sets/src/mage/cards/w/Wurmcalling.java +++ b/Mage.Sets/src/mage/cards/w/Wurmcalling.java @@ -28,7 +28,6 @@ package mage.cards.w; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.BuybackAbility; @@ -37,7 +36,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.WurmCallingWurmToken; /** * @@ -46,7 +45,7 @@ import mage.game.permanent.token.Token; public class Wurmcalling extends CardImpl { public Wurmcalling(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{G}"); // Buyback {2}{G} this.addAbility(new BuybackAbility("{2}{G}")); @@ -78,7 +77,7 @@ class WurmcallingEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { int count = source.getManaCostsToPay().getX(); - WurmToken token = new WurmToken(); + WurmCallingWurmToken token = new WurmCallingWurmToken(); token.getPower().modifyBaseValue(count); token.getToughness().modifyBaseValue(count); token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId()); @@ -90,14 +89,3 @@ class WurmcallingEffect extends OneShotEffect { return new WurmcallingEffect(this); } } - -class WurmToken extends Token { - public WurmToken() { - super("Wurm", "X/X green Wurm creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add("Wurm"); - power = new MageInt(0); - toughness = new MageInt(0); - } -} diff --git a/Mage.Sets/src/mage/cards/w/WurmcoilEngine.java b/Mage.Sets/src/mage/cards/w/WurmcoilEngine.java index 1a3140b705..0bb96afffa 100644 --- a/Mage.Sets/src/mage/cards/w/WurmcoilEngine.java +++ b/Mage.Sets/src/mage/cards/w/WurmcoilEngine.java @@ -37,7 +37,8 @@ import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.Wurm1Token; +import mage.game.permanent.token.Wurm2Token; /** * @@ -71,33 +72,3 @@ public class WurmcoilEngine extends CardImpl { } } - -class Wurm1Token extends Token { - - public Wurm1Token(String setCode) { - super("Wurm", "3/3 colorless Wurm artifact creature token with deathtouch"); - setOriginalExpansionSetCode(setCode); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Wurm"); - power = new MageInt(3); - toughness = new MageInt(3); - this.addAbility(DeathtouchAbility.getInstance()); - } -} - -class Wurm2Token extends Token { - - public Wurm2Token(String setCode) { - super("Wurm", "3/3 colorless Wurm artifact creature token with lifelink"); - setOriginalExpansionSetCode(setCode); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Wurm"); - power = new MageInt(3); - toughness = new MageInt(3); - this.addAbility(LifelinkAbility.getInstance()); - - setTokenType(2); // for image - } -} diff --git a/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java b/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java index 0a761cd441..027d3d9b0b 100644 --- a/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java +++ b/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java @@ -30,14 +30,12 @@ package mage.cards.x; import java.util.LinkedHashSet; import java.util.Set; import java.util.UUID; -import mage.MageInt; import mage.Mana; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; @@ -52,7 +50,7 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.XenagosSatyrToken; import mage.players.Player; import mage.target.TargetCard; @@ -63,7 +61,7 @@ import mage.target.TargetCard; public class XenagosTheReveler extends CardImpl { public XenagosTheReveler(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.PLANESWALKER},"{2}{R}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{R}{G}"); this.subtype.add("Xenagos"); this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3)); @@ -143,22 +141,6 @@ class XenagosManaEffect extends OneShotEffect { } } -class XenagosSatyrToken extends Token { - - public XenagosSatyrToken() { - super("Satyr", "2/2 red and green Satyr creature token with haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - color.setGreen(true); - subtype.add("Satyr"); - power = new MageInt(2); - toughness = new MageInt(2); - - this.addAbility(HasteAbility.getInstance()); - } - -} - class XenagosExileEffect extends OneShotEffect { public XenagosExileEffect() { diff --git a/Mage.Sets/src/mage/cards/y/YoungPyromancer.java b/Mage.Sets/src/mage/cards/y/YoungPyromancer.java index abe7e2040e..84f2f5867f 100644 --- a/Mage.Sets/src/mage/cards/y/YoungPyromancer.java +++ b/Mage.Sets/src/mage/cards/y/YoungPyromancer.java @@ -27,6 +27,7 @@ */ package mage.cards.y; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,10 +37,7 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.permanent.token.Token; -import mage.util.RandomUtil; - -import java.util.UUID; +import mage.game.permanent.token.YoungPyromancerElementalToken; /** * @@ -56,7 +54,7 @@ public class YoungPyromancer extends CardImpl { } public YoungPyromancer(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); this.subtype.add("Human"); this.subtype.add("Shaman"); @@ -64,7 +62,7 @@ public class YoungPyromancer extends CardImpl { this.toughness = new MageInt(1); // Whenever you cast an instant or sorcery spell, create a 1/1 red Elemental creature token. - this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new ElementalToken()), filter, false)); + this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new YoungPyromancerElementalToken()), filter, false)); } @@ -77,21 +75,4 @@ public class YoungPyromancer extends CardImpl { return new YoungPyromancer(this); } - static class ElementalToken extends Token { - - public ElementalToken() { - super("Elemental", "1/1 red Elemental creature"); - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M14")) { - setTokenType(RandomUtil.nextInt(2) + 1); - } - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("EMA")) { - setTokenType(1); - } - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(1); - toughness = new MageInt(1); - } - } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java b/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java index 4227a03fee..6183635974 100644 --- a/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java +++ b/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java @@ -28,7 +28,6 @@ package mage.cards.z; import java.util.UUID; -import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -37,8 +36,6 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.HasteAbility; -import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -46,7 +43,7 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ZektarShrineElementalToken; /** * @@ -55,7 +52,7 @@ import mage.game.permanent.token.Token; public class ZektarShrineExpedition extends CardImpl { public ZektarShrineExpedition(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}"); // Landfall - Whenever a land enters the battlefield under your control, you may put a quest counter on Zektar Shrine Expedition. this.addAbility(new LandfallAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true)); @@ -93,27 +90,13 @@ class ZektarShrineExpeditionEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - - CreateTokenEffect effect = new CreateTokenEffect(new ElementalToken()); - if(effect.apply(game, source)) - { - effect.exileTokensCreatedAtNextEndStep(game, source); + + CreateTokenEffect effect = new CreateTokenEffect(new ZektarShrineElementalToken()); + if (effect.apply(game, source)) { + effect.exileTokensCreatedAtNextEndStep(game, source); return true; } return false; } - static class ElementalToken extends Token { - - public ElementalToken() { - super("Elemental", "7/1 red Elemental creature token with trample and haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Elemental"); - power = new MageInt(7); - toughness = new MageInt(1); - addAbility(TrampleAbility.getInstance()); - addAbility(HasteAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/cards/z/ZendikarsRoil.java b/Mage.Sets/src/mage/cards/z/ZendikarsRoil.java index b938ab8344..81b7de88fb 100644 --- a/Mage.Sets/src/mage/cards/z/ZendikarsRoil.java +++ b/Mage.Sets/src/mage/cards/z/ZendikarsRoil.java @@ -28,7 +28,6 @@ package mage.cards.z; import java.util.UUID; -import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,7 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.ZendikarsRoilElementalToken; /** * @@ -45,7 +44,7 @@ import mage.game.permanent.token.Token; public class ZendikarsRoil extends CardImpl { public ZendikarsRoil(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}{G}"); // Whenever a land enters the battlefield under your control, create a 2/2 green Elemental creature token. Effect effect = new CreateTokenEffect(new ZendikarsRoilElementalToken()); @@ -61,17 +60,3 @@ public class ZendikarsRoil extends CardImpl { return new ZendikarsRoil(this); } } - -class ZendikarsRoilElementalToken extends Token { - - public ZendikarsRoilElementalToken() { - super("Elemental", "2/2 green Elemental creature token"); - cardType.add(CardType.CREATURE); - setOriginalExpansionSetCode("ORI"); - subtype.add("Elemental"); - color.setGreen(true); - power = new MageInt(2); - toughness = new MageInt(2); - } - -} diff --git a/Mage/src/main/java/mage/game/permanent/token/ATATToken.java b/Mage/src/main/java/mage/game/permanent/token/ATATToken.java new file mode 100644 index 0000000000..73e71fa468 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ATATToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; + +/** + * + * @author spjspj + */ +public class ATATToken extends Token { + + public ATATToken() { + super("AT-AT", "5/5 white artifact AT-AT creature tokens with \"When this creature dies, create two 1/1 white Trooper creature tokens.\"", 5, 5); + this.setOriginalExpansionSetCode("SWS"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + color.setWhite(true); + addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new TrooperToken(), 2))); + subtype.add("AT-AT"); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/AbhorrentOverlordHarpyToken.java b/Mage/src/main/java/mage/game/permanent/token/AbhorrentOverlordHarpyToken.java new file mode 100644 index 0000000000..f1acb99180 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AbhorrentOverlordHarpyToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class AbhorrentOverlordHarpyToken extends Token { + + public AbhorrentOverlordHarpyToken() { + super("Harpy", "1/1 black Harpy creature tokens with flying"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Harpy"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/AerieWorshippersBirdToken.java b/Mage/src/main/java/mage/game/permanent/token/AerieWorshippersBirdToken.java new file mode 100644 index 0000000000..fafc54defc --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AerieWorshippersBirdToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + + +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class AerieWorshippersBirdToken extends Token { + + public AerieWorshippersBirdToken() { + super("Bird", "2/2 blue Bird enchantment creature token with flying"); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Bird"); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + this.setOriginalExpansionSetCode("BNG"); + this.setTokenType(2); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/AkoumStonewakerElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/AkoumStonewakerElementalToken.java new file mode 100644 index 0000000000..16858815e5 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AkoumStonewakerElementalToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; + +/** + * + * @author spjspj + */ +public class AkoumStonewakerElementalToken extends Token { + + public AkoumStonewakerElementalToken() { + super("Elemental", "3/1 red Elemental creature token with trample and haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(3); + toughness = new MageInt(1); + this.addAbility(TrampleAbility.getInstance()); + this.addAbility(HasteAbility.getInstance()); + this.setOriginalExpansionSetCode("BFZ"); + this.setTokenType(1); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/AkroanSoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/AkroanSoldierToken.java new file mode 100644 index 0000000000..189f1be7d3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AkroanSoldierToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class AkroanSoldierToken extends Token { + + public AkroanSoldierToken() { + super("Soldier", "1/1 red Soldier creature token with haste"); + setTokenType(3); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Soldier"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/AngelTombToken.java b/Mage/src/main/java/mage/game/permanent/token/AngelTombToken.java new file mode 100644 index 0000000000..fc4ed41799 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AngelTombToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class AngelTombToken extends Token { + + public AngelTombToken() { + super("", "3/3 white Angel artifact creature with flying"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + color.setWhite(true); + + subtype.add("Angel"); + power = new MageInt(3); + toughness = new MageInt(3); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/AnotherSpiritToken.java b/Mage/src/main/java/mage/game/permanent/token/AnotherSpiritToken.java new file mode 100644 index 0000000000..b59d8097bf --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AnotherSpiritToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class AnotherSpiritToken extends Token { + + public AnotherSpiritToken() { + super("Spirit", "3/3 white Spirit creature token with flying"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Spirit"); + power = new MageInt(3); + toughness = new MageInt(3); + this.addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/AnthousaWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/AnthousaWarriorToken.java new file mode 100644 index 0000000000..657ab6ab59 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AnthousaWarriorToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class AnthousaWarriorToken extends Token { + + public AnthousaWarriorToken() { + super("", "2/2 Warrior creatures"); + cardType.add(CardType.CREATURE); + subtype.add("Warrior"); + power = new MageInt(2); + toughness = new MageInt(2); + } + +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/ApeToken.java b/Mage/src/main/java/mage/game/permanent/token/ApeToken.java new file mode 100644 index 0000000000..f28ce8fc43 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ApeToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ApeToken extends Token { + + public ApeToken() { + super("Ape", "2/2 green Ape creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Ape"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ArchitectOfTheUntamedBeastToken.java b/Mage/src/main/java/mage/game/permanent/token/ArchitectOfTheUntamedBeastToken.java new file mode 100644 index 0000000000..2d72df573b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ArchitectOfTheUntamedBeastToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ArchitectOfTheUntamedBeastToken extends Token { + + public ArchitectOfTheUntamedBeastToken() { + super("Beast", "6/6 colorless Beast artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Beast"); + power = new MageInt(6); + toughness = new MageInt(6); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/AssassinToken.java b/Mage/src/main/java/mage/game/permanent/token/AssassinToken.java new file mode 100644 index 0000000000..026037100c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AssassinToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.common.LoseGameTargetPlayerEffect; + +/** + * + * @author spjspj + */ +public class AssassinToken extends Token { + + public AssassinToken() { + super("Assassin", "1/1 black Assassin creature tokens with \"Whenever this creature deals combat damage to a player, that player loses the game.\""); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Assassin"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new LoseGameTargetPlayerEffect(), false, true)); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/AssemblyWorkerToken.java b/Mage/src/main/java/mage/game/permanent/token/AssemblyWorkerToken.java new file mode 100644 index 0000000000..08ddc464d3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AssemblyWorkerToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class AssemblyWorkerToken extends Token { + + public AssemblyWorkerToken() { + super("Assembly-Worker", "2/2 Assembly-Worker artifact creature"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + this.subtype.add("Assembly-Worker"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/AvatarToken.java b/Mage/src/main/java/mage/game/permanent/token/AvatarToken.java new file mode 100644 index 0000000000..865f295706 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/AvatarToken.java @@ -0,0 +1,88 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import mage.abilities.Ability; +import mage.constants.CardType; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.constants.Duration; +import mage.constants.Layer; +import mage.constants.Outcome; +import mage.constants.SubLayer; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author spjspj + */ +public class AvatarToken extends Token { + + public AvatarToken() { + super("Avatar", "white Avatar creature token with \"This creature's power and toughness are each equal to your life total.\""); + cardType.add(CardType.CREATURE); + subtype.add("Avatar"); + color.setWhite(true); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AvatarTokenEffect())); + } +} + +class AvatarTokenEffect extends ContinuousEffectImpl { + + public AvatarTokenEffect() { + super(Duration.WhileOnBattlefield, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature); + } + + public AvatarTokenEffect(final AvatarTokenEffect effect) { + super(effect); + } + + @Override + public AvatarTokenEffect copy() { + return new AvatarTokenEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent token = game.getPermanent(source.getSourceId()); + if (token != null) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + token.getPower().setValue(controller.getLife()); + token.getToughness().setValue(controller.getLife()); + return true; + } + } + return false; + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/BalduvianToken.java b/Mage/src/main/java/mage/game/permanent/token/BalduvianToken.java new file mode 100644 index 0000000000..11f750fbd6 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BalduvianToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class BalduvianToken extends Token { + + public BalduvianToken() { + super("Graveborn", "3/1 black and red Graveborn creature token with haste"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + color.setRed(true); + power = new MageInt(3); + toughness = new MageInt(1); + subtype.add("Graveborn"); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/BaruFistOfKrosaToken.java b/Mage/src/main/java/mage/game/permanent/token/BaruFistOfKrosaToken.java new file mode 100644 index 0000000000..a2db539e2a --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BaruFistOfKrosaToken.java @@ -0,0 +1,56 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class BaruFistOfKrosaToken extends Token { + + public BaruFistOfKrosaToken() { + this(1); + } + + public BaruFistOfKrosaToken(int xValue) { + super("Wurm", "X/X green Wurm creature token, where X is the number of lands you control"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Wurm"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/BearsCompanionBearToken.java b/Mage/src/main/java/mage/game/permanent/token/BearsCompanionBearToken.java new file mode 100644 index 0000000000..17c1627ad6 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BearsCompanionBearToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class BearsCompanionBearToken extends Token { + + public BearsCompanionBearToken() { + super("Bear", "4/4 green Bear creature token"); + setOriginalExpansionSetCode("KTK"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Bear"); + power = new MageInt(4); + toughness = new MageInt(4); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/BeckonApparitionToken.java b/Mage/src/main/java/mage/game/permanent/token/BeckonApparitionToken.java new file mode 100644 index 0000000000..9e7753f75a --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BeckonApparitionToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class BeckonApparitionToken extends Token { + + public BeckonApparitionToken() { + super("Spirit", "1/1 white and black Spirit creature token with flying"); + this.setOriginalExpansionSetCode("GTC"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + color.setBlack(true); + subtype.add("Spirit"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/BirdSoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/BirdSoldierToken.java new file mode 100644 index 0000000000..f32d1f99ad --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BirdSoldierToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class BirdSoldierToken extends Token { + + public BirdSoldierToken() { + super("Bird Soldier", "1/1 white Bird Soldier creature with flying"); + cardType.add(CardType.CREATURE); + subtype.add("Bird"); + + color.setWhite(true); + power = new MageInt(1); + toughness = new MageInt(1); + + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/BoarToken.java b/Mage/src/main/java/mage/game/permanent/token/BoarToken.java new file mode 100644 index 0000000000..baa19434d3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BoarToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class BoarToken extends Token { + + public BoarToken() { + super("Boar", "3/3 green Boar creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Boar"); + power = new MageInt(3); + toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/BroodKeeperDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/BroodKeeperDragonToken.java new file mode 100644 index 0000000000..05f0117755 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BroodKeeperDragonToken.java @@ -0,0 +1,57 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.Duration; +import mage.constants.Zone; + +/** + * + * @author spjspj + */ +public class BroodKeeperDragonToken extends Token { + + public BroodKeeperDragonToken() { + super("Dragon", "2/2 red Dragon creature token with flying. It has \"{R}: This creature gets +1/+0 until end of turn.\""); + this.setOriginalExpansionSetCode("M15"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Dragon"); + power = new MageInt(2); + toughness = new MageInt(2); + + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"))); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ButterflyToken.java b/Mage/src/main/java/mage/game/permanent/token/ButterflyToken.java new file mode 100644 index 0000000000..50f66be9d0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ButterflyToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class ButterflyToken extends Token { + + public ButterflyToken() { + super("Butterfly", "1/1 green Insect creature token with flying named Butterfly"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Insect"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CallTheSkyBreakerElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/CallTheSkyBreakerElementalToken.java new file mode 100644 index 0000000000..34a96baa0b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CallTheSkyBreakerElementalToken.java @@ -0,0 +1,53 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class CallTheSkyBreakerElementalToken extends Token { + + public CallTheSkyBreakerElementalToken() { + super("Elemental", "5/5 blue and red Elemental creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + color.setRed(true); + subtype.add("Elemental"); + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("EMA")) { + setTokenType(2); + } + power = new MageInt(5); + toughness = new MageInt(5); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CamaridToken.java b/Mage/src/main/java/mage/game/permanent/token/CamaridToken.java new file mode 100644 index 0000000000..c6cd560223 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CamaridToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class CamaridToken extends Token { + + public CamaridToken() { + super("Camarid", "1/1 blue Camarid creature tokens"); + this.setOriginalExpansionSetCode("FEM"); + this.getPower().modifyBaseValue(1); + this.getToughness().modifyBaseValue(1); + this.color.setBlue(true); + this.getSubtype(null).add("Camarid"); + this.addCardType(CardType.CREATURE); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CaribouToken.java b/Mage/src/main/java/mage/game/permanent/token/CaribouToken.java new file mode 100644 index 0000000000..3116180784 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CaribouToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class CaribouToken extends Token { + + public CaribouToken() { + super("Caribou", "0/1 white Caribou creature token"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Caribou"); + power = new MageInt(0); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CarnivoreToken.java b/Mage/src/main/java/mage/game/permanent/token/CarnivoreToken.java new file mode 100644 index 0000000000..02541ca713 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CarnivoreToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class CarnivoreToken extends Token { + + public CarnivoreToken() { + super("Carnivore", "3/1 red Beast creature token"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Beast"); + power = new MageInt(3); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CatWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/CatWarriorToken.java new file mode 100644 index 0000000000..4e2d45467d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CatWarriorToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.abilities.keyword.ForestwalkAbility; + +/** + * + * @author spjspj + */ +public class CatWarriorToken extends Token { + + public CatWarriorToken() { + super("Cat Warrior", "2/2 green Cat Warrior creature token with forestwalk"); + this.setOriginalExpansionSetCode("PLC"); + this.getPower().modifyBaseValue(2); + this.getToughness().modifyBaseValue(2); + this.color.setGreen(true); + this.getSubtype(null).add("Cat"); + this.getSubtype(null).add("Warrior"); + this.addCardType(CardType.CREATURE); + this.addAbility(new ForestwalkAbility()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ChasmSkulkerSquidToken.java b/Mage/src/main/java/mage/game/permanent/token/ChasmSkulkerSquidToken.java new file mode 100644 index 0000000000..29fd4f40e2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ChasmSkulkerSquidToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.IslandwalkAbility; + +/** + * + * @author spjspj + */ +public class ChasmSkulkerSquidToken extends Token { + + public ChasmSkulkerSquidToken() { + super("Squid", "1/1 blue Squid creature token with islandwalk"); + this.setOriginalExpansionSetCode("M15"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Squid"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(new IslandwalkAbility()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CloudSpriteToken.java b/Mage/src/main/java/mage/game/permanent/token/CloudSpriteToken.java new file mode 100644 index 0000000000..370d543b6b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CloudSpriteToken.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.CanBlockOnlyFlyingAbility; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class CloudSpriteToken extends Token { + + public CloudSpriteToken() { + super("Cloud Sprite", "1/1 blue faerie creature token named Cloud Sprite with flying and \"Cloud Sprite can block only creatures with flying.\""); + this.setOriginalExpansionSetCode("FUT"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Faerie"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(new CanBlockOnlyFlyingAbility()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ConstructToken.java b/Mage/src/main/java/mage/game/permanent/token/ConstructToken.java new file mode 100644 index 0000000000..a746701226 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ConstructToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; + +/** + * + * @author spjspj + */ +public class ConstructToken extends Token { + + public ConstructToken() { + this("CNS"); + } + + public ConstructToken(String setCode) { + super("Construct", "1/1 colorless Construct artifact creature token with defender"); + this.setOriginalExpansionSetCode(setCode); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Construct"); + power = new MageInt(1); + toughness = new MageInt(1); + + addAbility(DefenderAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CoralBarrierSquidToken.java b/Mage/src/main/java/mage/game/permanent/token/CoralBarrierSquidToken.java new file mode 100644 index 0000000000..5d05d69246 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CoralBarrierSquidToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.IslandwalkAbility; + +/** + * + * @author spjspj + */ +public class CoralBarrierSquidToken extends Token { + + public CoralBarrierSquidToken() { + super("Squid", "1/1 blue Squid creature token with islandwalk"); + this.setOriginalExpansionSetCode("M15"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Squid"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(new IslandwalkAbility()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CorpseweftZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/CorpseweftZombieToken.java new file mode 100644 index 0000000000..4aa0a16126 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CorpseweftZombieToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class CorpseweftZombieToken extends Token { + + public CorpseweftZombieToken() { + this(2,2); + } + + public CorpseweftZombieToken(int power, int toughness) { + super("Zombie Horror", "X/X black Zombie Horror creature token, where X is twice the number of cards exiled this way"); + cardType.add(CardType.CREATURE); + subtype.add("Zombie"); + subtype.add("Horror"); + color.setBlack(true); + this.power = new MageInt(power); + this.toughness = new MageInt(toughness); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CorruptedZendikonOozeToken.java b/Mage/src/main/java/mage/game/permanent/token/CorruptedZendikonOozeToken.java new file mode 100644 index 0000000000..4f6f355fa0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CorruptedZendikonOozeToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class CorruptedZendikonOozeToken extends Token { + + public CorruptedZendikonOozeToken() { + super("Ooze", "3/3 black Ooze creature"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Ooze"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CreakwoodLiegeToken.java b/Mage/src/main/java/mage/game/permanent/token/CreakwoodLiegeToken.java new file mode 100644 index 0000000000..9bf1f3a611 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CreakwoodLiegeToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class CreakwoodLiegeToken extends Token { + + public CreakwoodLiegeToken() { + super("Worm", "1/1 black and green Worm creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + color.setGreen(true); + subtype.add("Worm"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CribSwapShapeshifterWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/CribSwapShapeshifterWhiteToken.java new file mode 100644 index 0000000000..7aa0150ecb --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CribSwapShapeshifterWhiteToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.ChangelingAbility; + +/** + * + * @author spjspj + */ +public class CribSwapShapeshifterWhiteToken extends Token { + + public CribSwapShapeshifterWhiteToken() { + super("Shapeshifter", "1/1 colorless Shapeshifter creature token with changeling"); + this.setOriginalExpansionSetCode("LRW"); + cardType.add(CardType.CREATURE); + subtype.add("Shapeshifter"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(ChangelingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CrushOfTentaclesToken.java b/Mage/src/main/java/mage/game/permanent/token/CrushOfTentaclesToken.java new file mode 100644 index 0000000000..fb9c597372 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CrushOfTentaclesToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class CrushOfTentaclesToken extends Token { + + public CrushOfTentaclesToken() { + super("Octopus", "8/8 blue Octopus creature"); + this.setExpansionSetCodeForImage("BFZ"); + this.cardType.add(CardType.CREATURE); + this.color.setBlue(true); + this.subtype.add("Octopus"); + this.power = new MageInt(8); + this.toughness = new MageInt(8); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/CurseOfTheSwineBoarToken.java b/Mage/src/main/java/mage/game/permanent/token/CurseOfTheSwineBoarToken.java new file mode 100644 index 0000000000..6c1afdf6ba --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CurseOfTheSwineBoarToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class CurseOfTheSwineBoarToken extends Token { + + public CurseOfTheSwineBoarToken() { + super("Boar", "2/2 green Boar creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Boar"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/DarettiConstructToken.java b/Mage/src/main/java/mage/game/permanent/token/DarettiConstructToken.java new file mode 100644 index 0000000000..a0a5fe4db2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DarettiConstructToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; + +/** + * + * @author spjspj + */ +public class DarettiConstructToken extends Token { + + public DarettiConstructToken() { + this("CNS"); + } + + public DarettiConstructToken(String setCode) { + super("Construct", "1/1 colorless Construct artifact creature token with defender"); + this.setOriginalExpansionSetCode(setCode); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Construct"); + power = new MageInt(1); + toughness = new MageInt(1); + + addAbility(DefenderAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DaxosSpiritToken.java b/Mage/src/main/java/mage/game/permanent/token/DaxosSpiritToken.java new file mode 100644 index 0000000000..4403dd058b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DaxosSpiritToken.java @@ -0,0 +1,99 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.constants.Duration; +import mage.constants.Layer; +import mage.constants.Outcome; +import mage.constants.SubLayer; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author spjspj + */ +public class DaxosSpiritToken extends Token { + + public DaxosSpiritToken() { + super("Spirit", "white and black Spirit enchantment creature token with \"This creature's power and toughness are each equal to the number of experience counters you have.\""); + this.setOriginalExpansionSetCode("C15"); + setTokenType(2); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + color.setWhite(true); + color.setBlack(true); + subtype.add("Spirit"); + power = new MageInt(0); + toughness = new MageInt(0); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DaxosSpiritSetPTEffect())); + } +} + +class DaxosSpiritSetPTEffect extends ContinuousEffectImpl { + + public DaxosSpiritSetPTEffect() { + super(Duration.WhileOnBattlefield, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature); + staticText = "This creature's power and toughness are each equal to the number of experience counters you have"; + } + + public DaxosSpiritSetPTEffect(final DaxosSpiritSetPTEffect effect) { + super(effect); + } + + @Override + public DaxosSpiritSetPTEffect copy() { + return new DaxosSpiritSetPTEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Permanent permanent = game.getPermanent(source.getSourceId()); + if (permanent != null && new MageObjectReference(source.getSourceObject(game), game).refersTo(permanent, game)) { + int amount = controller.getCounters().getCount(CounterType.EXPERIENCE); + permanent.getPower().setValue(amount); + permanent.getToughness().setValue(amount); + return true; + } else { + discard(); + } + } + return false; + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DeadlyGrubToken.java b/Mage/src/main/java/mage/game/permanent/token/DeadlyGrubToken.java new file mode 100644 index 0000000000..8def318f67 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DeadlyGrubToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.ShroudAbility; + +/** + * + * @author spjspj + */ +public class DeadlyGrubToken extends Token { + + public DeadlyGrubToken() { + super("Insect", "6/1 green Insect creature token with shroud"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Insect"); + power = new MageInt(6); + toughness = new MageInt(1); + this.addAbility(ShroudAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DeathpactAngelToken.java b/Mage/src/main/java/mage/game/permanent/token/DeathpactAngelToken.java new file mode 100644 index 0000000000..de9f456f91 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DeathpactAngelToken.java @@ -0,0 +1,74 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.constants.Zone; +import mage.filter.common.FilterCreatureCard; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author spjspj + */ +public class DeathpactAngelToken extends Token { + + private static final FilterCreatureCard filter = new FilterCreatureCard("card named Deathpact Angel from your graveyard"); + + static { + filter.add(new NamePredicate("Deathpact Angel")); + } + + public DeathpactAngelToken() { + super("Cleric", "1/1 white and black Cleric creature token. It has \"{3}{W}{B}{B}, {T}, Sacrifice this creature: Return a card named Deathpact Angel from your graveyard to the battlefield.\""); + cardType.add(CardType.CREATURE); + + color.setWhite(true); + color.setBlack(true); + + subtype.add("Cleric"); + + power = new MageInt(1); + toughness = new MageInt(1); + + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{3}{W}{B}{B}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCardInYourGraveyard(filter)); + this.addAbility(ability); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DeathtouchSnakeToken.java b/Mage/src/main/java/mage/game/permanent/token/DeathtouchSnakeToken.java new file mode 100644 index 0000000000..e5486d6437 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DeathtouchSnakeToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; + +/** + * + * @author spjspj + */ +public class DeathtouchSnakeToken extends Token { + + public DeathtouchSnakeToken() { + super("Snake", "1/1 green Snake creature token with deathtouch"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Snake"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(DeathtouchAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DevastatingSummonsElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/DevastatingSummonsElementalToken.java new file mode 100644 index 0000000000..2668ffe512 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DevastatingSummonsElementalToken.java @@ -0,0 +1,44 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class DevastatingSummonsElementalToken extends Token { + + public DevastatingSummonsElementalToken() { + super("Elemental", "X/X red Elemental creature"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DinOfTheFireherdToken.java b/Mage/src/main/java/mage/game/permanent/token/DinOfTheFireherdToken.java new file mode 100644 index 0000000000..7c09739931 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DinOfTheFireherdToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class DinOfTheFireherdToken extends Token { + + public DinOfTheFireherdToken() { + super("", "5/5 black and red Elemental creature"); + cardType.add(CardType.CREATURE); + subtype.add("Elemental"); + color.setBlack(true); + color.setRed(true); + power = new MageInt(5); + toughness = new MageInt(5); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DjinnMonkToken.java b/Mage/src/main/java/mage/game/permanent/token/DjinnMonkToken.java new file mode 100644 index 0000000000..c595f9ab0d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DjinnMonkToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class DjinnMonkToken extends Token { + + public DjinnMonkToken() { + super("Djinn Monk", "2/2 blue Djinn Monk creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Djinn"); + subtype.add("Monk"); + power = new MageInt(2); + toughness = new MageInt(2); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DjinnToken.java b/Mage/src/main/java/mage/game/permanent/token/DjinnToken.java new file mode 100644 index 0000000000..c254a42481 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DjinnToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class DjinnToken extends Token { + + public DjinnToken() { + super("Djinn", "5/5 colorless Djinn artifact creature token with flying"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Djinn"); + power = new MageInt(5); + toughness = new MageInt(5); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DokaiWeaverofLifeToken.java b/Mage/src/main/java/mage/game/permanent/token/DokaiWeaverofLifeToken.java new file mode 100644 index 0000000000..f79a1ff844 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DokaiWeaverofLifeToken.java @@ -0,0 +1,59 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.common.FilterControlledPermanent; + +/** + * + * @author spjspj + */ +public class DokaiWeaverofLifeToken extends Token { + + final static FilterControlledPermanent filterLands = new FilterControlledLandPermanent("lands you control"); + + public DokaiWeaverofLifeToken() { + super("Elemental", "X/X green Elemental creature token, where X is the number of lands you control"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Elemental"); + power = new MageInt(0); + toughness = new MageInt(0); + DynamicValue controlledLands = new PermanentsOnBattlefieldCount(filterLands); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(controlledLands, controlledLands, Duration.WhileOnBattlefield))); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DovescapeToken.java b/Mage/src/main/java/mage/game/permanent/token/DovescapeToken.java new file mode 100644 index 0000000000..33c8652a10 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DovescapeToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class DovescapeToken extends Token { + + public DovescapeToken() { + super("Bird", "1/1 white and blue Bird creature token with flying"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + color.setBlue(true); + subtype.add("Bird"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/DuneBroodNephilimToken.java b/Mage/src/main/java/mage/game/permanent/token/DuneBroodNephilimToken.java new file mode 100644 index 0000000000..6857258cf2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/DuneBroodNephilimToken.java @@ -0,0 +1,46 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class DuneBroodNephilimToken extends Token { + + public DuneBroodNephilimToken() { + super("Sand", "1/1 colorless Sand creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Sand"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziToken.java new file mode 100644 index 0000000000..d999f56558 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/EldraziToken.java @@ -0,0 +1,46 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class EldraziToken extends Token { + + public EldraziToken() { + super("Eldrazi", "10/10 colorless Eldrazi creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Eldrazi"); + power = new MageInt(10); + toughness = new MageInt(10); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalAppealElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalAppealElementalToken.java new file mode 100644 index 0000000000..d0a755825d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalAppealElementalToken.java @@ -0,0 +1,51 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class ElementalAppealElementalToken extends Token { + + public ElementalAppealElementalToken() { + super("Elemental", "7/1 red Elemental creature token with trample and haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(7); + toughness = new MageInt(1); + addAbility(TrampleAbility.getInstance()); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalCatToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalCatToken.java new file mode 100644 index 0000000000..56bf2cd052 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalCatToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class ElementalCatToken extends Token { + + public ElementalCatToken() { + super("Elemental Cat", "1/1 red Elemental Cat creature token"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + subtype.add("Cat"); + addAbility(HasteAbility.getInstance()); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalMasteryElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalMasteryElementalToken.java new file mode 100644 index 0000000000..343e54f558 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalMasteryElementalToken.java @@ -0,0 +1,49 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class ElementalMasteryElementalToken extends Token { + + public ElementalMasteryElementalToken() { + super("Elemental", "1/1 red Elemental creature token with haste"); + cardType.add(CardType.CREATURE); + subtype.add("Elemental"); + color.setRed(true); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java index f7d0fc9872..33c3b46e54 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java @@ -25,8 +25,8 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.game.permanent.token; +package mage.game.permanent.token; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -45,6 +45,10 @@ public class ElementalShamanToken extends Token { tokenImageSets.addAll(Arrays.asList("C15", "DD3JVC", "DD2", "LRW")); } + public ElementalShamanToken() { + this("LRW"); + } + public ElementalShamanToken(String setCode) { super("Elemental Shaman", "3/1 red Elemental Shaman creature token"); availableImageSetCodes = tokenImageSets; diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java index 141a07a221..303f68c2fa 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java @@ -47,6 +47,10 @@ public class ElementalToken extends Token { tokenImageSets.addAll(Arrays.asList("OGW", "CON", "DIS")); } + public ElementalToken() { + this ("OGW", 0); + } + public ElementalToken(String setCode, int tokenType) { super("Elemental", "3/1 red Elemental creature token"); availableImageSetCodes = tokenImageSets; @@ -73,4 +77,4 @@ public class ElementalToken extends Token { if (hasHaste) this.addAbility(HasteAbility.getInstance()); } -} \ No newline at end of file +} diff --git a/Mage/src/main/java/mage/game/permanent/token/EtheriumCellToken.java b/Mage/src/main/java/mage/game/permanent/token/EtheriumCellToken.java new file mode 100644 index 0000000000..98441f97f5 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/EtheriumCellToken.java @@ -0,0 +1,54 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.abilities.Ability; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.AddManaOfAnyColorEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.constants.Zone; + +/** + * + * @author spjspj + */ +public class EtheriumCellToken extends Token { + + public EtheriumCellToken() { + super("Etherium Cell", "colorless artifact token named Etherium Cell which has \"{T}, Sacrifice this artifact: Add one mana of any color to your mana pool.\""); + this.setOriginalExpansionSetCode("AER"); + cardType.add(CardType.ARTIFACT); + + Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + + this.addAbility(ability); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/EwokToken.java b/Mage/src/main/java/mage/game/permanent/token/EwokToken.java index 740a1a58d8..6e1e7d06c6 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EwokToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EwokToken.java @@ -25,8 +25,8 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.game.permanent.token; +package mage.game.permanent.token; import java.util.Collections; import mage.constants.CardType; diff --git a/Mage/src/main/java/mage/game/permanent/token/EyesOfTheWisentElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/EyesOfTheWisentElementalToken.java new file mode 100644 index 0000000000..6459e908a2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/EyesOfTheWisentElementalToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class EyesOfTheWisentElementalToken extends Token { + + public EyesOfTheWisentElementalToken() { + super("Elemental", "4/4 green Elemental creature token"); + this.setOriginalExpansionSetCode("MMA"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Elemental"); + power = new MageInt(4); + toughness = new MageInt(4); + setTokenType(1); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/FaerieToken.java b/Mage/src/main/java/mage/game/permanent/token/FaerieToken.java new file mode 100644 index 0000000000..5a99d3efa2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/FaerieToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class FaerieToken extends Token { + + public FaerieToken() { + super("Faerie", "1/1 blue Faerie creature tokens with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Faerie"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/FesteringGoblinToken.java b/Mage/src/main/java/mage/game/permanent/token/FesteringGoblinToken.java new file mode 100644 index 0000000000..d535e123e8 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/FesteringGoblinToken.java @@ -0,0 +1,58 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.constants.Duration; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author spjspj + */ +public class FesteringGoblinToken extends Token { + + public FesteringGoblinToken() { + super("Festering Goblin", "1/1 black Zombie Goblin creature token named Festering Goblin with \"When Festering Goblin dies, target creature gets -1/-1 until end of turn.\""); + this.setOriginalExpansionSetCode("FUT"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Zombie"); + subtype.add("Goblin"); + power = new MageInt(1); + toughness = new MageInt(1); + + Ability ability = new DiesTriggeredAbility(new BoostTargetEffect(-1, -1, Duration.EndOfTurn), false); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/FleshCarverHorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/FleshCarverHorrorToken.java new file mode 100644 index 0000000000..bc4f45b568 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/FleshCarverHorrorToken.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class FleshCarverHorrorToken extends Token { + + public FleshCarverHorrorToken() { + this(1); + } + + public FleshCarverHorrorToken(int xValue) { + super("Horror", "X/X black Horror creature token"); + setOriginalExpansionSetCode("C14"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Horror"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/FlurryOfHornsMinotaurToken.java b/Mage/src/main/java/mage/game/permanent/token/FlurryOfHornsMinotaurToken.java new file mode 100644 index 0000000000..2b456bf73a --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/FlurryOfHornsMinotaurToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class FlurryOfHornsMinotaurToken extends Token { + + public FlurryOfHornsMinotaurToken() { + super("Minotaur", "2/3 red Minotaur creature tokens with haste"); + this.setOriginalExpansionSetCode("JOU"); + cardType.add(CardType.CREATURE); + color.setColor(ObjectColor.RED); + subtype.add("Minotaur"); + power = new MageInt(2); + toughness = new MageInt(3); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ForlornPseudammaZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/ForlornPseudammaZombieToken.java new file mode 100644 index 0000000000..fb1f657524 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ForlornPseudammaZombieToken.java @@ -0,0 +1,54 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ForlornPseudammaZombieToken extends Token { + + public ForlornPseudammaZombieToken() { + super("Zombie", "2/2 black Zombie enchantment creature token"); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Zombie"); + power = new MageInt(2); + toughness = new MageInt(2); + this.setOriginalExpansionSetCode("BNG"); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/FreyaliseLlanowarsFuryToken.java b/Mage/src/main/java/mage/game/permanent/token/FreyaliseLlanowarsFuryToken.java new file mode 100644 index 0000000000..22e61a83e6 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/FreyaliseLlanowarsFuryToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.mana.GreenManaAbility; + +/** + * + * @author spjspj + */ +public class FreyaliseLlanowarsFuryToken extends Token { + + public FreyaliseLlanowarsFuryToken() { + super("Elf Druid", "1/1 green Elf Druid creature token with \"{T}: Add {G} to your mana pool.\""); + this.setOriginalExpansionSetCode("C14"); + this.cardType.add(CardType.CREATURE); + this.color = ObjectColor.GREEN; + this.subtype.add("Elf"); + this.subtype.add("Druid"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {T}: Add {G} to your mana pool. + this.addAbility(new GreenManaAbility()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GargoyleToken.java b/Mage/src/main/java/mage/game/permanent/token/GargoyleToken.java new file mode 100644 index 0000000000..a00e94837a --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GargoyleToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class GargoyleToken extends Token { + + public GargoyleToken() { + super("Gargoyle", "3/4 colorless Gargoyle artifact creature token with flying"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + subtype.add("Gargoyle"); + power = new MageInt(3); + toughness = new MageInt(4); + addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GarrukApexPredatorBeastToken.java b/Mage/src/main/java/mage/game/permanent/token/GarrukApexPredatorBeastToken.java new file mode 100644 index 0000000000..5de2f7ff4d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GarrukApexPredatorBeastToken.java @@ -0,0 +1,54 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; + +/** + * + * @author spjspj + */ +public class GarrukApexPredatorBeastToken extends Token { + + public GarrukApexPredatorBeastToken() { + super("Beast", "3/3 black Beast creature token with deathtouch"); + setOriginalExpansionSetCode("M15"); + setTokenType(1); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Beast"); + power = new MageInt(3); + toughness = new MageInt(3); + + abilities.add(DeathtouchAbility.getInstance()); + + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GiantBaitingGiantWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/GiantBaitingGiantWarriorToken.java new file mode 100644 index 0000000000..dcd57edfd0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GiantBaitingGiantWarriorToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class GiantBaitingGiantWarriorToken extends Token { + + public GiantBaitingGiantWarriorToken() { + super("Giant Warrior", "4/4 red and green Giant Warrior creature token with haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + color.setGreen(true); + subtype.add("Giant"); + subtype.add("Warrior"); + power = new MageInt(4); + toughness = new MageInt(4); + this.addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GiantToken.java b/Mage/src/main/java/mage/game/permanent/token/GiantToken.java new file mode 100644 index 0000000000..dd5e983164 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GiantToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GiantToken extends Token { + + public GiantToken() { + super("Giant", "4/4 red Giant creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Giant"); + color.setRed(true); + power = new MageInt(4); + toughness = new MageInt(4); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GiantWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/GiantWarriorToken.java new file mode 100644 index 0000000000..2fdd315bc5 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GiantWarriorToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GiantWarriorToken extends Token { + + public GiantWarriorToken() { + super("Giant Warrior", "5/5 white Giant Warrior creature token"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Giant"); + subtype.add("Warrior"); + power = new MageInt(5); + toughness = new MageInt(5); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GnomeToken.java b/Mage/src/main/java/mage/game/permanent/token/GnomeToken.java new file mode 100644 index 0000000000..626a219666 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GnomeToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GnomeToken extends Token { + + public GnomeToken() { + super("Gnome", "1/1 colorless Gnome artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Gnome"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinScoutsToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinScoutsToken.java new file mode 100644 index 0000000000..629f8aaf1f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinScoutsToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.MountainwalkAbility; + +/** + * + * @author spjspj + */ +public class GoblinScoutsToken extends Token { + + public GoblinScoutsToken() { + super("Goblin Scout", "1/1 red Goblin Scout creature tokens with mountainwalk"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Goblin"); + subtype.add("Scout"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(new MountainwalkAbility()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinSoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinSoldierToken.java new file mode 100644 index 0000000000..d30081a9ae --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinSoldierToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GoblinSoldierToken extends Token { + + public GoblinSoldierToken() { + super("Goblin Soldier", "1/1 red and white Goblin Soldier creature tokens"); + cardType.add(CardType.CREATURE); + color.setRed(true); + color.setWhite(true); + subtype.add("Goblin"); + subtype.add("Soldier"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinTrenchesToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinTrenchesToken.java new file mode 100644 index 0000000000..9aa34f7a90 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinTrenchesToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GoblinTrenchesToken extends Token { + + public GoblinTrenchesToken() { + super("Goblin Soldier", "1/1 red and white Goblin Soldier creature tokens"); + cardType.add(CardType.CREATURE); + color.setRed(true); + color.setWhite(true); + subtype.add("Goblin"); + subtype.add("Soldier"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GodFavoredGeneralSoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/GodFavoredGeneralSoldierToken.java new file mode 100644 index 0000000000..70297b0312 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GodFavoredGeneralSoldierToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GodFavoredGeneralSoldierToken extends Token { + + public GodFavoredGeneralSoldierToken() { + super("Soldier", "1/1 white Soldier enchantment creature token"); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + color.setWhite(true); + + subtype.add("Soldier"); + power = new MageInt(1); + toughness = new MageInt(1); + this.setOriginalExpansionSetCode("BNG"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GodSireBeastToken.java b/Mage/src/main/java/mage/game/permanent/token/GodSireBeastToken.java new file mode 100644 index 0000000000..f7528ad9e2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GodSireBeastToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GodSireBeastToken extends Token { + + public GodSireBeastToken() { + super("Beast", "8/8 Beast creature token that's red, green, and white"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + color.setWhite(true); + color.setRed(true); + subtype.add("Beast"); + power = new MageInt(8); + toughness = new MageInt(8); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GoldmeadowHarrierToken.java b/Mage/src/main/java/mage/game/permanent/token/GoldmeadowHarrierToken.java new file mode 100644 index 0000000000..6d4dfbbea5 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GoldmeadowHarrierToken.java @@ -0,0 +1,61 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.TapTargetEffect; +import mage.constants.Zone; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author spjspj + */ +public class GoldmeadowHarrierToken extends Token { + + public GoldmeadowHarrierToken() { + super("Goldmeadow Harrier", "1/1 white Kithkin Soldier creature token named Goldmeadow Harrier with \"{W}, {T}: Tap target creature.\""); + this.setOriginalExpansionSetCode("FUT"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Kithkin"); + subtype.add("Soldier"); + power = new MageInt(1); + toughness = new MageInt(1); + + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl("{W}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GriffinToken.java b/Mage/src/main/java/mage/game/permanent/token/GriffinToken.java new file mode 100644 index 0000000000..6d978e8f36 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GriffinToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class GriffinToken extends Token { + + public GriffinToken() { + super("Griffin", "2/2 white Griffin creature token with flying"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + + subtype.add("Griffin"); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GrovetenderDruidsPlantToken.java b/Mage/src/main/java/mage/game/permanent/token/GrovetenderDruidsPlantToken.java new file mode 100644 index 0000000000..9fd5cfca2b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GrovetenderDruidsPlantToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GrovetenderDruidsPlantToken extends Token { + + public GrovetenderDruidsPlantToken() { + super("Plant", "1/1 green Plant creature"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Plant"); + power = new MageInt(1); + toughness = new MageInt(1); + this.setOriginalExpansionSetCode("BFZ"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GuardianIdolGolemToken.java b/Mage/src/main/java/mage/game/permanent/token/GuardianIdolGolemToken.java new file mode 100644 index 0000000000..fbe99a5acb --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GuardianIdolGolemToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class GuardianIdolGolemToken extends Token { + + public GuardianIdolGolemToken() { + super("Golem", "2/2 Golem artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Golem"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GutterGrimeToken.java b/Mage/src/main/java/mage/game/permanent/token/GutterGrimeToken.java new file mode 100644 index 0000000000..a53903d1c5 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GutterGrimeToken.java @@ -0,0 +1,99 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import java.util.UUID; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author spjspj + */ +public class GutterGrimeToken extends Token { + + public GutterGrimeToken() { + this (null); + power = new MageInt(3); + toughness = new MageInt(3); + } + + + public GutterGrimeToken(UUID sourceId) { + super("Ooze", "green Ooze creature token with \"This creature's power and toughness are each equal to the number of slime counters on Gutter Grime.\""); + cardType.add(CardType.CREATURE); + subtype.add("Ooze"); + color.setGreen(true); + power = new MageInt(0); + toughness = new MageInt(0); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new GutterGrimeCounters(sourceId), Duration.WhileOnBattlefield))); + } + + class GutterGrimeCounters implements DynamicValue { + + private final UUID sourceId; + + public GutterGrimeCounters(UUID sourceId) { + this.sourceId = sourceId; + } + + @Override + public int calculate(Game game, Ability sourceAbility, Effect effect) { + Permanent p = game.getPermanent(sourceId); + if (p != null) { + return p.getCounters(game).getCount(CounterType.SLIME); + } + return 0; + } + + @Override + public GutterGrimeCounters copy() { + return this; + } + + @Override + public String getMessage() { + return "slime counters on Gutter Grime"; + } + + @Override + public String toString() { + return "1"; + } + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HammerOfPurphorosGolemToken.java b/Mage/src/main/java/mage/game/permanent/token/HammerOfPurphorosGolemToken.java new file mode 100644 index 0000000000..52308b7b36 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HammerOfPurphorosGolemToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class HammerOfPurphorosGolemToken extends Token { + + public HammerOfPurphorosGolemToken() { + super("Golem", "3/3 colorless Golem enchantment artifact creature token"); + setOriginalExpansionSetCode("THS"); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Golem"); + power = new MageInt(3); + toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HauntedAngelToken.java b/Mage/src/main/java/mage/game/permanent/token/HauntedAngelToken.java new file mode 100644 index 0000000000..6a2efff0e3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HauntedAngelToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class HauntedAngelToken extends Token { + + public HauntedAngelToken() { + super("Angel", "3/3 black Angel creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Angel"); + power = new MageInt(3); + toughness = new MageInt(3); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HazezonTamarSandWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/HazezonTamarSandWarriorToken.java new file mode 100644 index 0000000000..82d1961fd1 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HazezonTamarSandWarriorToken.java @@ -0,0 +1,50 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class HazezonTamarSandWarriorToken extends Token { + + public HazezonTamarSandWarriorToken() { + super("Sand Warrior", "1/1 Sand Warrior creature tokens that are red, green, and white"); + cardType.add(CardType.CREATURE); + color.setRed(true); + color.setGreen(true); + color.setWhite(true); + subtype.add("Sand"); + subtype.add("Warrior"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HellionHasteToken.java b/Mage/src/main/java/mage/game/permanent/token/HellionHasteToken.java new file mode 100644 index 0000000000..e746a497f5 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HellionHasteToken.java @@ -0,0 +1,49 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class HellionHasteToken extends Token { + + public HellionHasteToken() { + super("Hellion", "4/4 red Hellion creature token with haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Hellion"); + power = new MageInt(4); + toughness = new MageInt(4); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HellionToken.java b/Mage/src/main/java/mage/game/permanent/token/HellionToken.java new file mode 100644 index 0000000000..a4672fb64e --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HellionToken.java @@ -0,0 +1,47 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class HellionToken extends Token { + + public HellionToken() { + super("Hellion", "4/4 red Hellion creature token"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Hellion"); + power = new MageInt(4); + toughness = new MageInt(4); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HippoToken2.java b/Mage/src/main/java/mage/game/permanent/token/HippoToken2.java index 38706a9332..2a820febe3 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HippoToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/HippoToken2.java @@ -45,7 +45,7 @@ public class HippoToken2 extends Token { super("Hippo", "3/3 green Hippo creature token"); cardType.add(CardType.CREATURE); color.setGreen(true); - subtype.add("Centaur"); + subtype.add("Hippo"); power = new MageInt(3); toughness = new MageInt(3); } diff --git a/Mage/src/main/java/mage/game/permanent/token/HomunculusToken.java b/Mage/src/main/java/mage/game/permanent/token/HomunculusToken.java new file mode 100644 index 0000000000..71b9217ebf --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HomunculusToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class HomunculusToken extends Token { + + public HomunculusToken() { + super("Homunculus", "0/1 blue Homunculus artifact creature token"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + color.setBlue(true); + subtype.add("Homunculus"); + power = new MageInt(0); + toughness = new MageInt(1); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HornetNestInsectToken.java b/Mage/src/main/java/mage/game/permanent/token/HornetNestInsectToken.java new file mode 100644 index 0000000000..1384db11d6 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HornetNestInsectToken.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class HornetNestInsectToken extends Token { + + public HornetNestInsectToken() { + super("Insect", "1/1 green Insect creature tokens with flying and deathtouch"); + setOriginalExpansionSetCode("M15"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Insect"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(DeathtouchAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HornetQueenInsectToken.java b/Mage/src/main/java/mage/game/permanent/token/HornetQueenInsectToken.java new file mode 100644 index 0000000000..cb89725f0d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HornetQueenInsectToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class HornetQueenInsectToken extends Token { + + public HornetQueenInsectToken() { + super("Insect", "1/1 green Insect creature token with flying and deathtouch"); + setOriginalExpansionSetCode("M15"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Insect"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(FlyingAbility.getInstance()); + addAbility(DeathtouchAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/HorrorToken.java new file mode 100644 index 0000000000..7fed898d0d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HorrorToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class HorrorToken extends Token { + + public HorrorToken() { + super("Horror", "4/4 black Horror creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Horror"); + power = new MageInt(4); + toughness = new MageInt(4); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HoundToken.java b/Mage/src/main/java/mage/game/permanent/token/HoundToken.java new file mode 100644 index 0000000000..1dad3e03c9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HoundToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class HoundToken extends Token { + + public HoundToken() { + super("Hound", "1/1 green Hound creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Hound"); + + color.setGreen(true); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HourOfNeedSphinxToken.java b/Mage/src/main/java/mage/game/permanent/token/HourOfNeedSphinxToken.java new file mode 100644 index 0000000000..28cf0ee146 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HourOfNeedSphinxToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class HourOfNeedSphinxToken extends Token { + + public HourOfNeedSphinxToken() { + super("Sphinx", "4/4 blue Sphinx creature token with flying"); + this.setOriginalExpansionSetCode("JOU"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Sphinx"); + power = new MageInt(4); + toughness = new MageInt(4); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HumanClericToken.java b/Mage/src/main/java/mage/game/permanent/token/HumanClericToken.java new file mode 100644 index 0000000000..ff9f89465d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HumanClericToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class HumanClericToken extends Token { + + public HumanClericToken() { + super("Human Cleric", "1/1 white and black Human Cleric creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Human"); + subtype.add("Cleric"); + color.setWhite(true); + color.setBlack(true); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HuntedCentaurToken.java b/Mage/src/main/java/mage/game/permanent/token/HuntedCentaurToken.java new file mode 100644 index 0000000000..3ba3a48d1b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HuntedCentaurToken.java @@ -0,0 +1,60 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.keyword.ProtectionAbility; + +/** + * + * @author LevelX2 + */ +public class HuntedCentaurToken extends Token { + + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("RTR", "MM3")); + } + + public HuntedCentaurToken() { + super("Centaur", "3/3 green Centaur creature tokens with protection from black"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Centaur"); + power = new MageInt(3); + toughness = new MageInt(3); + this.addAbility(ProtectionAbility.from(ObjectColor.BLACK)); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java b/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java new file mode 100644 index 0000000000..52dde71d3f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java @@ -0,0 +1,32 @@ +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.MageInt; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class HuntedDragonKnightToken extends Token { + + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("ORI", "RTR", "C15")); + } + + public HuntedDragonKnightToken() { + super("Knight", "2/2 white Knight creature tokens with first strike"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + + subtype.add("Knight"); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FirstStrikeAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/HunterToken.java b/Mage/src/main/java/mage/game/permanent/token/HunterToken.java new file mode 100644 index 0000000000..9d48b56936 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HunterToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class HunterToken extends Token { + + public HunterToken() { + super("Hunter", "4/4 red Hunter creature token", 4, 4); + this.setOriginalExpansionSetCode("SWS"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Hunter"); + } +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/HydraBroodmasterToken.java b/Mage/src/main/java/mage/game/permanent/token/HydraBroodmasterToken.java new file mode 100644 index 0000000000..0082d444cd --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HydraBroodmasterToken.java @@ -0,0 +1,58 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class HydraBroodmasterToken extends Token { + + public HydraBroodmasterToken() { + this(1,1); + } + + public HydraBroodmasterToken(int power, int toughness) { + super("Hydra", "green Hydra creature token"); + this.setOriginalExpansionSetCode("JOU"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Hydra"); + this.power = new MageInt(power); + this.toughness = new MageInt(toughness); + } + +} + diff --git a/Mage/src/main/java/mage/game/permanent/token/IllusionToken.java b/Mage/src/main/java/mage/game/permanent/token/IllusionToken.java new file mode 100644 index 0000000000..f1dce2ff38 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/IllusionToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class IllusionToken extends Token { + + public IllusionToken() { + super("Illusion", "2/2 blue Illusion creature token"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + + subtype.add("Illusion"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/JoinTheRanksSoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/JoinTheRanksSoldierToken.java new file mode 100644 index 0000000000..fd480f44bb --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/JoinTheRanksSoldierToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class JoinTheRanksSoldierToken extends Token { + + public JoinTheRanksSoldierToken() { + super("Soldier Ally", "1/1 white Soldier Ally creature token"); + this.setOriginalExpansionSetCode("WWK"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Soldier"); + subtype.add("Ally"); + power = new MageInt(1); + toughness = new MageInt(1); + + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KaldraToken.java b/Mage/src/main/java/mage/game/permanent/token/KaldraToken.java new file mode 100644 index 0000000000..50543720dd --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KaldraToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.constants.SuperType; + +/** + * + * @author spjspj + */ +public class KaldraToken extends Token { + + public KaldraToken() { + super("Kaldra", "legendary 4/4 colorless Avatar creature token named Kaldra"); + addSuperType(SuperType.LEGENDARY); + cardType.add(CardType.CREATURE); + subtype.add("Avatar"); + power = new MageInt(4); + toughness = new MageInt(4); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KalitasVampireToken.java b/Mage/src/main/java/mage/game/permanent/token/KalitasVampireToken.java new file mode 100644 index 0000000000..be89d7f739 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KalitasVampireToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class KalitasVampireToken extends Token { + + public KalitasVampireToken() { + this(1,1); + } + + public KalitasVampireToken(int tokenPower, int tokenToughness) { + super("Vampire", new StringBuilder(tokenPower).append('/').append(tokenToughness).append(" black Vampire creature token").toString()); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Vampire"); + power = new MageInt(tokenPower); + toughness = new MageInt(tokenToughness); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KalonianTwingroveTreefolkWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/KalonianTwingroveTreefolkWarriorToken.java new file mode 100644 index 0000000000..c285e7dbee --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KalonianTwingroveTreefolkWarriorToken.java @@ -0,0 +1,57 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.constants.Duration; +import mage.constants.Zone; +import static mage.game.permanent.token.DokaiWeaverofLifeToken.filterLands; + +/** + * + * @author spjspj + */ +public class KalonianTwingroveTreefolkWarriorToken extends Token { + + public KalonianTwingroveTreefolkWarriorToken() { + super("Treefolk Warrior", "green Treefolk Warrior creature token with \"This creature's power and toughness are each equal to the number of Forests you control.\""); + this.setOriginalExpansionSetCode("M15"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Treefolk"); + subtype.add("Warrior"); + power = new MageInt(0); + toughness = new MageInt(0); + + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterLands), Duration.WhileOnBattlefield))); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KamahlFistOfKrosaLandToken.java b/Mage/src/main/java/mage/game/permanent/token/KamahlFistOfKrosaLandToken.java new file mode 100644 index 0000000000..6fb3e03097 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KamahlFistOfKrosaLandToken.java @@ -0,0 +1,46 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class KamahlFistOfKrosaLandToken extends Token { + + public KamahlFistOfKrosaLandToken() { + super("", "1/1 creature"); + this.cardType.add(CardType.CREATURE); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KelpToken.java b/Mage/src/main/java/mage/game/permanent/token/KelpToken.java new file mode 100644 index 0000000000..c908d153a1 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KelpToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; + +/** + * + * @author spjspj + */ +public class KelpToken extends Token { + + public KelpToken() { + super("Kelp", "0/1 blue Plant Wall creature token with defender named Kelp"); + this.setOriginalExpansionSetCode("MIR"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Plant"); + subtype.add("Wall"); + power = new MageInt(0); + toughness = new MageInt(1); + + this.addAbility(DefenderAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KherKeepKoboldToken.java b/Mage/src/main/java/mage/game/permanent/token/KherKeepKoboldToken.java new file mode 100644 index 0000000000..8f4a95ecb3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KherKeepKoboldToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class KherKeepKoboldToken extends Token { + + public KherKeepKoboldToken() { + super("Kobolds of Kher Keep", "0/1 red Kobold creature token named Kobolds of Kher Keep"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Kobold"); + power = new MageInt(0); + toughness = new MageInt(1); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KioraKrakenToken.java b/Mage/src/main/java/mage/game/permanent/token/KioraKrakenToken.java new file mode 100644 index 0000000000..5795779147 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KioraKrakenToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class KioraKrakenToken extends Token { + + public KioraKrakenToken() { + super("Kraken", "9/9 blue Kraken creature token"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Kraken"); + power = new MageInt(9); + toughness = new MageInt(9); + this.setOriginalExpansionSetCode("BNG"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/KnightAllyToken.java b/Mage/src/main/java/mage/game/permanent/token/KnightAllyToken.java new file mode 100644 index 0000000000..5964d9b230 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/KnightAllyToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class KnightAllyToken extends Token { + + public KnightAllyToken() { + super("Knight Ally", "2/2 white Knight Ally creature token"); + this.setExpansionSetCodeForImage("BFZ"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Knight"); + subtype.add("Ally"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/LandMineToken.java b/Mage/src/main/java/mage/game/permanent/token/LandMineToken.java new file mode 100644 index 0000000000..bdef0d8c20 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/LandMineToken.java @@ -0,0 +1,65 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.Zone; +import mage.filter.common.FilterAttackingCreature; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author spjspj + */ +public class LandMineToken extends Token { + + private static final FilterAttackingCreature filter = new FilterAttackingCreature("attacking creature without flying"); + + static { + filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); + } + + public LandMineToken() { + super("Land Mine", "colorless artifact token named Land Mine with \"{R}, Sacrifice this artifact: This artifact deals 2 damage to target attacking creature without flying.\""); + this.setOriginalExpansionSetCode("M15"); + cardType.add(CardType.ARTIFACT); + + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{R}")); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/LeafdrakeRoostDrakeToken.java b/Mage/src/main/java/mage/game/permanent/token/LeafdrakeRoostDrakeToken.java new file mode 100644 index 0000000000..5c8173a842 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/LeafdrakeRoostDrakeToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class LeafdrakeRoostDrakeToken extends Token { + + public LeafdrakeRoostDrakeToken() { + super("Drake", "2/2 green and blue Drake creature token with flying"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + color.setBlue(true); + subtype.add("Drake"); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/LightningRagerToken.java b/Mage/src/main/java/mage/game/permanent/token/LightningRagerToken.java new file mode 100644 index 0000000000..5de5d26cff --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/LightningRagerToken.java @@ -0,0 +1,57 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.constants.TargetController; + +/** + * + * @author spjspj + */ +public class LightningRagerToken extends Token { + + public LightningRagerToken() { + super("Lightning Rager", "5/1 red Elemental creature token named Lightning Rager." + + "It has trample, haste, and \"At the beginning of the end step, sacrifice this creature.\""); + this.setOriginalExpansionSetCode("C15"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(5); + toughness = new MageInt(1); + addAbility(TrampleAbility.getInstance()); + addAbility(HasteAbility.getInstance()); + this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.NEXT, false)); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/LinvalaAngelToken.java b/Mage/src/main/java/mage/game/permanent/token/LinvalaAngelToken.java new file mode 100644 index 0000000000..7aebab1cf9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/LinvalaAngelToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class LinvalaAngelToken extends Token { + + public LinvalaAngelToken() { + super("Angel", "3/3 white Angel creature token with flying"); + setOriginalExpansionSetCode("OGW"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Angel"); + power = new MageInt(3); + toughness = new MageInt(3); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/LizardToken.java b/Mage/src/main/java/mage/game/permanent/token/LizardToken.java new file mode 100644 index 0000000000..4eb7a901d1 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/LizardToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class LizardToken extends Token { + + public LizardToken() { + super("Lizard", "2/2 green Lizard creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Lizard"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/LlanowarElvesToken.java b/Mage/src/main/java/mage/game/permanent/token/LlanowarElvesToken.java new file mode 100644 index 0000000000..56db49cd84 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/LlanowarElvesToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.mana.GreenManaAbility; + +/** + * + * @author spjspj + */ +public class LlanowarElvesToken extends Token { + + public LlanowarElvesToken() { + super("Llanowar Elves", "1/1 green Elf Druid creature token named Llanowar Elves with \"{T}: Add {G} to your mana pool.\""); + this.setOriginalExpansionSetCode("FUT"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Elf"); + subtype.add("Druid"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(new GreenManaAbility()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MarathWillOfTheWildElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/MarathWillOfTheWildElementalToken.java new file mode 100644 index 0000000000..4b6797dea4 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MarathWillOfTheWildElementalToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class MarathWillOfTheWildElementalToken extends Token { + + public MarathWillOfTheWildElementalToken() { + super("Elemental", "X/X green Elemental creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Elemental"); + color.setGreen(true); + power = new MageInt(0); + toughness = new MageInt(0); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MarduStrikeLeaderWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/MarduStrikeLeaderWarriorToken.java new file mode 100644 index 0000000000..15c79d2349 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MarduStrikeLeaderWarriorToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class MarduStrikeLeaderWarriorToken extends Token { + + public MarduStrikeLeaderWarriorToken() { + super("Warrior", "2/1 black Warrior creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Warrior"); + power = new MageInt(2); + toughness = new MageInt(1); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MaritLageToken.java b/Mage/src/main/java/mage/game/permanent/token/MaritLageToken.java new file mode 100644 index 0000000000..3c8223014f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MaritLageToken.java @@ -0,0 +1,57 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.constants.SuperType; + +/** + * + * @author spjspj + */ +public class MaritLageToken extends Token { + + public MaritLageToken() { + super("Marit Lage", "legendary 20/20 black Avatar creature token with flying and indestructible named Marit Lage"); + this.setOriginalExpansionSetCode("CSP"); + cardType.add(CardType.CREATURE); + subtype.add("Avatar"); + addSuperType(SuperType.LEGENDARY); + + color.setBlack(true); + power = new MageInt(20); + toughness = new MageInt(20); + + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(IndestructibleAbility.getInstance()); + + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MasterOfWavesElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/MasterOfWavesElementalToken.java new file mode 100644 index 0000000000..b3d6e20e62 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MasterOfWavesElementalToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class MasterOfWavesElementalToken extends Token { + + public MasterOfWavesElementalToken() { + super("Elemental", "1/0 blue Elemental creature"); + this.cardType.add(CardType.CREATURE); + this.subtype.add("Elemental"); + + this.color.setBlue(true); + + this.power = new MageInt(1); + this.toughness = new MageInt(0); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MelokuTheCloudedMirrorToken.java b/Mage/src/main/java/mage/game/permanent/token/MelokuTheCloudedMirrorToken.java new file mode 100644 index 0000000000..e2be2f90a6 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MelokuTheCloudedMirrorToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class MelokuTheCloudedMirrorToken extends Token { + + public MelokuTheCloudedMirrorToken() { + super("Illusion", "1/1 blue Illusion creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Illusion"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MercyKillingToken.java b/Mage/src/main/java/mage/game/permanent/token/MercyKillingToken.java new file mode 100644 index 0000000000..6f87dc5520 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MercyKillingToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class MercyKillingToken extends Token { + + public MercyKillingToken() { + super("Elf Warrior", "1/1 green and white Elf Warrior creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + color.setWhite(true); + subtype.add("Elf"); + subtype.add("Warrior"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MerfolkToken.java b/Mage/src/main/java/mage/game/permanent/token/MerfolkToken.java new file mode 100644 index 0000000000..b0676675cf --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MerfolkToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class MerfolkToken extends Token { + + public MerfolkToken() { + super("Merfolk", "1/1 blue Merfolk creature token"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Merfolk"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MetallurgicSummoningsConstructToken.java b/Mage/src/main/java/mage/game/permanent/token/MetallurgicSummoningsConstructToken.java new file mode 100644 index 0000000000..901ddfb8d1 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MetallurgicSummoningsConstructToken.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.util.RandomUtil; + +/** + * + * @author spjspj + */ +public class MetallurgicSummoningsConstructToken extends Token { + + public MetallurgicSummoningsConstructToken() { + this (1); + } + public MetallurgicSummoningsConstructToken(int xValue) { + super("Construct", "X/X colorless Construct artifact creature token"); + setOriginalExpansionSetCode("KLD"); + setTokenType(RandomUtil.nextInt(2) + 1); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Construct"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MinorDemonToken.java b/Mage/src/main/java/mage/game/permanent/token/MinorDemonToken.java new file mode 100644 index 0000000000..97dca7a84c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MinorDemonToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class MinorDemonToken extends Token { + + public MinorDemonToken() { + super("Minor Demon", "1/1 black and red Demon creature token named Minor Demon"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + color.setRed(true); + subtype.add("Demon"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MoltenBirthElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/MoltenBirthElementalToken.java new file mode 100644 index 0000000000..1aa59de1cd --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MoltenBirthElementalToken.java @@ -0,0 +1,50 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.util.RandomUtil; + +/** + * + * @author spjspj + */ +public class MoltenBirthElementalToken extends Token { + + public MoltenBirthElementalToken() { + super("Elemental", "1/1 red Elemental creature"); + this.setOriginalExpansionSetCode("M14"); + this.setTokenType(RandomUtil.nextInt(2) + 1); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MonasteryMentorToken.java b/Mage/src/main/java/mage/game/permanent/token/MonasteryMentorToken.java new file mode 100644 index 0000000000..14bf959e3c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MonasteryMentorToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.ProwessAbility; + +/** + * + * @author spjspj + */ +public class MonasteryMentorToken extends Token { + + public MonasteryMentorToken() { + super("Monk", "1/1 white Monk creature token with prowess"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Monk"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(new ProwessAbility()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/MysticGenesisOozeToken.java b/Mage/src/main/java/mage/game/permanent/token/MysticGenesisOozeToken.java new file mode 100644 index 0000000000..a349569ae9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/MysticGenesisOozeToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class MysticGenesisOozeToken extends Token { + + public MysticGenesisOozeToken() { + this(1); + } + public MysticGenesisOozeToken(int xValue) { + super("Ooze", "X/X green Ooze creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Ooze"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + setOriginalExpansionSetCode("RTR"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/NahiriTheLithomancerEquipmentToken.java b/Mage/src/main/java/mage/game/permanent/token/NahiriTheLithomancerEquipmentToken.java new file mode 100644 index 0000000000..cb26e2870b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/NahiriTheLithomancerEquipmentToken.java @@ -0,0 +1,63 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.constants.AttachmentType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; + +/** + * + * @author spjspj + */ +public class NahiriTheLithomancerEquipmentToken extends Token { + + public NahiriTheLithomancerEquipmentToken() { + super("Stoneforged Blade", "colorless Equipment artifact token named Stoneforged Blade with indestructible, \"Equipped creature gets +5/+5 and has double strike,\" and equip {0}"); + cardType.add(CardType.ARTIFACT); + subtype.add("Equipment"); + + this.addAbility(IndestructibleAbility.getInstance()); + + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(5, 5)); + ability.addEffect(new GainAbilityAttachedEffect(DoubleStrikeAbility.getInstance(), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield, "and has double strike")); + this.addAbility(ability); + + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(0))); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/NestOfScarabsBlackInsectToken.java b/Mage/src/main/java/mage/game/permanent/token/NestOfScarabsBlackInsectToken.java new file mode 100644 index 0000000000..8434fa6d65 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/NestOfScarabsBlackInsectToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class NestOfScarabsBlackInsectToken extends Token { + + public NestOfScarabsBlackInsectToken() { + super("Insect", "1/1 black Insect token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Insect"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/NighteyesTheDesecratorToken.java b/Mage/src/main/java/mage/game/permanent/token/NighteyesTheDesecratorToken.java new file mode 100644 index 0000000000..ec293c599f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/NighteyesTheDesecratorToken.java @@ -0,0 +1,61 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInGraveyard; + +/** + * + * @author spjspj + */ +public class NighteyesTheDesecratorToken extends Token { + + public NighteyesTheDesecratorToken() { + super("Nighteyes the Desecrator", ""); + addSuperType(SuperType.LEGENDARY); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Rat"); + subtype.add("Wizard"); + power = new MageInt(4); + toughness = new MageInt(2); + // {4}{B}: Put target creature card from a graveyard onto the battlefield under your control. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{4}{B}")); + ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard"))); + this.addAbility(ability); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/NightwingHorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/NightwingHorrorToken.java new file mode 100644 index 0000000000..024625a8bb --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/NightwingHorrorToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class NightwingHorrorToken extends Token { + + public NightwingHorrorToken() { + super("Horror", "1/1 blue and black Horror creature token with flying"); + cardType.add(CardType.CREATURE); + this.color.setBlue(true); + this.color.setBlack(true); + this.subtype.add("Horror"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/NissaSageAnimistToken.java b/Mage/src/main/java/mage/game/permanent/token/NissaSageAnimistToken.java new file mode 100644 index 0000000000..603856cc28 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/NissaSageAnimistToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.constants.SuperType; + +/** + * + * @author spjspj + */ +public class NissaSageAnimistToken extends Token { + + public NissaSageAnimistToken() { + super("Ashaya, the Awoken World", "legendary 4/4 green Elemental creature token named Ashaya, the Awoken World"); + this.setOriginalExpansionSetCode("ORI"); + this.addSuperType(SuperType.LEGENDARY); + this.getPower().modifyBaseValue(4); + this.getToughness().modifyBaseValue(4); + this.color.setGreen(true); + this.getSubtype(null).add("Elemental"); + this.addCardType(CardType.CREATURE); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OctopusToken.java b/Mage/src/main/java/mage/game/permanent/token/OctopusToken.java new file mode 100644 index 0000000000..590c25e35f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OctopusToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class OctopusToken extends Token { + + public OctopusToken() { + super("Octopus", "8/8 blue Octopus creature token"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Octopus"); + power = new MageInt(8); + toughness = new MageInt(8); + this.setOriginalExpansionSetCode("BFZ"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OgreToken.java b/Mage/src/main/java/mage/game/permanent/token/OgreToken.java new file mode 100644 index 0000000000..b76a68fcc1 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OgreToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class OgreToken extends Token { + + public OgreToken() { + super("Ogre", "3/3 red Ogre creature"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Ogre"); + power = new MageInt(3); + toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OmnathElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/OmnathElementalToken.java new file mode 100644 index 0000000000..6f9b1ac024 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OmnathElementalToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class OmnathElementalToken extends Token { + + public OmnathElementalToken() { + super("Elemental", "5/5 red and green Elemental creature token"); + setTokenType(2); + setOriginalExpansionSetCode("BFZ"); + cardType.add(CardType.CREATURE); + subtype.add("Elemental"); + + color.setRed(true); + color.setGreen(true); + power = new MageInt(5); + toughness = new MageInt(5); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OmnibianFrogToken.java b/Mage/src/main/java/mage/game/permanent/token/OmnibianFrogToken.java new file mode 100644 index 0000000000..d101243838 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OmnibianFrogToken.java @@ -0,0 +1,44 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class OmnibianFrogToken extends Token { + + public OmnibianFrogToken() { + super("", "3/3 Frog"); + this.subtype.add("Frog"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OneDozenEyesBeastToken.java b/Mage/src/main/java/mage/game/permanent/token/OneDozenEyesBeastToken.java new file mode 100644 index 0000000000..39d703f1e7 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OneDozenEyesBeastToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class OneDozenEyesBeastToken extends Token { + + public OneDozenEyesBeastToken() { + super("Beast", "5/5 green Beast creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Beast"); + power = new MageInt(5); + toughness = new MageInt(5); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OonaQueenFaerieToken.java b/Mage/src/main/java/mage/game/permanent/token/OonaQueenFaerieToken.java new file mode 100644 index 0000000000..bcbd37611a --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OonaQueenFaerieToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class OonaQueenFaerieToken extends Token { + + public OonaQueenFaerieToken() { + super("Faerie Rogue", "1/1 blue and black Faerie Rogue creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + color.setBlack(true); + subtype.add("Faerie"); + subtype.add("Rogue"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/Ooze2Token.java b/Mage/src/main/java/mage/game/permanent/token/Ooze2Token.java new file mode 100644 index 0000000000..b6026fab82 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/Ooze2Token.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; + +/** + * + * @author spjspj + */ +public class Ooze2Token extends Token { + + public Ooze2Token() { + super("Ooze", "2/2 green Ooze creature tokens with \"When this creature is put into a graveyard, create two 1/1 green Ooze creature tokens.\""); + cardType.add(CardType.CREATURE); + subtype.add("Ooze"); + color.setGreen(true); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new OozeToken(1, 1), 2), false)); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OphiomancerSnakeToken.java b/Mage/src/main/java/mage/game/permanent/token/OphiomancerSnakeToken.java new file mode 100644 index 0000000000..004c3e85a2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OphiomancerSnakeToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; + +/** + * + * @author spjspj + */ +public class OphiomancerSnakeToken extends Token { + + public OphiomancerSnakeToken() { + super("Snake", "1/1 black Snake creature token with deathtouch"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Snake"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(DeathtouchAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OrderedMigrationBirdToken.java b/Mage/src/main/java/mage/game/permanent/token/OrderedMigrationBirdToken.java new file mode 100644 index 0000000000..8ac9e9fa5b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OrderedMigrationBirdToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.CardType; + +/** + * + * @author LoneFox + */ +public class OrderedMigrationBirdToken extends Token { + + public OrderedMigrationBirdToken() { + super("Bird", "1/1 blue Bird creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Bird"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java b/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java new file mode 100644 index 0000000000..9d8517320e --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java @@ -0,0 +1,57 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.util.RandomUtil; + +/** + * + * @author spjspj + */ +public class OviyaPashiriSageLifecrafterToken extends Token { + + final static FilterControlledCreaturePermanent filterCreature = new FilterControlledCreaturePermanent("creatures you control"); + + public OviyaPashiriSageLifecrafterToken() { + this(1); + } + + public OviyaPashiriSageLifecrafterToken(int number) { + super("Construct", "an X/X colorless Construct artifact creature token, where X is the number of creatures you control"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Construct"); + setOriginalExpansionSetCode("KLD"); + setTokenType(RandomUtil.nextInt(2) + 1); + power = new MageInt(number); + toughness = new MageInt(number); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/OwlToken.java b/Mage/src/main/java/mage/game/permanent/token/OwlToken.java new file mode 100644 index 0000000000..8534f57e3f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/OwlToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class OwlToken extends Token { + + public OwlToken() { + super("Bird", "1/1 blue Bird creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Bird"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PatagiaViperSnakeToken.java b/Mage/src/main/java/mage/game/permanent/token/PatagiaViperSnakeToken.java new file mode 100644 index 0000000000..81efe8f80c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PatagiaViperSnakeToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class PatagiaViperSnakeToken extends Token { + + public PatagiaViperSnakeToken() { + super("Snake", "1/1 green and blue Snake creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + color.setBlue(true); + subtype.add("Snake"); + power = new MageInt(1); + toughness = new MageInt(1); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PentaviteToken.java b/Mage/src/main/java/mage/game/permanent/token/PentaviteToken.java new file mode 100644 index 0000000000..8159f18c69 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PentaviteToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class PentaviteToken extends Token { + + public PentaviteToken() { + super("Pentavite", "1/1 colorless Pentavite artifact creature token with flying"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Pentavite"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PenumbraBobcatToken.java b/Mage/src/main/java/mage/game/permanent/token/PenumbraBobcatToken.java new file mode 100644 index 0000000000..737d1a4cd0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PenumbraBobcatToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class PenumbraBobcatToken extends Token { + + public PenumbraBobcatToken() { + super("Cat", "2/1 black Cat creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Cat"); + power = new MageInt(2); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PenumbraKavuToken.java b/Mage/src/main/java/mage/game/permanent/token/PenumbraKavuToken.java new file mode 100644 index 0000000000..15c5d9d4e0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PenumbraKavuToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class PenumbraKavuToken extends Token { + + public PenumbraKavuToken() { + super("Kavu", "3/3 black Kavu creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Kavu"); + power = new MageInt(3); + toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PenumbraSpiderToken.java b/Mage/src/main/java/mage/game/permanent/token/PenumbraSpiderToken.java new file mode 100644 index 0000000000..234cd39899 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PenumbraSpiderToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.ReachAbility; + +/** + * + * @author spjspj + */ +public class PenumbraSpiderToken extends Token { + + public PenumbraSpiderToken() { + + super("Spider", "2/4 black Spider creature token with reach"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Spider"); + power = new MageInt(2); + toughness = new MageInt(4); + addAbility(ReachAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PenumbraWurmToken.java b/Mage/src/main/java/mage/game/permanent/token/PenumbraWurmToken.java new file mode 100644 index 0000000000..39d36774d0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PenumbraWurmToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; + +/** + * + * @author spjspj + */ +public class PenumbraWurmToken extends Token { + + public PenumbraWurmToken() { + super("Wurm", "6/6 black Wurm creature token with trample"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Wurm"); + power = new MageInt(6); + toughness = new MageInt(6); + + this.addAbility(TrampleAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PestToken.java b/Mage/src/main/java/mage/game/permanent/token/PestToken.java new file mode 100644 index 0000000000..1d35449e68 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PestToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class PestToken extends Token { + + public PestToken() { + super("Pest", "0/1 colorless Pest artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Pest"); + power = new MageInt(0); + toughness = new MageInt(1); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PharikaSnakeToken.java b/Mage/src/main/java/mage/game/permanent/token/PharikaSnakeToken.java new file mode 100644 index 0000000000..e692208ccb --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PharikaSnakeToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.abilities.keyword.DeathtouchAbility; + +/** + * + * @author spjspj + */ +public class PharikaSnakeToken extends Token { + + public PharikaSnakeToken() { + super("Snake", "1/1 black and green Snake enchantment creature token with deathtouch", 1, 1); + this.setOriginalExpansionSetCode("JOU"); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + subtype.add("Snake"); + color.setBlack(true); + color.setGreen(true); + this.addAbility(DeathtouchAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PhyrexianRebirthHorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/PhyrexianRebirthHorrorToken.java new file mode 100644 index 0000000000..5fc615a7b9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PhyrexianRebirthHorrorToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class PhyrexianRebirthHorrorToken extends Token { + + public PhyrexianRebirthHorrorToken() { + super("Horror", "X/X colorless Horror artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Horror"); + power = new MageInt(0); + toughness = new MageInt(0); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PincherToken.java b/Mage/src/main/java/mage/game/permanent/token/PincherToken.java new file mode 100644 index 0000000000..fe0e505b9a --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PincherToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class PincherToken extends Token { + + public PincherToken() { + super("Pincher", "2/2 colorless Pincher creature token"); + setOriginalExpansionSetCode("5ND"); + cardType.add(CardType.CREATURE); + subtype.add("Pincher"); + power = new MageInt(2); + toughness = new MageInt(2); + + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PongifyApeToken.java b/Mage/src/main/java/mage/game/permanent/token/PongifyApeToken.java new file mode 100644 index 0000000000..fb6b331300 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PongifyApeToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class PongifyApeToken extends Token { + + public PongifyApeToken() { + super("Ape", "3/3 green Ape creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Ape"); + power = new MageInt(3); + toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PromiseOfPowerDemonToken.java b/Mage/src/main/java/mage/game/permanent/token/PromiseOfPowerDemonToken.java new file mode 100644 index 0000000000..fbbcceb2be --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PromiseOfPowerDemonToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class PromiseOfPowerDemonToken extends Token { + + public PromiseOfPowerDemonToken() { + this(1); + } + public PromiseOfPowerDemonToken(int xValue) { + super("Demon", "X/X black Demon creature token with flying"); + setOriginalExpansionSetCode("C14"); + setTokenType(2); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Demon"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ProsshKoboldToken.java b/Mage/src/main/java/mage/game/permanent/token/ProsshKoboldToken.java new file mode 100644 index 0000000000..cc3a19aa1c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ProsshKoboldToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ProsshKoboldToken extends Token { + + public ProsshKoboldToken() { + super("Kobolds of Kher Keep", "0/1 red Kobold creature tokens"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Kobold"); + power = new MageInt(0); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/QueenMarchesaAssassinToken.java b/Mage/src/main/java/mage/game/permanent/token/QueenMarchesaAssassinToken.java new file mode 100644 index 0000000000..1bde202df4 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/QueenMarchesaAssassinToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class QueenMarchesaAssassinToken extends Token { + + public QueenMarchesaAssassinToken() { + super("Assassin", "1/1 black Assassin creature tokens with deathtouch and haste"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Assassin"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(DeathtouchAbility.getInstance()); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/QuestForTheGravelordZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/QuestForTheGravelordZombieToken.java new file mode 100644 index 0000000000..4090d51a07 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/QuestForTheGravelordZombieToken.java @@ -0,0 +1,50 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + + +import mage.MageInt; +import mage.constants.CardType; + +/** + * + * spjspj + */ +public class QuestForTheGravelordZombieToken extends Token { + + public QuestForTheGravelordZombieToken() { + super("Zombie Giant", "5/5 black Zombie Giant creature token"); + cardType.add(CardType.CREATURE); + subtype.add("Zombie"); + subtype.add("Giant"); + + color.setBlack(true); + power = new MageInt(5); + toughness = new MageInt(5); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RagavanToken.java b/Mage/src/main/java/mage/game/permanent/token/RagavanToken.java new file mode 100644 index 0000000000..d7cd2a0d67 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RagavanToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.constants.SuperType; + +/** + * + * @author spjspj + */ +public class RagavanToken extends Token { + + public RagavanToken() { + super("Ragavan", "legendary 2/1 red Monkey creature token named Ragavan"); + this.setOriginalExpansionSetCode("AER"); + this.addSuperType(SuperType.LEGENDARY); + this.getPower().modifyBaseValue(2); + this.getToughness().modifyBaseValue(1); + this.color.setRed(true); + this.getSubtype(null).add("Monkey"); + this.addCardType(CardType.CREATURE); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RakdosGuildmageGoblinToken.java b/Mage/src/main/java/mage/game/permanent/token/RakdosGuildmageGoblinToken.java new file mode 100644 index 0000000000..4373ef988d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RakdosGuildmageGoblinToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class RakdosGuildmageGoblinToken extends Token { + + public RakdosGuildmageGoblinToken() { + super("Goblin", "2/1 red Goblin creature token with haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Goblin"); + power = new MageInt(2); + toughness = new MageInt(1); + this.addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RakkaMarElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/RakkaMarElementalToken.java new file mode 100644 index 0000000000..443391fd33 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RakkaMarElementalToken.java @@ -0,0 +1,49 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class RakkaMarElementalToken extends Token { + + public RakkaMarElementalToken () { + super("Elemental", "3/1 red Elemental creature with Haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(3); + toughness = new MageInt(1); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RallyTheHordeWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/RallyTheHordeWarriorToken.java new file mode 100644 index 0000000000..9e782a7188 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RallyTheHordeWarriorToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class RallyTheHordeWarriorToken extends Token { + + public RallyTheHordeWarriorToken() { + super("Warrior", "1/1 red Warrior creature token"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Warrior"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RapidHybridizationToken.java b/Mage/src/main/java/mage/game/permanent/token/RapidHybridizationToken.java new file mode 100644 index 0000000000..d22e593f70 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RapidHybridizationToken.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class RapidHybridizationToken extends Token { + + public RapidHybridizationToken() { + super("Frog Lizard", "3/3 green Frog Lizard creature token"); + this.setOriginalExpansionSetCode("GTC"); + cardType.add(CardType.CREATURE); + + color.setGreen(true); + + subtype.add("Frog"); + subtype.add("Lizard"); + + power = new MageInt(3); + toughness = new MageInt(3); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RebelStarshipToken.java b/Mage/src/main/java/mage/game/permanent/token/RebelStarshipToken.java new file mode 100644 index 0000000000..b35e418a8e --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RebelStarshipToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.abilities.keyword.SpaceflightAbility; + +/** + * + * @author spjspj + */ +public class RebelStarshipToken extends Token { + + public RebelStarshipToken() { + super("B-Wing", "2/3 blue Rebel Starship artifact creature tokens with spaceflight name B-Wing", 2, 3); + this.setOriginalExpansionSetCode("SWS"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + abilities.add(SpaceflightAbility.getInstance()); + color.setBlue(true); + subtype.add("Rebel"); + subtype.add("Starship"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RebelToken.java b/Mage/src/main/java/mage/game/permanent/token/RebelToken.java new file mode 100644 index 0000000000..50699ac436 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RebelToken.java @@ -0,0 +1,45 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class RebelToken extends Token { + + public RebelToken() { + super("Rebel", "1/1 white Rebel creature token", 1, 1); + this.setOriginalExpansionSetCode("SWS"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Rebel"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RedHumanToken.java b/Mage/src/main/java/mage/game/permanent/token/RedHumanToken.java new file mode 100644 index 0000000000..28348c4471 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RedHumanToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; + +/** + * + * @author spjspj + */ +public class RedHumanToken extends Token { + + public RedHumanToken() { + super("Human", "1/1 red Human creature token"); + this.cardType.add(CardType.CREATURE); + this.subtype.add("Human"); + + this.color = ObjectColor.RED; + this.power = new MageInt(1); + this.toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ReefWormFishToken.java b/Mage/src/main/java/mage/game/permanent/token/ReefWormFishToken.java new file mode 100644 index 0000000000..cd00acba9c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ReefWormFishToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; + +/** + * + * @author spjspj + */ +public class ReefWormFishToken extends Token { + + public ReefWormFishToken() { + super("Fish", "3/3 blue Fish creature token with \"When this creature dies, create a 6/6 blue Whale creature token with \"When this creature dies, create a 9/9 blue Kraken creature token.\"\""); + setOriginalExpansionSetCode("C14"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Fish"); + power = new MageInt(3); + toughness = new MageInt(3); + + addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new ReefWormWhaleToken()))); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ReefWormKrakenToken.java b/Mage/src/main/java/mage/game/permanent/token/ReefWormKrakenToken.java new file mode 100644 index 0000000000..625c23900b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ReefWormKrakenToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ReefWormKrakenToken extends Token { + + public ReefWormKrakenToken() { + super("Kraken", "9/9 blue Kraken creature token"); + setOriginalExpansionSetCode("C14"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Kraken"); + power = new MageInt(9); + toughness = new MageInt(9); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ReefWormWhaleToken.java b/Mage/src/main/java/mage/game/permanent/token/ReefWormWhaleToken.java new file mode 100644 index 0000000000..5cde984b63 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ReefWormWhaleToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; + +/** + * + * @author spjspj + */ +public class ReefWormWhaleToken extends Token { + + public ReefWormWhaleToken() { + super("Whale", "6/6 blue Whale creature token with \"When this creature dies, create a 9/9 blue Kraken creature token.\""); + setOriginalExpansionSetCode("C14"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Whale"); + power = new MageInt(6); + toughness = new MageInt(6); + + addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new ReefWormKrakenToken()))); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ReflectionToken.java b/Mage/src/main/java/mage/game/permanent/token/ReflectionToken.java new file mode 100644 index 0000000000..8c50d67b09 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ReflectionToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ReflectionToken extends Token { + + public ReflectionToken() { + super("Reflection", "2/2 white Reflection creature token"); + this.setOriginalExpansionSetCode("TMP"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Reflection"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ReignOfThePitToken.java b/Mage/src/main/java/mage/game/permanent/token/ReignOfThePitToken.java new file mode 100644 index 0000000000..2830ea3ec2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ReignOfThePitToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class ReignOfThePitToken extends Token { + + public ReignOfThePitToken() { + this(1); + } + public ReignOfThePitToken(int xValue) { + super("Demon", "X/X black Demon creature token with flying"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + color.setBlack(true); + subtype.add("Demon"); + cardType.add(CardType.CREATURE); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RenownedWeaverSpiderToken.java b/Mage/src/main/java/mage/game/permanent/token/RenownedWeaverSpiderToken.java new file mode 100644 index 0000000000..4a9d295748 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RenownedWeaverSpiderToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.keyword.ReachAbility; + +/** + * + * @author spjspj + */ +public class RenownedWeaverSpiderToken extends Token { + + public RenownedWeaverSpiderToken() { + super("Spider", "1/3 green Spider enchantment creature token with reach"); + this.setOriginalExpansionSetCode("JOU"); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + color.setColor(ObjectColor.GREEN); + subtype.add("Spider"); + power = new MageInt(1); + toughness = new MageInt(3); + this.addAbility(ReachAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RevelOfTheFallenGodSatyrToken.java b/Mage/src/main/java/mage/game/permanent/token/RevelOfTheFallenGodSatyrToken.java new file mode 100644 index 0000000000..9701a858ff --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RevelOfTheFallenGodSatyrToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class RevelOfTheFallenGodSatyrToken extends Token { + + public RevelOfTheFallenGodSatyrToken() { + super("Satyr", "2/2 red and green Satyr creature tokens with haste"); + this.setOriginalExpansionSetCode("THS"); + cardType.add(CardType.CREATURE); + color.setColor(ObjectColor.RED); + color.setColor(ObjectColor.GREEN); + subtype.add("Satyr"); + power = new MageInt(2); + toughness = new MageInt(2); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RhinoToken.java b/Mage/src/main/java/mage/game/permanent/token/RhinoToken.java new file mode 100644 index 0000000000..36a93b14ce --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RhinoToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; + +/** + * + * @author spjspj + */ +public class RhinoToken extends Token { + + public RhinoToken() { + super("Rhino", "4/4 green Rhino creature token with trample"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Rhino"); + power = new MageInt(4); + toughness = new MageInt(4); + addAbility(TrampleAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RhysTheRedeemedToken.java b/Mage/src/main/java/mage/game/permanent/token/RhysTheRedeemedToken.java new file mode 100644 index 0000000000..300e7a359f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RhysTheRedeemedToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class RhysTheRedeemedToken extends Token { + + public RhysTheRedeemedToken() { + super("Elf Warrior", "1/1 green and white Elf Warrior creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + color.setWhite(true); + subtype.add("Elf"); + subtype.add("Warrior"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RiftmarkedKnightToken.java b/Mage/src/main/java/mage/game/permanent/token/RiftmarkedKnightToken.java new file mode 100644 index 0000000000..10b4de59aa --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RiftmarkedKnightToken.java @@ -0,0 +1,54 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.keyword.FlankingAbility; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.ProtectionAbility; + +/** + * + * @author spjspj + */ +public class RiftmarkedKnightToken extends Token { + + public RiftmarkedKnightToken() { + super("Knight", "2/2 black Knight creature token with flanking, protection from white, and haste"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Knight"); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(ProtectionAbility.from(ObjectColor.WHITE)); + this.addAbility(new FlankingAbility()); + this.addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RiptideReplicatorToken.java b/Mage/src/main/java/mage/game/permanent/token/RiptideReplicatorToken.java new file mode 100644 index 0000000000..fadefc1844 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RiptideReplicatorToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; + +/** + * + * @author spjspj + */ +public class RiptideReplicatorToken extends Token { + + public RiptideReplicatorToken() { + this(null, null, 1); + } + public RiptideReplicatorToken(ObjectColor color, String type, int x) { + super(type, "X/X creature token of the chosen color and type"); + cardType.add(CardType.CREATURE); + if (color != null) { + this.color.setColor(color); + } + if (type != null) { + subtype.add(type); + } + power = new MageInt(x); + toughness = new MageInt(x); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RiseOfEaglesBirdToken.java b/Mage/src/main/java/mage/game/permanent/token/RiseOfEaglesBirdToken.java new file mode 100644 index 0000000000..ac6a182ddb --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RiseOfEaglesBirdToken.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class RiseOfEaglesBirdToken extends Token { + + public RiseOfEaglesBirdToken() { + super("Bird", "2/2 blue Bird enchantment creature tokens with flying"); + this.setOriginalExpansionSetCode("BNG"); + this.setTokenType(2); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + color.setColor(ObjectColor.BLUE); + subtype.add("Bird"); + power = new MageInt(2); + toughness = new MageInt(2); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RitualOfTheReturnedZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/RitualOfTheReturnedZombieToken.java new file mode 100644 index 0000000000..5f682368f9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RitualOfTheReturnedZombieToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class RitualOfTheReturnedZombieToken extends Token { + + public RitualOfTheReturnedZombieToken() { + this(1,1); + } + public RitualOfTheReturnedZombieToken(int power, int toughness) { + super("Zombie", "black Zombie creature token with power equal to the exiled card's power and toughness equal to the exiled card's toughness"); + this.setOriginalExpansionSetCode("JOU"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Zombie"); + this.power = new MageInt(power); + this.toughness = new MageInt(toughness); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RocEggToken.java b/Mage/src/main/java/mage/game/permanent/token/RocEggToken.java new file mode 100644 index 0000000000..2c4ee5efde --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RocEggToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class RocEggToken extends Token { + + public RocEggToken() { + super("Bird", "3/3 white Bird creature token with flying"); + cardType.add(CardType.CREATURE); + subtype.add("Bird"); + color.setWhite(true); + power = new MageInt(3); + toughness = new MageInt(3); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RoyalGuardToken.java b/Mage/src/main/java/mage/game/permanent/token/RoyalGuardToken.java new file mode 100644 index 0000000000..a50123ee9c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RoyalGuardToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.abilities.keyword.FirstStrikeAbility; + +/** + * + * @author spjspj + */ +public class RoyalGuardToken extends Token { + + public RoyalGuardToken() { + super("Royal Guard", "2/2 red Soldier creature token with first strike named Royal Guard", 2, 2); + this.setOriginalExpansionSetCode("SWS"); + cardType.add(CardType.CREATURE); + color.setRed(true); + addAbility(FirstStrikeAbility.getInstance()); + subtype.add("Soldier"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/RukhEggBirdToken.java b/Mage/src/main/java/mage/game/permanent/token/RukhEggBirdToken.java new file mode 100644 index 0000000000..fbfa9422cc --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/RukhEggBirdToken.java @@ -0,0 +1,56 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class RukhEggBirdToken extends Token { + + public RukhEggBirdToken() { + this("ARN"); //there is no such token in either ARN, 8ED or 9ED + } + + public RukhEggBirdToken(String setCode) { + super("Bird", "4/4 red Bird creature token with flying"); + this.setOriginalExpansionSetCode(setCode); + cardType.add(CardType.CREATURE); + color.setRed(true); + + subtype.add("Bird"); + power = new MageInt(4); + toughness = new MageInt(4); + addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SaprolingBurstToken.java b/Mage/src/main/java/mage/game/permanent/token/SaprolingBurstToken.java new file mode 100644 index 0000000000..e3eeebc51e --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SaprolingBurstToken.java @@ -0,0 +1,100 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author spjspj + */ +public class SaprolingBurstToken extends Token { + + public SaprolingBurstToken() { + this(null); + power = new MageInt(1); + toughness = new MageInt(1); + } + + public SaprolingBurstToken(MageObjectReference saprolingBurstMOR) { + super("Saproling", "green Saproling creature token with \"This creature's power and toughness are each equal to the number of fade counters on Saproling Burst.\""); + this.color.setGreen(true); + this.subtype.add("Saproling"); + this.cardType.add(CardType.CREATURE); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new SaprolingBurstTokenDynamicValue(saprolingBurstMOR), Duration.WhileOnBattlefield))); + } +} + +class SaprolingBurstTokenDynamicValue implements DynamicValue { + + private final MageObjectReference saprolingBurstMOR; + + SaprolingBurstTokenDynamicValue(MageObjectReference saprolingBurstMOR) { + this.saprolingBurstMOR = saprolingBurstMOR; + } + + SaprolingBurstTokenDynamicValue(final SaprolingBurstTokenDynamicValue dynamicValue) { + this.saprolingBurstMOR = dynamicValue.saprolingBurstMOR; + } + + @Override + public int calculate(Game game, Ability sourceAbility, Effect effect) { + Permanent permanent = this.saprolingBurstMOR.getPermanent(game); + if (permanent != null) { + return permanent.getCounters(game).getCount(CounterType.FADE); + } + return 0; + } + + @Override + public SaprolingBurstTokenDynamicValue copy() { + return new SaprolingBurstTokenDynamicValue(this); + } + + @Override + public String toString() { + return "X"; + } + + @Override + public String getMessage() { + return "the number of fade counters on Saproling Burst"; + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SatyrNyxSmithElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/SatyrNyxSmithElementalToken.java new file mode 100644 index 0000000000..f18d31d183 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SatyrNyxSmithElementalToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class SatyrNyxSmithElementalToken extends Token { + + public SatyrNyxSmithElementalToken() { + super("Elemental", "3/1 red Elemental enchantment creature token with haste"); + cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(3); + toughness = new MageInt(1); + this.addAbility(HasteAbility.getInstance()); + this.setOriginalExpansionSetCode("BNG"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SeedGuardianToken.java b/Mage/src/main/java/mage/game/permanent/token/SeedGuardianToken.java new file mode 100644 index 0000000000..3b8147f55e --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SeedGuardianToken.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SeedGuardianToken extends Token { + + public SeedGuardianToken() { + this(1); + } + public SeedGuardianToken(int xValue) { + super("Elemental", "X/X green Elemental creature token"); + setTokenType(2); + setOriginalExpansionSetCode("OGW"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Elemental"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SekKuarDeathkeeperGravebornToken.java b/Mage/src/main/java/mage/game/permanent/token/SekKuarDeathkeeperGravebornToken.java new file mode 100644 index 0000000000..7a1e075b3b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SekKuarDeathkeeperGravebornToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class SekKuarDeathkeeperGravebornToken extends Token { + + public SekKuarDeathkeeperGravebornToken() { + super("Graveborn", "3/1 black and red Graveborn creature token with haste"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + color.setRed(true); + subtype.add("Graveborn"); + power = new MageInt(3); + toughness = new MageInt(1); + this.addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SengirNosferatuBatToken.java b/Mage/src/main/java/mage/game/permanent/token/SengirNosferatuBatToken.java new file mode 100644 index 0000000000..688b77e2cc --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SengirNosferatuBatToken.java @@ -0,0 +1,110 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import java.util.UUID; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.Card; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.Target; +import mage.target.common.TargetCardInExile; + +/** + * + * @author spjspj + */ +public class SengirNosferatuBatToken extends Token { + + public SengirNosferatuBatToken() { + super("Bat", "1/2 black Bat creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Bat"); + power = new MageInt(1); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + ReturnSengirNosferatuEffect effect = new ReturnSengirNosferatuEffect(); + effect.setText("Return an exiled card named Sengir Nosferatu to the battlefield under its owner's control."); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{B}")); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } +} + +class ReturnSengirNosferatuEffect extends OneShotEffect { + + private static final FilterCard filter = new FilterCard("exiled card named Sengir Nosferatu"); + + static { + filter.add(new NamePredicate("Sengir Nosferatu")); + } + + public ReturnSengirNosferatuEffect() { + super(Outcome.Benefit); + } + + public ReturnSengirNosferatuEffect(final ReturnSengirNosferatuEffect effect) { + super(effect); + } + + @Override + public ReturnSengirNosferatuEffect copy() { + return new ReturnSengirNosferatuEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + UUID controllerId = source.getControllerId(); + Target target = new TargetCardInExile(filter); + target.setNotTarget(true); + if (!target.canChoose(source.getSourceId(), controllerId, game)) { + return false; + } + Player player = game.getPlayer(controllerId); + if (player != null) { + player.chooseTarget(Outcome.PutCreatureInPlay, target, source, game); + Card card = game.getCard(target.getTargets().get(0)); + if (card != null) { + return card.moveToZone(Zone.BATTLEFIELD, source.getSourceId(), game, false); + } + } + return false; + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SerfToken.java b/Mage/src/main/java/mage/game/permanent/token/SerfToken.java new file mode 100644 index 0000000000..40d8fb8f79 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SerfToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SerfToken extends Token { + + public SerfToken() { + super("Serf", "0/1 black Serf creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Serf"); + power = new MageInt(0); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SerpentGeneratorSnakeToken.java b/Mage/src/main/java/mage/game/permanent/token/SerpentGeneratorSnakeToken.java new file mode 100644 index 0000000000..84576d8f31 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SerpentGeneratorSnakeToken.java @@ -0,0 +1,55 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.counter.AddPoisonCounterTargetEffect; +import mage.constants.CardType; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class SerpentGeneratorSnakeToken extends Token { + + public SerpentGeneratorSnakeToken() { + super("Snake", "1/1 colorless Snake artifact creature token with \"Whenever this creature deals damage to a player, that player gets a poison counter.\""); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Snake"); + power = new MageInt(1); + toughness = new MageInt(1); + + Effect effect = new AddPoisonCounterTargetEffect(1); + effect.setText("that player gets a poison counter"); + this.addAbility(new DealsDamageToAPlayerTriggeredAbility(effect, false, true)); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SkywiseTeachingsToken.java b/Mage/src/main/java/mage/game/permanent/token/SkywiseTeachingsToken.java new file mode 100644 index 0000000000..5fb58a7465 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SkywiseTeachingsToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class SkywiseTeachingsToken extends Token { + + public SkywiseTeachingsToken() { + super("Djinn Monk", "2/2 blue Djinn Monk creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + this.subtype.add("Djinn"); + this.subtype.add("Monk"); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SliversmithToken.java b/Mage/src/main/java/mage/game/permanent/token/SliversmithToken.java new file mode 100644 index 0000000000..3f9bb18771 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SliversmithToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SliversmithToken extends Token { + + public SliversmithToken() { + super("Metallic Sliver", "1/1 colorless Sliver creature token named Metallic Sliver"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + subtype.add("Sliver"); + power = new MageInt(1); + toughness = new MageInt(1); + this.setOriginalExpansionSetCode("FUT"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SorinLordOfInnistradVampireToken.java b/Mage/src/main/java/mage/game/permanent/token/SorinLordOfInnistradVampireToken.java new file mode 100644 index 0000000000..1ec1623d1d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SorinLordOfInnistradVampireToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.LifelinkAbility; + +/** + * + * @author spjspj + */ +public class SorinLordOfInnistradVampireToken extends Token { + + public SorinLordOfInnistradVampireToken() { + super("Vampire", "1/1 black Vampire creature token with lifelink"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Vampire"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(LifelinkAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SorinSolemnVisitorVampireToken.java b/Mage/src/main/java/mage/game/permanent/token/SorinSolemnVisitorVampireToken.java new file mode 100644 index 0000000000..88411de49d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SorinSolemnVisitorVampireToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class SorinSolemnVisitorVampireToken extends Token { + + public SorinSolemnVisitorVampireToken() { + super("Vampire", "2/2 black Vampire creature token with flying"); + setOriginalExpansionSetCode("KTK"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Vampire"); + power = new MageInt(2); + toughness = new MageInt(2); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SparkElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/SparkElementalToken.java new file mode 100644 index 0000000000..6c36b99a51 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SparkElementalToken.java @@ -0,0 +1,57 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.constants.TargetController; + +/** + * + * @author spjspj + */ +public class SparkElementalToken extends Token { + + public SparkElementalToken() { + super("Spark Elemental", "3/1 red Elemental creature token named Spark Elemental with trample, haste, and \"At the beginning of the end step, sacrifice Spark Elemental.\""); + this.setOriginalExpansionSetCode("FUT"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(3); + toughness = new MageInt(1); + + this.addAbility(TrampleAbility.getInstance()); + this.addAbility(HasteAbility.getInstance()); + this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.ANY, false)); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SpawningGroundsBeastToken.java b/Mage/src/main/java/mage/game/permanent/token/SpawningGroundsBeastToken.java new file mode 100644 index 0000000000..f403933e83 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SpawningGroundsBeastToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; + +/** + * + * @author spjspj + */ +public class SpawningGroundsBeastToken extends Token { + + public SpawningGroundsBeastToken() { + super("Beast", "5/5 green Beast creature token with trample"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Beast"); + power = new MageInt(5); + toughness = new MageInt(5); + this.addAbility(TrampleAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SpawningPitToken.java b/Mage/src/main/java/mage/game/permanent/token/SpawningPitToken.java new file mode 100644 index 0000000000..28611d33ca --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SpawningPitToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SpawningPitToken extends Token { + + public SpawningPitToken() { + super("Spawn", "2/2 colorless Spawn artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + this.subtype.add("Spawn"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SpikeToken.java b/Mage/src/main/java/mage/game/permanent/token/SpikeToken.java new file mode 100644 index 0000000000..520fec7534 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SpikeToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SpikeToken extends Token { + + public SpikeToken() { + super("Spike", "1/1 green Spike creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Spike"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritBlueToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritBlueToken.java new file mode 100644 index 0000000000..f0d35ea44d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritBlueToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class SpiritBlueToken extends Token { + + public SpiritBlueToken() { + super("Spirit", "1/1 blue Spirit creature token with flying"); + cardType.add(CardType.CREATURE); + subtype.add("Spirit"); + color.setBlue(true); + power = new MageInt(1); + toughness = new MageInt(1); + setTokenType(2); + addAbility(FlyingAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SpoilsOfBloodHorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/SpoilsOfBloodHorrorToken.java new file mode 100644 index 0000000000..6a8761563a --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SpoilsOfBloodHorrorToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SpoilsOfBloodHorrorToken extends Token { + + public SpoilsOfBloodHorrorToken() { + this(1); + } + public SpoilsOfBloodHorrorToken(int xValue) { + super("Horror", "X/X black Horror creature token"); + setOriginalExpansionSetCode("C14"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Horror"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SpyMasterGoblinToken.java b/Mage/src/main/java/mage/game/permanent/token/SpyMasterGoblinToken.java new file mode 100644 index 0000000000..3c2d3aca43 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SpyMasterGoblinToken.java @@ -0,0 +1,64 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.combat.AttacksIfAbleAllEffect; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerPredicate; + +/** + * + * @author spjspj + */ +public class SpyMasterGoblinToken extends Token { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control"); + + static { + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public SpyMasterGoblinToken() { + super("Goblin", "1/1 red Goblin creature token with \"Creatures you control attack each combat if able.\""); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Goblin"); + power = new MageInt(1); + toughness = new MageInt(1); + + Effect effect = new AttacksIfAbleAllEffect(filter, Duration.WhileOnBattlefield, true); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/StitcherGeralfZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/StitcherGeralfZombieToken.java new file mode 100644 index 0000000000..6b0318cacc --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/StitcherGeralfZombieToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class StitcherGeralfZombieToken extends Token { + + public StitcherGeralfZombieToken() { + this(1); + } + public StitcherGeralfZombieToken(int xValue) { + super("Zombie", "X/X blue Zombie creature token"); + setOriginalExpansionSetCode("C14"); + setTokenType(1); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Zombie"); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/StitchersApprenticeHomunculusToken.java b/Mage/src/main/java/mage/game/permanent/token/StitchersApprenticeHomunculusToken.java new file mode 100644 index 0000000000..c7d255ebee --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/StitchersApprenticeHomunculusToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class StitchersApprenticeHomunculusToken extends Token { + + public StitchersApprenticeHomunculusToken() { + super("Homunculus", "2/2 blue Homunculus creature"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Homunculus"); + power = new MageInt(2); + toughness = new MageInt(2); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/StoneTrapIdolToken.java b/Mage/src/main/java/mage/game/permanent/token/StoneTrapIdolToken.java new file mode 100644 index 0000000000..40d56412f9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/StoneTrapIdolToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; + +/** + * + * @author spjspj + */ +public class StoneTrapIdolToken extends Token { + + public StoneTrapIdolToken() { + super("Construct", "6/12 colorless Construct artifact creature token with trample"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + subtype.add("Construct"); + power = new MageInt(6); + toughness = new MageInt(12); + addAbility(TrampleAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SubterraneanTremorsLizardToken.java b/Mage/src/main/java/mage/game/permanent/token/SubterraneanTremorsLizardToken.java new file mode 100644 index 0000000000..6ffe45639c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SubterraneanTremorsLizardToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SubterraneanTremorsLizardToken extends Token { + + public SubterraneanTremorsLizardToken() { + super("Lizard", "an 8/8 red Lizard creature token"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Lizard"); + power = new MageInt(8); + toughness = new MageInt(8); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SwanSongBirdToken.java b/Mage/src/main/java/mage/game/permanent/token/SwanSongBirdToken.java new file mode 100644 index 0000000000..adbff44b4e --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SwanSongBirdToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class SwanSongBirdToken extends Token { + + public SwanSongBirdToken() { + super("Bird", "2/2 blue Bird creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Bird"); + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C16")) { + setTokenType(2); + } + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SylvanOfferingTreefolkToken.java b/Mage/src/main/java/mage/game/permanent/token/SylvanOfferingTreefolkToken.java new file mode 100644 index 0000000000..729f3562b5 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SylvanOfferingTreefolkToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class SylvanOfferingTreefolkToken extends Token { + + public SylvanOfferingTreefolkToken() { + this(1); + } + public SylvanOfferingTreefolkToken(int xValue) { + super("Treefolk", "X/X green Treefolk creature token"); + setOriginalExpansionSetCode("C14"); + cardType.add(CardType.CREATURE); + subtype.add("Treefolk"); + color.setGreen(true); + power = new MageInt(xValue); + toughness = new MageInt(xValue); + + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TatsumaDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/TatsumaDragonToken.java new file mode 100644 index 0000000000..ca12f17821 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TatsumaDragonToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class TatsumaDragonToken extends Token { + + public TatsumaDragonToken() { + super("Dragon Spirit", "5/5 blue Dragon Spirit creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Dragon"); + subtype.add("Spirit"); + power = new MageInt(5); + toughness = new MageInt(5); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TemptWithVengeanceElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/TemptWithVengeanceElementalToken.java new file mode 100644 index 0000000000..f3a633e7de --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TemptWithVengeanceElementalToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class TemptWithVengeanceElementalToken extends Token { + + public TemptWithVengeanceElementalToken() { + super("Elemental", "1/1 red Elemental creature tokens with haste"); + cardType.add(CardType.CREATURE); + subtype.add("Elemental"); + + color.setRed(true); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TetraviteToken.java b/Mage/src/main/java/mage/game/permanent/token/TetraviteToken.java new file mode 100644 index 0000000000..77cb3670c0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TetraviteToken.java @@ -0,0 +1,80 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.StaticAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.Zone; +import mage.game.Game; + +/** + * + * @author spjspj + */ +public class TetraviteToken extends Token { + + public TetraviteToken() { + super("Tetravite", "1/1 colorless Tetravite artifact creature token"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + subtype.add("Tetravite"); + power = new MageInt(1); + toughness = new MageInt(1); + + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(new CantBeEnchantedAbility()); + } +} + +class CantBeEnchantedAbility extends StaticAbility { + + public CantBeEnchantedAbility() { + super(Zone.BATTLEFIELD, null); + } + + public CantBeEnchantedAbility(final CantBeEnchantedAbility ability) { + super(ability); + } + + @Override + public CantBeEnchantedAbility copy() { + return new CantBeEnchantedAbility(this); + } + + public boolean canTarget(MageObject source, Game game) { + if (source.isEnchantment() + && source.hasSubtype("Aura", game)) { + return false; + } + return true; + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TeysaEnvoyOfGhostsToken.java b/Mage/src/main/java/mage/game/permanent/token/TeysaEnvoyOfGhostsToken.java new file mode 100644 index 0000000000..9cce86a93f --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TeysaEnvoyOfGhostsToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class TeysaEnvoyOfGhostsToken extends Token { + + public TeysaEnvoyOfGhostsToken() { + super("Spirit", "1/1 white and black Spirit creature token with flying"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + color.setBlack(true); + subtype.add("Spirit"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ThopterToken.java b/Mage/src/main/java/mage/game/permanent/token/ThopterToken.java new file mode 100644 index 0000000000..2f8b852b1d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ThopterToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class ThopterToken extends Token { + + public ThopterToken() { + super("Thopter", "1/1 blue Thopter artifact creature tokens with flying"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ARTIFACT); + color.setBlue(true); + subtype.add("Thopter"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TidalWaveWallToken.java b/Mage/src/main/java/mage/game/permanent/token/TidalWaveWallToken.java new file mode 100644 index 0000000000..75248c19fd --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TidalWaveWallToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; + +/** + * + * @author spjspj + */ +public class TidalWaveWallToken extends Token { + + public TidalWaveWallToken() { + super("Wall", "5/5 blue Wall creature token with defender"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Wall"); + power = new MageInt(5); + toughness = new MageInt(5); + this.addAbility(DefenderAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TitanForgeGolemToken.java b/Mage/src/main/java/mage/game/permanent/token/TitanForgeGolemToken.java new file mode 100644 index 0000000000..9256c43ee8 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TitanForgeGolemToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class TitanForgeGolemToken extends Token { + + public TitanForgeGolemToken() { + super("Golem", "9/9 colorless Golem artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Golem"); + power = new MageInt(9); + toughness = new MageInt(9); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TitaniaProtectorOfArgothElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/TitaniaProtectorOfArgothElementalToken.java new file mode 100644 index 0000000000..cf8ca8b732 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TitaniaProtectorOfArgothElementalToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; + +/** + * + * @author spjspj + */ +public class TitaniaProtectorOfArgothElementalToken extends Token { + + public TitaniaProtectorOfArgothElementalToken() { + super("Elemental", "5/3 green Elemental creature token"); + this.setOriginalExpansionSetCode("C14"); + this.cardType.add(CardType.CREATURE); + this.color = ObjectColor.GREEN; + this.subtype.add("Elemental"); + + this.power = new MageInt(5); + this.toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TreefolkShamanToken.java b/Mage/src/main/java/mage/game/permanent/token/TreefolkShamanToken.java new file mode 100644 index 0000000000..611c016ade --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TreefolkShamanToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class TreefolkShamanToken extends Token { + + public TreefolkShamanToken() { + super("Treefolk Shaman", "2/5 green Treefolk Shaman creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Treefolk"); + subtype.add("Shaman"); + power = new MageInt(2); + toughness = new MageInt(5); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TriskelaviteToken.java b/Mage/src/main/java/mage/game/permanent/token/TriskelaviteToken.java new file mode 100644 index 0000000000..eeb361288d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TriskelaviteToken.java @@ -0,0 +1,61 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.Zone; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author spjspj + */ +public class TriskelaviteToken extends Token { + + public TriskelaviteToken() { + super("Triskelavite", "1/1 colorless Triskelavite artifact creature token with flying. It has \"Sacrifice this creature: This creature deals 1 damage to target creature or player.\""); + this.setOriginalExpansionSetCode("TSP"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Triskelavite"); + power = new MageInt(1); + toughness = new MageInt(1); + + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new SacrificeSourceCost()); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(ability); + + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TuktukTheReturnedToken.java b/Mage/src/main/java/mage/game/permanent/token/TuktukTheReturnedToken.java new file mode 100644 index 0000000000..d227c25b00 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TuktukTheReturnedToken.java @@ -0,0 +1,54 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.constants.SuperType; + +/** + * + * @author spjspj + */ +public class TuktukTheReturnedToken extends Token { + + public TuktukTheReturnedToken() { + this("ZEN"); + } + + public TuktukTheReturnedToken(String setCode) { + super("Tuktuk the Returned", "legendary 5/5 colorless Goblin Golem artifact creature token"); + setOriginalExpansionSetCode(setCode); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + addSuperType(SuperType.LEGENDARY); + subtype.add("Goblin"); + power = new MageInt(5); + toughness = new MageInt(5); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/TuskenRaiderToken.java b/Mage/src/main/java/mage/game/permanent/token/TuskenRaiderToken.java new file mode 100644 index 0000000000..2b97409929 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TuskenRaiderToken.java @@ -0,0 +1,46 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class TuskenRaiderToken extends Token { + + public TuskenRaiderToken() { + super("Tusken Raider", "white Tusken Raider creature token", 1, 1); + this.setOriginalExpansionSetCode("SWS"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Tusken"); + subtype.add("Raider"); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/UramiToken.java b/Mage/src/main/java/mage/game/permanent/token/UramiToken.java new file mode 100644 index 0000000000..ba6f678aeb --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/UramiToken.java @@ -0,0 +1,54 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.SuperType; + +/** + * + * @author spjspj + */ +public class UramiToken extends Token { + + public UramiToken() { + super("Urami", "legendary 5/5 black Demon Spirit creature token with flying named Urami"); + cardType.add(CardType.CREATURE); + subtype.add("Demon"); + subtype.add("Spirit"); + addSuperType(SuperType.LEGENDARY); + + color.setBlack(true); + power = new MageInt(5); + toughness = new MageInt(5); + + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/UtvaraHellkiteDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/UtvaraHellkiteDragonToken.java new file mode 100644 index 0000000000..24add4555b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/UtvaraHellkiteDragonToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class UtvaraHellkiteDragonToken extends Token { + + public UtvaraHellkiteDragonToken() { + super("Dragon", "6/6 red Dragon creature token with flying"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Dragon"); + power = new MageInt(6); + toughness = new MageInt(6); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/VampireToken.java b/Mage/src/main/java/mage/game/permanent/token/VampireToken.java new file mode 100644 index 0000000000..d415b9a969 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/VampireToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class VampireToken extends Token { + + public VampireToken() { + super("Vampire", "2/2 black Vampire creature token with flying"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Vampire"); + power = new MageInt(2); + toughness = new MageInt(2); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/VoiceOfResurgenceToken.java b/Mage/src/main/java/mage/game/permanent/token/VoiceOfResurgenceToken.java new file mode 100644 index 0000000000..98bce08daf --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/VoiceOfResurgenceToken.java @@ -0,0 +1,59 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author spjspj + */ +public class VoiceOfResurgenceToken extends Token { + + public VoiceOfResurgenceToken() { + super("Elemental", "X/X green and white Elemental creature with with \"This creature's power and toughness are each equal to the number of creatures you control."); + setOriginalExpansionSetCode("DGM"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + color.setWhite(true); + subtype.add("Elemental"); + + power = new MageInt(0); + toughness = new MageInt(0); + + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect( + new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), Duration.EndOfGame))); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/VoiceOfTheWoodsElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/VoiceOfTheWoodsElementalToken.java new file mode 100644 index 0000000000..a6f02b781d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/VoiceOfTheWoodsElementalToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; + +/** + * + * @author spjspj + */ +public class VoiceOfTheWoodsElementalToken extends Token { + + public VoiceOfTheWoodsElementalToken() { + super("Elemental", "7/7 green Elemental creature token with trample"); + this.setOriginalExpansionSetCode("EVG"); + cardType.add(CardType.CREATURE); + subtype.add("Elemental"); + + color.setGreen(true); + power = new MageInt(7); + toughness = new MageInt(7); + + addAbility(TrampleAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/VojaToken.java b/Mage/src/main/java/mage/game/permanent/token/VojaToken.java new file mode 100644 index 0000000000..32d81c47de --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/VojaToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.constants.SuperType; + +/** + * + * @author spjspj + */ +public class VojaToken extends Token { + + public VojaToken() { + super("Voja", "legendary 2/2 green and white Wolf creature token named Voja"); + this.cardType.add(CardType.CREATURE); + addSuperType(SuperType.LEGENDARY); + this.subtype.add("Wolf"); + + this.color.setGreen(true); + this.color.setWhite(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/VolrathsLaboratoryToken.java b/Mage/src/main/java/mage/game/permanent/token/VolrathsLaboratoryToken.java new file mode 100644 index 0000000000..a58e44e0fc --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/VolrathsLaboratoryToken.java @@ -0,0 +1,55 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.ObjectColor; + +/** + * + * @author spjspj + */ +public class VolrathsLaboratoryToken extends Token { + + public VolrathsLaboratoryToken() { + this(null, null); + } + public VolrathsLaboratoryToken(ObjectColor color, String type) { + super(type, "2/2 creature token of the chosen color and type"); + cardType.add(CardType.CREATURE); + if (color != null) { + this.color.setColor(color); + } + if (type != null) { + subtype.add(type); + } + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WaitingInTheWeedsCatToken.java b/Mage/src/main/java/mage/game/permanent/token/WaitingInTheWeedsCatToken.java new file mode 100644 index 0000000000..940e0b913b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WaitingInTheWeedsCatToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class WaitingInTheWeedsCatToken extends Token { + + public WaitingInTheWeedsCatToken() { + super("Cat", "1/1 green Cat creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Cat"); + power = new MageInt(1); + toughness = new MageInt(1); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WalkerOfTheGroveToken.java b/Mage/src/main/java/mage/game/permanent/token/WalkerOfTheGroveToken.java new file mode 100644 index 0000000000..58273ff4d0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WalkerOfTheGroveToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class WalkerOfTheGroveToken extends Token { + + public WalkerOfTheGroveToken() { + super("Elemental", "4/4 green Elemental creature token"); + cardType.add(CardType.CREATURE); + this.subtype.add("Elemental"); + this.color.setGreen(true); + power = new MageInt(4); + toughness = new MageInt(4); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WallToken.java b/Mage/src/main/java/mage/game/permanent/token/WallToken.java new file mode 100644 index 0000000000..97c11904d6 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WallToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; + +/** + * + * @author spjspj + */ +public class WallToken extends Token { + + public WallToken() { + super("", "2/6 white wall creature with defender"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Wall"); + power = new MageInt(2); + toughness = new MageInt(6); + this.addAbility(DefenderAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WandOfTheElementsFirstToken.java b/Mage/src/main/java/mage/game/permanent/token/WandOfTheElementsFirstToken.java new file mode 100644 index 0000000000..c89f41b77d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WandOfTheElementsFirstToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class WandOfTheElementsFirstToken extends Token { + + public WandOfTheElementsFirstToken() { + super("Elemental", "2/2 blue Elemental creature token with flying"); + cardType.add(CardType.CREATURE); + this.subtype.add("Elemental"); + this.color.setBlue(true); + power = new MageInt(2); + toughness = new MageInt(2); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WandOfTheElementsSecondToken.java b/Mage/src/main/java/mage/game/permanent/token/WandOfTheElementsSecondToken.java new file mode 100644 index 0000000000..d897d79aa3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WandOfTheElementsSecondToken.java @@ -0,0 +1,47 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class WandOfTheElementsSecondToken extends Token { + + public WandOfTheElementsSecondToken() { + super("Elemental", "3/3 red Elemental creature token"); + cardType.add(CardType.CREATURE); + this.subtype.add("Elemental"); + this.color.setRed(true); + power = new MageInt(3); + toughness = new MageInt(3); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WaspToken.java b/Mage/src/main/java/mage/game/permanent/token/WaspToken.java new file mode 100644 index 0000000000..97c1e42c1d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WaspToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class WaspToken extends Token { + + public WaspToken() { + super("Wasp", "1/1 colorless Insect artifact creature token with flying"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + this.subtype.add("Insect"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WeirdToken.java b/Mage/src/main/java/mage/game/permanent/token/WeirdToken.java new file mode 100644 index 0000000000..fe86f0e12e --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WeirdToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class WeirdToken extends Token { + + public WeirdToken() { + super("Weird", "3/3 blue Weird create token with defender and flying"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + subtype.add("Weird"); + power = new MageInt(3); + toughness = new MageInt(3); + this.addAbility(DefenderAbility.getInstance()); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WhiteElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/WhiteElementalToken.java new file mode 100644 index 0000000000..307216bc78 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WhiteElementalToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class WhiteElementalToken extends Token { + + public WhiteElementalToken() { + super("Elemental", "4/4 white Elemental creature token with flying"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Elemental"); + power = new MageInt(4); + toughness = new MageInt(4); + setTokenType(2); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WingmateRocToken.java b/Mage/src/main/java/mage/game/permanent/token/WingmateRocToken.java new file mode 100644 index 0000000000..35160cc87c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WingmateRocToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class WingmateRocToken extends Token { + + public WingmateRocToken() { + super("Bird", "3/4 white Bird creature token with flying"); + cardType.add(CardType.CREATURE); + subtype.add("Bird"); + color.setWhite(true); + power = new MageInt(3); + toughness = new MageInt(4); + addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WireflyToken.java b/Mage/src/main/java/mage/game/permanent/token/WireflyToken.java new file mode 100644 index 0000000000..ff0800e20b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WireflyToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author spjspj + */ +public class WireflyToken extends Token { + + public WireflyToken() { + super("Wirefly", "2/2 colorless Insect artifact creature token with flying named Wirefly"); + this.setOriginalExpansionSetCode("DST"); + this.getPower().modifyBaseValue(2); + this.getToughness().modifyBaseValue(2); + this.getSubtype(null).add("Insect"); + this.addCardType(CardType.ARTIFACT); + this.addCardType(CardType.CREATURE); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WoodToken.java b/Mage/src/main/java/mage/game/permanent/token/WoodToken.java new file mode 100644 index 0000000000..30a94db9f1 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WoodToken.java @@ -0,0 +1,51 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; + +/** + * + * @author spjspj + */ +public class WoodToken extends Token { + + public WoodToken() { + super("Wood", "0/1 green Wall creature token with defender named Wood"); + this.setOriginalExpansionSetCode("MIR"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Wall"); + power = new MageInt(0); + toughness = new MageInt(1); + + this.addAbility(DefenderAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WormHarvestToken.java b/Mage/src/main/java/mage/game/permanent/token/WormHarvestToken.java new file mode 100644 index 0000000000..9a8758f6b3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WormHarvestToken.java @@ -0,0 +1,48 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class WormHarvestToken extends Token { + + public WormHarvestToken() { + super("Worm", "1/1 black and green Worm creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + color.setGreen(true); + subtype.add("Worm"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WortTheRaidmotherToken.java b/Mage/src/main/java/mage/game/permanent/token/WortTheRaidmotherToken.java new file mode 100644 index 0000000000..9da6bc318b --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WortTheRaidmotherToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class WortTheRaidmotherToken extends Token { + + public WortTheRaidmotherToken() { + super("Goblin Warrior", "1/1 red and green Goblin Warrior creature token"); + cardType.add(CardType.CREATURE); + color.setRed(true); + color.setGreen(true); + subtype.add("Goblin"); + subtype.add("Warrior"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/Wurm1Token.java b/Mage/src/main/java/mage/game/permanent/token/Wurm1Token.java new file mode 100644 index 0000000000..46a488bfe3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/Wurm1Token.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; + +/** + * + * @author spjspj + */ +public class Wurm1Token extends Token { + + public Wurm1Token(String setCode) { + super("Wurm", "3/3 colorless Wurm artifact creature token with deathtouch"); + setOriginalExpansionSetCode(setCode); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Wurm"); + power = new MageInt(3); + toughness = new MageInt(3); + this.addAbility(DeathtouchAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/Wurm2Token.java b/Mage/src/main/java/mage/game/permanent/token/Wurm2Token.java new file mode 100644 index 0000000000..67c919be21 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/Wurm2Token.java @@ -0,0 +1,56 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.LifelinkAbility; + +/** + * + * @author spjspj + */ +public class Wurm2Token extends Token { + + public Wurm2Token() { + this("MBS"); + } + + public Wurm2Token(String setCode) { + super("Wurm", "3/3 colorless Wurm artifact creature token with lifelink"); + setOriginalExpansionSetCode(setCode); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Wurm"); + power = new MageInt(3); + toughness = new MageInt(3); + this.addAbility(LifelinkAbility.getInstance()); + + setTokenType(2); // for image + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmCallingWurmToken.java b/Mage/src/main/java/mage/game/permanent/token/WurmCallingWurmToken.java new file mode 100644 index 0000000000..94dbd14c33 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WurmCallingWurmToken.java @@ -0,0 +1,46 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; + +/** + * @author spjspj + */ +public class WurmCallingWurmToken extends Token { + + public WurmCallingWurmToken() { + super("Wurm", "X/X green Wurm creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Wurm"); + power = new MageInt(0); + toughness = new MageInt(0); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/XenagosSatyrToken.java b/Mage/src/main/java/mage/game/permanent/token/XenagosSatyrToken.java new file mode 100644 index 0000000000..19dc537d35 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/XenagosSatyrToken.java @@ -0,0 +1,52 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; + +/** + * + * @author spjspj + */ +public class XenagosSatyrToken extends Token { + + public XenagosSatyrToken() { + super("Satyr", "2/2 red and green Satyr creature token with haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + color.setGreen(true); + subtype.add("Satyr"); + power = new MageInt(2); + toughness = new MageInt(2); + + this.addAbility(HasteAbility.getInstance()); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/YoungPyromancerElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/YoungPyromancerElementalToken.java new file mode 100644 index 0000000000..745e9e5424 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/YoungPyromancerElementalToken.java @@ -0,0 +1,54 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.util.RandomUtil; + +/** + * + * @author spjspj + */ +public class YoungPyromancerElementalToken extends Token { + + public YoungPyromancerElementalToken() { + super("Elemental", "1/1 red Elemental creature"); + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M14")) { + setTokenType(RandomUtil.nextInt(2) + 1); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("EMA")) { + setTokenType(1); + } + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ZektarShrineElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/ZektarShrineElementalToken.java new file mode 100644 index 0000000000..3d1edf8f81 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ZektarShrineElementalToken.java @@ -0,0 +1,51 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.constants.CardType; + +/** + * + * @author spjspj + */ +public class ZektarShrineElementalToken extends Token { + + public ZektarShrineElementalToken() { + super("Elemental", "7/1 red Elemental creature token with trample and haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Elemental"); + power = new MageInt(7); + toughness = new MageInt(1); + addAbility(TrampleAbility.getInstance()); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ZendikarsRoilElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/ZendikarsRoilElementalToken.java new file mode 100644 index 0000000000..aae4360cf8 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ZendikarsRoilElementalToken.java @@ -0,0 +1,49 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ZendikarsRoilElementalToken extends Token { + + public ZendikarsRoilElementalToken() { + super("Elemental", "2/2 green Elemental creature token"); + cardType.add(CardType.CREATURE); + setOriginalExpansionSetCode("ORI"); + subtype.add("Elemental"); + color.setGreen(true); + power = new MageInt(2); + toughness = new MageInt(2); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieWizardToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieWizardToken.java new file mode 100644 index 0000000000..cd56807817 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieWizardToken.java @@ -0,0 +1,50 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com AS IS AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.game.permanent.token; + +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author spjspj + */ +public class ZombieWizardToken extends Token { + + public ZombieWizardToken() { + super("Zombie Wizard", "1/1 blue and black Zombie Wizard creature token"); + cardType.add(CardType.CREATURE); + color.setBlue(true); + color.setBlack(true); + subtype.add("Zombie"); + subtype.add("Wizard"); + power = new MageInt(1); + toughness = new MageInt(1); + } +}