mirror of
https://github.com/correl/mage.git
synced 2025-01-13 11:01:58 +00:00
Fix formatting in several card files
This commit is contained in:
parent
eb50790b97
commit
77b32014f6
35 changed files with 493 additions and 463 deletions
|
@ -59,21 +59,22 @@ public class LongForgottenGohei extends CardImpl {
|
|||
}
|
||||
|
||||
public LongForgottenGohei(UUID ownerId) {
|
||||
super(ownerId, 261, "Long-Forgotten Gohei", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
this.expansionSetCode = "CHK";
|
||||
|
||||
// Arcane spells you cast cost {1} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(arcaneFilter, 1)));
|
||||
|
||||
// Spirit creatures you control get +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, spiritFilter, false)));
|
||||
super(ownerId, 261, "Long-Forgotten Gohei", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
this.expansionSetCode = "CHK";
|
||||
|
||||
// Arcane spells you cast cost {1} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(arcaneFilter, 1)));
|
||||
|
||||
// Spirit creatures you control get +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, spiritFilter, false)));
|
||||
}
|
||||
|
||||
public LongForgottenGohei(final LongForgottenGohei card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LongForgottenGohei copy() {
|
||||
return new LongForgottenGohei(this);
|
||||
return new LongForgottenGohei(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,21 +46,20 @@ import mage.watchers.common.DamagedByWatcher;
|
|||
public class YamabushisFlame extends CardImpl {
|
||||
|
||||
public YamabushisFlame(UUID ownerId) {
|
||||
super(ownerId, 198, "Yamabushi's Flame", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
||||
this.expansionSetCode = "CHK";
|
||||
super(ownerId, 198, "Yamabushi's Flame", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
||||
this.expansionSetCode = "CHK";
|
||||
|
||||
// Yamabushi's Flame deals 3 damage to target creature or player.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
|
||||
// Yamabushi's Flame deals 3 damage to target creature or player.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
// If a creature dealt damage this way would die this turn, exile it instead.
|
||||
this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn));
|
||||
this.getSpellAbility().addWatcher(new DamagedByWatcher());
|
||||
}
|
||||
|
||||
// If a creature dealt damage this way would die this turn, exile it instead.
|
||||
this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn));
|
||||
this.getSpellAbility().addWatcher(new DamagedByWatcher());
|
||||
}
|
||||
|
||||
public YamabushisFlame(final YamabushisFlame card) {
|
||||
super(card);
|
||||
public YamabushisFlame(final YamabushisFlame card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -53,73 +53,69 @@ import java.util.UUID;
|
|||
*/
|
||||
public class ThrummingStone extends CardImpl {
|
||||
|
||||
//applies to all spells
|
||||
private static final FilterSpell anySpellFilter = new FilterSpell("Spells you cast");
|
||||
//applies to all spells
|
||||
private static final FilterSpell anySpellFilter = new FilterSpell("Spells you cast");
|
||||
|
||||
public ThrummingStone(UUID ownerId) {
|
||||
super(ownerId, 142, "Thrumming Stone", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{5}");
|
||||
this.expansionSetCode = "CSP";
|
||||
this.supertype.add("Legendary");
|
||||
public ThrummingStone(UUID ownerId) {
|
||||
super(ownerId, 142, "Thrumming Stone", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{5}");
|
||||
this.expansionSetCode = "CSP";
|
||||
this.supertype.add("Legendary");
|
||||
|
||||
// spells you cast have Ripple 4
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ThrummingStoneGainAbilitySpellsEffect(new RippleAbility(4), anySpellFilter)));
|
||||
}
|
||||
// spells you cast have Ripple 4
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ThrummingStoneGainAbilitySpellsEffect(new RippleAbility(4), anySpellFilter)));
|
||||
}
|
||||
|
||||
public ThrummingStone(final ThrummingStone card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ThrummingStone copy() {
|
||||
return new ThrummingStone(this);
|
||||
}
|
||||
public ThrummingStone(final ThrummingStone card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ThrummingStone copy() {
|
||||
return new ThrummingStone(this);
|
||||
}
|
||||
}
|
||||
|
||||
class ThrummingStoneGainAbilitySpellsEffect extends ContinuousEffectImpl {
|
||||
|
||||
private final Ability ability;
|
||||
private final FilterSpell filter;
|
||||
private final Ability ability;
|
||||
private final FilterSpell filter;
|
||||
|
||||
|
||||
public ThrummingStoneGainAbilitySpellsEffect(Ability ability, FilterSpell filter) {
|
||||
super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
|
||||
this.ability = ability;
|
||||
this.filter = filter;
|
||||
staticText = filter.getMessage() + " have " + ability.getRule();
|
||||
}
|
||||
|
||||
public ThrummingStoneGainAbilitySpellsEffect(final ThrummingStoneGainAbilitySpellsEffect effect) {
|
||||
super(effect);
|
||||
this.ability = effect.ability.copy();
|
||||
this.filter = effect.filter.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ThrummingStoneGainAbilitySpellsEffect copy() {
|
||||
return new ThrummingStoneGainAbilitySpellsEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
if (player != null && permanent != null) {
|
||||
for (StackObject stackObject : game.getStack()) {
|
||||
// only spells cast, so no copies of spells
|
||||
if ((stackObject instanceof Spell) && !stackObject.isCopy() && stackObject.getControllerId().equals(source.getControllerId())) {
|
||||
Spell spell = (Spell) stackObject;
|
||||
if (filter.match(spell, game)) {
|
||||
if (!spell.getAbilities().contains(ability)) {
|
||||
game.getState().addOtherAbility(spell.getCard(), ability);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
public ThrummingStoneGainAbilitySpellsEffect(Ability ability, FilterSpell filter) {
|
||||
super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
|
||||
this.ability = ability;
|
||||
this.filter = filter;
|
||||
staticText = filter.getMessage() + " have " + ability.getRule();
|
||||
}
|
||||
|
||||
public ThrummingStoneGainAbilitySpellsEffect(final ThrummingStoneGainAbilitySpellsEffect effect) {
|
||||
super(effect);
|
||||
this.ability = effect.ability.copy();
|
||||
this.filter = effect.filter.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ThrummingStoneGainAbilitySpellsEffect copy() {
|
||||
return new ThrummingStoneGainAbilitySpellsEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
if (player != null && permanent != null) {
|
||||
for (StackObject stackObject : game.getStack()) {
|
||||
// only spells cast, so no copies of spells
|
||||
if ((stackObject instanceof Spell) && !stackObject.isCopy() && stackObject.getControllerId().equals(source.getControllerId())) {
|
||||
Spell spell = (Spell) stackObject;
|
||||
if (filter.match(spell, game)) {
|
||||
if (!spell.getAbilities().contains(ability)) {
|
||||
game.getState().addOtherAbility(spell.getCard(), ability);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,52 @@
|
|||
/* * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */package mage.sets.eighthedition;import java.util.UUID;/** * * @author Backfir3 */public class Rhox extends mage.sets.tenthedition.Rhox { public Rhox(UUID ownerId) { super(ownerId); this.cardNumber = 277; this.expansionSetCode = "8ED"; } public Rhox(final Rhox card) { super(card); } @Override public Rhox copy() { return new Rhox(this); }}
|
||||
/*
|
||||
* 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.sets.eighthedition;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Backfir3
|
||||
*/
|
||||
public class Rhox extends mage.sets.tenthedition.Rhox {
|
||||
|
||||
public Rhox(UUID ownerId) {
|
||||
super(ownerId);
|
||||
this.cardNumber = 277;
|
||||
this.expansionSetCode = "8ED";
|
||||
}
|
||||
|
||||
public Rhox(final Rhox card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Rhox copy() {
|
||||
return new Rhox(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,22 +47,21 @@ import mage.game.permanent.token.SoldierTokenWithHaste;
|
|||
public class AssembleTheLegion extends CardImpl {
|
||||
|
||||
public AssembleTheLegion(UUID ownerId) {
|
||||
super(ownerId, 142, "Assemble the Legion", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}{W}");
|
||||
this.expansionSetCode = "GTC";
|
||||
super(ownerId, 142, "Assemble the Legion", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}{W}");
|
||||
this.expansionSetCode = "GTC";
|
||||
|
||||
|
||||
// At the beginning of your upkeep, put a muster counter on Assemble the Legion. Then put a 1/1 red and white Soldier creature token with haste onto the battlefield for each muster counter on Assemble the Legion.
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.MUSTER.createInstance()), TargetController.YOU, false);
|
||||
ability.addEffect(new CreateTokenEffect(new SoldierTokenWithHaste(), new CountersCount(CounterType.MUSTER)));
|
||||
this.addAbility(ability);
|
||||
// At the beginning of your upkeep, put a muster counter on Assemble the Legion. Then put a 1/1 red and white Soldier creature token with haste onto the battlefield for each muster counter on Assemble the Legion.
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.MUSTER.createInstance()), TargetController.YOU, false);
|
||||
ability.addEffect(new CreateTokenEffect(new SoldierTokenWithHaste(), new CountersCount(CounterType.MUSTER)));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public AssembleTheLegion(final AssembleTheLegion card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AssembleTheLegion copy() {
|
||||
return new AssembleTheLegion(this);
|
||||
return new AssembleTheLegion(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,93 +66,92 @@ import mage.util.CardUtil;
|
|||
public class NightveilSpecter extends CardImpl {
|
||||
|
||||
public NightveilSpecter(UUID ownerId) {
|
||||
super(ownerId, 222, "Nightveil Specter", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{U/B}{U/B}{U/B}");
|
||||
this.expansionSetCode = "GTC";
|
||||
this.subtype.add("Specter");
|
||||
super(ownerId, 222, "Nightveil Specter", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{U/B}{U/B}{U/B}");
|
||||
this.expansionSetCode = "GTC";
|
||||
this.subtype.add("Specter");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever Nightveil Specter deals combat damage to a player, that player exiles the top card of his or her library.
|
||||
this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new NightveilSpecterExileEffect(),false, true));
|
||||
// Whenever Nightveil Specter deals combat damage to a player, that player exiles the top card of his or her library.
|
||||
this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new NightveilSpecterExileEffect(),false, true));
|
||||
|
||||
// You may play cards exiled with Nightveil Specter.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new NightveilSpecterEffect()));
|
||||
// You may play cards exiled with Nightveil Specter.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new NightveilSpecterEffect()));
|
||||
}
|
||||
|
||||
public NightveilSpecter(final NightveilSpecter card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NightveilSpecter copy() {
|
||||
return new NightveilSpecter(this);
|
||||
return new NightveilSpecter(this);
|
||||
}
|
||||
}
|
||||
|
||||
class NightveilSpecterExileEffect extends OneShotEffect {
|
||||
|
||||
public NightveilSpecterExileEffect() {
|
||||
super(Outcome.Discard);
|
||||
staticText = "that player exiles the top card of his or her library";
|
||||
super(Outcome.Discard);
|
||||
staticText = "that player exiles the top card of his or her library";
|
||||
}
|
||||
|
||||
public NightveilSpecterExileEffect(final NightveilSpecterExileEffect effect) {
|
||||
super(effect);
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(targetPointer.getFirst(game, source));
|
||||
if (player != null) {
|
||||
Card card = player.getLibrary().removeFromTop(game);
|
||||
MageObject sourceObject = game.getObject(source.getSourceId());
|
||||
if (card != null && sourceObject != null) {
|
||||
player.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), sourceObject.getIdName(), source.getSourceId(), game, Zone.LIBRARY, true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
Player player = game.getPlayer(targetPointer.getFirst(game, source));
|
||||
if (player != null) {
|
||||
Card card = player.getLibrary().removeFromTop(game);
|
||||
MageObject sourceObject = game.getObject(source.getSourceId());
|
||||
if (card != null && sourceObject != null) {
|
||||
player.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), sourceObject.getIdName(), source.getSourceId(), game, Zone.LIBRARY, true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NightveilSpecterExileEffect copy() {
|
||||
return new NightveilSpecterExileEffect(this);
|
||||
return new NightveilSpecterExileEffect(this);
|
||||
}
|
||||
}
|
||||
|
||||
class NightveilSpecterEffect extends AsThoughEffectImpl {
|
||||
|
||||
public NightveilSpecterEffect() {
|
||||
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
staticText = "You may play cards exiled with {this}";
|
||||
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
staticText = "You may play cards exiled with {this}";
|
||||
}
|
||||
|
||||
public NightveilSpecterEffect(final NightveilSpecterEffect effect) {
|
||||
super(effect);
|
||||
super(effect);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NightveilSpecterEffect copy() {
|
||||
return new NightveilSpecterEffect(this);
|
||||
return new NightveilSpecterEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
|
||||
Card card = game.getCard(objectId);
|
||||
if (affectedControllerId.equals(source.getControllerId()) && card != null && game.getState().getZone(card.getId()) == Zone.EXILED) {
|
||||
ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source));
|
||||
return zone != null && zone.contains(card.getId());
|
||||
}
|
||||
return false;
|
||||
Card card = game.getCard(objectId);
|
||||
if (affectedControllerId.equals(source.getControllerId()) && card != null && game.getState().getZone(card.getId()) == Zone.EXILED) {
|
||||
ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source));
|
||||
return zone != null && zone.contains(card.getId());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,28 +48,29 @@ import mage.target.common.TargetNonlandPermanent;
|
|||
public class ThrullParasite extends CardImpl {
|
||||
|
||||
public ThrullParasite(UUID ownerId) {
|
||||
super(ownerId, 81, "Thrull Parasite", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "GTC";
|
||||
this.subtype.add("Thrull");
|
||||
super(ownerId, 81, "Thrull Parasite", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "GTC";
|
||||
this.subtype.add("Thrull");
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Extort
|
||||
this.addAbility(new ExtortAbility());
|
||||
// {tap}, Pay 2 life: Remove a counter from target nonland permanent.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RemoveCounterTargetEffect(), new TapSourceCost());
|
||||
ability.addTarget(new TargetNonlandPermanent());
|
||||
ability.addCost(new PayLifeCost(2));
|
||||
this.addAbility(ability);
|
||||
// Extort
|
||||
this.addAbility(new ExtortAbility());
|
||||
|
||||
// {tap}, Pay 2 life: Remove a counter from target nonland permanent.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RemoveCounterTargetEffect(), new TapSourceCost());
|
||||
ability.addTarget(new TargetNonlandPermanent());
|
||||
ability.addCost(new PayLifeCost(2));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public ThrullParasite(final ThrullParasite card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ThrullParasite copy() {
|
||||
return new ThrullParasite(this);
|
||||
return new ThrullParasite(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,32 +52,32 @@ public class UrborgSkeleton extends CardImpl {
|
|||
private static final String staticText = "If Urborg Skeleton was kicked, it enters the battlefield with a +1/+1 counter on it";
|
||||
|
||||
public UrborgSkeleton(UUID ownerId) {
|
||||
super(ownerId, 134, "Urborg Skeleton", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "INV";
|
||||
this.subtype.add("Skeleton");
|
||||
super(ownerId, 134, "Urborg Skeleton", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "INV";
|
||||
this.subtype.add("Skeleton");
|
||||
|
||||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(1);
|
||||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Kicker {3} (You may pay an additional {3} as you cast this spell.)
|
||||
this.addAbility(new KickerAbility("{3}"));
|
||||
// Kicker {3} (You may pay an additional {3} as you cast this spell.)
|
||||
this.addAbility(new KickerAbility("{3}"));
|
||||
|
||||
// {B}: Regenerate Urborg Skeleton.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
|
||||
// {B}: Regenerate Urborg Skeleton.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
|
||||
|
||||
// If Urborg Skeleton was kicked, it enters the battlefield with a +1/+1 counter on it.
|
||||
Ability ability = new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)),
|
||||
KickedCondition.getInstance(), staticText,"");
|
||||
this.addAbility(ability);
|
||||
// If Urborg Skeleton was kicked, it enters the battlefield with a +1/+1 counter on it.
|
||||
Ability ability = new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)),
|
||||
KickedCondition.getInstance(), staticText,"");
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public UrborgSkeleton(final UrborgSkeleton card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UrborgSkeleton copy() {
|
||||
return new UrborgSkeleton(this);
|
||||
return new UrborgSkeleton(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,18 +59,18 @@ public class CateranBrute extends CardImpl {
|
|||
}
|
||||
|
||||
public CateranBrute(UUID ownerId) {
|
||||
super(ownerId, 120, "Cateran Brute", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 120, "Cateran Brute", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {2}, {T}: Search your library for a Mercenary permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(2));
|
||||
this.addAbility(ability);
|
||||
// {2}, {T}: Search your library for a Mercenary permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(2));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CateranBrute(final CateranBrute card) {
|
||||
|
@ -81,5 +81,4 @@ public class CateranBrute extends CardImpl {
|
|||
public CateranBrute copy() {
|
||||
return new CateranBrute(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,19 +60,21 @@ public class CateranEnforcer extends CardImpl {
|
|||
}
|
||||
|
||||
public CateranEnforcer(UUID ownerId) {
|
||||
super(ownerId, 121, "Cateran Enforcer", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 121, "Cateran Enforcer", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Fear
|
||||
this.addAbility(FearAbility.getInstance());
|
||||
// {4}, {T}: Search your library for a Mercenary permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(4));
|
||||
this.addAbility(ability);
|
||||
|
||||
// {4}, {T}: Search your library for a Mercenary permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(4));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CateranEnforcer(final CateranEnforcer card) {
|
||||
|
@ -83,5 +85,4 @@ public class CateranEnforcer extends CardImpl {
|
|||
public CateranEnforcer copy() {
|
||||
return new CateranEnforcer(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,22 +55,22 @@ public class CateranKidnappers extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
|
||||
}
|
||||
|
||||
public CateranKidnappers(UUID ownerId) {
|
||||
super(ownerId, 122, "Cateran Kidnappers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 122, "Cateran Kidnappers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {3}, {T}: Search your library for a Mercenary permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(3));
|
||||
this.addAbility(ability);
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {3}, {T}: Search your library for a Mercenary permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(3));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CateranKidnappers(final CateranKidnappers card) {
|
||||
|
@ -81,5 +81,4 @@ public class CateranKidnappers extends CardImpl {
|
|||
public CateranKidnappers copy() {
|
||||
return new CateranKidnappers(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,20 +63,21 @@ public class CateranOverlord extends CardImpl {
|
|||
}
|
||||
|
||||
public CateranOverlord(UUID ownerId) {
|
||||
super(ownerId, 123, "Cateran Overlord", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 123, "Cateran Overlord", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(7);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Sacrifice a creature: Regenerate Cateran Overlord.
|
||||
this.power = new MageInt(7);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Sacrifice a creature: Regenerate Cateran Overlord.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent())));
|
||||
// {6}, {T}: Search your library for a Mercenary permanent card with converted mana cost 6 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(6));
|
||||
this.addAbility(ability);
|
||||
|
||||
// {6}, {T}: Search your library for a Mercenary permanent card with converted mana cost 6 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(6));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CateranOverlord(final CateranOverlord card) {
|
||||
|
@ -87,5 +88,4 @@ public class CateranOverlord extends CardImpl {
|
|||
public CateranOverlord copy() {
|
||||
return new CateranOverlord(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,22 +55,22 @@ public class CateranPersuader extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2));
|
||||
}
|
||||
|
||||
public CateranPersuader(UUID ownerId) {
|
||||
super(ownerId, 124, "Cateran Persuader", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 124, "Cateran Persuader", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {1}, {T}: Search your library for a Mercenary permanent card with converted mana cost 1 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(1));
|
||||
this.addAbility(ability);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {1}, {T}: Search your library for a Mercenary permanent card with converted mana cost 1 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(1));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CateranPersuader(final CateranPersuader card) {
|
||||
|
@ -81,5 +81,4 @@ public class CateranPersuader extends CardImpl {
|
|||
public CateranPersuader copy() {
|
||||
return new CateranPersuader(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,19 +60,21 @@ public class CateranSlaver extends CardImpl {
|
|||
}
|
||||
|
||||
public CateranSlaver(UUID ownerId) {
|
||||
super(ownerId, 125, "Cateran Slaver", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 125, "Cateran Slaver", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Swampwalk
|
||||
this.addAbility(new SwampwalkAbility());
|
||||
// {5}, {T}: Search your library for a Mercenary permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(5));
|
||||
this.addAbility(ability);
|
||||
|
||||
// {5}, {T}: Search your library for a Mercenary permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(5));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CateranSlaver(final CateranSlaver card) {
|
||||
|
@ -83,5 +85,4 @@ public class CateranSlaver extends CardImpl {
|
|||
public CateranSlaver copy() {
|
||||
return new CateranSlaver(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,11 +51,10 @@ public class CateranSummons extends CardImpl {
|
|||
}
|
||||
|
||||
public CateranSummons(UUID ownerId) {
|
||||
super(ownerId, 126, "Cateran Summons", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
super(ownerId, 126, "Cateran Summons", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
|
||||
|
||||
// Search your library for a Mercenary card, reveal that card, and put it into your hand. Then shuffle your library.
|
||||
// Search your library for a Mercenary card, reveal that card, and put it into your hand. Then shuffle your library.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true));
|
||||
}
|
||||
|
||||
|
@ -67,5 +66,4 @@ public class CateranSummons extends CardImpl {
|
|||
public CateranSummons copy() {
|
||||
return new CateranSummons(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,15 +46,17 @@ import mage.cards.CardImpl;
|
|||
public class MoltingHarpy extends CardImpl {
|
||||
|
||||
public MoltingHarpy(UUID ownerId) {
|
||||
super(ownerId, 148, "Molting Harpy", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Harpy");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 148, "Molting Harpy", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Harpy");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// At the beginning of your upkeep, sacrifice Molting Harpy unless you pay {2}.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{2}")), TargetController.YOU, false));
|
||||
}
|
||||
|
@ -67,5 +69,4 @@ public class MoltingHarpy extends CardImpl {
|
|||
public MoltingHarpy copy() {
|
||||
return new MoltingHarpy(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,34 +45,34 @@ import mage.filter.predicate.mageobject.ColorPredicate;
|
|||
*/
|
||||
public class NightwindGlider extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Black");
|
||||
private static final FilterCard filter = new FilterCard("Black");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.BLACK));
|
||||
}
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.BLACK));
|
||||
}
|
||||
|
||||
public NightwindGlider(UUID ownerId) {
|
||||
super(ownerId, 31, "Nightwind Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
public NightwindGlider(UUID ownerId) {
|
||||
super(ownerId, 31, "Nightwind Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// Protection from black
|
||||
this.addAbility(new ProtectionAbility(filter));
|
||||
}
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
public NightwindGlider(final NightwindGlider card) {
|
||||
super(card);
|
||||
}
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
@Override
|
||||
public NightwindGlider copy() {
|
||||
return new NightwindGlider(this);
|
||||
}
|
||||
// Protection from black
|
||||
this.addAbility(new ProtectionAbility(filter));
|
||||
}
|
||||
|
||||
public NightwindGlider(final NightwindGlider card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NightwindGlider copy() {
|
||||
return new NightwindGlider(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,16 +46,16 @@ import mage.cards.CardImpl;
|
|||
public class PrimevalShambler extends CardImpl {
|
||||
|
||||
public PrimevalShambler(UUID ownerId) {
|
||||
super(ownerId, 152, "Primeval Shambler", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 152, "Primeval Shambler", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// {B}: Primeval Shambler gets +1/+1 until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")));
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// {B}: Primeval Shambler gets +1/+1 until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")));
|
||||
}
|
||||
|
||||
public PrimevalShambler(final PrimevalShambler card) {
|
||||
|
@ -66,5 +66,4 @@ public class PrimevalShambler extends CardImpl {
|
|||
public PrimevalShambler copy() {
|
||||
return new PrimevalShambler(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,21 +60,21 @@ public class RamosianCaptain extends CardImpl {
|
|||
}
|
||||
|
||||
public RamosianCaptain(UUID ownerId) {
|
||||
super(ownerId, 35, "Ramosian Captain", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
super(ownerId, 35, "Ramosian Captain", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// First strike
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
|
||||
// {5}, {T}: Search your library for a Rebel permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(5));
|
||||
this.addAbility(ability);
|
||||
// {5}, {T}: Search your library for a Rebel permanent card with converted mana cost 4 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(5));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public RamosianCaptain(final RamosianCaptain card) {
|
||||
|
@ -85,5 +85,4 @@ public class RamosianCaptain extends CardImpl {
|
|||
public RamosianCaptain copy() {
|
||||
return new RamosianCaptain(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -59,18 +59,18 @@ public class RamosianCommander extends CardImpl {
|
|||
}
|
||||
|
||||
public RamosianCommander(UUID ownerId) {
|
||||
super(ownerId, 36, "Ramosian Commander", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
super(ownerId, 36, "Ramosian Commander", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// {6}, {T}: Search your library for a Rebel permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(6));
|
||||
this.addAbility(ability);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// {6}, {T}: Search your library for a Rebel permanent card with converted mana cost 5 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(6));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public RamosianCommander(final RamosianCommander card) {
|
||||
|
@ -81,5 +81,4 @@ public class RamosianCommander extends CardImpl {
|
|||
public RamosianCommander copy() {
|
||||
return new RamosianCommander(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -59,18 +59,18 @@ public class RamosianLieutenant extends CardImpl {
|
|||
}
|
||||
|
||||
public RamosianLieutenant(UUID ownerId) {
|
||||
super(ownerId, 37, "Ramosian Lieutenant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
super(ownerId, 37, "Ramosian Lieutenant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {4}, {T}: Search your library for a Rebel permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(4));
|
||||
this.addAbility(ability);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// {4}, {T}: Search your library for a Rebel permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(4));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public RamosianLieutenant(final RamosianLieutenant card) {
|
||||
|
@ -81,5 +81,4 @@ public class RamosianLieutenant extends CardImpl {
|
|||
public RamosianLieutenant copy() {
|
||||
return new RamosianLieutenant(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -59,18 +59,18 @@ public class RamosianSergeant extends CardImpl {
|
|||
}
|
||||
|
||||
public RamosianSergeant(UUID ownerId) {
|
||||
super(ownerId, 39, "Ramosian Sergeant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
super(ownerId, 39, "Ramosian Sergeant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {3}, {T}: Search your library for a Rebel permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(3));
|
||||
this.addAbility(ability);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {3}, {T}: Search your library for a Rebel permanent card with converted mana cost 2 or less and put it onto the battlefield. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)), new TapSourceCost());
|
||||
ability.addManaCost(new GenericManaCost(3));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public RamosianSergeant(final RamosianSergeant card) {
|
||||
|
@ -81,5 +81,4 @@ public class RamosianSergeant extends CardImpl {
|
|||
public RamosianSergeant copy() {
|
||||
return new RamosianSergeant(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -46,21 +46,22 @@ import mage.filter.predicate.mageobject.SubtypePredicate;
|
|||
public class RampartCrawler extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Walls");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Wall"));
|
||||
}
|
||||
|
||||
public RampartCrawler(UUID ownerId) {
|
||||
super(ownerId, 156, "Rampart Crawler", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Lizard");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 156, "Rampart Crawler", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Lizard");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Rampart Crawler can't be blocked by Walls.
|
||||
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
|
||||
}
|
||||
|
||||
public RampartCrawler(final RampartCrawler card) {
|
||||
|
@ -71,5 +72,4 @@ public class RampartCrawler extends CardImpl {
|
|||
public RampartCrawler copy() {
|
||||
return new RampartCrawler(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -43,14 +43,14 @@ import mage.cards.CardImpl;
|
|||
public class SkulkingFugitive extends CardImpl {
|
||||
|
||||
public SkulkingFugitive(UUID ownerId) {
|
||||
super(ownerId, 161, "Skulking Fugitive", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 161, "Skulking Fugitive", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Horror");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// When Skulking Fugitive becomes the target of a spell or ability, sacrifice it.
|
||||
this.addAbility(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect()));
|
||||
}
|
||||
|
@ -63,5 +63,4 @@ public class SkulkingFugitive extends CardImpl {
|
|||
public SkulkingFugitive copy() {
|
||||
return new SkulkingFugitive(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,16 +53,16 @@ public class StrongarmThug extends CardImpl {
|
|||
}
|
||||
|
||||
public StrongarmThug(UUID ownerId) {
|
||||
super(ownerId, 165, "Strongarm Thug", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Mercenary");
|
||||
super(ownerId, 165, "Strongarm Thug", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Strongarm Thug enters the battlefield, you may return target Mercenary card from your graveyard to your hand.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
@ -75,5 +75,4 @@ public class StrongarmThug extends CardImpl {
|
|||
public StrongarmThug copy() {
|
||||
return new StrongarmThug(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,34 +45,34 @@ import mage.filter.predicate.mageobject.ColorPredicate;
|
|||
*/
|
||||
public class ThermalGlider extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Red");
|
||||
private static final FilterCard filter = new FilterCard("Red");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.RED));
|
||||
}
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.RED));
|
||||
}
|
||||
|
||||
public ThermalGlider(UUID ownerId) {
|
||||
super(ownerId, 53, "Thermal Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
public ThermalGlider(UUID ownerId) {
|
||||
super(ownerId, 53, "Thermal Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.expansionSetCode = "MMQ";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rebel");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// Protection from red
|
||||
this.addAbility(new ProtectionAbility(filter));
|
||||
}
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
public ThermalGlider(final ThermalGlider card) {
|
||||
super(card);
|
||||
}
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
@Override
|
||||
public ThermalGlider copy() {
|
||||
return new ThermalGlider(this);
|
||||
}
|
||||
// Protection from red
|
||||
this.addAbility(new ProtectionAbility(filter));
|
||||
}
|
||||
|
||||
public ThermalGlider(final ThermalGlider card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ThermalGlider copy() {
|
||||
return new ThermalGlider(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,18 +52,18 @@ import mage.target.common.TargetCardInHand;
|
|||
public class StampedeDriver extends CardImpl {
|
||||
|
||||
public StampedeDriver(UUID ownerId) {
|
||||
super(ownerId, 122, "Stampede Driver", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{G}");
|
||||
this.expansionSetCode = "NMS";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Spellshaper");
|
||||
super(ownerId, 122, "Stampede Driver", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{G}");
|
||||
this.expansionSetCode = "NMS";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Spellshaper");
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {1}{G}, {T}, Discard a card: Creatures you control get +1/+1 and gain trample until end of turn.
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {1}{G}, {T}, Discard a card: Creatures you control get +1/+1 and gain trample until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}{G}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand()));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand()));
|
||||
ability.addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent()));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -9,25 +9,24 @@ import mage.cards.CardImpl;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
|
||||
public class HeroesRemembered extends CardImpl{
|
||||
public class HeroesRemembered extends CardImpl {
|
||||
|
||||
public HeroesRemembered(UUID ownerId){
|
||||
super(ownerId, 7, "Heroes Remembered", Rarity.RARE, new CardType[] {CardType.SORCERY}, "{6}{W}{W}{W}");
|
||||
this.expansionSetCode = "PLC";
|
||||
|
||||
//You gain 20 life.
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(20));
|
||||
//Suspend 10-{W}
|
||||
this.addAbility(new SuspendAbility(10, new ManaCostsImpl("{W}"), this));
|
||||
}
|
||||
|
||||
public HeroesRemembered(final HeroesRemembered card) {
|
||||
super(card);
|
||||
}
|
||||
public HeroesRemembered(UUID ownerId){
|
||||
super(ownerId, 7, "Heroes Remembered", Rarity.RARE, new CardType[] {CardType.SORCERY}, "{6}{W}{W}{W}");
|
||||
this.expansionSetCode = "PLC";
|
||||
|
||||
@Override
|
||||
public Card copy() {
|
||||
return new HeroesRemembered(this);
|
||||
}
|
||||
//You gain 20 life.
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(20));
|
||||
//Suspend 10-{W}
|
||||
this.addAbility(new SuspendAbility(10, new ManaCostsImpl("{W}"), this));
|
||||
}
|
||||
|
||||
public HeroesRemembered(final HeroesRemembered card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Card copy() {
|
||||
return new HeroesRemembered(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,26 +44,26 @@ import mage.constants.Zone;
|
|||
public class IllusoryAngel extends CardImpl {
|
||||
|
||||
public IllusoryAngel(UUID ownerId) {
|
||||
super(ownerId, 19, "Illusory Angel", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
||||
this.expansionSetCode = "PC2";
|
||||
this.subtype.add("Angel");
|
||||
this.subtype.add("Illusion");
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
super(ownerId, 19, "Illusory Angel", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
||||
this.expansionSetCode = "PC2";
|
||||
this.subtype.add("Angel");
|
||||
this.subtype.add("Illusion");
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Cast Illusory Angel only if you've cast another spell this turn.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new CastOnlyIfYouHaveCastAnotherSpellEffect()));
|
||||
// Cast Illusory Angel only if you've cast another spell this turn.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new CastOnlyIfYouHaveCastAnotherSpellEffect()));
|
||||
}
|
||||
|
||||
public IllusoryAngel(final IllusoryAngel card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IllusoryAngel copy() {
|
||||
return new IllusoryAngel(this);
|
||||
return new IllusoryAngel(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,26 +41,24 @@ import mage.cards.CardImpl;
|
|||
public class ShardlessAgent extends CardImpl {
|
||||
|
||||
public ShardlessAgent(UUID ownerId) {
|
||||
super(ownerId, 104, "Shardless Agent", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT,CardType.CREATURE}, "{1}{G}{U}");
|
||||
this.expansionSetCode = "PC2";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rogue");
|
||||
super(ownerId, 104, "Shardless Agent", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT,CardType.CREATURE}, "{1}{G}{U}");
|
||||
this.expansionSetCode = "PC2";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Rogue");
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Cascade
|
||||
this.addAbility(new CascadeAbility());
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Cascade
|
||||
this.addAbility(new CascadeAbility());
|
||||
}
|
||||
|
||||
public ShardlessAgent(final ShardlessAgent card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShardlessAgent copy() {
|
||||
return new ShardlessAgent(this);
|
||||
return new ShardlessAgent(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -42,24 +42,22 @@ import mage.cards.CardImpl;
|
|||
public class Overwhelm extends CardImpl {
|
||||
|
||||
public Overwhelm(UUID ownerId) {
|
||||
super(ownerId, 175, "Overwhelm", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{5}{G}{G}");
|
||||
this.expansionSetCode = "RAV";
|
||||
|
||||
super(ownerId, 175, "Overwhelm", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{5}{G}{G}");
|
||||
this.expansionSetCode = "RAV";
|
||||
|
||||
// Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.)
|
||||
this.addAbility(new ConvokeAbility());
|
||||
// Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.)
|
||||
this.addAbility(new ConvokeAbility());
|
||||
|
||||
// Creatures you control get +3/+3 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostControlledEffect(3, 3, Duration.EndOfTurn));
|
||||
// Creatures you control get +3/+3 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostControlledEffect(3, 3, Duration.EndOfTurn));
|
||||
}
|
||||
|
||||
public Overwhelm(final Overwhelm card) {
|
||||
super(card);
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overwhelm copy() {
|
||||
return new Overwhelm(this);
|
||||
return new Overwhelm(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -45,11 +45,10 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class InnerCalmOuterStrength extends CardImpl {
|
||||
|
||||
public InnerCalmOuterStrength(UUID ownerId) {
|
||||
super(ownerId, 133, "Inner Calm, Outer Strength", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}");
|
||||
super(ownerId, 133, "Inner Calm, Outer Strength", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}");
|
||||
this.expansionSetCode = "SOK";
|
||||
this.subtype.add("Arcane");
|
||||
|
||||
|
||||
// Target creature gets +X/+X until end of turn, where X is the number of cards in your hand.
|
||||
DynamicValue xValue= new CardsInControllerHandCount();
|
||||
Effect effect = new BoostTargetEffect(xValue, xValue, Duration.EndOfTurn, true);
|
||||
|
|
|
@ -48,10 +48,9 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class CrownOfFlames extends CardImpl {
|
||||
|
||||
public CrownOfFlames(UUID ownerId) {
|
||||
super(ownerId, 169, "Crown of Flames", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{R}");
|
||||
super(ownerId, 169, "Crown of Flames", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{R}");
|
||||
this.expansionSetCode = "TMP";
|
||||
this.subtype.add("Aura");
|
||||
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
|
|
|
@ -49,15 +49,15 @@ import mage.target.common.TargetAttackingCreature;
|
|||
public class Condemn extends CardImpl {
|
||||
|
||||
public Condemn(UUID ownerId) {
|
||||
super(ownerId, 13, "Condemn", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{W}");
|
||||
super(ownerId, 13, "Condemn", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{W}");
|
||||
this.expansionSetCode = "10E";
|
||||
|
||||
// Put target attacking creature on the bottom of its owner's library.
|
||||
this.getSpellAbility().addTarget(new TargetAttackingCreature());
|
||||
this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false));
|
||||
|
||||
// Its controller gains life equal to its toughness.
|
||||
this.getSpellAbility().addEffect(new CondemnEffect());
|
||||
|
||||
}
|
||||
|
||||
public Condemn(final Condemn card) {
|
||||
|
@ -68,7 +68,6 @@ public class Condemn extends CardImpl {
|
|||
public Condemn copy() {
|
||||
return new Condemn(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class CondemnEffect extends OneShotEffect {
|
||||
|
@ -99,5 +98,4 @@ class CondemnEffect extends OneShotEffect {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -61,13 +61,14 @@ public class TriadOfFates extends CardImpl {
|
|||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
||||
private static final FilterCreaturePermanent filterCounter = new FilterCreaturePermanent("creature that has a fate counter on it");
|
||||
|
||||
static {
|
||||
filter.add(new AnotherPredicate());
|
||||
filterCounter.add(new CounterPredicate(CounterType.FATE));
|
||||
}
|
||||
|
||||
public TriadOfFates(UUID ownerId) {
|
||||
super(ownerId, 206, "Triad of Fates", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{W}{B}");
|
||||
super(ownerId, 206, "Triad of Fates", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{W}{B}");
|
||||
this.expansionSetCode = "THS";
|
||||
this.supertype.add("Legendary");
|
||||
this.subtype.add("Human");
|
||||
|
@ -82,6 +83,7 @@ public class TriadOfFates extends CardImpl {
|
|||
Target target = new TargetCreaturePermanent(filter);
|
||||
ability.addTarget(target);
|
||||
this.addAbility(ability);
|
||||
|
||||
// {W}, {T}: Exile target creature that has a fate counter on it, then return it to the battlefield under its owner's control.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetForSourceEffect(), new ManaCostsImpl("{W}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
@ -89,6 +91,7 @@ public class TriadOfFates extends CardImpl {
|
|||
ability.addTarget(target);
|
||||
ability.addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect());
|
||||
this.addAbility(ability);
|
||||
|
||||
// {B}, {T}: Exile target creature that has a fate counter on it. Its controller draws two cards.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{B}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
@ -96,7 +99,6 @@ public class TriadOfFates extends CardImpl {
|
|||
ability.addTarget(target);
|
||||
ability.addEffect(new DrawCardControllerTargetEffect());
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
||||
public TriadOfFates(final TriadOfFates card) {
|
||||
|
|
Loading…
Reference in a new issue