Merge pull request #9008 from Grath/grath/refactor-hondens-with-hints

Add hints to Go-Shintai of Boundless Vigor and all five Hondens.
This commit is contained in:
Oleg Agafonov 2022-05-27 09:45:49 +04:00 committed by GitHub
commit 062e38a08f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 45 additions and 31 deletions

View file

@ -8,6 +8,8 @@ import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -31,6 +33,7 @@ public final class GoShintaiOfBoundlessVigor extends CardImpl {
= new FilterPermanent(SubType.SHRINE, "Shrine");
private static final DynamicValue xValue
= new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.SHRINE));
private static final Hint hint = new ValueHint("Shrines you control", xValue);
public GoShintaiOfBoundlessVigor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{G}");
@ -52,7 +55,7 @@ public final class GoShintaiOfBoundlessVigor extends CardImpl {
ability.addTarget(new TargetPermanent(filter));
this.addAbility(new BeginningOfEndStepTriggeredAbility(new DoWhenCostPaid(
ability, new GenericManaCost(1), "Pay {1}?"
), TargetController.YOU, false));
), TargetController.YOU, false).addHint(hint));
}
private GoShintaiOfBoundlessVigor(final GoShintaiOfBoundlessVigor card) {

View file

@ -3,8 +3,12 @@
package mage.cards.h;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.MultipliedValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -20,11 +24,10 @@ import java.util.UUID;
*/
public final class HondenOfCleansingFire extends CardImpl {
static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine");
static {
filter.add(SubType.SHRINE.getPredicate());
}
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(
new FilterControlledPermanent(SubType.SHRINE)
);
private static final Hint hint = new ValueHint("Shrines you control", xValue);
public HondenOfCleansingFire(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}");
@ -33,7 +36,7 @@ public final class HondenOfCleansingFire extends CardImpl {
// At the beginning of your upkeep, you gain 2 life for each Shrine you control.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new GainLifeEffect(new PermanentsOnBattlefieldCount(filter, 2)), TargetController.YOU, false));
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new GainLifeEffect(new MultipliedValue(xValue, 2)), TargetController.YOU, false).addHint(hint));
}
private HondenOfCleansingFire(final HondenOfCleansingFire card) {

View file

@ -3,8 +3,11 @@ package mage.cards.h;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -20,11 +23,10 @@ import mage.target.common.TargetAnyTarget;
*/
public final class HondenOfInfiniteRage extends CardImpl {
static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine you control");
static {
filter.add(SubType.SHRINE.getPredicate());
}
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(
new FilterControlledPermanent(SubType.SHRINE)
);
private static final Hint hint = new ValueHint("Shrines you control", xValue);
public HondenOfInfiniteRage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}");
@ -32,7 +34,7 @@ public final class HondenOfInfiniteRage extends CardImpl {
this.subtype.add(SubType.SHRINE);
// At the beginning of your upkeep, Honden of Infinite Rage deals damage to any target equal to the number of Shrines you control.
Ability ability = new BeginningOfUpkeepTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)), TargetController.YOU, false);
Ability ability = new BeginningOfUpkeepTriggeredAbility(new DamageTargetEffect(xValue), TargetController.YOU, false).addHint(hint);
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
}

View file

@ -3,8 +3,11 @@
package mage.cards.h;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -21,18 +24,17 @@ import java.util.UUID;
*/
public final class HondenOfLifesWeb extends CardImpl {
static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine");
static {
filter.add(SubType.SHRINE.getPredicate());
}
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(
new FilterControlledPermanent(SubType.SHRINE)
);
private static final Hint hint = new ValueHint("Shrines you control", xValue);
public HondenOfLifesWeb(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{G}");
addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.SHRINE);
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new SpiritToken(), new PermanentsOnBattlefieldCount(filter)), TargetController.YOU, false));
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new SpiritToken(), xValue), TargetController.YOU, false).addHint(hint));
}
private HondenOfLifesWeb(final HondenOfLifesWeb card) {

View file

@ -3,8 +3,11 @@ package mage.cards.h;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -19,11 +22,10 @@ import mage.target.common.TargetOpponent;
*/
public final class HondenOfNightsReach extends CardImpl {
static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine you control");
static {
filter.add(SubType.SHRINE.getPredicate());
}
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(
new FilterControlledPermanent(SubType.SHRINE)
);
private static final Hint hint = new ValueHint("Shrines you control", xValue);
public HondenOfNightsReach(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}");
@ -31,7 +33,7 @@ public final class HondenOfNightsReach extends CardImpl {
this.subtype.add(SubType.SHRINE);
// At the beginning of your upkeep, target opponent discards a card for each Shrine you control.
Ability ability = new BeginningOfUpkeepTriggeredAbility(new DiscardTargetEffect(new PermanentsOnBattlefieldCount(filter)), TargetController.YOU, false);
Ability ability = new BeginningOfUpkeepTriggeredAbility(new DiscardTargetEffect(xValue), TargetController.YOU, false).addHint(hint);
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
}

View file

@ -3,8 +3,11 @@
package mage.cards.h;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -20,11 +23,10 @@ import java.util.UUID;
*/
public final class HondenOfSeeingWinds extends CardImpl {
static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine");
static {
filter.add(SubType.SHRINE.getPredicate());
}
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(
new FilterControlledPermanent(SubType.SHRINE)
);
private static final Hint hint = new ValueHint("Shrines you control", xValue);
public HondenOfSeeingWinds(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{U}");
@ -33,7 +35,7 @@ public final class HondenOfSeeingWinds extends CardImpl {
// At the beginning of your upkeep, draw a card for each Shrine you control.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)), TargetController.YOU, false));
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(xValue), TargetController.YOU, false).addHint(hint));
}
private HondenOfSeeingWinds(final HondenOfSeeingWinds card) {