mirror of
https://github.com/correl/mage.git
synced 2025-01-01 03:00:12 +00:00
Merge pull request #49 from magefree/master
Merge https://github.com/magefree/mage
This commit is contained in:
commit
eeaa9a34b4
615 changed files with 5927 additions and 982 deletions
|
@ -401,6 +401,7 @@ public class MageBook extends JComponent {
|
|||
cardDimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight);
|
||||
}
|
||||
PermanentToken newToken = new PermanentToken(token, null, token.getOriginalExpansionSetCode(), null);
|
||||
newToken.removeSummoningSickness();
|
||||
PermanentView theToken = new PermanentView(newToken, null, null, null);
|
||||
theToken.setInViewerOnly(true);
|
||||
final MageCard cardImg = Plugins.instance.getMagePermanent(theToken, bigCard, cardDimension, gameId, true);
|
||||
|
@ -650,7 +651,7 @@ public class MageBook extends JComponent {
|
|||
}
|
||||
}
|
||||
|
||||
public void updateSize(String size) {
|
||||
public void updateSize(String size){
|
||||
switch (size) {
|
||||
case LAYOUT_3x3:
|
||||
this.conf = new _3x3Configuration();
|
||||
|
|
|
@ -46,6 +46,7 @@ import mage.game.Game;
|
|||
import mage.game.command.Emblem;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.PermanentToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.game.stack.StackAbility;
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.ColoredManaSymbol;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -78,7 +79,7 @@ public class AbhorrentOverlord extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class AbhorrentOverlordHarpyToken extends Token {
|
||||
class AbhorrentOverlordHarpyToken extends TokenImpl {
|
||||
|
||||
public AbhorrentOverlordHarpyToken() {
|
||||
super("Harpy", "1/1 black Harpy creature tokens with flying");
|
||||
|
@ -90,4 +91,11 @@ class AbhorrentOverlordHarpyToken extends Token {
|
|||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public AbhorrentOverlordHarpyToken(final AbhorrentOverlordHarpyToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AbhorrentOverlordHarpyToken copy() {
|
||||
return new AbhorrentOverlordHarpyToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,11 +22,12 @@ public class AcademyDrake extends CardImpl {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
|
||||
// Kicker {4}
|
||||
this.addAbility(new KickerAbility("{4}"));
|
||||
|
||||
// Flying
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// If Academy Drake was kicked, it enters the battlefield with two +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
|
||||
KickedCondition.instance, "If {this} was kicked, it enters the battlefield with two +1/+1 counters on it.", ""));
|
||||
|
|
|
@ -47,6 +47,7 @@ import mage.filter.common.FilterControlledCreaturePermanent;
|
|||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -88,7 +89,7 @@ public class AjaniGoldmane extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class AvatarToken extends Token {
|
||||
class AvatarToken extends TokenImpl {
|
||||
|
||||
public AvatarToken() {
|
||||
super("Avatar", "white Avatar creature token with \"This creature's power and toughness are each equal to your life total.\"");
|
||||
|
@ -97,7 +98,13 @@ class AvatarToken extends Token {
|
|||
color.setWhite(true);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AvatarTokenEffect()));
|
||||
}
|
||||
public AvatarToken(final AvatarToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AvatarToken copy() {
|
||||
return new AvatarToken(this);
|
||||
}
|
||||
}
|
||||
|
||||
class AvatarTokenEffect extends ContinuousEffectImpl {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.filter.common.FilterControlledEnchantmentPermanent;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.CatToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ import mage.game.events.DamagedPlayerEvent;
|
|||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -84,7 +85,7 @@ class AkkiLavarunnerAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class TokTokVolcanoBorn extends Token {
|
||||
class TokTokVolcanoBorn extends TokenImpl {
|
||||
TokTokVolcanoBorn() {
|
||||
super("Tok-Tok, Volcano Born", "");
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
|
@ -97,6 +98,13 @@ class TokTokVolcanoBorn extends Token {
|
|||
this.addAbility(ProtectionAbility.from(ObjectColor.RED));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new TokTokVolcanoBornEffect()));
|
||||
}
|
||||
public TokTokVolcanoBorn(final TokTokVolcanoBorn token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public TokTokVolcanoBorn copy() {
|
||||
return new TokTokVolcanoBorn(this);
|
||||
}
|
||||
}
|
||||
|
||||
class TokTokVolcanoBornEffect extends ReplacementEffectImpl {
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.*;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.SoldierToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.Target;
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.*;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -89,7 +90,7 @@ public class AmbushCommander extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class AmbushCommanderToken extends Token {
|
||||
class AmbushCommanderToken extends TokenImpl {
|
||||
|
||||
public AmbushCommanderToken() {
|
||||
super("Elf", "1/1 green Elf creatures");
|
||||
|
@ -99,5 +100,12 @@ class AmbushCommanderToken extends Token {
|
|||
toughness = new MageInt(1);
|
||||
color.setGreen(true);
|
||||
}
|
||||
public AmbushCommanderToken(final AmbushCommanderToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AmbushCommanderToken copy() {
|
||||
return new AmbushCommanderToken(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -62,7 +63,7 @@ public class AngelsTomb extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class AngelTombToken extends Token {
|
||||
class AngelTombToken extends TokenImpl {
|
||||
|
||||
public AngelTombToken() {
|
||||
super("", "3/3 white Angel artifact creature with flying");
|
||||
|
@ -75,4 +76,11 @@ class AngelTombToken extends Token {
|
|||
toughness = new MageInt(3);
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public AngelTombToken(final AngelTombToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AngelTombToken copy() {
|
||||
return new AngelTombToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
||||
|
@ -61,7 +62,7 @@ public class AnimateLand extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class AnimatedLand extends Token {
|
||||
class AnimatedLand extends TokenImpl {
|
||||
|
||||
public AnimatedLand() {
|
||||
super("", "3/3 creature");
|
||||
|
@ -69,4 +70,11 @@ class AnimatedLand extends Token {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
}
|
||||
public AnimatedLand(final AnimatedLand token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AnimatedLand copy() {
|
||||
return new AnimatedLand(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
|
@ -73,7 +74,7 @@ public class AnthousaSetessanHero extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class AnthousaWarriorToken extends Token {
|
||||
class AnthousaWarriorToken extends TokenImpl {
|
||||
|
||||
public AnthousaWarriorToken() {
|
||||
super("", "2/2 Warrior creatures");
|
||||
|
@ -82,5 +83,12 @@ class AnthousaWarriorToken extends Token {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
}
|
||||
public AnthousaWarriorToken(final AnthousaWarriorToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AnthousaWarriorToken copy() {
|
||||
return new AnthousaWarriorToken(this);
|
||||
}
|
||||
|
||||
}
|
85
Mage.Sets/src/mage/cards/a/ArvadTheCursed.java
Normal file
85
Mage.Sets/src/mage/cards/a/ArvadTheCursed.java
Normal file
|
@ -0,0 +1,85 @@
|
|||
/*
|
||||
* 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.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Rystan
|
||||
*/
|
||||
public class ArvadTheCursed extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creatures you control");
|
||||
|
||||
static {
|
||||
filter.add(new SupertypePredicate(SuperType.LEGENDARY));
|
||||
}
|
||||
|
||||
public ArvadTheCursed(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{B}");
|
||||
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
this.subtype.add(SubType.KNIGHT);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Deathtouch
|
||||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
// Lifelink
|
||||
this.addAbility(LifelinkAbility.getInstance());
|
||||
|
||||
// Other legendary creatures you control get +2/+2.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, filter, true)));
|
||||
}
|
||||
|
||||
public ArvadTheCursed(final ArvadTheCursed card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArvadTheCursed copy() {
|
||||
return new ArvadTheCursed(this);
|
||||
}
|
||||
}
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -70,7 +71,7 @@ public class AtarkaMonument extends CardImpl {
|
|||
return new AtarkaMonument(this);
|
||||
}
|
||||
|
||||
private static class AtarkaMonumentToken extends Token {
|
||||
private static class AtarkaMonumentToken extends TokenImpl {
|
||||
AtarkaMonumentToken() {
|
||||
super("", "4/4 red and green Dragon artifact creature with flying");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -82,5 +83,12 @@ public class AtarkaMonument extends CardImpl {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public AtarkaMonumentToken(final AtarkaMonumentToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AtarkaMonumentToken copy() {
|
||||
return new AtarkaMonumentToken(this);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -39,6 +39,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -78,7 +79,7 @@ public class AwakenTheAncient extends CardImpl {
|
|||
return new AwakenTheAncient(this);
|
||||
}
|
||||
|
||||
private static class GiantToken extends Token {
|
||||
private static class GiantToken extends TokenImpl {
|
||||
|
||||
GiantToken() {
|
||||
super("Giant", "7/7 red Giant creature with haste");
|
||||
|
@ -89,5 +90,13 @@ public class AwakenTheAncient extends CardImpl {
|
|||
toughness = new MageInt(7);
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
}
|
||||
|
||||
public GiantToken(final GiantToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GiantToken copy() {
|
||||
return new GiantToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.constants.*;
|
|||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
||||
|
@ -107,7 +108,7 @@ class AwakenerDruidBecomesCreatureEffect extends BecomesCreatureTargetEffect {
|
|||
}
|
||||
}
|
||||
|
||||
class AwakenerDruidToken extends Token {
|
||||
class AwakenerDruidToken extends TokenImpl {
|
||||
|
||||
public AwakenerDruidToken() {
|
||||
super("", "4/5 green Treefolk creature as long as {this} is on the battlefield");
|
||||
|
@ -117,5 +118,11 @@ class AwakenerDruidToken extends Token {
|
|||
power = new MageInt(4);
|
||||
toughness = new MageInt(5);
|
||||
}
|
||||
public AwakenerDruidToken(final AwakenerDruidToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AwakenerDruidToken copy() {
|
||||
return new AwakenerDruidToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -68,7 +69,7 @@ public class AzoriusKeyrune extends CardImpl {
|
|||
return new AzoriusKeyrune(this);
|
||||
}
|
||||
|
||||
private static class AzoriusKeyruneToken extends Token {
|
||||
private static class AzoriusKeyruneToken extends TokenImpl {
|
||||
AzoriusKeyruneToken() {
|
||||
super("", "2/2 white and blue Bird artifact creature with flying");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -80,5 +81,12 @@ public class AzoriusKeyrune extends CardImpl {
|
|||
toughness = new MageInt(2);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public AzoriusKeyruneToken(final AzoriusKeyruneToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AzoriusKeyruneToken copy() {
|
||||
return new AzoriusKeyruneToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
74
Mage.Sets/src/mage/cards/b/BairdStewardOfArgive.java
Normal file
74
Mage.Sets/src/mage/cards/b/BairdStewardOfArgive.java
Normal file
|
@ -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.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.combat.CantAttackYouUnlessPayManaAllEffect;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author JRHerlehy
|
||||
* Created on 4/4/18.
|
||||
*/
|
||||
public class BairdStewardOfArgive extends CardImpl {
|
||||
|
||||
public BairdStewardOfArgive(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.HUMAN, SubType.SOLDIER);
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
//Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
//Creatures can’t attack you or a planeswalker you control unless their controller pays {1} for each of those creatures.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl("{1}"), true)));
|
||||
}
|
||||
|
||||
public BairdStewardOfArgive(final BairdStewardOfArgive card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BairdStewardOfArgive copy() {
|
||||
return new BairdStewardOfArgive(this);
|
||||
}
|
||||
}
|
|
@ -37,6 +37,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -77,7 +78,7 @@ public class BalduvianConjurer extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class AnimatedLand extends Token {
|
||||
class AnimatedLand extends TokenImpl {
|
||||
|
||||
public AnimatedLand() {
|
||||
super("", "2/2 creature");
|
||||
|
@ -85,4 +86,11 @@ class AnimatedLand extends Token {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
}
|
||||
public AnimatedLand(final AnimatedLand token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AnimatedLand copy() {
|
||||
return new AnimatedLand(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -79,7 +80,7 @@ public class BalduvianFrostwaker extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class BalduvianFrostwakerToken extends Token {
|
||||
class BalduvianFrostwakerToken extends TokenImpl {
|
||||
|
||||
public BalduvianFrostwakerToken() {
|
||||
super("Elemental", "2/2 blue Elemental creature with flying");
|
||||
|
@ -90,4 +91,11 @@ class BalduvianFrostwakerToken extends Token {
|
|||
this.toughness = new MageInt(2);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public BalduvianFrostwakerToken(final BalduvianFrostwakerToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public BalduvianFrostwakerToken copy() {
|
||||
return new BalduvianFrostwakerToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ 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.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
|
|
@ -46,6 +46,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -88,7 +89,7 @@ public class BlinkmothNexus extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class BlinkmothNexusToken extends Token {
|
||||
class BlinkmothNexusToken extends TokenImpl {
|
||||
public BlinkmothNexusToken() {
|
||||
super("Blinkmoth", "1/1 Blinkmoth artifact creature with flying");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -98,4 +99,11 @@ class BlinkmothNexusToken extends Token {
|
|||
toughness = new MageInt(1);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public BlinkmothNexusToken(final BlinkmothNexusToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public BlinkmothNexusToken copy() {
|
||||
return new BlinkmothNexusToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -69,7 +70,7 @@ public class BorosKeyrune extends CardImpl {
|
|||
return new BorosKeyrune(this);
|
||||
}
|
||||
|
||||
private static class BorosKeyruneToken extends Token {
|
||||
private static class BorosKeyruneToken extends TokenImpl {
|
||||
BorosKeyruneToken() {
|
||||
super("Soldier", "1/1 red and white Soldier artifact creature with double strike");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -81,5 +82,12 @@ public class BorosKeyrune extends CardImpl {
|
|||
toughness = new MageInt(1);
|
||||
this.addAbility(DoubleStrikeAbility.getInstance());
|
||||
}
|
||||
public BorosKeyruneToken(final BorosKeyruneToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public BorosKeyruneToken copy() {
|
||||
return new BorosKeyruneToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.game.Game;
|
|||
import mage.game.combat.CombatGroup;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.CatSoldierCreatureToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
|
|
@ -43,6 +43,7 @@ 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.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -111,7 +112,7 @@ class BudokaGardenerEffect extends OneShotEffect {
|
|||
|
||||
}
|
||||
|
||||
class DokaiWeaverofLife extends Token {
|
||||
class DokaiWeaverofLife extends TokenImpl {
|
||||
|
||||
DokaiWeaverofLife() {
|
||||
super("Dokai, Weaver of Life", "");
|
||||
|
@ -127,4 +128,11 @@ class DokaiWeaverofLife extends Token {
|
|||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
public DokaiWeaverofLife(final DokaiWeaverofLife token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DokaiWeaverofLife copy() {
|
||||
return new DokaiWeaverofLife(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.constants.*;
|
|||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -85,7 +86,7 @@ public class BudokaPupil extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class IchigaWhoTopplesOaks extends Token {
|
||||
class IchigaWhoTopplesOaks extends TokenImpl {
|
||||
|
||||
IchigaWhoTopplesOaks() {
|
||||
super("Ichiga, Who Topples Oaks", "");
|
||||
|
@ -107,4 +108,11 @@ class IchigaWhoTopplesOaks extends Token {
|
|||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
public IchigaWhoTopplesOaks(final IchigaWhoTopplesOaks token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public IchigaWhoTopplesOaks copy() {
|
||||
return new IchigaWhoTopplesOaks(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -83,7 +84,7 @@ public class BushiTenderfoot extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class KenzoTheHardhearted extends Token {
|
||||
class KenzoTheHardhearted extends TokenImpl {
|
||||
|
||||
KenzoTheHardhearted() {
|
||||
super("Kenzo the Hardhearted", "");
|
||||
|
@ -98,4 +99,11 @@ class KenzoTheHardhearted extends Token {
|
|||
this.addAbility(DoubleStrikeAbility.getInstance());
|
||||
this.addAbility(new BushidoAbility(2));
|
||||
}
|
||||
public KenzoTheHardhearted(final KenzoTheHardhearted token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public KenzoTheHardhearted copy() {
|
||||
return new KenzoTheHardhearted(this);
|
||||
}
|
||||
}
|
||||
|
|
60
Mage.Sets/src/mage/cards/c/CabalEvangel.java
Normal file
60
Mage.Sets/src/mage/cards/c/CabalEvangel.java
Normal file
|
@ -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.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Rystan
|
||||
*/
|
||||
public class CabalEvangel extends CardImpl {
|
||||
|
||||
public CabalEvangel(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.CLERIC);
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
}
|
||||
|
||||
public CabalEvangel(final CabalEvangel card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CabalEvangel copy() {
|
||||
return new CabalEvangel(this);
|
||||
}
|
||||
}
|
|
@ -49,6 +49,7 @@ import mage.constants.Zone;
|
|||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetSpell;
|
||||
|
||||
|
@ -88,7 +89,7 @@ public class CallowJushi extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class JarakuTheInterloper extends Token {
|
||||
class JarakuTheInterloper extends TokenImpl {
|
||||
|
||||
JarakuTheInterloper() {
|
||||
super("Jaraku the Interloper", "");
|
||||
|
@ -107,4 +108,11 @@ class JarakuTheInterloper extends Token {
|
|||
ability.addTarget(new TargetSpell());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
public JarakuTheInterloper(final JarakuTheInterloper token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public JarakuTheInterloper copy() {
|
||||
return new JarakuTheInterloper(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -71,7 +72,7 @@ public class CelestialColonnade extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class CelestialColonnadeToken extends Token {
|
||||
class CelestialColonnadeToken extends TokenImpl {
|
||||
|
||||
public CelestialColonnadeToken() {
|
||||
super("", "4/4 white and blue Elemental creature with flying and vigilance");
|
||||
|
@ -84,5 +85,12 @@ class CelestialColonnadeToken extends Token {
|
|||
addAbility(FlyingAbility.getInstance());
|
||||
addAbility(VigilanceAbility.getInstance());
|
||||
}
|
||||
public CelestialColonnadeToken(final CelestialColonnadeToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public CelestialColonnadeToken copy() {
|
||||
return new CelestialColonnadeToken(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ import mage.counters.CounterType;
|
|||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
|
||||
|
@ -82,7 +83,7 @@ public class ChimericEgg extends CardImpl {
|
|||
return new ChimericEgg(this);
|
||||
}
|
||||
|
||||
private static class ChimericEggToken extends Token {
|
||||
private static class ChimericEggToken extends TokenImpl {
|
||||
ChimericEggToken() {
|
||||
super("", "6/6 Construct artifact creature with trample");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -92,5 +93,12 @@ public class ChimericEgg extends CardImpl {
|
|||
toughness = new MageInt(6);
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
}
|
||||
public ChimericEggToken(final ChimericEggToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ChimericEggToken copy() {
|
||||
return new ChimericEggToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -69,7 +70,7 @@ public class ChimericIdol extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class ChimericIdolToken extends Token {
|
||||
class ChimericIdolToken extends TokenImpl {
|
||||
|
||||
public ChimericIdolToken() {
|
||||
super("Turtle", "3/3 Turtle artifact creature token");
|
||||
|
@ -79,4 +80,11 @@ class ChimericIdolToken extends Token {
|
|||
power = new MageInt(3);
|
||||
toughness = new MageInt(3);
|
||||
}
|
||||
public ChimericIdolToken(final ChimericIdolToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ChimericIdolToken copy() {
|
||||
return new ChimericIdolToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -73,7 +74,7 @@ public class ChimericMass extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class ChimericMassToken extends Token {
|
||||
class ChimericMassToken extends TokenImpl {
|
||||
|
||||
public ChimericMassToken() {
|
||||
super("", "Construct artifact creature with \"This creature's power and toughness are each equal to the number of charge counters on it.\"");
|
||||
|
@ -83,4 +84,11 @@ class ChimericMassToken extends Token {
|
|||
toughness = new MageInt(0);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new CountersSourceCount(CounterType.CHARGE), Duration.WhileOnBattlefield)));
|
||||
}
|
||||
public ChimericMassToken(final ChimericMassToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ChimericMassToken copy() {
|
||||
return new ChimericMassToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -67,7 +68,7 @@ public class ChimericSphere extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class ChimericSphereCreature1 extends Token {
|
||||
class ChimericSphereCreature1 extends TokenImpl {
|
||||
|
||||
public ChimericSphereCreature1() {
|
||||
super("Chimeric Sphere", "2/1 Construct artifact creature with flying");
|
||||
|
@ -78,9 +79,16 @@ class ChimericSphereCreature1 extends Token {
|
|||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public ChimericSphereCreature1(final ChimericSphereCreature1 token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ChimericSphereCreature1 copy() {
|
||||
return new ChimericSphereCreature1(this);
|
||||
}
|
||||
}
|
||||
|
||||
class ChimericSphereCreature2 extends Token {
|
||||
class ChimericSphereCreature2 extends TokenImpl {
|
||||
|
||||
public ChimericSphereCreature2() {
|
||||
super("Chimeric Sphere", "3/2 Construct artifact creature without flying");
|
||||
|
@ -89,5 +97,12 @@ class ChimericSphereCreature2 extends Token {
|
|||
power = new MageInt(3);
|
||||
toughness = new MageInt(2);
|
||||
}
|
||||
public ChimericSphereCreature2(final ChimericSphereCreature2 token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ChimericSphereCreature2 copy() {
|
||||
return new ChimericSphereCreature2(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ import mage.constants.EffectType;
|
|||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -122,7 +123,7 @@ class ChronatogTotemAbility extends LimitedTimesPerTurnActivatedAbility {
|
|||
}
|
||||
}
|
||||
|
||||
class ChronatogTotemToken extends Token {
|
||||
class ChronatogTotemToken extends TokenImpl {
|
||||
|
||||
ChronatogTotemToken() {
|
||||
super("Atog", "1/2 blue Atog artifact creature");
|
||||
|
@ -133,6 +134,13 @@ class ChronatogTotemToken extends Token {
|
|||
toughness = new MageInt(2);
|
||||
color.setBlue(true);
|
||||
}
|
||||
public ChronatogTotemToken(final ChronatogTotemToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ChronatogTotemToken copy() {
|
||||
return new ChronatogTotemToken(this);
|
||||
}
|
||||
}
|
||||
|
||||
class ChronatogTotemCondition implements Condition {
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -85,7 +86,7 @@ public class CorruptedZendikon extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class CorruptedZendikonOozeToken extends Token {
|
||||
class CorruptedZendikonOozeToken extends TokenImpl {
|
||||
|
||||
public CorruptedZendikonOozeToken() {
|
||||
super("Ooze", "3/3 black Ooze creature");
|
||||
|
@ -95,5 +96,12 @@ class CorruptedZendikonOozeToken extends Token {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
}
|
||||
public CorruptedZendikonOozeToken(final CorruptedZendikonOozeToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public CorruptedZendikonOozeToken copy() {
|
||||
return new CorruptedZendikonOozeToken(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -76,7 +77,7 @@ public class CreepingTarPit extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class CreepingTarPitToken extends Token {
|
||||
class CreepingTarPitToken extends TokenImpl {
|
||||
public CreepingTarPitToken() {
|
||||
super("", "3/2 blue and black Elemental creature and can't be blocked");
|
||||
cardType.add(CardType.CREATURE);
|
||||
|
@ -87,4 +88,11 @@ class CreepingTarPitToken extends Token {
|
|||
toughness = new MageInt(2);
|
||||
this.addAbility(new CantBeBlockedSourceAbility());
|
||||
}
|
||||
public CreepingTarPitToken(final CreepingTarPitToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public CreepingTarPitToken copy() {
|
||||
return new CreepingTarPitToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -83,7 +84,7 @@ public class CrusherZendikon extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class BeastToken extends Token {
|
||||
class BeastToken extends TokenImpl {
|
||||
|
||||
BeastToken() {
|
||||
super("", "4/2 red Beast creature with trample");
|
||||
|
@ -94,4 +95,11 @@ class BeastToken extends Token {
|
|||
toughness = new MageInt(2);
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
}
|
||||
public BeastToken(final BeastToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public BeastToken copy() {
|
||||
return new BeastToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ import mage.constants.Zone;
|
|||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -88,7 +89,7 @@ public class CunningBandit extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class AzamukiTreacheryIncarnate extends Token {
|
||||
class AzamukiTreacheryIncarnate extends TokenImpl {
|
||||
|
||||
AzamukiTreacheryIncarnate() {
|
||||
super("Azamuki, Treachery Incarnate", "");
|
||||
|
@ -107,4 +108,11 @@ class AzamukiTreacheryIncarnate extends Token {
|
|||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
public AzamukiTreacheryIncarnate(final AzamukiTreacheryIncarnate token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public AzamukiTreacheryIncarnate copy() {
|
||||
return new AzamukiTreacheryIncarnate(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
|
@ -65,7 +66,7 @@ public class DanceOfTheSkywise extends CardImpl {
|
|||
return new DanceOfTheSkywise(this);
|
||||
}
|
||||
|
||||
private static class DragonIllusionToken extends Token {
|
||||
private static class DragonIllusionToken extends TokenImpl {
|
||||
|
||||
public DragonIllusionToken() {
|
||||
super("Dragon", "blue Dragon Illusion with base power and toughness 4/4 and with flying");
|
||||
|
@ -77,6 +78,13 @@ public class DanceOfTheSkywise extends CardImpl {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public DragonIllusionToken(final DragonIllusionToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DragonIllusionToken copy() {
|
||||
return new DragonIllusionToken(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -64,7 +65,7 @@ public class DarksteelBrute extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class DarksteelBruteToken extends Token {
|
||||
class DarksteelBruteToken extends TokenImpl {
|
||||
public DarksteelBruteToken() {
|
||||
super("", "2/2 Beast artifact creature");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -72,4 +73,11 @@ class DarksteelBruteToken extends Token {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
}
|
||||
public DarksteelBruteToken(final DarksteelBruteToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DarksteelBruteToken copy() {
|
||||
return new DarksteelBruteToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -81,7 +82,7 @@ public class DarksteelMutation extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class DarksteelMutationInsectToken extends Token {
|
||||
class DarksteelMutationInsectToken extends TokenImpl {
|
||||
|
||||
public DarksteelMutationInsectToken() {
|
||||
super("Insect", "Insect artifact creature with base power and toughness 0/1");
|
||||
|
@ -93,5 +94,12 @@ class DarksteelMutationInsectToken extends Token {
|
|||
|
||||
this.addAbility(IndestructibleAbility.getInstance());
|
||||
}
|
||||
public DarksteelMutationInsectToken(final DarksteelMutationInsectToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DarksteelMutationInsectToken copy() {
|
||||
return new DarksteelMutationInsectToken(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -63,7 +64,7 @@ public class DaxossTorment extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class DaxossTormentToken extends Token {
|
||||
class DaxossTormentToken extends TokenImpl {
|
||||
|
||||
public DaxossTormentToken() {
|
||||
super("", "5/5 Demon creature with flying and haste");
|
||||
|
@ -75,4 +76,11 @@ class DaxossTormentToken extends Token {
|
|||
addAbility(FlyingAbility.getInstance());
|
||||
addAbility(HasteAbility.getInstance());
|
||||
}
|
||||
public DaxossTormentToken(final DaxossTormentToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DaxossTormentToken copy() {
|
||||
return new DaxossTormentToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.DragonToken2;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPlayer;
|
||||
|
|
|
@ -44,6 +44,7 @@ import mage.constants.Outcome;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.token.AngelToken;
|
||||
import mage.game.permanent.token.SoldierToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -69,7 +70,7 @@ public class DimirKeyrune extends CardImpl {
|
|||
return new DimirKeyrune(this);
|
||||
}
|
||||
|
||||
private static class DimirKeyruneToken extends Token {
|
||||
private static class DimirKeyruneToken extends TokenImpl {
|
||||
DimirKeyruneToken() {
|
||||
super("Horror", "2/2 blue and black Horror until end of turn and can't be blocked this turn");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -81,5 +82,12 @@ public class DimirKeyrune extends CardImpl {
|
|||
toughness = new MageInt(2);
|
||||
this.addAbility(new CantBeBlockedSourceAbility());
|
||||
}
|
||||
public DimirKeyruneToken(final DimirKeyruneToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DimirKeyruneToken copy() {
|
||||
return new DimirKeyruneToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ 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.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
|
|
@ -41,6 +41,7 @@ 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.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.game.stack.Spell;
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ import mage.constants.TargetController;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
|
@ -85,7 +86,7 @@ public class Dragonshift extends CardImpl {
|
|||
return new Dragonshift(this);
|
||||
}
|
||||
|
||||
private class DragonToken extends Token {
|
||||
private class DragonToken extends TokenImpl {
|
||||
|
||||
public DragonToken() {
|
||||
super("Dragon", "blue and red Dragon with base power and toughness 4/4 and with flying");
|
||||
|
@ -97,6 +98,13 @@ public class Dragonshift extends CardImpl {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public DragonToken(final DragonToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DragonToken copy() {
|
||||
return new DragonToken(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -65,7 +66,7 @@ public class DreadStatuary extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class DreadStatuaryToken extends Token {
|
||||
class DreadStatuaryToken extends TokenImpl {
|
||||
|
||||
public DreadStatuaryToken() {
|
||||
super("", "4/2 Golem artifact creature");
|
||||
|
@ -75,5 +76,11 @@ class DreadStatuaryToken extends Token {
|
|||
power = new MageInt(4);
|
||||
toughness = new MageInt(2);
|
||||
}
|
||||
public DreadStatuaryToken(final DreadStatuaryToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DreadStatuaryToken copy() {
|
||||
return new DreadStatuaryToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -70,7 +71,7 @@ public class DromokaMonument extends CardImpl {
|
|||
return new DromokaMonument(this);
|
||||
}
|
||||
|
||||
private class DromokaMonumentToken extends Token {
|
||||
private class DromokaMonumentToken extends TokenImpl {
|
||||
DromokaMonumentToken() {
|
||||
super("", "4/4 green and white Dragon artifact creature with flying");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -82,5 +83,12 @@ public class DromokaMonument extends CardImpl {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public DromokaMonumentToken(final DromokaMonumentToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DromokaMonumentToken copy() {
|
||||
return new DromokaMonumentToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ import mage.constants.Outcome;
|
|||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SaprolingToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
|
63
Mage.Sets/src/mage/cards/d/Dub.java
Normal file
63
Mage.Sets/src/mage/cards/d/Dub.java
Normal file
|
@ -0,0 +1,63 @@
|
|||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.AddCardSubtypeAttachedEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
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.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
* @author JRHerlehy
|
||||
* Created on 4/6/18.
|
||||
*/
|
||||
public class Dub extends CardImpl {
|
||||
|
||||
public Dub(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
|
||||
this.subtype.add(SubType.AURA);
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+2, has first strike, and is a Knight in addition to its other types.
|
||||
Effect effect = new BoostEnchantedEffect(2, 2);
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
||||
effect = new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA);
|
||||
effect.setText(", has first strike");
|
||||
ability.addEffect(effect);
|
||||
effect = new AddCardSubtypeAttachedEffect(SubType.KNIGHT, Duration.WhileOnBattlefield, AttachmentType.AURA);
|
||||
effect.setText(", and is a Knight in addition to its other types");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public Dub(final Dub card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dub copy() {
|
||||
return new Dub(this);
|
||||
}
|
||||
|
||||
}
|
|
@ -39,6 +39,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -69,7 +70,7 @@ public class ElementalUprising extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class ElementalUprisingToken extends Token {
|
||||
class ElementalUprisingToken extends TokenImpl {
|
||||
|
||||
public ElementalUprisingToken() {
|
||||
super("", "4/4 Elemental creature with haste");
|
||||
|
@ -81,4 +82,11 @@ class ElementalUprisingToken extends Token {
|
|||
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
}
|
||||
public ElementalUprisingToken(final ElementalUprisingToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ElementalUprisingToken copy() {
|
||||
return new ElementalUprisingToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.SuperType;
|
||||
import mage.game.command.emblems.ElspethKnightErrantEmblem;
|
||||
import mage.game.permanent.token.SoldierToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.filter.FilterPermanent;
|
|||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -112,7 +113,7 @@ class ElvishBranchbenderEffect extends OneShotEffect {
|
|||
}
|
||||
}
|
||||
|
||||
class ElvishBranchbenderToken extends Token {
|
||||
class ElvishBranchbenderToken extends TokenImpl {
|
||||
|
||||
ElvishBranchbenderToken(int xValue) {
|
||||
super("Treefolk", "X/X Treefolk creature in addition to its other types, where X is the number of Elves you control");
|
||||
|
@ -121,4 +122,11 @@ class ElvishBranchbenderToken extends Token {
|
|||
power = new MageInt(xValue);
|
||||
toughness = new MageInt(xValue);
|
||||
}
|
||||
public ElvishBranchbenderToken(final ElvishBranchbenderToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ElvishBranchbenderToken copy() {
|
||||
return new ElvishBranchbenderToken(this);
|
||||
}
|
||||
}
|
|
@ -45,6 +45,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -90,7 +91,7 @@ public class EmbodimentOfFury extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class EmbodimentOfFuryToken extends Token {
|
||||
class EmbodimentOfFuryToken extends TokenImpl {
|
||||
|
||||
public EmbodimentOfFuryToken() {
|
||||
super("", "3/3 Elemental creature with haste");
|
||||
|
@ -101,4 +102,11 @@ class EmbodimentOfFuryToken extends Token {
|
|||
this.toughness = new MageInt(3);
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
}
|
||||
public EmbodimentOfFuryToken(final EmbodimentOfFuryToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public EmbodimentOfFuryToken copy() {
|
||||
return new EmbodimentOfFuryToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -90,7 +91,7 @@ public class EmbodimentOfInsight extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class EmbodimentOfInsightToken extends Token {
|
||||
class EmbodimentOfInsightToken extends TokenImpl {
|
||||
|
||||
public EmbodimentOfInsightToken() {
|
||||
super("", "3/3 Elemental creature with haste");
|
||||
|
@ -101,4 +102,11 @@ class EmbodimentOfInsightToken extends Token {
|
|||
this.toughness = new MageInt(3);
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
}
|
||||
public EmbodimentOfInsightToken(final EmbodimentOfInsightToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public EmbodimentOfInsightToken copy() {
|
||||
return new EmbodimentOfInsightToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetArtifactPermanent;
|
||||
|
@ -80,7 +81,7 @@ public class EnsoulArtifact extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class EnsoulArtifactToken extends Token {
|
||||
class EnsoulArtifactToken extends TokenImpl {
|
||||
|
||||
EnsoulArtifactToken() {
|
||||
super("", "5/5");
|
||||
|
@ -88,4 +89,11 @@ class EnsoulArtifactToken extends Token {
|
|||
power = new MageInt(5);
|
||||
toughness = new MageInt(5);
|
||||
}
|
||||
public EnsoulArtifactToken(final EnsoulArtifactToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public EnsoulArtifactToken copy() {
|
||||
return new EnsoulArtifactToken(this);
|
||||
}
|
||||
}
|
|
@ -43,6 +43,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -73,7 +74,7 @@ public class EnsouledScimitar extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class EnsouledScimitarToken extends Token {
|
||||
class EnsouledScimitarToken extends TokenImpl {
|
||||
|
||||
public EnsouledScimitarToken() {
|
||||
super("Pincher", "1/5 Spirit artifact creature with flying");
|
||||
|
@ -86,4 +87,11 @@ class EnsouledScimitarToken extends Token {
|
|||
|
||||
}
|
||||
|
||||
public EnsouledScimitarToken(final EnsouledScimitarToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public EnsouledScimitarToken copy() {
|
||||
return new EnsouledScimitarToken(this);
|
||||
}
|
||||
}
|
|
@ -43,6 +43,7 @@ import mage.constants.Zone;
|
|||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
import mage.watchers.common.CastSpellLastTurnWatcher;
|
||||
|
@ -119,7 +120,7 @@ class ErayoSoratamiAscendantTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class ErayosEssence extends Token {
|
||||
class ErayosEssence extends TokenImpl {
|
||||
|
||||
ErayosEssence() {
|
||||
super("Erayo's Essence", "");
|
||||
|
@ -133,6 +134,13 @@ class ErayosEssence extends Token {
|
|||
effect.setText("counter that spell");
|
||||
this.addAbility(new ErayosEssenceTriggeredAbility(effect));
|
||||
}
|
||||
public ErayosEssence(final ErayosEssence token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ErayosEssence copy() {
|
||||
return new ErayosEssence(this);
|
||||
}
|
||||
}
|
||||
|
||||
class ErayosEssenceTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -66,7 +67,7 @@ public class FaerieConclave extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class FaerieConclaveToken extends Token {
|
||||
class FaerieConclaveToken extends TokenImpl {
|
||||
FaerieConclaveToken() {
|
||||
super("Faerie", "2/1 blue Faerie creature with flying");
|
||||
cardType.add(CardType.CREATURE);
|
||||
|
@ -76,4 +77,11 @@ class FaerieConclaveToken extends Token {
|
|||
toughness = new MageInt(1);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public FaerieConclaveToken(final FaerieConclaveToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public FaerieConclaveToken copy() {
|
||||
return new FaerieConclaveToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ import mage.constants.Zone;
|
|||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -91,7 +92,7 @@ public class FaithfulSquire extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class KaisoMemoryOfLoyalty extends Token {
|
||||
class KaisoMemoryOfLoyalty extends TokenImpl {
|
||||
|
||||
KaisoMemoryOfLoyalty() {
|
||||
super("Kaiso, Memory of Loyalty", "");
|
||||
|
@ -113,4 +114,11 @@ class KaisoMemoryOfLoyalty extends Token {
|
|||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
public KaisoMemoryOfLoyalty(final KaisoMemoryOfLoyalty token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public KaisoMemoryOfLoyalty copy() {
|
||||
return new KaisoMemoryOfLoyalty(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
||||
|
@ -79,7 +80,7 @@ public class FendeepSummoner extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class FendeepSummonerToken extends Token {
|
||||
class FendeepSummonerToken extends TokenImpl {
|
||||
|
||||
public FendeepSummonerToken() {
|
||||
super("", "3/5 Treefolk Warrior");
|
||||
|
@ -89,4 +90,11 @@ class FendeepSummonerToken extends Token {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(5);
|
||||
}
|
||||
public FendeepSummonerToken(final FendeepSummonerToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public FendeepSummonerToken copy() {
|
||||
return new FendeepSummonerToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -101,7 +102,7 @@ public class FigureOfDestiny extends CardImpl {
|
|||
return new FigureOfDestiny(this);
|
||||
}
|
||||
|
||||
private class FigureOfDestinyToken1 extends Token {
|
||||
private class FigureOfDestinyToken1 extends TokenImpl {
|
||||
|
||||
public FigureOfDestinyToken1() {
|
||||
super("Figure of Destiny", "Kithkin Spirit with base power and toughness 2/2");
|
||||
|
@ -114,9 +115,17 @@ public class FigureOfDestiny extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
}
|
||||
|
||||
public FigureOfDestinyToken1(final FigureOfDestinyToken1 token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public FigureOfDestinyToken1 copy() {
|
||||
return new FigureOfDestinyToken1(this);
|
||||
}
|
||||
}
|
||||
|
||||
private class FigureOfDestinyToken2 extends Token {
|
||||
private class FigureOfDestinyToken2 extends TokenImpl {
|
||||
|
||||
public FigureOfDestinyToken2() {
|
||||
super("Figure of Destiny", "Kithkin Spirit Warrior with base power and toughness 4/4");
|
||||
|
@ -130,9 +139,17 @@ public class FigureOfDestiny extends CardImpl {
|
|||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
}
|
||||
public FigureOfDestinyToken2(final FigureOfDestinyToken2 token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public FigureOfDestinyToken2 copy() {
|
||||
return new FigureOfDestinyToken2(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class FigureOfDestinyToken3 extends Token {
|
||||
private class FigureOfDestinyToken3 extends TokenImpl {
|
||||
|
||||
public FigureOfDestinyToken3() {
|
||||
super("Figure of Destiny", "Kithkin Spirit Warrior Avatar with base power and toughness 8/8, flying, and first strike");
|
||||
|
@ -149,5 +166,13 @@ public class FigureOfDestiny extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
}
|
||||
|
||||
public FigureOfDestinyToken3(final FigureOfDestinyToken3 token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public FigureOfDestinyToken3 copy() {
|
||||
return new FigureOfDestinyToken3(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.abilities.condition.common.SourceIsSpellCondition;
|
|||
import mage.abilities.costs.AlternativeCostSourceAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.common.continuous.WUBRGInsteadEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
@ -50,7 +51,7 @@ public class FistOfSuns extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
|
||||
|
||||
// You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new FistOfSunsRuleEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new WUBRGInsteadEffect()));
|
||||
}
|
||||
|
||||
public FistOfSuns(final FistOfSuns card) {
|
||||
|
@ -63,42 +64,3 @@ public class FistOfSuns extends CardImpl {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
class FistOfSunsRuleEffect extends ContinuousEffectImpl {
|
||||
|
||||
static AlternativeCostSourceAbility alternativeCastingCostAbility = new AlternativeCostSourceAbility(new ManaCostsImpl("{W}{U}{B}{R}{G}"), SourceIsSpellCondition.instance);
|
||||
|
||||
public FistOfSunsRuleEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Detriment);
|
||||
staticText = "You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast";
|
||||
}
|
||||
|
||||
public FistOfSunsRuleEffect(final FistOfSunsRuleEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FistOfSunsRuleEffect copy() {
|
||||
return new FistOfSunsRuleEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
controller.getAlternativeSourceCosts().add(alternativeCastingCostAbility);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasLayer(Layer layer) {
|
||||
return layer == Layer.RulesEffects;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate;
|
|||
import mage.game.ExileZone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.Target;
|
||||
import mage.target.TargetPermanent;
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -71,7 +72,7 @@ public class ForbiddingWatchtower extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class ForbiddingWatchtowerToken extends Token {
|
||||
class ForbiddingWatchtowerToken extends TokenImpl {
|
||||
ForbiddingWatchtowerToken() {
|
||||
super("Soldier", "1/5 white Soldier creature");
|
||||
cardType.add(CardType.CREATURE);
|
||||
|
@ -81,4 +82,11 @@ class ForbiddingWatchtowerToken extends Token {
|
|||
power = new MageInt(1);
|
||||
toughness = new MageInt(5);
|
||||
}
|
||||
public ForbiddingWatchtowerToken(final ForbiddingWatchtowerToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ForbiddingWatchtowerToken copy() {
|
||||
return new ForbiddingWatchtowerToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -79,7 +80,7 @@ public class ForiysianTotem extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class ForiysianTotemToken extends Token {
|
||||
class ForiysianTotemToken extends TokenImpl {
|
||||
|
||||
public ForiysianTotemToken() {
|
||||
super("", "4/4 red Giant artifact creature with trample");
|
||||
|
@ -91,4 +92,11 @@ class ForiysianTotemToken extends Token {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
}
|
||||
public ForiysianTotemToken(final ForiysianTotemToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ForiysianTotemToken copy() {
|
||||
return new ForiysianTotemToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -80,7 +81,7 @@ public class FowlPlay extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class FowlPlayToken extends Token {
|
||||
class FowlPlayToken extends TokenImpl {
|
||||
|
||||
public FowlPlayToken() {
|
||||
super("Chicken", "a Chicken with base power and toughness 1/1 with no abilities");
|
||||
|
@ -89,4 +90,11 @@ class FowlPlayToken extends Token {
|
|||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
}
|
||||
public FowlPlayToken(final FowlPlayToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public FowlPlayToken copy() {
|
||||
return new FowlPlayToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SpiritWhiteToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.filter.FilterPermanent;
|
|||
import mage.filter.predicate.permanent.CounterPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.GoblinToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ import mage.constants.Outcome;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SpiritBlueToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetSpell;
|
||||
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.constants.Outcome;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.GeminiEngineTwinToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -85,7 +86,7 @@ public class GenjuOfTheCedars extends CardImpl {
|
|||
return new GenjuOfTheCedars(this);
|
||||
}
|
||||
|
||||
private static class SpiritToken extends Token {
|
||||
private static class SpiritToken extends TokenImpl {
|
||||
|
||||
SpiritToken() {
|
||||
super("", "4/4 green Spirit creature");
|
||||
|
@ -95,5 +96,13 @@ public class GenjuOfTheCedars extends CardImpl {
|
|||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
}
|
||||
|
||||
public SpiritToken(final SpiritToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SpiritToken copy() {
|
||||
return new SpiritToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -83,7 +84,7 @@ public class GenjuOfTheFalls extends CardImpl {
|
|||
return new GenjuOfTheFalls(this);
|
||||
}
|
||||
|
||||
private static class SpiritToken extends Token {
|
||||
private static class SpiritToken extends TokenImpl {
|
||||
|
||||
SpiritToken() {
|
||||
super("Spirit", "3/2 blue Spirit creature with flying");
|
||||
|
@ -94,5 +95,13 @@ public class GenjuOfTheFalls extends CardImpl {
|
|||
toughness = new MageInt(2);
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
|
||||
public SpiritToken(final SpiritToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SpiritToken copy() {
|
||||
return new SpiritToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -84,7 +85,7 @@ public class GenjuOfTheFens extends CardImpl {
|
|||
return new GenjuOfTheFens(this);
|
||||
}
|
||||
|
||||
private static class SpiritToken extends Token {
|
||||
private static class SpiritToken extends TokenImpl {
|
||||
|
||||
SpiritToken() {
|
||||
super("Spirit", "2/2 black Spirit creature with \"{B}: This creature gets +1/+1 until end of turn.\"");
|
||||
|
@ -95,5 +96,13 @@ public class GenjuOfTheFens extends CardImpl {
|
|||
toughness = new MageInt(2);
|
||||
addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")));
|
||||
}
|
||||
|
||||
public SpiritToken(final SpiritToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SpiritToken copy() {
|
||||
return new SpiritToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -90,7 +91,7 @@ public class GenjuOfTheFields extends CardImpl {
|
|||
return new GenjuOfTheFields(this);
|
||||
}
|
||||
|
||||
private static class SpiritToken extends Token {
|
||||
private static class SpiritToken extends TokenImpl {
|
||||
|
||||
SpiritToken() {
|
||||
super("Spirit", "2/5 white Spirit creature");
|
||||
|
@ -100,5 +101,12 @@ public class GenjuOfTheFields extends CardImpl {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(5);
|
||||
}
|
||||
public SpiritToken(final SpiritToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SpiritToken copy() {
|
||||
return new SpiritToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -81,7 +82,7 @@ public class GenjuOfTheRealm extends CardImpl {
|
|||
return new GenjuOfTheRealm(this);
|
||||
}
|
||||
|
||||
private static class SpiritToken extends Token {
|
||||
private static class SpiritToken extends TokenImpl {
|
||||
|
||||
SpiritToken() {
|
||||
super("Spirit", "legendary 8/12 Spirit creature with trample");
|
||||
|
@ -97,5 +98,13 @@ public class GenjuOfTheRealm extends CardImpl {
|
|||
toughness = new MageInt(12);
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
}
|
||||
|
||||
public SpiritToken(final SpiritToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SpiritToken copy() {
|
||||
return new SpiritToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -82,7 +83,7 @@ public class GenjuOfTheSpires extends CardImpl {
|
|||
return new GenjuOfTheSpires(this);
|
||||
}
|
||||
|
||||
private static class SpiritToken extends Token {
|
||||
private static class SpiritToken extends TokenImpl {
|
||||
|
||||
SpiritToken() {
|
||||
super("Spirit", "6/1 red Spirit creature");
|
||||
|
@ -92,5 +93,12 @@ public class GenjuOfTheSpires extends CardImpl {
|
|||
power = new MageInt(6);
|
||||
toughness = new MageInt(1);
|
||||
}
|
||||
public SpiritToken(final SpiritToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SpiritToken copy() {
|
||||
return new SpiritToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -69,7 +70,7 @@ public class GhituEncampment extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class GhituEncampmentToken extends Token {
|
||||
class GhituEncampmentToken extends TokenImpl {
|
||||
|
||||
public GhituEncampmentToken() {
|
||||
super("Warrior", "2/1 red Warrior creature with first strike");
|
||||
|
@ -82,4 +83,11 @@ class GhituEncampmentToken extends Token {
|
|||
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
}
|
||||
public GhituEncampmentToken(final GhituEncampmentToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GhituEncampmentToken copy() {
|
||||
return new GhituEncampmentToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.game.permanent.token.ZombieToken;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
|
|
@ -45,6 +45,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.SuperType;
|
||||
import mage.game.command.emblems.GideonAllyOfZendikarEmblem;
|
||||
import mage.game.permanent.token.KnightAllyToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -84,7 +85,7 @@ public class GideonAllyOfZendikar extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class GideonAllyOfZendikarToken extends Token {
|
||||
class GideonAllyOfZendikarToken extends TokenImpl {
|
||||
|
||||
public GideonAllyOfZendikarToken() {
|
||||
super("", "5/5 Human Soldier Ally creature with indestructible");
|
||||
|
@ -97,4 +98,11 @@ class GideonAllyOfZendikarToken extends Token {
|
|||
|
||||
addAbility(IndestructibleAbility.getInstance());
|
||||
}
|
||||
public GideonAllyOfZendikarToken(final GideonAllyOfZendikarToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GideonAllyOfZendikarToken copy() {
|
||||
return new GideonAllyOfZendikarToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -113,7 +114,7 @@ public class GideonBattleForged extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class GideonBattleForgedToken extends Token {
|
||||
class GideonBattleForgedToken extends TokenImpl {
|
||||
|
||||
public GideonBattleForgedToken() {
|
||||
super("", "4/4 Human Soldier creature with indestructible");
|
||||
|
@ -124,7 +125,13 @@ class GideonBattleForgedToken extends Token {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(IndestructibleAbility.getInstance());
|
||||
}
|
||||
public GideonBattleForgedToken(final GideonBattleForgedToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GideonBattleForgedToken copy() {
|
||||
return new GideonBattleForgedToken(this);
|
||||
}
|
||||
}
|
||||
|
||||
class GideonBattleForgedAttacksIfAbleTargetEffect extends RequirementEffect {
|
||||
|
|
|
@ -51,6 +51,7 @@ import mage.counters.CounterType;
|
|||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
||||
|
@ -122,7 +123,7 @@ class GideonExileAllOtherPermanentsEffect extends OneShotEffect {
|
|||
}
|
||||
}
|
||||
|
||||
class GideonChampionOfJusticeToken extends Token {
|
||||
class GideonChampionOfJusticeToken extends TokenImpl {
|
||||
|
||||
public GideonChampionOfJusticeToken() {
|
||||
super("", "indestructible Human Soldier creature with power and toughness each equal to the number of loyalty counters on him");
|
||||
|
@ -135,5 +136,11 @@ class GideonChampionOfJusticeToken extends Token {
|
|||
this.addAbility(IndestructibleAbility.getInstance());
|
||||
|
||||
}
|
||||
public GideonChampionOfJusticeToken(final GideonChampionOfJusticeToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GideonChampionOfJusticeToken copy() {
|
||||
return new GideonChampionOfJusticeToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.filter.predicate.permanent.TappedPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
@ -101,7 +102,7 @@ public class GideonJura extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class GideonJuraToken extends Token {
|
||||
class GideonJuraToken extends TokenImpl {
|
||||
|
||||
public GideonJuraToken() {
|
||||
super("", "6/6 Human Soldier creature");
|
||||
|
@ -111,7 +112,13 @@ class GideonJuraToken extends Token {
|
|||
power = new MageInt(6);
|
||||
toughness = new MageInt(6);
|
||||
}
|
||||
public GideonJuraToken(final GideonJuraToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GideonJuraToken copy() {
|
||||
return new GideonJuraToken(this);
|
||||
}
|
||||
}
|
||||
|
||||
class GideonJuraEffect extends RequirementEffect {
|
||||
|
|
|
@ -46,6 +46,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterOpponentsCreaturePermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -95,7 +96,7 @@ public class GideonMartialParagon extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class GideonMartialParagonToken extends Token {
|
||||
class GideonMartialParagonToken extends TokenImpl {
|
||||
|
||||
public GideonMartialParagonToken() {
|
||||
super("", "5/5 Human Soldier creature with indestructible");
|
||||
|
@ -107,4 +108,11 @@ class GideonMartialParagonToken extends Token {
|
|||
|
||||
addAbility(IndestructibleAbility.getInstance());
|
||||
}
|
||||
public GideonMartialParagonToken(final GideonMartialParagonToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GideonMartialParagonToken copy() {
|
||||
return new GideonMartialParagonToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SuperType;
|
||||
import mage.game.command.emblems.GideonOfTheTrialsEmblem;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
|
@ -90,7 +91,7 @@ public class GideonOfTheTrials extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class GideonOfTheTrialsToken extends Token {
|
||||
class GideonOfTheTrialsToken extends TokenImpl {
|
||||
|
||||
public GideonOfTheTrialsToken() {
|
||||
super("", "a 4/4 Human Soldier creature with indestructible");
|
||||
|
@ -101,4 +102,11 @@ class GideonOfTheTrialsToken extends Token {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(IndestructibleAbility.getInstance());
|
||||
}
|
||||
public GideonOfTheTrialsToken(final GideonOfTheTrialsToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GideonOfTheTrialsToken copy() {
|
||||
return new GideonOfTheTrialsToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.filter.FilterPermanent;
|
|||
import mage.filter.common.FilterArtifactPermanent;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -78,7 +79,7 @@ public class GlintHawkIdol extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
class GlintHawkIdolToken extends Token {
|
||||
class GlintHawkIdolToken extends TokenImpl {
|
||||
GlintHawkIdolToken() {
|
||||
super("", "2/2 Bird artifact creature with flying");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -88,4 +89,11 @@ class GlintHawkIdolToken extends Token {
|
|||
toughness = new MageInt(2);
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public GlintHawkIdolToken(final GlintHawkIdolToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GlintHawkIdolToken copy() {
|
||||
return new GlintHawkIdolToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SpyMasterGoblinToken;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.players.Player;
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -68,7 +69,7 @@ public class GolgariKeyrune extends CardImpl {
|
|||
return new GolgariKeyrune(this);
|
||||
}
|
||||
|
||||
private static class GolgariKeyruneToken extends Token {
|
||||
private static class GolgariKeyruneToken extends TokenImpl {
|
||||
GolgariKeyruneToken() {
|
||||
super("", "2/2 black and green Insect artifact creature with deathtouch");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -80,5 +81,12 @@ public class GolgariKeyrune extends CardImpl {
|
|||
toughness = new MageInt(2);
|
||||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
}
|
||||
public GolgariKeyruneToken(final GolgariKeyruneToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GolgariKeyruneToken copy() {
|
||||
return new GolgariKeyruneToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.permanent.TappedPredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
|
@ -84,7 +85,7 @@ public class GroveOfTheGuardian extends CardImpl {
|
|||
return new GroveOfTheGuardian(this);
|
||||
}
|
||||
|
||||
private static class ElementalToken extends Token {
|
||||
private static class ElementalToken extends TokenImpl {
|
||||
|
||||
ElementalToken() {
|
||||
super("Elemental", "8/8 green and white Elemental creature token with vigilance");
|
||||
|
@ -97,5 +98,12 @@ public class GroveOfTheGuardian extends CardImpl {
|
|||
toughness = new MageInt(8);
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
}
|
||||
public ElementalToken(final ElementalToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ElementalToken copy() {
|
||||
return new ElementalToken(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
60
Mage.Sets/src/mage/cards/g/GrunnTheLonelyKing.java
Normal file
60
Mage.Sets/src/mage/cards/g/GrunnTheLonelyKing.java
Normal file
|
@ -0,0 +1,60 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksAloneTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
||||
import mage.abilities.dynamicvalue.common.SourcePermanentToughnessValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
/**
|
||||
* @author JRHerlehy
|
||||
* Created on 4/5/18.
|
||||
*/
|
||||
public class GrunnTheLonelyKing extends CardImpl {
|
||||
|
||||
public GrunnTheLonelyKing(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}");
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.APE, SubType.WARRIOR);
|
||||
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
//Kicker {3} (You may pay an additional {3} as you cast this spell.)
|
||||
this.addAbility(new KickerAbility("{3}"));
|
||||
|
||||
//If Grunn, the Lonely King was kicked, it enters the battlefield with five +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)), KickedCondition.instance)));
|
||||
|
||||
//Whenever Grunn attacks alone, double its power and toughness until end of turn.
|
||||
SourcePermanentPowerCount power = new SourcePermanentPowerCount();
|
||||
SourcePermanentToughnessValue toughness = new SourcePermanentToughnessValue();
|
||||
Effect effect = new BoostSourceEffect(power, toughness, Duration.EndOfTurn, true);
|
||||
effect.setText("double its power and toughness until end of turn");
|
||||
this.addAbility(new AttacksAloneTriggeredAbility(effect));
|
||||
}
|
||||
|
||||
public GrunnTheLonelyKing(final GrunnTheLonelyKing card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GrunnTheLonelyKing copy() {
|
||||
return new GrunnTheLonelyKing(this);
|
||||
}
|
||||
}
|
|
@ -41,6 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -69,7 +70,7 @@ public class GruulKeyrune extends CardImpl {
|
|||
return new GruulKeyrune(this);
|
||||
}
|
||||
|
||||
private static class GruulKeyruneToken extends Token {
|
||||
private static class GruulKeyruneToken extends TokenImpl {
|
||||
GruulKeyruneToken() {
|
||||
super("Beast", "3/2 red and green Beast artifact creature with trample");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
|
@ -81,5 +82,13 @@ public class GruulKeyrune extends CardImpl {
|
|||
toughness = new MageInt(2);
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
}
|
||||
public GruulKeyruneToken(final GruulKeyruneToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GruulKeyruneToken copy() {
|
||||
return new GruulKeyruneToken(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -69,7 +70,7 @@ public class GruulWarPlow extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class GruulWarPlowToken extends Token {
|
||||
class GruulWarPlowToken extends TokenImpl {
|
||||
|
||||
GruulWarPlowToken() {
|
||||
super("Juggernaut", "4/4 Juggernaut artifact creature");
|
||||
|
@ -79,4 +80,11 @@ class GruulWarPlowToken extends Token {
|
|||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
}
|
||||
public GruulWarPlowToken(final GruulWarPlowToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GruulWarPlowToken copy() {
|
||||
return new GruulWarPlowToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -69,7 +70,7 @@ public class GuardianIdol extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class GuardianIdolGolemToken extends Token {
|
||||
class GuardianIdolGolemToken extends TokenImpl {
|
||||
|
||||
public GuardianIdolGolemToken() {
|
||||
super("Golem", "2/2 Golem artifact creature token");
|
||||
|
@ -79,4 +80,11 @@ class GuardianIdolGolemToken extends Token {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
}
|
||||
public GuardianIdolGolemToken(final GuardianIdolGolemToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GuardianIdolGolemToken copy() {
|
||||
return new GuardianIdolGolemToken(this);
|
||||
}
|
||||
}
|
|
@ -44,6 +44,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
@ -86,7 +87,7 @@ public class GuardianZendikon extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class WallToken extends Token {
|
||||
class WallToken extends TokenImpl {
|
||||
|
||||
WallToken() {
|
||||
super("", "2/6 white wall creature with defender");
|
||||
|
@ -97,4 +98,11 @@ class WallToken extends Token {
|
|||
toughness = new MageInt(6);
|
||||
this.addAbility(DefenderAbility.getInstance());
|
||||
}
|
||||
public WallToken(final WallToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public WallToken copy() {
|
||||
return new WallToken(this);
|
||||
}
|
||||
}
|
|
@ -39,6 +39,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -66,7 +67,7 @@ public class HalcyonGlaze extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class HalcyonGlazeToken extends Token {
|
||||
class HalcyonGlazeToken extends TokenImpl {
|
||||
|
||||
HalcyonGlazeToken() {
|
||||
super("", "4/4 Illusion creature with flying");
|
||||
|
@ -76,4 +77,11 @@ class HalcyonGlazeToken extends Token {
|
|||
toughness = new MageInt(4);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public HalcyonGlazeToken(final HalcyonGlazeToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public HalcyonGlazeToken copy() {
|
||||
return new HalcyonGlazeToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ import mage.constants.Duration;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
/**
|
||||
|
@ -82,7 +83,7 @@ public class HauntedPlateMail extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class HauntedPlateMailToken extends Token {
|
||||
class HauntedPlateMailToken extends TokenImpl {
|
||||
|
||||
public HauntedPlateMailToken() {
|
||||
super("Spirit", "4/4 Spirit artifact creature that's no longer an Equipment");
|
||||
|
@ -92,4 +93,11 @@ class HauntedPlateMailToken extends Token {
|
|||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
}
|
||||
public HauntedPlateMailToken(final HauntedPlateMailToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public HauntedPlateMailToken copy() {
|
||||
return new HauntedPlateMailToken(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import mage.constants.Duration;
|
|||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.game.permanent.token.Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -78,7 +79,7 @@ public class HiddenAncients extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class HiddenAncientsTreefolk extends Token {
|
||||
class HiddenAncientsTreefolk extends TokenImpl {
|
||||
|
||||
public HiddenAncientsTreefolk() {
|
||||
super("Treefolk", "5/5 Treefolk creature");
|
||||
|
@ -87,4 +88,11 @@ class HiddenAncientsTreefolk extends Token {
|
|||
power = new MageInt(5);
|
||||
toughness = new MageInt(5);
|
||||
}
|
||||
public HiddenAncientsTreefolk(final HiddenAncientsTreefolk token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public HiddenAncientsTreefolk copy() {
|
||||
return new HiddenAncientsTreefolk(this);
|
||||
}
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue