From 66a341e1a2d89f090fedf0ea33cb88d903a44f04 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Sat, 26 Sep 2015 10:09:34 +0300 Subject: [PATCH] Add Bird token and use it for existing cards. --- .../mage/sets/bornofthegods/Ornitharch.java | 21 +----- .../src/mage/sets/dragonsmaze/BeckCall.java | 3 +- .../sets/dragonsmaze/ScionOfVituGhazi.java | 21 +----- .../src/mage/sets/judgment/BattleScreech.java | 21 +----- .../sets/returntoravnica/EyesInTheSkies.java | 21 +----- .../returntoravnica/SellerOfSongbirds.java | 19 +---- .../src/mage/sets/zendikar/EmeriaAngel.java | 15 +--- .../mage/game/permanent/token/BirdToken.java | 69 +++++++++++++++++++ 8 files changed, 84 insertions(+), 106 deletions(-) create mode 100644 Mage/src/mage/game/permanent/token/BirdToken.java diff --git a/Mage.Sets/src/mage/sets/bornofthegods/Ornitharch.java b/Mage.Sets/src/mage/sets/bornofthegods/Ornitharch.java index 4095a37719..971027d4b3 100644 --- a/Mage.Sets/src/mage/sets/bornofthegods/Ornitharch.java +++ b/Mage.Sets/src/mage/sets/bornofthegods/Ornitharch.java @@ -40,7 +40,7 @@ import mage.abilities.keyword.TributeAbility; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.BirdToken; /** * @@ -63,7 +63,7 @@ public class Ornitharch extends CardImpl { // When Ornitharch enters the battlefield, if tribute wasn't paid, put two 1/1 white Bird creature tokens with flying onto the battlefield. TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BirdToken(), 2), false); this.addAbility(new ConditionalTriggeredAbility(ability, TributeNotPaidCondition.getInstance(), - "When {this} enters the battlefield, if its tribute wasn't paid, put two 1/1 white Bird creature tokens with flying onto the battlefield.")); + "When {this} enters the battlefield, if its tribute wasn't paid, put two 1/1 white Bird creature tokens with flying onto the battlefield.")); } public Ornitharch(final Ornitharch card) { @@ -75,20 +75,3 @@ public class Ornitharch extends CardImpl { return new Ornitharch(this); } } - -class BirdToken extends Token { - - public BirdToken() { - super("Bird", "1/1 white Bird creature tokens with flying"); - this.setOriginalExpansionSetCode("BNG"); - cardType.add(CardType.CREATURE); - color.setWhite(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/sets/dragonsmaze/BeckCall.java b/Mage.Sets/src/mage/sets/dragonsmaze/BeckCall.java index 8bed02cb90..45ce77a917 100644 --- a/Mage.Sets/src/mage/sets/dragonsmaze/BeckCall.java +++ b/Mage.Sets/src/mage/sets/dragonsmaze/BeckCall.java @@ -39,9 +39,10 @@ import mage.constants.Duration; import mage.constants.Rarity; import mage.filter.common.FilterCreaturePermanent; 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.BirdToken; diff --git a/Mage.Sets/src/mage/sets/dragonsmaze/ScionOfVituGhazi.java b/Mage.Sets/src/mage/sets/dragonsmaze/ScionOfVituGhazi.java index 1bc24f70cd..23e1bcc6bd 100644 --- a/Mage.Sets/src/mage/sets/dragonsmaze/ScionOfVituGhazi.java +++ b/Mage.Sets/src/mage/sets/dragonsmaze/ScionOfVituGhazi.java @@ -29,8 +29,6 @@ package mage.sets.dragonsmaze; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,9 +36,10 @@ import mage.abilities.condition.common.CastFromHandCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.PopulateEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.BirdToken; import mage.watchers.common.CastFromHandWatcher; /** @@ -77,17 +76,3 @@ public class ScionOfVituGhazi extends CardImpl { } } - - -class BirdToken extends Token { - public BirdToken() { - super("Bird", "1/1 white Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Bird"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - setOriginalExpansionSetCode("RTR"); - } -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/judgment/BattleScreech.java b/Mage.Sets/src/mage/sets/judgment/BattleScreech.java index 316c620ae7..f78dc5a738 100644 --- a/Mage.Sets/src/mage/sets/judgment/BattleScreech.java +++ b/Mage.Sets/src/mage/sets/judgment/BattleScreech.java @@ -28,12 +28,10 @@ package mage.sets.judgment; import java.util.UUID; -import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlashbackAbility; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; @@ -42,7 +40,7 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.TappedPredicate; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.BirdToken; import mage.target.common.TargetControlledCreaturePermanent; /** @@ -79,20 +77,3 @@ public class BattleScreech extends CardImpl { return new BattleScreech(this); } } - -class BirdToken extends Token { - - public BirdToken() { - super("Bird", "1/1 white Bird creature tokens with flying"); - this.setOriginalExpansionSetCode("BNG"); - cardType.add(CardType.CREATURE); - color.setWhite(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/sets/returntoravnica/EyesInTheSkies.java b/Mage.Sets/src/mage/sets/returntoravnica/EyesInTheSkies.java index 4529c5edf7..d94927b40e 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/EyesInTheSkies.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/EyesInTheSkies.java @@ -28,14 +28,12 @@ package mage.sets.returntoravnica; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.PopulateEffect; -import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.BirdToken; /** * @@ -47,7 +45,6 @@ public class EyesInTheSkies extends CardImpl { super(ownerId, 10, "Eyes in the Skies", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{3}{W}"); this.expansionSetCode = "RTR"; - // Put a 1/1 white Bird creature token with flying onto the battlefield, then populate. // (Put a token onto the battlefield that's a copy of a creature token you control.) this.getSpellAbility().addEffect(new CreateTokenEffect(new BirdToken())); @@ -62,17 +59,5 @@ public class EyesInTheSkies extends CardImpl { public EyesInTheSkies copy() { return new EyesInTheSkies(this); } - private class BirdToken extends Token { - - public BirdToken() { - super("Bird", "1/1 white Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Bird"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/sets/returntoravnica/SellerOfSongbirds.java b/Mage.Sets/src/mage/sets/returntoravnica/SellerOfSongbirds.java index b4209fc67c..b56d095548 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/SellerOfSongbirds.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/SellerOfSongbirds.java @@ -28,14 +28,14 @@ package mage.sets.returntoravnica; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.game.permanent.token.Token; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.BirdToken; /** * @author LevelX2 @@ -63,17 +63,4 @@ public class SellerOfSongbirds extends CardImpl { public SellerOfSongbirds copy() { return new SellerOfSongbirds(this); } - - private class BirdToken extends Token { - - public BirdToken() { - super("Bird", "1/1 white Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Bird"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - } - } } diff --git a/Mage.Sets/src/mage/sets/zendikar/EmeriaAngel.java b/Mage.Sets/src/mage/sets/zendikar/EmeriaAngel.java index 31e8870245..bd80adab15 100644 --- a/Mage.Sets/src/mage/sets/zendikar/EmeriaAngel.java +++ b/Mage.Sets/src/mage/sets/zendikar/EmeriaAngel.java @@ -36,7 +36,7 @@ import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; -import mage.game.permanent.token.Token; +import mage.game.permanent.token.BirdToken; /** * @@ -66,16 +66,3 @@ public class EmeriaAngel extends CardImpl { } } - -class BirdToken extends Token { - - public BirdToken() { - super("Bird", "1/1 white Bird creature token with flying"); - cardType.add(CardType.CREATURE); - color.setWhite(true); - subtype.add("Bird"); - power = new MageInt(1); - toughness = new MageInt(1); - addAbility(FlyingAbility.getInstance()); - } -} \ No newline at end of file diff --git a/Mage/src/mage/game/permanent/token/BirdToken.java b/Mage/src/mage/game/permanent/token/BirdToken.java new file mode 100644 index 0000000000..9100fd4e31 --- /dev/null +++ b/Mage/src/mage/game/permanent/token/BirdToken.java @@ -0,0 +1,69 @@ +/* +* 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.Arrays; +import mage.constants.CardType; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; + +/** + * + * @author LoneFox + */ +public class BirdToken extends Token { + + public BirdToken() { + super("Bird", "1/1 white Bird creature token with flying"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Bird"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(FlyingAbility.getInstance()); + availableImageSetCodes.addAll(Arrays.asList("BNG", "RTR", "ZEN")); + } + + public BirdToken(final BirdToken token) { + super(token); + } + + @Override + public BirdToken copy() { + return new BirdToken(this); + } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + if (getOriginalExpansionSetCode().equals("BNG")) { + this.setTokenType(1); + } + } +}