forked from External/mage
Add additional ability icons (#10549)
* Slightly revamped basic card icons All icon classes which were just static text have been removed, and instead replaced with a static instance. A new icon for reach has been added Some icons have been reused for new abilities (hexproof for shroud and ward, infect for toxic) When a card would have two icons of the same type, the icons are instead combines into one with a combined hover tooltip. * Fixed missing capitalization on ward, hexproof
This commit is contained in:
parent
9e63858db6
commit
fae63d9d4b
42 changed files with 167 additions and 522 deletions
|
|
@ -175,7 +175,32 @@ public class CardIconsPanel extends JPanel {
|
|||
this.removeAll();
|
||||
if (newIcons != null) {
|
||||
this.icons.clear();
|
||||
this.icons.addAll(newIcons);
|
||||
TreeMap<CardIconType, List<CardIcon>> cardIconMap = new TreeMap<>();
|
||||
newIcons.forEach(icon -> cardIconMap.computeIfAbsent(icon.getIconType(), k -> new ArrayList<>()).add(icon));
|
||||
|
||||
for (Map.Entry<CardIconType, List<CardIcon>> entry : cardIconMap.entrySet()) {
|
||||
List<CardIcon> combined = entry.getValue()
|
||||
.stream()
|
||||
.filter(icon -> icon != null && icon.canBeCombined())
|
||||
.sorted(CardIconComparator.instance)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (combined.size() > 1) {
|
||||
entry.getValue().removeAll(combined);
|
||||
|
||||
String combinedHint = combined.stream()
|
||||
.map(CardIcon::getCombinedInfo)
|
||||
.collect(Collectors.joining("<br>"));
|
||||
|
||||
CardIcon combinedIcon = new CardIconImpl(entry.getKey(), combinedHint);
|
||||
|
||||
this.icons.add(combinedIcon);
|
||||
this.icons.addAll(entry.getValue());
|
||||
} else {
|
||||
this.icons.addAll(entry.getValue());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// auto-hide panel on empty icons
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue