Added creatures you control hints to cards

This commit is contained in:
Oleg Agafonov 2019-02-07 12:02:46 +04:00
parent ae410d4d8d
commit aedc3dde2c
28 changed files with 129 additions and 126 deletions

View file

@ -1,17 +1,14 @@
package mage.cards.a; package mage.cards.a;
import java.util.UUID; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.AftermathAbility; import mage.abilities.keyword.AftermathAbility;
import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.TrampleAbility;
import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.cards.SplitCard; import mage.cards.SplitCard;
import mage.constants.CardType; import mage.constants.CardType;
@ -23,8 +20,9 @@ import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class AppealAuthority extends SplitCard { public final class AppealAuthority extends SplitCard {
@ -36,10 +34,10 @@ public final class AppealAuthority extends SplitCard {
// Until end of turn, target creature gains trample and gets +X/+X, where X is the number of creatures you control. // Until end of turn, target creature gains trample and gets +X/+X, where X is the number of creatures you control.
getLeftHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn) getLeftHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)
.setText("Until end of turn, target creature gains trample")); .setText("Until end of turn, target creature gains trample"));
DynamicValue controlledCreatures = new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("the number of creatures you control")); getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, true)
getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(controlledCreatures, controlledCreatures, Duration.EndOfTurn, true)
.setText("and gets +X/+X, where X is the number of creatures you control")); .setText("and gets +X/+X, where X is the number of creatures you control"));
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
getLeftHalfCard().getSpellAbility().addHint(CreaturesYouControlHint.instance);
// Authority // Authority
// Aftermath // Aftermath

View file

@ -4,6 +4,7 @@ import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
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;
@ -29,7 +30,8 @@ public final class BattleSquadron extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Battle Squadron's power and toughness are each equal to the number of creatures you control. // Battle Squadron's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))
.addHint(CreaturesYouControlHint.instance));
} }
public BattleSquadron(final BattleSquadron card) { public BattleSquadron(final BattleSquadron card) {

View file

@ -1,12 +1,11 @@
package mage.cards.b; package mage.cards.b;
import java.util.UUID;
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.effects.common.continuous.GainControlTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -18,14 +17,15 @@ import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import java.util.UUID;
/** /**
*
* @author North * @author North
*/ */
public final class BeguilerOfWills extends CardImpl { public final class BeguilerOfWills extends CardImpl {
public BeguilerOfWills(UUID ownerId, CardSetInfo setInfo) { public BeguilerOfWills(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}");
this.subtype.add(SubType.HUMAN, SubType.WIZARD); this.subtype.add(SubType.HUMAN, SubType.WIZARD);
this.power = new MageInt(1); this.power = new MageInt(1);
@ -36,6 +36,7 @@ public final class BeguilerOfWills extends CardImpl {
new GainControlTargetEffect(Duration.Custom), new GainControlTargetEffect(Duration.Custom),
new TapSourceCost()); new TapSourceCost());
ability.addTarget(new BeguilerOfWillsTarget()); ability.addTarget(new BeguilerOfWillsTarget());
ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,9 +1,9 @@
package mage.cards.c; package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
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.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
import java.util.UUID;
/** /**
*
* @author TheElk801 * @author TheElk801
*/ */
public final class Camaraderie extends CardImpl { public final class Camaraderie extends CardImpl {
@ -24,6 +25,7 @@ public final class Camaraderie extends CardImpl {
// You gain X life and draw X cards, where X is the number of creatures you control. Creatures you control get +1/+1 until end of turn. // You gain X life and draw X cards, where X is the number of creatures you control. Creatures you control get +1/+1 until end of turn.
this.getSpellAbility().addEffect(new CamaraderieEffect()); this.getSpellAbility().addEffect(new CamaraderieEffect());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }
public Camaraderie(final Camaraderie card) { public Camaraderie(final Camaraderie card) {

View file

@ -1,7 +1,5 @@
package mage.cards.c; package mage.cards.c;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.DelayedTriggeredAbility; import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.ChancellorAbility; import mage.abilities.common.ChancellorAbility;
@ -9,6 +7,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -21,8 +20,9 @@ import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent.EventType;
import mage.game.permanent.token.GoblinToken; import mage.game.permanent.token.GoblinToken;
import java.util.UUID;
/** /**
*
* @author BetaSteward * @author BetaSteward
*/ */
public final class ChancellorOfTheForge extends CardImpl { public final class ChancellorOfTheForge extends CardImpl {
@ -46,7 +46,8 @@ public final class ChancellorOfTheForge extends CardImpl {
// When Chancellor of the Forge enters the battlefield, create X 1/1 red Goblin creature tokens with haste, where X is the number of creatures you control. // When Chancellor of the Forge enters the battlefield, create X 1/1 red Goblin creature tokens with haste, where X is the number of creatures you control.
DynamicValue value = new PermanentsOnBattlefieldCount(filter); DynamicValue value = new PermanentsOnBattlefieldCount(filter);
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken(true), value), false)); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken(true), value), false)
.addHint(CreaturesYouControlHint.instance));
} }
public ChancellorOfTheForge(final ChancellorOfTheForge card) { public ChancellorOfTheForge(final ChancellorOfTheForge card) {

View file

@ -1,27 +1,26 @@
package mage.cards.c; package mage.cards.c;
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.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.TrampleAbility;
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.Duration; import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import java.util.UUID;
/** /**
*
* @author North * @author North
*/ */
public final class CraterhoofBehemoth extends CardImpl { public final class CraterhoofBehemoth extends CardImpl {
@ -33,7 +32,7 @@ public final class CraterhoofBehemoth extends CardImpl {
} }
public CraterhoofBehemoth(UUID ownerId, CardSetInfo setInfo) { public CraterhoofBehemoth(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}{G}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}{G}");
this.subtype.add(SubType.BEAST); this.subtype.add(SubType.BEAST);
this.power = new MageInt(5); this.power = new MageInt(5);
@ -43,8 +42,8 @@ public final class CraterhoofBehemoth extends CardImpl {
// When Craterhoof Behemoth enters the battlefield, creatures you control gain trample and get +X/+X until end of turn, where X is the number of creatures you control. // When Craterhoof Behemoth enters the battlefield, creatures you control gain trample and get +X/+X until end of turn, where X is the number of creatures you control.
Ability ability = new EntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter)); Ability ability = new EntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter));
PermanentsOnBattlefieldCount controlledCreatures = new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("the number of creatures you control"), null); ability.addEffect(new BoostControlledEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, filter, false, true));
ability.addEffect(new BoostControlledEffect(controlledCreatures, controlledCreatures, Duration.EndOfTurn, filter, false, true)); ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -4,6 +4,7 @@ import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -27,7 +28,8 @@ public final class CrusaderOfOdric extends CardImpl {
this.toughness = new MageInt(0); this.toughness = new MageInt(0);
// Crusader of Odric's power and toughness are each equal to the number of creatures you control. // Crusader of Odric's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))
.addHint(CreaturesYouControlHint.instance));
} }
public CrusaderOfOdric(final CrusaderOfOdric card) { public CrusaderOfOdric(final CrusaderOfOdric card) {

View file

@ -5,6 +5,7 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -33,6 +34,7 @@ public final class ElderOfLaurels extends CardImpl {
new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, true), new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, true),
new ManaCostsImpl("{3}{G}")); new ManaCostsImpl("{3}{G}"));
ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetCreaturePermanent());
ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -8,6 +8,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -34,6 +35,7 @@ public final class FoundryChampion extends CardImpl {
//When Foundry Champion enters the battlefield, it deals damage to any target equal to the number of creatures you control. //When Foundry Champion enters the battlefield, it deals damage to any target equal to the number of creatures you control.
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(CreaturesYouControlCount.instance, "it")); Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(CreaturesYouControlCount.instance, "it"));
ability.addTarget(new TargetAnyTarget()); ability.addTarget(new TargetAnyTarget());
ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);
//{R}: Foundry Champion gets +1/+0 until end of turn. //{R}: Foundry Champion gets +1/+0 until end of turn.

View file

