From 6ebfe78090e44982fb712bc4acf01b2b60581231 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 18 Jun 2021 20:52:33 -0400 Subject: [PATCH] updated protection ability rules generation --- .../mage/abilities/keyword/ProtectionAbility.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java b/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java index 586ca686255..8eea3db229e 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java @@ -13,10 +13,12 @@ import mage.game.permanent.Permanent; import mage.game.stack.Spell; import mage.game.stack.StackObject; import mage.players.Player; +import mage.util.CardUtil; import java.util.ArrayList; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; /** * @author BetaSteward_at_googlemail.com @@ -49,7 +51,7 @@ public class ProtectionAbility extends StaticAbility { } public static ProtectionAbility from(ObjectColor color) { - FilterObject filter = new FilterObject(color.getDescription()); + FilterObject filter = new FilterObject(getFilterText(color)); filter.add(new ColorPredicate(color)); colors.add(color); return new ProtectionAbility(filter); @@ -70,7 +72,6 @@ public class ProtectionAbility extends StaticAbility { @Override public String getRule() { - return "protection from " + filter.getMessage() + (removeAuras ? "" : ". This effect doesn't remove auras."); } @@ -128,6 +129,16 @@ public class ProtectionAbility extends StaticAbility { return true; } + private static final String getFilterText(ObjectColor color) { + return CardUtil.concatWithAnd( + color.getColors() + .stream() + .map(ObjectColor::getDescription) + .map(s -> "from " + s) + .collect(Collectors.toList()) + ).replaceFirst("from ", ""); + } + public Filter getFilter() { return filter; }