mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
Capital Offense - fixed wrong card text, improved performance
This commit is contained in:
parent
5f15e962da
commit
66d132776e
1 changed files with 32 additions and 15 deletions
|
|
@ -16,7 +16,9 @@ import mage.game.permanent.Permanent;
|
|||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author spjspj
|
||||
|
|
@ -43,6 +45,22 @@ public final class CapitalOffense extends CardImpl {
|
|||
public CapitalOffense copy() {
|
||||
return new CapitalOffense(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRules() {
|
||||
return prepareLowerCaseRules(super.getRules());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRules(Game game) {
|
||||
return prepareLowerCaseRules(super.getRules(game));
|
||||
}
|
||||
|
||||
private List<String> prepareLowerCaseRules(List<String> rules) {
|
||||
return rules.stream()
|
||||
.map(s -> s.toLowerCase(Locale.ENGLISH))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
enum capitaloffensecount implements DynamicValue {
|
||||
|
|
@ -59,25 +77,24 @@ enum capitaloffensecount implements DynamicValue {
|
|||
if (permanent == null) {
|
||||
return 0;
|
||||
}
|
||||
int capitals = 0;
|
||||
List<CardInfo> cards = CardRepository.instance.findCards(permanent.getName());
|
||||
|
||||
if (cards == null) {
|
||||
List<CardInfo> cardsInfo = CardRepository.instance.findCards(permanent.getName(), 1);
|
||||
if (cardsInfo.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
for (CardInfo cardInfo : cards) {
|
||||
Card dummy = cardInfo != null ? cardInfo.getCard() : null;
|
||||
if (dummy == null) {
|
||||
return -1 * capitals;
|
||||
}
|
||||
for (String line : dummy.getRules()) {
|
||||
line = line.replaceAll("(?i)<i.*?</i>", ""); // Ignoring reminder text in italic
|
||||
line = line.replaceAll("\\{this\\}", permanent.getName());
|
||||
capitals += line.length() - line.replaceAll("[A-Z]", "").length();
|
||||
}
|
||||
return -1 * capitals;
|
||||
|
||||
Card card = cardsInfo.get(0).getCard();
|
||||
if (card == null) {
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
|
||||
String originalRules = card.getRules(game)
|
||||
.stream()
|
||||
.map(r -> r.replaceAll("(?i)<i.*?</i>", ""))
|
||||
.map(r -> r.replaceAll("\\{this\\}", permanent.getName()))
|
||||
.collect(Collectors.joining("; "));
|
||||
String nonCapitalRules = originalRules.replaceAll("[A-Z]", "");
|
||||
return -1 * (originalRules.length() - nonCapitalRules.length());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue