Cover non-universal type change effects that also say 'land'.

This commit is contained in:
Grath 2025-08-22 22:53:48 -04:00
parent c7f92a093b
commit 370ce47303
5 changed files with 10 additions and 11 deletions

View file

@ -3,12 +3,14 @@ package mage.cards.n;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureAllEffect; import mage.abilities.effects.common.continuous.BecomesCreatureAllEffect;
import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.DependencyType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledEnchantmentPermanent; import mage.filter.common.FilterControlledEnchantmentPermanent;
@ -37,12 +39,14 @@ public final class NaturalEmergence extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false)); this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// Lands you control are 2/2 creatures with first strike. They're still lands. // Lands you control are 2/2 creatures with first strike. They're still lands.
this.addAbility(new SimpleStaticAbility(new BecomesCreatureAllEffect( ContinuousEffect effect = new BecomesCreatureAllEffect(
new CreatureToken( new CreatureToken(
2, 2, "2/2 creatures with first strike" 2, 2, "2/2 creatures with first strike"
).withAbility(FirstStrikeAbility.getInstance()), "lands", ).withAbility(FirstStrikeAbility.getInstance()), "lands",
StaticFilters.FILTER_CONTROLLED_PERMANENT_LANDS, Duration.WhileOnBattlefield, false StaticFilters.FILTER_CONTROLLED_PERMANENT_LANDS, Duration.WhileOnBattlefield, false
))); );
effect.getDependedToTypes().add(DependencyType.BecomeNonbasicLand);
this.addAbility(new SimpleStaticAbility(effect));
} }
private NaturalEmergence(final NaturalEmergence card) { private NaturalEmergence(final NaturalEmergence card) {

View file

@ -50,6 +50,7 @@ class BecomesColorlessForestLandEffect extends ContinuousEffectImpl {
BecomesColorlessForestLandEffect() { BecomesColorlessForestLandEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment); super(Duration.WhileOnBattlefield, Outcome.Detriment);
this.staticText = "Enchanted permanent is a colorless Forest land"; this.staticText = "Enchanted permanent is a colorless Forest land";
dependencyTypes.add(DependencyType.BecomeNonbasicLand);
dependencyTypes.add(DependencyType.BecomeForest); dependencyTypes.add(DependencyType.BecomeForest);
} }

View file

@ -1,7 +1,6 @@
package mage.cards.u; package mage.cards.u;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.common.continuous.AddBasicLandTypeAllLandsEffect; import mage.abilities.effects.common.continuous.AddBasicLandTypeAllLandsEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
@ -19,9 +18,7 @@ public final class UrborgTombOfYawgmoth extends CardImpl {
this.supertype.add(SuperType.LEGENDARY); this.supertype.add(SuperType.LEGENDARY);
// Each land is a Swamp in addition to its other land types. // Each land is a Swamp in addition to its other land types.
ContinuousEffect effect = new AddBasicLandTypeAllLandsEffect(SubType.SWAMP); this.addAbility(new SimpleStaticAbility(new AddBasicLandTypeAllLandsEffect(SubType.SWAMP)));
effect.getDependedToTypes().add(DependencyType.BecomeNonbasicLand);
this.addAbility(new SimpleStaticAbility(effect));
} }
private UrborgTombOfYawgmoth(final UrborgTombOfYawgmoth card) { private UrborgTombOfYawgmoth(final UrborgTombOfYawgmoth card) {

View file

@ -1,12 +1,10 @@
package mage.cards.y; package mage.cards.y;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.common.continuous.AddBasicLandTypeAllLandsEffect; import mage.abilities.effects.common.continuous.AddBasicLandTypeAllLandsEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.DependencyType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.SuperType; import mage.constants.SuperType;
@ -23,9 +21,7 @@ public final class YavimayaCradleOfGrowth extends CardImpl {
this.supertype.add(SuperType.LEGENDARY); this.supertype.add(SuperType.LEGENDARY);
// Each land is a Forest in addition to its other land types. // Each land is a Forest in addition to its other land types.
ContinuousEffect effect = new AddBasicLandTypeAllLandsEffect(SubType.FOREST); this.addAbility(new SimpleStaticAbility(new AddBasicLandTypeAllLandsEffect(SubType.FOREST)));
effect.getDependedToTypes().add(DependencyType.BecomeNonbasicLand);
this.addAbility(new SimpleStaticAbility(effect));
} }
private YavimayaCradleOfGrowth(final YavimayaCradleOfGrowth card) { private YavimayaCradleOfGrowth(final YavimayaCradleOfGrowth card) {

View file

@ -20,6 +20,7 @@ public class AddBasicLandTypeAllLandsEffect extends ContinuousEffectImpl {
this.subType = subType; this.subType = subType;
this.staticText = "Each land is " + subType.getIndefiniteArticle() + " " this.staticText = "Each land is " + subType.getIndefiniteArticle() + " "
+ subType.getDescription() + " in addition to its other land types"; + subType.getDescription() + " in addition to its other land types";
this.dependendToTypes.add(DependencyType.BecomeNonbasicLand);
switch (subType) { switch (subType) {
case PLAINS: case PLAINS:
this.dependencyTypes.add(DependencyType.BecomePlains); this.dependencyTypes.add(DependencyType.BecomePlains);