This commit is contained in:
BetaSteward 2010-10-06 02:38:57 +00:00
parent 40a7ab9a4f
commit 5c27de8bba
206 changed files with 3727 additions and 153 deletions

View file

@ -96,7 +96,7 @@ class FinestHourAbility extends TriggeredAbilityImpl<FinestHourAbility> {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (checkIfClause(game) && game.getActivePlayerId().equals(this.controllerId)) {
if (checkInterveningIfClause(game) && game.getActivePlayerId().equals(this.controllerId)) {
if (event.getType() == EventType.DECLARED_ATTACKERS) {
if (game.getCombat().attacksAlone()) {
this.addTarget(new TargetCreaturePermanent());
@ -110,7 +110,7 @@ class FinestHourAbility extends TriggeredAbilityImpl<FinestHourAbility> {
}
@Override
public boolean checkIfClause(Game game) {
public boolean checkInterveningIfClause(Game game) {
return game.getTurn().getPhase(TurnPhase.COMBAT).getCount() == 0;
}

View file

@ -32,6 +32,7 @@ import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileSpellEffect;
@ -96,7 +97,8 @@ class VengefulRebirthEffect extends OneShotEffect<VengefulRebirthEffect> {
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
Card card = (Card)game.getObject(source.getFirstTarget());
if (player.removeFromGraveyard(card, game) && player.putInHand(card, game)) {
if (player.removeFromGraveyard(card, game)) {
card.moveToZone(Zone.HAND, game, false);
int damage = card.getManaCost().convertedManaCost();
if (!card.getCardType().contains(CardType.LAND)) {
Permanent permanent = game.getPermanent(source.getTargets().get(1).getTargets().get(0));

View file

@ -58,7 +58,7 @@ public class CelestialPurge extends CardImpl<CelestialPurge> {
super(ownerId, "Celestial Purge", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{W}");
this.expansionSetCode = "CON";
this.color.setWhite(true);
this.getSpellAbility().addTarget(new TargetPermanent(filter, TargetController.ANY));
this.getSpellAbility().addTarget(new TargetPermanent(filter));
this.getSpellAbility().addEffect(new ExileTargetEffect());
}

View file

@ -56,7 +56,7 @@ public class Dreadwing extends CardImpl<Dreadwing> {
this.toughness = new MageInt(1);
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, 0, Duration.EndOfTurn), new ManaCostsImpl(("{1}{U}{B}")));
ability.getEffects().add(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn));
this.abilities.add(ability);
this.addAbility(ability);
}
public Dreadwing(final Dreadwing card) {

View file

@ -48,8 +48,8 @@ import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.common.SearchLibraryPutInPlayEffect;
import mage.cards.CardImpl;
import mage.filter.Filter.ComparisonScope;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.common.FilterLandCard;
import mage.filter.common.FilterLandPermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -62,9 +62,11 @@ import mage.target.common.TargetControlledPermanent;
*/
public class KnightOfTheReliquary extends CardImpl<KnightOfTheReliquary> {
private static FilterLandPermanent filter = new FilterLandPermanent("Forest or Plains");
private static FilterControlledPermanent filter = new FilterControlledPermanent("Forest or Plains");
static {
filter.getCardType().add(CardType.LAND);
filter.setScopeCardType(ComparisonScope.Any);
filter.getSubtype().add("Forest");
filter.getSubtype().add("Plains");
filter.setScopeSubtype(ComparisonScope.Any);

View file

@ -72,6 +72,8 @@ public class MartialCoup extends CardImpl<MartialCoup> {
class MartialCoupEffect extends OneShotEffect<MartialCoupEffect> {
private static SoldierToken token = new SoldierToken();
public MartialCoupEffect() {
super(Outcome.PutCreatureInPlay);
}
@ -87,7 +89,6 @@ class MartialCoupEffect extends OneShotEffect<MartialCoupEffect> {
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
int amount = source.getCosts().getVariableCosts().get(0).getAmount();
if (amount > 4) {
@ -96,7 +97,7 @@ class MartialCoupEffect extends OneShotEffect<MartialCoupEffect> {
}
}
for (int i = 0; i < amount; i++) {
controller.putOntoBattlefield(new SoldierToken(), game);
token.putOntoBattlefield(game, source.getControllerId());
}
return true;
}

View file

@ -100,7 +100,7 @@ class PathToExileEffect extends OneShotEffect {
player.searchLibrary(target, game);
Card card = player.getLibrary().remove(target.getFirstTarget(), game);
if (card != null) {
if (player.putOntoBattlefield(card, game)) {
if (card.putOntoBattlefield(game, Zone.LIBRARY, permanent.getControllerId())) {
Permanent land = game.getPermanent(card.getId());
if (land != null)
land.setTapped(true);

View file

@ -109,6 +109,11 @@ class QuenchableFireEffect extends OneShotEffect<QuenchableFireEffect> {
game.getState().getSpecialActions().add(newAction);
return true;
}
@Override
public String getText(Ability source) {
return "{this} deals an additional 3 damage to that player at the beginning of your next upkeep step unless he or she pays {U} before that step";
}
}
@ -148,11 +153,6 @@ class QuenchableFireDelayedTriggeredAbility extends DelayedTriggeredAbility<Quen
return false;
}
@Override
public String getRule() {
return "{this} deals an additional 3 damage to that player at the beginning of your next upkeep step unless he or she pays {U} before that step";
}
}
class QuenchableFireSpecialAction extends SpecialAction<QuenchableFireSpecialAction> {

View file

@ -59,8 +59,8 @@ public class RakkaMar extends CardImpl<RakkaMar> {
this.color.setRed(true);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.abilities.add(HasteAbility.getInstance());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(token), new ManaCostsImpl("{1}{R}"));
this.addAbility(HasteAbility.getInstance());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(token), new ManaCostsImpl("{R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
@ -87,7 +87,7 @@ public class RakkaMar extends CardImpl<RakkaMar> {
subtype.add("Elemental");
power = new MageInt(3);
toughness = new MageInt(1);
abilities.add(HasteAbility.getInstance());
addAbility(HasteAbility.getInstance());
}
}

View file

@ -38,7 +38,7 @@ import mage.cards.CardImpl;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetCrearurePermanentYourControl;
import mage.target.common.TargetControlledCreaturePermanent;
/**
*
@ -50,7 +50,7 @@ public class SoulsMajesty extends CardImpl<SoulsMajesty> {
super(ownerId, "Soul's Majesty", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{4}{G}");
this.expansionSetCode = "CON";
this.color.setGreen(true);
this.getSpellAbility().addTarget(new TargetCrearurePermanentYourControl());
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addEffect(new SoulsMajestyEffect());
}

View file

@ -68,7 +68,7 @@ public class AcidicSlime extends CardImpl<AcidicSlime> {
this.addAbility(DeathtouchAbility.getInstance());
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
Target target = new TargetPermanent(filter, TargetController.ANY);
Target target = new TargetPermanent(filter);
target.setRequired(true);
ability.addTarget(target);
this.addAbility(ability);

View file

@ -101,7 +101,7 @@ class AvatarToken extends Token {
cardType.add(CardType.CREATURE);
subtype.add("Avatar");
color.setWhite(true);
this.abilities.add(new SimpleStaticAbility(Zone.BATTLEFIELD, new AvatarTokenEffect()));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AvatarTokenEffect()));
}
}

View file

@ -40,9 +40,8 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.RequirementAttackEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent;
import mage.target.common.TargetCreaturePermanent;
@ -52,6 +51,12 @@ import mage.target.common.TargetCreaturePermanent;
*/
public class AlluringSiren extends CardImpl<AlluringSiren> {
private static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
static {
filter.setTargetController(TargetController.OPPONENT);
}
public AlluringSiren(UUID ownerId) {
super(ownerId, "Alluring Siren", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}");
this.expansionSetCode = "M10";
@ -60,9 +65,7 @@ public class AlluringSiren extends CardImpl<AlluringSiren> {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AlluringSirenEffect(), new TapSourceCost());
TargetCreaturePermanent target = new TargetCreaturePermanent();
target.setTargetController(TargetController.OPPONENT);
ability.addTarget(target);
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}

View file

@ -41,4 +41,13 @@ public class AngelsFeather extends mage.sets.tenth.AngelsFeather {
this.expansionSetCode = "M10";
}
public AngelsFeather(final AngelsFeather card) {
super(card);
}
@Override
public AngelsFeather copy() {
return new AngelsFeather(this);
}
}

View file

@ -41,4 +41,13 @@ public class Assassinate extends mage.sets.tenth.Assassinate {
this.expansionSetCode = "M10";
}
public Assassinate(final Assassinate card) {
super(card);
}
@Override
public Assassinate copy() {
return new Assassinate(this);
}
}

View file

@ -41,4 +41,13 @@ public class BirdsOfParadise extends mage.sets.tenth.BirdsOfParadise {
this.expansionSetCode = "M10";
}
public BirdsOfParadise(final BirdsOfParadise card) {
super(card);
}
@Override
public BirdsOfParadise copy() {
return new BirdsOfParadise(this);
}
}

View file

@ -41,4 +41,13 @@ public class Cancel extends mage.sets.shardsofalara.Cancel {
this.expansionSetCode = "M10";
}
public Cancel(final Cancel card) {
super(card);
}
@Override
public Cancel copy() {
return new Cancel(this);
}
}

View file

@ -41,4 +41,13 @@ public class CanyonMinotaur extends mage.sets.conflux.CanyonMinotaur {
this.expansionSetCode = "M10";
}
public CanyonMinotaur(final CanyonMinotaur card) {
super(card);
}
@Override
public CanyonMinotaur copy() {
return new CanyonMinotaur(this);
}
}

View file

@ -41,4 +41,13 @@ public class CelestialPurge extends mage.sets.conflux.CelestialPurge {
this.expansionSetCode = "M10";
}
public CelestialPurge(final CelestialPurge card) {
super(card);
}
@Override
public CelestialPurge copy() {
return new CelestialPurge(this);
}
}

View file

@ -49,7 +49,7 @@ public class ChildOfNight extends CardImpl<ChildOfNight> {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
this.abilities.add(LifelinkAbility.getInstance());
this.addAbility(LifelinkAbility.getInstance());
}
public ChildOfNight(final ChildOfNight card) {

View file

@ -41,4 +41,13 @@ public class Clone extends mage.sets.tenth.Clone {
this.expansionSetCode = "M10";
}
public Clone(final Clone card) {
super(card);
}
@Override
public Clone copy() {
return new Clone(this);
}
}

View file

@ -46,4 +46,13 @@ public class Deathmark extends mage.sets.tenth.Deathmark {
return "122155_typ_reg_sty_010.jpg";
}
public Deathmark(final Deathmark card) {
super(card);
}
@Override
public Deathmark copy() {
return new Deathmark(this);
}
}

View file

@ -41,4 +41,13 @@ public class DemonsHorn extends mage.sets.tenth.DemonsHorn {
this.expansionSetCode = "M10";
}
public DemonsHorn(final DemonsHorn card) {
super(card);
}
@Override
public DemonsHorn copy() {
return new DemonsHorn(this);
}
}

View file

@ -41,4 +41,13 @@ public class DiabolicTutor extends mage.sets.tenth.DiabolicTutor {
this.expansionSetCode = "M10";
}
public DiabolicTutor(final DiabolicTutor card) {
super(card);
}
@Override
public DiabolicTutor copy() {
return new DiabolicTutor(this);
}
}

View file

@ -31,7 +31,6 @@ package mage.sets.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.Constants.TargetController;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.filter.common.FilterCreaturePermanent;
@ -55,7 +54,7 @@ public class DoomBlade extends CardImpl<DoomBlade> {
super(onwerId, "Doom Blade", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{B}");
this.expansionSetCode = "M10";
this.color.setBlack(true);
this.getSpellAbility().addTarget(new TargetCreaturePermanent(1, 1, filter, TargetController.ANY, false));
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
this.getSpellAbility().addEffect(new DestroyTargetEffect());
}

View file

@ -41,4 +41,13 @@ public class DragonsClaw extends mage.sets.tenth.DragonsClaw {
this.expansionSetCode = "M10";
}
public DragonsClaw(final DragonsClaw card) {
super(card);
}
@Override
public DragonsClaw copy() {
return new DragonsClaw(this);
}
}

View file

@ -41,4 +41,13 @@ public class Excommunicate extends mage.sets.shardsofalara.Excommunicate {
this.expansionSetCode = "M10";
}
public Excommunicate(final Excommunicate card) {
super(card);
}
@Override
public Excommunicate copy() {
return new Excommunicate(this);
}
}

View file

@ -41,4 +41,13 @@ public class Flashfreeze extends mage.sets.tenth.Flashfreeze {
this.expansionSetCode = "M10";
}
public Flashfreeze(final Flashfreeze card) {
super(card);
}
@Override
public Flashfreeze copy() {
return new Flashfreeze(this);
}
}

View file

@ -46,4 +46,13 @@ public class Forest1 extends mage.cards.basiclands.Forest {
return "06769_typ_reg_sty_010.jpg";
}
public Forest1(final Forest1 card) {
super(card);
}
@Override
public Forest1 copy() {
return new Forest1(this);
}
}

View file

@ -46,4 +46,13 @@ public class Forest2 extends mage.cards.basiclands.Forest {
return "121707_typ_reg_sty_010.jpg";
}
public Forest2(final Forest2 card) {
super(card);
}
@Override
public Forest2 copy() {
return new Forest2(this);
}
}

View file

@ -46,4 +46,13 @@ public class Forest3 extends mage.cards.basiclands.Forest {
return "25501_typ_reg_sty_010.jpg";
}
public Forest3(final Forest3 card) {
super(card);
}
@Override
public Forest3 copy() {
return new Forest3(this);
}
}

View file

@ -46,4 +46,13 @@ public class Forest4 extends mage.cards.basiclands.Forest {
return "121708_typ_reg_sty_010.jpg";
}
public Forest4(final Forest4 card) {
super(card);
}
@Override
public Forest4 copy() {
return new Forest4(this);
}
}

View file

@ -32,7 +32,6 @@ import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.TargetController;
import mage.MageInt;
import mage.abilities.LoyaltyAbility;
import mage.abilities.effects.Effects;
@ -62,7 +61,7 @@ public class GarrukWildspeaker extends CardImpl<GarrukWildspeaker> {
this.loyalty = new MageInt(3);
LoyaltyAbility ability1 = new LoyaltyAbility(new UntapTargetEffect(), 1);
ability1.addTarget(new TargetLandPermanent(2, TargetController.ANY));
ability1.addTarget(new TargetLandPermanent(2));
this.addAbility(ability1);
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(beastToken), -1));

View file

@ -41,4 +41,13 @@ public class GiantGrowth extends mage.sets.tenth.GiantGrowth {
this.expansionSetCode = "M10";
}
public GiantGrowth(final GiantGrowth card) {
super(card);
}
@Override
public GiantGrowth copy() {
return new GiantGrowth(this);
}
}

View file

@ -41,4 +41,13 @@ public class GiantSpider extends mage.sets.tenth.GiantSpider {
this.expansionSetCode = "M10";
}
public GiantSpider(final GiantSpider card) {
super(card);
}
@Override
public GiantSpider copy() {
return new GiantSpider(this);
}
}

View file

@ -55,7 +55,7 @@ public class GoblinChieftain extends CardImpl<GoblinChieftain> {
public GoblinChieftain(UUID ownerId) {
super(ownerId, "Goblin Chieftain", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{R}{R}");
this.expansionSetCode = "M11";
this.expansionSetCode = "M10";
this.subtype.add("Goblin");
this.color.setRed(true);
this.power = new MageInt(2);

View file

@ -41,4 +41,13 @@ public class GoblinPiker extends mage.sets.tenth.GoblinPiker {
this.expansionSetCode = "M10";
}
public GoblinPiker(final GoblinPiker card) {
super(card);
}
@Override
public GoblinPiker copy() {
return new GoblinPiker(this);
}
}

View file

@ -41,4 +41,13 @@ public class Gravedigger extends mage.sets.tenth.Gravedigger {
this.expansionSetCode = "M10";
}
public Gravedigger(final Gravedigger card) {
super(card);
}
@Override
public Gravedigger copy() {
return new Gravedigger(this);
}
}

View file

@ -41,4 +41,13 @@ public class HolyStrength extends mage.sets.tenth.HolyStrength {
this.expansionSetCode = "M10";
}
public HolyStrength(final HolyStrength card) {
super(card);
}
@Override
public HolyStrength copy() {
return new HolyStrength(this);
}
}

View file

@ -95,7 +95,7 @@ class HowlingMineAbility extends TriggeredAbilityImpl<HowlingMineAbility> {
}
@Override
public boolean checkIfClause(Game game) {
public boolean checkInterveningIfClause(Game game) {
return !game.getPermanent(this.sourceId).isTapped();
}

View file

@ -46,4 +46,13 @@ public class Island1 extends mage.cards.basiclands.Island {
return "121700_typ_reg_sty_010.jpg";
}
public Island1(final Island1 card) {
super(card);
}
@Override
public Island1 copy() {
return new Island1(this);
}
}

View file

@ -46,4 +46,13 @@ public class Island2 extends mage.cards.basiclands.Island {
return "121687_typ_reg_sty_010.jpg";
}
public Island2(final Island2 card) {
super(card);
}
@Override
public Island2 copy() {
return new Island2(this);
}
}

View file

@ -46,4 +46,13 @@ public class Island3 extends mage.cards.basiclands.Island {
return "25162_typ_reg_sty_010.jpg";
}
public Island3(final Island3 card) {
super(card);
}
@Override
public Island3 copy() {
return new Island3(this);
}
}

View file

@ -46,4 +46,13 @@ public class Island4 extends mage.cards.basiclands.Island {
return "19006_typ_reg_sty_010.jpg";
}
public Island4(final Island4 card) {
super(card);
}
@Override
public Island4 copy() {
return new Island4(this);
}
}

View file

@ -41,4 +41,13 @@ public class KrakensEye extends mage.sets.tenth.KrakensEye {
this.expansionSetCode = "M10";
}
public KrakensEye(final KrakensEye card) {
super(card);
}
@Override
public KrakensEye copy() {
return new KrakensEye(this);
}
}

View file

@ -41,4 +41,13 @@ public class LavaAxe extends mage.sets.tenth.LavaAxe {
this.expansionSetCode = "M10";
}
public LavaAxe(final LavaAxe card) {
super(card);
}
@Override
public LavaAxe copy() {
return new LavaAxe(this);
}
}

View file

@ -0,0 +1,123 @@
/*
* 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.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DiscardTargetEffect;
import mage.abilities.effects.common.DrawCardAllEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.SearchLibraryPutOnLibraryEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetPlayer;
import mage.target.common.TargetCardInLibrary;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class LilianaVess extends CardImpl<LilianaVess> {
public LilianaVess(UUID ownerId) {
super(ownerId, "Liliana Vess", Rarity.MYTHIC, new CardType[]{CardType.PLANESWALKER}, "{3}{B}{B}");
this.expansionSetCode = "M10";
this.subtype.add("Liliana");
this.color.setBlack(true);
this.loyalty = new MageInt(5);
LoyaltyAbility ability1 = new LoyaltyAbility(new DiscardTargetEffect(1), -1);
ability1.addTarget(new TargetPlayer());
this.addAbility(ability1);
this.addAbility(new LoyaltyAbility(new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary()), -2));
this.addAbility(new LoyaltyAbility(new LilianaVessEffect(), -8));
}
public LilianaVess(final LilianaVess card) {
super(card);
}
@Override
public LilianaVess copy() {
return new LilianaVess(this);
}
@Override
public String getArt() {
return "105529_typ_reg_sty_010.jpg";
}
}
class LilianaVessEffect extends OneShotEffect<LilianaVessEffect> {
public LilianaVessEffect() {
super(Outcome.PutCreatureInPlay);
}
public LilianaVessEffect(final LilianaVessEffect effect) {
super(effect);
}
@Override
public boolean apply(Game game, Ability source) {
for (Player player: game.getPlayers().values()) {
for (Card card: player.getGraveyard().getCards(game)) {
if (card.getCardType().contains(CardType.CREATURE)) {
player.getGraveyard().remove(card);
card.putOntoBattlefield(game, Zone.GRAVEYARD, source.getControllerId());
}
}
}
return true;
}
@Override
public LilianaVessEffect copy() {
return new LilianaVessEffect(this);
}
@Override
public String getText(Ability source) {
return "Put all creature cards in all graveyards onto the battlefield under your control";
}
}

View file

@ -29,27 +29,16 @@
package mage.sets.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.mana.GreenManaAbility;
import mage.cards.CardImpl;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class LlanowarElves extends CardImpl<LlanowarElves> {
public class LlanowarElves extends mage.sets.tenth.LlanowarElves {
public LlanowarElves(UUID ownerId) {
super(ownerId, "Llanowar Elves", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}");
super(ownerId);
this.expansionSetCode = "M10";
this.subtype.add("Elf");
this.subtype.add("Druid");
this.color.setGreen(true);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(new GreenManaAbility());
}
public LlanowarElves(final LlanowarElves card) {
@ -61,9 +50,4 @@ public class LlanowarElves extends CardImpl<LlanowarElves> {
return new LlanowarElves(this);
}
@Override
public String getArt() {
return "86938_typ_reg_sty_010.jpg";
}
}
}

View file

@ -0,0 +1,77 @@
/*
* 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.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.PutIntoGraveFromBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DamageEverythingEffect;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class MagmaPhoenix extends CardImpl<MagmaPhoenix> {
public MagmaPhoenix(UUID ownerId) {
super(ownerId, "Magma Phoenix", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{R}{R}");
this.expansionSetCode = "M10";
this.subtype.add("Phoenix");
this.color.setRed(true);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
this.addAbility(FlyingAbility.getInstance());
this.addAbility(new PutIntoGraveFromBattlefieldTriggeredAbility(new DamageEverythingEffect(3), false));
this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl("{3}{R}{R}")));
}
public MagmaPhoenix(final MagmaPhoenix card) {
super(card);
}
@Override
public MagmaPhoenix copy() {
return new MagmaPhoenix(this);
}
@Override
public String getArt() {
return "121697_typ_reg_sty_010.jpg";
}
}

View file

@ -0,0 +1,92 @@
/*
* 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.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.BoostControlledEffect;
import mage.abilities.effects.common.GainAbilityControlledEffect;
import mage.abilities.effects.common.GainAbilityTargetEffect;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.UnblockableAbility;
import mage.cards.CardImpl;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class MerfolkSovereign extends CardImpl<MerfolkSovereign> {
private static FilterCreaturePermanent filter1 = new FilterCreaturePermanent("Merfolk creatures");
private static FilterCreaturePermanent filter2 = new FilterCreaturePermanent("Merfolk creature");
static {
filter1.getSubtype().add("Merfolk");
filter2.getSubtype().add("Merfolk");
}
public MerfolkSovereign(UUID ownerId) {
super(ownerId, "Merfolk Sovereign", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{U}{U}");
this.expansionSetCode = "M10";
this.subtype.add("Merfolk");
this.color.setBlue(true);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter1, true)));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(UnblockableAbility.getInstance(), Duration.EndOfTurn), new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter2));
this.addAbility(ability);
}
public MerfolkSovereign(final MerfolkSovereign card) {
super(card);
}
@Override
public MerfolkSovereign copy() {
return new MerfolkSovereign(this);
}
@Override
public String getArt() {
return "121667_typ_reg_sty_010.jpg";
}
}

View file

@ -0,0 +1,134 @@
/*
* 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.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Layer;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
import mage.Constants.SubLayer;
import mage.Constants.Zone;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class MindControl extends CardImpl<MindControl> {
public MindControl(UUID ownerId) {
super(ownerId, "Mind Control", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}");
this.expansionSetCode = "M10";
this.color.setBlue(true);
this.subtype.add("Aura");
TargetPermanent auraTarget = new TargetCreaturePermanent();
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment));
Ability ability = new EnchantAbility(Outcome.Detriment, auraTarget);
this.addAbility(ability);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MindControlEffect()));
}
public MindControl(final MindControl card) {
super(card);
}
@Override
public MindControl copy() {
return new MindControl(this);
}
@Override
public String getArt() {
return "121615_typ_reg_sty_010.jpg";
}
}
class MindControlEffect extends ContinuousEffectImpl<MindControlEffect> {
public MindControlEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment);
}
public MindControlEffect(final MindControlEffect effect) {
super(effect);
}
@Override
public MindControlEffect copy() {
return new MindControlEffect(this);
}
@Override
public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) {
Permanent enchantment = game.getPermanent(source.getSourceId());
if (enchantment != null && enchantment.getAttachedTo() != null) {
Permanent creature = game.getPermanent(enchantment.getAttachedTo());
if (creature != null) {
switch (layer) {
case ControlChangingEffects_2:
if (sublayer == SubLayer.NA) {
creature.changeControllerId(source.getControllerId(), game);
}
break;
}
return true;
}
}
return false;
}
@Override
public boolean apply(Game game, Ability source) {
return false;
}
@Override
public boolean hasLayer(Layer layer) {
return layer == Layer.ControlChangingEffects_2;
}
@Override
public String getText(Ability source) {
return "";
}
}

View file

@ -29,25 +29,17 @@
package mage.sets.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.abilities.effects.common.DiscardTargetEffect;
import mage.cards.CardImpl;
import mage.target.TargetPlayer;
/**
*
* @author LokiX
* @author BetaSteward_at_googlemail.com
*/
public class MindRot extends CardImpl<MindRot> {
public class MindRot extends mage.sets.tenth.MindRot {
public MindRot(UUID onwerId){
super(onwerId, "Mind Rot", Rarity.COMMON, new CardType[]{CardType.SORCERY},"{2}{B}");
this.expansionSetCode = "M10";
this.color.setBlack(true);
this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new DiscardTargetEffect(2));
}
public MindRot(UUID ownerId) {
super(ownerId);
this.expansionSetCode = "M10";
}
public MindRot(final MindRot card) {
super(card);
@ -58,8 +50,4 @@ public class MindRot extends CardImpl<MindRot> {
return new MindRot(this);
}
@Override
public String getArt() {
return "04716_typ_reg_sty_001.jpg";
}
}
}

