* Some minor changes to logging and return code handling.

This commit is contained in:
LevelX2 2017-07-23 11:06:23 +02:00
parent 94be7cb4da
commit 4c33359fe2
22 changed files with 862 additions and 888 deletions

View file

@ -150,7 +150,7 @@ public class TableController {
} }
Optional<User> _user = UserManager.instance.getUser(userId); Optional<User> _user = UserManager.instance.getUser(userId);
if (!_user.isPresent()) { if (!_user.isPresent()) {
logger.fatal(new StringBuilder("couldn't get user ").append(name).append(" for join tournament userId = ").append(userId).toString()); logger.fatal("couldn't get user " + name + " for join tournament userId = " + userId);
return false; return false;
} }
User user = _user.get(); User user = _user.get();

View file

@ -27,6 +27,9 @@
*/ */
package mage.cards.a; package mage.cards.a;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
@ -51,10 +54,6 @@ import mage.game.permanent.token.ServoToken;
import mage.players.Player; import mage.players.Player;
import mage.target.common.TargetPermanentOrPlayer; import mage.target.common.TargetPermanentOrPlayer;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
/** /**
* *
* @author emerald000 * @author emerald000
@ -62,7 +61,7 @@ import java.util.UUID;
public class AnimationModule extends CardImpl { public class AnimationModule extends CardImpl {
public AnimationModule(UUID ownerId, CardSetInfo setInfo) { public AnimationModule(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// Whenever one or more +1/+1 counters are placed on a permanent you control, you may pay {1}. If you do, create a 1/1 colorless Servo artifact creature token. // Whenever one or more +1/+1 counters are placed on a permanent you control, you may pay {1}. If you do, create a 1/1 colorless Servo artifact creature token.
this.addAbility(new AnimationModuleTriggeredAbility()); this.addAbility(new AnimationModuleTriggeredAbility());
@ -150,8 +149,7 @@ class AnimationModuleEffect extends OneShotEffect {
Counter newCounter = new Counter(counter.getName()); Counter newCounter = new Counter(counter.getName());
permanent.addCounters(newCounter, source, game); permanent.addCounters(newCounter, source, game);
} }
} } else {
else {
Choice choice = new ChoiceImpl(true); Choice choice = new ChoiceImpl(true);
Set<String> choices = new HashSet<>(permanent.getCounters(game).size()); Set<String> choices = new HashSet<>(permanent.getCounters(game).size());
for (Counter counter : permanent.getCounters(game).values()) { for (Counter counter : permanent.getCounters(game).values()) {
@ -169,8 +167,7 @@ class AnimationModuleEffect extends OneShotEffect {
} }
} }
} }
} } else {
else {
Player player = game.getPlayer(this.getTargetPointer().getFirst(game, source)); Player player = game.getPlayer(this.getTargetPointer().getFirst(game, source));
if (player != null) { if (player != null) {
if (!player.getCounters().isEmpty()) { if (!player.getCounters().isEmpty()) {
@ -179,8 +176,7 @@ class AnimationModuleEffect extends OneShotEffect {
Counter newCounter = new Counter(counter.getName()); Counter newCounter = new Counter(counter.getName());
player.addCounters(newCounter, game); player.addCounters(newCounter, game);
} }
} } else {
else {
Choice choice = new ChoiceImpl(true); Choice choice = new ChoiceImpl(true);
Set<String> choices = new HashSet<>(player.getCounters().size()); Set<String> choices = new HashSet<>(player.getCounters().size());
for (Counter counter : player.getCounters().values()) { for (Counter counter : player.getCounters().values()) {
@ -200,6 +196,7 @@ class AnimationModuleEffect extends OneShotEffect {
} }
} }
} }
return true;
} }
return false; return false;
} }

View file

@ -27,9 +27,9 @@
*/ */
package mage.cards.a; package mage.cards.a;
import java.util.UUID;
import mage.MageObject; import mage.MageObject;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.LoyaltyAbility; import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility;
import mage.abilities.costs.Cost; import mage.abilities.costs.Cost;
@ -50,8 +50,6 @@ import mage.target.common.TargetOpponent;
import mage.target.targetpointer.FixedTarget; import mage.target.targetpointer.FixedTarget;
import mage.util.CardUtil; import mage.util.CardUtil;
import java.util.UUID;
/** /**
* *
* @author LevelX2 * @author LevelX2
@ -59,7 +57,7 @@ import java.util.UUID;
public class AshiokNightmareWeaver extends CardImpl { public class AshiokNightmareWeaver extends CardImpl {
public AshiokNightmareWeaver(UUID ownerId, CardSetInfo setInfo) { public AshiokNightmareWeaver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.PLANESWALKER},"{1}{U}{B}"); super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{1}{U}{B}");
this.subtype.add(SubType.ASHIOK); this.subtype.add(SubType.ASHIOK);
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3)); this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3));
@ -166,11 +164,10 @@ class AshiokNightmareWeaverPutIntoPlayEffect extends OneShotEffect {
effect.setTargetPointer(new FixedTarget(permanent, game)); effect.setTargetPointer(new FixedTarget(permanent, game));
game.addEffect(effect, source); game.addEffect(effect, source);
} }
return true;
} }
} }
} }
return false; return true;
} }
} }

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.b; package mage.cards.b;
import java.util.UUID;
import mage.Mana; import mage.Mana;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility; import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility;
@ -43,8 +44,6 @@ import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import java.util.UUID;
/** /**
* *
* @author markedagain * @author markedagain
@ -52,10 +51,10 @@ import java.util.UUID;
public class BlackMarket extends CardImpl { public class BlackMarket extends CardImpl {
public BlackMarket(UUID ownerId, CardSetInfo setInfo) { public BlackMarket(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}{B}"); super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}{B}");
// Whenever a creature dies, put a charge counter on Black Market. // Whenever a creature dies, put a charge counter on Black Market.
this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()),false )); this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), false));
// At the beginning of your precombat main phase, add {B} to your mana pool for each charge counter on Black Market. // At the beginning of your precombat main phase, add {B} to your mana pool for each charge counter on Black Market.
this.addAbility(new BeginningOfPreCombatMainTriggeredAbility(new BlackMarketEffect(), TargetController.YOU, false)); this.addAbility(new BeginningOfPreCombatMainTriggeredAbility(new BlackMarketEffect(), TargetController.YOU, false));
@ -70,6 +69,7 @@ public class BlackMarket extends CardImpl {
return new BlackMarket(this); return new BlackMarket(this);
} }
} }
class BlackMarketEffect extends OneShotEffect { class BlackMarketEffect extends OneShotEffect {
public BlackMarketEffect() { public BlackMarketEffect() {
@ -92,10 +92,10 @@ class BlackMarketEffect extends OneShotEffect {
Player player = game.getPlayer(source.getControllerId()); Player player = game.getPlayer(source.getControllerId());
if (sourcePermanent != null && player != null) { if (sourcePermanent != null && player != null) {
int chargeCounters = sourcePermanent.getCounters(game).getCount(CounterType.CHARGE); int chargeCounters = sourcePermanent.getCounters(game).getCount(CounterType.CHARGE);
if (chargeCounters > 0){ if (chargeCounters > 0) {
player.getManaPool().addMana(Mana.BlackMana(chargeCounters), game, source); player.getManaPool().addMana(Mana.BlackMana(chargeCounters), game, source);
return true;
} }
return true;
} }
return false; return false;
} }

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.c; package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Mode; import mage.abilities.Mode;
import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.costs.mana.GenericManaCost;
@ -48,8 +49,6 @@ import mage.players.Player;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
* *
* @author fireshoes * @author fireshoes
@ -65,7 +64,7 @@ public class CollectiveDefiance extends CardImpl {
} }
public CollectiveDefiance(UUID ownerId, CardSetInfo setInfo) { public CollectiveDefiance(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}{R}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}{R}");
// Escalate {1} // Escalate {1}
this.addAbility(new EscalateAbility(new GenericManaCost(1))); this.addAbility(new EscalateAbility(new GenericManaCost(1)));
@ -124,14 +123,14 @@ class CollectiveDefianceEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source));
if (targetPlayer != null) { if (targetPlayer != null) {
int count = targetPlayer.getHand().size(); int count = targetPlayer.getHand().size();
for (Card card : targetPlayer.getHand().getCards(game)) { for (Card card : targetPlayer.getHand().getCards(game)) {
targetPlayer.discard(card, source, game); targetPlayer.discard(card, source, game);
}
targetPlayer.drawCards(count, game);
return false;
} }
return true; targetPlayer.drawCards(count, game);
return true;
}
return false;
} }
} }

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.d; package mage.cards.d;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
@ -51,8 +52,6 @@ import mage.target.common.TargetCreatureOrPlaneswalker;
import mage.util.CardUtil; import mage.util.CardUtil;
import mage.util.GameLog; import mage.util.GameLog;
import java.util.UUID;
/** /**
* *
* @author jeffwadsworth * @author jeffwadsworth
@ -60,7 +59,7 @@ import java.util.UUID;
public class DragonlordSilumgar extends CardImpl { public class DragonlordSilumgar extends CardImpl {
public DragonlordSilumgar(UUID ownerId, CardSetInfo setInfo) { public DragonlordSilumgar(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{B}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{B}");
addSuperType(SuperType.LEGENDARY); addSuperType(SuperType.LEGENDARY);
this.subtype.add("Elder"); this.subtype.add("Elder");
this.subtype.add("Dragon"); this.subtype.add("Dragon");
@ -111,19 +110,21 @@ class DragonlordSilumgarEffect extends OneShotEffect {
Permanent sourcePermanent = game.getPermanent(source.getSourceId()); Permanent sourcePermanent = game.getPermanent(source.getSourceId());
Player controller = game.getPlayer(source.getControllerId()); Player controller = game.getPlayer(source.getControllerId());
Permanent target = game.getPermanent(getTargetPointer().getFirst(game, source)); Permanent target = game.getPermanent(getTargetPointer().getFirst(game, source));
if (controller != null && sourcePermanent != null) {
if (target != null && controller.getId().equals(sourcePermanent.getControllerId())) {
SourceHasRemainedInSameZoneCondition condition = new SourceHasRemainedInSameZoneCondition(sourcePermanent.getId());
if (controller != null && sourcePermanent != null && target != null && controller.getId().equals(sourcePermanent.getControllerId())) { game.addEffect(new ConditionalContinuousEffect(
SourceHasRemainedInSameZoneCondition condition = new SourceHasRemainedInSameZoneCondition(sourcePermanent.getId()); new GainControlTargetEffect(Duration.Custom),
new CompoundCondition(new SourceOnBattlefieldControlUnchangedCondition(), condition),
game.addEffect(new ConditionalContinuousEffect( null),
new GainControlTargetEffect(Duration.Custom), source);
new CompoundCondition(new SourceOnBattlefieldControlUnchangedCondition(), condition), if (!game.isSimulation()) {
null), game.informPlayers(sourcePermanent.getLogName() + ": " + controller.getLogName() + " gained control of " + target.getLogName());
source); }
if (!game.isSimulation()) { sourcePermanent.addInfo("gained control of", CardUtil.addToolTipMarkTags("Gained control of: " + GameLog.getColoredObjectIdNameForTooltip(target)), game);
game.informPlayers(sourcePermanent.getLogName() + ": " + controller.getLogName() + " gained control of " + target.getLogName());
} }
sourcePermanent.addInfo("gained control of", CardUtil.addToolTipMarkTags("Gained control of: " + GameLog.getColoredObjectIdNameForTooltip(target)), game); return true;
} }
return false; return false;
} }

View file

@ -27,9 +27,9 @@
*/ */
package mage.cards.e; package mage.cards.e;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.constants.ComparisonType;
import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
@ -46,8 +46,6 @@ import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
/** /**
* *
* @author fireshoes * @author fireshoes
@ -65,7 +63,7 @@ public class EzuriClawOfProgress extends CardImpl {
String rule = "Whenever a creature with power 2 or less enters the battlefield under your control, you get an experience counter."; String rule = "Whenever a creature with power 2 or less enters the battlefield under your control, you get an experience counter.";
public EzuriClawOfProgress(UUID ownerId, CardSetInfo setInfo) { public EzuriClawOfProgress(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{U}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{U}");
addSuperType(SuperType.LEGENDARY); addSuperType(SuperType.LEGENDARY);
this.subtype.add("Elf"); this.subtype.add("Elf");
this.subtype.add("Warrior"); this.subtype.add("Warrior");
@ -110,14 +108,14 @@ class EzuriClawOfProgressEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Permanent target = game.getPermanent(source.getFirstTarget());
if (target == null) {
return false;
}
Player controller = game.getPlayer(source.getControllerId()); Player controller = game.getPlayer(source.getControllerId());
if (controller != null) { if (controller != null) {
int amount = controller.getCounters().getCount(CounterType.EXPERIENCE); Permanent target = game.getPermanent(getTargetPointer().getFirst(game, source));
target.addCounters(CounterType.P1P1.createInstance(amount), source, game); if (target != null) {
int amount = controller.getCounters().getCount(CounterType.EXPERIENCE);
target.addCounters(CounterType.P1P1.createInstance(amount), source, game);
}
return true;
} }
return false; return false;
} }

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.Mana; import mage.Mana;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.OpeningHandAction; import mage.abilities.OpeningHandAction;
@ -53,8 +54,6 @@ import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInHand;
import java.util.UUID;
/** /**
* *
* @author emerald000 * @author emerald000
@ -159,6 +158,7 @@ class GemstoneCavernsEffect extends OneShotEffect {
} }
} }
} }
return true;
} }
return false; return false;
} }

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.DiesCreatureTriggeredAbility;
@ -42,8 +43,6 @@ import mage.constants.CardType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreatureOrPlayer;
import java.util.UUID;
/** /**
* *
* @author jonubuu * @author jonubuu
@ -51,7 +50,7 @@ import java.util.UUID;
public class GoblinSharpshooter extends CardImpl { public class GoblinSharpshooter extends CardImpl {
public GoblinSharpshooter(UUID ownerId, CardSetInfo setInfo) { public GoblinSharpshooter(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
this.subtype.add("Goblin"); this.subtype.add("Goblin");
this.power = new MageInt(1); this.power = new MageInt(1);
@ -61,7 +60,7 @@ public class GoblinSharpshooter extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// Whenever a creature dies, untap Goblin Sharpshooter. // Whenever a creature dies, untap Goblin Sharpshooter.
this.addAbility(new DiesCreatureTriggeredAbility(new UntapSourceEffect(), false)); this.addAbility(new DiesCreatureTriggeredAbility(new UntapSourceEffect(), false));
// {tap}: Goblin Sharpshooter deals 1 damage to target creature or player. // {T}: Goblin Sharpshooter deals 1 damage to target creature or player.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
ability.addTarget(new TargetCreatureOrPlayer()); ability.addTarget(new TargetCreatureOrPlayer());
this.addAbility(ability); this.addAbility(ability);

View file

@ -28,6 +28,7 @@
package mage.cards.g; package mage.cards.g;
import java.util.UUID; import java.util.UUID;
import mage.MageObject;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.BeginningOfCombatTriggeredAbility;
@ -79,7 +80,7 @@ public class GodPharaohsGift extends CardImpl {
class GodPharaohsGiftEffect extends OneShotEffect { class GodPharaohsGiftEffect extends OneShotEffect {
private static final FilterCreatureCard filter = new FilterCreatureCard("creature card from your graveyard"); private static final FilterCreatureCard filter = new FilterCreatureCard("creature card from your graveyard");
private UUID exileId = UUID.randomUUID(); private final UUID exileId = UUID.randomUUID();
public GodPharaohsGiftEffect() { public GodPharaohsGiftEffect() {
super(Outcome.PutCreatureInPlay); super(Outcome.PutCreatureInPlay);
@ -98,31 +99,33 @@ class GodPharaohsGiftEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId()); Player controller = game.getPlayer(source.getControllerId());
TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(filter); MageObject sourceObject = source.getSourceObject(game);
target.setNotTarget(true); if (controller != null && sourceObject != null) {
if (controller != null TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(filter);
&& !controller.getGraveyard().getCards(filter, game).isEmpty() target.setNotTarget(true);
&& controller.choose(Outcome.PutCreatureInPlay, target, source.getId(), game)) { if (!controller.getGraveyard().getCards(filter, game).isEmpty()
Card cardChosen = game.getCard(target.getFirstTarget()); && controller.choose(Outcome.PutCreatureInPlay, target, source.getId(), game)) {
if (cardChosen != null Card cardChosen = game.getCard(target.getFirstTarget());
&& cardChosen.moveToExile(exileId, "God-Pharaoh's Gift", source.getId(), game)) { if (cardChosen != null
EmptyToken token = new EmptyToken(); && cardChosen.moveToExile(exileId, sourceObject.getIdName(), source.getSourceId(), game)) {
CardUtil.copyTo(token).from(cardChosen); EmptyToken token = new EmptyToken();
token.getPower().modifyBaseValue(4); CardUtil.copyTo(token).from(cardChosen);
token.getToughness().modifyBaseValue(4); token.getPower().modifyBaseValue(4);
token.getColor(game).setColor(ObjectColor.BLACK); token.getToughness().modifyBaseValue(4);
token.getSubtype(game).clear(); token.getColor(game).setColor(ObjectColor.BLACK);
token.getSubtype(game).add("Zombie"); token.getSubtype(game).clear();
if (token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId())) { token.getSubtype(game).add("Zombie");
Permanent tokenPermanent = game.getPermanent(token.getLastAddedToken()); if (token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId())) {
if (tokenPermanent != null) { Permanent tokenPermanent = game.getPermanent(token.getLastAddedToken());
ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); if (tokenPermanent != null) {
effect.setTargetPointer(new FixedTarget(tokenPermanent.getId())); ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn);
game.addEffect(effect, source); effect.setTargetPointer(new FixedTarget(tokenPermanent.getId()));
return true; game.addEffect(effect, source);
}
} }
} }
} }
return true;
} }
return false; return false;
} }

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.n; package mage.cards.n;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
@ -49,8 +50,6 @@ import mage.filter.predicate.permanent.TokenPredicate;
import mage.game.permanent.token.DroidToken; import mage.game.permanent.token.DroidToken;
import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/** /**
* *
* @author Styxo * @author Styxo

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.r; package mage.cards.r;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CopyTargetSpellEffect; import mage.abilities.effects.common.CopyTargetSpellEffect;
@ -43,8 +44,6 @@ import mage.game.stack.Spell;
import mage.players.Player; import mage.players.Player;
import mage.target.TargetSpell; import mage.target.TargetSpell;
import java.util.UUID;
/** /**
* *
* @author LevelX2 * @author LevelX2
@ -97,7 +96,7 @@ class RefuseEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId()); Player controller = game.getPlayer(source.getControllerId());
if (controller != null) { if (controller != null) {
Spell spell = game.getStack().getSpell(source.getFirstTarget()); Spell spell = game.getStack().getSpell(getTargetPointer().getFirst(game, source));
if (spell != null) { if (spell != null) {
Player spellController = game.getPlayer(spell.getControllerId()); Player spellController = game.getPlayer(spell.getControllerId());
if (spellController != null) { if (spellController != null) {

View file

@ -27,6 +27,7 @@
*/ */
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Mode; import mage.abilities.Mode;
@ -42,8 +43,6 @@ import mage.players.Player;
import mage.target.Target; import mage.target.Target;
import mage.util.CardUtil; import mage.util.CardUtil;
import java.util.UUID;
/** /**
* *
* @author Styxo * @author Styxo
@ -51,7 +50,7 @@ import java.util.UUID;
public class SenatorLottDod extends CardImpl { public class SenatorLottDod extends CardImpl {
public SenatorLottDod(UUID ownerId, CardSetInfo setInfo) { public SenatorLottDod(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{B}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{B}");
addSuperType(SuperType.LEGENDARY); addSuperType(SuperType.LEGENDARY);
this.subtype.add("Neimoidian"); this.subtype.add("Neimoidian");
this.subtype.add("Advisor"); this.subtype.add("Advisor");

View file

@ -27,8 +27,13 @@
*/ */
package mage.abilities.effects; package mage.abilities.effects;
import java.io.Serializable;
import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import mage.MageObject; import mage.MageObject;
import mage.abilities.*; import mage.abilities.*;
import mage.abilities.effects.common.continuous.CommanderReplacementEffect;
import mage.abilities.keyword.SpliceOntoArcaneAbility; import mage.abilities.keyword.SpliceOntoArcaneAbility;
import mage.cards.Cards; import mage.cards.Cards;
import mage.cards.CardsImpl; import mage.cards.CardsImpl;
@ -49,11 +54,6 @@ import mage.players.Player;
import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInHand;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import java.io.Serializable;
import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
/** /**
* @author BetaSteward_at_googlemail.com * @author BetaSteward_at_googlemail.com
*/ */
@ -85,7 +85,6 @@ public class ContinuousEffects implements Serializable {
// note all effect/abilities that were only added temporary // note all effect/abilities that were only added temporary
private final Map<ContinuousEffect, Set<Ability>> temporaryEffects = new HashMap<>(); private final Map<ContinuousEffect, Set<Ability>> temporaryEffects = new HashMap<>();
public ContinuousEffects() { public ContinuousEffects() {
applyCounters = new ApplyCountersEffect(); applyCounters = new ApplyCountersEffect();
planeswalkerRedirectionEffect = new PlaneswalkerRedirectionEffect(); planeswalkerRedirectionEffect = new PlaneswalkerRedirectionEffect();
@ -241,7 +240,7 @@ public class ContinuousEffects implements Serializable {
} }
private List<ContinuousEffect> filterLayeredEffects(List<ContinuousEffect> effects, Layer layer) { private List<ContinuousEffect> filterLayeredEffects(List<ContinuousEffect> effects, Layer layer) {
return effects.stream().filter(effect->effect.hasLayer(layer)).collect(Collectors.toList()); return effects.stream().filter(effect -> effect.hasLayer(layer)).collect(Collectors.toList());
} }
public Map<RequirementEffect, Set<Ability>> getApplicableRequirementEffects(Permanent permanent, Game game) { public Map<RequirementEffect, Set<Ability>> getApplicableRequirementEffects(Permanent permanent, Game game) {
@ -1254,7 +1253,9 @@ public class ContinuousEffects implements Serializable {
} }
} }
} else { } else {
logger.warn("Ability without sourceId:" + ability.getRule()); if (!(effect instanceof CommanderReplacementEffect)) {
logger.warn("Ability without sourceId:" + ability.getRule());
}
} }
} }
} }

