mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
Number of card types in graveyards - added card hint for cards like Tarmogoyf
This commit is contained in:
parent
4a960995f7
commit
25e4930bd5
94 changed files with 245 additions and 306 deletions
|
|
@ -5,7 +5,6 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -33,7 +32,7 @@ public final class AltarOfTheGoyf extends CardImpl {
|
|||
// Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of card types among cards in all graveyards.
|
||||
this.addAbility(new AttacksAloneControlledTriggeredAbility(
|
||||
new BoostTargetEffect(CardTypesInGraveyardCount.ALL, CardTypesInGraveyardCount.ALL, Duration.EndOfTurn),
|
||||
true, false).addHint(CardTypesInGraveyardHint.ALL));
|
||||
true, false).addHint(CardTypesInGraveyardCount.ALL.getHint()));
|
||||
|
||||
// Lhurgoyf creatures you control have trample.
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealsDamageSourceTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.ExileTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -35,7 +35,7 @@ public final class AngelOfDeliverance extends CardImpl {
|
|||
Ability ability = new DealsDamageSourceTriggeredAbility(new ExileTargetEffect())
|
||||
.withInterveningIf(DeliriumCondition.instance);
|
||||
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,20 +3,19 @@ package mage.cards.a;
|
|||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.MillCardsControllerEffect;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
|
|
@ -34,7 +33,7 @@ public final class AutumnalGloom extends CardImpl {
|
|||
this.addAbility(new TransformAbility());
|
||||
Ability ability = new BeginningOfEndStepTriggeredAbility(TargetController.YOU, new TransformSourceEffect(), false, DeliriumCondition.instance);
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,16 +7,15 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
|
|
@ -33,7 +32,7 @@ public final class BackwoodsSurvivalists extends CardImpl {
|
|||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), DeliriumCondition.instance, "<i>Delirium</i> — {this} gets +1/+1");
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance()), DeliriumCondition.instance, "and has trample as long as there are four or more card types among cards in your graveyard."));
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
|||
import mage.abilities.common.CantBeCounteredSourceAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldWithCounterEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -42,7 +42,7 @@ public final class BalustradeWurm extends CardImpl {
|
|||
Zone.GRAVEYARD,
|
||||
new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false),
|
||||
new ManaCostsImpl<>("{2}{G}{G}"), DeliriumCondition.instance, TimingRule.SORCERY
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private BalustradeWurm(final BalustradeWurm card) {
|
||||
|
|
|
|||
|
|
@ -24,8 +24,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class Barrowgoyf extends CardImpl {
|
||||
|
||||
private static final DynamicValue powerValue = CardTypesInGraveyardCount.ALL;
|
||||
|
||||
public Barrowgoyf(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
this.subtype.add(SubType.LHURGOYF);
|
||||
|
|
@ -40,7 +38,9 @@ public final class Barrowgoyf extends CardImpl {
|
|||
this.addAbility(LifelinkAbility.getInstance());
|
||||
|
||||
// Barrowgoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.ALL)
|
||||
).addHint(CardTypesInGraveyardCount.ALL.getHint()));
|
||||
|
||||
// Whenever Barrowgoyf deals combat damage to a player, you may mill that many cards. If you do, you may put a creature card from among them into your hand.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ package mage.cards.b;
|
|||
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DamageWithPowerFromOneToAnotherTargetEffect;
|
||||
import mage.abilities.effects.common.InfoEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -37,7 +37,7 @@ public final class BeastieBeatdown extends CardImpl {
|
|||
DeliriumCondition.instance, AbilityWord.DELIRIUM.formatWord() + "If there are four or more " +
|
||||
"card types among cards in your graveyard, put two +1/+1 counters on the creature you control."
|
||||
).concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
|
||||
// The creature you control deals damage equal to its power to the creature an opponent controls.
|
||||
this.getSpellAbility().addEffect(new DamageWithPowerFromOneToAnotherTargetEffect()
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import mage.abilities.common.CantBlockAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.CascadeAbility;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
|
@ -45,7 +45,7 @@ public final class BloodbraidMarauder extends CardImpl {
|
|||
new GainAbilitySourceEffect(new CascadeAbility(), Duration.WhileOnStack, true),
|
||||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — This spell has cascade as long as there are four or more card types among cards in your graveyard." + REMINDER_TEXT
|
||||
)).addHint(CardTypesInGraveyardHint.YOU));
|
||||
)).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private BloodbraidMarauder(final BloodbraidMarauder card) {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.keyword.SurveilEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -45,7 +44,7 @@ public final class Broodspinner extends CardImpl {
|
|||
new ManaCostsImpl<>("{4}{B}{G}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private Broodspinner(final Broodspinner card) {
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ConsumingBlob extends CardImpl {
|
||||
|
||||
private static final DynamicValue powerValue = CardTypesInGraveyardCount.YOU;
|
||||
|
||||
public ConsumingBlob(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
|
||||
|
||||
|
|
@ -31,7 +29,9 @@ public final class ConsumingBlob extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Consuming Blob's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.YOU)
|
||||
).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
|
||||
// At the beginning of your end step, create a green Ooze creature token with "This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1".
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package mage.cards.c;
|
|||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -33,7 +33,7 @@ public final class ConvertToSlime extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetArtifactPermanent(0, 1));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1));
|
||||
this.getSpellAbility().addTarget(new TargetEnchantmentPermanent(0, 1));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private ConvertToSlime(final ConvertToSlime card) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.c;
|
|||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
|
|
@ -10,7 +11,6 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.effects.common.MillCardsControllerEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -42,7 +42,7 @@ public final class CropSigil extends CardImpl {
|
|||
ability.addTarget(new TargetCardInYourGraveyard(0, 1, StaticFilters.FILTER_CARD_CREATURE));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(0, 1, StaticFilters.FILTER_CARD_LAND));
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import mage.MageInt;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.abilities.mana.BlackManaAbility;
|
||||
import mage.abilities.mana.GreenManaAbility;
|
||||
|
|
@ -16,7 +16,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
|
|
@ -38,7 +37,7 @@ public final class DeathcapCultivator extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(
|
||||
new ConditionalContinuousEffect(new GainAbilitySourceEffect(DeathtouchAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
DeliriumCondition.instance, "<i>Delirium</i> — {this} has deathtouch as long as there are four or more card types among cards in your graveyard"))
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private DeathcapCultivator(final DeathcapCultivator card) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import mage.abilities.dynamicvalue.DynamicValue;
|
|||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.dynamicvalue.common.SignInversionDynamicValue;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -25,7 +24,7 @@ public final class DelugeOfDoom extends CardImpl {
|
|||
// All creatures get -X/-X until end of turn, where X is the number of card types among cards in your graveyard.
|
||||
this.getSpellAbility().addEffect(new BoostAllEffect(xValue, xValue, Duration.EndOfTurn)
|
||||
.setText("all creatures get -X/-X until end of turn, where X is the number of card types among cards in your graveyard"));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private DelugeOfDoom(final DelugeOfDoom card) {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -43,7 +43,7 @@ public final class DemolisherSpawn extends CardImpl {
|
|||
StaticFilters.FILTER_ATTACKING_CREATURES, true
|
||||
)), DeliriumCondition.instance, "Whenever {this} attacks, if there are four or more " +
|
||||
"card types among cards in your graveyard, other attacking creatures get +4/+4 until end of turn."
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private DemolisherSpawn(final DemolisherSpawn card) {
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package mage.cards.d;
|
|||
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -38,7 +38,7 @@ public final class DemonicCounsel extends CardImpl {
|
|||
"If there are four or more card types among cards in your graveyard, " +
|
||||
"instead search your library for any card, put it into your hand, then shuffle."
|
||||
));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private DemonicCounsel(final DemonicCounsel card) {
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@ import java.util.UUID;
|
|||
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.ExileAllEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -29,7 +29,7 @@ public final class DescendUponTheSinful extends CardImpl {
|
|||
Effect effect = new ConditionalOneShotEffect(new CreateTokenEffect(new AngelToken()), DeliriumCondition.instance);
|
||||
effect.setText("<br/><i>Delirium</i> — Create a 4/4 white Angel creature token with flying if there are four or more card types among cards in your graveyard");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private DescendUponTheSinful(final DescendUponTheSinful card) {
|
||||
|
|
|
|||
|
|
@ -8,15 +8,14 @@ import mage.abilities.common.DiesSourceTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.EldraziHorrorToken;
|
||||
|
||||
/**
|
||||
|
|
@ -39,7 +38,7 @@ public final class DesperateSentry extends CardImpl {
|
|||
new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield), DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — {this} gets +3/+0 as long as there are four or more card types among cards in your graveyard.");
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ package mage.cards.d;
|
|||
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -26,7 +26,7 @@ public final class DragToTheRoots extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(
|
||||
Zone.ALL, new SpellCostReductionSourceEffect(2, DeliriumCondition.instance)
|
||||
.setText("this spell costs {2} less to cast as long as there are four or more card types among cards in your graveyard")
|
||||
).setRuleAtTheTop(true).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setRuleAtTheTop(true).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
|
||||
// Destroy target nonland permanent.
|
||||
this.getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
|||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.decorator.ConditionalRequirementEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.combat.AttacksIfAbleSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.keyword.SurveilEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -55,7 +55,7 @@ public final class DragonsRageChanneler extends CardImpl {
|
|||
DeliriumCondition.instance, ", and attacks each combat if able"
|
||||
));
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private DragonsRageChanneler(final DragonsRageChanneler card) {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -31,7 +31,7 @@ public final class DuskFeaster extends CardImpl {
|
|||
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(2, DeliriumCondition.instance));
|
||||
ability.setRuleAtTheTop(true);
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Flying
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CastSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.cost.SpellCostReductionForEachSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.ProtectionAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
|
|
@ -46,7 +45,7 @@ public final class EmrakulThePromisedEnd extends CardImpl {
|
|||
new SpellCostReductionForEachSourceEffect(
|
||||
1, CardTypesInGraveyardCount.YOU
|
||||
).setText("this spell costs {1} less to cast for each card type among cards in your graveyard")
|
||||
).setRuleAtTheTop(true).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setRuleAtTheTop(true).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
|
||||
// When you cast Emrakul, you gain control of target opponent during that player's next turn. After that turn, that player takes an extra turn.
|
||||
Ability ability = new CastSourceTriggeredAbility(new EmrakulThePromisedEndGainControlEffect());
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.e;
|
|||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
|
|
@ -11,7 +12,6 @@ import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
|||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -52,7 +52,7 @@ public final class ExtricatorOfSin extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — At the beginning of your upkeep, if there are four or more card types among cards in your graveyard, "
|
||||
+ " transform {this}.")
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private ExtricatorOfSin(final ExtricatorOfSin card) {
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@ import mage.MageInt;
|
|||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.dynamicvalue.common.SavedDamageValue;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
|
@ -60,7 +60,7 @@ class FearOfBurningAliveTriggeredAbility extends TriggeredAbilityImpl {
|
|||
this.setTriggerPhrase("Whenever a source you control deals noncombat damage to an opponent, " +
|
||||
"if there are four or more card types among cards in your graveyard, ");
|
||||
this.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
this.addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private FearOfBurningAliveTriggeredAbility(final FearOfBurningAliveTriggeredAbility ability) {
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ import mage.abilities.common.AttacksFirstTimeTriggeredAbility;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.AdditionalCombatPhaseEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.UntapTargetEffect;
|
||||
import mage.abilities.effects.common.discard.DiscardControllerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -45,7 +45,7 @@ public final class FearOfMissingOut extends CardImpl {
|
|||
);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
ability.addEffect(new AdditionalCombatPhaseEffect());
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.keyword.SurveilEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -41,7 +41,7 @@ public final class FoulWatcher extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 0, Duration.WhileOnBattlefield), DeliriumCondition.instance,
|
||||
"{this} gets +1/+0 as long as there are four or more card types among cards in your graveyard"
|
||||
)).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
)).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private FoulWatcher(final FoulWatcher card) {
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ import mage.MageInt;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalAsThoughEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.combat.CanAttackAsThoughItDidntHaveDefenderSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.DefenderAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -16,7 +16,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
|
|
@ -40,7 +39,7 @@ public final class GeistOfTheLonelyVigil extends CardImpl {
|
|||
new CanAttackAsThoughItDidntHaveDefenderSourceEffect(Duration.WhileOnBattlefield),
|
||||
DeliriumCondition.instance);
|
||||
effect.setText("<i>Delirium</i> — {this} can attack as though it didn't have defender as long as there are four or more card types among cards in your graveyard");
|
||||
this.addAbility(new SimpleStaticAbility(effect).addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(new SimpleStaticAbility(effect).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private GeistOfTheLonelyVigil(final GeistOfTheLonelyVigil card) {
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@ package mage.cards.g;
|
|||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -37,7 +37,7 @@ public final class GibberingFiend extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — At the beginning of each opponent's upkeep, if there are four or more card types among cards in your graveyard, "
|
||||
+ "{this} deals 1 damage to that player.")
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private GibberingFiend(final GibberingFiend card) {
|
||||
|
|
|
|||
|
|
@ -7,15 +7,14 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
|
|
@ -37,7 +36,7 @@ public final class GnarlwoodDryad extends CardImpl {
|
|||
new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — {this} gets +2/+2 as long as there are four or more card types among cards in your graveyard.");
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DamageAllControlledTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -37,7 +37,7 @@ public final class GougedZealot extends CardImpl {
|
|||
new AttacksTriggeredAbility(new DamageAllControlledTargetEffect(1), false, null, SetTargetPointer.PLAYER),
|
||||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — Whenever {this} attacks, if there are four or more card types among cards in your graveyard, {this} deals 1 damage to each creature defending player controls."
|
||||
).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private GougedZealot(final GougedZealot card) {
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.keyword.SurveilEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -46,7 +46,7 @@ public final class GrimFlayer extends CardImpl {
|
|||
DeliriumCondition.instance, "{this} gets +2/+2 as long as there are " +
|
||||
"four or more card types among cards in your graveyard"
|
||||
)
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private GrimFlayer(final GrimFlayer card) {
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -37,7 +37,7 @@ public final class HandThatFeeds extends CardImpl {
|
|||
"card types among cards in your graveyard, it gets +2/+0 and gains menace until end of turn."
|
||||
);
|
||||
ability.addEffect(new GainAbilitySourceEffect(new MenaceAbility(false), Duration.EndOfTurn));
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private HandThatFeeds(final HandThatFeeds card) {
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -16,7 +16,6 @@ import mage.constants.AbilityWord;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
|
|
@ -37,7 +36,7 @@ public final class HoundOfTheFarbogs extends CardImpl {
|
|||
"{this} has menace as long as there are four or more card types among cards in your graveyard. " +
|
||||
"<i>(A creature with menace can't be blocked except by two or more creatures.)</i>"));
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ package mage.cards.i;
|
|||
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.ExileTopXMayPlayUntilEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -33,7 +33,7 @@ public final class ImpossibleInferno extends CardImpl {
|
|||
"four or more card types among cards in your graveyard, exile the top card of your library. " +
|
||||
"You may play it until the end of your next turn"
|
||||
));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private ImpossibleInferno(final ImpossibleInferno card) {
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import mage.MageInt;
|
|||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -31,7 +31,7 @@ public final class InexorableBlob extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — Whenever {this} attacks, if there are four or more card types among cards in your graveyard, " +
|
||||
"create a 3/3 green Ooze creature token that's tapped and attacking.")
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private InexorableBlob(final InexorableBlob card) {
|
||||
|
|
|
|||
|
|
@ -7,16 +7,15 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
|
||||
|
|
@ -34,7 +33,7 @@ public final class InquisitorsOx extends CardImpl {
|
|||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 0, Duration.WhileOnBattlefield), DeliriumCondition.instance, "<i>Delirium</i> — {this} gets +1/+0");
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(VigilanceAbility.getInstance()), DeliriumCondition.instance, "and has vigilance as long as there are four or more card types among cards in your graveyard."));
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,10 +4,9 @@ import java.util.UUID;
|
|||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.search.SearchTargetGraveyardHandLibraryForCardNameAndExileEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -36,7 +35,7 @@ public final class InvasiveSurgery extends CardImpl {
|
|||
// <i>Delirium</i> — If there are four or more card types among cards in your graveyard, search the graveyard, hand, and library of that spell's controller for any number of cards with the same name as that spell, exile those cards, then that player shuffles their library.
|
||||
this.getSpellAbility().addEffect(new InvasiveSurgeryEffect());
|
||||
this.getSpellAbility().addTarget(new TargetSpell(filter));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private InvasiveSurgery(final InvasiveSurgery card) {
|
||||
|
|
|
|||
|
|
@ -7,18 +7,17 @@ import mage.abilities.common.SimpleActivatedAbility;
|
|||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.LoseLifeTargetEffect;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.game.permanent.token.SpiderToken;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
|
@ -49,7 +48,7 @@ public final class IshkanahGrafwidow extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — When {this} enters, if there are four or more card types among cards in your graveyard, "
|
||||
+ "create three 1/2 green Spider creature tokens with reach.");
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
|
||||
// {5}{B}: Target opponent loses 1 life for each Spider you control.
|
||||
|
|
|
|||
|
|
@ -6,15 +6,14 @@ import mage.MageInt;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
|
|
@ -32,7 +31,7 @@ public final class KessigDireSwine extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(
|
||||
new ConditionalContinuousEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
DeliriumCondition.instance, "<i>Delirium</i> — {this} has trample as long as there are four or more card types among cards in your graveyard"))
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private KessigDireSwine(final KessigDireSwine card) {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -34,7 +34,7 @@ public final class KindlyStranger extends CardImpl {
|
|||
Zone.BATTLEFIELD, new TransformSourceEffect(), new ManaCostsImpl<>("{2}{B}"),
|
||||
DeliriumCondition.instance, "<i>Delirium</i> — {2}{B}: Transform {this}. " +
|
||||
"Activate only if there are four or more card types among cards in your graveyard."
|
||||
).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private KindlyStranger(final KindlyStranger card) {
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@ package mage.cards.l;
|
|||
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.abilities.effects.common.discard.DiscardEachPlayerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -32,7 +32,7 @@ public final class LetsPlayAGame extends CardImpl {
|
|||
);
|
||||
this.getSpellAbility().getModes().setMoreCondition(3, DeliriumCondition.instance);
|
||||
this.getSpellAbility().setAbilityWord(AbilityWord.DELIRIUM);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
|
||||
// * Creatures your opponents control get -1/-1 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostAllEffect(
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessPlusOneSourceEffect;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -30,7 +31,9 @@ public final class Lhurgoyf extends CardImpl {
|
|||
this.toughness = new MageInt(0);
|
||||
|
||||
// Lhurgoyf's power is equal to the number of creature cards in all graveyards and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(powerValue)
|
||||
).addHint(new ValueHint("Creature cards in all graveyards", powerValue)));
|
||||
}
|
||||
|
||||
private Lhurgoyf(final Lhurgoyf card) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package mage.cards.l;
|
|||
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -20,7 +19,7 @@ public final class LucidDreams extends CardImpl {
|
|||
// Draw X cards, where X is the number of card types among cards in your graveyard.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(CardTypesInGraveyardCount.YOU)
|
||||
.setText("draw X cards, where X is the number of card types among cards in your graveyard"));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private LucidDreams(final LucidDreams card) {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
package mage.cards.m;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
|
||||
import mage.abilities.effects.common.MillCardsTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -42,7 +42,7 @@ public final class ManicScribe extends CardImpl {
|
|||
false
|
||||
), DeliriumCondition.instance, "<i>Delirium</i> — At the beginning of each opponent's upkeep, " +
|
||||
"if there are four or more card types among cards in your graveyard, that player mills three cards."
|
||||
).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private ManicScribe(final ManicScribe card) {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import java.util.UUID;
|
|||
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -30,7 +30,7 @@ public final class MightBeyondReason extends CardImpl {
|
|||
+ "<i>Delirium</i> — Put three +1/+1 counters on that creature instead if there are four or more card types among cards in your graveyard"
|
||||
));
|
||||
getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private MightBeyondReason(final MightBeyondReason card) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import java.util.UUID;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
|
@ -11,7 +12,6 @@ import mage.abilities.condition.common.DeliriumCondition;
|
|||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||
import mage.abilities.effects.common.MillCardsControllerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -44,7 +44,7 @@ public final class MindwrackDemon extends CardImpl {
|
|||
new BeginningOfUpkeepTriggeredAbility(new LoseLifeSourceControllerEffect(4)),
|
||||
new InvertCondition(DeliriumCondition.instance),
|
||||
"<i>Delirium</i> — At the beginning of your upkeep, you lose 4 life unless there are four or more card types among cards in your graveyard.");
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,14 +6,13 @@ import mage.MageInt;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
|
|
@ -31,7 +30,7 @@ public final class MoldgrafScavenger extends CardImpl {
|
|||
new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield),
|
||||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — {this} gets +3/+0 as long as there are four or more card types among cards in your graveyard"))
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private MoldgrafScavenger(final MoldgrafScavenger card) {
|
||||
|
|
|
|||
|
|
@ -6,14 +6,13 @@ import mage.MageInt;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
|
||||
|
|
@ -28,7 +27,7 @@ public final class MoorlandDrifter extends CardImpl {
|
|||
|
||||
// <i>Delirium</i> — Moorland Drifter has flying as long as there are four or more card types among cards in your graveyard.
|
||||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), DeliriumCondition.instance, "<i>Delirium</i> — Moorland Drifter has flying as long as there are four or more card types among cards in your graveyard.");
|
||||
this.addAbility(new SimpleStaticAbility(effect).addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(new SimpleStaticAbility(effect).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private MoorlandDrifter(final MoorlandDrifter card) {
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.RestrictionEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -40,7 +40,7 @@ public final class Mournwillow extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — When {this} enters, if there are four or more card types among cards in your graveyard, "
|
||||
+ "creatures with power 2 or less can't block this turn.");
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@ import java.util.stream.Collectors;
|
|||
*/
|
||||
public final class Nethergoyf extends CardImpl {
|
||||
|
||||
private static final DynamicValue powerValue = CardTypesInGraveyardCount.YOU;
|
||||
|
||||
public Nethergoyf(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
|
||||
|
|
@ -44,7 +42,9 @@ public final class Nethergoyf extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Nethergoyf's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.YOU)
|
||||
).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
|
||||
// Escape--{2}{B}, Exile any number of other cards from your graveyard with four or more card types among them.
|
||||
CostsImpl<Cost> additionalCost = new CostsImpl();
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import mage.abilities.dynamicvalue.DynamicValue;
|
|||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
|
|
@ -51,7 +50,7 @@ public final class NighthawkScavenger extends CardImpl {
|
|||
.setText("{this}'s power is equal to 1 plus the number of " +
|
||||
"card types among cards in your opponents' graveyards. " +
|
||||
"<i>(Cards in graveyards have only the characteristics of their front face.)</i>")
|
||||
).addHint(CardTypesInGraveyardHint.OPPONENTS));
|
||||
).addHint(CardTypesInGraveyardCount.OPPONENTS.getHint()));
|
||||
}
|
||||
|
||||
private NighthawkScavenger(final NighthawkScavenger card) {
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@ import java.util.UUID;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -43,7 +43,7 @@ public final class ObsessiveSkinner extends CardImpl {
|
|||
"<i>Delirium</i> — At the beginning of each opponent's upkeep, if there are four or more card types among cards in your graveyard, "
|
||||
+ "put a +1/+1 counter on target creature.");
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import mage.abilities.decorator.ConditionalOneShotEffect;
|
|||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.counter.DistributeCountersEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
|
@ -42,7 +41,7 @@ public final class OmnivorousFlytrap extends CardImpl {
|
|||
new OmnivorousFlytrapCondition())
|
||||
.concatBy("Then"));
|
||||
ability.addTarget(new TargetCreaturePermanentAmount(2));
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,16 +7,15 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
|
|
@ -38,7 +37,7 @@ public final class ParanoidParishBlade extends CardImpl {
|
|||
effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
DeliriumCondition.instance, "and has first strike as long as there are four or more card types among cards in your graveyard.");
|
||||
ability.addEffect(effect);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@ package mage.cards.p;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.effects.RestrictionEffect;
|
||||
import mage.abilities.effects.common.MillCardsControllerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
|
@ -31,7 +31,7 @@ public final class PatchworkBeastie extends CardImpl {
|
|||
// Delirium -- Patchwork Beastie can't attack or block unless there are four or more card types among cards in your graveyard.
|
||||
this.addAbility(new SimpleStaticAbility(new PatchworkBeastieEffect())
|
||||
.setAbilityWord(AbilityWord.DELIRIUM)
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
|
||||
// At the beginning of your upkeep, you may mill a card.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package mage.cards.p;
|
|||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.discard.DiscardHandControllerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -21,7 +20,7 @@ public final class PeerPastTheVeil extends CardImpl {
|
|||
// Discard your hand. Then draw X cards, where X is the number of card types among cards in your graveyard.
|
||||
this.getSpellAbility().addEffect(new DiscardHandControllerEffect());
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(CardTypesInGraveyardCount.YOU).concatBy("Then"));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private PeerPastTheVeil(final PeerPastTheVeil card) {
|
||||
|
|
|
|||
|
|
@ -3,10 +3,9 @@ package mage.cards.p;
|
|||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.search.SearchTargetGraveyardHandLibraryForCardNameAndExileEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -31,7 +30,7 @@ public final class PickTheBrain extends CardImpl {
|
|||
// <i>Delirium</i> — If there are four or more card types among cards in your graveyard, search that player's graveyard, hand, and library for any number of cards with the same name as the exiled card, exile those cards, then that player shuffles their library.
|
||||
this.getSpellAbility().addEffect(new PickTheBrainEffect());
|
||||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private PickTheBrain(final PickTheBrain card) {
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@ import mage.constants.Zone;
|
|||
*/
|
||||
public final class Polygoyf extends CardImpl {
|
||||
|
||||
private static final DynamicValue powerValue = CardTypesInGraveyardCount.ALL;
|
||||
|
||||
public Polygoyf(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
|
||||
|
||||
|
|
@ -36,7 +34,9 @@ public final class Polygoyf extends CardImpl {
|
|||
this.addAbility(new MyriadAbility());
|
||||
|
||||
// Polygoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.ALL)
|
||||
).addHint(CardTypesInGraveyardCount.ALL.getHint()));
|
||||
}
|
||||
|
||||
private Polygoyf(final Polygoyf card) {
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ import mage.MageInt;
|
|||
import mage.abilities.Mode;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -58,7 +58,7 @@ class PropheticTitanTriggeredAbility extends EntersBattlefieldTriggeredAbility {
|
|||
"choose one. If there are four or more card types among cards in your graveyard, choose both instead."
|
||||
);
|
||||
this.addTarget(new TargetAnyTarget());
|
||||
this.addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@ public final class Pyrogoyf extends CardImpl {
|
|||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.LHURGOYF, "Lhurgoyf creature");
|
||||
|
||||
private static final DynamicValue powerValue = CardTypesInGraveyardCount.ALL;
|
||||
|
||||
public Pyrogoyf(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
this.subtype.add(SubType.LHURGOYF);
|
||||
|
|
@ -37,7 +35,9 @@ public final class Pyrogoyf extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Pyrogoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.ALL)
|
||||
).addHint(CardTypesInGraveyardCount.ALL.getHint()));
|
||||
|
||||
// Whenever Pyrogoyf or another Lhurgoyf creature you control enters, that creature deals damage equal to its power to any target.
|
||||
Ability ability = new EntersBattlefieldThisOrAnotherTriggeredAbility(
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ import mage.abilities.common.SimpleActivatedAbility;
|
|||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -45,7 +45,7 @@ public final class RavingVisionary extends CardImpl {
|
|||
new ManaCostsImpl<>("{2}{U}"), DeliriumCondition.instance
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardHint.YOU).setAbilityWord(AbilityWord.DELIRIUM));
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardCount.YOU.getHint()).setAbilityWord(AbilityWord.DELIRIUM));
|
||||
}
|
||||
|
||||
private RavingVisionary(final RavingVisionary card) {
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import mage.MageInt;
|
|||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -18,8 +18,6 @@ import mage.constants.Zone;
|
|||
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
*/
|
||||
|
|
@ -42,7 +40,7 @@ public final class ReaperOfFlightMoonsilver extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — Sacrifice another creature: Reaper of Flight Moonsilver gets +2/+1 until end of turn. "
|
||||
+ "Activate only if there are four or more card types among cards in your graveyard.")
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private ReaperOfFlightMoonsilver(final ReaperOfFlightMoonsilver card) {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldWithCounterEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
|
@ -31,7 +31,7 @@ public final class ResurrectedCultist extends CardImpl {
|
|||
Zone.GRAVEYARD,
|
||||
new ReturnSourceFromGraveyardToBattlefieldWithCounterEffect(CounterType.FINALITY.createInstance(), false),
|
||||
new ManaCostsImpl<>("{2}{B}{B}"), DeliriumCondition.instance, TimingRule.SORCERY
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private ResurrectedCultist(final ResurrectedCultist card) {
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ import java.util.UUID;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -25,7 +25,7 @@ public final class ScourTheLaboratory extends CardImpl {
|
|||
Ability ability = new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(2, DeliriumCondition.instance));
|
||||
ability.setRuleAtTheTop(true);
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Draw three cards.
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import mage.MageInt;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.DoubleStrikeAbility;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -15,7 +15,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
|
|
@ -35,7 +34,7 @@ public final class ScourgeWolf extends CardImpl {
|
|||
// <i>Delirium</i> — Scourge Wolf has double strike as long as there are four or more card types among cards in your graveyard.
|
||||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(DoubleStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
DeliriumCondition.instance, "<i>Delirium</i> — {this} has double strike as long as there are four or more card types among cards in your graveyard.");
|
||||
this.addAbility(new SimpleStaticAbility(effect).addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(new SimpleStaticAbility(effect).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private ScourgeWolf(final ScourgeWolf card) {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ import mage.abilities.condition.common.DeliriumCondition;
|
|||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
@ -42,7 +42,7 @@ public final class Scuttletide extends CardImpl {
|
|||
1, 1, Duration.WhileOnBattlefield, filter, false
|
||||
), DeliriumCondition.instance, "Crabs you control get +1/+1 as long " +
|
||||
"as there are four or more card types among cards in your graveyard"
|
||||
)).addHint(CardTypesInGraveyardHint.YOU).setAbilityWord(AbilityWord.DELIRIUM));
|
||||
)).addHint(CardTypesInGraveyardCount.YOU.getHint()).setAbilityWord(AbilityWord.DELIRIUM));
|
||||
}
|
||||
|
||||
private Scuttletide(final Scuttletide card) {
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import mage.abilities.condition.common.DeliriumCondition;
|
|||
import mage.abilities.condition.common.YouControlPermanentCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.mana.GreenManaAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -52,7 +52,7 @@ public final class ShiftingWoodland extends CardImpl {
|
|||
);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(1, filterCard));
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private ShiftingWoodland(final ShiftingWoodland card) {
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ package mage.cards.s;
|
|||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -35,7 +35,7 @@ public final class SoulSwallower extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — At the beginning of your upkeep, if there are four or more card types among cards in your graveyard, "
|
||||
+ "put three +1/+1 counters on Soul Swallower.")
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private SoulSwallower(final SoulSwallower card) {
|
||||
|
|
|
|||
|
|
@ -41,8 +41,9 @@ public final class SoulsOfTheLost extends CardImpl {
|
|||
));
|
||||
|
||||
// Fathomless descent -- Souls of the Lost's power is equal to the number of permanent cards in your graveyard and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(xValue))
|
||||
.setAbilityWord(AbilityWord.FATHOMLESS_DESCENT).addHint(DescendCondition.getHint()));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(xValue)
|
||||
).setAbilityWord(AbilityWord.FATHOMLESS_DESCENT).addHint(DescendCondition.getHint()));
|
||||
}
|
||||
|
||||
private SoulsOfTheLost(final SoulsOfTheLost card) {
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -48,7 +48,7 @@ public final class SpineseekerCentipede extends CardImpl {
|
|||
new GainAbilitySourceEffect(VigilanceAbility.getInstance()), DeliriumCondition.instance,
|
||||
"and has vigilance as long as there are four or more card types among cards in your graveyard"
|
||||
));
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardHint.YOU).setAbilityWord(AbilityWord.DELIRIUM));
|
||||
this.addAbility(ability.addHint(CardTypesInGraveyardCount.YOU.getHint()).setAbilityWord(AbilityWord.DELIRIUM));
|
||||
}
|
||||
|
||||
private SpineseekerCentipede(final SpineseekerCentipede card) {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import mage.MageInt;
|
|||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
|
@ -30,7 +30,7 @@ public final class StallionOfAshmouth extends CardImpl {
|
|||
Zone.BATTLEFIELD,
|
||||
new BoostSourceEffect(1, 1, Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{1}{B}"), DeliriumCondition.instance
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private StallionOfAshmouth(final StallionOfAshmouth card) {
|
||||
|
|
|
|||
|
|
@ -6,16 +6,15 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
|
@ -41,7 +40,7 @@ public final class StrangeAugmentation extends CardImpl {
|
|||
// <i>Delirium</i> &mdash Enchanted creature gets an additional +2/+2 as long as there are four or more card types among cards in your graveyard.
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(new BoostEnchantedEffect(2, 2), DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — Enchanted creature gets an additional +2/+2 as long as there are four or more card types among cards in your graveyard."))
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private StrangeAugmentation(final StrangeAugmentation card) {
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class Tarmogoyf extends CardImpl {
|
||||
|
||||
private static final DynamicValue powerValue = CardTypesInGraveyardCount.ALL;
|
||||
|
||||
public Tarmogoyf(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
this.subtype.add(SubType.LHURGOYF);
|
||||
|
|
@ -28,7 +26,9 @@ public final class Tarmogoyf extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Tarmogoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.ALL)
|
||||
).addHint(CardTypesInGraveyardCount.ALL.getHint()));
|
||||
}
|
||||
|
||||
private Tarmogoyf(final Tarmogoyf card) {
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.dynamicvalue.common.GetXValue;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.constants.*;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -34,7 +34,7 @@ public final class TheRollercrusherRide extends CardImpl {
|
|||
// it deals double that damage instead.
|
||||
this.addAbility(new SimpleStaticAbility(new TheRollercrusherRideEffect())
|
||||
.setAbilityWord(AbilityWord.DELIRIUM)
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
|
||||
// When The Rollercrusher Ride enters, it deals X damage to each of up to X target creatures.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(GetXValue.instance)
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -62,7 +62,7 @@ public final class TheSwarmweaver extends CardImpl {
|
|||
DeathtouchAbility.getInstance(), Duration.WhileOnBattlefield, filter2
|
||||
), DeliriumCondition.instance, "and have deathtouch"
|
||||
));
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private TheSwarmweaver(final TheSwarmweaver card) {
|
||||
|
|
|
|||
|
|
@ -7,16 +7,15 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
|
|
@ -35,7 +34,7 @@ public final class ThrabenFoulbloods extends CardImpl {
|
|||
Ability ability = new SimpleStaticAbility(effect);
|
||||
ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(new MenaceAbility()), DeliriumCondition.instance,
|
||||
"and has menace as long as there are four or more card types among cards in your graveyard. <i>(A creature with menace can't be blocked except by two or more creatures.)</i>"));
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import java.util.UUID;
|
|||
import mage.abilities.condition.InvertCondition;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.SacrificeEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -37,7 +37,7 @@ public final class ToTheSlaughter extends CardImpl {
|
|||
new SacrificeEffect(StaticFilters.FILTER_PERMANENT_PLANESWALKER, 1, "Target player"),
|
||||
DeliriumCondition.instance, "and a planeswalker."));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private ToTheSlaughter(final ToTheSlaughter card) {
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ import mage.abilities.TriggeredAbilityImpl;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -48,7 +48,7 @@ public final class ToothCollector extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — At the beginning of each opponent's upkeep, if there are four or more card types among cards in your graveyard, "
|
||||
+ "target creature that player controls gets -1/-1 until end of turn.");
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ import mage.abilities.TriggeredAbilityImpl;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.TapTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -50,7 +50,7 @@ public final class Topplegeist extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — At the beginning of each opponent's upkeep, if there are four or more card types among cards in your graveyard, "
|
||||
+ "tap target creature that player controls.");
|
||||
ability.addHint(CardTypesInGraveyardHint.YOU);
|
||||
ability.addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package mage.cards.t;
|
|||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package mage.cards.u;
|
|||
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -28,7 +28,7 @@ public final class UnholyHeat extends CardImpl {
|
|||
"if there are four or more card types among cards in your graveyard."
|
||||
));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private UnholyHeat(final UnholyHeat card) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
|
|||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.MillCardsControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessPlusOneSourceEffect;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -43,7 +44,9 @@ public final class UrborgLhurgoyf extends CardImpl {
|
|||
this.addAbility(new AsEntersBattlefieldAbility(new MillCardsControllerEffect(millValue)));
|
||||
|
||||
// Urborg Lhurgoyf's power is equal to the number of creature cards in your graveyard and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(powerValue)
|
||||
).addHint(new ValueHint("Creature cards in your graveyard", powerValue)));
|
||||
}
|
||||
|
||||
private UrborgLhurgoyf(final UrborgLhurgoyf card) {
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ package mage.cards.v;
|
|||
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.AddContinuousEffectToGame;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.DoubleStrikeAbility;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -40,7 +40,7 @@ public final class ViolentUrge extends CardImpl {
|
|||
DeliriumCondition.instance, AbilityWord.DELIRIUM.formatWord() + "If there are four or more " +
|
||||
"card types among cards in your graveyard, that creature gains double strike until end of turn"
|
||||
).concatBy("<br>"));
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private ViolentUrge(final ViolentUrge card) {
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import java.util.UUID;
|
|||
import mage.abilities.condition.InvertCondition;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.discard.DiscardTargetEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -32,7 +32,7 @@ public final class WhispersOfEmrakul extends CardImpl {
|
|||
DeliriumCondition.instance,
|
||||
"<br><i>Delirium</i> — If there are four or more card types among cards in your graveyard, that player discards two cards at random instead"));
|
||||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardHint.YOU);
|
||||
this.getSpellAbility().addHint(CardTypesInGraveyardCount.YOU.getHint());
|
||||
}
|
||||
|
||||
private WhispersOfEmrakul(final WhispersOfEmrakul card) {
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -34,7 +34,7 @@ public final class WickerfolkThresher extends CardImpl {
|
|||
DeliriumCondition.instance, "Whenever {this} attacks, if there are four or more card types " +
|
||||
"among cards in your graveyard, look at the top card of your library. If it's a land card, you may " +
|
||||
"put it onto the battlefield. If you don't put the card onto the battlefield, put it into your hand."
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
).setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private WickerfolkThresher(final WickerfolkThresher card) {
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.DeliriumCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -43,7 +43,7 @@ public final class WildfireWickerfolk extends CardImpl {
|
|||
new GainAbilitySourceEffect(TrampleAbility.getInstance()), DeliriumCondition.instance,
|
||||
"and has trample as long as there are four or more card types among cards in your graveyard"
|
||||
));
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardHint.YOU));
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.DELIRIUM).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private WildfireWickerfolk(final WildfireWickerfolk card) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.dynamicvalue.common.CardTypesInGraveyardCount;
|
||||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.common.DrawCardAllEffect;
|
||||
import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
||||
import mage.abilities.keyword.WardAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -43,7 +42,7 @@ public final class WinterMisanthropicGuide extends CardImpl {
|
|||
// Delirium -- As long as there are four or more card types among cards in your graveyard, each opponent's maximum hand size is equal to seven minus the number of those card types.
|
||||
this.addAbility(new SimpleStaticAbility(new WinterMisanthropicGuideEffect())
|
||||
.setAbilityWord(AbilityWord.DELIRIUM)
|
||||
.addHint(CardTypesInGraveyardHint.YOU));
|
||||
.addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private WinterMisanthropicGuide(final WinterMisanthropicGuide card) {
|
||||
|
|
|
|||
|
|
@ -3,14 +3,16 @@ package mage.abilities.dynamicvalue.common;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.cards.Card;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.PermanentToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
|
|
@ -20,16 +22,18 @@ public enum CardTypesInGraveyardCount implements DynamicValue {
|
|||
YOU("your graveyard"),
|
||||
ALL("all graveyards"),
|
||||
OPPONENTS("your opponents' graveyards");
|
||||
|
||||
private final String message;
|
||||
private final CardTypesInGraveyardHint hint;
|
||||
|
||||
CardTypesInGraveyardCount(String message) {
|
||||
this.message = "the number of card types among cards in " + message;
|
||||
this.hint = new CardTypesInGraveyardHint(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
return getStream(game, sourceAbility)
|
||||
.filter(card -> !card.isCopy() && !(card instanceof PermanentToken))
|
||||
return getGraveyardCards(game, sourceAbility)
|
||||
.map(card -> card.getCardType(game))
|
||||
.flatMap(Collection::stream)
|
||||
.distinct()
|
||||
|
|
@ -52,16 +56,16 @@ public enum CardTypesInGraveyardCount implements DynamicValue {
|
|||
return message;
|
||||
}
|
||||
|
||||
private final Stream<Card> getStream(Game game, Ability ability) {
|
||||
public Hint getHint() {
|
||||
return hint;
|
||||
}
|
||||
|
||||
public Stream<Card> getGraveyardCards(Game game, Ability ability) {
|
||||
Collection<UUID> playerIds;
|
||||
switch (this) {
|
||||
case YOU:
|
||||
Player player = game.getPlayer(ability.getControllerId());
|
||||
return player == null
|
||||
? null : player
|
||||
.getGraveyard()
|
||||
.getCards(game)
|
||||
.stream();
|
||||
playerIds = Collections.singletonList(ability.getControllerId());
|
||||
break;
|
||||
case OPPONENTS:
|
||||
playerIds = game.getOpponents(ability.getControllerId());
|
||||
break;
|
||||
|
|
@ -69,13 +73,47 @@ public enum CardTypesInGraveyardCount implements DynamicValue {
|
|||
playerIds = game.getState().getPlayersInRange(ability.getControllerId(), game);
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
throw new IllegalArgumentException("Wrong code usage: miss implementation for " + this);
|
||||
}
|
||||
return playerIds.stream()
|
||||
.map(game::getPlayer)
|
||||
.filter(Objects::nonNull)
|
||||
.map(Player::getGraveyard)
|
||||
.map(graveyard -> graveyard.getCards(game))
|
||||
.flatMap(Collection::stream);
|
||||
.flatMap(Collection::stream)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(card -> !card.isCopy() && !(card instanceof PermanentToken));
|
||||
}
|
||||
}
|
||||
|
||||
class CardTypesInGraveyardHint implements Hint {
|
||||
|
||||
CardTypesInGraveyardCount value;
|
||||
|
||||
CardTypesInGraveyardHint(CardTypesInGraveyardCount value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
private CardTypesInGraveyardHint(final CardTypesInGraveyardHint hint) {
|
||||
this.value = hint.value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(Game game, Ability ability) {
|
||||
Stream<Card> stream = this.value.getGraveyardCards(game, ability);
|
||||
List<String> types = stream
|
||||
.map(card -> card.getCardType(game))
|
||||
.flatMap(Collection::stream)
|
||||
.distinct()
|
||||
.map(CardType::toString)
|
||||
.sorted()
|
||||
.collect(Collectors.toList());
|
||||
return "Card types in " + this.value.getMessage() + ": " + types.size()
|
||||
+ (types.size() > 0 ? " (" + String.join(", ", types) + ')' : "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CardTypesInGraveyardHint copy() {
|
||||
return new CardTypesInGraveyardHint(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -52,7 +52,7 @@ public class ConditionTrueHint implements Hint {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Hint copy() {
|
||||
public ConditionTrueHint copy() {
|
||||
return new ConditionTrueHint(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class StaticHint implements Hint {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Hint copy() {
|
||||
public StaticHint copy() {
|
||||
return new StaticHint(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,79 +0,0 @@
|
|||
package mage.abilities.hint.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.cards.Card;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public enum CardTypesInGraveyardHint implements Hint {
|
||||
|
||||
YOU("your graveyard"),
|
||||
ALL("all graveyards"),
|
||||
OPPONENTS("your opponents' graveyards");
|
||||
private final String message;
|
||||
|
||||
CardTypesInGraveyardHint(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(Game game, Ability ability) {
|
||||
Stream<Card> stream = getStream(game, ability);
|
||||
if (stream == null) {
|
||||
return null;
|
||||
}
|
||||
List<String> types = stream
|
||||
.map(card -> card.getCardType(game))
|
||||
.flatMap(Collection::stream)
|
||||
.distinct()
|
||||
.map(CardType::toString)
|
||||
.sorted()
|
||||
.collect(Collectors.toList());
|
||||
return "Card types in " + this.message + ": " + types.size()
|
||||
+ (types.size() > 0 ? " (" + String.join(", ", types) + ')' : "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Hint copy() {
|
||||
return this;
|
||||
}
|
||||
|
||||
private final Stream<Card> getStream(Game game, Ability ability) {
|
||||
Collection<UUID> playerIds;
|
||||
switch (this) {
|
||||
case YOU:
|
||||
Player player = game.getPlayer(ability.getControllerId());
|
||||
return player == null
|
||||
? null : player
|
||||
.getGraveyard()
|
||||
.getCards(game)
|
||||
.stream();
|
||||
case OPPONENTS:
|
||||
playerIds = game.getOpponents(ability.getControllerId());
|
||||
break;
|
||||
case ALL:
|
||||
playerIds = game.getState().getPlayersInRange(ability.getControllerId(), game);
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
return playerIds.stream()
|
||||
.map(game::getPlayer)
|
||||
.filter(Objects::nonNull)
|
||||
.map(Player::getGraveyard)
|
||||
.map(graveyard -> graveyard.getCards(game))
|
||||
.flatMap(Collection::stream);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
package mage.abilities.hint.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CountersOnPermanentsCondition;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.abilities.condition.common.CountersOnPermanentsCondition;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
/**
|
||||
* A hint which keeps track of how many counters of a specific type there are
|
||||
* among some type of permanents
|
||||
*
|
||||
*
|
||||
* @author alexander-novo
|
||||
*/
|
||||
public class CountersOnPermanentsHint implements Hint {
|
||||
|
|
@ -23,6 +23,10 @@ public class CountersOnPermanentsHint implements Hint {
|
|||
// Which counter type to count
|
||||
public final CounterType counterType;
|
||||
|
||||
public CountersOnPermanentsHint(CountersOnPermanentsCondition condition) {
|
||||
this(condition.filter, condition.counterType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filter Which permanents to consider counters on
|
||||
* @param counterType Which counter type to count
|
||||
|
|
@ -32,12 +36,9 @@ public class CountersOnPermanentsHint implements Hint {
|
|||
this.counterType = counterType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy parameters from a {@link CountersOnPermanentsCondition}
|
||||
*/
|
||||
public CountersOnPermanentsHint(CountersOnPermanentsCondition condition) {
|
||||
this.filter = condition.filter;
|
||||
this.counterType = condition.counterType;
|
||||
public CountersOnPermanentsHint(final CountersOnPermanentsHint hint) {
|
||||
this.filter = hint.filter.copy();
|
||||
this.counterType = hint.counterType;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -56,7 +57,7 @@ public class CountersOnPermanentsHint implements Hint {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Hint copy() {
|
||||
return this;
|
||||
public CountersOnPermanentsHint copy() {
|
||||
return new CountersOnPermanentsHint(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ import mage.constants.Zone;
|
|||
*/
|
||||
public final class ConsumingBlobOozeToken extends TokenImpl {
|
||||
|
||||
private static final DynamicValue powerValue = CardTypesInGraveyardCount.YOU;
|
||||
|
||||
public ConsumingBlobOozeToken() {
|
||||
super("Ooze Token", "green Ooze creature token with \"This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
|
|
@ -26,7 +24,9 @@ public final class ConsumingBlobOozeToken extends TokenImpl {
|
|||
toughness = new MageInt(1);
|
||||
|
||||
// This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(powerValue)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.YOU)
|
||||
).addHint(CardTypesInGraveyardCount.YOU.getHint()));
|
||||
}
|
||||
|
||||
private ConsumingBlobOozeToken(final ConsumingBlobOozeToken token) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,9 @@ public final class TarmogoyfToken extends TokenImpl {
|
|||
toughness = new MageInt(1);
|
||||
|
||||
// Tarmogoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.ALL)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL,
|
||||
new SetBasePowerToughnessPlusOneSourceEffect(CardTypesInGraveyardCount.ALL)
|
||||
).addHint(CardTypesInGraveyardCount.ALL.getHint()));
|
||||
}
|
||||
|
||||
private TarmogoyfToken(final TarmogoyfToken token) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue