From 2ca792758015622ed5213bc3dd4199ce149d6ee7 Mon Sep 17 00:00:00 2001 From: igoudt Date: Tue, 8 Aug 2017 17:11:21 +0200 Subject: [PATCH] AddCardSubtypeAllEffect uses SubType enum --- Mage.Sets/src/mage/cards/b/BlanketOfNight.java | 10 ++++------ Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java | 2 +- .../common/continuous/AddCardSubtypeAllEffect.java | 5 ++--- .../java/mage/abilities/keyword/AuraSwapAbility.java | 2 +- .../java/mage/abilities/keyword/EmbalmAbility.java | 4 ++-- .../main/java/mage/game/permanent/PermanentImpl.java | 5 +++-- Mage/src/main/java/mage/util/SubTypeList.java | 12 ------------ 7 files changed, 13 insertions(+), 27 deletions(-) diff --git a/Mage.Sets/src/mage/cards/b/BlanketOfNight.java b/Mage.Sets/src/mage/cards/b/BlanketOfNight.java index edf5eda307a..bc64cdb9908 100644 --- a/Mage.Sets/src/mage/cards/b/BlanketOfNight.java +++ b/Mage.Sets/src/mage/cards/b/BlanketOfNight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.AddCardSubtypeAllEffect; @@ -35,13 +34,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.DependencyType; -import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.StaticFilters; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author Galatolol @@ -55,7 +53,7 @@ public class BlanketOfNight extends CardImpl { // Each land is a Swamp in addition to its other land types. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new BlackManaAbility(), Duration.WhileOnBattlefield, new FilterLandPermanent(), "Each land is a Swamp in addition to its other land types")); - ability.addEffect(new AddCardSubtypeAllEffect(StaticFilters.FILTER_LAND, "Swamp", DependencyType.BecomeSwamp)); + ability.addEffect(new AddCardSubtypeAllEffect(StaticFilters.FILTER_LAND, SubType.SWAMP, DependencyType.BecomeSwamp)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java b/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java index 377e48a59c1..8b0e0604135 100644 --- a/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java +++ b/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java @@ -52,7 +52,7 @@ public class UrborgTombOfYawgmoth extends CardImpl { // Each land is a Swamp in addition to its other land types. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new BlackManaAbility(), Duration.WhileOnBattlefield, new FilterLandPermanent(), "Each land is a Swamp in addition to its other land types")); - ability.addEffect(new AddCardSubtypeAllEffect(new FilterLandPermanent(), "Swamp", DependencyType.BecomeSwamp)); + ability.addEffect(new AddCardSubtypeAllEffect(new FilterLandPermanent(), SubType.SWAMP, DependencyType.BecomeSwamp)); this.addAbility(ability); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubtypeAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubtypeAllEffect.java index d47f92f5cc9..e4ca7328352 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubtypeAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubtypeAllEffect.java @@ -32,7 +32,6 @@ import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; import mage.constants.*; import mage.filter.FilterPermanent; -import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -43,9 +42,9 @@ import mage.game.permanent.Permanent; public class AddCardSubtypeAllEffect extends ContinuousEffectImpl { private static FilterPermanent filter; - private static String addedSubtype; + private static SubType addedSubtype; - public AddCardSubtypeAllEffect(FilterPermanent _filter, String _addedSubtype, DependencyType _dependency) { + public AddCardSubtypeAllEffect(FilterPermanent _filter, SubType _addedSubtype, DependencyType _dependency) { super(Duration.WhileOnBattlefield, Layer.TypeChangingEffects_4, SubLayer.NA, Outcome.Benefit); filter = _filter; staticText = ""; diff --git a/Mage/src/main/java/mage/abilities/keyword/AuraSwapAbility.java b/Mage/src/main/java/mage/abilities/keyword/AuraSwapAbility.java index 5818ddcf40e..c623bc59666 100644 --- a/Mage/src/main/java/mage/abilities/keyword/AuraSwapAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/AuraSwapAbility.java @@ -94,7 +94,7 @@ class AuraSwapEffect extends OneShotEffect { if (controller != null) { Permanent auraSourcePermanent = game.getPermanent(source.getSourceId()); if (auraSourcePermanent != null - && auraSourcePermanent.getSubtype(game).contains("Aura") + && auraSourcePermanent.getSubtype(game).contains(SubType.AURA) && auraSourcePermanent.getOwnerId().equals(source.getControllerId())) { Permanent enchantedPermanent = game.getPermanent(auraSourcePermanent.getAttachedTo()); filterCardToCheck.add(new AuraCardCanAttachToPermanentId(enchantedPermanent.getId())); diff --git a/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java b/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java index f075acca4a7..2e54362a8d1 100644 --- a/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java @@ -110,8 +110,8 @@ class EmbalmEffect extends OneShotEffect { EmptyToken token = new EmptyToken(); CardUtil.copyTo(token).from(card); // needed so that entersBattlefied triggered abilities see the attributes (e.g. Master Biomancer) token.getColor(game).setColor(ObjectColor.WHITE); - if (!token.getSubtype(game).contains("Zombie")) { - token.getSubtype(game).add(0, "Zombie"); + if (!token.getSubtype(game).contains(SubType.ZOMBIE)) { + token.getSubtype(game).add(0, SubType.ZOMBIE); } token.getManaCost().clear(); game.fireEvent(GameEvent.getEvent(GameEvent.EventType.EMBALMED_CREATURE, token.getId(), source.getSourceId(), controller.getId())); diff --git a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java index f6c67594c07..e145144f62b 100644 --- a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java @@ -27,7 +27,6 @@ */ package mage.game.permanent; -import java.util.*; import mage.MageObject; import mage.MageObjectReference; import mage.ObjectColor; @@ -56,6 +55,8 @@ import mage.players.Player; import mage.util.GameLog; import mage.util.ThreadLocalStringBuilder; +import java.util.*; + /** * @author BetaSteward_at_googlemail.com */ @@ -925,7 +926,7 @@ public abstract class PermanentImpl extends CardImpl implements Permanent { @Override public boolean cantBeAttachedBy(MageObject source, Game game) { for (ProtectionAbility ability : this.getAbilities(game).getProtectionAbilities()) { - if (!(source.getSubtype(game).contains("Aura") + if (!(source.getSubtype(game).contains(SubType.AURA) && !ability.removesAuras()) && !source.getId().equals(ability.getAuraIdNotToBeRemoved()) && !ability.canTarget(source, game)) { diff --git a/Mage/src/main/java/mage/util/SubTypeList.java b/Mage/src/main/java/mage/util/SubTypeList.java index e434b957159..71d920983df 100644 --- a/Mage/src/main/java/mage/util/SubTypeList.java +++ b/Mage/src/main/java/mage/util/SubTypeList.java @@ -9,15 +9,6 @@ import java.util.stream.Collectors; public class SubTypeList extends ArrayList { - - public void add(int index, String s) { - add(index, SubType.byDescription(s)); - } - - public void add(int index, SubType s) { - super.add(index, s); - } - public boolean addAll(List subtypes) { return addAll(subtypes.stream().map(SubType::byDescription).collect(Collectors.toList())); } @@ -26,9 +17,6 @@ public class SubTypeList extends ArrayList { return removeAll(subtypes.stream().map(SubType::byDescription).collect(Collectors.toList())); } - public boolean add(SubType s) { - return super.add(s); - } public boolean add(SubType... subTypes) { return Collections.addAll(this, subTypes);