View file

@ -68,7 +68,8 @@ public class PutTopCardOfLibraryIntoGraveTargetEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(targetPointer.getFirst(game, source)); Player player = game.getPlayer(targetPointer.getFirst(game, source));
if (player != null) { if (player != null) {
return player.moveCards(player.getLibrary().getTopCards(game, numberCards.calculate(game, source, this)), Zone.GRAVEYARD, source, game); player.moveCards(player.getLibrary().getTopCards(game, numberCards.calculate(game, source, this)), Zone.GRAVEYARD, source, game);
return true;
} }
return false; return false;
} }

View file

@ -74,14 +74,10 @@ public class ReturnSourceFromGraveyardToBattlefieldEffect extends OneShotEffect
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
if (game.getState().getZone(source.getSourceId()) != Zone.GRAVEYARD) {
return false;
}
Card card = game.getCard(source.getSourceId()); Card card = game.getCard(source.getSourceId());
if (card == null) { if (card == null) {
return false; return false;
} }
Player player; Player player;
if (ownerControl) { if (ownerControl) {
player = game.getPlayer(card.getOwnerId()); player = game.getPlayer(card.getOwnerId());
@ -91,7 +87,10 @@ public class ReturnSourceFromGraveyardToBattlefieldEffect extends OneShotEffect
if (player == null) { if (player == null) {
return false; return false;
} }
return player.moveCards(card, Zone.BATTLEFIELD, source, game, tapped, false, true, null); if (game.getState().getZone(source.getSourceId()) == Zone.GRAVEYARD) {
player.moveCards(card, Zone.BATTLEFIELD, source, game, tapped, false, true, null);
}
return true;
} }
private void setText() { private void setText() {

View file

@ -27,11 +27,11 @@
*/ */
package mage.abilities.effects.common; package mage.abilities.effects.common;
import mage.constants.Outcome;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.constants.Outcome;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.filter.predicate.permanent.ControllerIdPredicate;
import mage.game.Game; import mage.game.Game;
@ -45,17 +45,17 @@ import mage.util.CardUtil;
* *
* @author maurer.it_at_gmail.com * @author maurer.it_at_gmail.com
*/ */
public class SacrificeEffect extends OneShotEffect{ public class SacrificeEffect extends OneShotEffect {
private FilterPermanent filter; private FilterPermanent filter;
private String preText; private String preText;
private DynamicValue count; private DynamicValue count;
public SacrificeEffect (FilterPermanent filter, int count, String preText ) { public SacrificeEffect(FilterPermanent filter, int count, String preText) {
this(filter, new StaticValue(count), preText); this(filter, new StaticValue(count), preText);
} }
public SacrificeEffect (FilterPermanent filter, DynamicValue count, String preText ) { public SacrificeEffect(FilterPermanent filter, DynamicValue count, String preText) {
super(Outcome.Sacrifice); super(Outcome.Sacrifice);
this.filter = filter; this.filter = filter;
this.count = count; this.count = count;
@ -63,7 +63,7 @@ public class SacrificeEffect extends OneShotEffect{
setText(); setText();
} }
public SacrificeEffect (final SacrificeEffect effect ) { public SacrificeEffect(final SacrificeEffect effect) {
super(effect); super(effect);
this.filter = effect.filter; this.filter = effect.filter;
this.count = effect.count; this.count = effect.count;
@ -87,24 +87,20 @@ public class SacrificeEffect extends OneShotEffect{
Target target = new TargetPermanent(amount, amount, newFilter, true); Target target = new TargetPermanent(amount, amount, newFilter, true);
// A spell or ability could have removed the only legal target this player
// had, if thats the case this ability should fizzle.
if (amount > 0 && target.canChoose(source.getSourceId(), player.getId(), game)) { if (amount > 0 && target.canChoose(source.getSourceId(), player.getId(), game)) {
while (!target.isChosen() && target.canChoose(player.getId(), game) && player.canRespond()) { while (!target.isChosen() && target.canChoose(player.getId(), game) && player.canRespond()) {
player.chooseTarget(Outcome.Sacrifice, target, source, game); player.chooseTarget(Outcome.Sacrifice, target, source, game);
} }
for ( int idx = 0; idx < target.getTargets().size(); idx++) { for (int idx = 0; idx < target.getTargets().size(); idx++) {
Permanent permanent = game.getPermanent(target.getTargets().get(idx)); Permanent permanent = game.getPermanent(target.getTargets().get(idx));
if ( permanent != null ) { if (permanent != null) {
permanent.sacrifice(source.getSourceId(), game); permanent.sacrifice(source.getSourceId(), game);
} }
} }
return true;
} }
return false; return true;
} }
public void setAmount(DynamicValue amount) { public void setAmount(DynamicValue amount) {

View file

@ -24,13 +24,12 @@
* The views and conclusions contained in the software and documentation are those of the * 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 * authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com. * or implied, of BetaSteward_at_googlemail.com.
*/ */
package mage.abilities.effects.common; package mage.abilities.effects.common;
import mage.constants.Outcome;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.constants.Outcome;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
@ -41,22 +40,21 @@ import mage.game.permanent.Permanent;
public class UntapSourceEffect extends OneShotEffect { public class UntapSourceEffect extends OneShotEffect {
public UntapSourceEffect() { public UntapSourceEffect() {
super(Outcome.Untap); super(Outcome.Untap);
staticText = "untap {this}"; staticText = "untap {this}";
} }
public UntapSourceEffect(final UntapSourceEffect effect) { public UntapSourceEffect(final UntapSourceEffect effect) {
super(effect); super(effect);
} }
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Permanent permanent = game.getPermanent(source.getSourceId()); Permanent permanent = game.getPermanent(source.getSourceId());
if (permanent != null) { if (permanent != null) {
permanent.untap(game); permanent.untap(game);
return true;
} }
return false; return true;
} }
@Override @Override
@ -64,4 +62,4 @@ public class UntapSourceEffect extends OneShotEffect {
return new UntapSourceEffect(this); return new UntapSourceEffect(this);
} }
} }

View file

@ -123,7 +123,7 @@ public class AddCountersTargetEffect extends OneShotEffect {
return true; return true;
} }
} }
return affectedTargets > 0; return true;
} }
return false; return false;
} }

