mirror of
https://github.com/correl/mage.git
synced 2024-12-26 19:16:54 +00:00
[AKH] Fixed black cards tooltips
This commit is contained in:
parent
ee9613fa49
commit
d4e2b6f306
8 changed files with 21 additions and 120 deletions
|
@ -61,7 +61,7 @@ import mage.watchers.common.CreaturesDiedWatcher;
|
||||||
*/
|
*/
|
||||||
public class BontuTheGlorified extends CardImpl {
|
public class BontuTheGlorified extends CardImpl {
|
||||||
|
|
||||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent();
|
private static final FilterControlledPermanent filter = new FilterControlledPermanent("another creature");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(new AnotherPredicate());
|
filter.add(new AnotherPredicate());
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class Decompose extends CardImpl {
|
||||||
|
|
||||||
// Exile up to three target cards from a single graveyard.
|
// Exile up to three target cards from a single graveyard.
|
||||||
this.getSpellAbility().addEffect(new ExileTargetEffect());
|
this.getSpellAbility().addEffect(new ExileTargetEffect());
|
||||||
this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards")));
|
this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Decompose(final Decompose card) {
|
public Decompose(final Decompose card) {
|
||||||
|
|
|
@ -29,22 +29,18 @@ package mage.cards.f;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.Mode;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.DiscardSourceCost;
|
import mage.abilities.costs.common.DiscardSourceCost;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.Card;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
|
||||||
import mage.target.common.TargetCardInGraveyard;
|
import mage.target.common.TargetCardInGraveyard;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import mage.abilities.effects.common.ExileTargetEffect;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -63,7 +59,7 @@ public class FaerieMacabre extends CardImpl {
|
||||||
// Flying
|
// Flying
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
// Discard Faerie Macabre: Exile up to two target cards from graveyards.
|
// Discard Faerie Macabre: Exile up to two target cards from graveyards.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.HAND, new FaerieMacabreExileTargetEffect(), new DiscardSourceCost());
|
Ability ability = new SimpleActivatedAbility(Zone.HAND, new ExileTargetEffect(), new DiscardSourceCost());
|
||||||
ability.addTarget(new TargetCardInGraveyard(0, 2, new FilterCard("cards from graveyards")));
|
ability.addTarget(new TargetCardInGraveyard(0, 2, new FilterCard("cards from graveyards")));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
@ -77,35 +73,3 @@ public class FaerieMacabre extends CardImpl {
|
||||||
return new FaerieMacabre(this);
|
return new FaerieMacabre(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FaerieMacabreExileTargetEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
public FaerieMacabreExileTargetEffect() {
|
|
||||||
super(Outcome.Exile);
|
|
||||||
}
|
|
||||||
|
|
||||||
public FaerieMacabreExileTargetEffect(final FaerieMacabreExileTargetEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FaerieMacabreExileTargetEffect copy() {
|
|
||||||
return new FaerieMacabreExileTargetEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
for(UUID uuid : source.getTargets().get(0).getTargets()){
|
|
||||||
Card card = game.getCard(uuid);
|
|
||||||
if (card != null) {
|
|
||||||
card.moveToExile(null, "Faerie Macabre", source.getSourceId(), game);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getText(Mode mode) {
|
|
||||||
return "Exile up to two target cards from graveyards";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -56,9 +56,9 @@ public class FamishedGhoul extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// {1}{B}, Sacrifice Famished Ghoul: Exile up to two target cards from a single graveyard.
|
// {1}{B}, Sacrifice Famished Ghoul: Exile up to two target cards from a single graveyard.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect("Exile up to two target cards from a single graveyard"), new ManaCostsImpl("{1}{B}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{1}{B}"));
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
ability.addTarget(new TargetCardInASingleGraveyard(0, 2, new FilterCard()));
|
ability.addTarget(new TargetCardInASingleGraveyard(0, 2, new FilterCard("cards from a single graveyard")));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,25 +25,21 @@
|
||||||
* authors and should not be interpreted as representing official policies, either expressed
|
* authors and should not be interpreted as representing official policies, either expressed
|
||||||
* or implied, of BetaSteward_at_googlemail.com.
|
* or implied, of BetaSteward_at_googlemail.com.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package mage.cards.r;
|
package mage.cards.r;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.common.ExileTargetEffect;
|
||||||
import mage.cards.Card;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
|
||||||
import mage.target.common.TargetCardInASingleGraveyard;
|
import mage.target.common.TargetCardInASingleGraveyard;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,14 +53,13 @@ public class RagDealer extends CardImpl {
|
||||||
this.subtype.add("Human");
|
this.subtype.add("Human");
|
||||||
this.subtype.add("Rogue");
|
this.subtype.add("Rogue");
|
||||||
|
|
||||||
|
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// {2}{B}, {T}: Exile up to three target cards from a single graveyard.
|
// {2}{B}, {T}: Exile up to three target cards from a single graveyard.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RagDealerExileEffect(), new ManaCostsImpl("{2}{B}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{2}{B}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("up to three target cards from a single graveyard")));
|
ability.addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard")));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,31 +73,3 @@ public class RagDealer extends CardImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class RagDealerExileEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
public RagDealerExileEffect() {
|
|
||||||
super(Outcome.Exile);
|
|
||||||
this.staticText = "Exile up to three target cards from a single graveyard";
|
|
||||||
}
|
|
||||||
|
|
||||||
public RagDealerExileEffect(final RagDealerExileEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RagDealerExileEffect copy() {
|
|
||||||
return new RagDealerExileEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
for (UUID targetID : source.getTargets().get(0).getTargets()) {
|
|
||||||
Card card = game.getCard(targetID);
|
|
||||||
if (card != null) {
|
|
||||||
card.moveToExile(null, "", source.getSourceId(), game);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -28,17 +28,13 @@
|
||||||
package mage.cards.r;
|
package mage.cards.r;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.common.ExileTargetEffect;
|
||||||
import mage.abilities.keyword.CyclingAbility;
|
import mage.abilities.keyword.CyclingAbility;
|
||||||
import mage.cards.Card;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
|
||||||
import mage.target.common.TargetCardInASingleGraveyard;
|
import mage.target.common.TargetCardInASingleGraveyard;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -51,8 +47,8 @@ public class RapidDecay extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}");
|
||||||
|
|
||||||
// Exile up to three target cards from a single graveyard.
|
// Exile up to three target cards from a single graveyard.
|
||||||
this.getSpellAbility().addEffect(new RapidDecayExileEffect());
|
this.getSpellAbility().addEffect(new ExileTargetEffect());
|
||||||
this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("up to three target cards from a single graveyard")));
|
this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard")));
|
||||||
|
|
||||||
// Cycling {2}
|
// Cycling {2}
|
||||||
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
|
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
|
||||||
|
@ -67,31 +63,3 @@ public class RapidDecay extends CardImpl {
|
||||||
return new RapidDecay(this);
|
return new RapidDecay(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class RapidDecayExileEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
public RapidDecayExileEffect() {
|
|
||||||
super(Outcome.Exile);
|
|
||||||
this.staticText = "Exile up to three target cards from a single graveyard";
|
|
||||||
}
|
|
||||||
|
|
||||||
public RapidDecayExileEffect(final RapidDecayExileEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RapidDecayExileEffect copy() {
|
|
||||||
return new RapidDecayExileEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
for (UUID targetID : source.getTargets().get(0).getTargets()) {
|
|
||||||
Card card = game.getCard(targetID);
|
|
||||||
if (card != null) {
|
|
||||||
card.moveToExile(null, "", source.getSourceId(), game);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class ScarabFeast extends CardImpl {
|
||||||
|
|
||||||
// Exile up to three target cards from a single graveyard.
|
// Exile up to three target cards from a single graveyard.
|
||||||
getSpellAbility().addEffect(new ExileTargetEffect());
|
getSpellAbility().addEffect(new ExileTargetEffect());
|
||||||
getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards")));
|
getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard")));
|
||||||
|
|
||||||
// Cycling {B}
|
// Cycling {B}
|
||||||
addAbility(new CyclingAbility(new ManaCostsImpl("{B}")));
|
addAbility(new CyclingAbility(new ManaCostsImpl("{B}")));
|
||||||
|
|
|
@ -172,6 +172,8 @@ public class ExileTargetEffect extends OneShotEffect {
|
||||||
sb.append("target ");
|
sb.append("target ");
|
||||||
}
|
}
|
||||||
sb.append(targetName);
|
sb.append(targetName);
|
||||||
|
} else if (target.getNumberOfTargets() == 0 && target.getMaxNumberOfTargets() > 0) {
|
||||||
|
sb.append("exile up to ").append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(" target ").append(target.getTargetName());
|
||||||
} else {
|
} else {
|
||||||
sb.append("exile ").append(CardUtil.numberToText(target.getNumberOfTargets())).append(" target ").append(target.getTargetName());
|
sb.append("exile ").append(CardUtil.numberToText(target.getNumberOfTargets())).append(" target ").append(target.getTargetName());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue