mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 13:02:06 -08:00
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
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package org.mage.card.arcane;
|
||||
|
||||
import mage.abilities.icon.CardIconColor;
|
||||
import mage.abilities.icon.abilities.FlyingAbilityIcon;
|
||||
import mage.abilities.icon.CardIconImpl;
|
||||
import mage.utils.StreamUtils;
|
||||
import org.apache.batik.anim.dom.SVGDOMImplementation;
|
||||
import org.apache.batik.transcoder.TranscoderInput;
|
||||
|
|
@ -217,7 +217,8 @@ public class SvgUtils {
|
|||
public static boolean checkSvgSupport() {
|
||||
// usa sample icon for svg support testing
|
||||
// direct call, no needs in cache
|
||||
BufferedImage sampleImage = ImageManagerImpl.instance.getCardIcon(FlyingAbilityIcon.instance.getIconType().getResourceName(), 32, CardIconColor.DEFAULT);
|
||||
BufferedImage sampleImage = ImageManagerImpl.instance
|
||||
.getCardIcon(CardIconImpl.ABILITY_FLYING.getIconType().getResourceName(), 32, CardIconColor.DEFAULT);
|
||||
haveSvgSupport = (sampleImage != null && sampleImage.getWidth() > 0);
|
||||
if (!haveSvgSupport) {
|
||||
logger.warn("WARNING, your system doesn't support svg images, so card icons will be disabled. Please, make a bug report in the github.");
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 384 512"> <!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
|
||||
<path d="M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 719 B |
|
|
@ -0,0 +1,3 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 384 512"> <!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
|
||||
<path d="M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 719 B |
Loading…
Add table
Add a link
Reference in a new issue