View file

@ -31,7 +31,6 @@ package mage.sets.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.Constants.TargetController;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.filter.Filter.ComparisonScope;
@ -56,7 +55,7 @@ public class Naturalize extends CardImpl<Naturalize> {
super(onwerId, "Naturalize", Rarity.COMMON, new CardType[]{CardType.INSTANT},"{1}{G}");
this.expansionSetCode = "M10";
this.color.setGreen(true);
this.getSpellAbility().addTarget(new TargetPermanent(filter, TargetController.ANY));
this.getSpellAbility().addTarget(new TargetPermanent(filter));
this.getSpellAbility().addEffect(new DestroyTargetEffect());
}

View file

@ -31,14 +31,13 @@ package mage.sets.magic2010;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.Constants.TargetController;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.ActivatedAbilityImpl;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.filter.Filter.ComparisonScope;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
@ -48,6 +47,13 @@ import mage.target.common.TargetCreaturePermanent;
*/
public class RoyalAssassin extends CardImpl<RoyalAssassin> {
private static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature");
static {
filter.setUseTapped(true);
filter.setTapped(true);
}
public RoyalAssassin(UUID onwerId){
super(onwerId,"Royal Assassin", Rarity.RARE, new CardType[]{CardType.CREATURE},"{1}{B}{B}");
this.expansionSetCode = "M10";
@ -57,7 +63,9 @@ public class RoyalAssassin extends CardImpl<RoyalAssassin> {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(new RoyalAssassinAbility());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
public RoyalAssassin(final RoyalAssassin card) {
@ -74,31 +82,3 @@ public class RoyalAssassin extends CardImpl<RoyalAssassin> {
return "48786_typ_reg_sty_010.jpg";
}
}
class RoyalAssassinAbility extends ActivatedAbilityImpl<RoyalAssassinAbility> {
private static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature");
static {
filter.setUseTapped(true);
filter.setScopeColor(ComparisonScope.Any);
filter.setTapped(true);
}
public RoyalAssassinAbility(){
super(Zone.BATTLEFIELD, null);
addTarget(new TargetCreaturePermanent(1, 1, filter, TargetController.ANY, false));
addCost(new TapSourceCost());
addEffect(new DestroyTargetEffect());
}
public RoyalAssassinAbility(final RoyalAssassinAbility ability) {
super(ability);
}
@Override
public RoyalAssassinAbility copy() {
return new RoyalAssassinAbility(this);
}
}

View file

@ -41,4 +41,13 @@ public class AcidicSlime extends mage.sets.magic2010.AcidicSlime {
this.expansionSetCode = "M11";
}
public AcidicSlime(final AcidicSlime card) {
super(card);
}
@Override
public AcidicSlime copy() {
return new AcidicSlime(this);
}
}

View file

@ -41,4 +41,13 @@ public class ActOfTreason extends mage.sets.magic2010.ActOfTreason {
this.expansionSetCode = "M11";
}
public ActOfTreason(final ActOfTreason card) {
super(card);
}
@Override
public ActOfTreason copy() {
return new ActOfTreason(this);
}
}

View file

@ -41,4 +41,13 @@ public class AjaniGoldmane extends mage.sets.magic2010.AjaniGoldmane {
this.expansionSetCode = "M11";
}
public AjaniGoldmane(final AjaniGoldmane card) {
super(card);
}
@Override
public AjaniGoldmane copy() {
return new AjaniGoldmane(this);
}
}

View file

@ -41,4 +41,13 @@ public class AlluringSiren extends mage.sets.magic2010.AlluringSiren {
this.expansionSetCode = "M11";
}
public AlluringSiren(final AlluringSiren card) {
super(card);
}
@Override
public AlluringSiren copy() {
return new AlluringSiren(this);
}
}

View file

@ -41,4 +41,13 @@ public class AngelsFeather extends mage.sets.tenth.AngelsFeather {
this.expansionSetCode = "M11";
}
public AngelsFeather(final AngelsFeather card) {
super(card);
}
@Override
public AngelsFeather copy() {
return new AngelsFeather(this);
}
}

View file

@ -41,4 +41,13 @@ public class ArmoredAscension extends mage.sets.magic2010.ArmoredAscension {
this.expansionSetCode = "M11";
}
public ArmoredAscension(final ArmoredAscension card) {
super(card);
}
@Override
public ArmoredAscension copy() {
return new ArmoredAscension(this);
}
}

View file

@ -41,4 +41,13 @@ public class Assassinate extends mage.sets.tenth.Assassinate {
this.expansionSetCode = "M11";
}
public Assassinate(final Assassinate card) {
super(card);
}
@Override
public Assassinate copy() {
return new Assassinate(this);
}
}

View file

@ -32,12 +32,13 @@ import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.ObjectColor;
import mage.abilities.effects.common.CantCounterControlledEffect;
import mage.abilities.effects.common.CantTargetControlledEffect;
import mage.cards.CardImpl;
import mage.filter.FilterObject;
import mage.filter.FilterPermanent;
import mage.filter.Filter.ComparisonScope;
import mage.filter.FilterSpell;
import mage.filter.FilterStackObject;
import mage.filter.common.FilterCreaturePermanent;
/**
@ -48,7 +49,13 @@ public class AutumnsVeil extends CardImpl<AutumnsVeil> {
private static FilterSpell filterTarget1 = new FilterSpell("spells you control");
private static FilterCreaturePermanent filterTarget2 = FilterCreaturePermanent.getDefault();
private static FilterObject filterSource = new FilterObject("blue or black spells");
private static FilterStackObject filterSource = new FilterStackObject("blue or black spells");
static {
filterSource.getColor().setBlue(true);
filterSource.getColor().setBlack(true);
filterSource.setScopeColor(ComparisonScope.Any);
}
public AutumnsVeil(UUID ownerId) {
super(ownerId, "Autumn's Veil", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{G}");

View file

@ -41,4 +41,13 @@ public class AwakenerDruid extends mage.sets.magic2010.AwakenerDruid {
this.expansionSetCode = "M11";
}
public AwakenerDruid(final AwakenerDruid card) {
super(card);
}
@Override
public AwakenerDruid copy() {
return new AwakenerDruid(this);
}
}

View file

@ -41,4 +41,13 @@ public class BaneslayerAngel extends mage.sets.magic2010.BaneslayerAngel {
this.expansionSetCode = "M11";
}
public BaneslayerAngel(final BaneslayerAngel card) {
super(card);
}
@Override
public BaneslayerAngel copy() {
return new BaneslayerAngel(this);
}
}

View file

@ -41,4 +41,13 @@ public class BerserkersOfBloodRidge extends mage.sets.magic2010.BerserkersOfBloo
this.expansionSetCode = "M11";
}
public BerserkersOfBloodRidge(final BerserkersOfBloodRidge card) {
super(card);
}
@Override
public BerserkersOfBloodRidge copy() {
return new BerserkersOfBloodRidge(this);
}
}

View file

@ -41,4 +41,13 @@ public class BirdsOfParadise extends mage.sets.tenth.BirdsOfParadise {
this.expansionSetCode = "M11";
}
public BirdsOfParadise(final BirdsOfParadise card) {
super(card);
}
@Override
public BirdsOfParadise copy() {
return new BirdsOfParadise(this);
}
}

View file

@ -41,4 +41,13 @@ public class BlackKnight extends mage.sets.magic2010.BlackKnight {
this.expansionSetCode = "M11";
}
public BlackKnight(final BlackKnight card) {
super(card);
}
@Override
public BlackKnight copy() {
return new BlackKnight(this);
}
}

View file

@ -41,4 +41,13 @@ public class BlindingMage extends mage.sets.magic2010.BlindingMage {
this.expansionSetCode = "M11";
}
public BlindingMage(final BlindingMage card) {
super(card);
}
@Override
public BlindingMage copy() {
return new BlindingMage(this);
}
}

View file

@ -41,4 +41,13 @@ public class BloodthroneVampire extends mage.sets.riseoftheeldrazi.BloodthroneVa
this.expansionSetCode = "M11";
}
public BloodthroneVampire(final BloodthroneVampire card) {
super(card);
}
@Override
public BloodthroneVampire copy() {
return new BloodthroneVampire(this);
}
}

View file

@ -41,4 +41,13 @@ public class Cancel extends mage.sets.shardsofalara.Cancel {
this.expansionSetCode = "M11";
}
public Cancel(final Cancel card) {
super(card);
}
@Override
public Cancel copy() {
return new Cancel(this);
}
}

View file

@ -41,4 +41,13 @@ public class CanyonMinotaur extends mage.sets.conflux.CanyonMinotaur {
this.expansionSetCode = "M11";
}
public CanyonMinotaur(final CanyonMinotaur card) {
super(card);
}
@Override
public CanyonMinotaur copy() {
return new CanyonMinotaur(this);
}
}

View file

@ -44,9 +44,13 @@ import mage.abilities.costs.common.TapTargetCost;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.common.BoostControlledEffect;
import mage.cards.CardImpl;
import mage.filter.Filter.ComparisonScope;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetCreaturePermanent;
@ -57,7 +61,7 @@ import mage.target.common.TargetCreaturePermanent;
public class CaptivatingVampire extends CardImpl<CaptivatingVampire> {
private static FilterCreaturePermanent filter1 = new FilterCreaturePermanent("Vampire creatures");
private static FilterCreaturePermanent filter2 = new FilterCreaturePermanent("five untapped Vampires");
private static FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent("five untapped Vampires");
static {
filter1.getSubtype().add("Vampire");
@ -75,7 +79,7 @@ public class CaptivatingVampire extends CardImpl<CaptivatingVampire> {
this.toughness = new MageInt(2);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter1, true)));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CaptivatingVampireEffect(), new TapTargetCost(new TargetControlledPermanent(5, 5, filter2, true)));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CaptivatingVampireEffect(), new TapTargetCost(new TargetControlledCreaturePermanent(5, 5, filter2, true)));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}

View file

@ -41,4 +41,13 @@ public class CelestialPurge extends mage.sets.conflux.CelestialPurge {
this.expansionSetCode = "M11";
}
public CelestialPurge(final CelestialPurge card) {
super(card);
}
@Override
public CelestialPurge copy() {
return new CelestialPurge(this);
}
}

View file

@ -41,4 +41,13 @@ public class ChandraNalaar extends mage.sets.magic2010.ChandraNalaar {
this.expansionSetCode = "M11";
}
public ChandraNalaar(final ChandraNalaar card) {
super(card);
}
@Override
public ChandraNalaar copy() {
return new ChandraNalaar(this);
}
}

View file

@ -41,4 +41,13 @@ public class ChildOfNight extends mage.sets.magic2010.ChildOfNight {
this.expansionSetCode = "M11";
}
public ChildOfNight(final ChildOfNight card) {
super(card);
}
@Override
public ChildOfNight copy() {
return new ChildOfNight(this);
}
}

View file

@ -41,4 +41,13 @@ public class Clone extends mage.sets.tenth.Clone {
this.expansionSetCode = "M11";
}
public Clone(final Clone card) {
super(card);
}
@Override
public Clone copy() {
return new Clone(this);
}
}

View file

@ -41,4 +41,13 @@ public class CloudElemental extends mage.sets.tenth.CloudElemental {
this.expansionSetCode = "M11";
}
public CloudElemental(final CloudElemental card) {
super(card);
}
@Override
public CloudElemental copy() {
return new CloudElemental(this);
}
}

View file

@ -41,4 +41,13 @@ public class Condemn extends mage.sets.tenth.Condemn {
this.expansionSetCode = "M11";
}
public Condemn(final Condemn card) {
super(card);
}
@Override
public Condemn copy() {
return new Condemn(this);
}
}

View file

@ -34,6 +34,7 @@ import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
@ -106,10 +107,10 @@ class ConundrumSphinxEffect extends OneShotEffect<ConundrumSphinxEffect> {
cards.add(card);
player.revealCards(cards, game);
if (card.getName().equals(cardChoice.getChoice())) {
player.putInHand(card, game);
card.moveToZone(Zone.HAND, game, true);
}
else {
player.getLibrary().putOnBottom(card, game);
card.moveToZone(Zone.LIBRARY, game, false);
}
}

View file

@ -41,4 +41,13 @@ public class CudgelTroll extends mage.sets.magic2010.CudgelTroll {
this.expansionSetCode = "M11";
}
public CudgelTroll(final CudgelTroll card) {
super(card);
}
@Override
public CudgelTroll copy() {
return new CudgelTroll(this);
}
}

View file

@ -112,17 +112,17 @@ class CultivateEffect extends OneShotEffect<CultivateEffect> {
target2.setRequired(true);
player.chooseTarget(revealed, target2, source, game);
Card card = revealed.get(target2.getFirstTarget(), game);
player.putOntoBattlefield(card, game);
card.putOntoBattlefield(game, Zone.LIBRARY, source.getControllerId());
revealed.remove(card);
Permanent permanent = game.getPermanent(card.getId());
if (permanent != null)
permanent.setTapped(true);
card = revealed.getCards(game).iterator().next();
player.putInHand(card, game);
card.moveToZone(Zone.HAND, game, false);
}
else if (target.getTargets().size() == 1) {
Card card = revealed.getCards(game).iterator().next();
player.putOntoBattlefield(card, game);
card.putOntoBattlefield(game, Zone.LIBRARY, source.getControllerId());
Permanent permanent = game.getPermanent(card.getId());
if (permanent != null)
permanent.setTapped(true);

View file

@ -32,6 +32,7 @@ import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.abilities.Ability;
import mage.abilities.common.OnEventTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
@ -87,7 +88,8 @@ class DarkTutelageEffect extends OneShotEffect<DarkTutelageEffect> {
Player player = game.getPlayer(source.getControllerId());
Card card = player.getLibrary().removeFromTop(game);
if (card != null) {
player.putInHand(card, game);
card.moveToZone(Zone.HAND, game, false);
// player.putInHand(card, game);
player.loseLife(card.getManaCost().convertedManaCost(), game);
Cards cards = new CardsImpl();
cards.add(card);

View file

@ -41,4 +41,13 @@ public class DayOfJudgment extends mage.sets.zendikar.DayOfJudgment {
this.expansionSetCode = "M11";
}
public DayOfJudgment(final DayOfJudgment card) {
super(card);
}
@Override
public DayOfJudgment copy() {
return new DayOfJudgment(this);
}
}

View file

@ -41,4 +41,13 @@ public class Deathmark extends mage.sets.magic2010.Deathmark {
this.expansionSetCode = "M11";
}
public Deathmark(final Deathmark card) {
super(card);
}
@Override
public Deathmark copy() {
return new Deathmark(this);
}
}

View file

@ -41,4 +41,13 @@ public class Demolish extends mage.sets.zendikar.Demolish {
this.expansionSetCode = "M11";
}
public Demolish(final Demolish card) {
super(card);
}
@Override
public Demolish copy() {
return new Demolish(this);
}
}

View file

@ -32,15 +32,16 @@ import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.costs.AlternativeCost;
import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.filter.Filter.ComparisonScope;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.target.common.TargetControlledPermanent;
/**
@ -79,7 +80,7 @@ public class DemonOfDeathsGate extends CardImpl<DemonOfDeathsGate> {
}
class DemonOfDeathsGateAlternativeCost extends AlternativeCost<DemonOfDeathsGateAlternativeCost> {
private static FilterCreaturePermanent filter = new FilterCreaturePermanent("black creature");
private static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("black creature");
static {
filter.getColor().setBlack(true);

View file

@ -41,4 +41,13 @@ public class DemonsHorn extends mage.sets.tenth.DemonsHorn {
this.expansionSetCode = "M11";
}
public DemonsHorn(final DemonsHorn card) {
super(card);
}
@Override
public DemonsHorn copy() {
return new DemonsHorn(this);
}
}

View file

@ -41,4 +41,13 @@ public class DiabolicTutor extends mage.sets.tenth.DiabolicTutor {
this.expansionSetCode = "M11";
}
public DiabolicTutor(final DiabolicTutor card) {
super(card);
}
@Override
public DiabolicTutor copy() {
return new DiabolicTutor(this);
}
}

View file

@ -41,4 +41,13 @@ public class Disentomb extends mage.sets.magic2010.Disentomb {
this.expansionSetCode = "M11";
}
public Disentomb(final Disentomb card) {
super(card);
}
@Override
public Disentomb copy() {
return new Disentomb(this);
}
}

View file

@ -41,4 +41,13 @@ public class DoomBlade extends mage.sets.magic2010.DoomBlade {
this.expansionSetCode = "M11";
}
public DoomBlade(final DoomBlade card) {
super(card);
}
@Override
public DoomBlade copy() {
return new DoomBlade(this);
}
}

View file

@ -41,4 +41,13 @@ public class DragonsClaw extends mage.sets.tenth.DragonsClaw {
this.expansionSetCode = "M11";
}
public DragonsClaw(final DragonsClaw card) {
super(card);
}
@Override
public DragonsClaw copy() {
return new DragonsClaw(this);
}
}

View file

@ -41,4 +41,13 @@ public class DragonskullSummit extends mage.sets.magic2010.DragonskullSummit {
this.expansionSetCode = "M11";
}
public DragonskullSummit(final DragonskullSummit card) {
super(card);
}
@Override
public DragonskullSummit copy() {
return new DragonskullSummit(this);
}
}

View file

@ -41,4 +41,13 @@ public class Duress extends mage.sets.magic2010.Duress {
this.expansionSetCode = "M11";
}
public Duress(final Duress card) {
super(card);
}
@Override
public Duress copy() {
return new Duress(this);
}
}

View file

@ -41,4 +41,13 @@ public class EliteVanguard extends mage.sets.magic2010.EliteVanguard {
this.expansionSetCode = "M11";
}
public EliteVanguard(final EliteVanguard card) {
super(card);
}
@Override
public EliteVanguard copy() {
return new EliteVanguard(this);
}
}

View file

@ -41,6 +41,7 @@ import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ScryEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.game.Game;
import mage.players.Player;
@ -91,7 +92,9 @@ class ElixerOfImmortalityEffect extends OneShotEffect<ElixerOfImmortalityEffect>
Player player = game.getPlayer(source.getControllerId());
player.gainLife(5, game);
player.removeFromBattlefield(game.getPermanent(source.getSourceId()), game);
player.getLibrary().putOnBottom(game.getCard(source.getSourceId()), game);
Card card = game.getCard(source.getSourceId());
card.moveToZone(Zone.LIBRARY, game, true);
// player.getLibrary().putOnBottom(game.getCard(source.getSourceId()), game);
player.getLibrary().addAll(player.getGraveyard().getCards(game));
player.getGraveyard().clear();
player.getLibrary().shuffle();

View file

@ -41,4 +41,13 @@ public class ElvishArchdruid extends mage.sets.magic2010.ElvishArchdruid {
this.expansionSetCode = "M11";
}
public ElvishArchdruid(final ElvishArchdruid card) {
super(card);
}
@Override
public ElvishArchdruid copy() {
return new ElvishArchdruid(this);
}
}

View file

@ -41,4 +41,13 @@ public class Excommunicate extends mage.sets.shardsofalara.Excommunicate {
this.expansionSetCode = "M11";
}
public Excommunicate(final Excommunicate card) {
super(card);
}
@Override
public Excommunicate copy() {
return new Excommunicate(this);
}
}

View file

@ -41,4 +41,13 @@ public class FieryHellhound extends mage.sets.magic2010.FieryHellhound {
this.expansionSetCode = "M11";
}
public FieryHellhound(final FieryHellhound card) {
super(card);
}
@Override
public FieryHellhound copy() {
return new FieryHellhound(this);
}
}

View file

@ -41,4 +41,13 @@ public class Fireball extends mage.sets.magic2010.Fireball {
this.expansionSetCode = "M11";
}
public Fireball(final Fireball card) {
super(card);
}
@Override
public Fireball copy() {
return new Fireball(this);
}
}

View file

@ -41,4 +41,13 @@ public class Flashfreeze extends mage.sets.tenth.Flashfreeze {
this.expansionSetCode = "M11";
}
public Flashfreeze(final Flashfreeze card) {
super(card);
}
@Override
public Flashfreeze copy() {
return new Flashfreeze(this);
}
}

Some files were not shown because too many files have changed in this diff Show more