[NEO] added hint to channel lands

This commit is contained in:
Evan Kranzler 2022-03-20 22:04:05 -04:00
parent 4863eb3170
commit b61125c0f3
6 changed files with 19 additions and 6 deletions

View file

@ -53,7 +53,7 @@ public final class BoseijuWhoEndures extends CardImpl {
Ability ability = new ChannelAbility("{1}{G}", new BoseijuWhoEnduresEffect()); Ability ability = new ChannelAbility("{1}{G}", new BoseijuWhoEnduresEffect());
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));
ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance); ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance);
this.addAbility(ability); this.addAbility(ability.addHint(LegendaryCreatureCostAdjuster.getHint()));
} }
private BoseijuWhoEndures(final BoseijuWhoEndures card) { private BoseijuWhoEndures(final BoseijuWhoEndures card) {

View file

@ -36,7 +36,7 @@ public final class EiganjoSeatOfTheEmpire extends CardImpl {
)); ));
ability.addTarget(new TargetAttackingOrBlockingCreature()); ability.addTarget(new TargetAttackingOrBlockingCreature());
ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance); ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance);
this.addAbility(ability); this.addAbility(ability.addHint(LegendaryCreatureCostAdjuster.getHint()));
} }
private EiganjoSeatOfTheEmpire(final EiganjoSeatOfTheEmpire card) { private EiganjoSeatOfTheEmpire(final EiganjoSeatOfTheEmpire card) {

View file

@ -46,7 +46,7 @@ public final class OtawaraSoaringCity extends CardImpl {
ability.addEffect(new InfoEffect("This ability costs {1} less to activate for each legendary creature you control")); ability.addEffect(new InfoEffect("This ability costs {1} less to activate for each legendary creature you control"));
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));
ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance); ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance);
this.addAbility(ability); this.addAbility(ability.addHint(LegendaryCreatureCostAdjuster.getHint()));
} }
private OtawaraSoaringCity(final OtawaraSoaringCity card) { private OtawaraSoaringCity(final OtawaraSoaringCity card) {

View file

@ -35,7 +35,7 @@ public final class SokenzanCrucibleOfDefiance extends CardImpl {
// Channel {3}{R}, Discard Sokenzan, Crucible of Defiance: Create two colorless 1/1 Spirit creature tokens. They gain haste until end of turn. This ability costs {1} less to activate for each legendary creature you control. // Channel {3}{R}, Discard Sokenzan, Crucible of Defiance: Create two colorless 1/1 Spirit creature tokens. They gain haste until end of turn. This ability costs {1} less to activate for each legendary creature you control.
Ability ability = new ChannelAbility("{3}{R}", new SokenzanCrucibleOfDefianceEffect()); Ability ability = new ChannelAbility("{3}{R}", new SokenzanCrucibleOfDefianceEffect());
ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance); ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance);
this.addAbility(ability); this.addAbility(ability.addHint(LegendaryCreatureCostAdjuster.getHint()));
} }
private SokenzanCrucibleOfDefiance(final SokenzanCrucibleOfDefiance card) { private SokenzanCrucibleOfDefiance(final SokenzanCrucibleOfDefiance card) {

View file

@ -36,7 +36,7 @@ public final class TakenumaAbandonedMire extends CardImpl {
// Channel {3}{B}, Discard Takenuma, Abandoned Mire: Mill three cards, then return a creature or planeswalker card from your graveyard to your hand. This ability costs {1} less to activate for each legendary creature you control. // Channel {3}{B}, Discard Takenuma, Abandoned Mire: Mill three cards, then return a creature or planeswalker card from your graveyard to your hand. This ability costs {1} less to activate for each legendary creature you control.
Ability ability = new ChannelAbility("{3}{B}", new TakenumaAbandonedMireEffect()); Ability ability = new ChannelAbility("{3}{B}", new TakenumaAbandonedMireEffect());
ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance); ability.setCostAdjuster(LegendaryCreatureCostAdjuster.instance);
this.addAbility(ability); this.addAbility(ability.addHint(LegendaryCreatureCostAdjuster.getHint()));
} }
private TakenumaAbandonedMire(final TakenumaAbandonedMire card) { private TakenumaAbandonedMire(final TakenumaAbandonedMire card) {

View file

@ -2,6 +2,9 @@ package mage.abilities.costs.costadjusters;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.costs.CostAdjuster; import mage.abilities.costs.CostAdjuster;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.constants.SuperType; import mage.constants.SuperType;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledCreaturePermanent;
@ -13,12 +16,18 @@ import mage.util.CardUtil;
*/ */
public enum LegendaryCreatureCostAdjuster implements CostAdjuster { public enum LegendaryCreatureCostAdjuster implements CostAdjuster {
instance; instance;
private static final FilterPermanent filter = new FilterControlledCreaturePermanent(); private static final FilterPermanent filter = new FilterControlledCreaturePermanent();
static { static {
filter.add(SuperType.LEGENDARY.getPredicate()); filter.add(SuperType.LEGENDARY.getPredicate());
} }
private static final Hint hint = new ValueHint(
"Legendary creatures you control",
new PermanentsOnBattlefieldCount(filter)
);
@Override @Override
public void adjustCosts(Ability ability, Game game) { public void adjustCosts(Ability ability, Game game) {
int count = game.getBattlefield().count( int count = game.getBattlefield().count(
@ -28,4 +37,8 @@ public enum LegendaryCreatureCostAdjuster implements CostAdjuster {
CardUtil.reduceCost(ability, count); CardUtil.reduceCost(ability, count);
} }
} }
}
public static Hint getHint() {
return hint;
}
}