* My turn condition - added card hints about turn;

This commit is contained in:
Oleg Agafonov 2020-01-12 21:36:23 +04:00
parent 6367bf68b2
commit 1a82eba77c
19 changed files with 101 additions and 56 deletions

View file

@ -5,7 +5,7 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.condition.common.NotMyTurnCondition; import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.hint.ConditionHint; import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlashAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -37,7 +37,7 @@ public final class BrinebornCutthroat extends CardImpl {
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false
), NotMyTurnCondition.instance, "Whenever you cast a spell during an opponent's turn, " + ), NotMyTurnCondition.instance, "Whenever you cast a spell during an opponent's turn, " +
"put a +1/+1 counter on {this}." "put a +1/+1 counter on {this}."
).addHint(new ConditionHint(NotMyTurnCondition.instance, "It's not my turn"))); // TODO: replace to opponent's turn condition (team mode support in future) ).addHint(NotMyTurnHint.instance)); // TODO: replace to opponent's turn condition (team mode support in future)
} }
private BrinebornCutthroat(final BrinebornCutthroat card) { private BrinebornCutthroat(final BrinebornCutthroat card) {

View file

@ -1,30 +1,31 @@
package mage.cards.f; package mage.cards.f;
import java.util.UUID;
import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.CreateTokenCopyTargetEffect; import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.keyword.ScryEffect;
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;
import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class FatedInfatuation extends CardImpl { public final class FatedInfatuation extends CardImpl {
public FatedInfatuation(UUID ownerId, CardSetInfo setInfo) { public FatedInfatuation(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}{U}{U}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}{U}{U}");
// Create a token that's a copy of target creature you control. If it's your turn, scry 2. // Create a token that's a copy of target creature you control. If it's your turn, scry 2.
this.getSpellAbility().addEffect(new CreateTokenCopyTargetEffect()); this.getSpellAbility().addEffect(new CreateTokenCopyTargetEffect());
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2")); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2"));
this.getSpellAbility().addHint(MyTurnHint.instance);
} }
public FatedInfatuation(final FatedInfatuation card) { public FatedInfatuation(final FatedInfatuation card) {

View file

@ -1,29 +1,30 @@
package mage.cards.f; package mage.cards.f;
import java.util.UUID;
import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.keyword.ScryEffect;
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;
import mage.game.permanent.token.CentaurEnchantmentCreatureToken; import mage.game.permanent.token.CentaurEnchantmentCreatureToken;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class FatedIntervention extends CardImpl { public final class FatedIntervention extends CardImpl {
public FatedIntervention(UUID ownerId, CardSetInfo setInfo) { public FatedIntervention(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}{G}{G}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G}{G}{G}");
// Create two 3/3 green Centaur enchantment creature tokens. If it's your turn, scry 2. // Create two 3/3 green Centaur enchantment creature tokens. If it's your turn, scry 2.
this.getSpellAbility().addEffect(new CreateTokenEffect(new CentaurEnchantmentCreatureToken(), 2)); this.getSpellAbility().addEffect(new CreateTokenEffect(new CentaurEnchantmentCreatureToken(), 2));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2")); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2"));
this.getSpellAbility().addHint(MyTurnHint.instance);
} }
public FatedIntervention(final FatedIntervention card) { public FatedIntervention(final FatedIntervention card) {

View file

@ -1,36 +1,39 @@
package mage.cards.f; package mage.cards.f;
import java.util.UUID;
import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DestroyAllEffect; import mage.abilities.effects.common.DestroyAllEffect;
import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.keyword.ScryEffect;
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;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates; import mage.filter.predicate.Predicates;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class FatedRetribution extends CardImpl { public final class FatedRetribution extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("creatures and planeswalkers"); private static final FilterPermanent filter = new FilterPermanent("creatures and planeswalkers");
static { static {
filter.add(Predicates.or( filter.add(Predicates.or(
CardType.CREATURE.getPredicate(), CardType.CREATURE.getPredicate(),
CardType.PLANESWALKER.getPredicate())); CardType.PLANESWALKER.getPredicate()));
} }
public FatedRetribution(UUID ownerId, CardSetInfo setInfo) { public FatedRetribution(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{W}{W}{W}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{W}{W}{W}");
// Destroy all creatures and planeswalkers. If it's your turn, scry 2. // Destroy all creatures and planeswalkers. If it's your turn, scry 2.
this.getSpellAbility().addEffect(new DestroyAllEffect(filter, false)); this.getSpellAbility().addEffect(new DestroyAllEffect(filter, false));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2")); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2"));
this.getSpellAbility().addHint(MyTurnHint.instance);
} }
public FatedRetribution(final FatedRetribution card) { public FatedRetribution(final FatedRetribution card) {

View file

@ -1,12 +1,11 @@
package mage.cards.f; package mage.cards.f;
import java.util.UUID;
import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.keyword.ScryEffect;
import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -15,14 +14,15 @@ import mage.constants.Duration;
import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreatureCard;
import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInGraveyard;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class FatedReturn extends CardImpl { public final class FatedReturn extends CardImpl {
public FatedReturn(UUID ownerId, CardSetInfo setInfo) { public FatedReturn(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{B}{B}{B}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{B}{B}{B}");
// Put target creature card from a graveyard onto the battlefield under your control. It gains indestructible. If it's your turn, scry 2. // Put target creature card from a graveyard onto the battlefield under your control. It gains indestructible. If it's your turn, scry 2.
@ -32,6 +32,7 @@ public final class FatedReturn extends CardImpl {
"It gains indestructible")); "It gains indestructible"));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance,
"If it's your turn, scry 2 <i>(Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)</i>")); "If it's your turn, scry 2 <i>(Look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)</i>"));
this.getSpellAbility().addHint(MyTurnHint.instance);
} }
public FatedReturn(final FatedReturn card) { public FatedReturn(final FatedReturn card) {

View file

@ -9,6 +9,7 @@ import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
import mage.abilities.hint.common.MyTurnHint;
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.CardImpl;
@ -57,7 +58,7 @@ public final class FeastingTrollKing extends CardImpl {
new ReturnSourceFromGraveyardToBattlefieldEffect(), new ReturnSourceFromGraveyardToBattlefieldEffect(),
new SacrificeTargetCost(new TargetControlledPermanent(3, filter)), new SacrificeTargetCost(new TargetControlledPermanent(3, filter)),
MyTurnCondition.instance MyTurnCondition.instance
)); ).addHint(MyTurnHint.instance));
} }
private FeastingTrollKing(final FeastingTrollKing card) { private FeastingTrollKing(final FeastingTrollKing card) {

View file

@ -1,7 +1,5 @@
package mage.cards.f; package mage.cards.f;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.ActivateIfConditionActivatedAbility;
@ -11,23 +9,25 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.FearAbility; import mage.abilities.keyword.FearAbility;
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.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author jeffwadsworth * @author jeffwadsworth
*/ */
public final class Fleshformer extends CardImpl { public final class Fleshformer extends CardImpl {
public Fleshformer(UUID ownerId, CardSetInfo setInfo) { public Fleshformer(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.WIZARD); this.subtype.add(SubType.WIZARD);
@ -43,6 +43,7 @@ public final class Fleshformer extends CardImpl {
ability.addEffect(effect); ability.addEffect(effect);
ability.addEffect(new BoostTargetEffect(-2, -2, Duration.EndOfTurn)); ability.addEffect(new BoostTargetEffect(-2, -2, Duration.EndOfTurn));
ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetCreaturePermanent());
ability.addHint(MyTurnHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -5,6 +5,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost; import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.DestroyAllEffect; import mage.abilities.effects.common.DestroyAllEffect;
import mage.abilities.hint.common.NotMyTurnHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -40,7 +41,7 @@ public final class ForceOfDespair extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance, new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a black card from " + "If it's not your turn, you may exile a black card from " +
"your hand rather than pay this spell's mana cost." "your hand rather than pay this spell's mana cost."
)); ).addHint(NotMyTurnHint.instance));
// Destroy all creatures that entered the battlefield this turn. // Destroy all creatures that entered the battlefield this turn.
this.getSpellAbility().addEffect(new DestroyAllEffect(filter2)); this.getSpellAbility().addEffect(new DestroyAllEffect(filter2));

View file

@ -5,6 +5,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost; import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.CounterTargetWithReplacementEffect; import mage.abilities.effects.common.CounterTargetWithReplacementEffect;
import mage.abilities.hint.common.NotMyTurnHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -36,7 +37,7 @@ public final class ForceOfNegation extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance, new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a blue card from " + "If it's not your turn, you may exile a blue card from " +
"your hand rather than pay this spell's mana cost." "your hand rather than pay this spell's mana cost."
)); ).addHint(NotMyTurnHint.instance));
// Counter target noncreature spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. // Counter target noncreature spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.
this.getSpellAbility().addEffect(new CounterTargetWithReplacementEffect(Zone.EXILED)); this.getSpellAbility().addEffect(new CounterTargetWithReplacementEffect(Zone.EXILED));

View file

@ -9,6 +9,7 @@ import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
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.hint.common.NotMyTurnHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -45,7 +46,7 @@ public final class ForceOfRage extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance, new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a red card from " + "If it's not your turn, you may exile a red card from " +
"your hand rather than pay this spell's mana cost." "your hand rather than pay this spell's mana cost."
)); ).addHint(NotMyTurnHint.instance));
// Create two 3/1 red Elemental creature tokens with trample and haste. Sacrifice those tokens at the beginning of your next upkeep. // Create two 3/1 red Elemental creature tokens with trample and haste. Sacrifice those tokens at the beginning of your next upkeep.
this.getSpellAbility().addEffect(new ForceOfRageEffect()); this.getSpellAbility().addEffect(new ForceOfRageEffect());

View file

@ -5,6 +5,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost; import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.hint.common.NotMyTurnHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -40,7 +41,7 @@ public final class ForceOfVigor extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance, new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a green card from " + "If it's not your turn, you may exile a green card from " +
"your hand rather than pay this spell's mana cost." "your hand rather than pay this spell's mana cost."
)); ).addHint(NotMyTurnHint.instance));
// Destroy up to two target artifacts and/or enchantments. // Destroy up to two target artifacts and/or enchantments.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());

View file

@ -6,6 +6,7 @@ import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.AlternativeCostSourceAbility;
import mage.abilities.costs.common.ExileFromHandCost; import mage.abilities.costs.common.ExileFromHandCost;
import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlashAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -36,7 +37,7 @@ public final class ForceOfVirtue extends CardImpl {
new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance, new ExileFromHandCost(new TargetCardInHand(filter)), NotMyTurnCondition.instance,
"If it's not your turn, you may exile a white card from " + "If it's not your turn, you may exile a white card from " +
"your hand rather than pay this spell's mana cost." "your hand rather than pay this spell's mana cost."
)); ).addHint(NotMyTurnHint.instance));
// Flash // Flash
this.addAbility(FlashAbility.getInstance()); this.addAbility(FlashAbility.getInstance());

View file

@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.hint.common.MyTurnHint;
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;
@ -31,7 +32,7 @@ public final class FreshFacedRecruit extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield), new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
MyTurnCondition.instance, "As long as it's your turn, {this} has first strike." MyTurnCondition.instance, "As long as it's your turn, {this} has first strike."
))); )).addHint(MyTurnHint.instance));
} }
private FreshFacedRecruit(final FreshFacedRecruit card) { private FreshFacedRecruit(final FreshFacedRecruit card) {

View file

@ -1,32 +1,33 @@
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect;
import mage.abilities.hint.common.NotMyTurnHint;
import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.ColorlessManaAbility;
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.Zone; import mage.constants.Zone;
import java.util.UUID;
/** /**
*
* @author emerald000 * @author emerald000
*/ */
public final class GhostTown extends CardImpl { public final class GhostTown extends CardImpl {
public GhostTown(UUID ownerId, CardSetInfo setInfo) { public GhostTown(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},""); super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// {tap}: Add {C}. // {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility()); this.addAbility(new ColorlessManaAbility());
// {0}: Return Ghost Town to its owner's hand. Activate this ability only if it's not your turn. // {0}: Return Ghost Town to its owner's hand. Activate this ability only if it's not your turn.
this.addAbility(new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new GenericManaCost(0), new InvertCondition(MyTurnCondition.instance))); this.addAbility(new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true),
new GenericManaCost(0), NotMyTurnCondition.instance)
.addHint(NotMyTurnHint.instance));
} }
public GhostTown(final GhostTown card) { public GhostTown(final GhostTown card) {

View file

@ -13,6 +13,7 @@ import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.PreventAllDamageToSourceEffect; import mage.abilities.effects.common.PreventAllDamageToSourceEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.IndestructibleAbility;
import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.LifelinkAbility;
import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.VigilanceAbility;
@ -59,7 +60,7 @@ public final class GideonBlackblade extends CardImpl {
new GideonBlackbladeToken(), "planeswalker", Duration.WhileOnBattlefield new GideonBlackbladeToken(), "planeswalker", Duration.WhileOnBattlefield
), MyTurnCondition.instance, "As long as it's your turn, " + ), MyTurnCondition.instance, "As long as it's your turn, " +
"{this} is a 4/4 Human Soldier creature with indestructible that's still a planeswalker." "{this} is a 4/4 Human Soldier creature with indestructible that's still a planeswalker."
))); )).addHint(MyTurnHint.instance));
// Prevent all damage that would be dealt to Gideon Blackblade during your turn. // Prevent all damage that would be dealt to Gideon Blackblade during your turn.
this.addAbility(new SimpleStaticAbility(new ConditionalPreventionEffect( this.addAbility(new SimpleStaticAbility(new ConditionalPreventionEffect(

View file

@ -1,42 +1,42 @@
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.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.condition.common.NotMyTurnCondition; import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect;
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;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.Zone; import mage.constants.Zone;
import java.util.UUID;
/** /**
*
* @author Loki * @author Loki
*/ */
public final class GloryOfWarfare extends CardImpl { public final class GloryOfWarfare extends CardImpl {
public GloryOfWarfare (UUID ownerId, CardSetInfo setInfo) { public GloryOfWarfare(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{R}{W}"); super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}{W}");
// As long as its your turn, creatures you control get +2/+0.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostControlledEffect(2, 0, Duration.WhileOnBattlefield), new BoostControlledEffect(2, 0, Duration.WhileOnBattlefield),
MyTurnCondition.instance, MyTurnCondition.instance,
"As long as it's your turn, creatures you control get +2/+0"))); "As long as it's your turn, creatures you control get +2/+0"))
.addHint(MyTurnHint.instance));
// As long as its not your turn, creatures you control get +0/+2.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield), new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield),
NotMyTurnCondition.instance, NotMyTurnCondition.instance,
"As long as it's not your turn, creatures you control get +0/+2"))); "As long as it's not your turn, creatures you control get +0/+2")));
} }
public GloryOfWarfare (final GloryOfWarfare card) { public GloryOfWarfare(final GloryOfWarfare card) {
super(card); super(card);
} }

View file

@ -7,6 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilityControllerEffect; import mage.abilities.effects.common.continuous.GainAbilityControllerEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.hint.common.MyTurnHint;
import mage.abilities.keyword.HexproofAbility; import mage.abilities.keyword.HexproofAbility;
import mage.abilities.keyword.RiotAbility; import mage.abilities.keyword.RiotAbility;
import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.TrampleAbility;
@ -54,6 +55,7 @@ public final class GruulSpellbreaker extends CardImpl {
Duration.WhileOnBattlefield Duration.WhileOnBattlefield
), MyTurnCondition.instance, "{this} have hexproof." ), MyTurnCondition.instance, "{this} have hexproof."
)); ));
ability.addHint(MyTurnHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,13 +1,12 @@
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.discard.DiscardTargetEffect;
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;
@ -16,23 +15,25 @@ import mage.constants.SuperType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
import java.util.UUID;
/** /**
*
* @author fireshoes * @author fireshoes
*/ */
public final class GwendlynDiCorci extends CardImpl { public final class GwendlynDiCorci extends CardImpl {
public GwendlynDiCorci(UUID ownerId, CardSetInfo setInfo) { public GwendlynDiCorci(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{B}{B}{R}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{B}{B}{R}");
this.addSuperType(SuperType.LEGENDARY); this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.ROGUE); this.subtype.add(SubType.ROGUE);
this.power = new MageInt(3); this.power = new MageInt(3);
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// {tap}: Target player discards a card at random. Activate this ability only during your turn. // {T}: Target player discards a card at random. Activate this ability only during your turn.
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1, true), new TapSourceCost(), MyTurnCondition.instance); Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1, true), new TapSourceCost(), MyTurnCondition.instance);
ability.addTarget(new TargetPlayer()); ability.addTarget(new TargetPlayer());
ability.addHint(MyTurnHint.instance);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -0,0 +1,26 @@
package mage.abilities.hint.common;
import mage.abilities.Ability;
import mage.abilities.condition.common.NotMyTurnCondition;
import mage.abilities.hint.ConditionHint;
import mage.abilities.hint.Hint;
import mage.game.Game;
/**
* @author JayDi85
*/
public enum NotMyTurnHint implements Hint {
instance;
private static final ConditionHint hint = new ConditionHint(NotMyTurnCondition.instance, "It's not my turn");
@Override
public String getText(Game game, Ability ability) {
return hint.getText(game, ability);
}
@Override
public Hint copy() {
return instance;
}
}