mirror of
https://github.com/magefree/mage.git
synced 2026-01-24 20:29:19 -08:00
more text fixes
This commit is contained in:
parent
3baabe2534
commit
bc2bfba02a
37 changed files with 124 additions and 126 deletions
|
|
@ -87,7 +87,7 @@ public class AgelessSentinels extends CardImpl {
|
|||
|
||||
public AgelessSentinelsEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.BecomeCreature);
|
||||
staticText = "it becomes a Bird Giant, ";
|
||||
staticText = "it becomes a Bird Giant,";
|
||||
}
|
||||
|
||||
public AgelessSentinelsEffect(final AgelessSentinelsEffect effect) {
|
||||
|
|
|
|||
|
|
@ -109,6 +109,6 @@ class AlphaStatusDynamicValue implements DynamicValue {
|
|||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "each other creature on the battlefield that shares a creature type with it";
|
||||
return "other creature on the battlefield that shares a creature type with it";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,15 +52,17 @@ import mage.game.permanent.Permanent;
|
|||
public class AncientOoze extends CardImpl {
|
||||
|
||||
public AncientOoze(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}");
|
||||
this.subtype.add(SubType.OOZE);
|
||||
|
||||
this.color.setGreen(true);
|
||||
this.color.setGreen(true);
|
||||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(0);
|
||||
|
||||
// Ancient Ooze's power and toughness are each equal to the total converted mana cost of other creatures you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new AncientOozePowerToughnessValue(), Duration.EndOfGame)));
|
||||
// Ancient Ooze's power and toughness are each equal to the total converted mana cost of other creatures you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new AncientOozePowerToughnessValue(), Duration.EndOfGame)
|
||||
.setText("{this}'s power and toughness are each equal to the total converted mana cost of other creatures you control.")
|
||||
));
|
||||
}
|
||||
|
||||
public AncientOoze(final AncientOoze card) {
|
||||
|
|
@ -74,12 +76,12 @@ public class AncientOoze extends CardImpl {
|
|||
}
|
||||
|
||||
class AncientOozePowerToughnessValue implements DynamicValue {
|
||||
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
int value = 0;
|
||||
for(Permanent creature : game.getBattlefield().getActivePermanents(new FilterControlledCreaturePermanent(), sourceAbility.getControllerId(), game)){
|
||||
if(creature != null && !sourceAbility.getSourceId().equals(creature.getId())){
|
||||
for (Permanent creature : game.getBattlefield().getActivePermanents(new FilterControlledCreaturePermanent(), sourceAbility.getControllerId(), game)) {
|
||||
if (creature != null && !sourceAbility.getSourceId().equals(creature.getId())) {
|
||||
value += creature.getConvertedManaCost();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,21 +52,21 @@ import mage.target.common.TargetControlledCreaturePermanent;
|
|||
public class BlackCarriage extends CardImpl {
|
||||
|
||||
public BlackCarriage(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
|
||||
this.subtype.add(SubType.HORSE);
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
|
||||
// Black Carriage doesn't untap during your untap step.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
|
||||
|
||||
|
||||
// Sacrifice a creature: Untap Black Carriage. Activate this ability only during your upkeep.
|
||||
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new UntapSourceEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("a creature"))),
|
||||
new IsStepCondition(PhaseStep.UPKEEP), null));
|
||||
new IsStepCondition(PhaseStep.UPKEEP), "Sacrifice a creature: Untap {this}. Activate this ability only during your upkeep."));
|
||||
}
|
||||
|
||||
public BlackCarriage(final BlackCarriage card) {
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class BrownOuphe extends CardImpl {
|
||||
|
||||
private final static FilterStackObject filter = new FilterStackObject("ability from an artifact source");
|
||||
private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source");
|
||||
|
||||
static {
|
||||
filter.add(new ArtifactSourcePredicate());
|
||||
|
|
|
|||
|
|
@ -42,10 +42,12 @@ import mage.target.TargetPlayer;
|
|||
public class CabalConditioning extends CardImpl {
|
||||
|
||||
public CabalConditioning(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{6}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{6}{B}");
|
||||
|
||||
// Any number of target players each discard a number of cards equal to the highest converted mana cost among permanents you control.
|
||||
this.getSpellAbility().addEffect(new DiscardTargetEffect(new HighestConvertedManaCostValue()));
|
||||
this.getSpellAbility().addEffect(new DiscardTargetEffect(new HighestConvertedManaCostValue())
|
||||
.setText("Any number of target players each discard a number of cards equal to the highest converted mana cost among permanents you control.")
|
||||
);
|
||||
this.getSpellAbility().addTarget(new TargetPlayer(0, Integer.MAX_VALUE, false));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ import mage.game.permanent.Permanent;
|
|||
public class ClergyOfTheHolyNimbus extends CardImpl {
|
||||
|
||||
public ClergyOfTheHolyNimbus(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.CLERIC);
|
||||
this.power = new MageInt(1);
|
||||
|
|
@ -61,7 +61,7 @@ public class ClergyOfTheHolyNimbus extends CardImpl {
|
|||
|
||||
// If Clergy of the Holy Nimbus would be destroyed, regenerate it.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new ClergyOfTheHolyNimbusReplacementEffect()));
|
||||
|
||||
|
||||
// {1}: Clergy of the Holy Nimbus can't be regenerated this turn. Only any opponent may activate this ability.
|
||||
this.addAbility(new ActivateOnlyByOpponentActivatedAbility(Zone.BATTLEFIELD, new CantBeRegeneratedSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}")));
|
||||
}
|
||||
|
|
@ -90,7 +90,7 @@ class ClergyOfTheHolyNimbusReplacementEffect extends ReplacementEffectImpl {
|
|||
@Override
|
||||
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
|
||||
Permanent ClergyOfTheHolyNimbus = game.getPermanent(event.getTargetId());
|
||||
if (ClergyOfTheHolyNimbus != null
|
||||
if (ClergyOfTheHolyNimbus != null
|
||||
&& event.getAmount() == 0) { // 1=noRegen
|
||||
if (ClergyOfTheHolyNimbus.regenerate(source.getSourceId(), game)) {
|
||||
game.informPlayers(source.getSourceObject(game).getName() + " has been regenerated.");
|
||||
|
|
@ -116,4 +116,4 @@ class ClergyOfTheHolyNimbusReplacementEffect extends ReplacementEffectImpl {
|
|||
return new ClergyOfTheHolyNimbusReplacementEffect(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -59,7 +59,7 @@ public class CoalitionFlag extends CardImpl {
|
|||
this.subtype.add(SubType.AURA);
|
||||
|
||||
// Enchant creature you control
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
TargetPermanent auraTarget = new TargetControlledCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ public class DaughterOfAutumn extends CardImpl {
|
|||
// {W}: The next 1 damage that would be dealt to target white creature this turn is dealt to Daughter of Autumn instead.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DaughterOfAutumnPreventDamageTargetEffect(Duration.EndOfTurn, 1), new ManaCostsImpl("{W}"));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public DaughterOfAutumn(final DaughterOfAutumn card) {
|
||||
|
|
|
|||
|
|
@ -50,10 +50,12 @@ public class DivineLight extends CardImpl {
|
|||
}
|
||||
|
||||
public DivineLight(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{W}");
|
||||
|
||||
// Prevent all damage that would be dealt this turn to creatures you control.
|
||||
this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, filter));
|
||||
this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, filter)
|
||||
.setText("Prevent all damage that would be dealt this turn to creatures you control.")
|
||||
);
|
||||
}
|
||||
|
||||
public DivineLight(final DivineLight card) {
|
||||
|
|
|
|||
|
|
@ -46,18 +46,18 @@ import mage.filter.predicate.mageobject.ColorPredicate;
|
|||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
|
||||
*
|
||||
*/
|
||||
public class DwarvenPatrol extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("nonred spell");
|
||||
private static final FilterSpell filter = new FilterSpell("a nonred spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(new ColorPredicate(ObjectColor.RED)));
|
||||
}
|
||||
|
||||
public DwarvenPatrol(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
||||
this.subtype.add(SubType.DWARF);
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(2);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,9 @@ public class GreatDefender extends CardImpl {
|
|||
|
||||
// Target creature gets +0/+X until end of turn, where X is its converted mana cost.
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(new StaticValue(0), new TargetConvertedManaCost(), Duration.EndOfTurn, true));
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(new StaticValue(0), new TargetConvertedManaCost(), Duration.EndOfTurn, true)
|
||||
.setText("Target creature gets +0/+X until end of turn, where X is its converted mana cost.")
|
||||
);
|
||||
}
|
||||
|
||||
public GreatDefender(final GreatDefender card) {
|
||||
|
|
|
|||
|
|
@ -52,11 +52,10 @@ import mage.players.Player;
|
|||
public class IceCave extends CardImpl {
|
||||
|
||||
public IceCave(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}");
|
||||
|
||||
// Whenever a player casts a spell, any other player may pay that spell's mana cost. If a player does, counter the spell. (Mana cost includes color.)
|
||||
this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new IceCaveEffect(), StaticFilters.FILTER_SPELL, false, SetTargetPointer.SPELL));
|
||||
this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new IceCaveEffect(), StaticFilters.FILTER_A_SPELL, false, SetTargetPointer.SPELL));
|
||||
}
|
||||
|
||||
public IceCave(final IceCave card) {
|
||||
|
|
@ -90,17 +89,17 @@ class IceCaveEffect extends OneShotEffect {
|
|||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
|
||||
Spell spell = (Spell) game.getStack().getStackObject(targetPointer.getFirst(game, source));
|
||||
if(sourcePermanent != null && spell != null && controller != null) {
|
||||
if (sourcePermanent != null && spell != null && controller != null) {
|
||||
Player spellController = game.getPlayer(spell.getControllerId());
|
||||
Cost cost = new ManaCostsImpl(spell.getSpellAbility().getManaCosts().getText());
|
||||
if(spellController != null) {
|
||||
if (spellController != null) {
|
||||
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
|
||||
Player player = game.getPlayer(playerId);
|
||||
if(player != null && player != spellController) {
|
||||
if (player != null && player != spellController) {
|
||||
cost.clearPaid();
|
||||
if(cost.canPay(source, source.getSourceId(), player.getId(), game)
|
||||
if (cost.canPay(source, source.getSourceId(), player.getId(), game)
|
||||
&& player.chooseUse(outcome, "Pay " + cost.getText() + " to counter " + spell.getIdName() + '?', source, game)) {
|
||||
if(cost.pay(source, game, source.getSourceId(), playerId, false, null)) {
|
||||
if (cost.pay(source, game, source.getSourceId(), playerId, false, null)) {
|
||||
game.informPlayers(player.getLogName() + " pays" + cost.getText() + " to counter " + spell.getIdName() + '.');
|
||||
game.getStack().counter(spell.getId(), source.getSourceId(), game);
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class Illuminate extends CardImpl {
|
||||
|
||||
public Illuminate(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
|
||||
|
||||
// Kicker {2}{R} and/or {3}{U}
|
||||
KickerAbility kickerAbility = new KickerAbility("{2}{R}");
|
||||
|
|
@ -57,13 +57,13 @@ public class Illuminate extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new DamageTargetEffect(new ManacostVariableValue()));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetControllerEffect(new ManacostVariableValue()),
|
||||
new KickedCostCondition("{2}{R}"),
|
||||
"If {this} was kicked with its {2}{R} kicker, it deals X damage to that creature's controller."));
|
||||
new DamageTargetControllerEffect(new ManacostVariableValue()),
|
||||
new KickedCostCondition("{2}{R}"),
|
||||
"If {this} was kicked with its {2}{R} kicker, it deals X damage to that creature's controller."));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DrawCardSourceControllerEffect(new ManacostVariableValue()),
|
||||
new KickedCostCondition("{3}{U}"),
|
||||
"If {this} was kicked with its {3}{U} kicker, you draw X cards."));
|
||||
new DrawCardSourceControllerEffect(new ManacostVariableValue()),
|
||||
new KickedCostCondition("{3}{U}"),
|
||||
" If {this} was kicked with its {3}{U} kicker, you draw X cards."));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,11 +53,11 @@ import mage.target.targetpointer.SecondTargetPointer;
|
|||
public class Jilt extends CardImpl {
|
||||
|
||||
public Jilt(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
|
||||
|
||||
// Kicker {1}{R}
|
||||
this.addAbility(new KickerAbility("{1}{R}"));
|
||||
|
||||
|
||||
// Return target creature to its owner's hand. If Jilt was kicked, it deals 2 damage to another target creature.
|
||||
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
Effect effect = new ConditionalOneShotEffect(
|
||||
|
|
@ -66,11 +66,11 @@ public class Jilt extends CardImpl {
|
|||
"If {this} was kicked, it deals 2 damage to another target creature");
|
||||
effect.setTargetPointer(new SecondTargetPointer());
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
Target target = new TargetCreaturePermanent(new FilterCreaturePermanent("Target Creature: returned to Hand"));
|
||||
Target target = new TargetCreaturePermanent();
|
||||
target.setTargetTag(1);
|
||||
this.getSpellAbility().addTarget(target);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void adjustTargets(Ability ability, Game game) {
|
||||
if (ability instanceof SpellAbility && KickedCondition.instance.apply(game, ability)) {
|
||||
|
|
|
|||
|
|
@ -59,26 +59,26 @@ import java.util.UUID;
|
|||
public class Jokulmorder extends CardImpl {
|
||||
|
||||
public Jokulmorder(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}{U}");
|
||||
this.subtype.add(SubType.LEVIATHAN);
|
||||
this.power = new MageInt(12);
|
||||
this.toughness = new MageInt(12);
|
||||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
|
||||
// Jokulmorder enters the battlefield tapped.
|
||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||
|
||||
|
||||
// When Jokulmorder enters the battlefield, sacrifice it unless you sacrifice five lands.
|
||||
Effect effect = new SacrificeSourceUnlessPaysEffect(
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(5, 5, new FilterControlledLandPermanent("five lands"), true)));
|
||||
effect.setText("sacrifice it unless you sacrifice five lands");
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false));
|
||||
|
||||
|
||||
// Jokulmorder doesn't untap during your untap step.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
|
||||
|
||||
|
||||
// Whenever you play an Island, you may untap Jokulmorder.
|
||||
this.addAbility(new JokulmorderTriggeredAbility());
|
||||
}
|
||||
|
|
@ -122,6 +122,6 @@ class JokulmorderTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When you play an Island, you may untap {this}";
|
||||
return "Whenever you play an Island, you may untap {this}";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,20 +32,15 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.CostImpl;
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.CumulativeUpkeepAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.players.Player;
|
||||
|
|
@ -60,7 +55,7 @@ import mage.target.common.TargetOpponent;
|
|||
public class KarplusanMinotaur extends CardImpl {
|
||||
|
||||
public KarplusanMinotaur(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
|
||||
this.subtype.add(SubType.MINOTAUR);
|
||||
this.subtype.add(SubType.WARRIOR);
|
||||
this.power = new MageInt(3);
|
||||
|
|
@ -68,7 +63,7 @@ public class KarplusanMinotaur extends CardImpl {
|
|||
|
||||
// Cumulative upkeep-Flip a coin.
|
||||
this.addAbility(new CumulativeUpkeepAbility(new KarplusanMinotaurCost()));
|
||||
|
||||
|
||||
// Whenever you win a coin flip, Karplusan Minotaur deals 1 damage to target creature or player.
|
||||
Ability abilityWin = new KarplusanMinotaurFlipWinTriggeredAbility();
|
||||
abilityWin.addTarget(new TargetCreatureOrPlayer());
|
||||
|
|
@ -80,23 +75,22 @@ public class KarplusanMinotaur extends CardImpl {
|
|||
abilityLose.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(abilityLose);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void adjustTargets(Ability ability, Game game) {
|
||||
if (ability instanceof KarplusanMinotaurFlipLoseTriggeredAbility) {
|
||||
Player controller = game.getPlayer(ability.getControllerId());
|
||||
if(controller != null) {
|
||||
if (controller != null) {
|
||||
UUID opponentId = null;
|
||||
if(game.getOpponents(controller.getId()).size() > 1) {
|
||||
if (game.getOpponents(controller.getId()).size() > 1) {
|
||||
Target target = new TargetOpponent(true);
|
||||
if(controller.chooseTarget(Outcome.Neutral, target, ability, game)) {
|
||||
if (controller.chooseTarget(Outcome.Neutral, target, ability, game)) {
|
||||
opponentId = target.getFirstTarget();
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
opponentId = game.getOpponents(controller.getId()).iterator().next();
|
||||
}
|
||||
if(opponentId != null) {
|
||||
if (opponentId != null) {
|
||||
ability.getTargets().get(0).setTargetController(opponentId);
|
||||
}
|
||||
}
|
||||
|
|
@ -171,12 +165,12 @@ class KarplusanMinotaurFlipLoseTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you lose a coin flip, {this} deals 1 damage to target creature or player of an opponent's choice";
|
||||
return "Whenever you lose a coin flip, {this} deals 1 damage to target creature or player of an opponent's choice.";
|
||||
}
|
||||
}
|
||||
|
||||
class KarplusanMinotaurCost extends CostImpl {
|
||||
|
||||
|
||||
KarplusanMinotaurCost() {
|
||||
this.text = "Flip a coin";
|
||||
}
|
||||
|
|
@ -188,7 +182,7 @@ class KarplusanMinotaurCost extends CostImpl {
|
|||
controller.flipCoin(game);
|
||||
this.paid = true;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -202,7 +196,7 @@ class KarplusanMinotaurCost extends CostImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public KarplusanMinotaurCost copy() {
|
||||
return new KarplusanMinotaurCost();
|
||||
|
|
|
|||
|
|
@ -43,12 +43,12 @@ import mage.target.TargetPlayer;
|
|||
public class LastCaress extends CardImpl {
|
||||
|
||||
public LastCaress(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
|
||||
|
||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(1));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(1).setText("and you gain 1 life"));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("<br><br>Draw a card"));
|
||||
}
|
||||
|
||||
public LastCaress(final LastCaress card) {
|
||||
|
|
|
|||
|
|
@ -52,33 +52,33 @@ import java.util.UUID;
|
|||
* @author fireshoes
|
||||
*/
|
||||
public class MinotaurTactician extends CardImpl {
|
||||
|
||||
|
||||
private static final FilterControlledCreaturePermanent filterWhite = new FilterControlledCreaturePermanent();
|
||||
private static final FilterControlledCreaturePermanent filterBlue = new FilterControlledCreaturePermanent();
|
||||
|
||||
|
||||
static {
|
||||
filterWhite.add(new ColorPredicate(ObjectColor.WHITE));
|
||||
filterBlue.add(new ColorPredicate(ObjectColor.BLUE));
|
||||
}
|
||||
|
||||
|
||||
static final private String ruleWhite = "{this} gets +1/+1 as long as you control another white creature";
|
||||
|
||||
static final private String ruleBlue = "{this} gets +1/+1 as long as you control another white creature";
|
||||
|
||||
static final private String ruleBlue = "{this} gets +1/+1 as long as you control another blue creature";
|
||||
|
||||
public MinotaurTactician(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
this.subtype.add(SubType.MINOTAUR);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
|
||||
// Minotaur Tactician gets +1/+1 as long as you control a white creature.
|
||||
Condition conditionWhite = new PermanentsOnTheBattlefieldCondition(filterWhite);
|
||||
Effect effectWhite = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionWhite, ruleWhite);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effectWhite));
|
||||
|
||||
|
||||
// Minotaur Tactician gets +1/+1 as long as you control a blue creature.
|
||||
Condition conditionBlue = new PermanentsOnTheBattlefieldCondition(filterBlue);
|
||||
Effect effectBlue = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionBlue, ruleBlue);
|
||||
|
|
|
|||
|
|
@ -28,11 +28,9 @@
|
|||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility;
|
||||
import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.MultipliedValue;
|
||||
import mage.abilities.dynamicvalue.common.CountersSourceCount;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
|
|
@ -59,7 +57,9 @@ public class PhyrexianEtchings extends CardImpl {
|
|||
this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new DrawCardSourceControllerEffect(new CountersSourceCount(CounterType.AGE)), false));
|
||||
|
||||
// When Phyrexian Etchings is put into a graveyard from the battlefield, you lose 2 life for each age counter on it.
|
||||
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new LoseLifeSourceControllerEffect(new MultipliedValue(new CountersSourceCount(CounterType.AGE), 2))));
|
||||
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new LoseLifeSourceControllerEffect(new MultipliedValue(new CountersSourceCount(CounterType.AGE), 2))
|
||||
.setText("When {this} is put into a graveyard from the battlefield, you lose 2 life for each age counter on it")
|
||||
));
|
||||
}
|
||||
|
||||
public PhyrexianEtchings(final PhyrexianEtchings card) {
|
||||
|
|
|
|||
|
|
@ -135,6 +135,6 @@ class RimefeatherOwlEffect extends ContinuousEffectImpl {
|
|||
|
||||
@Override
|
||||
public String getText(Mode mode) {
|
||||
return "All nonland permanents are legendary";
|
||||
return "Permanents with ice counters on them are snow.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,10 +37,9 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.target.common.TargetEnchantmentPermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -49,14 +48,14 @@ import java.util.UUID;
|
|||
public class RonomUnicorn extends CardImpl {
|
||||
|
||||
public RonomUnicorn(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
this.subtype.add(SubType.UNICORN);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Sacrifice Ronom Unicorn: Destroy target enchantment.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.ARTIFACT_OR_ENCHANTMENT_PERMANENT));
|
||||
ability.addTarget(new TargetEnchantmentPermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ import mage.target.common.TargetActivatedOrTriggeredAbility;
|
|||
*/
|
||||
public class Rust extends CardImpl {
|
||||
|
||||
private final static FilterStackObject filter = new FilterStackObject("ability from an artifact source");
|
||||
private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source");
|
||||
|
||||
static {
|
||||
filter.add(new ArtifactSourcePredicate());
|
||||
|
|
|
|||
|
|
@ -43,13 +43,13 @@ import mage.target.common.TargetLandPermanent;
|
|||
public class ShimmeringMirage extends CardImpl {
|
||||
|
||||
public ShimmeringMirage(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
|
||||
|
||||
// Target land becomes the basic land type of your choice until end of turn.
|
||||
this.getSpellAbility().addEffect(new BecomesBasicLandTargetEffect(Duration.EndOfTurn));
|
||||
this.getSpellAbility().addTarget(new TargetLandPermanent());
|
||||
// Draw a card.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("<br><br>Draw a card"));
|
||||
}
|
||||
|
||||
public ShimmeringMirage(final ShimmeringMirage card) {
|
||||
|
|
|
|||
|
|
@ -42,13 +42,14 @@ import mage.target.TargetPermanent;
|
|||
public class SurgingAether extends CardImpl {
|
||||
|
||||
public SurgingAether(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
|
||||
|
||||
// Ripple 4
|
||||
this.addAbility(new RippleAbility(4));
|
||||
// Return target permanent to its owner's hand.
|
||||
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetPermanent());
|
||||
|
||||
// Ripple 4
|
||||
this.addAbility(new RippleAbility(4));
|
||||
}
|
||||
|
||||
public SurgingAether(final SurgingAether card) {
|
||||
|
|
|
|||
|
|
@ -42,13 +42,12 @@ import mage.filter.common.FilterEnchantmentPermanent;
|
|||
public class TranquilPath extends CardImpl {
|
||||
|
||||
public TranquilPath(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{G}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{G}");
|
||||
|
||||
// Destroy all enchantments.
|
||||
this.getSpellAbility().addEffect(new DestroyAllEffect(new FilterEnchantmentPermanent("enchantments")));
|
||||
// Draw a card.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("<br><br>Draw a card"));
|
||||
}
|
||||
|
||||
public TranquilPath(final TranquilPath card) {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class UnnaturalSelection extends CardImpl {
|
||||
|
||||
public UnnaturalSelection(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
|
||||
|
||||
// {1}: Choose a creature type other than Wall. Target creature becomes that type until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesChosenCreatureTypeTargetEffect(true), new GenericManaCost(1));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue