Add CJK font setting and dowloader for mobile port

This commit is contained in:
Lyu Zong-Hong
2021-03-05 20:25:07 +09:00
parent e175ad2d65
commit 9ae07284d8
12 changed files with 160 additions and 3 deletions

View File

@@ -18,7 +18,9 @@ import com.badlogic.gdx.utils.Array;
import forge.FThreads;
import forge.Forge;
import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.properties.ForgePreferences.FPref;
import forge.util.FileUtil;
import forge.util.LineReader;
import forge.util.TextBounds;
@@ -28,8 +30,10 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -376,7 +380,11 @@ public class FSkinFont {
return;
}
String locale = FModel.getPreferences().getPref(FPref.UI_LANGUAGE);
String fontName = "f" + fontSize;
if (locale.equals("zh-CN") || locale.equals("ja-JP")) {
fontName += locale;
}
FileHandle fontFile = Gdx.files.absolute(ForgeConstants.FONTS_DIR + fontName + ".fnt");
if (fontFile != null && fontFile.exists()) {
final BitmapFontData data = new BitmapFontData(fontFile, false);
@@ -387,7 +395,15 @@ public class FSkinFont {
}
});
} else {
generateFont(FSkin.getSkinFile(TTF_FILE), fontName, fontSize);
if (locale.equals("zh-CN") || locale.equals("ja-JP")) {
String ttfName = FModel.getPreferences().getPref(FPref.UI_CJK_FONT);
FileHandle ttfFile = Gdx.files.absolute(ForgeConstants.FONTS_DIR + ttfName + ".ttf");
if (ttfFile != null && ttfFile.exists()) {
generateFont(ttfFile, fontName, fontSize);
}
} else {
generateFont(FSkin.getSkinFile(TTF_FILE), fontName, fontSize);
}
}
}
@@ -448,4 +464,18 @@ public class FSkinFont {
}
});
}
public static Iterable<String> getAllCJKFonts() {
final List<String> allCJKFonts = new ArrayList<>();
allCJKFonts.add("None");
final FileHandle dir = Gdx.files.absolute(ForgeConstants.FONTS_DIR);
for (FileHandle fontFile : dir.list()) {
String fontName = fontFile.name();
if (!fontName.endsWith(".ttf")) { continue; }
allCJKFonts.add(fontName.replace(".ttf", ""));
}
return allCJKFonts;
}
}

View File

@@ -1,5 +1,10 @@
package forge.screens.settings;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.Forge;
import forge.download.GuiDownloadAchievementImages;
import forge.download.GuiDownloadPicturesLQ;
@@ -7,8 +12,10 @@ import forge.download.GuiDownloadPrices;
import forge.download.GuiDownloadQuestImages;
import forge.download.GuiDownloadSetPicturesLQ;
import forge.download.GuiDownloadService;
import forge.download.GuiDownloadSkins;
import forge.download.GuiDownloadZipService;
import forge.properties.ForgeConstants;
import forge.util.FileUtil;
import forge.util.Localizer;
import org.apache.commons.lang3.StringUtils;
@@ -26,6 +33,7 @@ import forge.toolbox.FFileChooser.ChoiceType;
import forge.toolbox.FGroupList;
import forge.toolbox.FList;
import forge.toolbox.FOptionPane;
import forge.toolbox.GuiChoose;
import forge.util.Callback;
public class FilesPage extends TabPage<SettingsScreen> {
@@ -84,6 +92,27 @@ public class FilesPage extends TabPage<SettingsScreen> {
return new GuiDownloadSkins();
}
}, 0);
lstItems.addItem(new OptionContentDownloader(localizer.getMessage("btnDownloadCJKFonts"),
localizer.getMessage("lblDownloadCJKFonts"),
localizer.getMessage("lblDownloadCJKFontPrompt")) {
@Override
protected Map<String, String> getCategories() {
// read CJK font list
Map<String, String> categories = new TreeMap<>();
List<String> lines = FileUtil.readFile(ForgeConstants.CJK_FONTS_LIST_FILE);
List<String> options = new ArrayList<>();
for (String line : lines) {
int idx = line.indexOf('|');
if (idx != -1) {
String name = line.substring(0, idx).trim();
String url = line.substring(idx + 1).trim();
categories.put(name, url);
options.add(name);
}
}
return categories;
}
}, 0);
//storage locations
final StorageOption cardPicsOption = new StorageOption(localizer.getMessage("lblCardPicsLocation"), ForgeProfileProperties.getCardPicsDir()) {
@Override
@@ -177,6 +206,29 @@ public class FilesPage extends TabPage<SettingsScreen> {
protected abstract GuiDownloadService createService();
}
private abstract class OptionContentDownloader extends FilesItem {
private final String prompt;
OptionContentDownloader(String label0, String description0, String propmt0) {
super(label0, description0);
prompt = propmt0;
}
@Override
public void select() {
final Map<String, String> categories = getCategories();
GuiChoose.one(prompt, categories.keySet(), new Callback<String>() {
@Override
public void run(String result) {
final String url = categories.get(result);
final String name = url.substring(url.lastIndexOf("/") + 1);
new GuiDownloader(new GuiDownloadZipService(name, name, url, ForgeConstants.FONTS_DIR, null, null)).show();
}
});
}
protected abstract Map<String, String> getCategories();
}
private abstract class StorageOption extends FilesItem {
StorageOption(String name0, String dir0) {
super(name0, dir0);

View File

@@ -60,7 +60,28 @@ public class SettingsPage extends TabPage<SettingsScreen> {
FLanguage.getAllLanguages()) {
@Override
public void valueChanged(String newValue) {
// if the new locale needs to use CJK font, disallow change if UI_CJK_FONT is not set yet
ForgePreferences prefs = FModel.getPreferences();
if (prefs.getPref(FPref.UI_CJK_FONT).equals("") &&
(newValue.equals("zh-CN") || newValue.equals("ja-JP"))) {
String message = "Please download CJK font (from \"Files\"), and set it before change language.";
if (newValue.equals("ja-JP")) {
message += "\nJapanese please use \"ipaexg\".";
}
FOptionPane.showMessageDialog(message, "Please set CJK Font");
return;
}
FLanguage.changeLanguage(newValue);
FOptionPane.showConfirmDialog(localizer.getMessage("lblRestartForgeDescription"), localizer.getMessage("lblRestartForge"), localizer.getMessage("lblRestart"), localizer.getMessage("lblLater"), new Callback<Boolean>() {
@Override
public void run(Boolean result) {
if (result) {
Forge.restart(true);
}
}
});
}
}, 0);
lstSettings.addItem(new CustomSelectSetting(FPref.UI_SKIN, localizer.getMessage("lblTheme"),
@@ -71,6 +92,26 @@ public class SettingsPage extends TabPage<SettingsScreen> {
FSkin.changeSkin(newValue);
}
}, 0);
lstSettings.addItem(new CustomSelectSetting(FPref.UI_CJK_FONT, localizer.getMessage("lblCJKFont"),
localizer.getMessage("nlCJKFont"),
FSkinFont.getAllCJKFonts()) {
@Override
public void valueChanged(String newValue) {
ForgePreferences prefs = FModel.getPreferences();
if (newValue.equals("None")) {
// If locale needs to use CJK fonts, disallow change to None
String locale = prefs.getPref(FPref.UI_LANGUAGE);
if (locale.equals("zh-CN") || locale.equals("ja-JP")) {
return;
}
newValue = "";
}
if (newValue.equals(prefs.getPref(FPref.UI_CJK_FONT))) {
return;
}
super.valueChanged(newValue);
}
}, 0);
lstSettings.addItem(new BooleanSetting(FPref.UI_LANDSCAPE_MODE,
localizer.getMessage("lblLandscapeMode"),
localizer.getMessage("nlLandscapeMode")) {
@@ -592,10 +633,10 @@ public class SettingsPage extends TabPage<SettingsScreen> {
lstOptions.setListItemRenderer(new FList.DefaultListItemRenderer<String>() {
@Override
public boolean tap(Integer index, String value, float x, float y, int count) {
Forge.back();
if (!value.equals(currentValue)) {
valueChanged(value);
}
Forge.back();
return true;
}

View File

@@ -207,6 +207,7 @@ btnImportPictures=Daten importieren
btnHowToPlay=Wie man spielt
btnDownloadPrices=Kartenpreise herunterladen
btnDownloadSkins=Skins herunterladen
btnDownloadCJKFonts=Download CJK Fonts
btnLicensing=Lizenzhinweis
lblCheckForUpdates=Prüfe Server auf eine aktuellere Version
lblDownloadPics=Lädt ein Standardbild pro Karte.
@@ -216,6 +217,8 @@ lblDownloadQuestImages=Lädt die Bilder für den Quest-Modus.
lblDownloadAchievementImages=Lädt die Bilder zu den möglichen Erfolgen. Verschönert die Trophäensammlung.
lblDownloadPrices=Lädt aktuelle Kartenpreise für den Kartenladen im Spiel.
lblDownloadSkins=Lade verfügbare Skins herunter, um die Erscheinung von Forge anzupassen.
lblDownloadCJKFonts=Download fonts for locales using CJK glyphs.
lblDownloadCJKFontPrompt=Select a font file to download
lblYourVersionOfJavaIsTooOld=Deine Java-Version ist leider zu alt.
lblPleaseUpdateToTheLatestVersionOfJava=Bitte aktualisiere auf die neueste Java-Version.
lblYoureRunning=Du nutzt
@@ -952,6 +955,7 @@ lblBattlefieldTextureFiltering=Texturenfilter Spielfeld
lblCompactListItems=Kompakte Liste
lblCompactTabs=Kompakte Tabs
lblCardOverlays=Karten-Einblendungen
lblCJKFont=CJK Font
lblDisableCardEffect=Karten-"Effekt"-Anzeige abschalten
lblDynamicBackgroundPlanechase=Weltenjagd dynamischer Hintergrund
lblGameplayOptions=Spiel-Optionen
@@ -977,6 +981,7 @@ lblVibrateWhenLosingLife=Vibrieren nach Lebenspunktverlust
lblVibrationOptions=Vibrationsoptionen
nlAutomaticBugReports=Sende automatisch einen Fehlerbericht, ohne Bestätigung.
nlBattlefieldTextureFiltering=Nutze den Texturenfilter um Kartenbilder auf großen Anzeigen weniger grob wirken zu lassen (bedingt Neustart).
nlCJKFont=Set the font for CJK glyphs. Will override skin font (restart required).
nlCompactListItems=Zeige in allen Listen für jeder Karte und jedes Deck nur eine Zeile.
nlCompactTabs=Nutz kompaktere Karteikartenreiter (Tabulatoren/Tabs).
nlDisableCardEffect=Schaltet Effekt-Anzeigen für vergrößerte Karten ab.

View File

@@ -207,6 +207,7 @@ btnImportPictures=Import Data
btnHowToPlay=How To Play
btnDownloadPrices=Download Card Prices
btnDownloadSkins=Download Skins
btnDownloadCJKFonts=Download CJK Fonts
btnLicensing=License Details
lblCheckForUpdates=Check Forge server to see if there''s a more recent release
lblDownloadPics=Download default card picture for each card.
@@ -216,6 +217,8 @@ lblDownloadQuestImages=Download tokens and icons used in Quest mode.
lblDownloadAchievementImages=Download achievement images to really make your trophies stand out.
lblDownloadPrices=Download up-to-date price list for in-game card shops.
lblDownloadSkins=Download available skins used in customizing forge appearance.
lblDownloadCJKFonts=Download fonts for locales using CJK glyphs.
lblDownloadCJKFontPrompt=Select a font file to download
lblYourVersionOfJavaIsTooOld=Your version of Java is too old to use the content downloaders.
lblPleaseUpdateToTheLatestVersionOfJava=Please update to the latest version of Java
lblYoureRunning=You''re running
@@ -952,6 +955,7 @@ lblBattlefieldTextureFiltering=Battlefield Texture Filtering
lblCompactListItems=Compact List Items
lblCompactTabs=Compact Tabs
lblCardOverlays=Card Overlays
lblCJKFont=CJK Font
lblDisableCardEffect=Disable Card ''Effect'' Images
lblDynamicBackgroundPlanechase=Dynamic Background Planechase
lblGameplayOptions=Gameplay Options
@@ -977,6 +981,7 @@ lblVibrateWhenLosingLife=Vibrate When Losing Life
lblVibrationOptions=Vibration Options
nlAutomaticBugReports=Automatically send bug reports to the developers, without prompting.
nlBattlefieldTextureFiltering=Filter card art on battlefield to make it less pixelated on large screens (restart required, may reduce performance).
nlCJKFont=Set the font for CJK glyphs. Will override skin font (restart required).
nlCompactListItems=Show only a single line of text for cards and decks on all list views by default.
nlCompactTabs=Show smaller tabs on the top of tab page screens (such as this screen).
nlDisableCardEffect=Disable the zoomed image for the ''Effect'' cards.

View File

@@ -207,6 +207,7 @@ btnImportPictures=Importar datos
btnHowToPlay=Cómo jugar (Inglés)
btnDownloadPrices=Descargar precios de las cartas
btnDownloadSkins=Descargar temas
btnDownloadCJKFonts=Download CJK Fonts
btnLicensing=Detalles de la licencia
lblCheckForUpdates=Comprueba si en el servidor de Forge existe alguna versión más reciente
lblDownloadPics=Descarga una única carta de la última edición donde apareció.
@@ -216,6 +217,8 @@ lblDownloadQuestImages=Descarga fichas e íconos utilizados en el modo aventura.
lblDownloadAchievementImages=Descarga las imágenes de los trofeos para que destaquen.
lblDownloadPrices=Descarga la lista de precios actualizada para la tienda de cartas del juego.
lblDownloadSkins=Descarga los temas disponibles para personalizar el aspecto de Forge.
lblDownloadCJKFonts=Download fonts for locales using CJK glyphs.
lblDownloadCJKFontPrompt=Select a font file to download
lblYourVersionOfJavaIsTooOld=Tu versión de Java es demasiado antigua para usar los descargadores de contenido.
lblPleaseUpdateToTheLatestVersionOfJava=Por favor, actualiza a la última versión de Java
lblYoureRunning=Estás ejecutando
@@ -952,6 +955,7 @@ lblBattlefieldTextureFiltering=Filtrado de la Textura del Campo de batalla
lblCompactListItems=Items de la lista compactos
lblCompactTabs=Pestañas compactas
lblCardOverlays=Superposiciones de las cartas
lblCJKFont=CJK Font
lblDisableCardEffect=Desactivar imágenes de ''Efecto'' de las cartas
lblDynamicBackgroundPlanechase=Fondo dinámico Planechase
lblGameplayOptions=Opciones de juego
@@ -977,6 +981,7 @@ lblVibrateWhenLosingLife=Vibrar al perder vidas
lblVibrationOptions=Opciones de vibración
nlAutomaticBugReports=Envía automáticamente informes de errores a los desarrolladores, sin preguntar.
nlBattlefieldTextureFiltering=Filtra el arte de la carta en el campo de batalla para que sea menos pixelada en pantallas grandes (se requiere reiniciar, puede reducir el rendimiento).
nlCJKFont=Set the font for CJK glyphs. Will override skin font (restart required).
nlCompactListItems=Muestra de forma predeterminada solo una línea de texto para las cartas y mazos en todas las vistas de lista.
nlCompactTabs=Muestra pestañas más pequeñas en la parte superior de las pantallas de la página de pestañas (como esta pantalla).
nlDisableCardEffect=Deshabilita la imagen ampliada para las cartas ''Efecto''.

View File

@@ -207,6 +207,7 @@ btnImportPictures=Importa dati
btnHowToPlay=Come giocare
btnDownloadPrices=Scarica i prezzi delle carte
btnDownloadSkins=Download Skins
btnDownloadCJKFonts=Download CJK Fonts
btnLicensing=Dettagli della licenza
lblCheckForUpdates=Check Forge server to see if there''s a more recent release
lblDownloadPics=Scarica l''immagine della carta predefinita per ogni carta.
@@ -216,6 +217,8 @@ lblDownloadQuestImages=Scarica i token e le icone utilizzati nella modalità Que
lblDownloadAchievementImages=Scarica le immagini degli obiettivi per far risaltare davvero i tuoi trofei.
lblDownloadPrices=Scarica il listino aggiornato per i negozi di carte di gioco.
lblDownloadSkins=Download available skins used in customizing forge appearance.
lblDownloadCJKFonts=Download fonts for locales using CJK glyphs.
lblDownloadCJKFontPrompt=Select a font file to download
lblYourVersionOfJavaIsTooOld=La tua versione di Java è troppo vecchia per utilizzare i downloader di contenuti.
lblPleaseUpdateToTheLatestVersionOfJava=Si prega di aggiornare all''ultima versione di Java
lblYoureRunning=Stai correndo
@@ -952,6 +955,7 @@ lblBattlefieldTextureFiltering=Filtraggio delle trame del campo di battaglia
lblCompactListItems=Elementi dell''elenco compatto
lblCompactTabs=Schede compatte
lblCardOverlays=Sovrapposizioni di carte
lblCJKFont=CJK Font
lblDisableCardEffect=Disable Card ''Effect'' Images
lblDynamicBackgroundPlanechase=Planechase di sfondo dinamico
lblGameplayOptions=Opzioni di gioco
@@ -977,6 +981,7 @@ lblVibrateWhenLosingLife=Vibrazione quando si perde la vita
lblVibrationOptions=Opzioni di vibrazione
nlAutomaticBugReports=Invia automaticamente segnalazioni di bug agli sviluppatori, senza chiedere conferma.
nlBattlefieldTextureFiltering=Filtra la grafica delle carte sul campo di battaglia per renderla meno pixelata su schermi di grandi dimensioni (è necessario riavviare, potrebbe ridurre le prestazioni).
nlCJKFont=Set the font for CJK glyphs. Will override skin font (restart required).
nlCompactListItems=Mostra solo una singola riga di testo per carte e mazzi su tutte le visualizzazioni elenco per impostazione predefinita.
nlCompactTabs=Mostra schede più piccole nella parte superiore delle schermate della scheda (come questa schermata).
nlDisableCardEffect=Disable the zoomed image for the ''Effect'' cards.

View File

@@ -207,6 +207,7 @@ btnImportPictures=画像データのインポート
btnHowToPlay=遊び方
btnDownloadPrices=カード価格のダウンロード
btnDownloadSkins=テーマのダウンロード
btnDownloadCJKFonts=日中韓フォントのダウンロード
btnLicensing=ライセンスの詳細
lblCheckForUpdates=Forge サーバにアクセスして、より新しいリリースがありますかどうかを確認する
lblDownloadPics=各カードのデフォルトのカード画像をダウンロードします。
@@ -216,6 +217,8 @@ lblDownloadQuestImages=クエストモードで使用されるトークンとア
lblDownloadAchievementImages=実績画像をダウンロードして、トロフィーを際立たせましょう。
lblDownloadPrices=ゲーム内のカードショップの最新の価格表をダウンロードします。
lblDownloadSkins=Forge のカスタマイズ用のテーマをダウンロードします。
lblDownloadCJKFonts=日中韓文字を使う言語用のフォントをダウンロードします。
lblDownloadCJKFontPrompt=ダウンロードするフォントファイルを選択してください。
lblYourVersionOfJavaIsTooOld=Java のバージョンが古すぎるため、コンテンツダウンローダーを使用できません。
lblPleaseUpdateToTheLatestVersionOfJava=Javaの最新バージョンに更新してください
lblYoureRunning=
@@ -952,6 +955,7 @@ lblBattlefieldTextureFiltering=戦場の背景画像のテクスチャフィル
lblCompactListItems=コンパクトリストアイテム
lblCompactTabs=コンパクトタブ
lblCardOverlays=カードオーバーレイ
lblCJKFont=日中韓フォント
lblDisableCardEffect=カードの「効果」画像を無効にする
lblDynamicBackgroundPlanechase=プレインチェイス戦に動的背景
lblGameplayOptions=ゲームプレイオプション
@@ -977,6 +981,7 @@ lblVibrateWhenLosingLife=ライフを失ったときに振動する
lblVibrationOptions=振動オプション
nlAutomaticBugReports=プロンプトを表示せずに、バグレポートを開発者に自動的に送信します。
nlBattlefieldTextureFiltering=カード画像にフィルタを適用して、大きい画面の表示がスムーズになる (再起動が必要、パフォーマンス低下の恐れ)。
nlCJKFont=日中韓文字で使うフォントを設定します。テーマのフォントよりも優先的に適用します (再起動が必要)。
nlCompactListItems=デフォルトでカードリストやデッキリストに文字一行だけを表示する。
nlCompactTabs=タッブ画面に小さいタッブを使います (例えばこの画面)。
nlDisableCardEffect=「効果」カードのズームインを無効する。

View File

@@ -35,6 +35,7 @@ lblQuestDeckEditor=冒险套牌编辑器
lblQuestTournamentDeckEditor=冒险比赛套牌编辑器
lblSpellShop=卡牌商店
lblLeaveShop=离开商店
lblLeaveDraft=Leave Draft
lblBazaar=珍宝集市
lblConcedeGame=这场游戏认输
txerrFailedtodeletelayoutfile=删除布局文件失败。
@@ -206,6 +207,7 @@ btnImportPictures=导入数据
btnHowToPlay=如何玩
btnDownloadPrices=下载卡牌价格
btnDownloadSkins=下载主题文件
btnDownloadCJKFonts=Download CJK Fonts
btnLicensing=许可证详情
lblCheckForUpdates=查看是否有新的版本
lblDownloadPics=下载缺省牌的图片
@@ -215,6 +217,8 @@ lblDownloadQuestImages=下载冒险之旅里使用的衍生物与图标
lblDownloadAchievementImages=下载成就图片,让你的奖杯更引人注目。
lblDownloadPrices=下载卡牌商店最新的价格表
lblDownloadSkins=下载可用于自定义forge外观的主题。
lblDownloadCJKFonts=Download fonts for locales using CJK glyphs.
lblDownloadCJKFontPrompt=Select a font file to download
lblYourVersionOfJavaIsTooOld=你的Java版本太旧无法开始下载内容
lblPleaseUpdateToTheLatestVersionOfJava=请更新到最新版本的JRE
lblYoureRunning=你在运行
@@ -951,6 +955,7 @@ lblBattlefieldTextureFiltering=战场纹理过滤
lblCompactListItems=紧凑的项目列表
lblCompactTabs=紧凑标签
lblCardOverlays=卡牌叠加层
lblCJKFont=CJK Font
lblDisableCardEffect=禁用卡牌“效果”图
lblDynamicBackgroundPlanechase=动态时空背景
lblGameplayOptions=游戏选项
@@ -976,6 +981,7 @@ lblVibrateWhenLosingLife=失去生命时震动
lblVibrationOptions=振动选项
nlAutomaticBugReports=在没有提示的情况下自动向开发人员报告错误
nlBattlefieldTextureFiltering=在战场上过滤闪卡特效,使其在大屏幕上不像素化(需要重启,可能会降低性能)。
nlCJKFont=Set the font for CJK glyphs. Will override skin font (restart required).
nlCompactListItems=默认情况下,在所有视图列表中只显示卡牌和套牌的单行文本。
nlCompactTabs=在标签页屏幕顶部显示较小的标签(例如此屏幕)。
nlDisableCardEffect=禁用“效果”卡的缩放图片。

View File

@@ -0,0 +1 @@
ipaexg | https://downloads.cardforge.org/fonts/ipaexg.zip

View File

@@ -50,6 +50,7 @@ public final class ForgeConstants {
public static final String NET_DECKS_BRAWL_LIST_FILE = LISTS_DIR + "net-decks-brawl.txt";
public static final String BORDERLESS_CARD_LIST_FILE = LISTS_DIR + "borderlessCardList.txt";
public static final String SKINS_LIST_FILE = LISTS_DIR + "skinsList.txt";
public static final String CJK_FONTS_LIST_FILE = LISTS_DIR + "font-list.txt";
public static final String NET_ARCHIVE_STANDARD_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-standard.txt";
public static final String NET_ARCHIVE_PIONEER_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-pioneer.txt";
public static final String NET_ARCHIVE_MODERN_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-modern.txt";

View File

@@ -107,6 +107,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
UI_ANTE_MATCH_RARITY ("false"),
UI_MANABURN("false"),
UI_SKIN ("Default"),
UI_CJK_FONT (""),
UI_PREFERRED_AVATARS_ONLY ("false"),
UI_TARGETING_OVERLAY ("0"),
UI_TIMED_TARGETING_OVERLAY_UPDATES ("true"),