From 4b511775db7fe2beedffa6dd3edd6090e4419945 Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Tue, 26 Jul 2022 10:12:32 -0400 Subject: [PATCH] Further optimization of BecomesAllBasicsControlledEffect by making static the basic mana abilities used for checking --- .../BecomesAllBasicsControlledEffect.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesAllBasicsControlledEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesAllBasicsControlledEffect.java index 3952a1ef9fd..b5991f27b3a 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesAllBasicsControlledEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesAllBasicsControlledEffect.java @@ -15,6 +15,14 @@ import java.util.List; * @author TheElk801 */ public class BecomesAllBasicsControlledEffect extends ContinuousEffectImpl { + // Used only for Permanent.containsRule() to check if the permanent has a basic mana ability that should be removed + private static final Ability[] basicManaAbilities = { + new WhiteManaAbility(), + new BlueManaAbility(), + new BlackManaAbility(), + new RedManaAbility(), + new GreenManaAbility() + }; public BecomesAllBasicsControlledEffect() { super(Duration.WhileOnBattlefield, Layer.TypeChangingEffects_4, SubLayer.NA, Outcome.Detriment); @@ -45,16 +53,8 @@ public class BecomesAllBasicsControlledEffect extends ContinuousEffectImpl { SubType.SWAMP, SubType.MOUNTAIN, SubType.FOREST); - // Optimization. - // Remove basic mana abilities since they are redundant with AnyColorManaAbility - // and keeping them will only produce too many combinations inside ManaOptions - Ability[] basicManaAbilities = new Ability[]{ - new WhiteManaAbility(), - new BlueManaAbility(), - new BlackManaAbility(), - new RedManaAbility(), - new GreenManaAbility() - }; + // Optimization: Remove basic mana abilities since they are redundant with AnyColorManaAbility + // and keeping them will only produce too many combinations inside ManaOptions for (Ability basicManaAbility : basicManaAbilities) { if (permanent.getAbilities(game).containsRule(basicManaAbility)) { permanent.removeAbility(basicManaAbility, source.getSourceId(), game);