@ -6,6 +6,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -33,7 +34,8 @@ public final class GeistHonoredMonk extends CardImpl {
this.addAbility(VigilanceAbility.getInstance()); this.addAbility(VigilanceAbility.getInstance());
// Geist-Honored Monk's power and toughness are each equal to the number of creatures you control. // Geist-Honored Monk's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))
.addHint(CreaturesYouControlHint.instance));
// When Geist-Honored Monk enters the battlefield, create two 1/1 white Spirit creature tokens with flying. // When Geist-Honored Monk enters the battlefield, create two 1/1 white Spirit creature tokens with flying.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SpiritWhiteToken("ISD"), 2))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SpiritWhiteToken("ISD"), 2)));

View file

@ -4,6 +4,7 @@ import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -27,6 +28,7 @@ public final class HarshSustenance extends CardImpl {
effect = new GainLifeEffect(CreaturesYouControlCount.instance); effect = new GainLifeEffect(CreaturesYouControlCount.instance);
effect.setText("and you gain X life, where X is the number of creatures you control"); effect.setText("and you gain X life, where X is the number of creatures you control");
getSpellAbility().addEffect(effect); getSpellAbility().addEffect(effect);
getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }
public HarshSustenance(final HarshSustenance card) { public HarshSustenance(final HarshSustenance card) {

View file

@ -1,13 +1,12 @@
package mage.cards.h; package mage.cards.h;
import java.util.UUID;
import mage.abilities.LoyaltyAbility; import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.GetEmblemEffect; import mage.abilities.effects.common.GetEmblemEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -19,8 +18,9 @@ import mage.filter.StaticFilters;
import mage.game.command.emblems.HuatliRadiantChampionEmblem; import mage.game.command.emblems.HuatliRadiantChampionEmblem;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class HuatliRadiantChampion extends CardImpl { public final class HuatliRadiantChampion extends CardImpl {
@ -41,6 +41,7 @@ public final class HuatliRadiantChampion extends CardImpl {
LoyaltyAbility ability2 = new LoyaltyAbility(new BoostTargetEffect(amount, amount, Duration.EndOfTurn, true) LoyaltyAbility ability2 = new LoyaltyAbility(new BoostTargetEffect(amount, amount, Duration.EndOfTurn, true)
.setText("Target creature gets +X/+X until end of turn, where X is the number of creatures you control"), -1); .setText("Target creature gets +X/+X until end of turn, where X is the number of creatures you control"), -1);
ability2.addTarget(new TargetCreaturePermanent()); ability2.addTarget(new TargetCreaturePermanent());
ability2.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability2); this.addAbility(ability2);
// -8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may draw a card." // -8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may draw a card."

View file

@ -8,6 +8,7 @@ import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.SacrificeTargetEffect; import mage.abilities.effects.common.SacrificeTargetEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -37,6 +38,7 @@ public final class JunkyoBell extends CardImpl {
true); true);
ability.addTarget(new TargetControlledCreaturePermanent()); ability.addTarget(new TargetControlledCreaturePermanent());
ability.addEffect(new JunkyoBellSacrificeEffect()); ability.addEffect(new JunkyoBellSacrificeEffect());
ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -3,6 +3,7 @@ package mage.cards.k;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
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,6 +24,7 @@ public final class KayasWrath extends CardImpl {
// Destroy all creatures. You gain life equal to the number of creatures you controlled that were destroyed this way. // Destroy all creatures. You gain life equal to the number of creatures you controlled that were destroyed this way.
this.getSpellAbility().addEffect(new KayasWrathEffect()); this.getSpellAbility().addEffect(new KayasWrathEffect());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }
private KayasWrath(final KayasWrath card) { private KayasWrath(final KayasWrath card) {

View file

@ -1,30 +1,30 @@
package mage.cards.k; package mage.cards.k;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.SetPowerSourceEffect; import mage.abilities.effects.common.continuous.SetPowerSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.DashAbility; import mage.abilities.keyword.DashAbility;
import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.TrampleAbility;
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.Duration; import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class KolaghanForerunners extends CardImpl { public final class KolaghanForerunners extends CardImpl {
public KolaghanForerunners(UUID ownerId, CardSetInfo setInfo) { public KolaghanForerunners(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.HUMAN); this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.BERSERKER); this.subtype.add(SubType.BERSERKER);
this.power = new MageInt(0); this.power = new MageInt(0);
@ -35,7 +35,7 @@ public final class KolaghanForerunners extends CardImpl {
// Kolaghan Forerunners' power is equal to the number of creatures you control. // Kolaghan Forerunners' power is equal to the number of creatures you control.
Effect effect = new SetPowerSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creatures you control")), Duration.EndOfGame); Effect effect = new SetPowerSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creatures you control")), Duration.EndOfGame);
this.addAbility(new SimpleStaticAbility(Zone.ALL, effect)); this.addAbility(new SimpleStaticAbility(Zone.ALL, effect).addHint(CreaturesYouControlHint.instance));
// Dash {2}{R} <i.(You may cast this spell for its dash cost. If you do it gains haste and it's returned to its owner's hand at the beginning of the next end step.)</i> // Dash {2}{R} <i.(You may cast this spell for its dash cost. If you do it gains haste and it's returned to its owner's hand at the beginning of the next end step.)</i>
this.addAbility(new DashAbility(this, "{2}{R}")); this.addAbility(new DashAbility(this, "{2}{R}"));

View file

@ -2,6 +2,7 @@ package mage.cards.m;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -20,6 +21,7 @@ public final class MassiveRaid extends CardImpl {
// Massive Raid deals damage to any target equal to the number of creatures you control. // Massive Raid deals damage to any target equal to the number of creatures you control.
this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance)); this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance));
this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addTarget(new TargetAnyTarget());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }
public MassiveRaid(final MassiveRaid card) { public MassiveRaid(final MassiveRaid card) {

View file

@ -1,9 +1,8 @@
package mage.cards.m; package mage.cards.m;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -12,8 +11,9 @@ import mage.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
import java.util.UUID;
/** /**
*
* @author Derpthemeus * @author Derpthemeus
*/ */
public final class MinionsMurmurs extends CardImpl { public final class MinionsMurmurs extends CardImpl {
@ -23,6 +23,7 @@ public final class MinionsMurmurs extends CardImpl {
// You draw X cards and you lose X life, where X is the number of creatures you control. // You draw X cards and you lose X life, where X is the number of creatures you control.
this.getSpellAbility().addEffect(new MinionsMurmursEffect()); this.getSpellAbility().addEffect(new MinionsMurmursEffect());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }
public MinionsMurmurs(final MinionsMurmurs card) { public MinionsMurmurs(final MinionsMurmurs card) {

View file

@ -3,6 +3,7 @@ package mage.cards.m;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
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,6 +24,7 @@ public final class MobJustice extends CardImpl {
effect.setText("{this} deals damage to target player or planeswalker equal to the number of creatures you control"); effect.setText("{this} deals damage to target player or planeswalker equal to the number of creatures you control");
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }
public MobJustice(final MobJustice card) { public MobJustice(final MobJustice card) {

View file

@ -1,30 +1,31 @@
package mage.cards.o; package mage.cards.o;
import java.util.UUID;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
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.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledCreaturePermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class Outnumber extends CardImpl { public final class Outnumber extends CardImpl {
public Outnumber(UUID ownerId, CardSetInfo setInfo) { public Outnumber(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
// Outnumber deals damage to target creature equal to the number of creatures you control. // Outnumber deals damage to target creature equal to the number of creatures you control.
Effect effect = new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("the number of creatures you control"))); Effect effect = new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("the number of creatures you control")));
effect.setText("{this} deals damage to target creature equal to the number of creatures you control"); effect.setText("{this} deals damage to target creature equal to the number of creatures you control");
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }

View file

@ -1,7 +1,5 @@
package mage.cards.o; package mage.cards.o;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
@ -9,21 +7,19 @@ 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.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.*;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.token.OviyaPashiriSageLifecrafterToken; import mage.game.permanent.token.OviyaPashiriSageLifecrafterToken;
import mage.game.permanent.token.ServoToken; import mage.game.permanent.token.ServoToken;
import mage.players.Player; import mage.players.Player;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class OviyaPashiriSageLifecrafter extends CardImpl { public final class OviyaPashiriSageLifecrafter extends CardImpl {
@ -43,6 +39,7 @@ public final class OviyaPashiriSageLifecrafter extends CardImpl {
// {4}{G}, {T}: Create an X/X colorless Construct artifact creature token, where X is the number of creatures you control. // {4}{G}, {T}: Create an X/X colorless Construct artifact creature token, where X is the number of creatures you control.
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new OviyaPashiriSageLifecrafterEffect(), new ManaCostsImpl("{4}{G}")); ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new OviyaPashiriSageLifecrafterEffect(), new ManaCostsImpl("{4}{G}"));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,31 +1,28 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.ConvokeAbility;
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;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class SeraphOfTheMasses extends CardImpl { public final class SeraphOfTheMasses extends CardImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control");
public SeraphOfTheMasses(UUID ownerId, CardSetInfo setInfo) { public SeraphOfTheMasses(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{W}{W}");
this.subtype.add(SubType.ANGEL); this.subtype.add(SubType.ANGEL);
this.power = new MageInt(0); this.power = new MageInt(0);
@ -36,9 +33,8 @@ public final class SeraphOfTheMasses extends CardImpl {
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Seraph of the Masses's power and toughness are each equal to the number of creatures you control. // Seraph of the Masses's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))
.addHint(CreaturesYouControlHint.instance));
} }
public SeraphOfTheMasses(final SeraphOfTheMasses card) { public SeraphOfTheMasses(final SeraphOfTheMasses card) {

View file

@ -1,39 +1,35 @@
package mage.cards.s; package mage.cards.s;
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.costs.mana.GenericManaCost; import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.PreventionEffectImpl; import mage.abilities.effects.PreventionEffectImpl;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.EquipAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.*;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import java.util.UUID;
/** /**
*
* @author emerald000 * @author emerald000
*/ */
public final class ShieldOfTheAvatar extends CardImpl { public final class ShieldOfTheAvatar extends CardImpl {
public ShieldOfTheAvatar(UUID ownerId, CardSetInfo setInfo) { public ShieldOfTheAvatar(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
this.subtype.add(SubType.EQUIPMENT); this.subtype.add(SubType.EQUIPMENT);
// If a source would deal damage to equipped creature, prevent X of that damage, where X is the number of creatures you control. // If a source would deal damage to equipped creature, prevent X of that damage, where X is the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ShieldOfTheAvatarPreventionEffect())); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ShieldOfTheAvatarPreventionEffect())
.addHint(CreaturesYouControlHint.instance));
// Equip {2} // Equip {2}
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2)));
} }
@ -49,9 +45,7 @@ public final class ShieldOfTheAvatar extends CardImpl {
} }
class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl { class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control");
ShieldOfTheAvatarPreventionEffect() { ShieldOfTheAvatarPreventionEffect() {
super(Duration.WhileOnBattlefield); super(Duration.WhileOnBattlefield);
this.staticText = "If a source would deal damage to equipped creature, prevent X of that damage, where X is the number of creatures you control."; this.staticText = "If a source would deal damage to equipped creature, prevent X of that damage, where X is the number of creatures you control.";
@ -76,14 +70,13 @@ class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl {
boolean result = false; boolean result = false;
Permanent equipment = game.getPermanent(source.getSourceId()); Permanent equipment = game.getPermanent(source.getSourceId());
if (equipment != null && equipment.getAttachedTo() != null) { if (equipment != null && equipment.getAttachedTo() != null) {
int numberOfCreaturesControlled = new PermanentsOnBattlefieldCount(filter).calculate(game, source, this); int numberOfCreaturesControlled = CreaturesYouControlCount.instance.calculate(game, source, this);
int toPrevent = Math.min(numberOfCreaturesControlled, event.getAmount()); int toPrevent = Math.min(numberOfCreaturesControlled, event.getAmount());
GameEvent preventEvent = new GameEvent(GameEvent.EventType.PREVENT_DAMAGE, equipment.getAttachedTo(), source.getSourceId(), source.getControllerId(), toPrevent, false); GameEvent preventEvent = new GameEvent(GameEvent.EventType.PREVENT_DAMAGE, equipment.getAttachedTo(), source.getSourceId(), source.getControllerId(), toPrevent, false);
if (!game.replaceEvent(preventEvent)) { if (!game.replaceEvent(preventEvent)) {
if (event.getAmount() >= toPrevent) { if (event.getAmount() >= toPrevent) {
event.setAmount(event.getAmount() - toPrevent); event.setAmount(event.getAmount() - toPrevent);
} } else {
else {
event.setAmount(0); event.setAmount(0);
result = true; result = true;
} }
@ -101,10 +94,8 @@ class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl {
public boolean applies(GameEvent event, Ability source, Game game) { public boolean applies(GameEvent event, Ability source, Game game) {
if (super.applies(event, source, game)) { if (super.applies(event, source, game)) {
Permanent equipment = game.getPermanent(source.getSourceId()); Permanent equipment = game.getPermanent(source.getSourceId());
if (equipment != null && equipment.getAttachedTo() != null return equipment != null && equipment.getAttachedTo() != null
&& event.getTargetId().equals(equipment.getAttachedTo())) { && event.getTargetId().equals(equipment.getAttachedTo());
return true;
}
} }
return false; return false;
} }

View file

@ -1,29 +1,28 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.SetPowerSourceEffect; import mage.abilities.effects.common.continuous.SetPowerSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FirstStrikeAbility;
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.Duration; import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author Loki * @author Loki
*/ */
public final class SoulsurgeElemental extends CardImpl { public final class SoulsurgeElemental extends CardImpl {
public SoulsurgeElemental(UUID ownerId, CardSetInfo setInfo) { public SoulsurgeElemental(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.ELEMENTAL); this.subtype.add(SubType.ELEMENTAL);
this.power = new MageInt(0); this.power = new MageInt(0);
@ -33,8 +32,9 @@ public final class SoulsurgeElemental extends CardImpl {
this.addAbility(FirstStrikeAbility.getInstance()); this.addAbility(FirstStrikeAbility.getInstance());
// Soulsurge Elemental's power is equal to the number of creatures you control. // Soulsurge Elemental's power is equal to the number of creatures you control.
Effect effect = new SetPowerSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creatures you control")), Duration.EndOfGame); Effect effect = new SetPowerSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame);
this.addAbility(new SimpleStaticAbility(Zone.ALL, effect)); this.addAbility(new SimpleStaticAbility(Zone.ALL, effect)
.addHint(CreaturesYouControlHint.instance));
} }
public SoulsurgeElemental(final SoulsurgeElemental card) { public SoulsurgeElemental(final SoulsurgeElemental card) {

View file

@ -11,6 +11,7 @@ import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.TrampleAbility;
import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.VigilanceAbility;
@ -55,7 +56,8 @@ public final class VeteranWarleader extends CardImpl {
// Veteran Warleader's power and toughness are each equal to the number of creatures you control. // Veteran Warleader's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect( this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(
CreaturesYouControlCount.instance, Duration.EndOfGame))); CreaturesYouControlCount.instance, Duration.EndOfGame))
.addHint(CreaturesYouControlHint.instance));
// Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn. // Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,

View file

@ -1,4 +1,3 @@
package mage.cards.v; package mage.cards.v;
import mage.MageInt; import mage.MageInt;
@ -7,6 +6,7 @@ import mage.abilities.common.SpellCastOpponentTriggeredAbility;
import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.meta.OrTriggeredAbility; import mage.abilities.meta.OrTriggeredAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -19,7 +19,6 @@ import mage.game.permanent.token.VoiceOfResurgenceToken;
import java.util.UUID; import java.util.UUID;
/** /**
*
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public final class VoiceOfResurgence extends CardImpl { public final class VoiceOfResurgence extends CardImpl {
@ -39,6 +38,7 @@ public final class VoiceOfResurgence extends CardImpl {
"Whenever an opponent casts a spell during your turn, "), "Whenever an opponent casts a spell during your turn, "),
new DiesTriggeredAbility(null, false)); new DiesTriggeredAbility(null, false));
ability.setLeavesTheBattlefieldTrigger(true); ability.setLeavesTheBattlefieldTrigger(true);
ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -6,6 +6,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.PopulateEffect; import mage.abilities.effects.common.PopulateEffect;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -28,7 +29,8 @@ public final class WayfaringTemple extends CardImpl {
this.toughness = new MageInt(0); this.toughness = new MageInt(0);
// Wayfaring Temple's power and toughness are each equal to the number of creatures you control. // Wayfaring Temple's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))
.addHint(CreaturesYouControlHint.instance));
// Whenever Wayfaring Temple deals combat damage to a player, populate. (Create a token that's a copy of a creature token you control.) // Whenever Wayfaring Temple deals combat damage to a player, populate. (Create a token that's a copy of a creature token you control.)
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new PopulateEffect(), false)); this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new PopulateEffect(), false));

View file

@ -1,31 +1,24 @@
package mage.cards.w; package mage.cards.w;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.*;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.game.permanent.token.HumanClericToken; import mage.game.permanent.token.HumanClericToken;
import java.util.UUID;
/** /**
*
* @author fireshoes * @author fireshoes
*/ */
public final class WestvaleCultLeader extends CardImpl { public final class WestvaleCultLeader extends CardImpl {
final private static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control");
public WestvaleCultLeader(UUID ownerId, CardSetInfo setInfo) { public WestvaleCultLeader(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.HUMAN);
@ -38,7 +31,8 @@ public final class WestvaleCultLeader extends CardImpl {
this.nightCard = true; this.nightCard = true;
// Westvale Cult Leader's power and toughness are each equal to the number of creatures you control. // Westvale Cult Leader's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.WhileOnBattlefield))
.addHint(CreaturesYouControlHint.instance));
// At the beginning of your end step, create a 1/1 white and black Human Cleric creature token. // At the beginning of your end step, create a 1/1 white and black Human Cleric creature token.
this.addAbility(new BeginningOfEndStepTriggeredAbility(new CreateTokenEffect(new HumanClericToken()), TargetController.YOU, false)); this.addAbility(new BeginningOfEndStepTriggeredAbility(new CreateTokenEffect(new HumanClericToken()), TargetController.YOU, false));

View file

@ -1,26 +1,19 @@
package mage.cards.x; package mage.cards.x;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.UUID;
import mage.Mana; import mage.Mana;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility; import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.cards.Cards; import mage.cards.Cards;
import mage.cards.CardsImpl; import mage.cards.CardsImpl;
import mage.choices.Choice; import mage.choices.Choice;
import mage.choices.ChoiceImpl; import mage.choices.ChoiceImpl;
import mage.constants.CardType; import mage.constants.*;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.FilterCard; import mage.filter.FilterCard;
import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.Predicates; import mage.filter.predicate.Predicates;
@ -30,8 +23,11 @@ import mage.game.permanent.token.XenagosSatyrToken;
import mage.players.Player; import mage.players.Player;
import mage.target.TargetCard; import mage.target.TargetCard;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class XenagosTheReveler extends CardImpl { public final class XenagosTheReveler extends CardImpl {
@ -44,7 +40,8 @@ public final class XenagosTheReveler extends CardImpl {
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(3)); this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(3));
// +1: Add X mana in any combination of {R} and/or {G}, where X is the number of creatures you control. // +1: Add X mana in any combination of {R} and/or {G}, where X is the number of creatures you control.
this.addAbility(new LoyaltyAbility(new XenagosManaEffect(), +1)); this.addAbility(new LoyaltyAbility(new XenagosManaEffect(), +1)
.addHint(CreaturesYouControlHint.instance));
// 0: Create a 2/2 red and green Satyr creature token with haste. // 0: Create a 2/2 red and green Satyr creature token with haste.
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new XenagosSatyrToken()), 0)); this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new XenagosSatyrToken()), 0));