mirror of
https://github.com/magefree/mage.git
synced 2025-12-23 03:51:58 -08:00
* This spell costs less to cast - added card hints for some cards;
This commit is contained in:
parent
e8dbd2a3c8
commit
621c144ac2
13 changed files with 77 additions and 42 deletions
|
|
@ -1,25 +1,26 @@
|
||||||
|
|
||||||
package mage.cards.a;
|
package mage.cards.a;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
import mage.constants.SubType;
|
import mage.abilities.hint.ConditionHint;
|
||||||
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.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author JRHerlehy
|
* @author JRHerlehy
|
||||||
*/
|
*/
|
||||||
public final class AcademyJourneymage extends CardImpl {
|
public final class AcademyJourneymage extends CardImpl {
|
||||||
|
|
@ -38,8 +39,10 @@ public final class AcademyJourneymage extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// This spell costs {1} less to cast if you control a Wizard.
|
// This spell costs {1} less to cast if you control a Wizard.
|
||||||
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(1, new PermanentsOnTheBattlefieldCondition(filter)));
|
Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
||||||
|
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(1, condition));
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
ability.addHint(new ConditionHint(condition, "You control a Wizard"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// When Academy Journeymage enters the battlefield, return target creature an opponent controls to its owner's hand.
|
// When Academy Journeymage enters the battlefield, return target creature an opponent controls to its owner's hand.
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import mage.abilities.condition.common.MyTurnCondition;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.EndTurnEffect;
|
import mage.abilities.effects.common.EndTurnEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.common.MyTurnHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -23,7 +24,8 @@ public final class Discontinuity extends CardImpl {
|
||||||
// As long as it's your turn, this spell costs {2}{U}{U} less to cast.
|
// As long as it's your turn, this spell costs {2}{U}{U} less to cast.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(
|
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(
|
||||||
new ManaCostsImpl("{2}{U}{U}"), MyTurnCondition.instance
|
new ManaCostsImpl("{2}{U}{U}"), MyTurnCondition.instance
|
||||||
).setText("as long as it's your turn, this spell costs {2}{U}{U} less to cast")));
|
).setText("as long as it's your turn, this spell costs {2}{U}{U} less to cast"))
|
||||||
|
.addHint(MyTurnHint.instance));
|
||||||
|
|
||||||
// End the turn.
|
// End the turn.
|
||||||
this.getSpellAbility().addEffect(new EndTurnEffect());
|
this.getSpellAbility().addEffect(new EndTurnEffect());
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.Condition;
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
|
@ -19,6 +19,8 @@ import mage.filter.common.FilterNonlandPermanent;
|
||||||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
|
@ -42,7 +44,7 @@ public final class GustOfWind extends CardImpl {
|
||||||
// This spell costs {2} less to cast if you control a creature with flying.
|
// This spell costs {2} less to cast if you control a creature with flying.
|
||||||
this.addAbility(new SimpleStaticAbility(
|
this.addAbility(new SimpleStaticAbility(
|
||||||
Zone.ALL, new SpellCostReductionSourceEffect(2, condition)
|
Zone.ALL, new SpellCostReductionSourceEffect(2, condition)
|
||||||
).setRuleAtTheTop(true));
|
).setRuleAtTheTop(true).addHint(new ConditionHint(condition, "You control a creature with flying")));
|
||||||
|
|
||||||
// Return target nonland permanent you don't control to its owner's hand.
|
// Return target nonland permanent you don't control to its owner's hand.
|
||||||
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
import mage.abilities.effects.common.DestroyAllEffect;
|
import mage.abilities.effects.common.DestroyAllEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ValueHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -13,8 +13,9 @@ import mage.constants.ComparisonType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterNonlandPermanent;
|
import mage.filter.common.FilterNonlandPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public final class HourOfRevelation extends CardImpl {
|
public final class HourOfRevelation extends CardImpl {
|
||||||
|
|
@ -25,8 +26,10 @@ public final class HourOfRevelation extends CardImpl {
|
||||||
// Hour of Revelation costs {3} less to cast if there are ten or more nonland permanents on the battlefield.
|
// Hour of Revelation costs {3} less to cast if there are ten or more nonland permanents on the battlefield.
|
||||||
SimpleStaticAbility ability = new SimpleStaticAbility(Zone.ALL,
|
SimpleStaticAbility ability = new SimpleStaticAbility(Zone.ALL,
|
||||||
new SpellCostReductionSourceEffect(3, new PermanentsOnTheBattlefieldCondition(
|
new SpellCostReductionSourceEffect(3, new PermanentsOnTheBattlefieldCondition(
|
||||||
new FilterNonlandPermanent("there are ten or more nonland permanents on the battlefield"), ComparisonType.MORE_THAN, 9, false)));
|
new FilterNonlandPermanent("there are ten or more nonland permanents on the battlefield"),
|
||||||
|
ComparisonType.MORE_THAN, 9, false)));
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
ability.addHint(new ValueHint("Nonland permanents on the battlefield", new PermanentsOnBattlefieldCount(new FilterNonlandPermanent())));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Destroy all nonland permanents.
|
// Destroy all nonland permanents.
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.CardsInControllerGraveCondition;
|
import mage.abilities.condition.common.CardsInControllerGraveCondition;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -16,6 +17,8 @@ import mage.constants.Zone;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
|
@ -29,10 +32,11 @@ public final class IgneousElemental extends CardImpl {
|
||||||
this.toughness = new MageInt(3);
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
// This spell costs {2} less to cast if there is a land card in your graveyard.
|
// This spell costs {2} less to cast if there is a land card in your graveyard.
|
||||||
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(
|
Condition condition = new CardsInControllerGraveCondition(1, StaticFilters.FILTER_CARD_LAND);
|
||||||
2, new CardsInControllerGraveCondition(1, StaticFilters.FILTER_CARD_LAND)
|
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(2, condition)
|
||||||
).setText("This spell costs {2} less to cast if there is a land card in your graveyard."));
|
.setText("This spell costs {2} less to cast if there is a land card in your graveyard."));
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
ability.addHint(new ConditionHint(condition, "There is a land card in your graveyard"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// When Igneous Elemental enters the battlefield, you may have it deal 2 damage to target creature.
|
// When Igneous Elemental enters the battlefield, you may have it deal 2 damage to target creature.
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.Condition;
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -14,6 +14,8 @@ import mage.game.Game;
|
||||||
import mage.game.Graveyard;
|
import mage.game.Graveyard;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
|
@ -25,7 +27,7 @@ public final class IntoTheStory extends CardImpl {
|
||||||
// This spell costs {3} less to cast if an opponent has seven or more cards in their graveyard.
|
// This spell costs {3} less to cast if an opponent has seven or more cards in their graveyard.
|
||||||
this.addAbility(new SimpleStaticAbility(
|
this.addAbility(new SimpleStaticAbility(
|
||||||
Zone.ALL, new SpellCostReductionSourceEffect(3, IntoTheStoryCondition.instance)
|
Zone.ALL, new SpellCostReductionSourceEffect(3, IntoTheStoryCondition.instance)
|
||||||
).setRuleAtTheTop(true));
|
).setRuleAtTheTop(true).addHint(new ConditionHint(IntoTheStoryCondition.instance, "Opponent has seven or more cards in their graveyard")));
|
||||||
|
|
||||||
// Draw four cards.
|
// Draw four cards.
|
||||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(4));
|
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(4));
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
package mage.cards.l;
|
package mage.cards.l;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.common.CounterUnlessPaysEffect;
|
import mage.abilities.effects.common.CounterUnlessPaysEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -15,8 +16,9 @@ import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.target.TargetSpell;
|
import mage.target.TargetSpell;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class LookoutsDispersal extends CardImpl {
|
public final class LookoutsDispersal extends CardImpl {
|
||||||
|
|
@ -31,8 +33,10 @@ public final class LookoutsDispersal extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}");
|
||||||
|
|
||||||
// Lookout's Dispersal costs {1} less to cast if you control a Pirate.
|
// Lookout's Dispersal costs {1} less to cast if you control a Pirate.
|
||||||
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(1, new PermanentsOnTheBattlefieldCondition(filter)));
|
Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
||||||
|
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(1, condition));
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
ability.addHint(new ConditionHint(condition, "You control a Pirate"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Counter target spell unless its controller pays {4}.
|
// Counter target spell unless its controller pays {4}.
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,9 @@ public final class NotOfThisWorld extends CardImpl {
|
||||||
this.getSpellAbility().addTarget(new TargetStackObject(filter));
|
this.getSpellAbility().addTarget(new TargetStackObject(filter));
|
||||||
|
|
||||||
// Not of This World costs {7} less to cast if it targets a spell or ability that targets a creature you control with power 7 or greater.
|
// Not of This World costs {7} less to cast if it targets a spell or ability that targets a creature you control with power 7 or greater.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(7, NotOfThisWorldCondition.instance).setCanWorksOnStackOnly(true)));
|
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||||
|
new SpellCostReductionSourceEffect(7, NotOfThisWorldCondition.instance).setCanWorksOnStackOnly(true))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private NotOfThisWorld(final NotOfThisWorld card) {
|
private NotOfThisWorld(final NotOfThisWorld card) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.o;
|
package mage.cards.o;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||||
|
|
@ -9,6 +8,7 @@ import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.OpponentControlsPermanentCondition;
|
import mage.abilities.condition.common.OpponentControlsPermanentCondition;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.abilities.keyword.DeathtouchAbility;
|
import mage.abilities.keyword.DeathtouchAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
|
@ -19,6 +19,8 @@ import mage.constants.Zone;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
|
@ -44,7 +46,7 @@ public final class OakhameAdversary extends CardImpl {
|
||||||
// This spell costs {2} less to cast if your opponent controls a green permanent.
|
// This spell costs {2} less to cast if your opponent controls a green permanent.
|
||||||
this.addAbility(new SimpleStaticAbility(
|
this.addAbility(new SimpleStaticAbility(
|
||||||
Zone.ALL, new SpellCostReductionSourceEffect(2, condition)
|
Zone.ALL, new SpellCostReductionSourceEffect(2, condition)
|
||||||
).setRuleAtTheTop(true));
|
).setRuleAtTheTop(true).addHint(new ConditionHint(condition, "Your opponent controls a green permanent")));
|
||||||
|
|
||||||
// Deathtouch
|
// Deathtouch
|
||||||
this.addAbility(DeathtouchAbility.getInstance());
|
this.addAbility(DeathtouchAbility.getInstance());
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,13 @@ package mage.cards.t;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.UntapTargetEffect;
|
import mage.abilities.effects.common.UntapTargetEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
|
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.abilities.keyword.HasteAbility;
|
import mage.abilities.keyword.HasteAbility;
|
||||||
import mage.abilities.keyword.MenaceAbility;
|
import mage.abilities.keyword.MenaceAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
|
@ -37,13 +39,10 @@ public final class TentativeConnection extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}");
|
||||||
|
|
||||||
// This spell costs {3} less to cast if you control a creature with menace.
|
// This spell costs {3} less to cast if you control a creature with menace.
|
||||||
Ability ability = new SimpleStaticAbility(
|
Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
||||||
Zone.ALL,
|
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(3, condition));
|
||||||
new SpellCostReductionSourceEffect(
|
|
||||||
3, new PermanentsOnTheBattlefieldCondition(filter)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
ability.addHint(new ConditionHint(condition, "You control a creature with menace"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn.
|
// Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn.
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
package mage.cards.w;
|
package mage.cards.w;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
|
@ -13,6 +14,8 @@ import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
|
@ -29,10 +32,11 @@ public final class WingedWords extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}");
|
||||||
|
|
||||||
// This spell costs {1} less to cast if you control a creature with flying.
|
// This spell costs {1} less to cast if you control a creature with flying.
|
||||||
this.addAbility(new SimpleStaticAbility(
|
Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
||||||
Zone.ALL, new SpellCostReductionSourceEffect(
|
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||||
1, new PermanentsOnTheBattlefieldCondition(filter)
|
new SpellCostReductionSourceEffect(1, condition))
|
||||||
)).setRuleAtTheTop(true));
|
.setRuleAtTheTop(true)
|
||||||
|
.addHint(new ConditionHint(condition, "You control a creature with flying")));
|
||||||
|
|
||||||
// Draw two cards.
|
// Draw two cards.
|
||||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2));
|
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2));
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
package mage.cards.w;
|
package mage.cards.w;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -14,8 +15,9 @@ import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.target.common.TargetAnyTarget;
|
import mage.target.common.TargetAnyTarget;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Will
|
* @author Will
|
||||||
*/
|
*/
|
||||||
public final class WizardsLightning extends CardImpl {
|
public final class WizardsLightning extends CardImpl {
|
||||||
|
|
@ -30,8 +32,10 @@ public final class WizardsLightning extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}");
|
||||||
|
|
||||||
// Wizard's Lightning costs {2} less to cast if you control a Wizard.
|
// Wizard's Lightning costs {2} less to cast if you control a Wizard.
|
||||||
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(2, new PermanentsOnTheBattlefieldCondition(filter)));
|
Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
||||||
|
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(2, condition));
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
ability.addHint(new ConditionHint(condition, "You control a Wizard"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Wizard's Lightning deals 3 damage to any target.
|
// Wizard's Lightning deals 3 damage to any target.
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
package mage.cards.w;
|
package mage.cards.w;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.CounterTargetEffect;
|
import mage.abilities.effects.common.CounterTargetEffect;
|
||||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -14,8 +15,9 @@ import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.target.TargetSpell;
|
import mage.target.TargetSpell;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Will
|
* @author Will
|
||||||
*/
|
*/
|
||||||
public final class WizardsRetort extends CardImpl {
|
public final class WizardsRetort extends CardImpl {
|
||||||
|
|
@ -30,8 +32,10 @@ public final class WizardsRetort extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}{U}");
|
||||||
|
|
||||||
// Wizard's Retort costs {1} less to cast if you control a Wizard.
|
// Wizard's Retort costs {1} less to cast if you control a Wizard.
|
||||||
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(1, new PermanentsOnTheBattlefieldCondition(filter)));
|
Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
||||||
|
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(1, condition));
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
ability.addHint(new ConditionHint(condition, "You control a Wizard"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Counter target spell.
|
// Counter target spell.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue