From ad61a28e88f045ebfb555df2b526e6bc0ae7ada8 Mon Sep 17 00:00:00 2001 From: Anthony <53468745+PistaCream@users.noreply.github.com> Date: Fri, 5 Sep 2025 23:46:13 -0700 Subject: [PATCH 01/10] [Bug] Moody Can't Lower Stats at +6 (#6481) --- src/data/abilities/ability.ts | 2 +- test/abilities/moody.test.ts | 36 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/data/abilities/ability.ts b/src/data/abilities/ability.ts index 66d00d950d2..adcf93f7adf 100644 --- a/src/data/abilities/ability.ts +++ b/src/data/abilities/ability.ts @@ -4813,7 +4813,7 @@ export class MoodyAbAttr extends PostTurnAbAttr { if (!simulated) { if (canRaise.length > 0) { const raisedStat = canRaise[pokemon.randBattleSeedInt(canRaise.length)]; - canLower = canRaise.filter(s => s !== raisedStat); + canLower = canLower.filter(s => s !== raisedStat); globalScene.phaseManager.unshiftNew("StatStageChangePhase", pokemon.getBattlerIndex(), true, [raisedStat], 2); } if (canLower.length > 0) { diff --git a/test/abilities/moody.test.ts b/test/abilities/moody.test.ts index d1f8aa2e351..b7882c15ced 100644 --- a/test/abilities/moody.test.ts +++ b/test/abilities/moody.test.ts @@ -84,4 +84,40 @@ describe("Abilities - Moody", () => { expect(decreasedStat).toBeTruthy(); expect(decreasedStat.length).toBe(1); }); + + it("should only try to increase a stat stage by 1 if the stat stage is not at 6", async () => { + await game.classicMode.startBattle(); + + const playerPokemon = game.field.getPlayerPokemon(); + + // Set all stat stages to 6 + vi.spyOn(playerPokemon.summonData, "statStages", "get").mockReturnValue(new Array(BATTLE_STATS.length).fill(6)); + + // Set one of the stat stages to -6 + const raisedStat = EFFECTIVE_STATS[playerPokemon.randBattleSeedInt(EFFECTIVE_STATS.length)]; + playerPokemon.setStatStage(raisedStat, -6); + + game.move.select(MoveId.SPLASH); + await game.toNextTurn(); + + expect(playerPokemon.getStatStage(raisedStat), "should increase only the stat that is not at stage 6").toBe(-4); + }); + + it("should only try to decrease a stat stage by 1 if the stat stage is not at -6", async () => { + await game.classicMode.startBattle(); + + const playerPokemon = game.field.getPlayerPokemon(); + + // Set all stat stages to -6 + vi.spyOn(playerPokemon.summonData, "statStages", "get").mockReturnValue(new Array(BATTLE_STATS.length).fill(-6)); + + // Set one of the stat stages to 6 + const raisedStat = EFFECTIVE_STATS[playerPokemon.randBattleSeedInt(EFFECTIVE_STATS.length)]; + playerPokemon.setStatStage(raisedStat, 6); + + game.move.select(MoveId.SPLASH); + await game.toNextTurn(); + + expect(playerPokemon.getStatStage(raisedStat), "should decrease only the stat that is not at stage -6").toBe(5); + }); }); From 39760a8514fc0db644e9232cd3cab3ce94f149d6 Mon Sep 17 00:00:00 2001 From: Lugiad Date: Sat, 6 Sep 2025 11:08:33 +0200 Subject: [PATCH 02/10] [UI/UX] [Localization] Battle & Party UI translation (#6482) --- public/images/ui/legacy/numbers_alt.png | Bin 237 -> 0 bytes public/images/ui/legacy/numbers_red_alt.png | Bin 237 -> 0 bytes public/images/ui/legacy/overlay_lv.png | Bin 114 -> 0 bytes public/images/ui/legacy/overlay_lv_alt.png | Bin 129 -> 0 bytes public/images/ui/legacy/party_slot_hp_bar.png | Bin 169 -> 140 bytes .../ui/legacy/party_slot_overlay_lv_alt.png | Bin 124 -> 0 bytes public/images/ui/legacy/pbinfo_enemy_boss.png | Bin 331 -> 299 bytes public/images/ui/legacy/pbinfo_enemy_mini.png | Bin 308 -> 274 bytes public/images/ui/legacy/pbinfo_player.png | Bin 355 -> 318 bytes .../images/ui/legacy/pbinfo_player_mini.png | Bin 309 -> 292 bytes public/images/ui/legacy/pbinfo_stat.png | Bin 232 -> 0 bytes .../ca/battle_ui/overlay_exp_label_ca.png | Bin 0 -> 116 bytes .../ca/battle_ui/overlay_hp_label_boss_ca.png | Bin 0 -> 169 bytes .../ca/battle_ui/overlay_hp_label_ca.png | Bin 0 -> 149 bytes .../ca/battle_ui/overlay_lv_ca.png | Bin 0 -> 124 bytes .../ca/battle_ui/pbinfo_stat_ca.json | 209 ++++++++++++++++++ .../ca/battle_ui/pbinfo_stat_ca.png | Bin 0 -> 288 bytes .../ca/party_ui/party_slot_overlay_hp_ca.png | Bin 0 -> 146 bytes .../ca/party_ui/party_slot_overlay_lv_ca.png | Bin 0 -> 125 bytes .../da/battle_ui/overlay_exp_label_da.png | Bin 0 -> 120 bytes .../da/battle_ui/overlay_hp_label_boss_da.png | Bin 0 -> 169 bytes .../da/battle_ui/overlay_hp_label_da.png | Bin 0 -> 146 bytes .../da/battle_ui/overlay_lv_da.png | Bin 0 -> 111 bytes .../da/battle_ui/pbinfo_stat_da.json | 209 ++++++++++++++++++ .../da/battle_ui/pbinfo_stat_da.png | Bin 0 -> 236 bytes .../da/party_ui/party_slot_overlay_hp_da.png | Bin 0 -> 144 bytes .../da/party_ui/party_slot_overlay_lv_da.png} | Bin .../de/battle_ui/overlay_exp_label_de.png | Bin 0 -> 120 bytes .../de/battle_ui/overlay_hp_label_boss_de.png | Bin 0 -> 169 bytes .../de/battle_ui/overlay_hp_label_de.png | Bin 0 -> 149 bytes .../de/battle_ui/overlay_lv_de.png | Bin 0 -> 111 bytes .../de/battle_ui/pbinfo_stat_de.json | 209 ++++++++++++++++++ .../de/battle_ui/pbinfo_stat_de.png | Bin 0 -> 240 bytes .../de/party_ui/party_slot_overlay_hp_de.png | Bin 0 -> 145 bytes .../de/party_ui/party_slot_overlay_lv_de.png | Bin 0 -> 112 bytes .../en/battle_ui/overlay_exp_label.png | Bin 0 -> 1401 bytes .../en/battle_ui/overlay_hp_label.png | Bin 0 -> 146 bytes .../en/battle_ui/overlay_hp_label_boss.png | Bin 0 -> 169 bytes .../text_images/en/battle_ui/overlay_lv.png | Bin 0 -> 111 bytes .../en/battle_ui}/pbinfo_stat.json | 0 .../text_images/en/battle_ui/pbinfo_stat.png | Bin 0 -> 236 bytes .../en/party_ui/party_slot_overlay_hp.png | Bin 0 -> 144 bytes .../en/party_ui/party_slot_overlay_lv.png | Bin 0 -> 112 bytes .../battle_ui/overlay_exp_label_es-ES.png | Bin 0 -> 116 bytes .../battle_ui/overlay_hp_label_boss_es-ES.png | Bin 0 -> 159 bytes .../battle_ui/overlay_hp_label_es-ES.png | Bin 0 -> 149 bytes .../es-ES/battle_ui/overlay_lv_es-ES.png | Bin 0 -> 124 bytes .../es-ES/battle_ui/pbinfo_stat_es_ES.json | 209 ++++++++++++++++++ .../es-ES/battle_ui/pbinfo_stat_es_ES.png | Bin 0 -> 285 bytes .../party_ui/party_slot_overlay_hp_es-ES.png | Bin 0 -> 146 bytes .../party_ui/party_slot_overlay_lv_es-ES.png | Bin 0 -> 125 bytes .../battle_ui/overlay_exp_label_es-MX.png | Bin 0 -> 116 bytes .../battle_ui/overlay_hp_label_boss_es-MX.png | Bin 0 -> 159 bytes .../battle_ui/overlay_hp_label_es-MX.png | Bin 0 -> 149 bytes .../es-MX/battle_ui/overlay_lv_es-MX.png | Bin 0 -> 124 bytes .../es-MX/battle_ui/pbinfo_stat_es_MX.json | 209 ++++++++++++++++++ .../es-MX/battle_ui/pbinfo_stat_es_MX.png | Bin 0 -> 285 bytes .../party_ui/party_slot_overlay_hp_es-MX.png | Bin 0 -> 146 bytes .../party_ui/party_slot_overlay_lv_es-MX.png | Bin 0 -> 125 bytes .../fr/battle_ui/overlay_exp_label_fr.png | Bin 0 -> 1401 bytes .../fr/battle_ui/overlay_hp_label_boss_fr.png | Bin 0 -> 169 bytes .../fr/battle_ui/overlay_hp_label_fr.png | Bin 0 -> 147 bytes .../fr/battle_ui/overlay_lv_fr.png | Bin 0 -> 124 bytes .../fr/battle_ui/pbinfo_stat_fr.json | 209 ++++++++++++++++++ .../fr/battle_ui/pbinfo_stat_fr.png | Bin 0 -> 273 bytes .../fr/party_ui/party_slot_overlay_hp_fr.png | Bin 0 -> 148 bytes .../fr/party_ui/party_slot_overlay_lv_fr.png | Bin 0 -> 119 bytes .../it/battle_ui/overlay_exp_label_it.png | Bin 0 -> 120 bytes .../it/battle_ui/overlay_hp_label_boss_it.png | Bin 0 -> 169 bytes .../it/battle_ui/overlay_hp_label_it.png | Bin 0 -> 149 bytes .../it/battle_ui/overlay_lv_it.png | Bin 0 -> 117 bytes .../it/battle_ui/pbinfo_stat_it.json | 209 ++++++++++++++++++ .../it/battle_ui/pbinfo_stat_it.png | Bin 0 -> 267 bytes .../it/party_ui/party_slot_overlay_hp_it.png | Bin 0 -> 146 bytes .../it/party_ui/party_slot_overlay_lv_it.png | Bin 0 -> 111 bytes .../ja/battle_ui/overlay_exp_label_ja.png | Bin 0 -> 1401 bytes .../ja/battle_ui/overlay_hp_label_boss_ja.png | Bin 0 -> 169 bytes .../ja/battle_ui/overlay_hp_label_ja.png | Bin 0 -> 146 bytes .../ja/battle_ui/overlay_lv_ja.png | Bin 0 -> 111 bytes .../ja/battle_ui/pbinfo_stat_ja.json | 209 ++++++++++++++++++ .../ja/battle_ui/pbinfo_stat_ja.png | Bin 0 -> 236 bytes .../ja/party_ui/party_slot_overlay_hp_ja.png | Bin 0 -> 144 bytes .../ja/party_ui/party_slot_overlay_lv_ja.png | Bin 0 -> 112 bytes .../ko/battle_ui/overlay_exp_label_ko.png | Bin 0 -> 1401 bytes .../ko/battle_ui/overlay_hp_label_boss_ko.png | Bin 0 -> 169 bytes .../ko/battle_ui/overlay_hp_label_ko.png | Bin 0 -> 146 bytes .../ko/battle_ui/overlay_lv_ko.png | Bin 0 -> 111 bytes .../ko/battle_ui/pbinfo_stat_ko.json | 209 ++++++++++++++++++ .../ko/battle_ui/pbinfo_stat_ko.png | Bin 0 -> 236 bytes .../ko/party_ui/party_slot_overlay_hp_ko.png | Bin 0 -> 144 bytes .../ko/party_ui/party_slot_overlay_lv_ko.png | Bin 0 -> 112 bytes .../battle_ui/overlay_exp_label_pt-BR.png | Bin 0 -> 116 bytes .../battle_ui/overlay_hp_label_boss_pt-BR.png | Bin 0 -> 169 bytes .../battle_ui/overlay_hp_label_pt-BR.png | Bin 0 -> 149 bytes .../pt-BR/battle_ui/overlay_lv_pt-BR.png | Bin 0 -> 124 bytes .../pt-BR/battle_ui/pbinfo_stat_pt-BR.json | 209 ++++++++++++++++++ .../pt-BR/battle_ui/pbinfo_stat_pt-BR.png | Bin 0 -> 282 bytes .../party_ui/party_slot_overlay_hp_pt-BR.png | Bin 0 -> 146 bytes .../party_ui/party_slot_overlay_lv_pt-BR.png | Bin 0 -> 125 bytes .../ro/battle_ui/overlay_exp_label_ro.png | Bin 0 -> 1401 bytes .../ro/battle_ui/overlay_hp_label_boss_ro.png | Bin 0 -> 169 bytes .../ro/battle_ui/overlay_hp_label_ro.png | Bin 0 -> 146 bytes .../ro/battle_ui/overlay_lv_ro.png | Bin 0 -> 111 bytes .../ro/battle_ui/pbinfo_stat_ro.json | 209 ++++++++++++++++++ .../ro/battle_ui/pbinfo_stat_ro.png | Bin 0 -> 236 bytes .../ro/party_ui/party_slot_overlay_hp_ro.png | Bin 0 -> 144 bytes .../ro/party_ui/party_slot_overlay_lv_ro.png | Bin 0 -> 112 bytes .../ru/battle_ui/overlay_exp_label_ru.png | Bin 0 -> 129 bytes .../ru/battle_ui/overlay_hp_label_boss_ru.png | Bin 0 -> 170 bytes .../ru/battle_ui/overlay_hp_label_ru.png | Bin 0 -> 150 bytes .../ru/battle_ui/overlay_lv_ru.png | Bin 0 -> 138 bytes .../ru/battle_ui/pbinfo_stat_ru.json | 209 ++++++++++++++++++ .../ru/battle_ui/pbinfo_stat_ru.png | Bin 0 -> 286 bytes .../ru/party_ui/party_slot_overlay_hp_ru.png | Bin 0 -> 145 bytes .../ru/party_ui/party_slot_overlay_lv_ru.png | Bin 0 -> 137 bytes .../tl/battle_ui/overlay_exp_label_tl.png | Bin 0 -> 1401 bytes .../tl/battle_ui/overlay_hp_label_boss_tl.png | Bin 0 -> 169 bytes .../tl/battle_ui/overlay_hp_label_tl.png | Bin 0 -> 146 bytes .../tl/battle_ui/overlay_lv_tl.png | Bin 0 -> 111 bytes .../tl/battle_ui/pbinfo_stat_tl.json | 209 ++++++++++++++++++ .../tl/battle_ui/pbinfo_stat_tl.png | Bin 0 -> 236 bytes .../tl/party_ui/party_slot_overlay_hp_tl.png | Bin 0 -> 144 bytes .../tl/party_ui/party_slot_overlay_lv_tl.png | Bin 0 -> 112 bytes .../tr/battle_ui/overlay_exp_label_tr.png | Bin 0 -> 129 bytes .../tr/battle_ui/overlay_hp_label_boss_tr.png | Bin 0 -> 169 bytes .../tr/battle_ui/overlay_hp_label_tr.png | Bin 0 -> 147 bytes .../tr/battle_ui/overlay_lv_tr.png | Bin 0 -> 137 bytes .../tr/battle_ui/pbinfo_stat_tr.json | 209 ++++++++++++++++++ .../tr/battle_ui/pbinfo_stat_tr.png | Bin 0 -> 236 bytes .../tr/party_ui/party_slot_overlay_hp_tr.png | Bin 0 -> 147 bytes .../tr/party_ui/party_slot_overlay_lv_tr.png | Bin 0 -> 146 bytes .../battle_ui/overlay_exp_label_zh-CN.png | Bin 0 -> 1401 bytes .../battle_ui/overlay_hp_label_boss_zh-CN.png | Bin 0 -> 169 bytes .../battle_ui/overlay_hp_label_zh-CN.png | Bin 0 -> 146 bytes .../zh-CN/battle_ui/overlay_lv_zh-CN.png | Bin 0 -> 111 bytes .../zh-CN/battle_ui/pbinfo_stat_zh-CN.json | 209 ++++++++++++++++++ .../zh-CN/battle_ui/pbinfo_stat_zh-CN.png | Bin 0 -> 236 bytes .../party_ui/party_slot_overlay_hp_zh-CN.png | Bin 0 -> 144 bytes .../party_ui/party_slot_overlay_lv_zh-CN.png | Bin 0 -> 112 bytes .../battle_ui/overlay_exp_label_zh-TW.png | Bin 0 -> 1401 bytes .../battle_ui/overlay_hp_label_boss_zh-TW.png | Bin 0 -> 169 bytes .../battle_ui/overlay_hp_label_zh-TW.png | Bin 0 -> 146 bytes .../zh-TW/battle_ui/overlay_lv_zh-TW.png | Bin 0 -> 111 bytes .../zh-TW/battle_ui/pbinfo_stat_zh-TW.json | 209 ++++++++++++++++++ .../zh-TW/battle_ui/pbinfo_stat_zh-TW.png | Bin 0 -> 236 bytes .../party_ui/party_slot_overlay_hp_zh-TW.png | Bin 0 -> 144 bytes .../party_ui/party_slot_overlay_lv_zh-TW.png | Bin 0 -> 112 bytes public/images/ui/overlay_lv.png | Bin 129 -> 0 bytes public/images/ui/party_slot_hp_bar.png | Bin 160 -> 139 bytes public/images/ui/pbinfo_enemy_boss.png | Bin 290 -> 252 bytes public/images/ui/pbinfo_enemy_mini.png | Bin 275 -> 251 bytes public/images/ui/pbinfo_player.png | Bin 344 -> 285 bytes public/images/ui/pbinfo_player_mini.png | Bin 276 -> 253 bytes public/images/ui/pbinfo_stat.png | Bin 277 -> 0 bytes .../ca/battle_ui/overlay_exp_label_ca.png | Bin 0 -> 126 bytes .../ca/battle_ui/overlay_hp_label_boss_ca.png | Bin 0 -> 148 bytes .../ca/battle_ui/overlay_hp_label_ca.png | Bin 0 -> 147 bytes .../ca/battle_ui/overlay_lv_ca.png | Bin 0 -> 124 bytes .../ca/battle_ui/pbinfo_stat_ca.json | 209 ++++++++++++++++++ .../ca/battle_ui/pbinfo_stat_ca.png | Bin 0 -> 298 bytes .../ca/party_ui/party_slot_overlay_hp_ca.png | Bin 0 -> 131 bytes .../ca/party_ui/party_slot_overlay_lv_ca.png | Bin 0 -> 127 bytes .../da/battle_ui/overlay_exp_label_da.png | Bin 0 -> 125 bytes .../da/battle_ui/overlay_hp_label_boss_da.png | Bin 0 -> 148 bytes .../da/battle_ui/overlay_hp_label_da.png | Bin 0 -> 127 bytes .../da/battle_ui/overlay_lv_da.png | Bin 0 -> 123 bytes .../da/battle_ui/pbinfo_stat_da.json | 209 ++++++++++++++++++ .../da/battle_ui/pbinfo_stat_da.png | Bin 0 -> 278 bytes .../da/party_ui/party_slot_overlay_hp_da.png | Bin 0 -> 127 bytes .../da/party_ui/party_slot_overlay_lv_da.png} | Bin .../de/battle_ui/overlay_exp_label_de.png | Bin 0 -> 125 bytes .../de/battle_ui/overlay_hp_label_boss_de.png | Bin 0 -> 148 bytes .../de/battle_ui/overlay_hp_label_de.png | Bin 0 -> 150 bytes .../de/battle_ui/overlay_lv_de.png | Bin 0 -> 123 bytes .../de/battle_ui/pbinfo_stat_de.json | 209 ++++++++++++++++++ .../de/battle_ui/pbinfo_stat_de.png | Bin 0 -> 269 bytes .../de/party_ui/party_slot_overlay_hp_de.png | Bin 0 -> 128 bytes .../de/party_ui/party_slot_overlay_lv_de.png | Bin 0 -> 124 bytes .../en/battle_ui/overlay_exp_label.png | Bin 0 -> 126 bytes .../en/battle_ui/overlay_hp_label.png | Bin 0 -> 127 bytes .../en/battle_ui/overlay_hp_label_boss.png | Bin 0 -> 148 bytes .../text_images/en/battle_ui/overlay_lv.png | Bin 0 -> 123 bytes .../en/battle_ui}/pbinfo_stat.json | 0 .../text_images/en/battle_ui/pbinfo_stat.png | Bin 0 -> 278 bytes .../en/party_ui/party_slot_overlay_hp.png | Bin 0 -> 127 bytes .../en/party_ui/party_slot_overlay_lv.png | Bin 0 -> 124 bytes .../battle_ui/overlay_exp_label_es-ES.png | Bin 0 -> 126 bytes .../battle_ui/overlay_hp_label_boss_es-ES.png | Bin 0 -> 171 bytes .../battle_ui/overlay_hp_label_es-ES.png | Bin 0 -> 147 bytes .../es-ES/battle_ui/overlay_lv_es-ES.png | Bin 0 -> 124 bytes .../es-ES/battle_ui/pbinfo_stat_es-ES.json | 209 ++++++++++++++++++ .../es-ES/battle_ui/pbinfo_stat_es-ES.png | Bin 0 -> 295 bytes .../party_ui/party_slot_overlay_hp_es-ES.png | Bin 0 -> 131 bytes .../party_ui/party_slot_overlay_lv_es-ES.png | Bin 0 -> 127 bytes .../battle_ui/overlay_exp_label_es-MX.png | Bin 0 -> 126 bytes .../battle_ui/overlay_hp_label_boss_es-MX.png | Bin 0 -> 171 bytes .../battle_ui/overlay_hp_label_es-MX.png | Bin 0 -> 147 bytes .../es-MX/battle_ui/overlay_lv_es-MX.png | Bin 0 -> 124 bytes .../es-MX/battle_ui/pbinfo_stat_es-MX.json | 209 ++++++++++++++++++ .../es-MX/battle_ui/pbinfo_stat_es-MX.png | Bin 0 -> 295 bytes .../party_ui/party_slot_overlay_hp_es-MX.png | Bin 0 -> 131 bytes .../party_ui/party_slot_overlay_lv_es-MX.png | Bin 0 -> 127 bytes .../fr/battle_ui/overlay_exp_label_fr.png | Bin 0 -> 126 bytes .../fr/battle_ui/overlay_hp_label_boss_fr.png | Bin 0 -> 148 bytes .../fr/battle_ui/overlay_hp_label_fr.png | Bin 0 -> 130 bytes .../fr/battle_ui/overlay_lv_fr.png | Bin 0 -> 133 bytes .../fr/battle_ui/pbinfo_stat_fr.json | 209 ++++++++++++++++++ .../fr/battle_ui/pbinfo_stat_fr.png | Bin 0 -> 304 bytes .../fr/party_ui/party_slot_overlay_hp_fr.png | Bin 0 -> 130 bytes .../fr/party_ui/party_slot_overlay_lv_fr.png | Bin 0 -> 134 bytes .../it/battle_ui/overlay_exp_label_it.png | Bin 0 -> 128 bytes .../it/battle_ui/overlay_hp_label_boss_it.png | Bin 0 -> 148 bytes .../it/battle_ui/overlay_hp_label_it.png | Bin 0 -> 147 bytes .../it/battle_ui/overlay_lv_it.png | Bin 0 -> 113 bytes .../it/battle_ui/pbinfo_stat_it.json | 209 ++++++++++++++++++ .../it/battle_ui/pbinfo_stat_it.png | Bin 0 -> 287 bytes .../it/party_ui/party_slot_overlay_hp_it.png | Bin 0 -> 131 bytes .../it/party_ui/party_slot_overlay_lv_it.png | Bin 0 -> 115 bytes .../ja/battle_ui/overlay_exp_label_ja.png | Bin 0 -> 126 bytes .../ja/battle_ui/overlay_hp_label_boss_ja.png | Bin 0 -> 148 bytes .../ja/battle_ui/overlay_hp_label_ja.png | Bin 0 -> 127 bytes .../ja/battle_ui/overlay_lv_ja.png | Bin 0 -> 123 bytes .../ja/battle_ui/pbinfo_stat_ja.json | 209 ++++++++++++++++++ .../ja/battle_ui/pbinfo_stat_ja.png | Bin 0 -> 278 bytes .../ja/party_ui/party_slot_overlay_hp_ja.png | Bin 0 -> 127 bytes .../ja/party_ui/party_slot_overlay_lv_ja.png | Bin 0 -> 124 bytes .../ko/battle_ui/overlay_exp_label_ko.png | Bin 0 -> 126 bytes .../ko/battle_ui/overlay_hp_label_boss_ko.png | Bin 0 -> 148 bytes .../ko/battle_ui/overlay_hp_label_ko.png | Bin 0 -> 127 bytes .../ko/battle_ui/overlay_lv_ko.png | Bin 0 -> 123 bytes .../ko/battle_ui/pbinfo_stat_ko.json | 209 ++++++++++++++++++ .../ko/battle_ui/pbinfo_stat_ko.png | Bin 0 -> 278 bytes .../ko/party_ui/party_slot_overlay_hp_ko.png | Bin 0 -> 127 bytes .../ko/party_ui/party_slot_overlay_lv_ko.png | Bin 0 -> 124 bytes .../battle_ui/overlay_exp_label_pt-BR.png | Bin 0 -> 126 bytes .../battle_ui/overlay_hp_label_boss_pt-BR.png | Bin 0 -> 148 bytes .../battle_ui/overlay_hp_label_pt-BR.png | Bin 0 -> 147 bytes .../pt-BR/battle_ui/overlay_lv_pt-BR.png | Bin 0 -> 124 bytes .../pt-BR/battle_ui/pbinfo_stat_pt-BR.json | 209 ++++++++++++++++++ .../pt-BR/battle_ui/pbinfo_stat_pt-BR.png | Bin 0 -> 292 bytes .../party_ui/party_slot_overlay_hp_pt-BR.png | Bin 0 -> 131 bytes .../party_ui/party_slot_overlay_lv_pt-BR.png | Bin 0 -> 127 bytes .../ro/battle_ui/overlay_exp_label_ro.png | Bin 0 -> 126 bytes .../ro/battle_ui/overlay_hp_label_boss_ro.png | Bin 0 -> 148 bytes .../ro/battle_ui/overlay_hp_label_ro.png | Bin 0 -> 127 bytes .../ro/battle_ui/overlay_lv_ro.png | Bin 0 -> 123 bytes .../ro/battle_ui/pbinfo_stat_ro.json | 209 ++++++++++++++++++ .../ro/battle_ui/pbinfo_stat_ro.png | Bin 0 -> 278 bytes .../ro/party_ui/party_slot_overlay_hp_ro.png | Bin 0 -> 127 bytes .../ro/party_ui/party_slot_overlay_lv_ro.png | Bin 0 -> 124 bytes .../ru/battle_ui/overlay_exp_label_ru.png | Bin 0 -> 136 bytes .../ru/battle_ui/overlay_hp_label_boss_ru.png | Bin 0 -> 156 bytes .../ru/battle_ui/overlay_hp_label_ru.png | Bin 0 -> 146 bytes .../ru/battle_ui/overlay_lv_ru.png | Bin 0 -> 144 bytes .../ru/battle_ui/pbinfo_stat_ru.json | 209 ++++++++++++++++++ .../ru/battle_ui/pbinfo_stat_ru.png | Bin 0 -> 318 bytes .../ru/party_ui/party_slot_overlay_hp_ru.png | Bin 0 -> 145 bytes .../ru/party_ui/party_slot_overlay_lv_ru.png | Bin 0 -> 144 bytes .../tl/battle_ui/overlay_exp_label_tl.png | Bin 0 -> 126 bytes .../tl/battle_ui/overlay_hp_label_boss_tl.png | Bin 0 -> 148 bytes .../tl/battle_ui/overlay_hp_label_tl.png | Bin 0 -> 127 bytes .../tl/battle_ui/overlay_lv_tl.png | Bin 0 -> 123 bytes .../tl/battle_ui/pbinfo_stat_tl.json | 209 ++++++++++++++++++ .../tl/battle_ui/pbinfo_stat_tl.png | Bin 0 -> 278 bytes .../tl/party_ui/party_slot_overlay_hp_tl.png | Bin 0 -> 127 bytes .../tl/party_ui/party_slot_overlay_lv_tl.png | Bin 0 -> 124 bytes .../tr/battle_ui/overlay_exp_label_tr.png | Bin 0 -> 125 bytes .../tr/battle_ui/overlay_hp_label_boss_tr.png | Bin 0 -> 148 bytes .../tr/battle_ui/overlay_hp_label_tr.png | Bin 0 -> 145 bytes .../tr/battle_ui/overlay_lv_tr.png | Bin 0 -> 124 bytes .../tr/battle_ui/pbinfo_stat_tr.json | 209 ++++++++++++++++++ .../tr/battle_ui/pbinfo_stat_tr.png | Bin 0 -> 278 bytes .../tr/party_ui/party_slot_overlay_hp_tr.png | Bin 0 -> 148 bytes .../tr/party_ui/party_slot_overlay_lv_tr.png | Bin 0 -> 126 bytes .../battle_ui/overlay_exp_label_zh-CN.png | Bin 0 -> 126 bytes .../battle_ui/overlay_hp_label_boss_zh-CN.png | Bin 0 -> 148 bytes .../battle_ui/overlay_hp_label_zh-CN.png | Bin 0 -> 127 bytes .../zh-CN/battle_ui/overlay_lv_zh-CN.png | Bin 0 -> 123 bytes .../zh-CN/battle_ui/pbinfo_stat_zh-CN.json | 209 ++++++++++++++++++ .../zh-CN/battle_ui/pbinfo_stat_zh-CN.png | Bin 0 -> 278 bytes .../party_ui/party_slot_overlay_hp_zh-CN.png | Bin 0 -> 127 bytes .../party_ui/party_slot_overlay_lv_zh-CN.png | Bin 0 -> 124 bytes .../battle_ui/overlay_exp_label_zh-TW.png | Bin 0 -> 126 bytes .../battle_ui/overlay_hp_label_boss_zh-TW.png | Bin 0 -> 148 bytes .../battle_ui/overlay_hp_label_zh-TW.png | Bin 0 -> 127 bytes .../zh-TW/battle_ui/overlay_lv_zh-TW.png | Bin 0 -> 123 bytes .../zh-TW/battle_ui/pbinfo_stat_zh-TW.json | 209 ++++++++++++++++++ .../zh-TW/battle_ui/pbinfo_stat_zh-TW.png | Bin 0 -> 278 bytes .../party_ui/party_slot_overlay_hp_zh-TW.png | Bin 0 -> 127 bytes .../party_ui/party_slot_overlay_lv_zh-TW.png | Bin 0 -> 124 bytes src/loading-scene.ts | 31 ++- src/ui/battle-info/battle-info.ts | 10 +- src/ui/battle-info/enemy-battle-info.ts | 4 + src/ui/battle-info/player-battle-info.ts | 11 +- src/ui/party-ui-handler.ts | 21 +- 295 files changed, 6757 insertions(+), 8 deletions(-) delete mode 100644 public/images/ui/legacy/numbers_alt.png delete mode 100644 public/images/ui/legacy/numbers_red_alt.png delete mode 100644 public/images/ui/legacy/overlay_lv.png delete mode 100644 public/images/ui/legacy/overlay_lv_alt.png delete mode 100644 public/images/ui/legacy/party_slot_overlay_lv_alt.png delete mode 100644 public/images/ui/legacy/pbinfo_stat.png create mode 100644 public/images/ui/legacy/text_images/ca/battle_ui/overlay_exp_label_ca.png create mode 100644 public/images/ui/legacy/text_images/ca/battle_ui/overlay_hp_label_boss_ca.png create mode 100644 public/images/ui/legacy/text_images/ca/battle_ui/overlay_hp_label_ca.png create mode 100644 public/images/ui/legacy/text_images/ca/battle_ui/overlay_lv_ca.png create mode 100644 public/images/ui/legacy/text_images/ca/battle_ui/pbinfo_stat_ca.json create mode 100644 public/images/ui/legacy/text_images/ca/battle_ui/pbinfo_stat_ca.png create mode 100644 public/images/ui/legacy/text_images/ca/party_ui/party_slot_overlay_hp_ca.png create mode 100644 public/images/ui/legacy/text_images/ca/party_ui/party_slot_overlay_lv_ca.png create mode 100644 public/images/ui/legacy/text_images/da/battle_ui/overlay_exp_label_da.png create mode 100644 public/images/ui/legacy/text_images/da/battle_ui/overlay_hp_label_boss_da.png create mode 100644 public/images/ui/legacy/text_images/da/battle_ui/overlay_hp_label_da.png create mode 100644 public/images/ui/legacy/text_images/da/battle_ui/overlay_lv_da.png create mode 100644 public/images/ui/legacy/text_images/da/battle_ui/pbinfo_stat_da.json create mode 100644 public/images/ui/legacy/text_images/da/battle_ui/pbinfo_stat_da.png create mode 100644 public/images/ui/legacy/text_images/da/party_ui/party_slot_overlay_hp_da.png rename public/images/ui/legacy/{party_slot_overlay_lv.png => text_images/da/party_ui/party_slot_overlay_lv_da.png} (100%) create mode 100644 public/images/ui/legacy/text_images/de/battle_ui/overlay_exp_label_de.png create mode 100644 public/images/ui/legacy/text_images/de/battle_ui/overlay_hp_label_boss_de.png create mode 100644 public/images/ui/legacy/text_images/de/battle_ui/overlay_hp_label_de.png create mode 100644 public/images/ui/legacy/text_images/de/battle_ui/overlay_lv_de.png create mode 100644 public/images/ui/legacy/text_images/de/battle_ui/pbinfo_stat_de.json create mode 100644 public/images/ui/legacy/text_images/de/battle_ui/pbinfo_stat_de.png create mode 100644 public/images/ui/legacy/text_images/de/party_ui/party_slot_overlay_hp_de.png create mode 100644 public/images/ui/legacy/text_images/de/party_ui/party_slot_overlay_lv_de.png create mode 100644 public/images/ui/legacy/text_images/en/battle_ui/overlay_exp_label.png create mode 100644 public/images/ui/legacy/text_images/en/battle_ui/overlay_hp_label.png create mode 100644 public/images/ui/legacy/text_images/en/battle_ui/overlay_hp_label_boss.png create mode 100644 public/images/ui/legacy/text_images/en/battle_ui/overlay_lv.png rename public/images/ui/legacy/{ => text_images/en/battle_ui}/pbinfo_stat.json (100%) create mode 100644 public/images/ui/legacy/text_images/en/battle_ui/pbinfo_stat.png create mode 100644 public/images/ui/legacy/text_images/en/party_ui/party_slot_overlay_hp.png create mode 100644 public/images/ui/legacy/text_images/en/party_ui/party_slot_overlay_lv.png create mode 100644 public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_exp_label_es-ES.png create mode 100644 public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_hp_label_boss_es-ES.png create mode 100644 public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_hp_label_es-ES.png create mode 100644 public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_lv_es-ES.png create mode 100644 public/images/ui/legacy/text_images/es-ES/battle_ui/pbinfo_stat_es_ES.json create mode 100644 public/images/ui/legacy/text_images/es-ES/battle_ui/pbinfo_stat_es_ES.png create mode 100644 public/images/ui/legacy/text_images/es-ES/party_ui/party_slot_overlay_hp_es-ES.png create mode 100644 public/images/ui/legacy/text_images/es-ES/party_ui/party_slot_overlay_lv_es-ES.png create mode 100644 public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_exp_label_es-MX.png create mode 100644 public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_hp_label_boss_es-MX.png create mode 100644 public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_hp_label_es-MX.png create mode 100644 public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_lv_es-MX.png create mode 100644 public/images/ui/legacy/text_images/es-MX/battle_ui/pbinfo_stat_es_MX.json create mode 100644 public/images/ui/legacy/text_images/es-MX/battle_ui/pbinfo_stat_es_MX.png create mode 100644 public/images/ui/legacy/text_images/es-MX/party_ui/party_slot_overlay_hp_es-MX.png create mode 100644 public/images/ui/legacy/text_images/es-MX/party_ui/party_slot_overlay_lv_es-MX.png create mode 100644 public/images/ui/legacy/text_images/fr/battle_ui/overlay_exp_label_fr.png create mode 100644 public/images/ui/legacy/text_images/fr/battle_ui/overlay_hp_label_boss_fr.png create mode 100644 public/images/ui/legacy/text_images/fr/battle_ui/overlay_hp_label_fr.png create mode 100644 public/images/ui/legacy/text_images/fr/battle_ui/overlay_lv_fr.png create mode 100644 public/images/ui/legacy/text_images/fr/battle_ui/pbinfo_stat_fr.json create mode 100644 public/images/ui/legacy/text_images/fr/battle_ui/pbinfo_stat_fr.png create mode 100644 public/images/ui/legacy/text_images/fr/party_ui/party_slot_overlay_hp_fr.png create mode 100644 public/images/ui/legacy/text_images/fr/party_ui/party_slot_overlay_lv_fr.png create mode 100644 public/images/ui/legacy/text_images/it/battle_ui/overlay_exp_label_it.png create mode 100644 public/images/ui/legacy/text_images/it/battle_ui/overlay_hp_label_boss_it.png create mode 100644 public/images/ui/legacy/text_images/it/battle_ui/overlay_hp_label_it.png create mode 100644 public/images/ui/legacy/text_images/it/battle_ui/overlay_lv_it.png create mode 100644 public/images/ui/legacy/text_images/it/battle_ui/pbinfo_stat_it.json create mode 100644 public/images/ui/legacy/text_images/it/battle_ui/pbinfo_stat_it.png create mode 100644 public/images/ui/legacy/text_images/it/party_ui/party_slot_overlay_hp_it.png create mode 100644 public/images/ui/legacy/text_images/it/party_ui/party_slot_overlay_lv_it.png create mode 100644 public/images/ui/legacy/text_images/ja/battle_ui/overlay_exp_label_ja.png create mode 100644 public/images/ui/legacy/text_images/ja/battle_ui/overlay_hp_label_boss_ja.png create mode 100644 public/images/ui/legacy/text_images/ja/battle_ui/overlay_hp_label_ja.png create mode 100644 public/images/ui/legacy/text_images/ja/battle_ui/overlay_lv_ja.png create mode 100644 public/images/ui/legacy/text_images/ja/battle_ui/pbinfo_stat_ja.json create mode 100644 public/images/ui/legacy/text_images/ja/battle_ui/pbinfo_stat_ja.png create mode 100644 public/images/ui/legacy/text_images/ja/party_ui/party_slot_overlay_hp_ja.png create mode 100644 public/images/ui/legacy/text_images/ja/party_ui/party_slot_overlay_lv_ja.png create mode 100644 public/images/ui/legacy/text_images/ko/battle_ui/overlay_exp_label_ko.png create mode 100644 public/images/ui/legacy/text_images/ko/battle_ui/overlay_hp_label_boss_ko.png create mode 100644 public/images/ui/legacy/text_images/ko/battle_ui/overlay_hp_label_ko.png create mode 100644 public/images/ui/legacy/text_images/ko/battle_ui/overlay_lv_ko.png create mode 100644 public/images/ui/legacy/text_images/ko/battle_ui/pbinfo_stat_ko.json create mode 100644 public/images/ui/legacy/text_images/ko/battle_ui/pbinfo_stat_ko.png create mode 100644 public/images/ui/legacy/text_images/ko/party_ui/party_slot_overlay_hp_ko.png create mode 100644 public/images/ui/legacy/text_images/ko/party_ui/party_slot_overlay_lv_ko.png create mode 100644 public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_exp_label_pt-BR.png create mode 100644 public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_hp_label_boss_pt-BR.png create mode 100644 public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_hp_label_pt-BR.png create mode 100644 public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_lv_pt-BR.png create mode 100644 public/images/ui/legacy/text_images/pt-BR/battle_ui/pbinfo_stat_pt-BR.json create mode 100644 public/images/ui/legacy/text_images/pt-BR/battle_ui/pbinfo_stat_pt-BR.png create mode 100644 public/images/ui/legacy/text_images/pt-BR/party_ui/party_slot_overlay_hp_pt-BR.png create mode 100644 public/images/ui/legacy/text_images/pt-BR/party_ui/party_slot_overlay_lv_pt-BR.png create mode 100644 public/images/ui/legacy/text_images/ro/battle_ui/overlay_exp_label_ro.png create mode 100644 public/images/ui/legacy/text_images/ro/battle_ui/overlay_hp_label_boss_ro.png create mode 100644 public/images/ui/legacy/text_images/ro/battle_ui/overlay_hp_label_ro.png create mode 100644 public/images/ui/legacy/text_images/ro/battle_ui/overlay_lv_ro.png create mode 100644 public/images/ui/legacy/text_images/ro/battle_ui/pbinfo_stat_ro.json create mode 100644 public/images/ui/legacy/text_images/ro/battle_ui/pbinfo_stat_ro.png create mode 100644 public/images/ui/legacy/text_images/ro/party_ui/party_slot_overlay_hp_ro.png create mode 100644 public/images/ui/legacy/text_images/ro/party_ui/party_slot_overlay_lv_ro.png create mode 100644 public/images/ui/legacy/text_images/ru/battle_ui/overlay_exp_label_ru.png create mode 100644 public/images/ui/legacy/text_images/ru/battle_ui/overlay_hp_label_boss_ru.png create mode 100644 public/images/ui/legacy/text_images/ru/battle_ui/overlay_hp_label_ru.png create mode 100644 public/images/ui/legacy/text_images/ru/battle_ui/overlay_lv_ru.png create mode 100644 public/images/ui/legacy/text_images/ru/battle_ui/pbinfo_stat_ru.json create mode 100644 public/images/ui/legacy/text_images/ru/battle_ui/pbinfo_stat_ru.png create mode 100644 public/images/ui/legacy/text_images/ru/party_ui/party_slot_overlay_hp_ru.png create mode 100644 public/images/ui/legacy/text_images/ru/party_ui/party_slot_overlay_lv_ru.png create mode 100644 public/images/ui/legacy/text_images/tl/battle_ui/overlay_exp_label_tl.png create mode 100644 public/images/ui/legacy/text_images/tl/battle_ui/overlay_hp_label_boss_tl.png create mode 100644 public/images/ui/legacy/text_images/tl/battle_ui/overlay_hp_label_tl.png create mode 100644 public/images/ui/legacy/text_images/tl/battle_ui/overlay_lv_tl.png create mode 100644 public/images/ui/legacy/text_images/tl/battle_ui/pbinfo_stat_tl.json create mode 100644 public/images/ui/legacy/text_images/tl/battle_ui/pbinfo_stat_tl.png create mode 100644 public/images/ui/legacy/text_images/tl/party_ui/party_slot_overlay_hp_tl.png create mode 100644 public/images/ui/legacy/text_images/tl/party_ui/party_slot_overlay_lv_tl.png create mode 100644 public/images/ui/legacy/text_images/tr/battle_ui/overlay_exp_label_tr.png create mode 100644 public/images/ui/legacy/text_images/tr/battle_ui/overlay_hp_label_boss_tr.png create mode 100644 public/images/ui/legacy/text_images/tr/battle_ui/overlay_hp_label_tr.png create mode 100644 public/images/ui/legacy/text_images/tr/battle_ui/overlay_lv_tr.png create mode 100644 public/images/ui/legacy/text_images/tr/battle_ui/pbinfo_stat_tr.json create mode 100644 public/images/ui/legacy/text_images/tr/battle_ui/pbinfo_stat_tr.png create mode 100644 public/images/ui/legacy/text_images/tr/party_ui/party_slot_overlay_hp_tr.png create mode 100644 public/images/ui/legacy/text_images/tr/party_ui/party_slot_overlay_lv_tr.png create mode 100644 public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_exp_label_zh-CN.png create mode 100644 public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_hp_label_boss_zh-CN.png create mode 100644 public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_hp_label_zh-CN.png create mode 100644 public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_lv_zh-CN.png create mode 100644 public/images/ui/legacy/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json create mode 100644 public/images/ui/legacy/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.png create mode 100644 public/images/ui/legacy/text_images/zh-CN/party_ui/party_slot_overlay_hp_zh-CN.png create mode 100644 public/images/ui/legacy/text_images/zh-CN/party_ui/party_slot_overlay_lv_zh-CN.png create mode 100644 public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_exp_label_zh-TW.png create mode 100644 public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_hp_label_boss_zh-TW.png create mode 100644 public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_hp_label_zh-TW.png create mode 100644 public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_lv_zh-TW.png create mode 100644 public/images/ui/legacy/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json create mode 100644 public/images/ui/legacy/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.png create mode 100644 public/images/ui/legacy/text_images/zh-TW/party_ui/party_slot_overlay_hp_zh-TW.png create mode 100644 public/images/ui/legacy/text_images/zh-TW/party_ui/party_slot_overlay_lv_zh-TW.png delete mode 100644 public/images/ui/overlay_lv.png delete mode 100644 public/images/ui/pbinfo_stat.png create mode 100644 public/images/ui/text_images/ca/battle_ui/overlay_exp_label_ca.png create mode 100644 public/images/ui/text_images/ca/battle_ui/overlay_hp_label_boss_ca.png create mode 100644 public/images/ui/text_images/ca/battle_ui/overlay_hp_label_ca.png create mode 100644 public/images/ui/text_images/ca/battle_ui/overlay_lv_ca.png create mode 100644 public/images/ui/text_images/ca/battle_ui/pbinfo_stat_ca.json create mode 100644 public/images/ui/text_images/ca/battle_ui/pbinfo_stat_ca.png create mode 100644 public/images/ui/text_images/ca/party_ui/party_slot_overlay_hp_ca.png create mode 100644 public/images/ui/text_images/ca/party_ui/party_slot_overlay_lv_ca.png create mode 100644 public/images/ui/text_images/da/battle_ui/overlay_exp_label_da.png create mode 100644 public/images/ui/text_images/da/battle_ui/overlay_hp_label_boss_da.png create mode 100644 public/images/ui/text_images/da/battle_ui/overlay_hp_label_da.png create mode 100644 public/images/ui/text_images/da/battle_ui/overlay_lv_da.png create mode 100644 public/images/ui/text_images/da/battle_ui/pbinfo_stat_da.json create mode 100644 public/images/ui/text_images/da/battle_ui/pbinfo_stat_da.png create mode 100644 public/images/ui/text_images/da/party_ui/party_slot_overlay_hp_da.png rename public/images/ui/{party_slot_overlay_lv.png => text_images/da/party_ui/party_slot_overlay_lv_da.png} (100%) create mode 100644 public/images/ui/text_images/de/battle_ui/overlay_exp_label_de.png create mode 100644 public/images/ui/text_images/de/battle_ui/overlay_hp_label_boss_de.png create mode 100644 public/images/ui/text_images/de/battle_ui/overlay_hp_label_de.png create mode 100644 public/images/ui/text_images/de/battle_ui/overlay_lv_de.png create mode 100644 public/images/ui/text_images/de/battle_ui/pbinfo_stat_de.json create mode 100644 public/images/ui/text_images/de/battle_ui/pbinfo_stat_de.png create mode 100644 public/images/ui/text_images/de/party_ui/party_slot_overlay_hp_de.png create mode 100644 public/images/ui/text_images/de/party_ui/party_slot_overlay_lv_de.png create mode 100644 public/images/ui/text_images/en/battle_ui/overlay_exp_label.png create mode 100644 public/images/ui/text_images/en/battle_ui/overlay_hp_label.png create mode 100644 public/images/ui/text_images/en/battle_ui/overlay_hp_label_boss.png create mode 100644 public/images/ui/text_images/en/battle_ui/overlay_lv.png rename public/images/ui/{ => text_images/en/battle_ui}/pbinfo_stat.json (100%) create mode 100644 public/images/ui/text_images/en/battle_ui/pbinfo_stat.png create mode 100644 public/images/ui/text_images/en/party_ui/party_slot_overlay_hp.png create mode 100644 public/images/ui/text_images/en/party_ui/party_slot_overlay_lv.png create mode 100644 public/images/ui/text_images/es-ES/battle_ui/overlay_exp_label_es-ES.png create mode 100644 public/images/ui/text_images/es-ES/battle_ui/overlay_hp_label_boss_es-ES.png create mode 100644 public/images/ui/text_images/es-ES/battle_ui/overlay_hp_label_es-ES.png create mode 100644 public/images/ui/text_images/es-ES/battle_ui/overlay_lv_es-ES.png create mode 100644 public/images/ui/text_images/es-ES/battle_ui/pbinfo_stat_es-ES.json create mode 100644 public/images/ui/text_images/es-ES/battle_ui/pbinfo_stat_es-ES.png create mode 100644 public/images/ui/text_images/es-ES/party_ui/party_slot_overlay_hp_es-ES.png create mode 100644 public/images/ui/text_images/es-ES/party_ui/party_slot_overlay_lv_es-ES.png create mode 100644 public/images/ui/text_images/es-MX/battle_ui/overlay_exp_label_es-MX.png create mode 100644 public/images/ui/text_images/es-MX/battle_ui/overlay_hp_label_boss_es-MX.png create mode 100644 public/images/ui/text_images/es-MX/battle_ui/overlay_hp_label_es-MX.png create mode 100644 public/images/ui/text_images/es-MX/battle_ui/overlay_lv_es-MX.png create mode 100644 public/images/ui/text_images/es-MX/battle_ui/pbinfo_stat_es-MX.json create mode 100644 public/images/ui/text_images/es-MX/battle_ui/pbinfo_stat_es-MX.png create mode 100644 public/images/ui/text_images/es-MX/party_ui/party_slot_overlay_hp_es-MX.png create mode 100644 public/images/ui/text_images/es-MX/party_ui/party_slot_overlay_lv_es-MX.png create mode 100644 public/images/ui/text_images/fr/battle_ui/overlay_exp_label_fr.png create mode 100644 public/images/ui/text_images/fr/battle_ui/overlay_hp_label_boss_fr.png create mode 100644 public/images/ui/text_images/fr/battle_ui/overlay_hp_label_fr.png create mode 100644 public/images/ui/text_images/fr/battle_ui/overlay_lv_fr.png create mode 100644 public/images/ui/text_images/fr/battle_ui/pbinfo_stat_fr.json create mode 100644 public/images/ui/text_images/fr/battle_ui/pbinfo_stat_fr.png create mode 100644 public/images/ui/text_images/fr/party_ui/party_slot_overlay_hp_fr.png create mode 100644 public/images/ui/text_images/fr/party_ui/party_slot_overlay_lv_fr.png create mode 100644 public/images/ui/text_images/it/battle_ui/overlay_exp_label_it.png create mode 100644 public/images/ui/text_images/it/battle_ui/overlay_hp_label_boss_it.png create mode 100644 public/images/ui/text_images/it/battle_ui/overlay_hp_label_it.png create mode 100644 public/images/ui/text_images/it/battle_ui/overlay_lv_it.png create mode 100644 public/images/ui/text_images/it/battle_ui/pbinfo_stat_it.json create mode 100644 public/images/ui/text_images/it/battle_ui/pbinfo_stat_it.png create mode 100644 public/images/ui/text_images/it/party_ui/party_slot_overlay_hp_it.png create mode 100644 public/images/ui/text_images/it/party_ui/party_slot_overlay_lv_it.png create mode 100644 public/images/ui/text_images/ja/battle_ui/overlay_exp_label_ja.png create mode 100644 public/images/ui/text_images/ja/battle_ui/overlay_hp_label_boss_ja.png create mode 100644 public/images/ui/text_images/ja/battle_ui/overlay_hp_label_ja.png create mode 100644 public/images/ui/text_images/ja/battle_ui/overlay_lv_ja.png create mode 100644 public/images/ui/text_images/ja/battle_ui/pbinfo_stat_ja.json create mode 100644 public/images/ui/text_images/ja/battle_ui/pbinfo_stat_ja.png create mode 100644 public/images/ui/text_images/ja/party_ui/party_slot_overlay_hp_ja.png create mode 100644 public/images/ui/text_images/ja/party_ui/party_slot_overlay_lv_ja.png create mode 100644 public/images/ui/text_images/ko/battle_ui/overlay_exp_label_ko.png create mode 100644 public/images/ui/text_images/ko/battle_ui/overlay_hp_label_boss_ko.png create mode 100644 public/images/ui/text_images/ko/battle_ui/overlay_hp_label_ko.png create mode 100644 public/images/ui/text_images/ko/battle_ui/overlay_lv_ko.png create mode 100644 public/images/ui/text_images/ko/battle_ui/pbinfo_stat_ko.json create mode 100644 public/images/ui/text_images/ko/battle_ui/pbinfo_stat_ko.png create mode 100644 public/images/ui/text_images/ko/party_ui/party_slot_overlay_hp_ko.png create mode 100644 public/images/ui/text_images/ko/party_ui/party_slot_overlay_lv_ko.png create mode 100644 public/images/ui/text_images/pt-BR/battle_ui/overlay_exp_label_pt-BR.png create mode 100644 public/images/ui/text_images/pt-BR/battle_ui/overlay_hp_label_boss_pt-BR.png create mode 100644 public/images/ui/text_images/pt-BR/battle_ui/overlay_hp_label_pt-BR.png create mode 100644 public/images/ui/text_images/pt-BR/battle_ui/overlay_lv_pt-BR.png create mode 100644 public/images/ui/text_images/pt-BR/battle_ui/pbinfo_stat_pt-BR.json create mode 100644 public/images/ui/text_images/pt-BR/battle_ui/pbinfo_stat_pt-BR.png create mode 100644 public/images/ui/text_images/pt-BR/party_ui/party_slot_overlay_hp_pt-BR.png create mode 100644 public/images/ui/text_images/pt-BR/party_ui/party_slot_overlay_lv_pt-BR.png create mode 100644 public/images/ui/text_images/ro/battle_ui/overlay_exp_label_ro.png create mode 100644 public/images/ui/text_images/ro/battle_ui/overlay_hp_label_boss_ro.png create mode 100644 public/images/ui/text_images/ro/battle_ui/overlay_hp_label_ro.png create mode 100644 public/images/ui/text_images/ro/battle_ui/overlay_lv_ro.png create mode 100644 public/images/ui/text_images/ro/battle_ui/pbinfo_stat_ro.json create mode 100644 public/images/ui/text_images/ro/battle_ui/pbinfo_stat_ro.png create mode 100644 public/images/ui/text_images/ro/party_ui/party_slot_overlay_hp_ro.png create mode 100644 public/images/ui/text_images/ro/party_ui/party_slot_overlay_lv_ro.png create mode 100644 public/images/ui/text_images/ru/battle_ui/overlay_exp_label_ru.png create mode 100644 public/images/ui/text_images/ru/battle_ui/overlay_hp_label_boss_ru.png create mode 100644 public/images/ui/text_images/ru/battle_ui/overlay_hp_label_ru.png create mode 100644 public/images/ui/text_images/ru/battle_ui/overlay_lv_ru.png create mode 100644 public/images/ui/text_images/ru/battle_ui/pbinfo_stat_ru.json create mode 100644 public/images/ui/text_images/ru/battle_ui/pbinfo_stat_ru.png create mode 100644 public/images/ui/text_images/ru/party_ui/party_slot_overlay_hp_ru.png create mode 100644 public/images/ui/text_images/ru/party_ui/party_slot_overlay_lv_ru.png create mode 100644 public/images/ui/text_images/tl/battle_ui/overlay_exp_label_tl.png create mode 100644 public/images/ui/text_images/tl/battle_ui/overlay_hp_label_boss_tl.png create mode 100644 public/images/ui/text_images/tl/battle_ui/overlay_hp_label_tl.png create mode 100644 public/images/ui/text_images/tl/battle_ui/overlay_lv_tl.png create mode 100644 public/images/ui/text_images/tl/battle_ui/pbinfo_stat_tl.json create mode 100644 public/images/ui/text_images/tl/battle_ui/pbinfo_stat_tl.png create mode 100644 public/images/ui/text_images/tl/party_ui/party_slot_overlay_hp_tl.png create mode 100644 public/images/ui/text_images/tl/party_ui/party_slot_overlay_lv_tl.png create mode 100644 public/images/ui/text_images/tr/battle_ui/overlay_exp_label_tr.png create mode 100644 public/images/ui/text_images/tr/battle_ui/overlay_hp_label_boss_tr.png create mode 100644 public/images/ui/text_images/tr/battle_ui/overlay_hp_label_tr.png create mode 100644 public/images/ui/text_images/tr/battle_ui/overlay_lv_tr.png create mode 100644 public/images/ui/text_images/tr/battle_ui/pbinfo_stat_tr.json create mode 100644 public/images/ui/text_images/tr/battle_ui/pbinfo_stat_tr.png create mode 100644 public/images/ui/text_images/tr/party_ui/party_slot_overlay_hp_tr.png create mode 100644 public/images/ui/text_images/tr/party_ui/party_slot_overlay_lv_tr.png create mode 100644 public/images/ui/text_images/zh-CN/battle_ui/overlay_exp_label_zh-CN.png create mode 100644 public/images/ui/text_images/zh-CN/battle_ui/overlay_hp_label_boss_zh-CN.png create mode 100644 public/images/ui/text_images/zh-CN/battle_ui/overlay_hp_label_zh-CN.png create mode 100644 public/images/ui/text_images/zh-CN/battle_ui/overlay_lv_zh-CN.png create mode 100644 public/images/ui/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json create mode 100644 public/images/ui/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.png create mode 100644 public/images/ui/text_images/zh-CN/party_ui/party_slot_overlay_hp_zh-CN.png create mode 100644 public/images/ui/text_images/zh-CN/party_ui/party_slot_overlay_lv_zh-CN.png create mode 100644 public/images/ui/text_images/zh-TW/battle_ui/overlay_exp_label_zh-TW.png create mode 100644 public/images/ui/text_images/zh-TW/battle_ui/overlay_hp_label_boss_zh-TW.png create mode 100644 public/images/ui/text_images/zh-TW/battle_ui/overlay_hp_label_zh-TW.png create mode 100644 public/images/ui/text_images/zh-TW/battle_ui/overlay_lv_zh-TW.png create mode 100644 public/images/ui/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json create mode 100644 public/images/ui/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.png create mode 100644 public/images/ui/text_images/zh-TW/party_ui/party_slot_overlay_hp_zh-TW.png create mode 100644 public/images/ui/text_images/zh-TW/party_ui/party_slot_overlay_lv_zh-TW.png diff --git a/public/images/ui/legacy/numbers_alt.png b/public/images/ui/legacy/numbers_alt.png deleted file mode 100644 index fb5104654718c85a083aeaa46a8d57fdf6eb020f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^5kSn&!VDzqlBcTzDgFST5LX~AARr(iAu(&xtk0i6 z`$wEU0Tf~^3GxeOaCmkj4an*7ba4!+h>Ptz$jfBN!*V@j!qixYk_!$Bye-B5O&{_e zZ$F-~B=V$Dk4jfP_o{dX_x7_gA7pMT{?_UiT=|c+q9o!NlXk$o)8``0JO!28%NlR5 zKAhd6e%AEKr$e7|ny&uMvbZO^agtg1>V3y~H;3k5eR{W`o@t$S)pi|$`2V|fz8HC! iDQ{;@`FOv-k6)HeMWA@fl0u-n7(8A5T-G@yGywpVcUV*a diff --git a/public/images/ui/legacy/numbers_red_alt.png b/public/images/ui/legacy/numbers_red_alt.png deleted file mode 100644 index d9edb0468d82ac38c26557d4023a246aefb1c658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^5kSn&!VDzqlBcTzDgFST5LX~AARr(iAu&}}@)ro3fI^HVL4Lsu4$p3+0XaRME{-7;aj|^|d6^7(Sgwamm>TO)a=}4?x25>M=|kS* z?Z-2gM4mM2QR%AZUKP*a-hNi*gUoHk-&);*EB~=pltdh3(hit+`doyWr=W6sS>x^1 zhqGJM&ze5@bm&t~)78IO7WZT~PBIH$z3({h=Ft4BPwy7gGp*CE+O8uI|9_Xx7b6cd h3NRSx} Mp00i_>zopr0QamXH2?qr delta 141 zcmeBST*){=rCun&C&ZP3fuW$FARr*%$Ay3&K(N7Kg;PTsP?WJG$S;_|;n@uk$JNut zF+?IfIYA&uiIc;?z(7k{Qd?SDd#3=Wh@?b|LsZX{(2lLAJR2N6Oie^OLRdOk5_BCG pu5$ERl9AYwp?Fk(NxK9?yqn3lh3oD{0S#pEbY=5%S?83{1ON!gF0B9n diff --git a/public/images/ui/legacy/party_slot_overlay_lv_alt.png b/public/images/ui/legacy/party_slot_overlay_lv_alt.png deleted file mode 100644 index 7aa9a590a1379c15f6e2a9677c6e4556aff7b580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATTRY;PWPi)!k3O z0r`w2L4Lsu4$p3+0XcG>E{-7_vdIih0&HzUY;BhW+CB-jZCc8+wOrE4nbGhN>zvG~ Rx{^SZ44$rjF6*2UngC`j9_Ii6 diff --git a/public/images/ui/legacy/pbinfo_enemy_boss.png b/public/images/ui/legacy/pbinfo_enemy_boss.png index 98b2f09f9417cbfb3f505e772623dd53c16c6a18..20eb74c59b3c1bd42103bde83b712ccb8802d3d2 100644 GIT binary patch delta 249 zcmVX$7!3pi00027CW>nS001hHB_@B?wg3O#|NsA*U}!I=HfUe~gLXwhDg&Vku)!RPn!BkCCaHr>W|ureZE#W? zY;uzh)lEJPF}ZLK%}m}is7)RJ)0^RFhM)b9L>-{9Y+HIGo^aVEOaZm00000NkvXXu0mjfsHS20 delta 282 zcmV+#0pWkU)kd`gSbb@3(n8Ud*q<`VvG5$)+&QQLM32*U`P!m7bGx%L8_u4nLsEEYyg|0 z`b;uGkt)~(R`FHjg5{!M6Oy#ZHen^igup6_O_)WB0i!02nr|>_!U`80z>`=LTD*5- z2b*RQX@bjUW9-06i&zu3xL^lfTGa8ya*9K8k!k{krCebsxVR4@zpxhy4Nah|!U+up wJAy5gB9Op<0Z244i~$p*QtSwZG}0Ua0K#YFp3uCRE&u=k07*qoM6N<$f>TOkF#rGn delta 281 zcmV+!0p|Xa0<;2o`IZ{F)IRM7JbKcgq|Nq|B&b?A=TK~0s z|Ns9=LR$BfbKYxOyp)n700001bW%=J06^y0W&i*HwMj%lRCr!vU|{AlL|O0+VYwxuDbuY=W>k*(Q`hOi&4@*nfm{;tUuyVbp|C6FO(& z1=9$cP%(4W%9X2Dt(?6ZJJ_5~$b?F;2`g9bIfES>Hz#bu-Mcq|Xy;7qV7fVBU%Y$y z^4-gs_>IB_*&U7?mgj0t~2tbQ2XBFo6)o fj$jZZ%@F{I+!FfxW2m5c00000NkvXXu0mjf+wpX$ diff --git a/public/images/ui/legacy/pbinfo_player.png b/public/images/ui/legacy/pbinfo_player.png index 60c92f886aaa950f71f07334f047eaed3d4ded04..f9e16a9aa0c1821dcf7710f4ef3430e007295741 100644 GIT binary patch delta 303 zcmV+~0nq;A0=@!}7=Hu<0001uVxCO^001XYOjJbx0G0p${~r&iz24Tf|Nq|q|Nm$`@zMYQ00MMUPE!B?c9YFG0002QNkl88dG(rIL59(Tl~tR0MGZsYxjGQeZk*XKV30AtfU>AIKYx_WU6P6OJ#F{@06%!& z^pK<~0bZJ@7R0j0D@?7h>SqO~TqRamY)f7nD+pCG+gqU%I19tC055pK3+MPv(@Fq7 z3%mKfxy!Mo5MRg5O`^8KEpBcW{pkw+CprCG@PZdMRxoTq)q+641WtomFi=^+Y7|0~ zBmuBz6rO^CODGA+mm!$9?trS4q;V27Q5P<)i5{*3K9Dm?1gZc4002ovPDHLkV1i6~ Bf}sEa delta 340 zcmV-a0jvJL0^QOSOoUqkIv#by4x39LWx?nhg8n6R2;K-rFoF?`V1(m@S2z^^BS`)uh#xX=lhECWMM0b9(R0NM{f}Io~<$eTWkX@(?Mdkjf0VJj4Tj$CF|NBN)L54r&iz24Tf z|Nq|q|Nldx1*HH000MMUPE!B?c9YFG00020Nklv7G;%=!#02(aB{G3> zI>dxx<*rrafo3y^2}#|%$pkypz$UO8?r5Lcv}-|!qHIdAljOmz9^$KB-zt6c2ic;mZceYt)ir~XHQE@ zR-&lJDNCaS6fg*~lV(6V13C~aBhgMw6G(FbrU49sl!C!#!l((OCIA4eMSf?4u45Gd P0000o`IZ{F)IRM7JbKcgq|Nq|B&b?A=TK~0s z|Ns9=LR$BfbKYxOyp)n700001bW%=J06^y0W&i*Hwn;=mRCr!vfB;4%a)AKU0A&|4 zfwLmS1Yzf}H1a^O5yS+Q@NzOisT0H##^vOKGKdLGt`wW#R)0<$7&T$kgi#YZXW|9Z z2%1nabJfa~t5&U?y&F5&oKDDuN{|UawC41)~4}2or$yaBmupYXATM07*qoM6N<$g0iG|jQ{`u diff --git a/public/images/ui/legacy/pbinfo_stat.png b/public/images/ui/legacy/pbinfo_stat.png deleted file mode 100644 index 25c94f9a8076e6cedffd87d147fde80f0194a058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!#0(@$l{S3lFzsfZIj?#R{bz|;CL=L?6kpTbe*)(N4@9wb{Wf3b{7&f&;Z z5drJvIXrvpYo_etycw!;)IwE^g=J32!jRwBJDInJy|I4x$c?3NOX<(g)y`LYBk#28 zE|_pu!OeO8^W}?0*o|$v92nao6rJZSzkDQ|BRTdU#|ggT=F3<2c}K4+>sf1i%fgMR cy#GhNW4>E};>)L&K!-7Sy85}Sb4q9e0CPW98UO$Q diff --git a/public/images/ui/legacy/text_images/ca/battle_ui/overlay_exp_label_ca.png b/public/images/ui/legacy/text_images/ca/battle_ui/overlay_exp_label_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..acb04a84a31793070378d9cf958105fa8b104d28 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f#0(^7rN5gBq&Ne7LR|j?!E=UVdy9EhnC}Ax z8B2ovf*Bm1-ADs+Bt2amLn`8u53q-otYHXbWKvYnI&zfJgONf1BXg>P+Dc!bA_h-a KKbLh*2~7a2cOP;9 literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ca/battle_ui/overlay_hp_label_boss_ca.png b/public/images/ui/legacy/text_images/ca/battle_ui/overlay_hp_label_boss_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ca/battle_ui/overlay_hp_label_ca.png b/public/images/ui/legacy/text_images/ca/battle_ui/overlay_hp_label_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..4f388b70a75f1238f6d9bb1369f61c0645b1057f GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh)BFFWe{ zl;UgW_WE%=TL+Y7ED7=pW^j0RBMrzg^mK6ysfbH%U=DLM5J=z<2?}CTVq|kvR8>?| tbyRRZa?~~80;`5%U(Iin5dh`2_=MhRu`HW&x?4o-U3d6>+`27kLjE@VI=QsMm0csfDj0$n3-4XvKT= zqVHxY{BT^Q>wW%xlIqp_TJjYO=B=iT!DE>YKQS#xrf9 z3(SFn3~DVhy4fFiuF6NJOj5MYyDHVUp5>%cbs6`z{+NZktR3<+#P+Ic>jrXr) cv~qTK{#y3Z{08W4$S;_|;n|HeAjiL|_t literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/da/battle_ui/overlay_exp_label_da.png b/public/images/ui/legacy/text_images/da/battle_ui/overlay_exp_label_da.png new file mode 100644 index 0000000000000000000000000000000000000000..4c456fff94e65576f0f68c71b7709e41b99926bb GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f#0(^7rN5gBq<8{+LR|j?!E=UVdy9eOL0R8p zKyjv$AirP+hO)_LEr2{pPZ!6Kin!zh>|tvn7#G>q{9s!2?~X0Q5{8g{>}jiO0-ggE OF?hQAxvXNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/da/battle_ui/overlay_hp_label_da.png b/public/images/ui/legacy/text_images/da/battle_ui/overlay_hp_label_da.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/da/battle_ui/overlay_lv_da.png b/public/images/ui/legacy/text_images/da/battle_ui/overlay_lv_da.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/da/battle_ui/pbinfo_stat_da.json b/public/images/ui/legacy/text_images/da/battle_ui/pbinfo_stat_da.json new file mode 100644 index 00000000000..eca2a9071ac --- /dev/null +++ b/public/images/ui/legacy/text_images/da/battle_ui/pbinfo_stat_da.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_da.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/da/battle_ui/pbinfo_stat_da.png b/public/images/ui/legacy/text_images/da/battle_ui/pbinfo_stat_da.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/party_slot_overlay_lv.png b/public/images/ui/legacy/text_images/da/party_ui/party_slot_overlay_lv_da.png similarity index 100% rename from public/images/ui/legacy/party_slot_overlay_lv.png rename to public/images/ui/legacy/text_images/da/party_ui/party_slot_overlay_lv_da.png diff --git a/public/images/ui/legacy/text_images/de/battle_ui/overlay_exp_label_de.png b/public/images/ui/legacy/text_images/de/battle_ui/overlay_exp_label_de.png new file mode 100644 index 0000000000000000000000000000000000000000..4c456fff94e65576f0f68c71b7709e41b99926bb GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f#0(^7rN5gBq<8{+LR|j?!E=UVdy9eOL0R8p zKyjv$AirP+hO)_LEr2{pPZ!6Kin!zh>|tvn7#G>q{9s!2?~X0Q5{8g{>}jiO0-ggE OF?hQAxvXNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/de/battle_ui/overlay_hp_label_de.png b/public/images/ui/legacy/text_images/de/battle_ui/overlay_hp_label_de.png new file mode 100644 index 0000000000000000000000000000000000000000..b8404159bc93079db787b7dfe1db5c68fb20ca05 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMrzg^mK6ysfbH%U=DLM5J=z<2?`Mk3KB{X5D8*Z uQdDrhaUIEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/de/battle_ui/pbinfo_stat_de.json b/public/images/ui/legacy/text_images/de/battle_ui/pbinfo_stat_de.json new file mode 100644 index 00000000000..c5ace776596 --- /dev/null +++ b/public/images/ui/legacy/text_images/de/battle_ui/pbinfo_stat_de.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_de.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/de/battle_ui/pbinfo_stat_de.png b/public/images/ui/legacy/text_images/de/battle_ui/pbinfo_stat_de.png new file mode 100644 index 0000000000000000000000000000000000000000..8de02e9f16e39742c34ecb0852f1837a656dc95e GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDWL$L5LY1W;NWoY+SdR7|3esN z>%U(Iin5dh`2_=MhRu`HW&x>APZ!6Kin!G7gSk?n*KjE*J)Wv8W4$S;_|;n|HeAjiPd#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0uhly n5fK(c7ZzDphpYuWJMgTe~DWM4fbfhG~ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/de/party_ui/party_slot_overlay_lv_de.png b/public/images/ui/legacy/text_images/de/party_ui/party_slot_overlay_lv_de.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/en/battle_ui/overlay_exp_label.png b/public/images/ui/legacy/text_images/en/battle_ui/overlay_exp_label.png new file mode 100644 index 0000000000000000000000000000000000000000..40b5e8925a1b3dbfcb82560db7225ebbda8e3d88 GIT binary patch literal 1401 zcmbVMzfaUq952Bjpezy+Wok+^7;XF7yI$!F74Zsk#v*}Bz)9b=@9r9|eYJhZ-I3^E zSd5FV#y`Or7bXWy7~OQy#leL*xtOREzTS@p3`(TQ>-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/en/battle_ui/overlay_hp_label.png b/public/images/ui/legacy/text_images/en/battle_ui/overlay_hp_label.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/en/battle_ui/overlay_hp_label_boss.png b/public/images/ui/legacy/text_images/en/battle_ui/overlay_hp_label_boss.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/en/battle_ui/overlay_lv.png b/public/images/ui/legacy/text_images/en/battle_ui/overlay_lv.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/pbinfo_stat.json b/public/images/ui/legacy/text_images/en/battle_ui/pbinfo_stat.json similarity index 100% rename from public/images/ui/legacy/pbinfo_stat.json rename to public/images/ui/legacy/text_images/en/battle_ui/pbinfo_stat.json diff --git a/public/images/ui/legacy/text_images/en/battle_ui/pbinfo_stat.png b/public/images/ui/legacy/text_images/en/battle_ui/pbinfo_stat.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/en/party_ui/party_slot_overlay_lv.png b/public/images/ui/legacy/text_images/en/party_ui/party_slot_overlay_lv.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_exp_label_es-ES.png b/public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_exp_label_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..acb04a84a31793070378d9cf958105fa8b104d28 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f#0(^7rN5gBq&Ne7LR|j?!E=UVdy9EhnC}Ax z8B2ovf*Bm1-ADs+Bt2amLn`8u53q-otYHXbWKvYnI&zfJgONf1BXg>P+Dc!bA_h-a KKbLh*2~7a2cOP;9 literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_hp_label_boss_es-ES.png b/public/images/ui/legacy/text_images/es-ES/battle_ui/overlay_hp_label_boss_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..6018011d75bf5ba58aded90339304d7354e74a90 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQP?T_?GDTNT?| tbyRRZa?~~80;`5%U(Iin5dh`2_=MhRu`HW&x>fo-U3d6>+`&7kLjGaJc*|Fw0Q)uy%M_!hGL;QQH5| zs&tW+_EVXd>@5T~eT~2EU$HQLgZ*juxG1}%2S2_vKI9RIQrvvceL|2*{v1}$-yfuT zW^k4m7zRyvwNYDmen{LNZE1bW3WE)PoH;3^uqng8{-qJ Z9&s=5DO-NouIn7gC!Vf;F6*2UngAPkZmR$Q literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/es-ES/party_ui/party_slot_overlay_hp_es-ES.png b/public/images/ui/legacy/text_images/es-ES/party_ui/party_slot_overlay_hp_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..981d8573acab5cd43b100adbd3995babe8dd034e GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96Jg1Oj|QT!HkD4Gupp1QZk$1Ox;; z_&xnSP>8W4$S;_|;n|HeAjiL|_t literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_exp_label_es-MX.png b/public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_exp_label_es-MX.png new file mode 100644 index 0000000000000000000000000000000000000000..acb04a84a31793070378d9cf958105fa8b104d28 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f#0(^7rN5gBq&Ne7LR|j?!E=UVdy9EhnC}Ax z8B2ovf*Bm1-ADs+Bt2amLn`8u53q-otYHXbWKvYnI&zfJgONf1BXg>P+Dc!bA_h-a KKbLh*2~7a2cOP;9 literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_hp_label_boss_es-MX.png b/public/images/ui/legacy/text_images/es-MX/battle_ui/overlay_hp_label_boss_es-MX.png new file mode 100644 index 0000000000000000000000000000000000000000..6018011d75bf5ba58aded90339304d7354e74a90 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQP?T_?GDTNT?| tbyRRZa?~~80;`5%U(Iin5dh`2_=MhRu`HW&x>fo-U3d6>+`&7kLjGaJc*|Fw0Q)uy%M_!hGL;QQH5| zs&tW+_EVXd>@5T~eT~2EU$HQLgZ*juxG1}%2S2_vKI9RIQrvvceL|2*{v1}$-yfuT zW^k4m7zRyvwNYDmen{LNZE1bW3WE)PoH;3^uqng8{-qJ Z9&s=5DO-NouIn7gC!Vf;F6*2UngAPkZmR$Q literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/es-MX/party_ui/party_slot_overlay_hp_es-MX.png b/public/images/ui/legacy/text_images/es-MX/party_ui/party_slot_overlay_hp_es-MX.png new file mode 100644 index 0000000000000000000000000000000000000000..981d8573acab5cd43b100adbd3995babe8dd034e GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96Jg1Oj|QT!HkD4Gupp1QZk$1Ox;; z_&xnSP>8W4$S;_|;n|HeAjiL|_t literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/fr/battle_ui/overlay_exp_label_fr.png b/public/images/ui/legacy/text_images/fr/battle_ui/overlay_exp_label_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..40b5e8925a1b3dbfcb82560db7225ebbda8e3d88 GIT binary patch literal 1401 zcmbVMzfaUq952Bjpezy+Wok+^7;XF7yI$!F74Zsk#v*}Bz)9b=@9r9|eYJhZ-I3^E zSd5FV#y`Or7bXWy7~OQy#leL*xtOREzTS@p3`(TQ>-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/fr/battle_ui/overlay_hp_label_boss_fr.png b/public/images/ui/legacy/text_images/fr/battle_ui/overlay_hp_label_boss_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/fr/battle_ui/overlay_hp_label_fr.png b/public/images/ui/legacy/text_images/fr/battle_ui/overlay_hp_label_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..3f7e12c3246f4d7b445002a4963a36dbe85ab373 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Q zb9?V)M_vCB_XjA;SQ6wH%;50sMjDW#@9E+gQW2Njz%1ryAdpZX5)>p96e5%$AQB|h sWYE&v%i7D^7_?|%Q`4d*rh=mk^;smg8_sU*lRn1P{e@>vTYPuA1LF{C0cnW5>putc4I!Vmk#hkxzbuK$*pww8$@_#3B* Thf!iJP$7e-tDnm{r-UW|x{D|8 literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/fr/battle_ui/pbinfo_stat_fr.json b/public/images/ui/legacy/text_images/fr/battle_ui/pbinfo_stat_fr.json new file mode 100644 index 00000000000..00cc9f7ea0e --- /dev/null +++ b/public/images/ui/legacy/text_images/fr/battle_ui/pbinfo_stat_fr.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_fr.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 8 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 18, + "h": 8 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 8 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 18, + "h": 8 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 8 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 16, + "h": 8 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 8 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 12, + "h": 8 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 8 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 12, + "h": 8 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 8 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 12, + "h": 8 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 8 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 12, + "h": 8 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 8 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 12, + "h": 8 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 8 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 8, + "h": 8 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 8 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/fr/battle_ui/pbinfo_stat_fr.png b/public/images/ui/legacy/text_images/fr/battle_ui/pbinfo_stat_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..1919561ddfe1415983277fed18b1230d4dc2b6b0 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0v!VDx2WT+_sDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DOh>ud*ZefYdrq7srr_xZ2)}nMWLWT*R-59tl5aCHq2DA$|G(Sw&foQPxOtZ) zC^(#Wu%nn;}k4TVZ~IM|eej*}+fVZZ}t^E}ymK>GmZhOVVyUDa8W4$S;_|;n|HeAjjC##WAEJE;+%Vkdcv{ElpijRb5n-olRI>RGs5+V8Dey q7l9)Jg@uA5jH?(8WnyI>>|*fe=ej5FlJXL$ox#)9&t;ucLK6V*;U%L0 literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/fr/party_ui/party_slot_overlay_lv_fr.png b/public/images/ui/legacy/text_images/fr/party_ui/party_slot_overlay_lv_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bbec23b0737888443a4d2040a8a19dd5a29320 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRM#0(_E7Tct<7UrG+vTYPtw!HF{C0c`2c%Z#u|n|d7pm`E9~X@7&IB2RoPs3Eb?vv PDq`?-^>bP0l+XkK%XK46 literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/it/battle_ui/overlay_hp_label_boss_it.png b/public/images/ui/legacy/text_images/it/battle_ui/overlay_hp_label_boss_it.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/it/battle_ui/overlay_hp_label_it.png b/public/images/ui/legacy/text_images/it/battle_ui/overlay_hp_label_it.png new file mode 100644 index 0000000000000000000000000000000000000000..4f388b70a75f1238f6d9bb1369f61c0645b1057f GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh)BFFWe{ zl;UgW_WE%=TL+Y7ED7=pW^j0RBMrzg^mK6ysfbH%U=DLM5J=z<2?}CTVq|kvR8>?| tbyRRZa?~~80;`5{2`X49@^n OFnGH9xvX%U(Iin5dh`2_=MhRu`HW&x=so-U3d6>+Bh7c*HLd7Rljq&Rl-KKZ6~L;K(_@w6-T z+7rWFn5P{%JR@?xp2$1qqyI0s9%!xG(Z+u3BlqclT5=Hwu3h8xbvTr9TvU!D_2$1> zJGtWb{JPg`>C_%{vi0%Nf(k3+(^vPcxy#+=eqX&|v19uSrHtesK4*R(JaPI#r)bA> zo|xk8X_dY0?9cAs{+Std$^5?VRt?`=``5nW+BODvef?kCyKab6-~B8m1>|l|S3j3^ HP68W4$S;_|;n|HeAjiNo>$(k4 zkg+7lFPOpM*^M+HN5s>`F{C0cdB%Z;E)&VHETfh#CI%~WmScP?cf|tb89ZJ6T-G@y GGywn-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ja/battle_ui/overlay_hp_label_boss_ja.png b/public/images/ui/legacy/text_images/ja/battle_ui/overlay_hp_label_boss_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ja/battle_ui/overlay_hp_label_ja.png b/public/images/ui/legacy/text_images/ja/battle_ui/overlay_hp_label_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ja/battle_ui/overlay_lv_ja.png b/public/images/ui/legacy/text_images/ja/battle_ui/overlay_lv_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ja/battle_ui/pbinfo_stat_ja.json b/public/images/ui/legacy/text_images/ja/battle_ui/pbinfo_stat_ja.json new file mode 100644 index 00000000000..d8907e8e68c --- /dev/null +++ b/public/images/ui/legacy/text_images/ja/battle_ui/pbinfo_stat_ja.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_ja.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/ja/battle_ui/pbinfo_stat_ja.png b/public/images/ui/legacy/text_images/ja/battle_ui/pbinfo_stat_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ja/party_ui/party_slot_overlay_lv_ja.png b/public/images/ui/legacy/text_images/ja/party_ui/party_slot_overlay_lv_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ko/battle_ui/overlay_exp_label_ko.png b/public/images/ui/legacy/text_images/ko/battle_ui/overlay_exp_label_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..40b5e8925a1b3dbfcb82560db7225ebbda8e3d88 GIT binary patch literal 1401 zcmbVMzfaUq952Bjpezy+Wok+^7;XF7yI$!F74Zsk#v*}Bz)9b=@9r9|eYJhZ-I3^E zSd5FV#y`Or7bXWy7~OQy#leL*xtOREzTS@p3`(TQ>-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ko/battle_ui/overlay_hp_label_boss_ko.png b/public/images/ui/legacy/text_images/ko/battle_ui/overlay_hp_label_boss_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ko/battle_ui/overlay_hp_label_ko.png b/public/images/ui/legacy/text_images/ko/battle_ui/overlay_hp_label_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ko/battle_ui/overlay_lv_ko.png b/public/images/ui/legacy/text_images/ko/battle_ui/overlay_lv_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ko/battle_ui/pbinfo_stat_ko.json b/public/images/ui/legacy/text_images/ko/battle_ui/pbinfo_stat_ko.json new file mode 100644 index 00000000000..359e3a5b76f --- /dev/null +++ b/public/images/ui/legacy/text_images/ko/battle_ui/pbinfo_stat_ko.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_ko.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/ko/battle_ui/pbinfo_stat_ko.png b/public/images/ui/legacy/text_images/ko/battle_ui/pbinfo_stat_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ko/party_ui/party_slot_overlay_lv_ko.png b/public/images/ui/legacy/text_images/ko/party_ui/party_slot_overlay_lv_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_exp_label_pt-BR.png b/public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_exp_label_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..acb04a84a31793070378d9cf958105fa8b104d28 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f#0(^7rN5gBq&Ne7LR|j?!E=UVdy9EhnC}Ax z8B2ovf*Bm1-ADs+Bt2amLn`8u53q-otYHXbWKvYnI&zfJgONf1BXg>P+Dc!bA_h-a KKbLh*2~7a2cOP;9 literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_hp_label_boss_pt-BR.png b/public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_hp_label_boss_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_hp_label_pt-BR.png b/public/images/ui/legacy/text_images/pt-BR/battle_ui/overlay_hp_label_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..4f388b70a75f1238f6d9bb1369f61c0645b1057f GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh)BFFWe{ zl;UgW_WE%=TL+Y7ED7=pW^j0RBMrzg^mK6ysfbH%U=DLM5J=z<2?}CTVq|kvR8>?| tbyRRZa?~~80;`5%U(Iin5dh`2_=MhRu`HW`QVA7srr_xZd7CJ|;sBm!CKG9;|A*$~@zmbjd%?X}{x- z&b;PU@6*E2KT}{$&GDTN`aZe;u~_%>dSP#yvX^tQ7{_gwva_#0ELU1@=XmJmp9V(T zMkcc`t{|z<){2QmA6Mr6c~T`Iv7Y5xQSqviUtXRLDQma*VOcGa@v4}iU`IkmNbIFA zuBT*u&m{j~eV?3F!z{5ddurCK%k$G7zj^Uwc3^OQ|`wr*Zh6#2#Q@5Jp2+1=t= WZ^}aNbj9?5yy5BU=d#Wzp$P!ba(E5^ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/pt-BR/party_ui/party_slot_overlay_hp_pt-BR.png b/public/images/ui/legacy/text_images/pt-BR/party_ui/party_slot_overlay_hp_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..981d8573acab5cd43b100adbd3995babe8dd034e GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96Jg1Oj|QT!HkD4Gupp1QZk$1Ox;; z_&xnSP>8W4$S;_|;n|HeAjiL|_t literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ro/battle_ui/overlay_exp_label_ro.png b/public/images/ui/legacy/text_images/ro/battle_ui/overlay_exp_label_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..40b5e8925a1b3dbfcb82560db7225ebbda8e3d88 GIT binary patch literal 1401 zcmbVMzfaUq952Bjpezy+Wok+^7;XF7yI$!F74Zsk#v*}Bz)9b=@9r9|eYJhZ-I3^E zSd5FV#y`Or7bXWy7~OQy#leL*xtOREzTS@p3`(TQ>-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ro/battle_ui/overlay_hp_label_boss_ro.png b/public/images/ui/legacy/text_images/ro/battle_ui/overlay_hp_label_boss_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ro/battle_ui/overlay_hp_label_ro.png b/public/images/ui/legacy/text_images/ro/battle_ui/overlay_hp_label_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ro/battle_ui/overlay_lv_ro.png b/public/images/ui/legacy/text_images/ro/battle_ui/overlay_lv_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ro/battle_ui/pbinfo_stat_ro.json b/public/images/ui/legacy/text_images/ro/battle_ui/pbinfo_stat_ro.json new file mode 100644 index 00000000000..8c268a77098 --- /dev/null +++ b/public/images/ui/legacy/text_images/ro/battle_ui/pbinfo_stat_ro.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_ro.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/ro/battle_ui/pbinfo_stat_ro.png b/public/images/ui/legacy/text_images/ro/battle_ui/pbinfo_stat_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ro/party_ui/party_slot_overlay_lv_ro.png b/public/images/ui/legacy/text_images/ro/party_ui/party_slot_overlay_lv_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ru/battle_ui/overlay_exp_label_ru.png b/public/images/ui/legacy/text_images/ru/battle_ui/overlay_exp_label_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..d88171084086ba5f0f90cc33203e9d926f8727ce GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f!VF@mOPc~I{s5m4*Z)B9oZ;BsVhHK@y~GeG z#at5P7Yw9-l^wYUq~ttZ978JNk`+XESTrcKVUGR>j48#x z*9(Po))f8;P3Jex@s3+GD~}^YZ|AXD2`&Q9c{w)hOSUe)`^4<}{tt}OKP8%dLhNdR PCNg-s`njxgN@xNAG8jAe literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ru/battle_ui/overlay_hp_label_ru.png b/public/images/ui/legacy/text_images/ru/battle_ui/overlay_hp_label_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..490c93f8d3975fc1b9785db7ad412e8608802042 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh)BFFWe{ zl;UgW_WE%=TL+Y7ED7=pW^j0RBMrzg@^o8(ARQ9K sV&oFz!V)Xf7mdKI;Vst01{d(#{d8T literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/ru/battle_ui/overlay_lv_ru.png b/public/images/ui/legacy/text_images/ru/battle_ui/overlay_lv_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..e8760560dfaf68d4b21cdad96506af1c7d14277d GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U4`~f~8uJ^8OP1W=K|Np;}lM|4A zbg|-BpcHdSkY6y6{#AD59*|P^ba4!+h)XswOcZGmJjTa!PEAdXM@OOQ;E@}xjt7q( fndsq)}JzX3_D&l;55Are@^054EU<=4N5Tn%~Wb^;Tk-yuW z=4|$}=$Fkb6U{vFJo^AsvB#E)nRoUT^h}xlv48vAvyL2%k{c8>?ov*g&pNa>{GwlN`m~F? bu3!Dfm}i-`E3f3T2FNR(u6{1-oD!M8W4$S;_|;n|HeAjiPd#WAEJE;+%Vkdcv{ElpijRb5@3olRI>Rh{E-;Dw8> n0W60Ym=;L6J30z5uj6LO_2pi?@psl@pk4+~S3j3^P60f0>?g1$^PZ!6KinwG0!$1)ir8&MmvJw$KK0Xo>3N0JCnVY*i em6<1mFfcUtvF_z@=6ej(!QkoY=d#Wzp$P!A0VaC@ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tl/battle_ui/overlay_exp_label_tl.png b/public/images/ui/legacy/text_images/tl/battle_ui/overlay_exp_label_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..40b5e8925a1b3dbfcb82560db7225ebbda8e3d88 GIT binary patch literal 1401 zcmbVMzfaUq952Bjpezy+Wok+^7;XF7yI$!F74Zsk#v*}Bz)9b=@9r9|eYJhZ-I3^E zSd5FV#y`Or7bXWy7~OQy#leL*xtOREzTS@p3`(TQ>-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tl/battle_ui/overlay_hp_label_boss_tl.png b/public/images/ui/legacy/text_images/tl/battle_ui/overlay_hp_label_boss_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tl/battle_ui/overlay_hp_label_tl.png b/public/images/ui/legacy/text_images/tl/battle_ui/overlay_hp_label_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tl/battle_ui/overlay_lv_tl.png b/public/images/ui/legacy/text_images/tl/battle_ui/overlay_lv_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tl/battle_ui/pbinfo_stat_tl.json b/public/images/ui/legacy/text_images/tl/battle_ui/pbinfo_stat_tl.json new file mode 100644 index 00000000000..023a5ee45f9 --- /dev/null +++ b/public/images/ui/legacy/text_images/tl/battle_ui/pbinfo_stat_tl.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_tl.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/tl/battle_ui/pbinfo_stat_tl.png b/public/images/ui/legacy/text_images/tl/battle_ui/pbinfo_stat_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tl/party_ui/party_slot_overlay_lv_tl.png b/public/images/ui/legacy/text_images/tl/party_ui/party_slot_overlay_lv_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tr/battle_ui/overlay_exp_label_tr.png b/public/images/ui/legacy/text_images/tr/battle_ui/overlay_exp_label_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9bd8825819f8f45c6d9535e454a71d082a97c7 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{f!VF@mOPc~I{s5m4*Z=?jAKP2}|2YE?0U1}` zOjrk$VlD~t3kK4^%8uLvQgWUyjv*Cs$qJ%7EOuG!uyD9>sOuOP8&AQuM#C0n2G4S4 V`w#LZmw_r7JYD@<);T3K0RS=hC~p7& literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tr/battle_ui/overlay_hp_label_boss_tr.png b/public/images/ui/legacy/text_images/tr/battle_ui/overlay_hp_label_boss_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tr/battle_ui/overlay_hp_label_tr.png b/public/images/ui/legacy/text_images/tr/battle_ui/overlay_hp_label_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..da11c11cb50cb2734e2e628d82195263138daede GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh)BFFWe{ zl;UgW_WE%=TL+Y7ED7=pW^j0RBMr#W_jGX#sfbH%U=DLM5J=z<2?}CTVq|kvR8a&wJOl{{R2q$;k=G zsFzCi0ZK8K1o;I6>0f0>?g1$^PZ!6Kin!zeGr@!egF;5ZE;TitbAAp^M_4>0c3bQ= e*kRFS!NB03z^XWN@`=qr9SokXelF{r5}E*?Rwr5j literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/tr/battle_ui/pbinfo_stat_tr.json b/public/images/ui/legacy/text_images/tr/battle_ui/pbinfo_stat_tr.json new file mode 100644 index 00000000000..6de50500767 --- /dev/null +++ b/public/images/ui/legacy/text_images/tr/battle_ui/pbinfo_stat_tr.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_tr.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/tr/battle_ui/pbinfo_stat_tr.png b/public/images/ui/legacy/text_images/tr/battle_ui/pbinfo_stat_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAjinl#WAEJE;+%Vkdcv{ElpijRiOyT2`U64CL5#nph3g&EVwxSqlmZ{{R2~st-^rgQu&X%Q~loCIFvFF^m8J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_exp_label_zh-CN.png b/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_exp_label_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..40b5e8925a1b3dbfcb82560db7225ebbda8e3d88 GIT binary patch literal 1401 zcmbVMzfaUq952Bjpezy+Wok+^7;XF7yI$!F74Zsk#v*}Bz)9b=@9r9|eYJhZ-I3^E zSd5FV#y`Or7bXWy7~OQy#leL*xtOREzTS@p3`(TQ>-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_hp_label_boss_zh-CN.png b/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_hp_label_boss_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_hp_label_zh-CN.png b/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_hp_label_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_lv_zh-CN.png b/public/images/ui/legacy/text_images/zh-CN/battle_ui/overlay_lv_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json b/public/images/ui/legacy/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json new file mode 100644 index 00000000000..49649bbc315 --- /dev/null +++ b/public/images/ui/legacy/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_zh-CN.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.png b/public/images/ui/legacy/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-CN/party_ui/party_slot_overlay_lv_zh-CN.png b/public/images/ui/legacy/text_images/zh-CN/party_ui/party_slot_overlay_lv_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_exp_label_zh-TW.png b/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_exp_label_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..40b5e8925a1b3dbfcb82560db7225ebbda8e3d88 GIT binary patch literal 1401 zcmbVMzfaUq952Bjpezy+Wok+^7;XF7yI$!F74Zsk#v*}Bz)9b=@9r9|eYJhZ-I3^E zSd5FV#y`Or7bXWy7~OQy#leL*xtOREzTS@p3`(TQ>-+V2pYQMQqou{`Bg5mv9LJ3m z7OZ79kFjxbaDe@HhX#^qC|tN5bKI%XWb|>*o}cBo6JNdJ8eOw*LWlSga!CnGO+RF4 zj+>rohR9jRlrQ0m7ns7g*KY*gb4_7Yvwca7O<^_>$gkN;e4a#@*QA{2C|Q-)4N1uXL(N|1RiNlH z&}Ahf0tJE`%ou$46PUEfEyHDNzAKCEOrc6?2xYm^Xh@BWM52nU7=|GORaRAzA;h>9 zP}CHIc%sK(;n<11ka{HG6Gl`bb!rMs(~b##n9>Gu*GZzL))lgM*5F%cVICo(*}z0Y=wF2h-8wP>T*(p9V_HN4Q$`-tJfZ!HGyQA zb|1D$`xg#a(~4Mk+Ieu}KI?3`f;C&59CLo|?alOWD?5Yw_m7{y?19r~-p)_F8{K`s sdv$#4>G>zWK#OYDx#166k1zD~b1&{}|M;ZSS4nd$%q?0kuibt48<8ltA^-pY literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_hp_label_boss_zh-TW.png b/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_hp_label_boss_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..283d63fb235a416b3244c48f3915efc696ef55c1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX!VDxut3KrdDWL$L5ZC`eu(kU8l;V5YQPNkKH-| PG?2m5)z4*}Q$iB}IL1A+ literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_hp_label_zh-TW.png b/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_hp_label_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..67824c7ee4e61e92f26c658f4ca03de81e78bffc GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngk!VDx;S96H~DWL$L5ZC|z{|9A9{oh*seM<4Y z?5Jz!_G+KJZ3&cRED7=pW^j0RBMr#W^K@|xsfbH%U=DLM5J=z<2@(lK r;7LqQR$%h#+|kjogM;gUC^JK&8q2FYbJ8vWbuxIm`njxgN@xNAczi2J literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_lv_zh-TW.png b/public/images/ui/legacy/text_images/zh-TW/battle_ui/overlay_lv_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..ea32ac03ee21098b52fcaf67fa2564acc4b0f169 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+D)IEGZjCC@m(;AXrqBUQ_J1qXvY6Ps}IlINU2c?M5cKbLh* G2~7ZOmmCfN literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json b/public/images/ui/legacy/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json new file mode 100644 index 00000000000..5a2e0fe2c30 --- /dev/null +++ b/public/images/ui/legacy/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_zh-TW.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 0, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 18, + "h": 6 + }, + "frame": { + "x": 18, + "y": 0, + "w": 18, + "h": 6 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 16, + "h": 6 + }, + "frame": { + "x": 36, + "y": 0, + "w": 16, + "h": 6 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 52, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 64, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 76, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 88, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 12, + "h": 6 + }, + "frame": { + "x": 100, + "y": 0, + "w": 12, + "h": 6 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 8, + "h": 6 + }, + "frame": { + "x": 112, + "y": 0, + "w": 8, + "h": 6 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/legacy/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.png b/public/images/ui/legacy/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..c729e7a2207ca6b2fd4dc50a86d82a35118b275a GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0!!VDyTCAkLxDgFST5LY05@7mV?|NlEUH~<;z zT}AE#g_ui%{DMI$%Z}UwQk|YIjv*Csw!Ig5ofUbG_*Lax5`4tCV#nX~R};mjdL+E* zf8jVkpRw_lE9;M%stiVjPw=yFfX3({s<_SRfSjzp)) zKmQwi&1s1qE|ZCxzTC%F_>?m}Ws+SGHP`33=FyK&CorD8{q2-!#8W4$S;_|;n|HeAV=TR#WAEJE;+%Vkdcv{ElpiiRb5q;olRK4`6%a!0ud1w mB>`ub3xO<4*iJRPW@7Lt<0>_{cxnSsD}$%2pUXO@geCxPBPDtO literal 0 HcmV?d00001 diff --git a/public/images/ui/legacy/text_images/zh-TW/party_ui/party_slot_overlay_lv_zh-TW.png b/public/images/ui/legacy/text_images/zh-TW/party_ui/party_slot_overlay_lv_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..11bb545c7affbde77af5aac4f1de158d934f56d4 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$efR}XF0A3uH+6cqfNc-#pn z$XF8O7tG-B>_!@pBkJkm7{U>q>=SW-!!;*BgTe~ HDWM4f##kP+ literal 0 HcmV?d00001 diff --git a/public/images/ui/overlay_lv.png b/public/images/ui/overlay_lv.png deleted file mode 100644 index 6ced2da2660c9eec9aaf776259483dfcfc02ce46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^+(69E#0(@CGsK?*Qak}ZA+A7LQBkp}wC(@@|6!Y- z@B{gbB|(0{3=Yq3qyag~o-U3d9J0xYU+y0`bb;Z>8b%!+8D1Tp`u+_DC+rduJAU&s YL>yyxZ7$t!094N4>FVdQ&MBb@0N}PHk^lez diff --git a/public/images/ui/party_slot_hp_bar.png b/public/images/ui/party_slot_hp_bar.png index 181bd04c0ea744ce1f717d2dd97ae0b19075c9b8..c1818439e75a1f9b99672cc41835f1ae9b1c3a0d 100644 GIT binary patch delta 105 zcmZ3$*v&XWGwJ{T{|pQaKYsjBR8%xHG@SeYK?0D^R1)MD%)n4K`K$$yr|Ie97*Y|J z+`!}}uGFZ&%(Fp5kW)r7;lRlm9t)g0#RMzopr07VZi2mk;8 diff --git a/public/images/ui/pbinfo_enemy_boss.png b/public/images/ui/pbinfo_enemy_boss.png index ce829bf46319da69f9361b177861d8cb3483d633..421edabba03c3af6915719d66028dd00a24cc3bc 100644 GIT binary patch delta 224 zcmV<603ZLN0{j7xB!3uCOjJbx00960{~;kEHZ4A5V`J9V*7*4N|NsB96=@Ry0007X zQchC<0CtnjH~;_ukx4{BRCr$P)iDZyFbqcFpWdK1C~eify+IM&1#x%q0HXBz+QE*h zkO+$J0N;=V0?8Gl3J2WlOuk0C4|q$g3>E&(Aw{%b!%TB!KXB(SCgr90M40aq-DT16x@U|_xs6~Afn0fo01Yki4fYxT-RsqAPlM|zyA2e#i2wiq M07*qoM6N<$f_|TQAOHXW diff --git a/public/images/ui/pbinfo_enemy_mini.png b/public/images/ui/pbinfo_enemy_mini.png index ddf107767784f608b86b404e08b9c872d17d6af3..bf60bb0f964cbe3eea6acecca7988585481fe36b 100644 GIT binary patch delta 223 zcmV<503iR90{a1wB!3uCOjJbx00960{~;kEHZ4A5V`J9V*7*4N|NsB96=@Ry0007X zQchC<0CtnjH~;_ukV!;ARCr$P)iDZ$Fc5{|M{eK^LZWV;+&~0-LAJNp1BjCA?^-yO zWAU6~3;%ZDgJd8*L_t(|UhUMe3d0}}fMM|wd;&R}rnA05xF-+-oimiqS-J;O zeC(P+%n+4wTp>gLSwFZF6vs#cDZL5Ck+O_}bi_2DV5ov+6L6#>r+I{J2>KYO@aNYA zYXHnof@u0o9xolDf>PfzVilfY--OsjqZ>|6U002ovPDHLkV1h0fYZL$g diff --git a/public/images/ui/pbinfo_player.png b/public/images/ui/pbinfo_player.png index c7b2227e8009d48f321aca057c652feb89b8ae7b..55c381bd436c821a4fc4f5eeefb26f0ca3e5eb06 100644 GIT binary patch delta 257 zcmV+c0sj8j0-XYoB!3=IOjJbx00960{~;kEHZ4A5V`G|L_t(|UftF~3WOjOhw*qfXio6Zh}!B6Voord_5mHF zRqJ-$wv=XPQqMmaeXBtHfl^vgruH78*i)k1%tIh6ijjhr33>)7kQK%_K}!V#6Ud5V zl%VB;0SROiVlRB7sk8j37pgVZ(#+we)(v+~sN=$w-RQ|L2DR)->yBqcg@_#Hpx8?_h{&GKrfLX-`S33SsL>h@#00000NkvXX Hu0mjfd)#)x delta 317 zcmV-D0mA;B0@wnOB!4GROjJbx0001angF`<4ze#HAt5#`J~{t;V`F2QlA6}m*7Ni8 z`1tt$|Nk}I21Wn?00DGTPE!Ct=GbNc007@fL_t(|UhUQ~4uUWg$Kej|2wuR(BX9s> z{*@3M%MD0R(4-e|a%S-!Y_5(TN{a(ADOesgIQW~JFT92p#D81=z)B2J%_>hRD4w7b z3RE-8(+P?z=wt%b?DABC;tP7YFg*mc0#w8pw#QX`w^7su$Xig2^I;;u5a)`v8niQTj!8Y9}3R0p}uilCYrsSKi6>&*u7f)cSXI z>Tj0DE0#dLAU5TGyOUDQ9%2wSkYEY|zSlGG{y+rhjEZ1%j_&j|VfGXc-G>W?OL{;# P00000NkvXXu0mjfvoVit diff --git a/public/images/ui/pbinfo_player_mini.png b/public/images/ui/pbinfo_player_mini.png index 90d5e03dae845086de1c1202903b48ad3147621a..255ad00f8cad728d0e92c7eb8eedeba5b4138426 100644 GIT binary patch delta 225 zcmV<703QF80{sDyB!3uCOjJbx00960{~;kEHZ4A5V`J9V*7*4N|NsB96=@Ry0007X zQchC<0CtnjH~;_ul1W5CRCr$P)G-Q#Fc5{|M{ck;2#IQ++&~0-LF_H|0E?3AuNFy_ zu^6YYn7@7SK@tc)Pm>Y=<5*cB3qG<6f`W<6teoJvLJ$*7WLjsX1kV>j7F2l4YoZzH z9Mv@r$ikYae%-g;)~9q7!Q2R&tJhtEEyBbT_9CENsAlpM?Kz?d4eurgK;o}{nhGkY bpaRt&G?;vWYa6_d00000NkvXXu0mjf?aN>Y delta 248 zcmVdlgdQ%om5l$@uhn{dRg4&}xvLKxG!dYcTKe>H!SBuP&vUMeG6vlo*90000+(JhFnaB0iNzKW& zvig#I=K0B~PH)8m68E%rtu>TjYIpdSwBJQyM(4H*D?|7m#ha@|yQZ`q znrqP`*gkcdQ2Tt@Q+F=1sj*~mDo@+^JayTVo0gk4HHUld+joI8;ojZ}xBpK{SeyNW YVWDURgH6UQkQW#{UHx3vIVCg!07p1)UH||9 diff --git a/public/images/ui/text_images/ca/battle_ui/overlay_exp_label_ca.png b/public/images/ui/text_images/ca/battle_ui/overlay_exp_label_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ca/battle_ui/overlay_hp_label_boss_ca.png b/public/images/ui/text_images/ca/battle_ui/overlay_hp_label_boss_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ca/battle_ui/overlay_hp_label_ca.png b/public/images/ui/text_images/ca/battle_ui/overlay_hp_label_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7ccba752f616e929200052cf590d6aecdbbc92 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj<3?vofZfOE3{s5m4S4Bld%m39tl5dkfka1W; z;Q&yIsU*lRn1P{e@>vTY&(PDwF{C0+wxf}g!GPoNDZLw_zuE{6aB literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ca/battle_ui/overlay_lv_ca.png b/public/images/ui/text_images/ca/battle_ui/overlay_lv_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..869a1ee0051e250ca529dce8a0e1ad60311262cc GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+Gb1zgD%auH-4-Eb(rt@t^#|NlU;sk9Bq za9kuLK*#Y}OYmdvQUK zuQcz;3U1d+5{fdv$_|t<@zqKn0Xg4P pea^|g$IfoNd^T!-*cykQ%xs6M_pdJFS_AYCgQu&X%Q~loCIG@sc7^}| literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ca/party_ui/party_slot_overlay_hp_ca.png b/public/images/ui/text_images/ca/party_ui/party_slot_overlay_hp_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc95e4f95e8d6ce67a830c47147845b9eada2b8 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^*Z=?j|M>C4z`&rOpx^?V z{XC#JV@Z%-FoVOh8)-m}s;7%%NJU)og{UoEjfq*M8O(>boLI%ywlXxjan00+ygX7q bt0fo~i*OZ}EAd+aH86O(`njxgN@xNARZ=J! literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ca/party_ui/party_slot_overlay_lv_ca.png b/public/images/ui/text_images/ca/party_ui/party_slot_overlay_lv_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..c5971de4fd005e1a917668e47e5b7094cd447f07 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^*Z*LkprFuH+IIc$;weCJ z#*!evU*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/da/battle_ui/overlay_hp_label_da.png b/public/images/ui/text_images/da/battle_ui/overlay_hp_label_da.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/da/battle_ui/overlay_lv_da.png b/public/images/ui/text_images/da/battle_ui/overlay_lv_da.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/da/battle_ui/pbinfo_stat_da.json b/public/images/ui/text_images/da/battle_ui/pbinfo_stat_da.json new file mode 100644 index 00000000000..5108fa59582 --- /dev/null +++ b/public/images/ui/text_images/da/battle_ui/pbinfo_stat_da.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_da.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/da/battle_ui/pbinfo_stat_da.png b/public/images/ui/text_images/da/battle_ui/pbinfo_stat_da.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/da/party_ui/party_slot_overlay_hp_da.png b/public/images/ui/text_images/da/party_ui/party_slot_overlay_hp_da.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/party_slot_overlay_lv.png b/public/images/ui/text_images/da/party_ui/party_slot_overlay_lv_da.png similarity index 100% rename from public/images/ui/party_slot_overlay_lv.png rename to public/images/ui/text_images/da/party_ui/party_slot_overlay_lv_da.png diff --git a/public/images/ui/text_images/de/battle_ui/overlay_exp_label_de.png b/public/images/ui/text_images/de/battle_ui/overlay_exp_label_de.png new file mode 100644 index 0000000000000000000000000000000000000000..39a92725bc0ffbc81c8e5c5cb98379d9efeb2674 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj=ZOfV@O3@G6ySD+nUJJVMZzLxwpAemijVwvKky*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/de/battle_ui/overlay_hp_label_de.png b/public/images/ui/text_images/de/battle_ui/overlay_hp_label_de.png new file mode 100644 index 0000000000000000000000000000000000000000..8b227eebd7a70a2a5fc7e8fc8473547120f5d931 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj<3?vofZfOE3p#Yx{*Z=?jTmG-++oTUfii(Or z_C3CXr-8D}B|(0{K>AnNk$XVOz|+Msq#`akp|BvaurM*9fS0qBm$xi|LC8U^gRk+@ pL50E%H67f{%-xH-yO^1o84~XBSkAvuehH|T!PC{xWt~$(69B2QEDQhu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/de/battle_ui/overlay_lv_de.png b/public/images/ui/text_images/de/battle_ui/overlay_lv_de.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/de/battle_ui/pbinfo_stat_de.json b/public/images/ui/text_images/de/battle_ui/pbinfo_stat_de.json new file mode 100644 index 00000000000..dbf39c94059 --- /dev/null +++ b/public/images/ui/text_images/de/battle_ui/pbinfo_stat_de.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_de.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/de/battle_ui/pbinfo_stat_de.png b/public/images/ui/text_images/de/battle_ui/pbinfo_stat_de.png new file mode 100644 index 0000000000000000000000000000000000000000..b8bcb6138b968236b484358a56e89c0f9d70a6db GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K!VDzurW-E666=mz)&{%tOby_+SA1`q#~|%;zdqoLmp@2LlZfZp86J~FdhGWJ|xGrO zv+jt|5>IFMSHDiAh|b@%zGSOpa^5!{-S_Vv79PGMaV`94Ge0-a6f>C{ix)ELsDzi7 zS2ATapWgcS!Qqz16FVaeZry2Sn09ThxyHNiZEquMKP2|4PFenOk7LKARU4|r7Wn7B zG-%7rJZVa=N|~wc)&GAR{`RaF|8UhOeWv@$&p>B0 Nc)I$ztaD0e0su|(Z4Ceb literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/de/party_ui/party_slot_overlay_hp_de.png b/public/images/ui/text_images/de/party_ui/party_slot_overlay_hp_de.png new file mode 100644 index 0000000000000000000000000000000000000000..47ac22e52cb9cfe432a1ab6a3f5e1298ee0652a7 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^*Z=?j|M>C4z`&rOpx^?V z{XC#JV@Z%-FoVOh8)-m}lBbJfNJU)og@`R(jfqhy70idPoC;BxD0z?JNtz*ps+0u7 Y3>D608w1s}fT|fhUHx3vIVCg!0Jdo+CIA2c literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/de/party_ui/party_slot_overlay_lv_de.png b/public/images/ui/text_images/de/party_ui/party_slot_overlay_lv_de.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/en/battle_ui/overlay_exp_label.png b/public/images/ui/text_images/en/battle_ui/overlay_exp_label.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/en/battle_ui/overlay_hp_label.png b/public/images/ui/text_images/en/battle_ui/overlay_hp_label.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/en/battle_ui/overlay_hp_label_boss.png b/public/images/ui/text_images/en/battle_ui/overlay_hp_label_boss.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/en/battle_ui/overlay_lv.png b/public/images/ui/text_images/en/battle_ui/overlay_lv.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/pbinfo_stat.json b/public/images/ui/text_images/en/battle_ui/pbinfo_stat.json similarity index 100% rename from public/images/ui/pbinfo_stat.json rename to public/images/ui/text_images/en/battle_ui/pbinfo_stat.json diff --git a/public/images/ui/text_images/en/battle_ui/pbinfo_stat.png b/public/images/ui/text_images/en/battle_ui/pbinfo_stat.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/en/party_ui/party_slot_overlay_hp.png b/public/images/ui/text_images/en/party_ui/party_slot_overlay_hp.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/en/party_ui/party_slot_overlay_lv.png b/public/images/ui/text_images/en/party_ui/party_slot_overlay_lv.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-ES/battle_ui/overlay_exp_label_es-ES.png b/public/images/ui/text_images/es-ES/battle_ui/overlay_exp_label_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-ES/battle_ui/overlay_hp_label_boss_es-ES.png b/public/images/ui/text_images/es-ES/battle_ui/overlay_hp_label_boss_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..440ba6136dc87f67fb8b57236d8777e30d435c4d GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC!VDz;`FiF7DbWC*5ZC|z|0^mg?lzSD9HRv! zfove-#LVjRKm{x%L4LtNnql+gv{^vP(bL5-q#`cafqmhcg#j#2HY{sh>KMo{W4aWV zBO}k6g$@@(ID`^7yj`bpdwMfwdZn_wPUhte<>fWy6%gU&6=h&}enM)>G7r{zkfENg KelF{r5}E)j3@>y5 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-ES/battle_ui/overlay_hp_label_es-ES.png b/public/images/ui/text_images/es-ES/battle_ui/overlay_hp_label_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7ccba752f616e929200052cf590d6aecdbbc92 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj<3?vofZfOE3{s5m4S4Bld%m39tl5dkfka1W; z;Q&yIsU*lRn1P{e@>vTY&(PDwF{C0+wxf}g!GPoNDZLw_zuE{6aB literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-ES/battle_ui/overlay_lv_es-ES.png b/public/images/ui/text_images/es-ES/battle_ui/overlay_lv_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..869a1ee0051e250ca529dce8a0e1ad60311262cc GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+Gb1zgD%auH-4-Eb(rt@t^#|NlU;sk9Bq za9kC4z`&rOpx^?V z{XC#JV@Z%-FoVOh8)-m}s;7%%NJU)og{UoEjfq*M8O(>boLI%ywlXxjan00+ygX7q bt0fo~i*OZ}EAd+aH86O(`njxgN@xNARZ=J! literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-ES/party_ui/party_slot_overlay_lv_es-ES.png b/public/images/ui/text_images/es-ES/party_ui/party_slot_overlay_lv_es-ES.png new file mode 100644 index 0000000000000000000000000000000000000000..c5971de4fd005e1a917668e47e5b7094cd447f07 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^*Z*LkprFuH+IIc$;weCJ z#*!evU XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-MX/battle_ui/overlay_hp_label_boss_es-MX.png b/public/images/ui/text_images/es-MX/battle_ui/overlay_hp_label_boss_es-MX.png new file mode 100644 index 0000000000000000000000000000000000000000..440ba6136dc87f67fb8b57236d8777e30d435c4d GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC!VDz;`FiF7DbWC*5ZC|z|0^mg?lzSD9HRv! zfove-#LVjRKm{x%L4LtNnql+gv{^vP(bL5-q#`cafqmhcg#j#2HY{sh>KMo{W4aWV zBO}k6g$@@(ID`^7yj`bpdwMfwdZn_wPUhte<>fWy6%gU&6=h&}enM)>G7r{zkfENg KelF{r5}E)j3@>y5 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-MX/battle_ui/overlay_hp_label_es-MX.png b/public/images/ui/text_images/es-MX/battle_ui/overlay_hp_label_es-MX.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7ccba752f616e929200052cf590d6aecdbbc92 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj<3?vofZfOE3{s5m4S4Bld%m39tl5dkfka1W; z;Q&yIsU*lRn1P{e@>vTY&(PDwF{C0+wxf}g!GPoNDZLw_zuE{6aB literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-MX/battle_ui/overlay_lv_es-MX.png b/public/images/ui/text_images/es-MX/battle_ui/overlay_lv_es-MX.png new file mode 100644 index 0000000000000000000000000000000000000000..869a1ee0051e250ca529dce8a0e1ad60311262cc GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+Gb1zgD%auH-4-Eb(rt@t^#|NlU;sk9Bq za9kC4z`&rOpx^?V z{XC#JV@Z%-FoVOh8)-m}s;7%%NJU)og{UoEjfq*M8O(>boLI%ywlXxjan00+ygX7q bt0fo~i*OZ}EAd+aH86O(`njxgN@xNARZ=J! literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/es-MX/party_ui/party_slot_overlay_lv_es-MX.png b/public/images/ui/text_images/es-MX/party_ui/party_slot_overlay_lv_es-MX.png new file mode 100644 index 0000000000000000000000000000000000000000..c5971de4fd005e1a917668e47e5b7094cd447f07 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^*Z*LkprFuH+IIc$;weCJ z#*!evU XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/fr/battle_ui/overlay_hp_label_boss_fr.png b/public/images/ui/text_images/fr/battle_ui/overlay_hp_label_boss_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/fr/battle_ui/overlay_hp_label_fr.png b/public/images/ui/text_images/fr/battle_ui/overlay_hp_label_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..e086339f047615cd38b7e7fc2b08849f397c9ab6 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jTmG+BR8-{Kr2jV3 z=owI)u_VYZn8D%MjWi%f#nZ(xq#`c)Le!S7#>A}DEat;oJR}UaTFIP<5o{KXYh3Ob6Mw<&;$Uo#3ytB literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/fr/battle_ui/overlay_lv_fr.png b/public/images/ui/text_images/fr/battle_ui/overlay_lv_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9ccb6d02d8be6ab3d9f0196ec8e3d427e247f7 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@!VDyjmkZ_sDgFST5LZP-#sB~RL&&DmHiolb z*nv_^B|(0{3=CzH&sqR^%APKcAr*1S0YO1R2?1e7OhRr7hmLkMI!4~~;8aOtnH0*z Y;M~ppvt1_bI#4--r>mdKI;Vst0I5?Y4FCWD literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/fr/battle_ui/pbinfo_stat_fr.json b/public/images/ui/text_images/fr/battle_ui/pbinfo_stat_fr.json new file mode 100644 index 00000000000..1275fe16ec3 --- /dev/null +++ b/public/images/ui/text_images/fr/battle_ui/pbinfo_stat_fr.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_fr.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 9 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 19, + "h": 9 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 9 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 19, + "h": 9 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 9 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 17, + "h": 9 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 9 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 13, + "h": 9 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 9 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 13, + "h": 9 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 9 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 13, + "h": 9 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 9 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 13, + "h": 9 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 9 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 13, + "h": 9 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 9 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": -1, + "w": 9, + "h": 9 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 9 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/fr/battle_ui/pbinfo_stat_fr.png b/public/images/ui/text_images/fr/battle_ui/pbinfo_stat_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..baea5c8d93cebdefaad4f2949c545441aaa7d4eb GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!F!VDyz=LTH^QbGYfA+A7LQBm>#|NlU;sk9Bq za9kzopr0PQ1v)c^nh literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/fr/party_ui/party_slot_overlay_hp_fr.png b/public/images/ui/text_images/fr/party_ui/party_slot_overlay_hp_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..140c99eef6886b265f5d6d22bc93f38a475e702a GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^*Z=?j|M>C4z`&rOpx^?V z{XC#JV@Z%-FoVOh8)-m}il>WXNJU)og{UoEjfq*QSQJ}$S;_Ip=|P53m{L$)5S5QA}*PMSyffljV)DGSs{@{DW-=-a>~@+DGo_)3X!S| Y4t&gaZ}Bkg2dZcAboFyt=akR{08s8CF#rGn literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/it/battle_ui/overlay_exp_label_it.png b/public/images/ui/text_images/it/battle_ui/overlay_exp_label_it.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad5855cc46ea34559600c71bf71becdbfea2093 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj*_Q~V@O3@G6yd&Z{mqr+j3Q%%WiC)$`iSHoiA%AtHA+A Zh8vSOH=fu0y&b5U!PC{xWt~$(695j7C7l2O literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/it/battle_ui/overlay_hp_label_boss_it.png b/public/images/ui/text_images/it/battle_ui/overlay_hp_label_boss_it.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/it/battle_ui/overlay_hp_label_it.png b/public/images/ui/text_images/it/battle_ui/overlay_hp_label_it.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7ccba752f616e929200052cf590d6aecdbbc92 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj<3?vofZfOE3{s5m4S4Bld%m39tl5dkfka1W; z;Q&yIsU*lRn1P{e@>vTY&(PDwF{C0+wxf}g!GPoNDZLw_zuE{6aB literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/it/battle_ui/overlay_lv_it.png b/public/images/ui/text_images/it/battle_ui/overlay_lv_it.png new file mode 100644 index 0000000000000000000000000000000000000000..987d806b93a4abab3cf51571751e91adff240af6 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQk(%kA+G=b|5s2@0Fn|LxSWB4 zj3q&S!3+-1ZlnP@VxBIJAr*1S9Ek}YjSH^?w5^%Rvv47U;$P+$R}{|F16441y85}S Ib4q9e09`gAwg3PC literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/it/battle_ui/pbinfo_stat_it.json b/public/images/ui/text_images/it/battle_ui/pbinfo_stat_it.json new file mode 100644 index 00000000000..111a88ba365 --- /dev/null +++ b/public/images/ui/text_images/it/battle_ui/pbinfo_stat_it.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_it.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/it/battle_ui/pbinfo_stat_it.png b/public/images/ui/text_images/it/battle_ui/pbinfo_stat_it.png new file mode 100644 index 0000000000000000000000000000000000000000..c2ac58da1847c38084481ba978019b0dea4eb974 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K!VDzurW-E#|NlU;sk9Bq za9kn!-_d=^A>m-aO;T*+z|Fy-+fBtd>yN-k>(cl5F3e|4lZilcE{iUy|}IPPt*Br fi}x=sKVv`LJ7Y5Mv^0O9Cm1|k{an^LB{Ts5H79fd literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/it/party_ui/party_slot_overlay_hp_it.png b/public/images/ui/text_images/it/party_ui/party_slot_overlay_hp_it.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc95e4f95e8d6ce67a830c47147845b9eada2b8 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^*Z=?j|M>C4z`&rOpx^?V z{XC#JV@Z%-FoVOh8)-m}s;7%%NJU)og{UoEjfq*M8O(>boLI%ywlXxjan00+ygX7q bt0fo~i*OZ}EAd+aH86O(`njxgN@xNARZ=J! literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/it/party_ui/party_slot_overlay_lv_it.png b/public/images/ui/text_images/it/party_ui/party_slot_overlay_lv_it.png new file mode 100644 index 0000000000000000000000000000000000000000..31a2a31dd411542f95aac9f347334c52bae5882a GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^&H$ef*Z=?jD<~)cNr??y&OkxN zk|4ie28U-i(tsQZPZ!6KinwHkCIPlK5eYBe)DyE#3II)2Vqku8DxpXcsD{DQ)z4*} HQ$iB}0+$_t literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ja/battle_ui/overlay_exp_label_ja.png b/public/images/ui/text_images/ja/battle_ui/overlay_exp_label_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ja/battle_ui/overlay_hp_label_boss_ja.png b/public/images/ui/text_images/ja/battle_ui/overlay_hp_label_boss_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ja/battle_ui/overlay_hp_label_ja.png b/public/images/ui/text_images/ja/battle_ui/overlay_hp_label_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ja/battle_ui/overlay_lv_ja.png b/public/images/ui/text_images/ja/battle_ui/overlay_lv_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ja/battle_ui/pbinfo_stat_ja.json b/public/images/ui/text_images/ja/battle_ui/pbinfo_stat_ja.json new file mode 100644 index 00000000000..d8de5c788ef --- /dev/null +++ b/public/images/ui/text_images/ja/battle_ui/pbinfo_stat_ja.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_ja.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/ja/battle_ui/pbinfo_stat_ja.png b/public/images/ui/text_images/ja/battle_ui/pbinfo_stat_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ja/party_ui/party_slot_overlay_hp_ja.png b/public/images/ui/text_images/ja/party_ui/party_slot_overlay_hp_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ja/party_ui/party_slot_overlay_lv_ja.png b/public/images/ui/text_images/ja/party_ui/party_slot_overlay_lv_ja.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ko/battle_ui/overlay_exp_label_ko.png b/public/images/ui/text_images/ko/battle_ui/overlay_exp_label_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ko/battle_ui/overlay_hp_label_boss_ko.png b/public/images/ui/text_images/ko/battle_ui/overlay_hp_label_boss_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ko/battle_ui/overlay_hp_label_ko.png b/public/images/ui/text_images/ko/battle_ui/overlay_hp_label_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ko/battle_ui/overlay_lv_ko.png b/public/images/ui/text_images/ko/battle_ui/overlay_lv_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ko/battle_ui/pbinfo_stat_ko.json b/public/images/ui/text_images/ko/battle_ui/pbinfo_stat_ko.json new file mode 100644 index 00000000000..a1d660dfca3 --- /dev/null +++ b/public/images/ui/text_images/ko/battle_ui/pbinfo_stat_ko.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_ko.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/ko/battle_ui/pbinfo_stat_ko.png b/public/images/ui/text_images/ko/battle_ui/pbinfo_stat_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ko/party_ui/party_slot_overlay_hp_ko.png b/public/images/ui/text_images/ko/party_ui/party_slot_overlay_hp_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ko/party_ui/party_slot_overlay_lv_ko.png b/public/images/ui/text_images/ko/party_ui/party_slot_overlay_lv_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/pt-BR/battle_ui/overlay_exp_label_pt-BR.png b/public/images/ui/text_images/pt-BR/battle_ui/overlay_exp_label_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/pt-BR/battle_ui/overlay_hp_label_boss_pt-BR.png b/public/images/ui/text_images/pt-BR/battle_ui/overlay_hp_label_boss_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/pt-BR/battle_ui/overlay_hp_label_pt-BR.png b/public/images/ui/text_images/pt-BR/battle_ui/overlay_hp_label_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7ccba752f616e929200052cf590d6aecdbbc92 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj<3?vofZfOE3{s5m4S4Bld%m39tl5dkfka1W; z;Q&yIsU*lRn1P{e@>vTY&(PDwF{C0+wxf}g!GPoNDZLw_zuE{6aB literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/pt-BR/battle_ui/overlay_lv_pt-BR.png b/public/images/ui/text_images/pt-BR/battle_ui/overlay_lv_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..869a1ee0051e250ca529dce8a0e1ad60311262cc GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+Gb1zgD%auH-4-Eb(rt@t^#|NlU;sk9Bq za9kw9#I#NL}$ z7hek>UN({M)zWusj$U$eI_cvOx=?^s@NC6GwkI17&)(qvRGP=@bV#6SgxGpx?Kw+R zPt-D<^$RI-I31AAR%7&FwxdXPo6Co%0qzO~c@K6pcO8?JT5VzZtuycYiI!vwb=$*5 k@jutj71NC`XL`x&`n=XW_u1B6K%X#py85}Sb4q9e060K(@c;k- literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/pt-BR/party_ui/party_slot_overlay_hp_pt-BR.png b/public/images/ui/text_images/pt-BR/party_ui/party_slot_overlay_hp_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc95e4f95e8d6ce67a830c47147845b9eada2b8 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^*Z=?j|M>C4z`&rOpx^?V z{XC#JV@Z%-FoVOh8)-m}s;7%%NJU)og{UoEjfq*M8O(>boLI%ywlXxjan00+ygX7q bt0fo~i*OZ}EAd+aH86O(`njxgN@xNARZ=J! literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/pt-BR/party_ui/party_slot_overlay_lv_pt-BR.png b/public/images/ui/text_images/pt-BR/party_ui/party_slot_overlay_lv_pt-BR.png new file mode 100644 index 0000000000000000000000000000000000000000..c5971de4fd005e1a917668e47e5b7094cd447f07 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^*Z*LkprFuH+IIc$;weCJ z#*!evU XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ro/battle_ui/overlay_hp_label_boss_ro.png b/public/images/ui/text_images/ro/battle_ui/overlay_hp_label_boss_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ro/battle_ui/overlay_hp_label_ro.png b/public/images/ui/text_images/ro/battle_ui/overlay_hp_label_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ro/battle_ui/overlay_lv_ro.png b/public/images/ui/text_images/ro/battle_ui/overlay_lv_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ro/battle_ui/pbinfo_stat_ro.json b/public/images/ui/text_images/ro/battle_ui/pbinfo_stat_ro.json new file mode 100644 index 00000000000..b5f74fdd7cc --- /dev/null +++ b/public/images/ui/text_images/ro/battle_ui/pbinfo_stat_ro.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_ro.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/ro/battle_ui/pbinfo_stat_ro.png b/public/images/ui/text_images/ro/battle_ui/pbinfo_stat_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ro/party_ui/party_slot_overlay_hp_ro.png b/public/images/ui/text_images/ro/party_ui/party_slot_overlay_hp_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ro/party_ui/party_slot_overlay_lv_ro.png b/public/images/ui/text_images/ro/party_ui/party_slot_overlay_lv_ro.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ru/battle_ui/overlay_exp_label_ru.png b/public/images/ui/text_images/ru/battle_ui/overlay_exp_label_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..8342acb74fbd61926096e54d2396a61a13f97a0f GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p!VDxo^Ia$eQv3lvA+G=b|5sF0WZ3nYp>h_G z@#9GALZB2=NswPK14G&5vlc*}nx~6nNJU(7K_e5Jx~izEDv)4P7Zp`i7FV6XG2_z4&Gl8AnNk$XT&$J50zq#`ak!OVd2OwYOrw0kp)RPZ;mWjl9O^|K~B<} kGYgiaEID%Ez!DV(hUiw7cIP1ea-dEIPgg&ebxsLQ03%Q>s{jB1 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/ru/battle_ui/pbinfo_stat_ru.json b/public/images/ui/text_images/ru/battle_ui/pbinfo_stat_ru.json new file mode 100644 index 00000000000..61618578d25 --- /dev/null +++ b/public/images/ui/text_images/ru/battle_ui/pbinfo_stat_ru.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_ru.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 8 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 8 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 8 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 8 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 8 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 8 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 8 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 8 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 8 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 8 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 8 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 8 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 8 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 8 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 8 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 8 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 8 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 8 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 8 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/ru/battle_ui/pbinfo_stat_ru.png b/public/images/ui/text_images/ru/battle_ui/pbinfo_stat_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..9688d78d42532a1c340b48270f69b190addcacb6 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!7!VDyJ3>%AqlxToYh%1m*R8(v#ZTtWKKb$em zYVIna1WQSfUoenn*gQFH7LdB)>Eakt5jS<>>(0Xl0xi5N9gc{q@E)1QJz?j?5QUI~ zZ@$GJTFCCF_dm~pd$;@d_N`?F#Uaa z?bOG!_ii1FKeFGd;Qxzlzm?C_aVNTR6xP4%{~%Uu8$`0V!=y7srr_xa0&gGd3kQwqWsaVPRorHsN&fWbt%^Tp^(( i24VJd2OwYOrw0kp)RPZ;mWjl9O^|K~B<} kGYgiaEID%Ez!DV(hUiw7cIP1ea-dEIPgg&ebxsLQ03%Q>s{jB1 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tl/battle_ui/overlay_exp_label_tl.png b/public/images/ui/text_images/tl/battle_ui/overlay_exp_label_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tl/battle_ui/overlay_hp_label_boss_tl.png b/public/images/ui/text_images/tl/battle_ui/overlay_hp_label_boss_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tl/battle_ui/overlay_hp_label_tl.png b/public/images/ui/text_images/tl/battle_ui/overlay_hp_label_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tl/battle_ui/overlay_lv_tl.png b/public/images/ui/text_images/tl/battle_ui/overlay_lv_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tl/battle_ui/pbinfo_stat_tl.json b/public/images/ui/text_images/tl/battle_ui/pbinfo_stat_tl.json new file mode 100644 index 00000000000..d2277c79f24 --- /dev/null +++ b/public/images/ui/text_images/tl/battle_ui/pbinfo_stat_tl.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_tl.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/tl/battle_ui/pbinfo_stat_tl.png b/public/images/ui/text_images/tl/battle_ui/pbinfo_stat_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tl/party_ui/party_slot_overlay_hp_tl.png b/public/images/ui/text_images/tl/party_ui/party_slot_overlay_hp_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tl/party_ui/party_slot_overlay_lv_tl.png b/public/images/ui/text_images/tl/party_ui/party_slot_overlay_lv_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tr/battle_ui/overlay_exp_label_tr.png b/public/images/ui/text_images/tr/battle_ui/overlay_exp_label_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..0920a95fba26347b0a38107833f4efcf8e4e6f06 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj=ZOfV@O3@G6ySD+nUJJVMZ>lv9nJph_a@1HXV7uz;NUR W$GmU-FOL9~GI+ZBxvX*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tr/battle_ui/overlay_hp_label_tr.png b/public/images/ui/text_images/tr/battle_ui/overlay_hp_label_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..e28aceaf0fa69a3d89f609941474a722c76c5fb3 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj<3?vofZfOE3{s5m4*Z=?jD}n*vCVk8Q)!M6h zwSiJhB|(0{3=CzH&sqR^`kpS1Ar*1S0zpAcN^ESY;^Ly>>8xy`;;N$R;;ahyC4ID4 lIvjPZQDxgu#mdIU@WO@t_kueG=Yd)oJYD@<);T3K0RYu;BP;*_ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tr/battle_ui/overlay_lv_tr.png b/public/images/ui/text_images/tr/battle_ui/overlay_lv_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..5140444ec158a0bedc28aa6b11d4f6f835515004 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+G+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tr/party_ui/party_slot_overlay_hp_tr.png b/public/images/ui/text_images/tr/party_ui/party_slot_overlay_hp_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..bb0017bcb582c6c4ccc1d87a9493bb4d53076d8e GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML%3?yGMarOWyp#Yx{S0HU*U|?uy_~XZqf`S4d zySQM{aiAzuNswPK14G&5vlc*}zNd?0NJU(-057j-P*73=hoKptnOR^0hZ!fYnNe5* o2XEttMwbnO0dhmdKI;Vst09^bfYXATM literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/tr/party_ui/party_slot_overlay_lv_tr.png b/public/images/ui/text_images/tr/party_ui/party_slot_overlay_lv_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..12782430b9e2f39a3010f74cc17dde19d661ed9d GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^*Z=?jD<~)c$)?ga4#TT= zf#QrML4Lsu4$p3+0XYhuE{-7;amfh@2^^&fD~b|4cvDx*J1OvOx}tTjqKOED)lb$p UN4@5K0;*;3boFyt=akR{07v;IsQ>@~ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-CN/battle_ui/overlay_exp_label_zh-CN.png b/public/images/ui/text_images/zh-CN/battle_ui/overlay_exp_label_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-CN/battle_ui/overlay_hp_label_boss_zh-CN.png b/public/images/ui/text_images/zh-CN/battle_ui/overlay_hp_label_boss_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-CN/battle_ui/overlay_hp_label_zh-CN.png b/public/images/ui/text_images/zh-CN/battle_ui/overlay_hp_label_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-CN/battle_ui/overlay_lv_zh-CN.png b/public/images/ui/text_images/zh-CN/battle_ui/overlay_lv_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json b/public/images/ui/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json new file mode 100644 index 00000000000..22a1da0b536 --- /dev/null +++ b/public/images/ui/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_zh-CN.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.png b/public/images/ui/text_images/zh-CN/battle_ui/pbinfo_stat_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-CN/party_ui/party_slot_overlay_hp_zh-CN.png b/public/images/ui/text_images/zh-CN/party_ui/party_slot_overlay_hp_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-CN/party_ui/party_slot_overlay_lv_zh-CN.png b/public/images/ui/text_images/zh-CN/party_ui/party_slot_overlay_lv_zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-TW/battle_ui/overlay_exp_label_zh-TW.png b/public/images/ui/text_images/zh-TW/battle_ui/overlay_exp_label_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..fde37213effdba1b333d1473a6b50afb1c49ad79 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~p#0(^B{8TRjDV_kI5ZC|z|0^mgGVJ=yP&rF* z^3@QaIAckWUoeBivm0qZj)JF)V@O3@G6yd&Z{mqrUvpHQ%WiC$s&Fl2LIeY|3 XMVwo=-0qVDs%7wW^>bP0l+XkKy&fbu literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-TW/battle_ui/overlay_hp_label_boss_zh-TW.png b/public/images/ui/text_images/zh-TW/battle_ui/overlay_hp_label_boss_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcec679e05ec0550ddedd3d24c8bff2c7c78b12 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMC#0(@0dH0+HQak}ZA+G=b|Nk7LrKqU5+fcU3 zMt(g|oUtUxFPOpM*^M+H$IR2kF{C0cxq)%5>*|J%#>A}BAJ<-7U~9`X4qm?YOjg2- usF}OATFIP=7u~vrQN@0%(H_QSatxDH#8WrgwnqR>VDNPHb6Mw<&;$S(1TUBX literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-TW/battle_ui/overlay_hp_label_zh-TW.png b/public/images/ui/text_images/zh-TW/battle_ui/overlay_hp_label_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..38a3476138190b4674143ff0cff9c670388ee965 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+Mj>3?$dd>30Gto&cW^*Z=?jD=I2l{;%fSq%YjO zE&wRbSQ6wH%;50sMjDW#=;`7ZQW2Ldz{!)Ea3W^gtwzP{n>rGVPneD_Gh#@Um0&pR W$aOaPsFgHOF@vY8pUXO@geCx;=_1Mi literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-TW/battle_ui/overlay_lv_zh-TW.png b/public/images/ui/text_images/zh-TW/battle_ui/overlay_lv_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad4312d561bd3e159ba3d76a939101c2ad54002 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@#0(@o%%7YEQak}ZA+A7LQBm>#|Nl*;Z96{w z&j<1uOM?7@862M7NCR?YJzX3_D&mqk5)(Xth&R#0JJI9+sR@>o6-`7K^meei?ATfH Q6sVBF)78&qol`;+07EY#-2eap literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json b/public/images/ui/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json new file mode 100644 index 00000000000..26c01d8bcc2 --- /dev/null +++ b/public/images/ui/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.json @@ -0,0 +1,209 @@ +{ + "textures": [ + { + "image": "pbinfo_stat_zh-TW.png", + "format": "RGBA8888", + "size": { + "w": 120, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "SPATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "SPDEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 19, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 19, + "h": 7 + }, + "frame": { + "x": 19, + "y": 0, + "w": 19, + "h": 7 + } + }, + { + "filename": "CRIT", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 17, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 17, + "h": 7 + }, + "frame": { + "x": 38, + "y": 0, + "w": 17, + "h": 7 + } + }, + { + "filename": "ACC", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 55, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "ATK", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 68, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "DEF", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 81, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "EVA", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 94, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "SPD", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 13, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 13, + "h": 7 + }, + "frame": { + "x": 107, + "y": 0, + "w": 13, + "h": 7 + } + }, + { + "filename": "HP", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 9, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 9, + "h": 7 + }, + "frame": { + "x": 120, + "y": 0, + "w": 9, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$" + } +} diff --git a/public/images/ui/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.png b/public/images/ui/text_images/zh-TW/battle_ui/pbinfo_stat_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..9656c5f04b96333ab6e6c721419dccf1d16d415c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^jX=!K#0(^Z)Q_+(JhFpgn1YDN~`X@;4>FUkXP4V3Ngl%Kt948a^ zlbS9;Z)EQz-Och4Eow@==~R%@)GEKMg8BbP$M;)O*8X31Me4zh`9imR&G%fIl9Zo& zIp{90;#~LH#&@?ha2>uYp0kQ;Z~FU_F=wW8*cx9HlM-!y-@Py_tK{9=d24q{Ep*s; z{!W+ks)u?WVa^3&{ literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-TW/party_ui/party_slot_overlay_hp_zh-TW.png b/public/images/ui/text_images/zh-TW/party_ui/party_slot_overlay_hp_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..9be90b5c6bb6247d67c12aea99e7edaa4679e131 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp@K+ML(3?x&X{^$THo&cW^S0HU@X!zsDkAi}NMLq{C zfPBW1AirP+hi5m^fE-0n7srr_xMTrNp45aBG23o6DrVo*QD97A+!-v{AjHSR(3QmT UxHrOS4^T0Kr>mdKI;Vst083IKvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/ui/text_images/zh-TW/party_ui/party_slot_overlay_lv_zh-TW.png b/public/images/ui/text_images/zh-TW/party_ui/party_slot_overlay_lv_zh-TW.png new file mode 100644 index 0000000000000000000000000000000000000000..122d3f7151cdeab41b5c0c4d8ebb20efa9bb7ccf GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0F7QATVpvtk0i6zt(j* z2IMoA1o;IsI6S+N2IRPiAtGI+ZBxvX literal 0 HcmV?d00001 diff --git a/src/loading-scene.ts b/src/loading-scene.ts index e1b658f578a..232c2abca29 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -60,9 +60,7 @@ export class LoadingScene extends SceneBase { this.loadAtlas("pbinfo_enemy_type", "ui"); this.loadAtlas("pbinfo_enemy_type1", "ui"); this.loadAtlas("pbinfo_enemy_type2", "ui"); - this.loadAtlas("pbinfo_stat", "ui"); this.loadAtlas("pbinfo_stat_numbers", "ui"); - this.loadImage("overlay_lv", "ui"); this.loadAtlas("numbers", "ui"); this.loadAtlas("numbers_red", "ui"); this.loadAtlas("overlay_hp", "ui"); @@ -125,7 +123,6 @@ export class LoadingScene extends SceneBase { this.loadAtlas("party_slot_main", "ui"); this.loadAtlas("party_slot_main_short", "ui"); this.loadAtlas("party_slot", "ui"); - this.loadImage("party_slot_overlay_lv", "ui"); this.loadImage("party_slot_hp_bar", "ui"); this.loadAtlas("party_slot_hp_overlay", "ui"); this.loadAtlas("party_pb", "ui"); @@ -309,6 +306,34 @@ export class LoadingScene extends SceneBase { `text_images/${lang}/summary/summary_moves_effect_title${keySuffix}.png`, ); // Pixel text 'EFFECT' + this.loadAtlas(`pbinfo_stat${keySuffix}`, "ui", `text_images/${lang}/battle_ui/pbinfo_stat${keySuffix}`); // Pixel text for in-battle stats info tab + this.loadImage(`overlay_lv${keySuffix}`, "ui", `text_images/${lang}/battle_ui/overlay_lv${keySuffix}.png`); // Pixel text in-battle 'Lv.' + this.loadImage( + `overlay_hp_label${keySuffix}`, + "ui", + `text_images/${lang}/battle_ui/overlay_hp_label${keySuffix}.png`, + ); // Pixel text in-battle 'HP' + this.loadImage( + `overlay_hp_label_boss${keySuffix}`, + "ui", + `text_images/${lang}/battle_ui/overlay_hp_label_boss${keySuffix}.png`, + ); // Pixel text in-battle 'BOSS' + this.loadImage( + `overlay_exp_label${keySuffix}`, + "ui", + `text_images/${lang}/battle_ui/overlay_exp_label${keySuffix}.png`, + ); // Pixel text in-battle 'EXP' + this.loadImage( + `party_slot_overlay_lv${keySuffix}`, + "ui", + `text_images/${lang}/party_ui/party_slot_overlay_lv${keySuffix}.png`, + ); // Pixel text party 'Lv.' + this.loadImage( + `party_slot_overlay_hp${keySuffix}`, + "ui", + `text_images/${lang}/party_ui/party_slot_overlay_hp${keySuffix}.png`, + ); // Pixel text party 'HP' + if (timedEventManager.activeEventHasBanner()) { const availableLangs = timedEventManager.getEventBannerLangs(); if (lang && availableLangs.includes(lang)) { diff --git a/src/ui/battle-info/battle-info.ts b/src/ui/battle-info/battle-info.ts index 4d2cf597ed2..2a502148bc5 100644 --- a/src/ui/battle-info/battle-info.ts +++ b/src/ui/battle-info/battle-info.ts @@ -72,6 +72,7 @@ export abstract class BattleInfo extends Phaser.GameObjects.Container { protected splicedIcon: Phaser.GameObjects.Sprite; protected statusIndicator: Phaser.GameObjects.Sprite; protected levelContainer: Phaser.GameObjects.Container; + protected hpLabel: Phaser.GameObjects.Image; protected hpBar: Phaser.GameObjects.Image; protected levelNumbersContainer: Phaser.GameObjects.Container; protected type1Icon: Phaser.GameObjects.Sprite; @@ -178,7 +179,7 @@ export abstract class BattleInfo extends Phaser.GameObjects.Container { } const statLabel = globalScene.add - .sprite(statX, statY, "pbinfo_stat", Stat[s]) + .sprite(statX, statY, getLocalizedSpriteKey("pbinfo_stat"), Stat[s]) .setName("icon_stat_label_" + i.toString()) .setOrigin(0); statLabels.push(statLabel); @@ -259,12 +260,17 @@ export abstract class BattleInfo extends Phaser.GameObjects.Container { .setName("container_level"); this.add(this.levelContainer); - const levelOverlay = globalScene.add.image(0, 0, "overlay_lv"); + const levelOverlay = globalScene.add.image(5.5, 0, getLocalizedSpriteKey("overlay_lv")).setOrigin(1, 0.5); this.levelContainer.add(levelOverlay); this.hpBar = globalScene.add.image(posParams.hpBarX, posParams.hpBarY, "overlay_hp").setName("hp_bar").setOrigin(0); this.add(this.hpBar); + this.hpLabel = globalScene.add + .image(posParams.hpBarX - 1, posParams.hpBarY - 3, getLocalizedSpriteKey("overlay_hp_label")) + .setOrigin(1, 0); + this.add(this.hpLabel); + this.levelNumbersContainer = globalScene.add .container(9.5, globalScene.uiTheme === UiTheme.LEGACY ? 0 : -0.5) .setName("container_level"); diff --git a/src/ui/battle-info/enemy-battle-info.ts b/src/ui/battle-info/enemy-battle-info.ts index 0feb314a2e7..a48948e9617 100644 --- a/src/ui/battle-info/enemy-battle-info.ts +++ b/src/ui/battle-info/enemy-battle-info.ts @@ -8,6 +8,7 @@ import type { BattleInfoParamList } from "#ui/battle-info"; import { BattleInfo } from "#ui/battle-info"; import { addTextObject } from "#ui/text"; import { addWindow, WindowVariant } from "#ui/ui-theme"; +import { getLocalizedSpriteKey } from "#utils/common"; import i18next from "i18next"; import type { GameObjects } from "phaser"; @@ -189,6 +190,9 @@ export class EnemyBattleInfo extends BattleInfo { this.hpBar.x += 38 * (boss ? -1 : 1); this.hpBar.y += 2 * (this.boss ? -1 : 1); this.hpBar.setTexture(`overlay_hp${boss ? "_boss" : ""}`); + this.hpLabel.x += 38 * (boss ? -1 : 1); + this.hpLabel.y += 1 * (this.boss ? -1 : 1); + this.hpLabel.setTexture(getLocalizedSpriteKey(`overlay_hp_label${boss ? "_boss" : ""}`)); this.levelContainer.x += 2 * (boss ? -1 : 1); this.box.setTexture(this.getTextureName()); this.statsBox.setTexture(`${this.getTextureName()}_stats`); diff --git a/src/ui/battle-info/player-battle-info.ts b/src/ui/battle-info/player-battle-info.ts index f0b50748154..5a23eab2071 100644 --- a/src/ui/battle-info/player-battle-info.ts +++ b/src/ui/battle-info/player-battle-info.ts @@ -5,10 +5,12 @@ import { Stat } from "#enums/stat"; import type { PlayerPokemon } from "#field/pokemon"; import type { BattleInfoParamList } from "#ui/battle-info"; import { BattleInfo } from "#ui/battle-info"; +import { getLocalizedSpriteKey } from "#utils/common"; export class PlayerBattleInfo extends BattleInfo { protected player: true = true; protected hpNumbersContainer: Phaser.GameObjects.Container; + protected expBarLabel: Phaser.GameObjects.Image; override get statOrder(): Stat[] { return [Stat.ATK, Stat.DEF, Stat.SPATK, Stat.SPDEF, Stat.ACC, Stat.EVA, Stat.SPD]; @@ -46,6 +48,12 @@ export class PlayerBattleInfo extends BattleInfo { // hp number container must be beneath the stat container for overlay to display properly this.addAt(this.hpNumbersContainer, this.getIndex(this.statsContainer)); + const expBarLabel = globalScene.add + .image(-91, 20, getLocalizedSpriteKey("overlay_exp_label")) + .setName("overlay_exp_label") + .setOrigin(1, 1); + this.add(expBarLabel); + const expBar = globalScene.add.image(-98, 18, "overlay_exp").setName("overlay_exp").setOrigin(0); this.add(expBar); @@ -60,6 +68,7 @@ export class PlayerBattleInfo extends BattleInfo { expBar.setMask(expMask); + this.expBarLabel = expBarLabel; this.expBar = expBar; this.expMaskRect = expMaskRect; } @@ -108,7 +117,7 @@ export class PlayerBattleInfo extends BattleInfo { this.statValuesContainer.x += 2 * (mini ? 1 : -1); this.statValuesContainer.y += -7 * (mini ? 1 : -1); - const toggledElements = [this.hpNumbersContainer, this.expBar]; + const toggledElements = [this.hpNumbersContainer, this.expBarLabel, this.expBar]; toggledElements.forEach(el => el.setVisible(!mini)); } diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index b77710d8140..9fc777809bf 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -631,6 +631,7 @@ export class PartyUiHandler extends MessageUiHandler { // this else relates to the transfer pokemon. We set the text to be blank so there's no "Able"/"Not able" text ableToTransferText = ""; } + partySlot.slotHpLabel.setVisible(false); partySlot.slotHpBar.setVisible(false); partySlot.slotHpOverlay.setVisible(false); partySlot.slotHpText.setVisible(false); @@ -1738,6 +1739,7 @@ export class PartyUiHandler extends MessageUiHandler { this.partySlots[this.transferCursor].setTransfer(false); for (let i = 0; i < this.partySlots.length; i++) { this.partySlots[i].slotDescriptionLabel.setVisible(false); + this.partySlots[i].slotHpLabel.setVisible(true); this.partySlots[i].slotHpBar.setVisible(true); this.partySlots[i].slotHpOverlay.setVisible(true); this.partySlots[i].slotHpText.setVisible(true); @@ -1890,6 +1892,7 @@ class PartySlot extends Phaser.GameObjects.Container { private slotBg: Phaser.GameObjects.Image; private slotPb: Phaser.GameObjects.Sprite; public slotName: Phaser.GameObjects.Text; + public slotHpLabel: Phaser.GameObjects.Image; public slotHpBar: Phaser.GameObjects.Image; public slotHpOverlay: Phaser.GameObjects.Sprite; public slotHpText: Phaser.GameObjects.Text; @@ -2042,7 +2045,7 @@ class PartySlot extends Phaser.GameObjects.Container { this.slotName.setOrigin(0); const slotLevelLabel = globalScene.add - .image(0, 0, "party_slot_overlay_lv") + .image(0, 0, getLocalizedSpriteKey("party_slot_overlay_lv")) .setPositionRelative(this.slotBg, levelLabelPosition.x, levelLabelPosition.y) .setOrigin(0); @@ -2104,6 +2107,12 @@ class PartySlot extends Phaser.GameObjects.Container { } } + this.slotHpLabel = globalScene.add + .image(0, 0, getLocalizedSpriteKey("party_slot_overlay_hp")) + .setOrigin(1, 0) + .setVisible(false) + .setPositionRelative(this.slotBg, hpBarPosition.x + 15, hpBarPosition.y); + this.slotHpBar = globalScene.add .image(0, 0, "party_slot_hp_bar") .setOrigin(0) @@ -2133,14 +2142,22 @@ class PartySlot extends Phaser.GameObjects.Container { .setVisible(false) .setPositionRelative(this.slotBg, descriptionLabelPosition.x, descriptionLabelPosition.y); - slotInfoContainer.add([this.slotHpBar, this.slotHpOverlay, this.slotHpText, this.slotDescriptionLabel]); + slotInfoContainer.add([ + this.slotHpLabel, + this.slotHpBar, + this.slotHpOverlay, + this.slotHpText, + this.slotDescriptionLabel, + ]); if (partyUiMode !== PartyUiMode.TM_MODIFIER) { this.slotDescriptionLabel.setVisible(false); + this.slotHpLabel.setVisible(true); this.slotHpBar.setVisible(true); this.slotHpOverlay.setVisible(true); this.slotHpText.setVisible(true); } else { + this.slotHpLabel.setVisible(false); this.slotHpBar.setVisible(false); this.slotHpOverlay.setVisible(false); this.slotHpText.setVisible(false); From d18f77bea95c7c1d70f91d0367021e30152544bf Mon Sep 17 00:00:00 2001 From: Bertie690 <136088738+Bertie690@users.noreply.github.com> Date: Sat, 6 Sep 2025 11:25:09 -0400 Subject: [PATCH 03/10] [Misc] [Docs] Update README.md svg to actually go to discord (#6501) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cf70b5d9335..d381b8f47f5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ PokéRogue -![Discord Static Badge](https://img.shields.io/badge/Community_Discord-blurple?style=flat&logo=discord&logoSize=auto&labelColor=white&color=5865F2&link=https://discord.gg/pokerogue) +[![Discord Static Badge](https://img.shields.io/badge/Community_Discord-blurple?style=flat&logo=discord&logoSize=auto&labelColor=white&color=5865F2)](https://discord.gg/pokerogue) [![Docs Coverage Static Badge](https://pagefaultgames.github.io/pokerogue/beta/coverage.svg)](https://pagefaultgames.github.io/pokerogue/beta) [![Testing Badge](https://github.com/pagefaultgames/pokerogue/actions/workflows/tests.yml/badge.svg)](https://github.com/pagefaultgames/pokerogue/actions/workflows/tests.yml) [![License: GNU AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) From 21aa40e46a4995cf80e9185bcef70716b300b426 Mon Sep 17 00:00:00 2001 From: Bertie690 <136088738+Bertie690@users.noreply.github.com> Date: Sat, 6 Sep 2025 11:39:09 -0400 Subject: [PATCH 04/10] [GitHub] [Docs] Update github-pages.yml to add the files into the right subdirectory (#6500) --- .github/workflows/github-pages.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index b7b1aad5ae7..4148b4e9db0 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -77,9 +77,7 @@ jobs: cd pokerogue_gh git config user.email "github-actions[bot]@users.noreply.github.com" git config user.name "github-actions[bot]" - mkdir -p $GITHUB_REF_NAME - rm -rf $GITHUB_REF_NAME/* - cp -r /tmp/docs $GITHUB_REF_NAME + mv -f /tmp/docs $GITHUB_REF_NAME git add $GITHUB_REF_NAME git commit -m "[skip ci] Deploy docs" git push From 550f3b896e867646faa4bb2eac3371a2c6f2938f Mon Sep 17 00:00:00 2001 From: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Date: Sat, 6 Sep 2025 10:58:03 -0500 Subject: [PATCH 05/10] [GitHub] [Docs] Copy entirety of docs folder --- .github/workflows/github-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index 4148b4e9db0..57140f3c4fb 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -77,7 +77,7 @@ jobs: cd pokerogue_gh git config user.email "github-actions[bot]@users.noreply.github.com" git config user.name "github-actions[bot]" - mv -f /tmp/docs $GITHUB_REF_NAME + mv -f /tmp/docs/* $GITHUB_REF_NAME git add $GITHUB_REF_NAME git commit -m "[skip ci] Deploy docs" git push From f29bfa31cda2a111904580c18c1189c25c37b346 Mon Sep 17 00:00:00 2001 From: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Date: Sat, 6 Sep 2025 11:16:31 -0500 Subject: [PATCH 06/10] [GitHub] [Docs] Use `rsync` in workflow run --- .github/workflows/github-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index 57140f3c4fb..6e056bc4032 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -77,7 +77,7 @@ jobs: cd pokerogue_gh git config user.email "github-actions[bot]@users.noreply.github.com" git config user.name "github-actions[bot]" - mv -f /tmp/docs/* $GITHUB_REF_NAME + rsync -rd --delete /tmp/docs/ $GITHUB_REF_NAME git add $GITHUB_REF_NAME git commit -m "[skip ci] Deploy docs" git push From b5124ae3ce8297a49fab42f4318fb1c3c9c77970 Mon Sep 17 00:00:00 2001 From: Bertie690 <136088738+Bertie690@users.noreply.github.com> Date: Sat, 6 Sep 2025 18:43:26 -0400 Subject: [PATCH 07/10] [Misc/Docs] Fix Typedoc workflow to not break the "go to main" link (#6502) * Fixed missing `img src=` --- typedoc-plugins/typedoc-plugin-rename-svg.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/typedoc-plugins/typedoc-plugin-rename-svg.js b/typedoc-plugins/typedoc-plugin-rename-svg.js index 5fda4ee3c6d..307206d6006 100644 --- a/typedoc-plugins/typedoc-plugin-rename-svg.js +++ b/typedoc-plugins/typedoc-plugin-rename-svg.js @@ -19,15 +19,10 @@ export function load(app) { app.renderer.on(Renderer.EVENT_END_PAGE, page => { if (page.pageKind === PageKind.Index && page.contents) { page.contents = page.contents - // Replace links to the beta documentation site with the current ref name + // Replace the SVG to the beta documentation site with the current ref name .replace( - /href="(.*pagefaultgames.github.io\/pokerogue\/).*?"/, // formatting - `href="$1/${process.env.REF_NAME}"`, - ) - // Replace the link to Beta's coverage SVG with the SVG file for the branch in question. - .replace( - /img src=".*?coverage.svg/, // formatting - `img src="coverage.svg"`, + /^ Date: Sun, 7 Sep 2025 08:16:43 +0900 Subject: [PATCH 08/10] [UI] Add cyclic navigation in settings menu for LEFT/RIGHT buttons (#6404) * feat: add cyclic navigation to settings menu * review > refactor: use Phaser.Math.Wrap instead the ternary operator --- .../abstract-control-settings-ui-handler.ts | 18 +++++++++++++---- .../settings/abstract-settings-ui-handler.ts | 20 +++++++++++-------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/ui/settings/abstract-control-settings-ui-handler.ts b/src/ui/settings/abstract-control-settings-ui-handler.ts index c08f1570b75..17812785d1e 100644 --- a/src/ui/settings/abstract-control-settings-ui-handler.ts +++ b/src/ui/settings/abstract-control-settings-ui-handler.ts @@ -544,8 +544,13 @@ export abstract class AbstractControlSettingsUiHandler extends UiHandler { } if (this.settingBlacklisted.includes(setting) || setting.includes("BUTTON_")) { success = false; - } else if (this.optionCursors[cursor]) { - success = this.setOptionCursor(cursor, this.optionCursors[cursor] - 1, true); + } else { + // Cycle to the rightmost position when at the leftmost, otherwise move left + success = this.setOptionCursor( + cursor, + Phaser.Math.Wrap(this.optionCursors[cursor] - 1, 0, this.optionValueLabels[cursor].length), + true, + ); } break; case Button.RIGHT: // Move selection right within the current option set. @@ -554,8 +559,13 @@ export abstract class AbstractControlSettingsUiHandler extends UiHandler { } if (this.settingBlacklisted.includes(setting) || setting.includes("BUTTON_")) { success = false; - } else if (this.optionCursors[cursor] < this.optionValueLabels[cursor].length - 1) { - success = this.setOptionCursor(cursor, this.optionCursors[cursor] + 1, true); + } else { + // Cycle to the leftmost position when at the rightmost, otherwise move right + success = this.setOptionCursor( + cursor, + Phaser.Math.Wrap(this.optionCursors[cursor] + 1, 0, this.optionValueLabels[cursor].length), + true, + ); } break; case Button.CYCLE_FORM: diff --git a/src/ui/settings/abstract-settings-ui-handler.ts b/src/ui/settings/abstract-settings-ui-handler.ts index ae1bb40dbeb..85e93bd8e2e 100644 --- a/src/ui/settings/abstract-settings-ui-handler.ts +++ b/src/ui/settings/abstract-settings-ui-handler.ts @@ -318,16 +318,20 @@ export class AbstractSettingsUiHandler extends MessageUiHandler { } break; case Button.LEFT: - if (this.optionCursors[cursor]) { - // Moves the option cursor left, if possible. - success = this.setOptionCursor(cursor, this.optionCursors[cursor] - 1, true); - } + // Cycle to the rightmost position when at the leftmost, otherwise move left + success = this.setOptionCursor( + cursor, + Phaser.Math.Wrap(this.optionCursors[cursor] - 1, 0, this.optionValueLabels[cursor].length), + true, + ); break; case Button.RIGHT: - // Moves the option cursor right, if possible. - if (this.optionCursors[cursor] < this.optionValueLabels[cursor].length - 1) { - success = this.setOptionCursor(cursor, this.optionCursors[cursor] + 1, true); - } + // Cycle to the leftmost position when at the rightmost, otherwise move right + success = this.setOptionCursor( + cursor, + Phaser.Math.Wrap(this.optionCursors[cursor] + 1, 0, this.optionValueLabels[cursor].length), + true, + ); break; case Button.CYCLE_FORM: case Button.CYCLE_SHINY: From 9815c5eebffca0e0c6016782d581c130cae47102 Mon Sep 17 00:00:00 2001 From: Bertie690 <136088738+Bertie690@users.noreply.github.com> Date: Sun, 7 Sep 2025 10:18:47 -0400 Subject: [PATCH 09/10] [Test] Revamped `MockConsoleLog` with color support (#6218) * Added mock console and fixed up many many things * Cleaned up handling of colors and such * Added minor comment * Fix Focus Punch test * Fix typo * Remove redundant comment * Update vitest.setup.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Added color map inside new folder * Made constants not object bc i was told to * Update src/constants/colors.ts * Removed all moves init check * Removed import * Fixed up some stuff + added aquamarine color to settings helper * Added logging for test end * Removed intentionally failing test * Fixed console log to use inheritance to not override vitest's wrapping * Added a custom Vitest reporter to not log the test name every 2 lines * Moved coloration to a hook to prevent misplacing things * Fixed import issue by copypasting vitest soure * Removed intentionally failing test look i need to check that `test:silent` works on github ok * Added REUSE annotations to copied parts of source * Fixed import issue --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- package.json | 1 + pnpm-lock.yaml | 3 + public/locales | 2 +- src/constants/colors.ts | 23 ++ src/phase-manager.ts | 2 +- src/phases/move-phase.ts | 6 +- test/abilities/cud-chew.test.ts | 2 +- test/moves/focus-punch.test.ts | 6 +- test/test-utils/game-wrapper.ts | 19 +- test/test-utils/helpers/overrides-helper.ts | 5 +- test/test-utils/helpers/settings-helper.ts | 4 +- test/test-utils/mocks/mock-console-log.ts | 80 ------- .../mocks/mock-console/color-map.json | 150 +++++++++++++ .../mocks/mock-console/infer-color.ts | 61 +++++ .../mocks/mock-console/mock-console.ts | 211 ++++++++++++++++++ .../mocks/mocks-container/mock-text.ts | 22 +- .../reporters/custom-default-reporter.ts | 62 +++++ test/test-utils/setup/test-end-log.ts | 113 ++++++++++ test/test-utils/test-file-initialization.ts | 25 ++- test/test-utils/text-interceptor.ts | 60 ++--- test/vitest.setup.ts | 36 ++- typedoc.config.js | 8 +- vitest.config.ts | 13 +- 23 files changed, 747 insertions(+), 167 deletions(-) create mode 100644 src/constants/colors.ts delete mode 100644 test/test-utils/mocks/mock-console-log.ts create mode 100644 test/test-utils/mocks/mock-console/color-map.json create mode 100644 test/test-utils/mocks/mock-console/infer-color.ts create mode 100644 test/test-utils/mocks/mock-console/mock-console.ts create mode 100644 test/test-utils/reporters/custom-default-reporter.ts create mode 100644 test/test-utils/setup/test-end-log.ts diff --git a/package.json b/package.json index 0620cf6a88c..f6097b8ccb9 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "@types/node": "^22.16.5", "@vitest/coverage-istanbul": "^3.2.4", "@vitest/expect": "^3.2.4", + "@vitest/utils": "^3.2.4", "chalk": "^5.4.1", "dependency-cruiser": "^16.10.4", "inquirer": "^12.8.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 089689818ac..be3e683f71c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,6 +63,9 @@ importers: '@vitest/expect': specifier: ^3.2.4 version: 3.2.4 + '@vitest/utils': + specifier: ^3.2.4 + version: 3.2.4 chalk: specifier: ^5.4.1 version: 5.4.1 diff --git a/public/locales b/public/locales index 2686cd3edc0..102cbdcd924 160000 --- a/public/locales +++ b/public/locales @@ -1 +1 @@ -Subproject commit 2686cd3edc0bd2c7a7f12cc54c00c109e51a48d7 +Subproject commit 102cbdcd924e2a7cdc7eab64d1ce79f6ec7604ff diff --git a/src/constants/colors.ts b/src/constants/colors.ts new file mode 100644 index 00000000000..e4d740addff --- /dev/null +++ b/src/constants/colors.ts @@ -0,0 +1,23 @@ +/** + * @module + * A big file storing colors used in logging. + * Minified by Terser during production builds, so has no overhead. + */ + +// Colors used in prod +export const PHASE_START_COLOR = "green" as const; +export const MOVE_COLOR = "RebeccaPurple" as const; + +// Colors used for testing code +export const NEW_TURN_COLOR = "#ffad00ff" as const; +export const UI_MSG_COLOR = "#009dffff" as const; +export const OVERRIDES_COLOR = "#b0b01eff" as const; +export const SETTINGS_COLOR = "#008844ff" as const; + +// Colors used for Vitest-related test utils +export const TEST_NAME_COLOR = "#008886ff" as const; +export const VITEST_PINK_COLOR = "#c162de" as const; + +// Mock console log stuff +export const TRACE_COLOR = "#b700ff" as const; +export const DEBUG_COLOR = "#874600ff" as const; diff --git a/src/phase-manager.ts b/src/phase-manager.ts index 281ac8bd671..68b7d74293b 100644 --- a/src/phase-manager.ts +++ b/src/phase-manager.ts @@ -392,7 +392,7 @@ export class PhaseManager { * Helper method to start and log the current phase. */ private startCurrentPhase(): void { - console.log(`%cStart Phase ${this.currentPhase.phaseName}`, "color:green;"); + console.log(`%cStart Phase ${this.currentPhase.phaseName}`, "color:${PHASE_START_COLOR};"); this.currentPhase.start(); } diff --git a/src/phases/move-phase.ts b/src/phases/move-phase.ts index 9a8e509e302..6587597a0d9 100644 --- a/src/phases/move-phase.ts +++ b/src/phases/move-phase.ts @@ -1,4 +1,5 @@ import { applyAbAttrs } from "#abilities/apply-ab-attrs"; +import { MOVE_COLOR } from "#app/constants/colors"; import { globalScene } from "#app/global-scene"; import { getPokemonNameWithAffix } from "#app/messages"; import Overrides from "#app/overrides"; @@ -118,7 +119,10 @@ export class MovePhase extends BattlePhase { public start(): void { super.start(); - console.log(MoveId[this.move.moveId], enumValueToKey(MoveUseMode, this.useMode)); + console.log( + `%cMove: ${MoveId[this.move.moveId]}\nUse Mode: ${enumValueToKey(MoveUseMode, this.useMode)}`, + `color:${MOVE_COLOR}`, + ); // Check if move is unusable (e.g. running out of PP due to a mid-turn Spite // or the user no longer being on field), ending the phase early if not. diff --git a/test/abilities/cud-chew.test.ts b/test/abilities/cud-chew.test.ts index f68141096eb..ae3b4ad8765 100644 --- a/test/abilities/cud-chew.test.ts +++ b/test/abilities/cud-chew.test.ts @@ -99,7 +99,7 @@ describe("Abilities - Cud Chew", () => { expect(abDisplaySpy.mock.calls[1][2]).toBe(false); // should display messgae - expect(game.textInterceptor.getLatestMessage()).toBe( + expect(game.textInterceptor.logs).toContain( i18next.t("battle:hpIsFull", { pokemonName: getPokemonNameWithAffix(farigiraf), }), diff --git a/test/moves/focus-punch.test.ts b/test/moves/focus-punch.test.ts index 9a76dbec0db..d7b40569aaa 100644 --- a/test/moves/focus-punch.test.ts +++ b/test/moves/focus-punch.test.ts @@ -9,7 +9,7 @@ import { TurnStartPhase } from "#phases/turn-start-phase"; import { GameManager } from "#test/test-utils/game-manager"; import i18next from "i18next"; import Phaser from "phaser"; -import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; describe("Moves - Focus Punch", () => { let phaserGame: Phaser.Game; @@ -125,8 +125,8 @@ describe("Moves - Focus Punch", () => { game.move.select(MoveId.FOCUS_PUNCH); await game.phaseInterceptor.to("MoveEndPhase", true); await game.phaseInterceptor.to("MessagePhase", false); - const consoleSpy = vi.spyOn(console, "log"); await game.phaseInterceptor.to("MoveEndPhase", true); - expect(consoleSpy).nthCalledWith(1, i18next.t("moveTriggers:lostFocus", { pokemonName: "Charizard" })); + expect(game.textInterceptor.logs).toContain(i18next.t("moveTriggers:lostFocus", { pokemonName: "Charizard" })); + expect(game.textInterceptor.logs).not.toContain(i18next.t("battle:attackFailed")); }); }); diff --git a/test/test-utils/game-wrapper.ts b/test/test-utils/game-wrapper.ts index 1a906bf8492..d18ea9301ea 100644 --- a/test/test-utils/game-wrapper.ts +++ b/test/test-utils/game-wrapper.ts @@ -6,17 +6,13 @@ import * as bypassLoginModule from "#app/global-vars/bypass-login"; import { MoveAnim } from "#data/battle-anims"; import { Pokemon } from "#field/pokemon"; import { version } from "#package.json"; -import { blobToString } from "#test/test-utils/game-manager-utils"; import { MockClock } from "#test/test-utils/mocks/mock-clock"; -import { MockFetch } from "#test/test-utils/mocks/mock-fetch"; import { MockGameObjectCreator } from "#test/test-utils/mocks/mock-game-object-creator"; import { MockLoader } from "#test/test-utils/mocks/mock-loader"; import { MockTextureManager } from "#test/test-utils/mocks/mock-texture-manager"; import { MockTimedEventManager } from "#test/test-utils/mocks/mock-timed-event-manager"; import { MockContainer } from "#test/test-utils/mocks/mocks-container/mock-container"; import { PokedexMonContainer } from "#ui/pokedex-mon-container"; -import { sessionIdKey } from "#utils/common"; -import { setCookie } from "#utils/cookies"; import fs from "node:fs"; import Phaser from "phaser"; import { vi } from "vitest"; @@ -28,20 +24,6 @@ const GamepadPlugin = Phaser.Input.Gamepad.GamepadPlugin; const EventEmitter = Phaser.Events.EventEmitter; const UpdateList = Phaser.GameObjects.UpdateList; -window.URL.createObjectURL = (blob: Blob) => { - blobToString(blob).then((data: string) => { - localStorage.setItem("toExport", data); - }); - return null; -}; -navigator.getGamepads = () => []; -global.fetch = vi.fn(MockFetch); -setCookie(sessionIdKey, "fake_token"); - -window.matchMedia = () => ({ - matches: false, -}); - export class GameWrapper { public game: Phaser.Game; public scene: BattleScene; @@ -99,6 +81,7 @@ export class GameWrapper { removeAll: () => null, }; + // TODO: Can't we just turn on `noAudio` in audio config? this.scene.sound = { play: () => null, pause: () => null, diff --git a/test/test-utils/helpers/overrides-helper.ts b/test/test-utils/helpers/overrides-helper.ts index 93b89688935..07ea1ea3d09 100644 --- a/test/test-utils/helpers/overrides-helper.ts +++ b/test/test-utils/helpers/overrides-helper.ts @@ -1,7 +1,9 @@ /** biome-ignore-start lint/correctness/noUnusedImports: tsdoc imports */ import type { NewArenaEvent } from "#events/battle-scene"; + /** biome-ignore-end lint/correctness/noUnusedImports: tsdoc imports */ +import { OVERRIDES_COLOR } from "#app/constants/colors"; import type { BattleStyle, RandomTrainerOverride } from "#app/overrides"; import Overrides from "#app/overrides"; import { AbilityId } from "#enums/ability-id"; @@ -19,6 +21,7 @@ import type { ModifierOverride } from "#modifiers/modifier-type"; import type { Variant } from "#sprites/variant"; import { GameManagerHelper } from "#test/test-utils/helpers/game-manager-helper"; import { coerceArray, shiftCharCodes } from "#utils/common"; +import chalk from "chalk"; import { vi } from "vitest"; /** @@ -665,6 +668,6 @@ export class OverridesHelper extends GameManagerHelper { } private log(...params: any[]) { - console.log("Overrides:", ...params); + console.log(chalk.hex(OVERRIDES_COLOR)(...params)); } } diff --git a/test/test-utils/helpers/settings-helper.ts b/test/test-utils/helpers/settings-helper.ts index a26aa2de33c..46ac74b83dc 100644 --- a/test/test-utils/helpers/settings-helper.ts +++ b/test/test-utils/helpers/settings-helper.ts @@ -1,7 +1,9 @@ +import { SETTINGS_COLOR } from "#app/constants/colors"; import { BattleStyle } from "#enums/battle-style"; import { ExpGainsSpeed } from "#enums/exp-gains-speed"; import { PlayerGender } from "#enums/player-gender"; import { GameManagerHelper } from "#test/test-utils/helpers/game-manager-helper"; +import chalk from "chalk"; /** * Helper to handle settings for tests @@ -49,6 +51,6 @@ export class SettingsHelper extends GameManagerHelper { } private log(...params: any[]) { - console.log("Settings:", ...params); + console.log(chalk.hex(SETTINGS_COLOR)(...params)); } } diff --git a/test/test-utils/mocks/mock-console-log.ts b/test/test-utils/mocks/mock-console-log.ts deleted file mode 100644 index f54d41fea3e..00000000000 --- a/test/test-utils/mocks/mock-console-log.ts +++ /dev/null @@ -1,80 +0,0 @@ -const originalLog = console.log; -const originalError = console.error; -const originalDebug = console.debug; -const originalWarn = console.warn; - -const blacklist = ["Phaser", "variant icon does not exist", 'Texture "%s" not found']; -const whitelist = ["Phase"]; - -export class MockConsoleLog { - constructor( - private logDisabled = false, - private phaseText = false, - ) {} - private logs: any[] = []; - private notified: any[] = []; - - public log(...args) { - const argsStr = this.getStr(args); - this.logs.push(argsStr); - if (this.logDisabled && !this.phaseText) { - return; - } - if ((this.phaseText && !whitelist.some(b => argsStr.includes(b))) || blacklist.some(b => argsStr.includes(b))) { - return; - } - originalLog(args); - } - public error(...args) { - const argsStr = this.getStr(args); - this.logs.push(argsStr); - originalError(args); // Appelle le console.error originel - } - public debug(...args) { - const argsStr = this.getStr(args); - this.logs.push(argsStr); - if (this.logDisabled && !this.phaseText) { - return; - } - if (!whitelist.some(b => argsStr.includes(b)) || blacklist.some(b => argsStr.includes(b))) { - return; - } - originalDebug(args); - } - warn(...args) { - const argsStr = this.getStr(args); - this.logs.push(args); - if (this.logDisabled && !this.phaseText) { - return; - } - if (!whitelist.some(b => argsStr.includes(b)) || blacklist.some(b => argsStr.includes(b))) { - return; - } - originalWarn(args); - } - notify(msg) { - originalLog(msg); - this.notified.push(msg); - } - getLogs() { - return this.logs; - } - clearLogs() { - this.logs = []; - } - getStr(...args) { - return args - .map(arg => { - if (typeof arg === "object" && arg !== null) { - // Handle objects including arrays - return JSON.stringify(arg, (_key, value) => (typeof value === "bigint" ? value.toString() : value)); - } - if (typeof arg === "bigint") { - // Handle BigInt values - return arg.toString(); - } - return arg.toString(); - }) - .join(";"); - } -} diff --git a/test/test-utils/mocks/mock-console/color-map.json b/test/test-utils/mocks/mock-console/color-map.json new file mode 100644 index 00000000000..ded83e889b0 --- /dev/null +++ b/test/test-utils/mocks/mock-console/color-map.json @@ -0,0 +1,150 @@ +{ + "AliceBlue": "f0f8ff", + "AntiqueWhite": "faebd7", + "Aqua": "00ffff", + "Aquamarine": "7fffd4", + "Azure": "f0ffff", + "Beige": "f5f5dc", + "Bisque": "ffe4c4", + "Black": "000000", + "BlanchedAlmond": "ffebcd", + "Blue": "0000ff", + "BlueViolet": "8a2be2", + "Brown": "a52a2a", + "BurlyWood": "deb887", + "CadetBlue": "5f9ea0", + "Chartreuse": "7fff00", + "Chocolate": "d2691e", + "Coral": "ff7f50", + "CornflowerBlue": "6495ed", + "Cornsilk": "fff8dc", + "Crimson": "dc143c", + "Cyan": "00ffff", + "DarkBlue": "00008b", + "DarkCyan": "008b8b", + "DarkGoldenRod": "b8860b", + "DarkGray": "a9a9a9", + "DarkGrey": "a9a9a9", + "DarkGreen": "006400", + "DarkKhaki": "bdb76b", + "DarkMagenta": "8b008b", + "DarkOliveGreen": "556b2f", + "DarkOrange": "ff8c00", + "DarkOrchid": "9932cc", + "DarkRed": "8b0000", + "DarkSalmon": "e9967a", + "DarkSeaGreen": "8fbc8f", + "DarkSlateBlue": "483d8b", + "DarkSlateGray": "2f4f4f", + "DarkSlateGrey": "2f4f4f", + "DarkTurquoise": "00ced1", + "DarkViolet": "9400d3", + "DeepPink": "ff1493", + "DeepSkyBlue": "00bfff", + "DimGray": "696969", + "DimGrey": "696969", + "DodgerBlue": "1e90ff", + "FireBrick": "b22222", + "FloralWhite": "fffaf0", + "ForestGreen": "228b22", + "Fuchsia": "ff00ff", + "Gainsboro": "dcdcdc", + "GhostWhite": "f8f8ff", + "Gold": "ffd700", + "GoldenRod": "daa520", + "Gray": "808080", + "Grey": "808080", + "Green": "008000", + "GreenYellow": "adff2f", + "HoneyDew": "f0fff0", + "HotPink": "ff69b4", + "IndianRed": "cd5c5c", + "Indigo": "4b0082", + "Ivory": "fffff0", + "Khaki": "f0e68c", + "Lavender": "e6e6fa", + "LavenderBlush": "fff0f5", + "LawnGreen": "7cfc00", + "LemonChiffon": "fffacd", + "LightBlue": "add8e6", + "LightCoral": "f08080", + "LightCyan": "e0ffff", + "LightGoldenRodYellow": "fafad2", + "LightGray": "d3d3d3", + "LightGrey": "d3d3d3", + "LightGreen": "90ee90", + "LightPink": "ffb6c1", + "LightSalmon": "ffa07a", + "LightSeaGreen": "20b2aa", + "LightSkyBlue": "87cefa", + "LightSlateGray": "778899", + "LightSlateGrey": "778899", + "LightSteelBlue": "b0c4de", + "LightYellow": "ffffe0", + "Lime": "00ff00", + "LimeGreen": "32cd32", + "Linen": "faf0e6", + "Magenta": "ff00ff", + "Maroon": "800000", + "MediumAquaMarine": "66cdaa", + "MediumBlue": "0000cd", + "MediumOrchid": "ba55d3", + "MediumPurple": "9370db", + "MediumSeaGreen": "3cb371", + "MediumSlateBlue": "7b68ee", + "MediumSpringGreen": "00fa9a", + "MediumTurquoise": "48d1cc", + "MediumVioletRed": "c71585", + "MidnightBlue": "191970", + "MintCream": "f5fffa", + "MistyRose": "ffe4e1", + "Moccasin": "ffe4b5", + "NavajoWhite": "ffdead", + "Navy": "000080", + "OldLace": "fdf5e6", + "Olive": "808000", + "OliveDrab": "6b8e23", + "Orange": "ffa500", + "OrangeRed": "ff4500", + "Orchid": "da70d6", + "PaleGoldenRod": "eee8aa", + "PaleGreen": "98fb98", + "PaleTurquoise": "afeeee", + "PaleVioletRed": "db7093", + "PapayaWhip": "ffefd5", + "PeachPuff": "ffdab9", + "Peru": "cd853f", + "Pink": "ffc0cb", + "Plum": "dda0dd", + "PowderBlue": "b0e0e6", + "Purple": "800080", + "RebeccaPurple": "663399", + "Red": "ff0000", + "RosyBrown": "bc8f8f", + "RoyalBlue": "4169e1", + "SaddleBrown": "8b4513", + "Salmon": "fa8072", + "SandyBrown": "f4a460", + "SeaGreen": "2e8b57", + "SeaShell": "fff5ee", + "Sienna": "a0522d", + "Silver": "c0c0c0", + "SkyBlue": "87ceeb", + "SlateBlue": "6a5acd", + "SlateGray": "708090", + "SlateGrey": "708090", + "Snow": "fffafa", + "SpringGreen": "00ff7f", + "SteelBlue": "4682b4", + "Tan": "d2b48c", + "Teal": "008080", + "Thistle": "d8bfd8", + "Tomato": "ff6347", + "Turquoise": "40e0d0", + "Violet": "ee82ee", + "Wheat": "f5deb3", + "White": "ffffff", + "WhiteSmoke": "f5f5f5", + "Yellow": "ffff00", + "YellowGreen": "9acd32" +} diff --git a/test/test-utils/mocks/mock-console/infer-color.ts b/test/test-utils/mocks/mock-console/infer-color.ts new file mode 100644 index 00000000000..e01adbc4ad4 --- /dev/null +++ b/test/test-utils/mocks/mock-console/infer-color.ts @@ -0,0 +1,61 @@ +import { hslToHex } from "#utils/common"; +import chalk, { type ChalkInstance, type ForegroundColorName, foregroundColorNames } from "chalk"; +import colorMap from "./color-map.json"; + +export function inferColorFormat(data: [string, ...unknown[]]): ChalkInstance { + // Remove all CSS format strings and find the first one containing something vaguely resembling a color + data[0] = data[0].replaceAll("%c", ""); + const args = data.slice(1).filter(t => typeof t === "string"); + const color = findColorPrefix(args); + + // If the color is within Chalk's native roster, use it directly. + if ((foregroundColorNames as string[]).includes(color)) { + return chalk[color as ForegroundColorName]; + } + + // Otherwise, coerce it to hex before feeding it in. + return getColor(color); +} + +/** + * Find the first string with a "color:" CSS directive in an argument list. + * @param args - The arguments containing the color directive + * @returns The found color, or `"green"` if none were found + */ +function findColorPrefix(args: string[]): string { + for (const arg of args) { + const match = /color:\s*(.+?)(?:;|$)/g.exec(arg); + if (match === null) { + continue; + } + + return match[1]; + } + return "green"; +} + +/** + * Coerce an arbitrary CSS color string to a Chalk instance. + * @param color - The color to coerce + * @returns The Chalk color equivalent. + */ +function getColor(color: string): ChalkInstance { + if (/^#([a-z0-9]{3,4}|[a-z0-9]{6}|[a-z0-9]{8})$/i.test(color)) { + // already in hex + return chalk.hex(color); + } + + const rgbMatch = /^rgba?\((\d{1,3})%?,\s*(\d{1,3})%?,?\s*(\d{1,3})%?,\s*/i.exec(color); + if (rgbMatch) { + const [red, green, blue] = rgbMatch; + return chalk.rgb(+red, +green, +blue); + } + + const hslMatch = /^hslv?\((\d{1,3}),\s*(\d{1,3})%,\s*(\d{1,3})%\)$/i.exec(color); + if (hslMatch) { + const [hue, saturation, light] = hslMatch; + return chalk.hex(hslToHex(+hue, +saturation / 100, +light / 100)); + } + + return chalk.hex(colorMap[color] ?? "#00ff95ff"); +} diff --git a/test/test-utils/mocks/mock-console/mock-console.ts b/test/test-utils/mocks/mock-console/mock-console.ts new file mode 100644 index 00000000000..52ed0af6aa7 --- /dev/null +++ b/test/test-utils/mocks/mock-console/mock-console.ts @@ -0,0 +1,211 @@ +import { DEBUG_COLOR, NEW_TURN_COLOR, TRACE_COLOR, UI_MSG_COLOR } from "#app/constants/colors"; +import { inferColorFormat } from "#test/test-utils/mocks/mock-console/infer-color"; +import { coerceArray } from "#utils/common"; +import { type InspectOptions, inspect } from "node:util"; +import chalk, { type ChalkInstance } from "chalk"; + +// Tell chalk we support truecolor +chalk.level = 3; + +// TODO: Review this +const blacklist = [ + "variant icon does not exist", // Repetitive warnings about icons not found + 'Texture "%s" not found', // Repetitive warnings about textures not found + "type: 'Pokemon',", // Large Pokemon objects + "gameVersion: ", // Large session-data and system-data objects + "Phaser v", // Phaser version text + "Seed:", // Stuff about wave seed (we should really stop logging this shit) + "Wave Seed:", // Stuff about wave seed (we should really stop logging this shit) +] as const; +const whitelist = ["Start Phase"] as const; + +const inspectOptions: InspectOptions = { sorted: true, breakLength: 120, numericSeparator: true }; + +/** + * The {@linkcode MockConsole} is a wrapper around the global {@linkcode console} object. + * It automatically colors text and such. + */ +export class MockConsole implements Omit { + /** + * A list of warnings that are queued to be displayed after all tests in the same file are finished. + */ + private static readonly queuedWarnings: unknown[][] = []; + /** + * The original `Console` object, preserved to avoid overwriting + * Vitest's native `console.log` wrapping. + */ + private console = console; + + //#region Static Properties + + /** + * Queue a warning to be printed after all tests in the same file are finished. + */ + // TODO: Add some warnings + public static queuePostTestWarning(...data: unknown[]): void { + MockConsole.queuedWarnings.push(data); + } + + /** + * Print and reset all post-test warnings. + */ + public static printPostTestWarnings(): void { + for (const data of MockConsole.queuedWarnings) { + console.warn(...data); + } + MockConsole.queuedWarnings.splice(0); + } + + //#endregion Private Properties + + //#region Utilities + + /** + * Check whether a given set of data is in the blacklist to be barred from logging. + * @param data - The data being logged + * @returns Whether `data` is blacklisted from console logging + */ + private checkBlacklist(data: unknown[]): boolean { + const dataStr = this.getStr(data); + return !whitelist.some(b => dataStr.includes(b)) && blacklist.some(b => dataStr.includes(b)); + } + + /** + * Returns a human-readable string representation of `data`. + */ + private getStr(data: unknown): string { + return inspect(data, inspectOptions); + } + + /** + * Stringify the given data in a manner fit for logging. + * @param color - A Chalk instance or other transformation function used to transform the output, + * or `undefined` to not transform it at all. + * @param data - The data that the format should be applied to. + * @returns A stringified copy of `data` with {@linkcode color} applied to each individual argument. + * @todo Do we need to apply color to each entry or just run it through `util.format`? + */ + private format(color: ((s: unknown) => unknown) | undefined, data: unknown | unknown[]): unknown[] { + data = coerceArray(data); + color ??= a => a; + return (data as unknown[]).map(a => color(typeof a === "function" || typeof a === "object" ? this.getStr(a) : a)); + } + + //#endregion Utilities + + //#region Custom wrappers + public info(...data: unknown[]) { + return this.log(...data); + } + + public trace(...data: unknown[]) { + if (this.checkBlacklist(data)) { + return; + } + + // TODO: Figure out how to add color to the full trace text + this.console.trace(...this.format(chalk.hex(TRACE_COLOR), data)); + } + + public debug(...data: unknown[]) { + if (this.checkBlacklist(data)) { + return; + } + + this.console.debug(...this.format(chalk.hex(DEBUG_COLOR), data)); + } + + public log(...data: unknown[]): void { + if (this.checkBlacklist(data)) { + return; + } + + let formatter: ChalkInstance | undefined; + + if (data.some(d => typeof d === "string" && d.includes("color:"))) { + // Infer the color format from the arguments, then remove everything but the message. + formatter = inferColorFormat(data as [string, ...unknown[]]); + data.splice(1); + } else if (data[0] === "[UI]") { + // Cyan for UI debug messages + formatter = chalk.hex(UI_MSG_COLOR); + } else if (typeof data[0] === "string" && data[0].startsWith("=====")) { + // Orange logging for "New Turn"/etc messages + formatter = chalk.hex(NEW_TURN_COLOR); + } + + this.console.log(...this.format(formatter, data)); + } + + public warn(...data: unknown[]) { + if (this.checkBlacklist(data)) { + return; + } + + this.console.warn(...this.format(chalk.yellow, data)); + } + + public error(...data: unknown[]) { + if (this.checkBlacklist(data)) { + return; + } + + this.console.error(...this.format(chalk.redBright, data)); + } + + //#endregion Custom Wrappers + + //#region Copy-pasted Console code + // TODO: Progressively add proper coloration and support for all these methods + public dir(...args: Parameters<(typeof console)["dir"]>): ReturnType<(typeof console)["dir"]> { + return this.console.dir(...args); + } + public dirxml(...args: Parameters<(typeof console)["dirxml"]>): ReturnType<(typeof console)["dirxml"]> { + return this.console.dirxml(...args); + } + public table(...args: Parameters<(typeof console)["table"]>): ReturnType<(typeof console)["table"]> { + return this.console.table(...args); + } + public group(...args: Parameters<(typeof console)["group"]>): ReturnType<(typeof console)["group"]> { + return this.console.group(...args); + } + public groupCollapsed( + ...args: Parameters<(typeof console)["groupCollapsed"]> + ): ReturnType<(typeof console)["groupCollapsed"]> { + return this.console.groupCollapsed(...args); + } + public groupEnd(...args: Parameters<(typeof console)["groupEnd"]>): ReturnType<(typeof console)["groupEnd"]> { + return this.console.groupEnd(...args); + } + public clear(...args: Parameters<(typeof console)["clear"]>): ReturnType<(typeof console)["clear"]> { + return this.console.clear(...args); + } + public count(...args: Parameters<(typeof console)["count"]>): ReturnType<(typeof console)["count"]> { + return this.console.count(...args); + } + public countReset(...args: Parameters<(typeof console)["countReset"]>): ReturnType<(typeof console)["countReset"]> { + return this.console.countReset(...args); + } + public assert(...args: Parameters<(typeof console)["assert"]>): ReturnType<(typeof console)["assert"]> { + return this.console.assert(...args); + } + public profile(...args: Parameters<(typeof console)["profile"]>): ReturnType<(typeof console)["profile"]> { + return this.console.profile(...args); + } + public profileEnd(...args: Parameters<(typeof console)["profileEnd"]>): ReturnType<(typeof console)["profileEnd"]> { + return this.console.profileEnd(...args); + } + public time(...args: Parameters<(typeof console)["time"]>): ReturnType<(typeof console)["time"]> { + return this.console.time(...args); + } + public timeLog(...args: Parameters<(typeof console)["timeLog"]>): ReturnType<(typeof console)["timeLog"]> { + return this.console.timeLog(...args); + } + public timeEnd(...args: Parameters<(typeof console)["timeEnd"]>): ReturnType<(typeof console)["timeEnd"]> { + return this.console.timeEnd(...args); + } + public timeStamp(...args: Parameters<(typeof console)["timeStamp"]>): ReturnType<(typeof console)["timeStamp"]> { + return this.console.timeStamp(...args); + } + //#endregion Copy-pasted Console code +} diff --git a/test/test-utils/mocks/mocks-container/mock-text.ts b/test/test-utils/mocks/mocks-container/mock-text.ts index ad2fce80972..a64aa45ef80 100644 --- a/test/test-utils/mocks/mocks-container/mock-text.ts +++ b/test/test-utils/mocks/mocks-container/mock-text.ts @@ -1,4 +1,5 @@ import type { MockGameObject } from "#test/test-utils/mocks/mock-game-object"; +import type { TextInterceptor } from "#test/test-utils/text-interceptor"; import { UI } from "#ui/ui"; export class MockText implements MockGameObject { @@ -82,13 +83,14 @@ export class MockText implements MockGameObject { showText( text: string, - delay?: number | null, + _delay?: number | null, callback?: Function | null, - callbackDelay?: number | null, - prompt?: boolean | null, - promptDelay?: number | null, + _callbackDelay?: number | null, + _prompt?: boolean | null, + _promptDelay?: number | null, ) { - this.scene.messageWrapper.showText(text, delay, callback, callbackDelay, prompt, promptDelay); + // TODO: this is a very bad way to pass calls around + (this.scene.messageWrapper as TextInterceptor).showText(text); if (callback) { callback(); } @@ -96,13 +98,13 @@ export class MockText implements MockGameObject { showDialogue( keyOrText: string, - name: string | undefined, - delay: number | null = 0, + name: string, + _delay: number | null, callback: Function, - callbackDelay?: number, - promptDelay?: number, + _callbackDelay?: number, + _promptDelay?: number, ) { - this.scene.messageWrapper.showDialogue(keyOrText, name, delay, callback, callbackDelay, promptDelay); + (this.scene.messageWrapper as TextInterceptor).showDialogue(keyOrText, name); if (callback) { callback(); } diff --git a/test/test-utils/reporters/custom-default-reporter.ts b/test/test-utils/reporters/custom-default-reporter.ts new file mode 100644 index 00000000000..15c4881b83c --- /dev/null +++ b/test/test-utils/reporters/custom-default-reporter.ts @@ -0,0 +1,62 @@ +import { relative } from "node:path"; +import { parseStacktrace } from "@vitest/utils/source-map"; +import chalk from "chalk"; +import type { UserConsoleLog } from "vitest"; +import type { TestState } from "vitest/node"; +import { DefaultReporter } from "vitest/reporters"; + +/** + * Custom Vitest reporter to strip the current file names from the output. + */ +export default class CustomDefaultReporter extends DefaultReporter { + public override onUserConsoleLog(log: UserConsoleLog, taskState?: TestState): void { + // This code is more or less copied verbatim from `vitest/reporters` source, with minor tweaks to use + // dependencies we actually _have_ (i.e. chalk) rather than ones we don't (i.e. tinyrainbow). + + // SPDX-SnippetBegin + // SPDX-SnippetCopyrightText: 2021 VoidZero Inc. and Vitest contributors + // SPDX-License-Identifier: MIT + + if (!super.shouldLog(log, taskState)) { + return; + } + + const output = log.type === "stdout" ? this.ctx.logger.outputStream : this.ctx.logger.errorStream; + + const write = (msg: string) => output.write(msg); + + const task = log.taskId ? this.ctx.state.idMap.get(log.taskId) : undefined; + + write(log.content); // this is about the only changed line (that and us skipping a newline) + + if (!log.origin) { + return; + } + + // Code for stack trace, ripped directly out of Vitest source code. + // I wish they had a helper function to do this so we didn't have to import `@vitest/utils`, but oh well... + // browser logs don't have an extra end of line at the end like Node.js does + if (log.browser) { + write("\n"); + } + + const project = task ? this.ctx.getProjectByName(task.file.projectName ?? "") : this.ctx.getRootProject(); + + const stack = log.browser ? (project.browser?.parseStacktrace(log.origin) ?? []) : parseStacktrace(log.origin); + + const highlight = task && stack.find(i => i.file === task.file.filepath); + + for (const frame of stack) { + const color = frame === highlight ? chalk.cyan : chalk.gray; + const path = relative(project.config.root, frame.file); + + const positions = [frame.method, `${path}:${chalk.dim(`${frame.line}:${frame.column}`)}`] + .filter(Boolean) + .join(" "); + + write(color(` ${chalk.dim(">")} ${positions}\n`)); + } + + // SPDX-SnippetEnd + } +} diff --git a/test/test-utils/setup/test-end-log.ts b/test/test-utils/setup/test-end-log.ts new file mode 100644 index 00000000000..9814ba8a45c --- /dev/null +++ b/test/test-utils/setup/test-end-log.ts @@ -0,0 +1,113 @@ +// biome-ignore lint/correctness/noUnusedImports: TSDoc +import type CustomDefaultReporter from "#test/test-utils/reporters/custom-default-reporter"; +import { basename, join, relative } from "path"; +import chalk from "chalk"; +import type { RunnerTask, RunnerTaskResult, RunnerTestCase } from "vitest"; + +/** + * @module + * Code to add markers to the beginning and end of tests. + * Intended for use with {@linkcode CustomDefaultReporter}, and placed inside test hooks + * (rather than as part of the reporter) to ensure Vitest waits for the log messages to be printed. + */ + +/** A long string of "="s to partition off each test from one another. */ +const TEST_END_BARRIER = chalk.bold.hex("#ff7c7cff")("=================="); + +// Colors used for Vitest-related test utils +const TEST_NAME_COLOR = "#008886ff" as const; +const VITEST_PINK_COLOR = "#c162de" as const; + +const testRoot = join(import.meta.dirname, "..", "..", ".."); + +/** + * Log the testfile name and path upon a case starting. \ + * Used to compensate for us overridding the global Console object and removing Vitest's + * test name annotations. + * @param test - The {@linkcode RunnerTask} passed from the context + */ +export function logTestStart(test: RunnerTask): void { + console.log(TEST_END_BARRIER); + console.log( + `${chalk.dim("> ")}${chalk.hex(VITEST_PINK_COLOR)("Starting test: ")}${chalk.hex(TEST_NAME_COLOR)(getTestName(test))}`, + ); +} + +/** + * Log the testfile name, path and result upon a case ending. \ + * Used to compensate for us overridding the global Console object and removing Vitest's + * test name annotations. + * @param task - The {@linkcode RunnerTestCase} passed from the hook + */ +export function logTestEnd(task: RunnerTestCase): void { + const durationStr = getDurationPrefix(task.result); + const resultStr = getResultStr(task.result); + console.log(`${chalk.dim("> ")}${chalk.black.bgHex(VITEST_PINK_COLOR)(" Test finished! ")} + Name: ${chalk.hex(TEST_NAME_COLOR)(getTestName(task))} + Result: ${resultStr}${durationStr} + File: ${chalk.hex("#d29b0eff")( + getPathFromTest(task.file.filepath) + (task.location ? `:${task.location.line}:${task.location.column}` : ""), + )}`); +} + +/** + * Get the path of the current test file relative to the `test` directory. + * @param abs - The absolute path to the file + * @returns The relative path with `test/` appended to it. + */ +function getPathFromTest(abs: string): string { + return join(basename(testRoot), relative(testRoot, abs)); +} + +function getResultStr(result: RunnerTaskResult | undefined): string { + if (result?.state !== "pass" && result?.state !== "fail") { + return "Unknown"; + } + + const resultStr = + result.state === "pass" + ? chalk.green.bold("✔ Passed") + : (result?.duration ?? 0) > 2 + ? chalk.cyan.bold("◴ Timed out") + : chalk.red.bold("✗ Failed"); + + return resultStr; +} + +/** + * Get the text to be displayed for a test's duration. + * @param result - The {@linkcode RunnerTaskResult} of the finished test + * @returns An appropriately colored suffix for the start time. + * Will return an empty string if `result.startTime` is `undefined` + */ +function getDurationPrefix(result?: RunnerTaskResult): string { + const startTime = result?.startTime; + if (!startTime) { + return ""; + } + const duration = Math.round(Date.now() - startTime); + + // TODO: Figure out a way to access the current vitest config from a hook + const color = duration > 10_000 ? chalk.yellow : chalk.green; + return ` ${chalk.dim("in")} ${color(duration)}${chalk.dim("ms")}`; +} + +// Function copied from vitest source to avoid having to import `@vitest/runner/utils` for 1 function + +// SPDX-SnippetBegin +// SPDX-SnippetCopyrightText: 2021 VoidZero Inc. and Vitest contributors +// SPDX-License-Identifier: MIT +function getTestName(task: RunnerTask, separator = " > "): string { + const names: string[] = [task.name]; + let current: RunnerTask | undefined = task; + + while ((current = current?.suite)) { + if (current?.name) { + names.unshift(current.name); + } + } + + return names.join(separator); +} + +// SPDX-SnippetEnd diff --git a/test/test-utils/test-file-initialization.ts b/test/test-utils/test-file-initialization.ts index 631d3f9146b..c172e2d1da8 100644 --- a/test/test-utils/test-file-initialization.ts +++ b/test/test-utils/test-file-initialization.ts @@ -3,7 +3,7 @@ import { initializeGame } from "#app/init/init"; import { initI18n } from "#plugins/i18n"; import { blobToString } from "#test/test-utils/game-manager-utils"; import { manageListeners } from "#test/test-utils/listeners-manager"; -import { MockConsoleLog } from "#test/test-utils/mocks/mock-console-log"; +import { MockConsole } from "#test/test-utils/mocks/mock-console/mock-console"; import { mockContext } from "#test/test-utils/mocks/mock-context-canvas"; import { mockLocalStorage } from "#test/test-utils/mocks/mock-local-storage"; import { MockImage } from "#test/test-utils/mocks/mocks-container/mock-image"; @@ -38,14 +38,22 @@ function initTestFile(): void { /** * Setup various stubs for testing. * @todo Move this into a dedicated stub file instead of running it once per test instance + * @todo review these to see which are actually necessary * @todo Investigate why this resets on new test suite start */ function setupStubs(): void { - Object.defineProperty(window, "localStorage", { - value: mockLocalStorage(), - }); - Object.defineProperty(window, "console", { - value: new MockConsoleLog(false), + Object.defineProperties(global, { + localStorage: { + value: mockLocalStorage(), + }, + console: { + value: new MockConsole(), + }, + matchMedia: { + value: () => ({ + matches: false, + }), + }, }); Object.defineProperty(document, "fonts", { writable: true, @@ -69,11 +77,6 @@ function setupStubs(): void { navigator.getGamepads = () => []; setCookie(SESSION_ID_COOKIE_NAME, "fake_token"); - window.matchMedia = () => - ({ - matches: false, - }) as any; - /** * Sets this object's position relative to another object with a given offset * @param guideObject - The {@linkcode Phaser.GameObjects.GameObject} to base the position off of diff --git a/test/test-utils/text-interceptor.ts b/test/test-utils/text-interceptor.ts index 36a5db4c78d..dfbaf2ff11c 100644 --- a/test/test-utils/text-interceptor.ts +++ b/test/test-utils/text-interceptor.ts @@ -1,39 +1,49 @@ +import type { BattleScene } from "#app/battle-scene"; +import chalk from "chalk"; + /** - * Class will intercept any text or dialogue message calls and log them for test purposes + * The {@linkcode TextInterceptor} is a wrapper class that intercepts and logs any messages + * that would be displayed on-screen. */ export class TextInterceptor { - private scene; - public logs: string[] = []; - constructor(scene) { - this.scene = scene; + /** A log containing messages having been displayed on screen, sorted in FIFO order. */ + public readonly logs: string[] = []; + + constructor(scene: BattleScene) { + // @ts-expect-error: Find another more sanitary way of doing this scene.messageWrapper = this; } - showText( - text: string, - _delay?: number, - _callback?: Function, - _callbackDelay?: number, - _prompt?: boolean, - _promptDelay?: number, - ): void { - console.log(text); + /** Clear the current content of the TextInterceptor. */ + public clearLogs(): void { + this.logs.splice(0); + } + + showText(text: string): void { + // NB: We do not format the raw _logs_ themselves as tests will be actively checking it. + console.log(this.formatText(text)); this.logs.push(text); } - showDialogue( - text: string, - name: string, - _delay?: number, - _callback?: Function, - _callbackDelay?: number, - _promptDelay?: number, - ): void { - console.log(name, text); + showDialogue(text: string, name: string): void { + console.log(`${name}: \n${this.formatText(text)}`); this.logs.push(name, text); } - getLatestMessage(): string { - return this.logs.pop() ?? ""; + /** + * Format text to be displayed to the test console, as follows: + * 1. Replaces new lines and new text boxes (marked by `$`) with indented new lines. + * 2. Removes all `@c{}`, `@d{}`, `@s{}`, and `@f{}` flags from the text. + * 3. Makes text blue + * @param text - The unformatted text + * @returns The formatted text + */ + private formatText(text: string): string { + return chalk.blue( + text + .replace(/\n/g, " ") + .replace(/\$/g, "\n ") + .replace(/@\w{.*?}/g, ""), + ); } } diff --git a/test/vitest.setup.ts b/test/vitest.setup.ts index be35e18e2e9..23adab01a05 100644 --- a/test/vitest.setup.ts +++ b/test/vitest.setup.ts @@ -1,16 +1,21 @@ import "vitest-canvas-mock"; +import { MockConsole } from "#test/test-utils/mocks/mock-console/mock-console"; +import { logTestEnd, logTestStart } from "#test/test-utils/setup/test-end-log"; import { initTests } from "#test/test-utils/test-file-initialization"; -import { afterAll, beforeAll, vi } from "vitest"; +import chalk from "chalk"; +import { afterAll, afterEach, beforeAll, beforeEach, vi } from "vitest"; -/** Set the timezone to UTC for tests. */ +//#region Mocking -/** Mock the override import to always return default values, ignoring any custom overrides. */ -vi.mock("#app/overrides", async importOriginal => { - const { defaultOverrides } = await importOriginal(); +// Mock the override import to always return default values, ignoring any custom overrides. +vi.mock(import("#app/overrides"), async importOriginal => { + const { defaultOverrides } = await importOriginal(); return { default: defaultOverrides, - defaultOverrides, + // Export `defaultOverrides` as a *copy*. + // This ensures we can easily reset `overrides` back to its default values after modifying it. + defaultOverrides: { ...defaultOverrides }, } satisfies typeof import("#app/overrides"); }); @@ -20,7 +25,7 @@ vi.mock("#app/overrides", async importOriginal => { * This is necessary because how our code is structured. * Do NOT try to put any of this code into external functions, it won't work as it's elevated during runtime. */ -vi.mock("i18next", async importOriginal => { +vi.mock(import("i18next"), async importOriginal => { console.log("Mocking i18next"); const { setupServer } = await import("msw/node"); const { http, HttpResponse } = await import("msw"); @@ -30,8 +35,11 @@ vi.mock("i18next", async importOriginal => { const filename = req.params[0]; try { - const json = await import(`../public/locales/en/${req.params[0]}`); - console.log("Loaded locale", filename); + const localeFiles = import.meta.glob("../public/locales/en/**/*.json", { eager: true }); + const json = localeFiles[`../public/locales/en/${filename}`] || {}; + if (import.meta.env.VITE_I18N_DEBUG === "1") { + console.log("Loaded locale", filename); + } return HttpResponse.json(json); } catch (err) { console.log(`Failed to load locale ${filename}!`, err); @@ -54,7 +62,15 @@ beforeAll(() => { initTests(); }); +beforeEach(context => { + logTestStart(context.task); +}); +afterEach(context => { + logTestEnd(context.task); +}); + afterAll(() => { global.server.close(); - console.log("Closing i18n MSW server!"); + MockConsole.printPostTestWarnings(); + console.log(chalk.hex("#dfb8d8")("Closing i18n MSW server!")); }); diff --git a/typedoc.config.js b/typedoc.config.js index 1f944cd544e..ef932a5d077 100644 --- a/typedoc.config.js +++ b/typedoc.config.js @@ -8,7 +8,13 @@ const dryRun = !!process.env.DRY_RUN?.match(/true/gi); const config = { entryPoints: ["./src", "./test/test-utils"], entryPointStrategy: "expand", - exclude: ["**/*+.test.ts", "src/polyfills.ts", "src/vite.env.d.ts"], + exclude: [ + "src/polyfills.ts", + "src/vite.env.d.ts", + "**/*+.test.ts", + "test/test-utils/setup", + "test/test-utils/reporters", + ], excludeReferences: true, // prevent documenting re-exports requiredToBeDocumented: [ "Enum", diff --git a/vitest.config.ts b/vitest.config.ts index 65c5427e591..7fa2494bb4e 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,18 +1,25 @@ -import { defineProject } from "vitest/config"; +import { defineConfig } from "vitest/config"; import { BaseSequencer, type TestSpecification } from "vitest/node"; import { defaultConfig } from "./vite.config"; -export default defineProject(({ mode }) => ({ +export default defineConfig(({ mode }) => ({ ...defaultConfig, test: { + reporters: process.env.GITHUB_ACTIONS + ? ["github-actions", "./test/test-utils/reporters/custom-default-reporter.ts"] + : ["./test/test-utils/reporters/custom-default-reporter.ts"], env: { TZ: "UTC", }, - testTimeout: 20000, + testTimeout: 20_000, + slowTestThreshold: 10_000, + // TODO: Consider enabling + // expect: {requireAssertions: true}, setupFiles: ["./test/font-face.setup.ts", "./test/vitest.setup.ts", "./test/matchers.setup.ts"], sequence: { sequencer: MySequencer, }, + includeTaskLocation: true, environment: "jsdom" as const, environmentOptions: { jsdom: { From e222731623b78aac65963f9293c6c8b4e0810d80 Mon Sep 17 00:00:00 2001 From: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Date: Sun, 7 Sep 2025 09:43:01 -0500 Subject: [PATCH 10/10] Center text in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d381b8f47f5..73477968bc0 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -PokéRogue +
PokéRogue [![Discord Static Badge](https://img.shields.io/badge/Community_Discord-blurple?style=flat&logo=discord&logoSize=auto&labelColor=white&color=5865F2)](https://discord.gg/pokerogue) [![Docs Coverage Static Badge](https://pagefaultgames.github.io/pokerogue/beta/coverage.svg)](https://pagefaultgames.github.io/pokerogue/beta) [![Testing Badge](https://github.com/pagefaultgames/pokerogue/actions/workflows/tests.yml/badge.svg)](https://github.com/pagefaultgames/pokerogue/actions/workflows/tests.yml) -[![License: GNU AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) +[![License: GNU AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
PokéRogue is a browser based Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, fighting trainers, bosses, and more!