From ead0141b5b69b0c83315d226759509cefe003559 Mon Sep 17 00:00:00 2001 From: igoudt <igoudt@bol.com> Date: Sun, 6 Aug 2017 22:58:20 +0200 Subject: [PATCH] fix spreading seas --- .../src/mage/cards/c/ContaminatedGround.java | 6 ++- Mage.Sets/src/mage/cards/e/EvilPresence.java | 6 ++- .../src/mage/cards/l/LingeringMirage.java | 6 ++- Mage.Sets/src/mage/cards/l/LushGrowth.java | 6 ++- Mage.Sets/src/mage/cards/s/SeasClaim.java | 6 ++- Mage.Sets/src/mage/cards/s/SpreadingSeas.java | 6 ++- Mage.Sets/src/mage/cards/t/TaintedWell.java | 6 ++- .../BecomesBasicLandEnchantedEffect.java | 39 ++++++++----------- 8 files changed, 45 insertions(+), 36 deletions(-) diff --git a/Mage.Sets/src/mage/cards/c/ContaminatedGround.java b/Mage.Sets/src/mage/cards/c/ContaminatedGround.java index ccd8555aec..7b7d6f289e 100644 --- a/Mage.Sets/src/mage/cards/c/ContaminatedGround.java +++ b/Mage.Sets/src/mage/cards/c/ContaminatedGround.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,10 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -61,7 +63,7 @@ public class ContaminatedGround extends CardImpl { this.addAbility(ability); // Enchanted land is a Swamp. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect("Swamp"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.SWAMP))); // Whenever enchanted land becomes tapped, its controller loses 2 life. this.addAbility(new BecomesTappedAttachedTriggeredAbility(new LoseLifeControllerAttachedEffect(2), "enchanted land")); diff --git a/Mage.Sets/src/mage/cards/e/EvilPresence.java b/Mage.Sets/src/mage/cards/e/EvilPresence.java index fa7317113b..c707000737 100644 --- a/Mage.Sets/src/mage/cards/e/EvilPresence.java +++ b/Mage.Sets/src/mage/cards/e/EvilPresence.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BecomesBasicLandEnchantedEffect; @@ -36,10 +35,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author North @@ -57,7 +59,7 @@ public class EvilPresence extends CardImpl { this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted land is a Swamp. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect("Swamp"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.SWAMP))); } public EvilPresence(final EvilPresence card) { diff --git a/Mage.Sets/src/mage/cards/l/LingeringMirage.java b/Mage.Sets/src/mage/cards/l/LingeringMirage.java index 5e87bf2d1d..6123b058aa 100644 --- a/Mage.Sets/src/mage/cards/l/LingeringMirage.java +++ b/Mage.Sets/src/mage/cards/l/LingeringMirage.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,10 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -61,7 +63,7 @@ public class LingeringMirage extends CardImpl { Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); // Enchanted land is an Island. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect("Island"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.ISLAND))); // Cycling {2} this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); } diff --git a/Mage.Sets/src/mage/cards/l/LushGrowth.java b/Mage.Sets/src/mage/cards/l/LushGrowth.java index 19428f6d23..3cfefb9d16 100644 --- a/Mage.Sets/src/mage/cards/l/LushGrowth.java +++ b/Mage.Sets/src/mage/cards/l/LushGrowth.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BecomesBasicLandEnchantedEffect; @@ -36,10 +35,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class LushGrowth extends CardImpl { this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted land is a Mountain, Forest, and Plains. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect("Mountain", "Forest", "Plains"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.MOUNTAIN, SubType.FOREST, SubType.PLAINS))); } public LushGrowth(final LushGrowth card) { diff --git a/Mage.Sets/src/mage/cards/s/SeasClaim.java b/Mage.Sets/src/mage/cards/s/SeasClaim.java index 8467c0d084..c6376262e7 100644 --- a/Mage.Sets/src/mage/cards/s/SeasClaim.java +++ b/Mage.Sets/src/mage/cards/s/SeasClaim.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,10 +36,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class SeasClaim extends CardImpl { Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); // Enchanted land is an Island. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect("Island"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.ISLAND))); } public SeasClaim(final SeasClaim card) { diff --git a/Mage.Sets/src/mage/cards/s/SpreadingSeas.java b/Mage.Sets/src/mage/cards/s/SpreadingSeas.java index a6dd8c65cf..3088c744c1 100644 --- a/Mage.Sets/src/mage/cards/s/SpreadingSeas.java +++ b/Mage.Sets/src/mage/cards/s/SpreadingSeas.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,10 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -65,7 +67,7 @@ public class SpreadingSeas extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false)); // Enchanted land is an Island. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect("Island"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.ISLAND))); } diff --git a/Mage.Sets/src/mage/cards/t/TaintedWell.java b/Mage.Sets/src/mage/cards/t/TaintedWell.java index 273740feb7..cac1aedf92 100644 --- a/Mage.Sets/src/mage/cards/t/TaintedWell.java +++ b/Mage.Sets/src/mage/cards/t/TaintedWell.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,10 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +65,7 @@ public class TaintedWell extends CardImpl { // When Tainted Well enters the battlefield, draw a card. this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false)); // Enchanted land is a Swamp. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect("Swamp"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.SWAMP))); } public TaintedWell(final TaintedWell card) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandEnchantedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandEnchantedEffect.java index 7218444c0f..a8007645ec 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandEnchantedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandEnchantedEffect.java @@ -30,24 +30,19 @@ package mage.abilities.effects.common.continuous; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.mana.*; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; public class BecomesBasicLandEnchantedEffect extends ContinuousEffectImpl { - protected final static ArrayList<String> allLandTypes = new ArrayList<>(); + protected List<SubType> landTypes = new ArrayList<>(); - - protected ArrayList<String> landTypes = new ArrayList<>(); - - public BecomesBasicLandEnchantedEffect(String... landNames) { + public BecomesBasicLandEnchantedEffect(SubType... landNames) { super(Duration.WhileOnBattlefield, Outcome.Detriment); landTypes.addAll(Arrays.asList(landNames)); this.staticText = setText(); @@ -77,30 +72,30 @@ public class BecomesBasicLandEnchantedEffect extends ContinuousEffectImpl { switch (layer) { case AbilityAddingRemovingEffects_6: permanent.removeAllAbilities(source.getSourceId(), game); - for (String landType : landTypes) { + for (SubType landType : landTypes) { switch (landType) { - case "Swamp": - if (permanent.getSubtype(game).contains("Swamp")) { // type can be removed by other effect with newer timestamp, so no ability adding + case SWAMP: + if (permanent.getSubtype(game).contains(SubType.SWAMP)) { // type can be removed by other effect with newer timestamp, so no ability adding permanent.addAbility(new BlackManaAbility(), source.getSourceId(), game); } break; - case "Mountain": - if (permanent.getSubtype(game).contains("Mountain")) { + case MOUNTAIN: + if (permanent.getSubtype(game).contains(SubType.MOUNTAIN)) { permanent.addAbility(new RedManaAbility(), source.getSourceId(), game); } break; - case "Forest": - if (permanent.getSubtype(game).contains("Forest")) { + case FOREST: + if (permanent.getSubtype(game).contains(SubType.FOREST)) { permanent.addAbility(new GreenManaAbility(), source.getSourceId(), game); } break; - case "Island": - if (permanent.getSubtype(game).contains("Island")) { + case ISLAND: + if (permanent.getSubtype(game).contains(SubType.ISLAND)) { permanent.addAbility(new BlueManaAbility(), source.getSourceId(), game); } break; - case "Plains": - if (permanent.getSubtype(game).contains("Plains")) { + case PLAINS: + if (permanent.getSubtype(game).contains(SubType.PLAINS)) { permanent.addAbility(new WhiteManaAbility(), source.getSourceId(), game); } break; @@ -109,7 +104,7 @@ public class BecomesBasicLandEnchantedEffect extends ContinuousEffectImpl { break; case TypeChangingEffects_4: // subtypes are all removed by changing the subtype to a land type. - permanent.getSubtype(game).removeAll(allLandTypes); + permanent.getSubtype(game).removeAll(SubType.getLandTypes(false)); permanent.getSubtype(game).addAll(landTypes); break; } @@ -127,7 +122,7 @@ public class BecomesBasicLandEnchantedEffect extends ContinuousEffectImpl { private String setText() { StringBuilder sb = new StringBuilder("Enchanted land is a "); int i = 1; - for (String landType : landTypes) { + for (SubType landType : landTypes) { if (i > 1) { if (i == landTypes.size()) { sb.append(" and ");