View file

@ -76,20 +76,19 @@ public class RemoveCounterTargetEffect extends OneShotEffect {
game.informPlayers("Removed " + toRemove.getCount() + ' ' + toRemove.getName() game.informPlayers("Removed " + toRemove.getCount() + ' ' + toRemove.getName()
+ " counter from " + p.getName()); + " counter from " + p.getName());
} }
return true; }
} else {
Card c = game.getCard(targetPointer.getFirst(game, source));
if (c != null && counter != null && c.getCounters(game).getCount(counter.getName()) >= counter.getCount()) {
c.removeCounters(counter.getName(), counter.getCount(), game);
if (!game.isSimulation()) {
game.informPlayers(new StringBuilder("Removed ").append(counter.getCount()).append(' ').append(counter.getName())
.append(" counter from ").append(c.getName())
.append(" (").append(c.getCounters(game).getCount(counter.getName())).append(" left)").toString());
}
} }
} }
Card c = game.getCard(targetPointer.getFirst(game, source)); return true;
if (c != null && counter != null && c.getCounters(game).getCount(counter.getName()) >= counter.getCount()) {
c.removeCounters(counter.getName(), counter.getCount(), game);
if (!game.isSimulation()) {
game.informPlayers(new StringBuilder("Removed ").append(counter.getCount()).append(' ').append(counter.getName())
.append(" counter from ").append(c.getName())
.append(" (").append(c.getCounters(game).getCount(counter.getName())).append(" left)").toString());
}
return true;
}
return false;
} }
private Counter selectCounterType(Game game, Ability source, Permanent permanent) { private Counter selectCounterType(Game game, Ability source, Permanent permanent) {

View file

@ -27,6 +27,7 @@
*/ */
package mage.abilities.keyword; package mage.abilities.keyword;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.SpellAbility; import mage.abilities.SpellAbility;
import mage.abilities.costs.Cost; import mage.abilities.costs.Cost;
@ -48,8 +49,6 @@ import mage.game.events.ZoneChangeEvent;
import mage.players.Player; import mage.players.Player;
import mage.target.targetpointer.FixedTarget; import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/** /**
* 702.32. Flashback * 702.32. Flashback
* *
@ -232,12 +231,10 @@ class FlashbackEffect extends OneShotEffect {
ContinuousEffect effect = new FlashbackReplacementEffect(); ContinuousEffect effect = new FlashbackReplacementEffect();
effect.setTargetPointer(new FixedTarget(source.getSourceId(), game.getState().getZoneChangeCounter(source.getSourceId()))); effect.setTargetPointer(new FixedTarget(source.getSourceId(), game.getState().getZoneChangeCounter(source.getSourceId())));
game.addEffect(effect, source); game.addEffect(effect, source);
return true;
} }
return false; return true;
} }
} }
return false; return false;
} }

View file

@ -1,18 +1,15 @@
package mage.constants; package mage.constants;
import mage.util.SubTypeList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import mage.util.SubTypeList;
public enum SubType { public enum SubType {
//205.3k Instants and sorceries share their lists of subtypes; these subtypes are called spell types. //205.3k Instants and sorceries share their lists of subtypes; these subtypes are called spell types.
ARCANE("Arcane", SubTypeSet.SpellType, false), ARCANE("Arcane", SubTypeSet.SpellType, false),
TRAP("Trap", SubTypeSet.SpellType, false), TRAP("Trap", SubTypeSet.SpellType, false),
// 205.3i: Lands have their own unique set of subtypes; these subtypes are called land types. // 205.3i: Lands have their own unique set of subtypes; these subtypes are called land types.
// Of that list, Forest, Island, Mountain, Plains, and Swamp are the basic land types. // Of that list, Forest, Island, Mountain, Plains, and Swamp are the basic land types.
FOREST("Forest", SubTypeSet.BasicLandType, false), FOREST("Forest", SubTypeSet.BasicLandType, false),
@ -28,27 +25,25 @@ public enum SubType {
MINE("Mine", SubTypeSet.NonBasicLandType, false), MINE("Mine", SubTypeSet.NonBasicLandType, false),
POWER_PLANT("Power-Plant", SubTypeSet.NonBasicLandType, false), POWER_PLANT("Power-Plant", SubTypeSet.NonBasicLandType, false),
TOWER("Tower", SubTypeSet.NonBasicLandType, false), TOWER("Tower", SubTypeSet.NonBasicLandType, false),
// 205.3h Enchantments have their own unique set of subtypes; these subtypes are called enchantment types. // 205.3h Enchantments have their own unique set of subtypes; these subtypes are called enchantment types.
AURA("Aura", SubTypeSet.EnchantmentType, false), AURA("Aura", SubTypeSet.EnchantmentType, false),
CARTOUCHE("Cartouche", SubTypeSet.EnchantmentType, false), CARTOUCHE("Cartouche", SubTypeSet.EnchantmentType, false),
CURSE("Curse", SubTypeSet.EnchantmentType, false), CURSE("Curse", SubTypeSet.EnchantmentType, false),
SHRINE("Shrine", SubTypeSet.EnchantmentType, false), SHRINE("Shrine", SubTypeSet.EnchantmentType, false),
// 205.3g: Artifacts have their own unique set of subtypes; these subtypes are called artifact types. // 205.3g: Artifacts have their own unique set of subtypes; these subtypes are called artifact types.
CLUE("Clue", SubTypeSet.ArtifactType, false), CLUE("Clue", SubTypeSet.ArtifactType, false),
CONTRAPTION("Contraption", SubTypeSet.ArtifactType, false), CONTRAPTION("Contraption", SubTypeSet.ArtifactType, false),
EQUIPMENT("Equipment", SubTypeSet.ArtifactType, false), EQUIPMENT("Equipment", SubTypeSet.ArtifactType, false),
FORTIFICATION("Fortification", SubTypeSet.ArtifactType, false), FORTIFICATION("Fortification", SubTypeSet.ArtifactType, false),
VEHICLE("Vehicle", SubTypeSet.ArtifactType, false), VEHICLE("Vehicle", SubTypeSet.ArtifactType, false),
// 205.3m : Creatures and tribals share their lists of subtypes; these subtypes are called creature types. // 205.3m : Creatures and tribals share their lists of subtypes; these subtypes are called creature types.
// A
ADVISOR("Advisor", SubTypeSet.CreatureType, false), ADVISOR("Advisor", SubTypeSet.CreatureType, false),
AETHERBORN("Aetherborn", SubTypeSet.CreatureType, false), AETHERBORN("Aetherborn", SubTypeSet.CreatureType, false),
ALLY("Ally", SubTypeSet.CreatureType, false), ALLY("Ally", SubTypeSet.CreatureType, false),
ANGEL("Angel", SubTypeSet.CreatureType, false), ANGEL("Angel", SubTypeSet.CreatureType, false),
ANTELOPE("Antelope", SubTypeSet.CreatureType, false), ANTELOPE("Antelope", SubTypeSet.CreatureType, false),
AQUALISH("Aqualish", SubTypeSet.CreatureType, true), // Star Wars AQUALISH("Aqualish", SubTypeSet.CreatureType, true), // Star Wars
APE("Ape", SubTypeSet.CreatureType, false), APE("Ape", SubTypeSet.CreatureType, false),
ARCONA("Arcona", SubTypeSet.CreatureType, true), ARCONA("Arcona", SubTypeSet.CreatureType, true),
ARCHER("Archer", SubTypeSet.CreatureType, false), ARCHER("Archer", SubTypeSet.CreatureType, false),
@ -61,7 +56,7 @@ public enum SubType {
ATAT("AT-AT", SubTypeSet.CreatureType, true), ATAT("AT-AT", SubTypeSet.CreatureType, true),
AUROCHS("Aurochs", SubTypeSet.CreatureType, false), AUROCHS("Aurochs", SubTypeSet.CreatureType, false),
AVATAR("Avatar", SubTypeSet.CreatureType, false), AVATAR("Avatar", SubTypeSet.CreatureType, false),
// B
BADGER("Badger", SubTypeSet.CreatureType, false), BADGER("Badger", SubTypeSet.CreatureType, false),
BARBARIAN("Barbarian", SubTypeSet.CreatureType, false), BARBARIAN("Barbarian", SubTypeSet.CreatureType, false),
BASILISK("Basilisk", SubTypeSet.CreatureType, false), BASILISK("Basilisk", SubTypeSet.CreatureType, false),
@ -71,20 +66,20 @@ public enum SubType {
BEEBLE("Beeble", SubTypeSet.CreatureType, false), BEEBLE("Beeble", SubTypeSet.CreatureType, false),
BERSERKER("Berserker", SubTypeSet.CreatureType, false), BERSERKER("Berserker", SubTypeSet.CreatureType, false),
BIRD("Bird", SubTypeSet.CreatureType, false), BIRD("Bird", SubTypeSet.CreatureType, false),
BITH("Bith", SubTypeSet.CreatureType, true), // Star Wars BITH("Bith", SubTypeSet.CreatureType, true), // Star Wars
BLINKMOTH("Blinkmoth", SubTypeSet.CreatureType, false), BLINKMOTH("Blinkmoth", SubTypeSet.CreatureType, false),
BOAR("Boar", SubTypeSet.CreatureType, false), BOAR("Boar", SubTypeSet.CreatureType, false),
BRINGER("Bringer", SubTypeSet.CreatureType, false), BRINGER("Bringer", SubTypeSet.CreatureType, false),
BRUSHWAGG("Brushwagg", SubTypeSet.CreatureType, false), BRUSHWAGG("Brushwagg", SubTypeSet.CreatureType, false),
// C
CALAMARI("Calamari", SubTypeSet.CreatureType, true), // Star Wars CALAMARI("Calamari", SubTypeSet.CreatureType, true), // Star Wars
CAMARID("Camarid", SubTypeSet.CreatureType, false), CAMARID("Camarid", SubTypeSet.CreatureType, false),
CAMEL("Camel", SubTypeSet.CreatureType, false), CAMEL("Camel", SubTypeSet.CreatureType, false),
CARIBOU("Caribou", SubTypeSet.CreatureType, false), CARIBOU("Caribou", SubTypeSet.CreatureType, false),
CARRIER("Carrier", SubTypeSet.CreatureType, false), CARRIER("Carrier", SubTypeSet.CreatureType, false),
CAT("Cat", SubTypeSet.CreatureType, false), CAT("Cat", SubTypeSet.CreatureType, false),
CENTAUR("Centaur", SubTypeSet.CreatureType, false), CENTAUR("Centaur", SubTypeSet.CreatureType, false),
CEREAN("Cerean", SubTypeSet.CreatureType, true), // Star Wars CEREAN("Cerean", SubTypeSet.CreatureType, true), // Star Wars
CEPHALID("Cephalid", SubTypeSet.CreatureType, false), CEPHALID("Cephalid", SubTypeSet.CreatureType, false),
CHIMERA("Chimera", SubTypeSet.CreatureType, false), CHIMERA("Chimera", SubTypeSet.CreatureType, false),
CHISS("Chiss", SubTypeSet.CreatureType, true), CHISS("Chiss", SubTypeSet.CreatureType, true),
@ -95,10 +90,10 @@ public enum SubType {
COWARD("Coward", SubTypeSet.CreatureType, false), COWARD("Coward", SubTypeSet.CreatureType, false),
CRAB("Crab", SubTypeSet.CreatureType, false), CRAB("Crab", SubTypeSet.CreatureType, false),
CROCODILE("Crocodile", SubTypeSet.CreatureType, false), CROCODILE("Crocodile", SubTypeSet.CreatureType, false),
CYBORG("Cyborg", SubTypeSet.CreatureType, true), // Star Wars CYBORG("Cyborg", SubTypeSet.CreatureType, true), // Star Wars
CYCLOPS("Cyclops", SubTypeSet.CreatureType, false), CYCLOPS("Cyclops", SubTypeSet.CreatureType, false),
// D
DATHOMIRIAN("Dathomirian", SubTypeSet.CreatureType, true), // Star Wars DATHOMIRIAN("Dathomirian", SubTypeSet.CreatureType, true), // Star Wars
DAUTHI("Dauthi", SubTypeSet.CreatureType, false), DAUTHI("Dauthi", SubTypeSet.CreatureType, false),
DEMON("Demon", SubTypeSet.CreatureType, false), DEMON("Demon", SubTypeSet.CreatureType, false),
DESERTER("Deserter", SubTypeSet.CreatureType, false), DESERTER("Deserter", SubTypeSet.CreatureType, false),
@ -109,10 +104,10 @@ public enum SubType {
DREADNOUGHT("Dreadnought", SubTypeSet.CreatureType, false), DREADNOUGHT("Dreadnought", SubTypeSet.CreatureType, false),
DRONE("Drone", SubTypeSet.CreatureType, false), DRONE("Drone", SubTypeSet.CreatureType, false),
DRUID("Druid", SubTypeSet.CreatureType, false), DRUID("Druid", SubTypeSet.CreatureType, false),
DROID("Droid", SubTypeSet.CreatureType, true), // Star Wars DROID("Droid", SubTypeSet.CreatureType, true), // Star Wars
DRYAD("Dryad", SubTypeSet.CreatureType, false), DRYAD("Dryad", SubTypeSet.CreatureType, false),
DWARF("Dwarf", SubTypeSet.CreatureType, false), DWARF("Dwarf", SubTypeSet.CreatureType, false),
// E
EFREET("Efreet", SubTypeSet.CreatureType, false), EFREET("Efreet", SubTypeSet.CreatureType, false),
ELDER("Elder", SubTypeSet.CreatureType, false), ELDER("Elder", SubTypeSet.CreatureType, false),
ELDRAZI("Eldrazi", SubTypeSet.CreatureType, false), ELDRAZI("Eldrazi", SubTypeSet.CreatureType, false),
@ -121,8 +116,8 @@ public enum SubType {
ELF("Elf", SubTypeSet.CreatureType, false), ELF("Elf", SubTypeSet.CreatureType, false),
ELK("Elk", SubTypeSet.CreatureType, false), ELK("Elk", SubTypeSet.CreatureType, false),
EYE("Eye", SubTypeSet.CreatureType, false), EYE("Eye", SubTypeSet.CreatureType, false),
EWOK("Ewok", SubTypeSet.CreatureType, true), // Star Wars EWOK("Ewok", SubTypeSet.CreatureType, true), // Star Wars
// F
FAERIE("Faerie", SubTypeSet.CreatureType, false), FAERIE("Faerie", SubTypeSet.CreatureType, false),
FERRET("Ferret", SubTypeSet.CreatureType, false), FERRET("Ferret", SubTypeSet.CreatureType, false),
FISH("Fish", SubTypeSet.CreatureType, false), FISH("Fish", SubTypeSet.CreatureType, false),
@ -130,9 +125,9 @@ public enum SubType {
FOX("Fox", SubTypeSet.CreatureType, false), FOX("Fox", SubTypeSet.CreatureType, false),
FROG("Frog", SubTypeSet.CreatureType, false), FROG("Frog", SubTypeSet.CreatureType, false),
FUNGUS("Fungus", SubTypeSet.CreatureType, false), FUNGUS("Fungus", SubTypeSet.CreatureType, false),
// G
GAMORREAN("Gamorrean", SubTypeSet.CreatureType, true), // Star Wars GAMORREAN("Gamorrean", SubTypeSet.CreatureType, true), // Star Wars
GAND("Gand", SubTypeSet.CreatureType, true), // Star Wars GAND("Gand", SubTypeSet.CreatureType, true), // Star Wars
GARGOYLE("Gargoyle", SubTypeSet.CreatureType, false), GARGOYLE("Gargoyle", SubTypeSet.CreatureType, false),
GERM("Germ", SubTypeSet.CreatureType, false), GERM("Germ", SubTypeSet.CreatureType, false),
GIANT("Giant", SubTypeSet.CreatureType, false), GIANT("Giant", SubTypeSet.CreatureType, false),
@ -145,8 +140,8 @@ public enum SubType {
GRAVEBORN("Graveborn", SubTypeSet.CreatureType, false), GRAVEBORN("Graveborn", SubTypeSet.CreatureType, false),
GREMLIN("Gremlin", SubTypeSet.CreatureType, false), GREMLIN("Gremlin", SubTypeSet.CreatureType, false),
GRIFFIN("Griffin", SubTypeSet.CreatureType, false), GRIFFIN("Griffin", SubTypeSet.CreatureType, false),
GUNGAN("Gungan", SubTypeSet.CreatureType, true), // Star Wars GUNGAN("Gungan", SubTypeSet.CreatureType, true), // Star Wars
// H
HAG("Hag", SubTypeSet.CreatureType, false), HAG("Hag", SubTypeSet.CreatureType, false),
HARPY("Harpy", SubTypeSet.CreatureType, false), HARPY("Harpy", SubTypeSet.CreatureType, false),
HELLION("Hellion", SubTypeSet.CreatureType, false), HELLION("Hellion", SubTypeSet.CreatureType, false),
@ -159,23 +154,23 @@ public enum SubType {
HOUND("Hound", SubTypeSet.CreatureType, false), HOUND("Hound", SubTypeSet.CreatureType, false),
HUMAN("Human", SubTypeSet.CreatureType, false), HUMAN("Human", SubTypeSet.CreatureType, false),
HUNTER("Hunter", SubTypeSet.CreatureType, false), HUNTER("Hunter", SubTypeSet.CreatureType, false),
HUTT("Hutt", SubTypeSet.CreatureType, true), // Star Wars HUTT("Hutt", SubTypeSet.CreatureType, true), // Star Wars
HYDRA("Hydra", SubTypeSet.CreatureType, false), HYDRA("Hydra", SubTypeSet.CreatureType, false),
HYENA("Hyena", SubTypeSet.CreatureType, false), HYENA("Hyena", SubTypeSet.CreatureType, false),
// I
ILLUSION("Illusion", SubTypeSet.CreatureType, false), ILLUSION("Illusion", SubTypeSet.CreatureType, false),
IMP("Imp", SubTypeSet.CreatureType, false), IMP("Imp", SubTypeSet.CreatureType, false),
INCARNATION("Incarnation", SubTypeSet.CreatureType, false), INCARNATION("Incarnation", SubTypeSet.CreatureType, false),
INSECT("Insect", SubTypeSet.CreatureType, false), INSECT("Insect", SubTypeSet.CreatureType, false),
ITHORIAN("Ithorian", SubTypeSet.CreatureType, true), // Star Wars ITHORIAN("Ithorian", SubTypeSet.CreatureType, true), // Star Wars
// J
JACKAL("Jackal", SubTypeSet.CreatureType, false), JACKAL("Jackal", SubTypeSet.CreatureType, false),
JAWA("Jawa", SubTypeSet.CreatureType, true), JAWA("Jawa", SubTypeSet.CreatureType, true),
JEDI("Jedi", SubTypeSet.CreatureType, true), // Star Wars JEDI("Jedi", SubTypeSet.CreatureType, true), // Star Wars
JELLYFISH("Jellyfish", SubTypeSet.CreatureType, false), JELLYFISH("Jellyfish", SubTypeSet.CreatureType, false),
JUGGERNAUT("Juggernaut", SubTypeSet.CreatureType, false), JUGGERNAUT("Juggernaut", SubTypeSet.CreatureType, false),
// K
KALEESH("Kaleesh", SubTypeSet.CreatureType, true), // Star Wars KALEESH("Kaleesh", SubTypeSet.CreatureType, true), // Star Wars
KAVU("Kavu", SubTypeSet.CreatureType, false), KAVU("Kavu", SubTypeSet.CreatureType, false),
KELDOR("KelDor", SubTypeSet.CreatureType, true), KELDOR("KelDor", SubTypeSet.CreatureType, true),
KIRIN("Kirin", SubTypeSet.CreatureType, false), KIRIN("Kirin", SubTypeSet.CreatureType, false),
@ -185,7 +180,7 @@ public enum SubType {
KOORIVAR("Koorivar", SubTypeSet.CreatureType, true), KOORIVAR("Koorivar", SubTypeSet.CreatureType, true),
KOR("Kor", SubTypeSet.CreatureType, false), KOR("Kor", SubTypeSet.CreatureType, false),
KRAKEN("Kraken", SubTypeSet.CreatureType, false), KRAKEN("Kraken", SubTypeSet.CreatureType, false),
// L
LAMIA("Lamia", SubTypeSet.CreatureType, false), LAMIA("Lamia", SubTypeSet.CreatureType, false),
LAMMASU("Lammasu", SubTypeSet.CreatureType, false), LAMMASU("Lammasu", SubTypeSet.CreatureType, false),
LEECH("Leech", SubTypeSet.CreatureType, false), LEECH("Leech", SubTypeSet.CreatureType, false),
@ -193,9 +188,8 @@ public enum SubType {
LHURGOYF("Lhurgoyf", SubTypeSet.CreatureType, false), LHURGOYF("Lhurgoyf", SubTypeSet.CreatureType, false),
LICID("Licid", SubTypeSet.CreatureType, false), LICID("Licid", SubTypeSet.CreatureType, false),
LIZARD("Lizard", SubTypeSet.CreatureType, false), LIZARD("Lizard", SubTypeSet.CreatureType, false),
// M
MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
MANTICORE("Manticore", SubTypeSet.CreatureType, false), MANTICORE("Manticore", SubTypeSet.CreatureType, false),
MASTICORE("Masticore", SubTypeSet.CreatureType, false), MASTICORE("Masticore", SubTypeSet.CreatureType, false),
MERCENARY("Mercenary", SubTypeSet.CreatureType, false), MERCENARY("Mercenary", SubTypeSet.CreatureType, false),
@ -203,7 +197,7 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
METATHRAN("Metathran", SubTypeSet.CreatureType, false), METATHRAN("Metathran", SubTypeSet.CreatureType, false),
MINION("Minion", SubTypeSet.CreatureType, false), MINION("Minion", SubTypeSet.CreatureType, false),
MINOTAUR("Minotaur", SubTypeSet.CreatureType, false), MINOTAUR("Minotaur", SubTypeSet.CreatureType, false),
MIRIALAN("Mirialan", SubTypeSet.CreatureType, true), // Star Wars MIRIALAN("Mirialan", SubTypeSet.CreatureType, true), // Star Wars
MOLE("Mole", SubTypeSet.CreatureType, false), MOLE("Mole", SubTypeSet.CreatureType, false),
MONGER("Monger", SubTypeSet.CreatureType, false), MONGER("Monger", SubTypeSet.CreatureType, false),
MONGOOSE("Mongoose", SubTypeSet.CreatureType, false), MONGOOSE("Mongoose", SubTypeSet.CreatureType, false),
@ -213,12 +207,11 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
MUTANT("Mutant", SubTypeSet.CreatureType, false), MUTANT("Mutant", SubTypeSet.CreatureType, false),
MYR("Myr", SubTypeSet.CreatureType, false), MYR("Myr", SubTypeSet.CreatureType, false),
MYSTIC("Mystic", SubTypeSet.CreatureType, false), MYSTIC("Mystic", SubTypeSet.CreatureType, false),
// N
NAGA("Naga", SubTypeSet.CreatureType, false), NAGA("Naga", SubTypeSet.CreatureType, false),
NAUTILUS("Nautilus", SubTypeSet.CreatureType, false), NAUTILUS("Nautilus", SubTypeSet.CreatureType, false),
NAUTOLAN("Nautolan", SubTypeSet.CreatureType, true), // Star Wars NAUTOLAN("Nautolan", SubTypeSet.CreatureType, true), // Star Wars
NEIMOIDIAN("Neimoidian", SubTypeSet.CreatureType, true), // Star Wars NEIMOIDIAN("Neimoidian", SubTypeSet.CreatureType, true), // Star Wars
NEPHILIM("Nephilim", SubTypeSet.CreatureType, false), NEPHILIM("Nephilim", SubTypeSet.CreatureType, false),
NIGHTMARE("Nightmare", SubTypeSet.CreatureType, false), NIGHTMARE("Nightmare", SubTypeSet.CreatureType, false),
NIGHTSTALKER("Nightstalker", SubTypeSet.CreatureType, false), NIGHTSTALKER("Nightstalker", SubTypeSet.CreatureType, false),
@ -226,7 +219,7 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
NOGGLE("Noggle", SubTypeSet.CreatureType, false), NOGGLE("Noggle", SubTypeSet.CreatureType, false),
NOMAD("Nomad", SubTypeSet.CreatureType, false), NOMAD("Nomad", SubTypeSet.CreatureType, false),
NYMPH("Nymph", SubTypeSet.CreatureType, false), NYMPH("Nymph", SubTypeSet.CreatureType, false),
// O
OCTOPUS("Octopus", SubTypeSet.CreatureType, false), OCTOPUS("Octopus", SubTypeSet.CreatureType, false),
OGRE("Ogre", SubTypeSet.CreatureType, false), OGRE("Ogre", SubTypeSet.CreatureType, false),
OOZE("Ooze", SubTypeSet.CreatureType, false), OOZE("Ooze", SubTypeSet.CreatureType, false),
@ -237,7 +230,7 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
OUPHE("Ouphe", SubTypeSet.CreatureType, false), OUPHE("Ouphe", SubTypeSet.CreatureType, false),
OX("Ox", SubTypeSet.CreatureType, false), OX("Ox", SubTypeSet.CreatureType, false),
OYSTER("Oyster", SubTypeSet.CreatureType, false), OYSTER("Oyster", SubTypeSet.CreatureType, false),
// P
PEGASUS("Pegasus", SubTypeSet.CreatureType, false), PEGASUS("Pegasus", SubTypeSet.CreatureType, false),
PENTAVITE("Pentavite", SubTypeSet.CreatureType, false), PENTAVITE("Pentavite", SubTypeSet.CreatureType, false),
PEST("Pest", SubTypeSet.CreatureType, false), PEST("Pest", SubTypeSet.CreatureType, false),
@ -251,19 +244,18 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
PRISM("Prism", SubTypeSet.CreatureType, false), PRISM("Prism", SubTypeSet.CreatureType, false),
PROCESSOR("Processor", SubTypeSet.CreatureType, false), PROCESSOR("Processor", SubTypeSet.CreatureType, false),
PUREBLOOD("Pureblood", SubTypeSet.CreatureType, true), PUREBLOOD("Pureblood", SubTypeSet.CreatureType, true),
// Q
QUARREN("Quarren", SubTypeSet.CreatureType, true), // Star Wars QUARREN("Quarren", SubTypeSet.CreatureType, true), // Star Wars
// R
RABBIT("Rabbit", SubTypeSet.CreatureType, false), RABBIT("Rabbit", SubTypeSet.CreatureType, false),
RAT("Rat", SubTypeSet.CreatureType, false), RAT("Rat", SubTypeSet.CreatureType, false),
REBEL("Rebel", SubTypeSet.CreatureType, false), REBEL("Rebel", SubTypeSet.CreatureType, false),
REFLECTION("Reflection", SubTypeSet.CreatureType, false), REFLECTION("Reflection", SubTypeSet.CreatureType, false),
RHINO("Rhino", SubTypeSet.CreatureType, false), RHINO("Rhino", SubTypeSet.CreatureType, false),
RIGGER("Rigger", SubTypeSet.CreatureType, false), RIGGER("Rigger", SubTypeSet.CreatureType, false),
RODIAN("Rodian", SubTypeSet.CreatureType, true), // Star Wars RODIAN("Rodian", SubTypeSet.CreatureType, true), // Star Wars
ROGUE("Rogue", SubTypeSet.CreatureType, false), ROGUE("Rogue", SubTypeSet.CreatureType, false),
// S
SABLE("Sable", SubTypeSet.CreatureType, false), SABLE("Sable", SubTypeSet.CreatureType, false),
SALAMANDER("Salamander", SubTypeSet.CreatureType, false), SALAMANDER("Salamander", SubTypeSet.CreatureType, false),
SAMURAI("Samurai", SubTypeSet.CreatureType, false), SAMURAI("Samurai", SubTypeSet.CreatureType, false),
@ -302,31 +294,32 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
SQUID("Squid", SubTypeSet.CreatureType, false), SQUID("Squid", SubTypeSet.CreatureType, false),
SQUIRREL("Squirrel", SubTypeSet.CreatureType, false), SQUIRREL("Squirrel", SubTypeSet.CreatureType, false),
STARFISH("Starfish", SubTypeSet.CreatureType, false), STARFISH("Starfish", SubTypeSet.CreatureType, false),
STARSHIP("Starship", SubTypeSet.CreatureType, true), // Star Wars STARSHIP("Starship", SubTypeSet.CreatureType, true), // Star Wars
SULLUSTAN("Sullustan", SubTypeSet.CreatureType, true), // Star Wars SULLUSTAN("Sullustan", SubTypeSet.CreatureType, true), // Star Wars
SURRAKAR("Surrakar", SubTypeSet.CreatureType, false), SURRAKAR("Surrakar", SubTypeSet.CreatureType, false),
SURVIVOR("Survivor", SubTypeSet.CreatureType, false), SURVIVOR("Survivor", SubTypeSet.CreatureType, false),
// T
TETRAVITE("Tetravite", SubTypeSet.CreatureType, false), TETRAVITE("Tetravite", SubTypeSet.CreatureType, false),
THALAKOS("Thalakos", SubTypeSet.CreatureType, false), THALAKOS("Thalakos", SubTypeSet.CreatureType, false),
THOPTER("Thopter", SubTypeSet.CreatureType, false), THOPTER("Thopter", SubTypeSet.CreatureType, false),
TRANDOSHAN("Trandoshan", SubTypeSet.CreatureType, true), // Star Wars TRANDOSHAN("Trandoshan", SubTypeSet.CreatureType, true), // Star Wars
THRULL("Thrull", SubTypeSet.CreatureType, false), THRULL("Thrull", SubTypeSet.CreatureType, false),
TREEFOLK("Treefolk", SubTypeSet.CreatureType, false), TREEFOLK("Treefolk", SubTypeSet.CreatureType, false),
TRISKELAVITE("Triskelavite", SubTypeSet.CreatureType, false), TRISKELAVITE("Triskelavite", SubTypeSet.CreatureType, false),
TROLL("Troll", SubTypeSet.CreatureType, false), TROLL("Troll", SubTypeSet.CreatureType, false),
TURTLE("Turtle", SubTypeSet.CreatureType, false), TURTLE("Turtle", SubTypeSet.CreatureType, false),
TROOPER("Trooper", SubTypeSet.CreatureType, true), // Star Wars
TWILEK("Twi'lek", SubTypeSet.CreatureType, true), // Star Wars
TROOPER("Trooper", SubTypeSet.CreatureType, true), // Star Wars // U
TWILEK("Twi'lek", SubTypeSet.CreatureType, true), // Star Wars UGNAUGHT("Ugnaught", SubTypeSet.CreatureType, true),
UGNAUGHT("Ugnaught",SubTypeSet.CreatureType, true),
UNICORN("Unicorn", SubTypeSet.CreatureType, false), UNICORN("Unicorn", SubTypeSet.CreatureType, false),
//V
VAMPIRE("Vampire", SubTypeSet.CreatureType, false), VAMPIRE("Vampire", SubTypeSet.CreatureType, false),
VEDALKEN("Vedalken", SubTypeSet.CreatureType, false), VEDALKEN("Vedalken", SubTypeSet.CreatureType, false),
VIASHINO("Viashino", SubTypeSet.CreatureType, false), VIASHINO("Viashino", SubTypeSet.CreatureType, false),
VOLVER("Volver", SubTypeSet.CreatureType, false), VOLVER("Volver", SubTypeSet.CreatureType, false),
//W
WALL("Wall", SubTypeSet.CreatureType, false), WALL("Wall", SubTypeSet.CreatureType, false),
WARRIOR("Warrior", SubTypeSet.CreatureType, false), WARRIOR("Warrior", SubTypeSet.CreatureType, false),
WEEQUAY("Weequay", SubTypeSet.CreatureType, true), WEEQUAY("Weequay", SubTypeSet.CreatureType, true),
@ -337,27 +330,27 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
WOLF("Wolf", SubTypeSet.CreatureType, false), WOLF("Wolf", SubTypeSet.CreatureType, false),
WOLVERINE("Wolverine", SubTypeSet.CreatureType, false), WOLVERINE("Wolverine", SubTypeSet.CreatureType, false),
WOMBAT("Wombat", SubTypeSet.CreatureType, false), WOMBAT("Wombat", SubTypeSet.CreatureType, false),
WOOKIEE("Wookiee", SubTypeSet.CreatureType, true), // Star Wars WOOKIEE("Wookiee", SubTypeSet.CreatureType, true), // Star Wars
WORM("Worm", SubTypeSet.CreatureType, false), WORM("Worm", SubTypeSet.CreatureType, false),
WRAITH("Wraith", SubTypeSet.CreatureType, false), WRAITH("Wraith", SubTypeSet.CreatureType, false),
WURM("Wurm", SubTypeSet.CreatureType, false), WURM("Wurm", SubTypeSet.CreatureType, false),
// Y
YETI("Yeti", SubTypeSet.CreatureType, false), YETI("Yeti", SubTypeSet.CreatureType, false),
// Z
ZABRAK("Zabrak", SubTypeSet.CreatureType, true), // Star Wars ZABRAK("Zabrak", SubTypeSet.CreatureType, true), // Star Wars
ZOMBIE("Zombie", SubTypeSet.CreatureType, false), ZOMBIE("Zombie", SubTypeSet.CreatureType, false),
ZUBERA("Zubera", SubTypeSet.CreatureType, false), ZUBERA("Zubera", SubTypeSet.CreatureType, false),
// Planeswalker
AJANI("Ajani", SubTypeSet.PlaneswalkerType, false), AJANI("Ajani", SubTypeSet.PlaneswalkerType, false),
ARLINN("Arlinn", SubTypeSet.PlaneswalkerType, false), ARLINN("Arlinn", SubTypeSet.PlaneswalkerType, false),
ASHIOK("Ashiok", SubTypeSet.PlaneswalkerType, false), ASHIOK("Ashiok", SubTypeSet.PlaneswalkerType, false),
AURRA("Aurra", SubTypeSet.PlaneswalkerType, true), // Star Wars AURRA("Aurra", SubTypeSet.PlaneswalkerType, true), // Star Wars
BOLAS("Bolas", SubTypeSet.PlaneswalkerType, false), BOLAS("Bolas", SubTypeSet.PlaneswalkerType, false),
CHANDRA("Chandra", SubTypeSet.PlaneswalkerType, false), CHANDRA("Chandra", SubTypeSet.PlaneswalkerType, false),
DACK("Dack", SubTypeSet.PlaneswalkerType, false), DACK("Dack", SubTypeSet.PlaneswalkerType, false),
DARETTI("Daretti", SubTypeSet.PlaneswalkerType, false), DARETTI("Daretti", SubTypeSet.PlaneswalkerType, false),
DOMRI("Domri", SubTypeSet.PlaneswalkerType, false), DOMRI("Domri", SubTypeSet.PlaneswalkerType, false),
DOOKU("Dooku", SubTypeSet.PlaneswalkerType, true), // Star Wars DOOKU("Dooku", SubTypeSet.PlaneswalkerType, true), // Star Wars
DOVIN("Dovin", SubTypeSet.PlaneswalkerType, false), DOVIN("Dovin", SubTypeSet.PlaneswalkerType, false),
ELSPETH("Elspeth", SubTypeSet.PlaneswalkerType, false), ELSPETH("Elspeth", SubTypeSet.PlaneswalkerType, false),
FREYALISE("Freyalise", SubTypeSet.PlaneswalkerType, false), FREYALISE("Freyalise", SubTypeSet.PlaneswalkerType, false),
@ -373,12 +366,12 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
NARSET("Narset", SubTypeSet.PlaneswalkerType, false), NARSET("Narset", SubTypeSet.PlaneswalkerType, false),
NISSA("Nissa", SubTypeSet.PlaneswalkerType, false), NISSA("Nissa", SubTypeSet.PlaneswalkerType, false),
NIXILIS("Nixilis", SubTypeSet.PlaneswalkerType, false), NIXILIS("Nixilis", SubTypeSet.PlaneswalkerType, false),
OBI_WAN("Obi-Wan", SubTypeSet.PlaneswalkerType, true), // Star Wars OBI_WAN("Obi-Wan", SubTypeSet.PlaneswalkerType, true), // Star Wars
RAL("Ral", SubTypeSet.PlaneswalkerType, false), RAL("Ral", SubTypeSet.PlaneswalkerType, false),
SAHEELI("Saheeli", SubTypeSet.PlaneswalkerType, false), SAHEELI("Saheeli", SubTypeSet.PlaneswalkerType, false),
SAMUT("Samut", SubTypeSet.PlaneswalkerType, false), SAMUT("Samut", SubTypeSet.PlaneswalkerType, false),
SARKHAN("Sarkhan", SubTypeSet.PlaneswalkerType, false), SARKHAN("Sarkhan", SubTypeSet.PlaneswalkerType, false),
SIDIOUS("Sidious", SubTypeSet.PlaneswalkerType, true), // Star Wars SIDIOUS("Sidious", SubTypeSet.PlaneswalkerType, true), // Star Wars
SORIN("Sorin", SubTypeSet.PlaneswalkerType, false), SORIN("Sorin", SubTypeSet.PlaneswalkerType, false),
TAMIYO("Tamiyo", SubTypeSet.PlaneswalkerType, false), TAMIYO("Tamiyo", SubTypeSet.PlaneswalkerType, false),
TEFERI("Teferi", SubTypeSet.PlaneswalkerType, false), TEFERI("Teferi", SubTypeSet.PlaneswalkerType, false),
@ -388,7 +381,7 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
VENSER("Venser", SubTypeSet.PlaneswalkerType, false), VENSER("Venser", SubTypeSet.PlaneswalkerType, false),
VRASKA("Vraska", SubTypeSet.PlaneswalkerType, false), VRASKA("Vraska", SubTypeSet.PlaneswalkerType, false),
XENAGOS("Xenagos", SubTypeSet.PlaneswalkerType, false), XENAGOS("Xenagos", SubTypeSet.PlaneswalkerType, false),
YODA("Yoda", SubTypeSet.PlaneswalkerType, true); YODA("Yoda", SubTypeSet.PlaneswalkerType, true); // Star Wars
private final SubTypeSet subTypeSet; private final SubTypeSet subTypeSet;
@ -448,4 +441,3 @@ MANTELLIAN("Mantellian", SubTypeSet.CreatureType, true), // Star Wars
return landTypes; return landTypes;
} }
} }