[Mobile] Replace ManaCost Strings to show ManaCost Symbols

This commit is contained in:
Anthony Calosa
2020-10-11 14:13:53 +08:00
parent 56ad59da18
commit 35a4316261
2 changed files with 17 additions and 1 deletions

View File

@@ -13,10 +13,13 @@ import forge.assets.FSkinProp;
import forge.assets.IHasSkinProp;
import forge.assets.TextRenderer;
import forge.assets.FSkinColor.Colors;
import forge.card.CardFaceSymbols;
import forge.card.CardRenderer;
import forge.card.CardZoom;
import forge.card.CardRenderer.CardStackPosition;
import forge.card.CardZoom.ActivateHandler;
import forge.card.mana.ManaCost;
import forge.card.mana.ManaCostParser;
import forge.game.card.CardView;
import forge.game.card.IHasCardView;
import forge.game.player.PlayerView;
@@ -29,8 +32,11 @@ import forge.itemmanager.filters.ItemFilter;
import forge.screens.match.MatchController;
import forge.screens.match.views.VAvatar;
import forge.screens.match.views.VStack;
import forge.util.TextUtil;
import forge.util.Utils;
import static forge.card.CardRenderer.MANA_SYMBOL_SIZE;
public class FChoiceList<T> extends FList<T> implements ActivateHandler {
public static final FSkinColor ITEM_COLOR = FSkinColor.get(Colors.CLR_ZEBRA);
public static final FSkinColor ALT_ITEM_COLOR = ITEM_COLOR.getContrastColor(-20);
@@ -337,7 +343,17 @@ public class FChoiceList<T> extends FList<T> implements ActivateHandler {
@Override
public void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) {
g.drawText(getChoiceText(value), font, foreColor, x, y, w, h, allowDefaultItemWrap(), Align.left, true);
//update manacost text to draw symbols instead
if (value.toString().contains(" {")){
String[] values = value.toString().split(" ");
String cost = TextUtil.fastReplace(values[1],"}{", " ");
cost = TextUtil.fastReplace(TextUtil.fastReplace(cost,"{", ""),"}", "");
ManaCost manaCost = new ManaCost(new ManaCostParser(cost));
CardFaceSymbols.drawManaCost(g, manaCost, x + font.getBounds(values[0]+" ").width, y + (h - MANA_SYMBOL_SIZE) / 2, MANA_SYMBOL_SIZE);
g.drawText(values[0], font, foreColor, x, y, w, h, allowDefaultItemWrap(), Align.left, true);
} else {
g.drawText(getChoiceText(value), font, foreColor, x, y, w, h, allowDefaultItemWrap(), Align.left, true);
}
}
}
protected class NumberRenderer extends DefaultItemRenderer {

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB