mirror of
https://github.com/correl/mage.git
synced 2025-01-11 19:13:02 +00:00
* Choose from outside - added card hints about sideboard stats and howto view a cards list;
This commit is contained in:
parent
e330ed6c7b
commit
5985e6cfcc
41 changed files with 151 additions and 12 deletions
|
@ -7,6 +7,7 @@ import mage.abilities.effects.OneShotEffect;
|
|||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.combat.BlocksIfAbleTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -34,6 +35,7 @@ public final class AcademicDispute extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private AcademicDispute(final AcademicDispute card) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -23,6 +24,7 @@ public final class ArcaneSubtraction extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private ArcaneSubtraction(final ArcaneSubtraction card) {
|
||||
|
|
|
@ -4,6 +4,7 @@ package mage.cards.b;
|
|||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.ExileSpellEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -26,6 +27,7 @@ public final class BurningWish extends CardImpl {
|
|||
|
||||
// You may choose a sorcery card you own from outside the game, reveal that card, and put it into your hand.
|
||||
this.getSpellAbility().addEffect(new WishEffect(filter));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
// Exile Burning Wish.
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.c;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -26,6 +27,7 @@ public final class CoaxFromTheBlindEternities extends CardImpl {
|
|||
|
||||
// You may choose an Eldrazi card you own from outside the game or in exile, reveal that card, and put it into your hand.
|
||||
this.getSpellAbility().addEffect(new WishEffect(filter, true, true));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private CoaxFromTheBlindEternities(final CoaxFromTheBlindEternities card) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -21,6 +22,7 @@ public final class CramSession extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private CramSession(final CramSession card) {
|
||||
|
|
|
@ -4,6 +4,7 @@ package mage.cards.c;
|
|||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.ExileSpellEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -26,6 +27,7 @@ public final class CunningWish extends CardImpl {
|
|||
|
||||
// You may choose an instant card you own from outside the game, reveal that card, and put it into your hand.
|
||||
this.getSpellAbility().addEffect(new WishEffect(filter));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
// Exile Cunning Wish.
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.d;
|
|||
import mage.abilities.effects.common.ExileSpellEffect;
|
||||
import mage.abilities.effects.common.LoseHalfLifeEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -20,6 +21,7 @@ public final class DeathWish extends CardImpl {
|
|||
|
||||
// You may choose a card you own from outside the game and put it into your hand.
|
||||
this.getSpellAbility().addEffect(new WishEffect(StaticFilters.FILTER_CARD_A, false));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
// You lose half your life, rounded up.
|
||||
this.getSpellAbility().addEffect(new LoseHalfLifeEffect());
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.d;
|
|||
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -37,6 +38,7 @@ public final class DivideByZero extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private DivideByZero(final DivideByZero card) {
|
||||
|
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.BecomesTargetTriggeredAbility;
|
|||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -36,7 +37,8 @@ public final class DreamStrix extends CardImpl {
|
|||
));
|
||||
|
||||
// When Dream Strix dies, learn.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new LearnEffect()));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new LearnEffect())
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private DreamStrix(final DreamStrix card) {
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.e;
|
|||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -31,6 +32,7 @@ public final class EnthusiasticStudy extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private EnthusiasticStudy(final EnthusiasticStudy card) {
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.e;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -28,7 +29,8 @@ public final class Eyetwitch extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// When Eyetwitch dies, learn.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new LearnEffect()));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new LearnEffect())
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private Eyetwitch(final Eyetwitch card) {
|
||||
|
|
|
@ -7,6 +7,7 @@ import mage.abilities.costs.common.DiscardTargetCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -46,6 +47,7 @@ public final class FaeOfWishes extends AdventureCard {
|
|||
// Granted
|
||||
// You may choose a noncreature card you own from outside the game, reveal it, and put it into your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new WishEffect(StaticFilters.FILTER_CARD_A_NON_CREATURE));
|
||||
this.getSpellCard().getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private FaeOfWishes(final FaeOfWishes card) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.f;
|
|||
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -32,6 +33,7 @@ public final class FieldTrip extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private FieldTrip(final FieldTrip card) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
|||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -32,6 +33,7 @@ public final class FirstDayOfClass extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private FirstDayOfClass(final FirstDayOfClass card) {
|
||||
|
|
|
@ -4,6 +4,7 @@ package mage.cards.g;
|
|||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.ExileSpellEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -27,6 +28,7 @@ public final class GlitteringWish extends CardImpl {
|
|||
|
||||
// You may choose a multicolored card you own from outside the game, reveal that card, and put it into your hand.
|
||||
this.getSpellAbility().addEffect(new WishEffect(filter));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
// Exile Glittering Wish.
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.g;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -28,7 +29,8 @@ public final class GnarledProfessor extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// When Gnarled Professor enters the battlefield, learn.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect())
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private GnarledProfessor(final GnarledProfessor card) {
|
||||
|
|
|
@ -4,6 +4,7 @@ package mage.cards.g;
|
|||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.ExileSpellEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -29,6 +30,7 @@ public final class GoldenWish extends CardImpl {
|
|||
|
||||
// You may choose an artifact or enchantment card you own from outside the game, reveal that card, and put it into your hand.
|
||||
this.getSpellAbility().addEffect(new WishEffect(filter));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
// Exile Golden Wish.
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.g;
|
|||
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -24,6 +25,7 @@ public final class GuidingVoice extends CardImpl {
|
|||
|
||||
// Learn (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.)
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private GuidingVoice(final GuidingVoice card) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.h;
|
|||
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -22,6 +23,7 @@ public final class HuntForSpecimens extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private HuntForSpecimens(final HuntForSpecimens card) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.i;
|
|||
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -23,6 +24,7 @@ public final class IgneousInspiration extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private IgneousInspiration(final IgneousInspiration card) {
|
||||
|
|
|
@ -7,6 +7,7 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.RestrictionEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
@ -50,7 +51,7 @@ public final class KarnTheGreatCreator extends CardImpl {
|
|||
// -2: You may choose an artifact card you own from outside the game or in exile, reveal that card, and put it into your hand.
|
||||
this.addAbility(new LoyaltyAbility(new WishEffect(
|
||||
StaticFilters.FILTER_CARD_ARTIFACT_AN, true, true
|
||||
), -2));
|
||||
), -2).addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private KarnTheGreatCreator(final KarnTheGreatCreator card) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.UUID;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -37,7 +38,8 @@ public final class LegionAngel extends CardImpl {
|
|||
|
||||
// When Legion Angel enters the battlefield, you may reveal a card you own named Legion Angel from outside the game and put it into your hand.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new WishEffect(filter, true, false)
|
||||
.setText("you may reveal a card you own named Legion Angel from outside the game and put it into your hand")));
|
||||
.setText("you may reveal a card you own named Legion Angel from outside the game and put it into your hand"))
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private LegionAngel(final LegionAngel card) {
|
||||
|
|
|
@ -4,6 +4,7 @@ package mage.cards.l;
|
|||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.ExileSpellEffect;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -29,6 +30,7 @@ public final class LivingWish extends CardImpl {
|
|||
|
||||
// You may choose a creature or land card you own from outside the game, reveal that card, and put it into your hand.
|
||||
this.getSpellAbility().addEffect(new WishEffect(filter));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
// Exile Living Wish.
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.m;
|
|||
import mage.abilities.Mode;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -27,6 +28,7 @@ public final class MastermindsAcquisition extends CardImpl {
|
|||
Mode mode = new Mode(new WishEffect(StaticFilters.FILTER_CARD_A, false)
|
||||
.setText("Put a card you own from outside the game into your hand"));
|
||||
this.getSpellAbility().addMode(mode);
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private MastermindsAcquisition(final MastermindsAcquisition card) {
|
||||
|
|
|
@ -8,6 +8,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.DefenderAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -38,6 +39,7 @@ public final class OvergrownArch extends CardImpl {
|
|||
// {2}, Sacrifice Overgrown Arch: Learn.
|
||||
Ability ability = new SimpleActivatedAbility(new LearnEffect(), new GenericManaCost(2));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addHint(OpenSideboardHint.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.EquipAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -29,7 +30,8 @@ public final class PoetsQuill extends CardImpl {
|
|||
this.subtype.add(SubType.EQUIPMENT);
|
||||
|
||||
// When Poet's Quill enters the battlefield, learn.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect())
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
|
||||
// Equipped creature gets +1/+1 and has lifelink.
|
||||
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.p;
|
|||
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -21,6 +22,7 @@ public final class PopQuiz extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private PopQuiz(final PopQuiz card) {
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.p;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -24,7 +25,8 @@ public final class ProfessorOfSymbology extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Professor of Symbology enters the battlefield, learn.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect())
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private ProfessorOfSymbology(final ProfessorOfSymbology card) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.UUID;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.*;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
|
@ -26,6 +27,7 @@ public final class ResearchDevelopment extends SplitCard {
|
|||
|
||||
// Choose up to four cards you own from outside the game and shuffle them into your library.
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new ResearchEffect());
|
||||
getLeftHalfCard().getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
// Create a 3/1 red Elemental creature token unless any opponent has you draw a card. Repeat this process two more times.
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DevelopmentEffect());
|
||||
|
|
|
@ -9,6 +9,7 @@ import mage.abilities.condition.common.CastFromEverywhereSourceCondition;
|
|||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.Card;
|
||||
|
@ -43,7 +44,7 @@ public final class RetrieverPhoenix extends CardImpl {
|
|||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new EntersBattlefieldTriggeredAbility(new LearnEffect()), CastFromEverywhereSourceCondition.instance,
|
||||
"When {this} enters the battlefield, if you cast it, " + LearnEffect.getDefaultText()
|
||||
));
|
||||
).addHint(OpenSideboardHint.instance));
|
||||
|
||||
// As long as Retriever Phoenix is in your graveyard, if you would learn, you may instead return Retriever Phoenix to the battlefield.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.GRAVEYARD, new RetrieverPhoenixEffect()));
|
||||
|
|
|
@ -9,6 +9,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -33,6 +34,7 @@ public final class RingOfMaruf extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RingOfMarufEffect(), new ManaCostsImpl("{5}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new ExileSourceCost());
|
||||
ability.addHint(OpenSideboardHint.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.r;
|
|||
|
||||
import mage.abilities.effects.common.ExileTargetEffect;
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -29,6 +30,7 @@ public final class RiseOfExtus extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private RiseOfExtus(final RiseOfExtus card) {
|
||||
|
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.UntapTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -23,7 +24,8 @@ public final class SparringRegimen extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
|
||||
|
||||
// When Sparring Regimen enters the battlefield, learn.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new LearnEffect())
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
|
||||
// Whenever you attack, put a +1/+1 counter on target attacking creature and untap it.
|
||||
Ability ability = new AttacksWithCreaturesTriggeredAbility(
|
||||
|
|
|
@ -7,6 +7,7 @@ import mage.abilities.common.SimpleActivatedAbility;
|
|||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.CastCardFromOutsideTheGameEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.AnnihilatorAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -43,7 +44,9 @@ public final class SpawnsireOfUlamog extends CardImpl {
|
|||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new EldraziSpawnToken(), 2), new GenericManaCost(4)));
|
||||
|
||||
// {20}: Cast any number of Eldrazi cards you own from outside the game without paying their mana costs.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CastCardFromOutsideTheGameEffect(filter, ruleText), new GenericManaCost(20)));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new CastCardFromOutsideTheGameEffect(filter, ruleText), new GenericManaCost(20)
|
||||
).addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private SpawnsireOfUlamog(final SpawnsireOfUlamog card) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.s;
|
|||
|
||||
import mage.abilities.effects.common.LearnEffect;
|
||||
import mage.abilities.effects.common.TapTargetEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -23,6 +24,7 @@ public final class StudyBreak extends CardImpl {
|
|||
|
||||
// Learn.
|
||||
this.getSpellAbility().addEffect(new LearnEffect().concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private StudyBreak(final StudyBreak card) {
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.UUID;
|
|||
import mage.abilities.DelayedTriggeredAbility;
|
||||
import mage.abilities.common.SagaAbility;
|
||||
import mage.abilities.effects.common.*;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SagaChapter;
|
||||
|
@ -51,6 +52,7 @@ public final class TheRavensWarning extends CardImpl {
|
|||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III,
|
||||
new WishEffect(StaticFilters.FILTER_CARD_A, false, false, true)
|
||||
);
|
||||
sagaAbility.addHint(OpenSideboardHint.instance);
|
||||
this.addAbility(sagaAbility);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import mage.abilities.effects.common.DamageWithPowerFromOneToAnotherTargetEffect
|
|||
import mage.abilities.effects.common.WishEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.counter.DistributeCountersEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -58,7 +59,8 @@ public final class VivienArkbowRanger extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// −5: You may choose a creature card you own from outside the game, reveal it, and put it into your hand.
|
||||
this.addAbility(new LoyaltyAbility(new WishEffect(StaticFilters.FILTER_CARD_CREATURE_A), -5));
|
||||
this.addAbility(new LoyaltyAbility(new WishEffect(StaticFilters.FILTER_CARD_CREATURE_A), -5)
|
||||
.addHint(OpenSideboardHint.instance));
|
||||
}
|
||||
|
||||
private VivienArkbowRanger(final VivienArkbowRanger card) {
|
||||
|
|
|
@ -10,6 +10,7 @@ import mage.MageObjectReference;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.AsThoughEffectImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.hint.common.OpenSideboardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
@ -32,6 +33,7 @@ public final class Wish extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new WishEffect());
|
||||
this.getSpellAbility().setIdentifier(MageIdentifier.WishWatcher);
|
||||
this.getSpellAbility().addWatcher(new WishWatcher());
|
||||
this.getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
}
|
||||
|
||||
private Wish(final Wish card) {
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
package mage.abilities.dynamicvalue.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public enum SideboardCardsYouControlCount implements DynamicValue {
|
||||
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
Player player = game.getPlayer(sourceAbility.getControllerId());
|
||||
if (player == null) {
|
||||
return 0;
|
||||
}
|
||||
return player.getSideboard().size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SideboardCardsYouControlCount copy() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "1";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "cards in your sideboard";
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.abilities.effects.common;
|
||||
|
||||
import java.util.Set;
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package mage.abilities.hint.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.common.SideboardCardsYouControlCount;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.game.Game;
|
||||
|
||||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public enum OpenSideboardHint implements Hint {
|
||||
|
||||
instance;
|
||||
private static final Hint hint = new ValueHint("Cards in your sideboard", SideboardCardsYouControlCount.instance);
|
||||
|
||||
@Override
|
||||
public String getText(Game game, Ability ability) {
|
||||
return hint.getText(game, ability) + " (<i>Right click on battlefield to open player's sideboard at any time</i>)";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Hint copy() {
|
||||
return instance;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue