From b569f89559e3b4c20d33f52922324026d0365952 Mon Sep 17 00:00:00 2001 From: spjspj Date: Sat, 23 Dec 2017 11:25:53 +1100 Subject: [PATCH] Fix for capital offense (UST) --- .../src/mage/cards/c/CapitalOffense.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Mage.Sets/src/mage/cards/c/CapitalOffense.java b/Mage.Sets/src/mage/cards/c/CapitalOffense.java index 07bc016c939..d6522a87965 100644 --- a/Mage.Sets/src/mage/cards/c/CapitalOffense.java +++ b/Mage.Sets/src/mage/cards/c/CapitalOffense.java @@ -27,16 +27,19 @@ */ package mage.cards.c; +import java.util.List; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.repository.CardInfo; import mage.constants.CardType; +import mage.cards.repository.CardRepository; import mage.constants.Duration; -import static mage.filter.predicate.permanent.ControllerControlsIslandPredicate.filter; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; @@ -78,18 +81,25 @@ class NumberOfCapitalsInTextOfTargetCreatureCount implements DynamicValue { Permanent permanent = game.getPermanent(sourceAbility.getTargets().get(0).getFirstTarget()); if (permanent != null) { int capitals = 0; - for (String line : permanent.getRules()) { - line = line.replaceAll("(?i)", ""); // Ignoring reminder text in italic - line = line.replaceAll("\\{this\\}", permanent.getName()); - capitals += line.length() - line.replaceAll("[A-Z]", "").length(); + List cards = CardRepository.instance.findCards(permanent.getName()); + + if (cards != null) { + for (CardInfo cardInfo : cards) { + Card dummy = cardInfo != null ? cardInfo.getCard() : null; + for (String line : dummy.getRules()) { + line = line.replaceAll("(?i)", ""); // Ignoring reminder text in italic + line = line.replaceAll("\\{this\\}", permanent.getName()); + capitals += line.length() - line.replaceAll("[A-Z]", "").length(); + } + return -1 * capitals; + } } - return -1 * capitals; } return 0; } @Override public String getMessage() { - return filter.getMessage() + " that player controls"; + return "target creature gets -x/-x until end of turn, where x is the number of times a capital letter appears in its rules text. (ignore reminder text and flavor text.)"; } }