diff --git a/index.css b/index.css index 716f06321..0d7e671c7 100644 --- a/index.css +++ b/index.css @@ -56,7 +56,7 @@ body { } #dpad svg rect { - opacity: 0.4; + opacity: 0.6; } #apad > * { @@ -151,7 +151,7 @@ body { } #dpad path:not(.active), #apad .apadBtn:not(.active) { - opacity: 0.4; + opacity: 0.6; } #layout:fullscreen #dpad, #layout:fullscreen #apad { diff --git a/public/images/categories.png b/public/images/categories.png index 94ba1d4c4..0f6833994 100644 Binary files a/public/images/categories.png and b/public/images/categories.png differ diff --git a/public/images/categories_legacy.json b/public/images/categories_legacy.json new file mode 100644 index 000000000..e840e2d20 --- /dev/null +++ b/public/images/categories_legacy.json @@ -0,0 +1,83 @@ +{ + "textures": [ + { + "image": "categories_legacy.png", + "format": "RGBA8888", + "size": { + "w": 84, + "h": 11 + }, + "scale": 1, + "frames": [ + { + "filename": "physical", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 28, + "h": 11 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 28, + "h": 11 + }, + "frame": { + "x": 0, + "y": 0, + "w": 28, + "h": 11 + } + }, + { + "filename": "special", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 28, + "h": 11 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 28, + "h": 11 + }, + "frame": { + "x": 28, + "y": 0, + "w": 28, + "h": 11 + } + }, + { + "filename": "status", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 28, + "h": 11 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 28, + "h": 11 + }, + "frame": { + "x": 56, + "y": 0, + "w": 28, + "h": 11 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:624cc5ad31c0279b246b3f142bfd9c96:8422b1554e15389969070f2f708b78a0:70593749cf27aa2aea2f8132ad50259f$" + } +} diff --git a/public/images/categories_legacy.png b/public/images/categories_legacy.png new file mode 100644 index 000000000..94ba1d4c4 Binary files /dev/null and b/public/images/categories_legacy.png differ diff --git a/public/images/items.json b/public/images/items.json index 04c532778..894492468 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -6861,6 +6861,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:c18beea730e83951080b9921ec827d8a:b2ceecbeaa751b470148353f2b8df889:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:8a4a113eddaa06da0a2e98c7b3bbfcdc:b2ceecbeaa751b470148353f2b8df889:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items/rb.png b/public/images/items/rb.png index 6bcad969b..0f39f4bdc 100644 Binary files a/public/images/items/rb.png and b/public/images/items/rb.png differ diff --git a/public/images/pb.json b/public/images/pb.json index d55dd5efa..fe11336cf 100644 --- a/public/images/pb.json +++ b/public/images/pb.json @@ -393,6 +393,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:0efebcf5a0349e3198f05490d6ab3701:bd953ec0b847e86511a613c51d748a6b:8bcd206ed4f9371dcc2f2cbe354ed6ed$" + "smartupdate": "$TexturePacker:SmartUpdate:2715eb0a025a0813db1a38a913af8e68:4c4ffcc420a57c7dbc4ff35c5fbc8716:8bcd206ed4f9371dcc2f2cbe354ed6ed$" } } diff --git a/public/images/pb.png b/public/images/pb.png index af62128f0..acb3a96f0 100644 Binary files a/public/images/pb.png and b/public/images/pb.png differ diff --git a/public/images/pokeball/gb.png b/public/images/pokeball/gb.png index 8cebe59cb..94f278c8e 100644 Binary files a/public/images/pokeball/gb.png and b/public/images/pokeball/gb.png differ diff --git a/public/images/pokeball/gb_open.png b/public/images/pokeball/gb_open.png index 06409c56c..26d8956fd 100644 Binary files a/public/images/pokeball/gb_open.png and b/public/images/pokeball/gb_open.png differ diff --git a/public/images/pokeball/gb_opening.png b/public/images/pokeball/gb_opening.png index 2a44eb6d7..9947f7ceb 100644 Binary files a/public/images/pokeball/gb_opening.png and b/public/images/pokeball/gb_opening.png differ diff --git a/public/images/pokeball/mb.png b/public/images/pokeball/mb.png index 562e7b138..de374e0fd 100644 Binary files a/public/images/pokeball/mb.png and b/public/images/pokeball/mb.png differ diff --git a/public/images/pokeball/mb_open.png b/public/images/pokeball/mb_open.png index fc3926fe9..f4e0145dc 100644 Binary files a/public/images/pokeball/mb_open.png and b/public/images/pokeball/mb_open.png differ diff --git a/public/images/pokeball/mb_opening.png b/public/images/pokeball/mb_opening.png index a25b38aaa..9c483fbbb 100644 Binary files a/public/images/pokeball/mb_opening.png and b/public/images/pokeball/mb_opening.png differ diff --git a/public/images/pokeball/pb.png b/public/images/pokeball/pb.png index fb6d5426e..684ed6b0a 100644 Binary files a/public/images/pokeball/pb.png and b/public/images/pokeball/pb.png differ diff --git a/public/images/pokeball/pb_open.png b/public/images/pokeball/pb_open.png index ba166d1fc..62db56cdd 100644 Binary files a/public/images/pokeball/pb_open.png and b/public/images/pokeball/pb_open.png differ diff --git a/public/images/pokeball/pb_opening.png b/public/images/pokeball/pb_opening.png index 60f352770..4f13a9b46 100644 Binary files a/public/images/pokeball/pb_opening.png and b/public/images/pokeball/pb_opening.png differ diff --git a/public/images/pokeball/rb.png b/public/images/pokeball/rb.png index 3d83ce0ec..e2e1f1b07 100644 Binary files a/public/images/pokeball/rb.png and b/public/images/pokeball/rb.png differ diff --git a/public/images/pokeball/rb_open.png b/public/images/pokeball/rb_open.png index ff72ae05f..94d480b58 100644 Binary files a/public/images/pokeball/rb_open.png and b/public/images/pokeball/rb_open.png differ diff --git a/public/images/pokeball/rb_opening.png b/public/images/pokeball/rb_opening.png index 18f5ca4e9..76aae3c17 100644 Binary files a/public/images/pokeball/rb_opening.png and b/public/images/pokeball/rb_opening.png differ diff --git a/public/images/pokeball/ub.png b/public/images/pokeball/ub.png index 45445a286..306cb1684 100644 Binary files a/public/images/pokeball/ub.png and b/public/images/pokeball/ub.png differ diff --git a/public/images/pokeball/ub_open.png b/public/images/pokeball/ub_open.png index 40fdd0941..2ccf2ae36 100644 Binary files a/public/images/pokeball/ub_open.png and b/public/images/pokeball/ub_open.png differ diff --git a/public/images/pokeball/ub_opening.png b/public/images/pokeball/ub_opening.png index eb92b5b77..6c8e77112 100644 Binary files a/public/images/pokeball/ub_opening.png and b/public/images/pokeball/ub_opening.png differ diff --git a/public/images/ui/pokemon_icons_0.json b/public/images/pokemon_icons_0.json similarity index 100% rename from public/images/ui/pokemon_icons_0.json rename to public/images/pokemon_icons_0.json diff --git a/public/images/ui/pokemon_icons_0.png b/public/images/pokemon_icons_0.png similarity index 100% rename from public/images/ui/pokemon_icons_0.png rename to public/images/pokemon_icons_0.png diff --git a/public/images/ui/pokemon_icons_1.json b/public/images/pokemon_icons_1.json similarity index 100% rename from public/images/ui/pokemon_icons_1.json rename to public/images/pokemon_icons_1.json diff --git a/public/images/ui/pokemon_icons_1.png b/public/images/pokemon_icons_1.png similarity index 100% rename from public/images/ui/pokemon_icons_1.png rename to public/images/pokemon_icons_1.png diff --git a/public/images/ui/pokemon_icons_2.json b/public/images/pokemon_icons_2.json similarity index 100% rename from public/images/ui/pokemon_icons_2.json rename to public/images/pokemon_icons_2.json diff --git a/public/images/ui/pokemon_icons_2.png b/public/images/pokemon_icons_2.png similarity index 100% rename from public/images/ui/pokemon_icons_2.png rename to public/images/pokemon_icons_2.png diff --git a/public/images/ui/pokemon_icons_3.json b/public/images/pokemon_icons_3.json similarity index 100% rename from public/images/ui/pokemon_icons_3.json rename to public/images/pokemon_icons_3.json diff --git a/public/images/ui/pokemon_icons_3.png b/public/images/pokemon_icons_3.png similarity index 100% rename from public/images/ui/pokemon_icons_3.png rename to public/images/pokemon_icons_3.png diff --git a/public/images/ui/pokemon_icons_4.json b/public/images/pokemon_icons_4.json similarity index 100% rename from public/images/ui/pokemon_icons_4.json rename to public/images/pokemon_icons_4.json diff --git a/public/images/ui/pokemon_icons_4.png b/public/images/pokemon_icons_4.png similarity index 100% rename from public/images/ui/pokemon_icons_4.png rename to public/images/pokemon_icons_4.png diff --git a/public/images/ui/pokemon_icons_5.json b/public/images/pokemon_icons_5.json similarity index 100% rename from public/images/ui/pokemon_icons_5.json rename to public/images/pokemon_icons_5.json diff --git a/public/images/ui/pokemon_icons_5.png b/public/images/pokemon_icons_5.png similarity index 100% rename from public/images/ui/pokemon_icons_5.png rename to public/images/pokemon_icons_5.png diff --git a/public/images/ui/pokemon_icons_6.json b/public/images/pokemon_icons_6.json similarity index 100% rename from public/images/ui/pokemon_icons_6.json rename to public/images/pokemon_icons_6.json diff --git a/public/images/ui/pokemon_icons_6.png b/public/images/pokemon_icons_6.png similarity index 100% rename from public/images/ui/pokemon_icons_6.png rename to public/images/pokemon_icons_6.png diff --git a/public/images/ui/pokemon_icons_7.json b/public/images/pokemon_icons_7.json similarity index 100% rename from public/images/ui/pokemon_icons_7.json rename to public/images/pokemon_icons_7.json diff --git a/public/images/ui/pokemon_icons_7.png b/public/images/pokemon_icons_7.png similarity index 100% rename from public/images/ui/pokemon_icons_7.png rename to public/images/pokemon_icons_7.png diff --git a/public/images/ui/pokemon_icons_8.json b/public/images/pokemon_icons_8.json similarity index 100% rename from public/images/ui/pokemon_icons_8.json rename to public/images/pokemon_icons_8.json diff --git a/public/images/ui/pokemon_icons_8.png b/public/images/pokemon_icons_8.png similarity index 100% rename from public/images/ui/pokemon_icons_8.png rename to public/images/pokemon_icons_8.png diff --git a/public/images/ui/pokemon_icons_9.json b/public/images/pokemon_icons_9.json similarity index 100% rename from public/images/ui/pokemon_icons_9.json rename to public/images/pokemon_icons_9.json diff --git a/public/images/ui/pokemon_icons_9.png b/public/images/pokemon_icons_9.png similarity index 100% rename from public/images/ui/pokemon_icons_9.png rename to public/images/pokemon_icons_9.png diff --git a/public/images/types_legacy.json b/public/images/types_legacy.json new file mode 100644 index 000000000..d253d54d7 --- /dev/null +++ b/public/images/types_legacy.json @@ -0,0 +1,440 @@ +{ + "textures": [ + { + "image": "types_legacy.png", + "format": "RGBA8888", + "size": { + "w": 32, + "h": 280 + }, + "scale": 1, + "frames": [ + { + "filename": "unknown", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + } + }, + { + "filename": "bug", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 14, + "w": 32, + "h": 14 + } + }, + { + "filename": "dark", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 28, + "w": 32, + "h": 14 + } + }, + { + "filename": "dragon", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 42, + "w": 32, + "h": 14 + } + }, + { + "filename": "electric", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 56, + "w": 32, + "h": 14 + } + }, + { + "filename": "fairy", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 70, + "w": 32, + "h": 14 + } + }, + { + "filename": "fighting", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 84, + "w": 32, + "h": 14 + } + }, + { + "filename": "fire", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 98, + "w": 32, + "h": 14 + } + }, + { + "filename": "flying", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 112, + "w": 32, + "h": 14 + } + }, + { + "filename": "ghost", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 126, + "w": 32, + "h": 14 + } + }, + { + "filename": "grass", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 140, + "w": 32, + "h": 14 + } + }, + { + "filename": "ground", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 154, + "w": 32, + "h": 14 + } + }, + { + "filename": "ice", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 168, + "w": 32, + "h": 14 + } + }, + { + "filename": "normal", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 182, + "w": 32, + "h": 14 + } + }, + { + "filename": "poison", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 196, + "w": 32, + "h": 14 + } + }, + { + "filename": "psychic", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 210, + "w": 32, + "h": 14 + } + }, + { + "filename": "rock", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 224, + "w": 32, + "h": 14 + } + }, + { + "filename": "steel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 238, + "w": 32, + "h": 14 + } + }, + { + "filename": "water", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 252, + "w": 32, + "h": 14 + } + }, + { + "filename": "stellar", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 14 + }, + "frame": { + "x": 0, + "y": 266, + "w": 32, + "h": 14 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f14cf47d9a8f1d40c8e03aa6ba00fff3:6fc4227b57a95d429a1faad4280f7ec8:5961efbfbf4c56b8745347e7a663a32f$" + } +} diff --git a/public/images/types_legacy.png b/public/images/types_legacy.png new file mode 100644 index 000000000..619a370a7 Binary files /dev/null and b/public/images/types_legacy.png differ diff --git a/public/images/ui/ability_bar.png b/public/images/ui/ability_bar.png deleted file mode 100644 index 428aa3676..000000000 Binary files a/public/images/ui/ability_bar.png and /dev/null differ diff --git a/public/images/ui/ability_bar_left.png b/public/images/ui/ability_bar_left.png new file mode 100644 index 000000000..54abe4c5a Binary files /dev/null and b/public/images/ui/ability_bar_left.png differ diff --git a/public/images/ui/ability_bar_right.png b/public/images/ui/ability_bar_right.png new file mode 100644 index 000000000..282025bfc Binary files /dev/null and b/public/images/ui/ability_bar_right.png differ diff --git a/public/images/ui/achv_bar.png b/public/images/ui/achv_bar.png index 442b43343..c2ab2c5c6 100644 Binary files a/public/images/ui/achv_bar.png and b/public/images/ui/achv_bar.png differ diff --git a/public/images/ui/achv_bar_2.png b/public/images/ui/achv_bar_2.png index 23ffca0a7..8505760d6 100644 Binary files a/public/images/ui/achv_bar_2.png and b/public/images/ui/achv_bar_2.png differ diff --git a/public/images/ui/achv_bar_3.png b/public/images/ui/achv_bar_3.png index e2697234e..723e533f7 100644 Binary files a/public/images/ui/achv_bar_3.png and b/public/images/ui/achv_bar_3.png differ diff --git a/public/images/ui/achv_bar_4.png b/public/images/ui/achv_bar_4.png index dae7a30de..cc06af916 100644 Binary files a/public/images/ui/achv_bar_4.png and b/public/images/ui/achv_bar_4.png differ diff --git a/public/images/ui/bg.json b/public/images/ui/bg.json new file mode 100644 index 000000000..ffa89b381 --- /dev/null +++ b/public/images/ui/bg.json @@ -0,0 +1,125 @@ +{ + "textures": [ + { + "image": "bg.png", + "format": "RGBA8888", + "size": { + "w": 320, + "h": 240 + }, + "scale": 1, + "frames": [ + { + "filename": "1", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 320, + "h": 48 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 320, + "h": 48 + }, + "frame": { + "x": 0, + "y": 0, + "w": 320, + "h": 48 + } + }, + { + "filename": "2", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 320, + "h": 48 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 320, + "h": 48 + }, + "frame": { + "x": 0, + "y": 48, + "w": 320, + "h": 48 + } + }, + { + "filename": "3", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 320, + "h": 48 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 320, + "h": 48 + }, + "frame": { + "x": 0, + "y": 96, + "w": 320, + "h": 48 + } + }, + { + "filename": "4", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 320, + "h": 48 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 320, + "h": 48 + }, + "frame": { + "x": 0, + "y": 144, + "w": 320, + "h": 48 + } + }, + { + "filename": "5", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 320, + "h": 48 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 320, + "h": 48 + }, + "frame": { + "x": 0, + "y": 192, + "w": 320, + "h": 48 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:d2add287358903001b2aa53dab03c115:f0147ec9c813fcda621300fd9c4b7178:fda475f1469833f402cd7f3119be2bc2$" + } +} diff --git a/public/images/ui/bg.png b/public/images/ui/bg.png index a02aa8dc6..9d39d701f 100644 Binary files a/public/images/ui/bg.png and b/public/images/ui/bg.png differ diff --git a/public/images/ui/bmenu_sel.png b/public/images/ui/bmenu_sel.png index fe54fa918..c2e28ba20 100644 Binary files a/public/images/ui/bmenu_sel.png and b/public/images/ui/bmenu_sel.png differ diff --git a/public/images/ui/boolean_sel.png b/public/images/ui/boolean_sel.png index bd832fa12..d5b212a30 100644 Binary files a/public/images/ui/boolean_sel.png and b/public/images/ui/boolean_sel.png differ diff --git a/public/images/ui/command_fight_labels.png b/public/images/ui/command_fight_labels.png index 257d0e5d9..c9d6d60c4 100644 Binary files a/public/images/ui/command_fight_labels.png and b/public/images/ui/command_fight_labels.png differ diff --git a/public/images/ui/cursor.png b/public/images/ui/cursor.png index 39d7b7977..68283fcc2 100644 Binary files a/public/images/ui/cursor.png and b/public/images/ui/cursor.png differ diff --git a/public/images/ui/cursor_reverse.png b/public/images/ui/cursor_reverse.png index 57fb29774..40c867e62 100644 Binary files a/public/images/ui/cursor_reverse.png and b/public/images/ui/cursor_reverse.png differ diff --git a/public/images/ui/egg_list_bg.png b/public/images/ui/egg_list_bg.png index 5600a3e6a..4ec094418 100644 Binary files a/public/images/ui/egg_list_bg.png and b/public/images/ui/egg_list_bg.png differ diff --git a/public/images/ui/icon_owned.png b/public/images/ui/icon_owned.png index 21e03afec..37e2dfd08 100644 Binary files a/public/images/ui/icon_owned.png and b/public/images/ui/icon_owned.png differ diff --git a/public/images/ui/legacy/ability_bar_left.png b/public/images/ui/legacy/ability_bar_left.png new file mode 100644 index 000000000..7491a9ca5 Binary files /dev/null and b/public/images/ui/legacy/ability_bar_left.png differ diff --git a/public/images/ui/legacy/ability_bar_right.png b/public/images/ui/legacy/ability_bar_right.png new file mode 100644 index 000000000..3dcb845b3 Binary files /dev/null and b/public/images/ui/legacy/ability_bar_right.png differ diff --git a/public/images/ui/legacy/achv_bar.png b/public/images/ui/legacy/achv_bar.png new file mode 100644 index 000000000..442b43343 Binary files /dev/null and b/public/images/ui/legacy/achv_bar.png differ diff --git a/public/images/ui/legacy/achv_bar_2.png b/public/images/ui/legacy/achv_bar_2.png new file mode 100644 index 000000000..23ffca0a7 Binary files /dev/null and b/public/images/ui/legacy/achv_bar_2.png differ diff --git a/public/images/ui/legacy/achv_bar_3.png b/public/images/ui/legacy/achv_bar_3.png new file mode 100644 index 000000000..e2697234e Binary files /dev/null and b/public/images/ui/legacy/achv_bar_3.png differ diff --git a/public/images/ui/legacy/achv_bar_4.png b/public/images/ui/legacy/achv_bar_4.png new file mode 100644 index 000000000..dae7a30de Binary files /dev/null and b/public/images/ui/legacy/achv_bar_4.png differ diff --git a/public/images/ui/legacy/bg.png b/public/images/ui/legacy/bg.png new file mode 100644 index 000000000..a02aa8dc6 Binary files /dev/null and b/public/images/ui/legacy/bg.png differ diff --git a/public/images/ui/legacy/bmenu_sel.png b/public/images/ui/legacy/bmenu_sel.png new file mode 100644 index 000000000..fe54fa918 Binary files /dev/null and b/public/images/ui/legacy/bmenu_sel.png differ diff --git a/public/images/ui/legacy/boolean_sel.png b/public/images/ui/legacy/boolean_sel.png new file mode 100644 index 000000000..bd832fa12 Binary files /dev/null and b/public/images/ui/legacy/boolean_sel.png differ diff --git a/public/images/ui/legacy/command_fight_labels.png b/public/images/ui/legacy/command_fight_labels.png new file mode 100644 index 000000000..257d0e5d9 Binary files /dev/null and b/public/images/ui/legacy/command_fight_labels.png differ diff --git a/public/images/ui/legacy/cursor.png b/public/images/ui/legacy/cursor.png new file mode 100644 index 000000000..39d7b7977 Binary files /dev/null and b/public/images/ui/legacy/cursor.png differ diff --git a/public/images/ui/legacy/cursor_reverse.png b/public/images/ui/legacy/cursor_reverse.png new file mode 100644 index 000000000..57fb29774 Binary files /dev/null and b/public/images/ui/legacy/cursor_reverse.png differ diff --git a/public/images/ui/legacy/egg_list_bg.png b/public/images/ui/legacy/egg_list_bg.png new file mode 100644 index 000000000..932d01d33 Binary files /dev/null and b/public/images/ui/legacy/egg_list_bg.png differ diff --git a/public/images/ui/legacy/icon_owned.png b/public/images/ui/legacy/icon_owned.png new file mode 100644 index 000000000..21e03afec Binary files /dev/null and b/public/images/ui/legacy/icon_owned.png differ diff --git a/public/images/ui/legacy/icon_spliced.png b/public/images/ui/legacy/icon_spliced.png new file mode 100644 index 000000000..1db0d1136 Binary files /dev/null and b/public/images/ui/legacy/icon_spliced.png differ diff --git a/public/images/ui/legacy/icon_tera.png b/public/images/ui/legacy/icon_tera.png new file mode 100644 index 000000000..d178ca8fc Binary files /dev/null and b/public/images/ui/legacy/icon_tera.png differ diff --git a/public/images/ui/legacy/mmenu_sel.png b/public/images/ui/legacy/mmenu_sel.png new file mode 100644 index 000000000..26952f7ec Binary files /dev/null and b/public/images/ui/legacy/mmenu_sel.png differ diff --git a/public/images/ui/legacy/namebox.png b/public/images/ui/legacy/namebox.png new file mode 100644 index 000000000..ed43bc4aa Binary files /dev/null and b/public/images/ui/legacy/namebox.png differ diff --git a/public/images/ui/legacy/numbers.json b/public/images/ui/legacy/numbers.json new file mode 100644 index 000000000..33a3e60f6 --- /dev/null +++ b/public/images/ui/legacy/numbers.json @@ -0,0 +1,251 @@ +{ + "textures": [ + { + "image": "numbers.png", + "format": "RGBA8888", + "size": { + "w": 88, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "0", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "1", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 8, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "2", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 16, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "3", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 24, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "4", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 32, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "5", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 40, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "6", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 48, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "7", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 56, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "8", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 64, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "9", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 72, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "/", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 80, + "y": 0, + "w": 8, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:3ed4555c7a85f0413e7039bcf9d9e18f:d744841445f249d21eff1bc3a2b50d78:1070938cc284949ced1e46ffd0a9abd0$" + } +} diff --git a/public/images/ui/legacy/numbers.png b/public/images/ui/legacy/numbers.png new file mode 100644 index 000000000..ba48453fa Binary files /dev/null and b/public/images/ui/legacy/numbers.png differ diff --git a/public/images/ui/legacy/numbers_alt.png b/public/images/ui/legacy/numbers_alt.png new file mode 100644 index 000000000..1512ef435 Binary files /dev/null and b/public/images/ui/legacy/numbers_alt.png differ diff --git a/public/images/ui/legacy/numbers_red.json b/public/images/ui/legacy/numbers_red.json new file mode 100644 index 000000000..5248ac89d --- /dev/null +++ b/public/images/ui/legacy/numbers_red.json @@ -0,0 +1,251 @@ +{ + "textures": [ + { + "image": "numbers_red.png", + "format": "RGBA8888", + "size": { + "w": 88, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "0", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "1", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 8, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "2", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 16, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "3", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 24, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "4", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 32, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "5", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 40, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "6", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 48, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "7", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 56, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "8", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 64, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "9", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 72, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "/", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 8, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 80, + "y": 0, + "w": 8, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:3ed4555c7a85f0413e7039bcf9d9e18f:d744841445f249d21eff1bc3a2b50d78:1070938cc284949ced1e46ffd0a9abd0$" + } +} diff --git a/public/images/ui/legacy/numbers_red.png b/public/images/ui/legacy/numbers_red.png new file mode 100644 index 000000000..acafb20c9 Binary files /dev/null and b/public/images/ui/legacy/numbers_red.png differ diff --git a/public/images/ui/legacy/numbers_red_alt.png b/public/images/ui/legacy/numbers_red_alt.png new file mode 100644 index 000000000..90b6f1092 Binary files /dev/null and b/public/images/ui/legacy/numbers_red_alt.png differ diff --git a/public/images/ui/legacy/overlay_exp.png b/public/images/ui/legacy/overlay_exp.png new file mode 100644 index 000000000..51166cd9e Binary files /dev/null and b/public/images/ui/legacy/overlay_exp.png differ diff --git a/public/images/ui/legacy/overlay_hp.json b/public/images/ui/legacy/overlay_hp.json new file mode 100644 index 000000000..4e3a69431 --- /dev/null +++ b/public/images/ui/legacy/overlay_hp.json @@ -0,0 +1,83 @@ +{ + "textures": [ + { + "image": "overlay_hp.png", + "format": "RGBA8888", + "size": { + "w": 48, + "h": 6 + }, + "scale": 1, + "frames": [ + { + "filename": "high", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 48, + "h": 2 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 48, + "h": 2 + }, + "frame": { + "x": 0, + "y": 0, + "w": 48, + "h": 2 + } + }, + { + "filename": "medium", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 48, + "h": 2 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 48, + "h": 2 + }, + "frame": { + "x": 0, + "y": 2, + "w": 48, + "h": 2 + } + }, + { + "filename": "low", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 48, + "h": 2 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 48, + "h": 2 + }, + "frame": { + "x": 0, + "y": 4, + "w": 48, + "h": 2 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:38e540ccb5c63da1ebec1acbf71f691e:0086e8a13120324b29c37336ee1e53d1:9863437373166ab9545f5c99d88f5cd6$" + } +} diff --git a/public/images/ui/legacy/overlay_hp.png b/public/images/ui/legacy/overlay_hp.png new file mode 100644 index 000000000..9855c6106 Binary files /dev/null and b/public/images/ui/legacy/overlay_hp.png differ diff --git a/public/images/ui/legacy/overlay_hp_boss.json b/public/images/ui/legacy/overlay_hp_boss.json new file mode 100644 index 000000000..06313756e --- /dev/null +++ b/public/images/ui/legacy/overlay_hp_boss.json @@ -0,0 +1,83 @@ +{ + "textures": [ + { + "image": "overlay_hp_boss.png", + "format": "RGBA8888", + "size": { + "w": 96, + "h": 12 + }, + "scale": 1, + "frames": [ + { + "filename": "high", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 86, + "h": 4 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 86, + "h": 4 + }, + "frame": { + "x": 0, + "y": 0, + "w": 86, + "h": 4 + } + }, + { + "filename": "medium", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 86, + "h": 4 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 98, + "h": 4 + }, + "frame": { + "x": 0, + "y": 4, + "w": 86, + "h": 4 + } + }, + { + "filename": "low", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 86, + "h": 4 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 86, + "h": 4 + }, + "frame": { + "x": 0, + "y": 8, + "w": 86, + "h": 4 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:0ab3d30defc8fe4d0802d006063b09c5:9cc1fb380aa2908ff6c9e92f310fde62:e6c4614fcfcf040f918551c90d4448f7$" + } +} diff --git a/public/images/ui/legacy/overlay_hp_boss.png b/public/images/ui/legacy/overlay_hp_boss.png new file mode 100644 index 000000000..d7dc3b74e Binary files /dev/null and b/public/images/ui/legacy/overlay_hp_boss.png differ diff --git a/public/images/ui/legacy/overlay_lv.png b/public/images/ui/legacy/overlay_lv.png new file mode 100644 index 000000000..d79614f41 Binary files /dev/null and b/public/images/ui/legacy/overlay_lv.png differ diff --git a/public/images/ui/legacy/overlay_lv_alt.png b/public/images/ui/legacy/overlay_lv_alt.png new file mode 100644 index 000000000..75b90a2ee Binary files /dev/null and b/public/images/ui/legacy/overlay_lv_alt.png differ diff --git a/public/images/ui/legacy/overlay_message.png b/public/images/ui/legacy/overlay_message.png new file mode 100644 index 000000000..9e58d86fc Binary files /dev/null and b/public/images/ui/legacy/overlay_message.png differ diff --git a/public/images/ui/legacy/party_bg.png b/public/images/ui/legacy/party_bg.png new file mode 100644 index 000000000..323de1856 Binary files /dev/null and b/public/images/ui/legacy/party_bg.png differ diff --git a/public/images/ui/legacy/party_bg_double.png b/public/images/ui/legacy/party_bg_double.png new file mode 100644 index 000000000..89beff1ed Binary files /dev/null and b/public/images/ui/legacy/party_bg_double.png differ diff --git a/public/images/ui/legacy/party_cancel.json b/public/images/ui/legacy/party_cancel.json new file mode 100644 index 000000000..c0fa3bc28 --- /dev/null +++ b/public/images/ui/legacy/party_cancel.json @@ -0,0 +1,62 @@ +{ + "textures": [ + { + "image": "party_cancel.png", + "format": "RGBA8888", + "size": { + "w": 52, + "h": 32 + }, + "scale": 1, + "frames": [ + { + "filename": "party_cancel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 52, + "h": 16 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 52, + "h": 16 + }, + "frame": { + "x": 0, + "y": 0, + "w": 52, + "h": 16 + } + }, + { + "filename": "party_cancel_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 52, + "h": 16 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 52, + "h": 16 + }, + "frame": { + "x": 0, + "y": 16, + "w": 52, + "h": 16 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:90d007d5b18ff4693e19427683160d05:05f58f289d3501584131227313418600:829bbc2aca10a215777ee107bbadd91f$" + } +} diff --git a/public/images/ui/legacy/party_cancel.png b/public/images/ui/legacy/party_cancel.png new file mode 100644 index 000000000..4219c8d33 Binary files /dev/null and b/public/images/ui/legacy/party_cancel.png differ diff --git a/public/images/ui/legacy/party_exp_bar.png b/public/images/ui/legacy/party_exp_bar.png new file mode 100644 index 000000000..0a514b433 Binary files /dev/null and b/public/images/ui/legacy/party_exp_bar.png differ diff --git a/public/images/ui/legacy/party_pb.json b/public/images/ui/legacy/party_pb.json new file mode 100644 index 000000000..f7fa66da6 --- /dev/null +++ b/public/images/ui/legacy/party_pb.json @@ -0,0 +1,62 @@ +{ + "textures": [ + { + "image": "party_pb.png", + "format": "RGBA8888", + "size": { + "w": 20, + "h": 46 + }, + "scale": 1, + "frames": [ + { + "filename": "party_pb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 20, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 20, + "h": 22 + }, + "frame": { + "x": 0, + "y": 24, + "w": 20, + "h": 22 + } + }, + { + "filename": "party_pb_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 20, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 20, + "h": 24 + }, + "frame": { + "x": 0, + "y": 0, + "w": 20, + "h": 24 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:13f7a00fc4a7a4cc80f3bb82316282f4:922760ce93e3ee2e335fda565facb79d:0a5761cf37c97cf64558a62d03bdb2ee$" + } +} diff --git a/public/images/ui/legacy/party_pb.png b/public/images/ui/legacy/party_pb.png new file mode 100644 index 000000000..a1e5f7a9b Binary files /dev/null and b/public/images/ui/legacy/party_pb.png differ diff --git a/public/images/ui/legacy/party_slot.json b/public/images/ui/legacy/party_slot.json new file mode 100644 index 000000000..945c5417b --- /dev/null +++ b/public/images/ui/legacy/party_slot.json @@ -0,0 +1,146 @@ +{ + "textures": [ + { + "image": "party_slot.png", + "format": "RGBA8888", + "size": { + "w": 175, + "h": 144 + }, + "scale": 1, + "frames": [ + { + "filename": "party_slot", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 175, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 175, + "h": 24 + }, + "frame": { + "x": 0, + "y": 0, + "w": 175, + "h": 24 + } + }, + { + "filename": "party_slot_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 175, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 175, + "h": 24 + }, + "frame": { + "x": 0, + "y": 24, + "w": 175, + "h": 24 + } + }, + { + "filename": "party_slot_fnt", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 175, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 175, + "h": 24 + }, + "frame": { + "x": 0, + "y": 48, + "w": 175, + "h": 24 + } + }, + { + "filename": "party_slot_fnt_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 175, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 175, + "h": 24 + }, + "frame": { + "x": 0, + "y": 72, + "w": 175, + "h": 24 + } + }, + { + "filename": "party_slot_swap", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 175, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 175, + "h": 24 + }, + "frame": { + "x": 0, + "y": 96, + "w": 175, + "h": 24 + } + }, + { + "filename": "party_slot_swap_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 175, + "h": 24 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 175, + "h": 24 + }, + "frame": { + "x": 0, + "y": 120, + "w": 175, + "h": 24 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:6b23605c0cb21d089e57415879563480:28fac7aadded5eab7cc934bd10910fbf:cca75f59f4a503072d7a2eb166e3fd7f$" + } +} diff --git a/public/images/ui/legacy/party_slot.png b/public/images/ui/legacy/party_slot.png new file mode 100644 index 000000000..c7a2eb5c0 Binary files /dev/null and b/public/images/ui/legacy/party_slot.png differ diff --git a/public/images/ui/legacy/party_slot_hp_bar.png b/public/images/ui/legacy/party_slot_hp_bar.png new file mode 100644 index 000000000..13ac7436c Binary files /dev/null and b/public/images/ui/legacy/party_slot_hp_bar.png differ diff --git a/public/images/ui/legacy/party_slot_hp_overlay.json b/public/images/ui/legacy/party_slot_hp_overlay.json new file mode 100644 index 000000000..962a10875 --- /dev/null +++ b/public/images/ui/legacy/party_slot_hp_overlay.json @@ -0,0 +1,83 @@ +{ + "textures": [ + { + "image": "party_slot_hp_overlay.png", + "format": "RGBA8888", + "size": { + "w": 80, + "h": 9 + }, + "scale": 1, + "frames": [ + { + "filename": "high", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 80, + "h": 3 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 80, + "h": 3 + }, + "frame": { + "x": 0, + "y": 0, + "w": 80, + "h": 3 + } + }, + { + "filename": "medium", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 80, + "h": 3 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 80, + "h": 3 + }, + "frame": { + "x": 0, + "y": 3, + "w": 80, + "h": 3 + } + }, + { + "filename": "low", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 80, + "h": 3 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 80, + "h": 3 + }, + "frame": { + "x": 0, + "y": 6, + "w": 80, + "h": 3 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:4d49eee01b28038007a76c418b5e9bb4:ed12035f6f008a87da5417ecec87a8f7:78b3a2fb9c1745e0d121b78bd5e0ea6a$" + } +} diff --git a/public/images/ui/legacy/party_slot_hp_overlay.png b/public/images/ui/legacy/party_slot_hp_overlay.png new file mode 100644 index 000000000..360a3cd17 Binary files /dev/null and b/public/images/ui/legacy/party_slot_hp_overlay.png differ diff --git a/public/images/ui/legacy/party_slot_main.json b/public/images/ui/legacy/party_slot_main.json new file mode 100644 index 000000000..fd1adfb68 --- /dev/null +++ b/public/images/ui/legacy/party_slot_main.json @@ -0,0 +1,146 @@ +{ + "textures": [ + { + "image": "party_slot_main.png", + "format": "RGBA8888", + "size": { + "w": 110, + "h": 294 + }, + "scale": 1, + "frames": [ + { + "filename": "party_slot_main", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 110, + "h": 49 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 110, + "h": 49 + }, + "frame": { + "x": 0, + "y": 0, + "w": 110, + "h": 49 + } + }, + { + "filename": "party_slot_main_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 110, + "h": 49 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 110, + "h": 49 + }, + "frame": { + "x": 0, + "y": 49, + "w": 110, + "h": 49 + } + }, + { + "filename": "party_slot_main_fnt", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 110, + "h": 49 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 110, + "h": 49 + }, + "frame": { + "x": 0, + "y": 98, + "w": 110, + "h": 49 + } + }, + { + "filename": "party_slot_main_fnt_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 110, + "h": 49 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 110, + "h": 49 + }, + "frame": { + "x": 0, + "y": 147, + "w": 110, + "h": 49 + } + }, + { + "filename": "party_slot_main_swap", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 110, + "h": 49 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 110, + "h": 49 + }, + "frame": { + "x": 0, + "y": 196, + "w": 110, + "h": 49 + } + }, + { + "filename": "party_slot_main_swap_sel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 110, + "h": 49 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 110, + "h": 49 + }, + "frame": { + "x": 0, + "y": 245, + "w": 110, + "h": 49 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:29685f2f538901cf5bf7f0ed2ea867c3:a080ea6c8cccd1e03244214053e79796:565f7afc5ca419b6ba8dbce51ea30818$" + } +} diff --git a/public/images/ui/legacy/party_slot_main.png b/public/images/ui/legacy/party_slot_main.png new file mode 100644 index 000000000..06eb9b03a Binary files /dev/null and b/public/images/ui/legacy/party_slot_main.png differ diff --git a/public/images/ui/legacy/party_slot_overlay_hp.png b/public/images/ui/legacy/party_slot_overlay_hp.png new file mode 100644 index 000000000..8c15c63f3 Binary files /dev/null and b/public/images/ui/legacy/party_slot_overlay_hp.png differ diff --git a/public/images/ui/legacy/party_slot_overlay_lv.png b/public/images/ui/legacy/party_slot_overlay_lv.png new file mode 100644 index 000000000..57d901a7d Binary files /dev/null and b/public/images/ui/legacy/party_slot_overlay_lv.png differ diff --git a/public/images/ui/legacy/party_slot_overlay_lv_alt.png b/public/images/ui/legacy/party_slot_overlay_lv_alt.png new file mode 100644 index 000000000..a52b9c2fa Binary files /dev/null and b/public/images/ui/legacy/party_slot_overlay_lv_alt.png differ diff --git a/public/images/ui/legacy/pb_tray_ball.json b/public/images/ui/legacy/pb_tray_ball.json new file mode 100644 index 000000000..0fee95aef --- /dev/null +++ b/public/images/ui/legacy/pb_tray_ball.json @@ -0,0 +1,104 @@ +{ + "textures": [ + { + "image": "pb_tray_ball.png", + "format": "RGBA8888", + "size": { + "w": 28, + "h": 7 + }, + "scale": 1, + "frames": [ + { + "filename": "ball", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 7, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 7, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 7, + "h": 7 + } + }, + { + "filename": "empty", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 7, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 7, + "h": 7 + }, + "frame": { + "x": 7, + "y": 0, + "w": 7, + "h": 7 + } + }, + { + "filename": "faint", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 7, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 7, + "h": 7 + }, + "frame": { + "x": 14, + "y": 0, + "w": 7, + "h": 7 + } + }, + { + "filename": "status", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 7, + "h": 7 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 7, + "h": 7 + }, + "frame": { + "x": 21, + "y": 0, + "w": 7, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f7a37dfea18d90e97d6fe0b1f2e1f69c:6823410fc296184fa84e87f6ca79158a:097b8eb81a77f8ed73a75d6d94f48dac$" + } +} diff --git a/public/images/ui/legacy/pb_tray_ball.png b/public/images/ui/legacy/pb_tray_ball.png new file mode 100644 index 000000000..112184f85 Binary files /dev/null and b/public/images/ui/legacy/pb_tray_ball.png differ diff --git a/public/images/ui/legacy/pb_tray_overlay_enemy.png b/public/images/ui/legacy/pb_tray_overlay_enemy.png new file mode 100644 index 000000000..c557ac736 Binary files /dev/null and b/public/images/ui/legacy/pb_tray_overlay_enemy.png differ diff --git a/public/images/ui/legacy/pb_tray_overlay_player.png b/public/images/ui/legacy/pb_tray_overlay_player.png new file mode 100644 index 000000000..4a065de5d Binary files /dev/null and b/public/images/ui/legacy/pb_tray_overlay_player.png differ diff --git a/public/images/ui/legacy/pbinfo_enemy_boss.png b/public/images/ui/legacy/pbinfo_enemy_boss.png new file mode 100644 index 000000000..cffefd323 Binary files /dev/null and b/public/images/ui/legacy/pbinfo_enemy_boss.png differ diff --git a/public/images/ui/legacy/pbinfo_enemy_mini.png b/public/images/ui/legacy/pbinfo_enemy_mini.png new file mode 100644 index 000000000..908ea1060 Binary files /dev/null and b/public/images/ui/legacy/pbinfo_enemy_mini.png differ diff --git a/public/images/ui/legacy/pbinfo_player.png b/public/images/ui/legacy/pbinfo_player.png new file mode 100644 index 000000000..825a9eafe Binary files /dev/null and b/public/images/ui/legacy/pbinfo_player.png differ diff --git a/public/images/ui/legacy/pbinfo_player_mini.png b/public/images/ui/legacy/pbinfo_player_mini.png new file mode 100644 index 000000000..1ccaf4efd Binary files /dev/null and b/public/images/ui/legacy/pbinfo_player_mini.png differ diff --git a/public/images/ui/legacy/prompt.json b/public/images/ui/legacy/prompt.json new file mode 100644 index 000000000..753dc8277 --- /dev/null +++ b/public/images/ui/legacy/prompt.json @@ -0,0 +1,104 @@ +{ + "textures": [ + { + "image": "prompt.png", + "format": "RGBA8888", + "size": { + "w": 7, + "h": 25 + }, + "scale": 1, + "frames": [ + { + "filename": "1", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 7, + "h": 9 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 7, + "h": 8 + }, + "frame": { + "x": 0, + "y": 9, + "w": 7, + "h": 8 + } + }, + { + "filename": "2", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 7, + "h": 9 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 7, + "h": 9 + }, + "frame": { + "x": 0, + "y": 0, + "w": 7, + "h": 9 + } + }, + { + "filename": "3", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 7, + "h": 9 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 7, + "h": 8 + }, + "frame": { + "x": 0, + "y": 17, + "w": 7, + "h": 8 + } + }, + { + "filename": "4", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 7, + "h": 9 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 7, + "h": 9 + }, + "frame": { + "x": 0, + "y": 0, + "w": 7, + "h": 9 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:5bcc63184b61d0dc629911d570bd41df:218cc0a560337ff14e1a820297e99878:2fb4d6746b04cafb843a7980571a009f$" + } +} diff --git a/public/images/ui/legacy/prompt.png b/public/images/ui/legacy/prompt.png new file mode 100644 index 000000000..ee74128ce Binary files /dev/null and b/public/images/ui/legacy/prompt.png differ diff --git a/public/images/ui/legacy/select_cursor.png b/public/images/ui/legacy/select_cursor.png new file mode 100644 index 000000000..f55e33fdb Binary files /dev/null and b/public/images/ui/legacy/select_cursor.png differ diff --git a/public/images/ui/legacy/select_cursor_highlight.png b/public/images/ui/legacy/select_cursor_highlight.png new file mode 100644 index 000000000..6819454bf Binary files /dev/null and b/public/images/ui/legacy/select_cursor_highlight.png differ diff --git a/public/images/ui/legacy/select_cursor_highlight_thick.png b/public/images/ui/legacy/select_cursor_highlight_thick.png new file mode 100644 index 000000000..d9a153286 Binary files /dev/null and b/public/images/ui/legacy/select_cursor_highlight_thick.png differ diff --git a/public/images/ui/legacy/select_cursor_pokerus.png b/public/images/ui/legacy/select_cursor_pokerus.png new file mode 100644 index 000000000..123b0a0f1 Binary files /dev/null and b/public/images/ui/legacy/select_cursor_pokerus.png differ diff --git a/public/images/ui/legacy/select_gen_cursor.png b/public/images/ui/legacy/select_gen_cursor.png new file mode 100644 index 000000000..e602d1531 Binary files /dev/null and b/public/images/ui/legacy/select_gen_cursor.png differ diff --git a/public/images/ui/legacy/select_gen_cursor_highlight.png b/public/images/ui/legacy/select_gen_cursor_highlight.png new file mode 100644 index 000000000..ce2f2265f Binary files /dev/null and b/public/images/ui/legacy/select_gen_cursor_highlight.png differ diff --git a/public/images/ui/legacy/shiny.png b/public/images/ui/legacy/shiny.png new file mode 100644 index 000000000..04dad2a27 Binary files /dev/null and b/public/images/ui/legacy/shiny.png differ diff --git a/public/images/ui/legacy/starter_select_bg.png b/public/images/ui/legacy/starter_select_bg.png new file mode 100644 index 000000000..a94e470df Binary files /dev/null and b/public/images/ui/legacy/starter_select_bg.png differ diff --git a/public/images/ui/legacy/summary_bg.png b/public/images/ui/legacy/summary_bg.png new file mode 100644 index 000000000..e4da2dd5d Binary files /dev/null and b/public/images/ui/legacy/summary_bg.png differ diff --git a/public/images/ui/legacy/summary_moves.png b/public/images/ui/legacy/summary_moves.png new file mode 100644 index 000000000..54ddf0fb2 Binary files /dev/null and b/public/images/ui/legacy/summary_moves.png differ diff --git a/public/images/ui/legacy/summary_moves_cursor.json b/public/images/ui/legacy/summary_moves_cursor.json new file mode 100644 index 000000000..0a313153c --- /dev/null +++ b/public/images/ui/legacy/summary_moves_cursor.json @@ -0,0 +1,62 @@ +{ + "textures": [ + { + "image": "summary_moves_cursor.png", + "format": "RGBA8888", + "size": { + "w": 208, + "h": 32 + }, + "scale": 1, + "frames": [ + { + "filename": "highlight", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 208, + "h": 16 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 208, + "h": 16 + }, + "frame": { + "x": 0, + "y": 0, + "w": 208, + "h": 16 + } + }, + { + "filename": "select", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 208, + "h": 16 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 208, + "h": 16 + }, + "frame": { + "x": 0, + "y": 16, + "w": 208, + "h": 16 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:d89e84be7d49aa7957445f38e744aabe:651a727fe05cc993624865e5b14fb859:3f559bc98797893ed427d02379120df2$" + } +} diff --git a/public/images/ui/legacy/summary_moves_cursor.png b/public/images/ui/legacy/summary_moves_cursor.png new file mode 100644 index 000000000..6b8314b66 Binary files /dev/null and b/public/images/ui/legacy/summary_moves_cursor.png differ diff --git a/public/images/ui/legacy/summary_moves_effect.png b/public/images/ui/legacy/summary_moves_effect.png new file mode 100644 index 000000000..ed422d1b4 Binary files /dev/null and b/public/images/ui/legacy/summary_moves_effect.png differ diff --git a/public/images/ui/legacy/summary_moves_overlay_pp.png b/public/images/ui/legacy/summary_moves_overlay_pp.png new file mode 100644 index 000000000..a42c86f28 Binary files /dev/null and b/public/images/ui/legacy/summary_moves_overlay_pp.png differ diff --git a/public/images/ui/legacy/summary_moves_overlay_row.png b/public/images/ui/legacy/summary_moves_overlay_row.png new file mode 100644 index 000000000..5b3e3d3e9 Binary files /dev/null and b/public/images/ui/legacy/summary_moves_overlay_row.png differ diff --git a/public/images/ui/legacy/summary_overlay_shiny.png b/public/images/ui/legacy/summary_overlay_shiny.png new file mode 100644 index 000000000..e4ab82073 Binary files /dev/null and b/public/images/ui/legacy/summary_overlay_shiny.png differ diff --git a/public/images/ui/legacy/summary_profile.png b/public/images/ui/legacy/summary_profile.png new file mode 100644 index 000000000..25fc3ca70 Binary files /dev/null and b/public/images/ui/legacy/summary_profile.png differ diff --git a/public/images/ui/legacy/summary_stats.png b/public/images/ui/legacy/summary_stats.png new file mode 100644 index 000000000..e744f84be Binary files /dev/null and b/public/images/ui/legacy/summary_stats.png differ diff --git a/public/images/ui/legacy/summary_stats_overlay_exp.png b/public/images/ui/legacy/summary_stats_overlay_exp.png new file mode 100644 index 000000000..dedc228f8 Binary files /dev/null and b/public/images/ui/legacy/summary_stats_overlay_exp.png differ diff --git a/public/images/ui/legacy/summary_status.png b/public/images/ui/legacy/summary_status.png new file mode 100644 index 000000000..4a5b27e9e Binary files /dev/null and b/public/images/ui/legacy/summary_status.png differ diff --git a/public/images/ui/legacy/summary_tabs_1.png b/public/images/ui/legacy/summary_tabs_1.png new file mode 100644 index 000000000..ff38096fc Binary files /dev/null and b/public/images/ui/legacy/summary_tabs_1.png differ diff --git a/public/images/ui/legacy/summary_tabs_2.png b/public/images/ui/legacy/summary_tabs_2.png new file mode 100644 index 000000000..f147d1b83 Binary files /dev/null and b/public/images/ui/legacy/summary_tabs_2.png differ diff --git a/public/images/ui/legacy/summary_tabs_3.png b/public/images/ui/legacy/summary_tabs_3.png new file mode 100644 index 000000000..cf8829886 Binary files /dev/null and b/public/images/ui/legacy/summary_tabs_3.png differ diff --git a/public/images/ui/legacy/type_bgs.json b/public/images/ui/legacy/type_bgs.json new file mode 100644 index 000000000..6b98a733d --- /dev/null +++ b/public/images/ui/legacy/type_bgs.json @@ -0,0 +1,419 @@ +{ + "textures": [ + { + "image": "type_bgs.png", + "format": "RGBA8888", + "size": { + "w": 14, + "h": 266 + }, + "scale": 1, + "frames": [ + { + "filename": "unknown", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + } + }, + { + "filename": "bug", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 14, + "w": 14, + "h": 14 + } + }, + { + "filename": "dark", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 28, + "w": 14, + "h": 14 + } + }, + { + "filename": "dragon", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 42, + "w": 14, + "h": 14 + } + }, + { + "filename": "electric", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 56, + "w": 14, + "h": 14 + } + }, + { + "filename": "fairy", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 70, + "w": 14, + "h": 14 + } + }, + { + "filename": "fighting", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 84, + "w": 14, + "h": 14 + } + }, + { + "filename": "fire", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 98, + "w": 14, + "h": 14 + } + }, + { + "filename": "flying", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 112, + "w": 14, + "h": 14 + } + }, + { + "filename": "ghost", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 126, + "w": 14, + "h": 14 + } + }, + { + "filename": "grass", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 140, + "w": 14, + "h": 14 + } + }, + { + "filename": "ground", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 154, + "w": 14, + "h": 14 + } + }, + { + "filename": "ice", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 168, + "w": 14, + "h": 14 + } + }, + { + "filename": "normal", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 182, + "w": 14, + "h": 14 + } + }, + { + "filename": "poison", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 196, + "w": 14, + "h": 14 + } + }, + { + "filename": "psychic", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 210, + "w": 14, + "h": 14 + } + }, + { + "filename": "rock", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 224, + "w": 14, + "h": 14 + } + }, + { + "filename": "steel", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 238, + "w": 14, + "h": 14 + } + }, + { + "filename": "water", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 14, + "h": 14 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 14, + "h": 14 + }, + "frame": { + "x": 0, + "y": 252, + "w": 14, + "h": 14 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f14cf47d9a8f1d40c8e03aa6ba00fff3:6fc4227b57a95d429a1faad4280f7ec8:5961efbfbf4c56b8745347e7a663a14f$" + } +} diff --git a/public/images/ui/legacy/type_bgs.png b/public/images/ui/legacy/type_bgs.png new file mode 100644 index 000000000..6e682d9c3 Binary files /dev/null and b/public/images/ui/legacy/type_bgs.png differ diff --git a/public/images/ui/legacy/type_tera.png b/public/images/ui/legacy/type_tera.png new file mode 100644 index 000000000..5c35966a6 Binary files /dev/null and b/public/images/ui/legacy/type_tera.png differ diff --git a/public/images/ui/legacy/windows/window_1.png b/public/images/ui/legacy/windows/window_1.png new file mode 100644 index 000000000..edfef03f9 Binary files /dev/null and b/public/images/ui/legacy/windows/window_1.png differ diff --git a/public/images/ui/legacy/windows/window_1_thin.png b/public/images/ui/legacy/windows/window_1_thin.png new file mode 100644 index 000000000..4648d812f Binary files /dev/null and b/public/images/ui/legacy/windows/window_1_thin.png differ diff --git a/public/images/ui/legacy/windows/window_1_xthin.png b/public/images/ui/legacy/windows/window_1_xthin.png new file mode 100644 index 000000000..0ee6ffd00 Binary files /dev/null and b/public/images/ui/legacy/windows/window_1_xthin.png differ diff --git a/public/images/ui/legacy/windows/window_2.png b/public/images/ui/legacy/windows/window_2.png new file mode 100644 index 000000000..7da47310d Binary files /dev/null and b/public/images/ui/legacy/windows/window_2.png differ diff --git a/public/images/ui/legacy/windows/window_2_thin.png b/public/images/ui/legacy/windows/window_2_thin.png new file mode 100644 index 000000000..281d538b9 Binary files /dev/null and b/public/images/ui/legacy/windows/window_2_thin.png differ diff --git a/public/images/ui/legacy/windows/window_2_xthin.png b/public/images/ui/legacy/windows/window_2_xthin.png new file mode 100644 index 000000000..01e951133 Binary files /dev/null and b/public/images/ui/legacy/windows/window_2_xthin.png differ diff --git a/public/images/ui/legacy/windows/window_3.png b/public/images/ui/legacy/windows/window_3.png new file mode 100644 index 000000000..0764ea2d6 Binary files /dev/null and b/public/images/ui/legacy/windows/window_3.png differ diff --git a/public/images/ui/legacy/windows/window_3_thin.png b/public/images/ui/legacy/windows/window_3_thin.png new file mode 100644 index 000000000..12cc6d607 Binary files /dev/null and b/public/images/ui/legacy/windows/window_3_thin.png differ diff --git a/public/images/ui/legacy/windows/window_3_xthin.png b/public/images/ui/legacy/windows/window_3_xthin.png new file mode 100644 index 000000000..57ac6427b Binary files /dev/null and b/public/images/ui/legacy/windows/window_3_xthin.png differ diff --git a/public/images/ui/legacy/windows/window_4.png b/public/images/ui/legacy/windows/window_4.png new file mode 100644 index 000000000..69c5bce9d Binary files /dev/null and b/public/images/ui/legacy/windows/window_4.png differ diff --git a/public/images/ui/legacy/windows/window_4_thin.png b/public/images/ui/legacy/windows/window_4_thin.png new file mode 100644 index 000000000..b61e7d7b2 Binary files /dev/null and b/public/images/ui/legacy/windows/window_4_thin.png differ diff --git a/public/images/ui/legacy/windows/window_4_xthin.png b/public/images/ui/legacy/windows/window_4_xthin.png new file mode 100644 index 000000000..45fec09ad Binary files /dev/null and b/public/images/ui/legacy/windows/window_4_xthin.png differ diff --git a/public/images/ui/legacy/windows/window_5.png b/public/images/ui/legacy/windows/window_5.png new file mode 100644 index 000000000..edfef03f9 Binary files /dev/null and b/public/images/ui/legacy/windows/window_5.png differ diff --git a/public/images/ui/legacy/windows/window_5_thin.png b/public/images/ui/legacy/windows/window_5_thin.png new file mode 100644 index 000000000..4648d812f Binary files /dev/null and b/public/images/ui/legacy/windows/window_5_thin.png differ diff --git a/public/images/ui/legacy/windows/window_5_xthin.png b/public/images/ui/legacy/windows/window_5_xthin.png new file mode 100644 index 000000000..0ee6ffd00 Binary files /dev/null and b/public/images/ui/legacy/windows/window_5_xthin.png differ diff --git a/public/images/ui/mmenu_sel.png b/public/images/ui/mmenu_sel.png index 26952f7ec..584403e5d 100644 Binary files a/public/images/ui/mmenu_sel.png and b/public/images/ui/mmenu_sel.png differ diff --git a/public/images/ui/namebox.png b/public/images/ui/namebox.png index ed43bc4aa..034adbcc9 100644 Binary files a/public/images/ui/namebox.png and b/public/images/ui/namebox.png differ diff --git a/public/images/ui/numbers.json b/public/images/ui/numbers.json index 33a3e60f6..af9c36a8e 100644 --- a/public/images/ui/numbers.json +++ b/public/images/ui/numbers.json @@ -5,7 +5,7 @@ "format": "RGBA8888", "size": { "w": 88, - "h": 7 + "h": 8 }, "scale": 1, "frames": [ @@ -15,19 +15,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -36,19 +36,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 8, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -57,19 +57,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 16, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -78,19 +78,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 24, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -99,19 +99,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 32, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -120,19 +120,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 40, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -141,19 +141,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 48, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -162,19 +162,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 56, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -183,19 +183,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 64, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -204,19 +204,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 72, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -225,19 +225,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 80, "y": 0, "w": 8, - "h": 7 + "h": 8 } } ] diff --git a/public/images/ui/numbers.png b/public/images/ui/numbers.png index ba48453fa..bde4fe282 100644 Binary files a/public/images/ui/numbers.png and b/public/images/ui/numbers.png differ diff --git a/public/images/ui/numbers_red.json b/public/images/ui/numbers_red.json index 5248ac89d..39fe9c617 100644 --- a/public/images/ui/numbers_red.json +++ b/public/images/ui/numbers_red.json @@ -5,7 +5,7 @@ "format": "RGBA8888", "size": { "w": 88, - "h": 7 + "h": 8 }, "scale": 1, "frames": [ @@ -15,19 +15,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -36,19 +36,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 8, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -57,19 +57,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 16, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -78,19 +78,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 24, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -99,19 +99,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 32, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -120,19 +120,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 40, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -141,19 +141,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 48, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -162,19 +162,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 56, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -183,19 +183,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 64, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -204,19 +204,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 72, "y": 0, "w": 8, - "h": 7 + "h": 8 } }, { @@ -225,19 +225,19 @@ "trimmed": false, "sourceSize": { "w": 8, - "h": 7 + "h": 8 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 8, - "h": 7 + "h": 8 }, "frame": { "x": 80, "y": 0, "w": 8, - "h": 7 + "h": 8 } } ] diff --git a/public/images/ui/numbers_red.png b/public/images/ui/numbers_red.png index acafb20c9..37cae6b4d 100644 Binary files a/public/images/ui/numbers_red.png and b/public/images/ui/numbers_red.png differ diff --git a/public/images/ui/overlay_exp.png b/public/images/ui/overlay_exp.png index 51166cd9e..6b745bedc 100644 Binary files a/public/images/ui/overlay_exp.png and b/public/images/ui/overlay_exp.png differ diff --git a/public/images/ui/overlay_hp.png b/public/images/ui/overlay_hp.png index 9855c6106..08674fdcd 100644 Binary files a/public/images/ui/overlay_hp.png and b/public/images/ui/overlay_hp.png differ diff --git a/public/images/ui/overlay_hp_boss.png b/public/images/ui/overlay_hp_boss.png index d7dc3b74e..5f7a02a48 100644 Binary files a/public/images/ui/overlay_hp_boss.png and b/public/images/ui/overlay_hp_boss.png differ diff --git a/public/images/ui/overlay_lv.png b/public/images/ui/overlay_lv.png index d79614f41..bbd406d95 100644 Binary files a/public/images/ui/overlay_lv.png and b/public/images/ui/overlay_lv.png differ diff --git a/public/images/ui/overlay_message.png b/public/images/ui/overlay_message.png index 9e58d86fc..37eb57740 100644 Binary files a/public/images/ui/overlay_message.png and b/public/images/ui/overlay_message.png differ diff --git a/public/images/ui/party_bg.png b/public/images/ui/party_bg.png index 323de1856..378b1302c 100644 Binary files a/public/images/ui/party_bg.png and b/public/images/ui/party_bg.png differ diff --git a/public/images/ui/party_bg_double.png b/public/images/ui/party_bg_double.png index 89beff1ed..e0411c119 100644 Binary files a/public/images/ui/party_bg_double.png and b/public/images/ui/party_bg_double.png differ diff --git a/public/images/ui/party_cancel.png b/public/images/ui/party_cancel.png index 4219c8d33..4ea4bc6d6 100644 Binary files a/public/images/ui/party_cancel.png and b/public/images/ui/party_cancel.png differ diff --git a/public/images/ui/party_exp_bar.png b/public/images/ui/party_exp_bar.png index 0a514b433..7815c684b 100644 Binary files a/public/images/ui/party_exp_bar.png and b/public/images/ui/party_exp_bar.png differ diff --git a/public/images/ui/party_pb.png b/public/images/ui/party_pb.png index a1e5f7a9b..4169e9c70 100644 Binary files a/public/images/ui/party_pb.png and b/public/images/ui/party_pb.png differ diff --git a/public/images/ui/party_slot.png b/public/images/ui/party_slot.png index c7a2eb5c0..ad137cead 100644 Binary files a/public/images/ui/party_slot.png and b/public/images/ui/party_slot.png differ diff --git a/public/images/ui/party_slot_hp_bar.png b/public/images/ui/party_slot_hp_bar.png index 13ac7436c..1771123c1 100644 Binary files a/public/images/ui/party_slot_hp_bar.png and b/public/images/ui/party_slot_hp_bar.png differ diff --git a/public/images/ui/party_slot_hp_overlay.png b/public/images/ui/party_slot_hp_overlay.png index 360a3cd17..09e8c974c 100644 Binary files a/public/images/ui/party_slot_hp_overlay.png and b/public/images/ui/party_slot_hp_overlay.png differ diff --git a/public/images/ui/party_slot_main.png b/public/images/ui/party_slot_main.png index 06eb9b03a..ab1f70d80 100644 Binary files a/public/images/ui/party_slot_main.png and b/public/images/ui/party_slot_main.png differ diff --git a/public/images/ui/party_slot_overlay_hp.png b/public/images/ui/party_slot_overlay_hp.png index 8c15c63f3..09e8c974c 100644 Binary files a/public/images/ui/party_slot_overlay_hp.png and b/public/images/ui/party_slot_overlay_hp.png differ diff --git a/public/images/ui/party_slot_overlay_lv.png b/public/images/ui/party_slot_overlay_lv.png index 57d901a7d..7051b1d84 100644 Binary files a/public/images/ui/party_slot_overlay_lv.png and b/public/images/ui/party_slot_overlay_lv.png differ diff --git a/public/images/ui/pb_tray_ball.png b/public/images/ui/pb_tray_ball.png index 112184f85..554f90790 100644 Binary files a/public/images/ui/pb_tray_ball.png and b/public/images/ui/pb_tray_ball.png differ diff --git a/public/images/ui/pb_tray_overlay_enemy.png b/public/images/ui/pb_tray_overlay_enemy.png index c557ac736..b6fdbcd17 100644 Binary files a/public/images/ui/pb_tray_overlay_enemy.png and b/public/images/ui/pb_tray_overlay_enemy.png differ diff --git a/public/images/ui/pb_tray_overlay_player.png b/public/images/ui/pb_tray_overlay_player.png index 4a065de5d..ddbacced3 100644 Binary files a/public/images/ui/pb_tray_overlay_player.png and b/public/images/ui/pb_tray_overlay_player.png differ diff --git a/public/images/ui/pbinfo_enemy_boss.png b/public/images/ui/pbinfo_enemy_boss.png index cffefd323..58edefa16 100644 Binary files a/public/images/ui/pbinfo_enemy_boss.png and b/public/images/ui/pbinfo_enemy_boss.png differ diff --git a/public/images/ui/pbinfo_enemy_mini.png b/public/images/ui/pbinfo_enemy_mini.png index 908ea1060..5250cb6f0 100644 Binary files a/public/images/ui/pbinfo_enemy_mini.png and b/public/images/ui/pbinfo_enemy_mini.png differ diff --git a/public/images/ui/pbinfo_player.png b/public/images/ui/pbinfo_player.png index 825a9eafe..9d3e03bd6 100644 Binary files a/public/images/ui/pbinfo_player.png and b/public/images/ui/pbinfo_player.png differ diff --git a/public/images/ui/pbinfo_player_mini.png b/public/images/ui/pbinfo_player_mini.png index 1ccaf4efd..db2762272 100644 Binary files a/public/images/ui/pbinfo_player_mini.png and b/public/images/ui/pbinfo_player_mini.png differ diff --git a/public/images/ui/select_cursor.png b/public/images/ui/select_cursor.png index f55e33fdb..41e52ac0d 100644 Binary files a/public/images/ui/select_cursor.png and b/public/images/ui/select_cursor.png differ diff --git a/public/images/ui/select_cursor_highlight.png b/public/images/ui/select_cursor_highlight.png index 6819454bf..a02637405 100644 Binary files a/public/images/ui/select_cursor_highlight.png and b/public/images/ui/select_cursor_highlight.png differ diff --git a/public/images/ui/select_cursor_highlight_thick.png b/public/images/ui/select_cursor_highlight_thick.png index d9a153286..4081361b2 100644 Binary files a/public/images/ui/select_cursor_highlight_thick.png and b/public/images/ui/select_cursor_highlight_thick.png differ diff --git a/public/images/ui/select_cursor_pokerus.png b/public/images/ui/select_cursor_pokerus.png index 123b0a0f1..cccc4ada7 100644 Binary files a/public/images/ui/select_cursor_pokerus.png and b/public/images/ui/select_cursor_pokerus.png differ diff --git a/public/images/ui/select_gen_cursor.png b/public/images/ui/select_gen_cursor.png index e602d1531..e4ed90ecc 100644 Binary files a/public/images/ui/select_gen_cursor.png and b/public/images/ui/select_gen_cursor.png differ diff --git a/public/images/ui/select_gen_cursor_highlight.png b/public/images/ui/select_gen_cursor_highlight.png index ce2f2265f..8019de6f3 100644 Binary files a/public/images/ui/select_gen_cursor_highlight.png and b/public/images/ui/select_gen_cursor_highlight.png differ diff --git a/public/images/ui/starter_select_bg.png b/public/images/ui/starter_select_bg.png index 04a85b59d..f02182fe1 100644 Binary files a/public/images/ui/starter_select_bg.png and b/public/images/ui/starter_select_bg.png differ diff --git a/public/images/ui/summary_bg.png b/public/images/ui/summary_bg.png index e4da2dd5d..1fa1d95fc 100644 Binary files a/public/images/ui/summary_bg.png and b/public/images/ui/summary_bg.png differ diff --git a/public/images/ui/summary_moves.png b/public/images/ui/summary_moves.png index 54ddf0fb2..8f6b01137 100644 Binary files a/public/images/ui/summary_moves.png and b/public/images/ui/summary_moves.png differ diff --git a/public/images/ui/summary_moves_cursor.png b/public/images/ui/summary_moves_cursor.png index 6b8314b66..93ce1fc0d 100644 Binary files a/public/images/ui/summary_moves_cursor.png and b/public/images/ui/summary_moves_cursor.png differ diff --git a/public/images/ui/summary_moves_effect.png b/public/images/ui/summary_moves_effect.png index ed422d1b4..e1b0e0667 100644 Binary files a/public/images/ui/summary_moves_effect.png and b/public/images/ui/summary_moves_effect.png differ diff --git a/public/images/ui/summary_moves_overlay_pp.png b/public/images/ui/summary_moves_overlay_pp.png index a42c86f28..9dd0a080e 100644 Binary files a/public/images/ui/summary_moves_overlay_pp.png and b/public/images/ui/summary_moves_overlay_pp.png differ diff --git a/public/images/ui/summary_moves_overlay_row.png b/public/images/ui/summary_moves_overlay_row.png index 5b3e3d3e9..5c975b174 100644 Binary files a/public/images/ui/summary_moves_overlay_row.png and b/public/images/ui/summary_moves_overlay_row.png differ diff --git a/public/images/ui/summary_overlay_shiny.png b/public/images/ui/summary_overlay_shiny.png index e4ab82073..472728cc3 100644 Binary files a/public/images/ui/summary_overlay_shiny.png and b/public/images/ui/summary_overlay_shiny.png differ diff --git a/public/images/ui/summary_profile.png b/public/images/ui/summary_profile.png index 25fc3ca70..5fff26d5a 100644 Binary files a/public/images/ui/summary_profile.png and b/public/images/ui/summary_profile.png differ diff --git a/public/images/ui/summary_stats.png b/public/images/ui/summary_stats.png index e744f84be..b87d67b86 100644 Binary files a/public/images/ui/summary_stats.png and b/public/images/ui/summary_stats.png differ diff --git a/public/images/ui/summary_stats_overlay_exp.png b/public/images/ui/summary_stats_overlay_exp.png index dedc228f8..a5ef5093c 100644 Binary files a/public/images/ui/summary_stats_overlay_exp.png and b/public/images/ui/summary_stats_overlay_exp.png differ diff --git a/public/images/ui/summary_status.png b/public/images/ui/summary_status.png index 4a5b27e9e..981e4dafe 100644 Binary files a/public/images/ui/summary_status.png and b/public/images/ui/summary_status.png differ diff --git a/public/images/ui/summary_tabs_1.png b/public/images/ui/summary_tabs_1.png index ff38096fc..c4989a865 100644 Binary files a/public/images/ui/summary_tabs_1.png and b/public/images/ui/summary_tabs_1.png differ diff --git a/public/images/ui/summary_tabs_2.png b/public/images/ui/summary_tabs_2.png index f147d1b83..16f7c35b2 100644 Binary files a/public/images/ui/summary_tabs_2.png and b/public/images/ui/summary_tabs_2.png differ diff --git a/public/images/ui/summary_tabs_3.png b/public/images/ui/summary_tabs_3.png index cf8829886..b766307aa 100644 Binary files a/public/images/ui/summary_tabs_3.png and b/public/images/ui/summary_tabs_3.png differ diff --git a/public/images/ui/windows/window_1.png b/public/images/ui/windows/window_1.png index edfef03f9..16a088108 100644 Binary files a/public/images/ui/windows/window_1.png and b/public/images/ui/windows/window_1.png differ diff --git a/public/images/ui/windows/window_1_thin.png b/public/images/ui/windows/window_1_thin.png index 4648d812f..96750d47c 100644 Binary files a/public/images/ui/windows/window_1_thin.png and b/public/images/ui/windows/window_1_thin.png differ diff --git a/public/images/ui/windows/window_1_xthin.png b/public/images/ui/windows/window_1_xthin.png index 0ee6ffd00..0c11a595c 100644 Binary files a/public/images/ui/windows/window_1_xthin.png and b/public/images/ui/windows/window_1_xthin.png differ diff --git a/public/images/ui/windows/window_2.png b/public/images/ui/windows/window_2.png index 7da47310d..98a6de122 100644 Binary files a/public/images/ui/windows/window_2.png and b/public/images/ui/windows/window_2.png differ diff --git a/public/images/ui/windows/window_2_thin.png b/public/images/ui/windows/window_2_thin.png index 281d538b9..d3940f62f 100644 Binary files a/public/images/ui/windows/window_2_thin.png and b/public/images/ui/windows/window_2_thin.png differ diff --git a/public/images/ui/windows/window_2_xthin.png b/public/images/ui/windows/window_2_xthin.png index 01e951133..bbb682167 100644 Binary files a/public/images/ui/windows/window_2_xthin.png and b/public/images/ui/windows/window_2_xthin.png differ diff --git a/public/images/ui/windows/window_3.png b/public/images/ui/windows/window_3.png index 0764ea2d6..d3810b06e 100644 Binary files a/public/images/ui/windows/window_3.png and b/public/images/ui/windows/window_3.png differ diff --git a/public/images/ui/windows/window_3_thin.png b/public/images/ui/windows/window_3_thin.png index 12cc6d607..db5e0a912 100644 Binary files a/public/images/ui/windows/window_3_thin.png and b/public/images/ui/windows/window_3_thin.png differ diff --git a/public/images/ui/windows/window_3_xthin.png b/public/images/ui/windows/window_3_xthin.png index 57ac6427b..bbf7f904a 100644 Binary files a/public/images/ui/windows/window_3_xthin.png and b/public/images/ui/windows/window_3_xthin.png differ diff --git a/public/images/ui/windows/window_4.png b/public/images/ui/windows/window_4.png index 69c5bce9d..5be8161ca 100644 Binary files a/public/images/ui/windows/window_4.png and b/public/images/ui/windows/window_4.png differ diff --git a/public/images/ui/windows/window_4_thin.png b/public/images/ui/windows/window_4_thin.png index b61e7d7b2..fb8c00492 100644 Binary files a/public/images/ui/windows/window_4_thin.png and b/public/images/ui/windows/window_4_thin.png differ diff --git a/public/images/ui/windows/window_4_xthin.png b/public/images/ui/windows/window_4_xthin.png index 45fec09ad..15bf0f8c6 100644 Binary files a/public/images/ui/windows/window_4_xthin.png and b/public/images/ui/windows/window_4_xthin.png differ diff --git a/public/images/ui/windows/window_5.png b/public/images/ui/windows/window_5.png new file mode 100644 index 000000000..35ad9c4f2 Binary files /dev/null and b/public/images/ui/windows/window_5.png differ diff --git a/public/images/ui/windows/window_5_thin.png b/public/images/ui/windows/window_5_thin.png new file mode 100644 index 000000000..35ad9c4f2 Binary files /dev/null and b/public/images/ui/windows/window_5_thin.png differ diff --git a/public/images/ui/windows/window_5_xthin.png b/public/images/ui/windows/window_5_xthin.png new file mode 100644 index 000000000..8c3a4e12e Binary files /dev/null and b/public/images/ui/windows/window_5_xthin.png differ diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 03a557721..70837a24f 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -42,7 +42,7 @@ import { GachaType } from './data/egg'; import { Voucher, vouchers } from './system/voucher'; import { Gender } from './data/gender'; import UIPlugin from 'phaser3-rex-plugins/templates/ui/ui-plugin'; -import { WindowVariant, getWindowVariantSuffix } from './ui/window'; +import { WindowVariant, addUiThemeOverrides, getWindowVariantSuffix } from './ui/ui-theme'; import PokemonData from './system/pokemon-data'; import { Nature } from './data/nature'; import { SpeciesFormChangeTimeOfDayTrigger, SpeciesFormChangeTrigger, pokemonFormChanges } from './data/pokemon-forms'; @@ -55,6 +55,7 @@ import DamageNumberHandler from './field/damage-number-handler'; import PokemonInfoContainer from './ui/pokemon-info-container'; import { biomeDepths } from './data/biomes'; import { initTouchControls } from './touch-controls'; +import { UiTheme } from './enums/ui-theme'; export const bypassLogin = false; @@ -68,6 +69,7 @@ export const STARTING_MONEY_OVERRIDE = 0; export const startingWave = STARTING_WAVE_OVERRIDE || 1; +export const legacyCompatibleImages: string[] = []; const expSpriteKeys: string[] = []; export enum Button { @@ -105,7 +107,8 @@ export default class BattleScene extends Phaser.Scene { public damageNumbersMode: integer = 0; public showLevelUpStats: boolean = true; public enableTutorials: boolean = true; - public windowType: integer = 1; + public uiTheme: UiTheme = UiTheme.DEFAULT; + public windowType: integer = 0; public experimentalSprites: boolean = false; public fusionPaletteSwaps: boolean = true; public enableTouchControls: boolean = false; @@ -191,6 +194,11 @@ export default class BattleScene extends Phaser.Scene { if (!filename) filename = `${key}.png`; this.load.image(key, `images/${folder}/${filename}`); + if (folder.startsWith('ui')) { + legacyCompatibleImages.push(key); + folder = folder.replace('ui', 'ui/legacy'); + this.load.image(`${key}_legacy`, `images/${folder}/${filename}`); + } } loadAtlas(key: string, folder: string, filenameRoot?: string) { @@ -199,6 +207,11 @@ export default class BattleScene extends Phaser.Scene { if (folder) folder += '/'; this.load.atlas(key, `images/${folder}${filenameRoot}.png`, `images/${folder}/${filenameRoot}.json`); + if (folder.startsWith('ui')) { + legacyCompatibleImages.push(key); + folder = folder.replace('ui', 'ui/legacy'); + this.load.atlas(`${key}_legacy`, `images/${folder}${filenameRoot}.png`, `images/${folder}/${filenameRoot}.json`); + } } loadPokemonAtlas(key: string, atlasPath: string, experimental?: boolean) { @@ -215,7 +228,7 @@ export default class BattleScene extends Phaser.Scene { k += 'f'; if (keyMatch[5]) k += keyMatch[5]; - if (expSpriteKeys.indexOf(k) === -1) + if (!expSpriteKeys.includes(k)) experimental = false; } this.load.atlas(key, `images/pokemon/${experimental ? 'exp/' : ''}${atlasPath}.png`, `images/pokemon/${experimental ? 'exp/' : ''}${atlasPath}.json`); @@ -225,6 +238,11 @@ export default class BattleScene extends Phaser.Scene { if (!filename) filename = `${key}.png`; this.load.spritesheet(key, `images/${folder}/${filename}`, { frameWidth: size, frameHeight: size }); + if (folder.startsWith('ui')) { + legacyCompatibleImages.push(key); + folder = folder.replace('ui', 'ui/legacy'); + this.load.spritesheet(`${key}_legacy`, `images/${folder}/${filename}`, { frameWidth: size, frameHeight: size }); + } } loadSe(key: string, folder?: string, filenames?: string | string[]) { @@ -249,13 +267,13 @@ export default class BattleScene extends Phaser.Scene { preload() { // Load menu images - this.loadImage('bg', 'ui'); + this.loadAtlas('bg', 'ui'); this.loadImage('command_fight_labels', 'ui'); this.loadAtlas('prompt', 'ui'); this.loadImage('cursor', 'ui'); this.loadImage('cursor_reverse', 'ui'); for (let wv of Utils.getEnumValues(WindowVariant)) { - for (let w = 1; w <= 4; w++) + for (let w = 1; w <= 5; w++) this.loadImage(`window_${w}${getWindowVariantSuffix(wv)}`, 'ui/windows'); } this.loadImage('namebox', 'ui'); @@ -270,7 +288,7 @@ export default class BattleScene extends Phaser.Scene { this.loadAtlas('overlay_hp_boss', 'ui'); this.loadImage('overlay_exp', 'ui'); this.loadImage('icon_owned', 'ui'); - this.loadImage('ability_bar', 'ui'); + this.loadImage('ability_bar_left', 'ui'); this.loadImage('party_exp_bar', 'ui'); this.loadImage('achv_bar', 'ui'); this.loadImage('achv_bar_2', 'ui'); @@ -401,7 +419,7 @@ export default class BattleScene extends Phaser.Scene { this.loadImage('egg_list_bg', 'ui'); for (let i = 0; i < 10; i++) - this.loadAtlas(`pokemon_icons_${i}`, 'ui'); + this.loadAtlas(`pokemon_icons_${i}`, ''); this.loadSe('select'); this.loadSe('menu_open'); @@ -467,6 +485,8 @@ export default class BattleScene extends Phaser.Scene { this.gameData = new GameData(this); + addUiThemeOverrides(this); + this.setupControls(); this.load.setBaseURL(); diff --git a/src/data/nature.ts b/src/data/nature.ts index 1e4df6623..55c55f23d 100644 --- a/src/data/nature.ts +++ b/src/data/nature.ts @@ -43,7 +43,7 @@ export function getNatureName(nature: Nature, includeStatEffects: boolean = fals else if (multiplier < 1) decreasedStat = stat; } - const textStyle = forStarterSelect ? TextStyle.SUMMARY : TextStyle.WINDOW; + const textStyle = forStarterSelect ? TextStyle.SUMMARY_ALT : TextStyle.WINDOW; if (increasedStat && decreasedStat) ret = `${getBBCodeFrag(`${ret}${!forStarterSelect ? '\n' : ' '}(`, textStyle)}${getBBCodeFrag(`+${getStatName(increasedStat, true)}`, TextStyle.SUMMARY_PINK)}${getBBCodeFrag('/', textStyle)}${getBBCodeFrag(`-${getStatName(decreasedStat, true)}`, TextStyle.SUMMARY_BLUE)}${getBBCodeFrag(')', textStyle)}`; else diff --git a/src/enums/battle-spec.ts b/src/enums/battle-spec.ts index 391451072..00bc7f92f 100644 --- a/src/enums/battle-spec.ts +++ b/src/enums/battle-spec.ts @@ -1,4 +1,3 @@ - export enum BattleSpec { DEFAULT, FINAL_BOSS diff --git a/src/enums/ui-theme.ts b/src/enums/ui-theme.ts new file mode 100644 index 000000000..e0fd92a20 --- /dev/null +++ b/src/enums/ui-theme.ts @@ -0,0 +1,4 @@ +export enum UiTheme { + DEFAULT, + LEGACY +} \ No newline at end of file diff --git a/src/system/settings.ts b/src/system/settings.ts index df5f84f5e..3da3c46a5 100644 --- a/src/system/settings.ts +++ b/src/system/settings.ts @@ -1,6 +1,6 @@ import BattleScene from "../battle-scene"; import { hasTouchscreen } from "../touch-controls"; -import { updateWindowType } from "../ui/window"; +import { updateWindowType } from "../ui/ui-theme"; import { PlayerGender } from "./game-data"; export enum Setting { @@ -10,6 +10,7 @@ export enum Setting { SE_Volume = "SE_VOLUME", Damage_Numbers = "DAMAGE_NUMBERS", Show_Stats_on_Level_Up = "SHOW_LEVEL_UP_STATS", + UI_Theme = "UI_THEME", Window_Type = "WINDOW_TYPE", Tutorials = "TUTORIALS", Sprite_Set = "SPRITE_SET", @@ -34,7 +35,8 @@ export const settingOptions: SettingOptions = { [Setting.SE_Volume]: new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : 'Mute'), [Setting.Damage_Numbers]: [ 'Off', 'Simple', 'Fancy' ], [Setting.Show_Stats_on_Level_Up]: [ 'Off', 'On' ], - [Setting.Window_Type]: new Array(4).fill(null).map((_, i) => (i + 1).toString()), + [Setting.UI_Theme]: [ 'Default', 'Legacy' ], + [Setting.Window_Type]: new Array(5).fill(null).map((_, i) => (i + 1).toString()), [Setting.Tutorials]: [ 'Off', 'On' ], [Setting.Sprite_Set]: [ 'Consistent', 'Prioritize Animation' ], [Setting.Fusion_Palette_Swaps]: [ 'Off', 'On' ], @@ -50,6 +52,7 @@ export const settingDefaults: SettingDefaults = { [Setting.SE_Volume]: 10, [Setting.Damage_Numbers]: 0, [Setting.Show_Stats_on_Level_Up]: 1, + [Setting.UI_Theme]: 0, [Setting.Window_Type]: 0, [Setting.Tutorials]: 1, [Setting.Sprite_Set]: 0, @@ -59,6 +62,8 @@ export const settingDefaults: SettingDefaults = { [Setting.Vibration]: 0 }; +export const reloadSettings: Setting[] = [ Setting.UI_Theme ]; + export function setSetting(scene: BattleScene, setting: Setting, value: integer): boolean { switch (setting) { case Setting.Game_Speed: @@ -82,6 +87,9 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer) case Setting.Show_Stats_on_Level_Up: scene.showLevelUpStats = settingOptions[setting][value] === 'On'; break; + case Setting.UI_Theme: + scene.uiTheme = value; + break; case Setting.Window_Type: updateWindowType(scene, parseInt(settingOptions[setting][value])); break; diff --git a/src/ui/ability-bar.ts b/src/ui/ability-bar.ts index c7e771af9..ce0cdd7c9 100644 --- a/src/ui/ability-bar.ts +++ b/src/ui/ability-bar.ts @@ -2,8 +2,8 @@ import BattleScene from "../battle-scene"; import Pokemon from "../field/pokemon"; import { TextStyle, addTextObject } from "./text"; -const hiddenX = -91; -const shownX = 10; +const hiddenX = -118; +const shownX = 0; const baseY = -116; export default class AbilityBar extends Phaser.GameObjects.Container { @@ -20,7 +20,7 @@ export default class AbilityBar extends Phaser.GameObjects.Container { } setup(): void { - this.bg = this.scene.add.image(0, 0, 'ability_bar'); + this.bg = this.scene.add.image(0, 0, 'ability_bar_left'); this.bg.setOrigin(0, 0); this.add(this.bg); diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index b9186ee13..910f490a9 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -2,7 +2,7 @@ import BattleScene, { Button } from "../battle-scene"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; export interface OptionSelectConfig { xOffset?: number; diff --git a/src/ui/achv-bar.ts b/src/ui/achv-bar.ts index bd04d0465..475982117 100644 --- a/src/ui/achv-bar.ts +++ b/src/ui/achv-bar.ts @@ -36,7 +36,7 @@ export default class AchvBar extends Phaser.GameObjects.Container { this.scoreText.setOrigin(1, 0); this.add(this.scoreText); - this.descriptionText = addTextObject(this.scene, 43, 16, '', TextStyle.WINDOW, { fontSize: '72px' }); + this.descriptionText = addTextObject(this.scene, 43, 16, '', TextStyle.WINDOW_ALT, { fontSize: '72px' }); this.descriptionText.setOrigin(0, 0); this.add(this.descriptionText); diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index 75ec27e4b..cadda64e0 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -3,7 +3,7 @@ import { Achv, achvs } from "../system/achv"; import MessageUiHandler from "./message-ui-handler"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; export default class AchvsUiHandler extends MessageUiHandler { private achvsContainer: Phaser.GameObjects.Container; diff --git a/src/ui/ball-ui-handler.ts b/src/ui/ball-ui-handler.ts index 8c9a0f8fe..f2ebdc342 100644 --- a/src/ui/ball-ui-handler.ts +++ b/src/ui/ball-ui-handler.ts @@ -5,7 +5,7 @@ import { addTextObject, TextStyle } from "./text"; import { Command } from "./command-ui-handler"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; export default class BallUiHandler extends UiHandler { private pokeballSelectContainer: Phaser.GameObjects.Container; diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 218d5d2ed..e6c2c3b5c 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -38,6 +38,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { private levelNumbersContainer: Phaser.GameObjects.Container; private hpNumbersContainer: Phaser.GameObjects.Container; private expBar: Phaser.GameObjects.Image; + private expMaskRect: Phaser.GameObjects.Graphics; constructor(scene: Phaser.Scene, x: number, y: number, player: boolean) { super(scene, x, y); @@ -119,7 +120,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.hpBarSegmentDividers = []; - this.levelNumbersContainer = this.scene.add.container(9.5, 0); + this.levelNumbersContainer = this.scene.add.container(9.5, (this.scene as BattleScene).uiTheme ? 0 : -0.5); this.levelContainer.add(this.levelNumbersContainer); if (this.player) { @@ -128,10 +129,20 @@ export default class BattleInfo extends Phaser.GameObjects.Container { const expBar = this.scene.add.image(-98, 18, 'overlay_exp'); expBar.setOrigin(0); - expBar.setScale(0, 1); this.add(expBar); + const expMaskRect = this.scene.make.graphics({}); + expMaskRect.setScale(6); + expMaskRect.fillStyle(0xFFFFFF); + expMaskRect.beginPath(); + expMaskRect.fillRect(127, 126, 85, 2); + + const expMask = expMaskRect.createGeometryMask(); + + expBar.setMask(expMask); + this.expBar = expBar; + this.expMaskRect = expMaskRect; } } @@ -185,7 +196,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.shinyIcon.setVisible(pokemon.isShiny()); if (this.player) { - this.expBar.setScale(pokemon.levelExp / getLevelTotalExp(pokemon.level, pokemon.species.growthRate), 1); + this.expMaskRect.x = (pokemon.levelExp / getLevelTotalExp(pokemon.level, pokemon.species.growthRate)) * 510; this.lastExp = pokemon.exp; this.lastLevelExp = pokemon.levelExp; } @@ -237,14 +248,15 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.hpBarSegmentDividers.pop().destroy(); if (this.boss && this.bossSegments > 1) { + const uiTheme = (this.scene as BattleScene).uiTheme; const maxHp = pokemon.getMaxHp(); for (let s = 1; s < this.bossSegments; s++) { const dividerX = (Math.round((maxHp / this.bossSegments) * s) / maxHp) * this.hpBar.width; - const divider = this.scene.add.rectangle(0, 0, 1, this.hpBar.height, pokemon.bossSegmentIndex >= s ? 0xFFFFFF : 0x404040); + const divider = this.scene.add.rectangle(0, 0, 1, this.hpBar.height - (uiTheme ? 0 : 1), pokemon.bossSegmentIndex >= s ? 0xFFFFFF : 0x404040) divider.setOrigin(0.5, 0); this.add(divider); - divider.setPositionRelative(this.hpBar, dividerX, 0); + divider.setPositionRelative(this.hpBar, dividerX, uiTheme ? 0 : 1); this.hpBarSegmentDividers.push(divider); } } @@ -402,9 +414,9 @@ export default class BattleInfo extends Phaser.GameObjects.Container { if (duration) (this.scene as BattleScene).playSound('exp'); this.scene.tweens.add({ - targets: this.expBar, + targets: this.expMaskRect, ease: 'Sine.easeIn', - scaleX: ratio, + x: ratio * 510, duration: duration, onComplete: () => { if (!this.scene) @@ -415,7 +427,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { (this.scene as BattleScene).playSound('level_up'); this.setLevel(this.lastLevel); this.scene.time.delayedCall(500 * levelDurationMultiplier, () => { - this.expBar.setScale(0, 1); + this.expMaskRect.x = 0; this.updateInfo(pokemon, instant).then(() => resolve()); }); return; diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index 6ee111f34..6f33ec7b6 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -4,7 +4,7 @@ import { Mode } from "./ui"; import * as Utils from "../utils"; import MessageUiHandler from "./message-ui-handler"; import { getStatName, Stat } from "../data/pokemon-stat"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; export default class BattleMessageUiHandler extends MessageUiHandler { private levelUpStatsContainer: Phaser.GameObjects.Container; @@ -28,7 +28,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler { this.textTimer = null; this.textCallbackTimer = null; - const bg = this.scene.add.image(0, 0, 'bg'); + const bg = this.scene.add.sprite(0, 0, 'bg', this.scene.windowType + 1); bg.setOrigin(0, 1); ui.add(bg); diff --git a/src/ui/biome-select-ui-handler.ts b/src/ui/biome-select-ui-handler.ts index 9bd32befb..8321488c4 100644 --- a/src/ui/biome-select-ui-handler.ts +++ b/src/ui/biome-select-ui-handler.ts @@ -5,7 +5,7 @@ import { addTextObject, TextStyle } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import * as Utils from "../utils"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; export default class BiomeSelectUiHandler extends UiHandler { private biomeSelectContainer: Phaser.GameObjects.Container; diff --git a/src/ui/daily-run-scoreboard.ts b/src/ui/daily-run-scoreboard.ts index 0a210827a..90fef5ba5 100644 --- a/src/ui/daily-run-scoreboard.ts +++ b/src/ui/daily-run-scoreboard.ts @@ -1,6 +1,6 @@ import BattleScene from "../battle-scene"; import { TextStyle, addTextObject } from "./text"; -import { WindowVariant, addWindow } from "./window"; +import { WindowVariant, addWindow } from "./ui-theme"; import * as Utils from "../utils"; interface RankingEntry { diff --git a/src/ui/egg-gacha-ui-handler.ts b/src/ui/egg-gacha-ui-handler.ts index 7c69c3121..e2ec457a0 100644 --- a/src/ui/egg-gacha-ui-handler.ts +++ b/src/ui/egg-gacha-ui-handler.ts @@ -6,7 +6,7 @@ import * as Utils from "../utils"; import { EGG_SEED, Egg, GachaType, getEggTierDefaultHatchWaves, getEggDescriptor, getLegendaryGachaSpeciesForTimestamp } from "../data/egg"; import { VoucherType, getVoucherTypeIcon } from "../system/voucher"; import { getPokemonSpecies } from "../data/pokemon-species"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; import { Tutorial, handleTutorial } from "../tutorial"; import { EggTier } from "../data/enums/egg-type"; @@ -88,7 +88,7 @@ export default class EggGachaUiHandler extends MessageUiHandler { const gachaInfoContainer = this.scene.add.container(160, 46); - const gachaUpLabel = addTextObject(this.scene, 4, 0, 'UP!', TextStyle.WINDOW); + const gachaUpLabel = addTextObject(this.scene, 4, 0, 'UP!', TextStyle.WINDOW_ALT); gachaUpLabel.setOrigin(0, 0); gachaInfoContainer.add(gachaUpLabel); diff --git a/src/ui/egg-list-ui-handler.ts b/src/ui/egg-list-ui-handler.ts index e81677031..7537b8dee 100644 --- a/src/ui/egg-list-ui-handler.ts +++ b/src/ui/egg-list-ui-handler.ts @@ -5,7 +5,7 @@ import { TextStyle, addTextObject } from "./text"; import MessageUiHandler from "./message-ui-handler"; import { EGG_SEED, Egg, GachaType, getEggGachaTypeDescriptor, getEggHatchWavesMessage, getEggDescriptor } from "../data/egg"; import * as Utils from "../utils"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; export default class EggListUiHandler extends MessageUiHandler { private eggListContainer: Phaser.GameObjects.Container; @@ -36,7 +36,7 @@ export default class EggListUiHandler extends MessageUiHandler { bgColor.setOrigin(0, 0); this.eggListContainer.add(bgColor); - const eggListBg = this.scene.add.image(1, 1, 'egg_list_bg'); + const eggListBg = this.scene.add.image(0, 0, 'egg_list_bg'); eggListBg.setOrigin(0, 0); this.eggListContainer.add(eggListBg); @@ -48,7 +48,7 @@ export default class EggListUiHandler extends MessageUiHandler { this.iconAnimHandler = new PokemonIconAnimHandler(); this.iconAnimHandler.setup(this.scene); - this.eggNameText = addTextObject(this.scene, 6, 66, '', TextStyle.SUMMARY); + this.eggNameText = addTextObject(this.scene, 8, 66, '', TextStyle.SUMMARY); this.eggNameText.setOrigin(0, 0); this.eggListContainer.add(this.eggNameText); diff --git a/src/ui/evolution-scene-handler.ts b/src/ui/evolution-scene-handler.ts index 6aa517770..382cae763 100644 --- a/src/ui/evolution-scene-handler.ts +++ b/src/ui/evolution-scene-handler.ts @@ -23,7 +23,7 @@ export default class EvolutionSceneHandler extends MessageUiHandler { this.evolutionContainer = this.scene.add.container(0, -this.scene.game.canvas.height / 6); ui.add(this.evolutionContainer); - const messageBg = this.scene.add.image(0, 0, 'bg'); + const messageBg = this.scene.add.sprite(0, 0, 'bg', this.scene.windowType + 1); messageBg.setOrigin(0, 1); messageBg.setVisible(false); ui.add(messageBg); diff --git a/src/ui/form-modal-ui-handler.ts b/src/ui/form-modal-ui-handler.ts index b0e9fe92c..d992f0166 100644 --- a/src/ui/form-modal-ui-handler.ts +++ b/src/ui/form-modal-ui-handler.ts @@ -2,7 +2,7 @@ import BattleScene, { Button } from "../battle-scene"; import { ModalConfig, ModalUiHandler } from "./modal-ui-handler"; import { Mode } from "./ui"; import { TextStyle, addTextInputObject, addTextObject, getTextColor } from "./text"; -import { WindowVariant, addWindow } from "./window"; +import { WindowVariant, addWindow } from "./ui-theme"; import InputText from "phaser3-rex-plugins/plugins/inputtext"; export interface FormModalConfig extends ModalConfig { @@ -66,8 +66,8 @@ export abstract class FormModalUiHandler extends ModalUiHandler { }); this.errorMessage = addTextObject(this.scene, 10, (hasTitle ? 31 : 5) + 20 * (fields.length - 1) + 16, '', TextStyle.TOOLTIP_CONTENT); - this.errorMessage.setColor(getTextColor(TextStyle.SUMMARY_PINK)); - this.errorMessage.setShadowColor(getTextColor(TextStyle.SUMMARY_PINK, true)); + this.errorMessage.setColor(this.getTextColor(TextStyle.SUMMARY_PINK)); + this.errorMessage.setShadowColor(this.getTextColor(TextStyle.SUMMARY_PINK, true)); this.errorMessage.setVisible(false); this.modalContainer.add(this.errorMessage); } diff --git a/src/ui/game-stats-ui-handler.ts b/src/ui/game-stats-ui-handler.ts index 52b12a9ad..75ec3552c 100644 --- a/src/ui/game-stats-ui-handler.ts +++ b/src/ui/game-stats-ui-handler.ts @@ -2,7 +2,7 @@ import BattleScene, { Button } from "../battle-scene"; import { TextStyle, addTextObject, getTextColor } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; import * as Utils from "../utils"; import { DexAttr, GameData } from "../system/game-data"; import { speciesStarters } from "../data/pokemon-species"; diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 7850b9f51..98564e753 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -2,7 +2,7 @@ import BattleScene, { Button, bypassLogin } from "../battle-scene"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import * as Utils from "../utils"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; import MessageUiHandler from "./message-ui-handler"; import { GameDataType } from "../system/game-data"; import { OptionSelectConfig } from "./abstact-option-select-ui-handler"; @@ -18,6 +18,7 @@ export enum MenuOptions { EGG_GACHA, MANAGE_DATA, COMMUNITY, + RETURN_TO_TITLE, LOG_OUT } @@ -45,7 +46,7 @@ export default class MenuUiHandler extends MessageUiHandler { this.ignoredMenuOptions = !bypassLogin ? [ ] : [ MenuOptions.LOG_OUT ]; - this.menuOptions = Utils.getEnumKeys(MenuOptions).map(m => parseInt(MenuOptions[m]) as MenuOptions).filter(m => this.ignoredMenuOptions.indexOf(m) === -1); + this.menuOptions = Utils.getEnumKeys(MenuOptions).map(m => parseInt(MenuOptions[m]) as MenuOptions).filter(m => !this.ignoredMenuOptions.includes(m)); } setup() { @@ -254,6 +255,18 @@ export default class MenuUiHandler extends MessageUiHandler { ui.setOverlayMode(Mode.MENU_OPTION_SELECT, this.communityConfig); success = true; break; + case MenuOptions.RETURN_TO_TITLE: + if (this.scene.currentBattle) { + success = true; + ui.showText('You will lose any progress since the beginning of the battle. Proceed?', null, () => { + ui.setOverlayMode(Mode.CONFIRM, () => this.scene.reset(true), () => { + ui.revertMode(); + ui.showText(null, 0); + }, false, -98); + }); + } else + error = true; + break; case MenuOptions.LOG_OUT: success = true; const doLogout = () => { diff --git a/src/ui/modal-ui-handler.ts b/src/ui/modal-ui-handler.ts index 4b4d87f95..2bdc809b3 100644 --- a/src/ui/modal-ui-handler.ts +++ b/src/ui/modal-ui-handler.ts @@ -2,7 +2,7 @@ import BattleScene, { Button } from "../battle-scene"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; -import { WindowVariant, addWindow } from "./window"; +import { WindowVariant, addWindow } from "./ui-theme"; export interface ModalConfig { buttonActions: Function[]; diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index c231ca23f..6c6ce221b 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -316,8 +316,8 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { const canReroll = this.scene.money >= this.rerollCost; this.rerollCostText.setText(`₽${this.rerollCost.toLocaleString('en-US')}`); - this.rerollCostText.setColor(getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED)); - this.rerollCostText.setShadowColor(getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED, true)); + this.rerollCostText.setColor(this.getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED)); + this.rerollCostText.setShadowColor(this.getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED, true)); } clear() { @@ -556,10 +556,11 @@ class ModifierOption extends Phaser.GameObjects.Container { } updateCostText(): void { - const textStyle = this.modifierTypeOption.cost <= (this.scene as BattleScene).money ? TextStyle.MONEY : TextStyle.PARTY_RED; + const scene = this.scene as BattleScene; + const textStyle = this.modifierTypeOption.cost <= scene.money ? TextStyle.MONEY : TextStyle.PARTY_RED; this.itemCostText.setText(`₽${this.modifierTypeOption.cost.toLocaleString('en-US')}`); - this.itemCostText.setColor(getTextColor(textStyle)); - this.itemCostText.setShadowColor(getTextColor(textStyle, true)); + this.itemCostText.setColor(getTextColor(textStyle, false, scene.uiTheme)); + this.itemCostText.setShadowColor(getTextColor(textStyle, true, scene.uiTheme)); } } \ No newline at end of file diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index d5f1c4f4c..0d7d92790 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -13,7 +13,7 @@ import { getGenderColor, getGenderSymbol } from "../data/gender"; import { StatusEffect } from "../data/status-effect"; import PokemonIconAnimHandler, { PokemonIconAnimMode } from "./pokemon-icon-anim-handler"; import { pokemonEvolutions } from "../data/pokemon-evolutions"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; import { SpeciesFormChangeItemTrigger } from "../data/pokemon-forms"; const defaultMessage = 'Choose a Pokémon.'; diff --git a/src/ui/pokemon-info-container.ts b/src/ui/pokemon-info-container.ts index 9eb53fcc3..355c08e27 100644 --- a/src/ui/pokemon-info-container.ts +++ b/src/ui/pokemon-info-container.ts @@ -4,7 +4,7 @@ import { Gender, getGenderColor, getGenderSymbol } from "../data/gender"; import Pokemon from "../field/pokemon"; import { StatsContainer } from "./stats-container"; import { TextStyle, addBBCodeTextObject, addTextObject } from "./text"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; import { getNatureName } from "../data/nature"; import * as Utils from "../utils"; import { Type } from "../data/type"; diff --git a/src/ui/save-slot-select-ui-handler.ts b/src/ui/save-slot-select-ui-handler.ts index bc9064b2f..64c50d69c 100644 --- a/src/ui/save-slot-select-ui-handler.ts +++ b/src/ui/save-slot-select-ui-handler.ts @@ -3,7 +3,7 @@ import { gameModes } from "../game-mode"; import { SessionSaveData } from "../system/game-data"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; import * as Utils from "../utils"; import PokemonData from "../system/pokemon-data"; import { PokemonHeldItemModifier } from "../modifier/modifier"; @@ -172,7 +172,7 @@ export default class SaveSlotSelectUiHandler extends MessageUiHandler { let changed = super.setCursor(cursor); if (!this.cursorObj) { - this.cursorObj = this.scene.add.nineslice(0, 0, 'select_cursor_highlight_thick', null, 296, 44, 2, 2, 2, 2); + this.cursorObj = this.scene.add.nineslice(0, 0, 'select_cursor_highlight_thick', null, 296, 44, 6, 6, 6, 6); this.cursorObj.setOrigin(0, 0); this.sessionSlotsContainer.add(this.cursorObj); } diff --git a/src/ui/settings-ui-handler.ts b/src/ui/settings-ui-handler.ts index 3319b2e91..ce8a7542d 100644 --- a/src/ui/settings-ui-handler.ts +++ b/src/ui/settings-ui-handler.ts @@ -1,10 +1,10 @@ import BattleScene, { Button } from "../battle-scene"; -import { Setting, settingDefaults, settingOptions } from "../system/settings"; +import { Setting, reloadSettings, settingDefaults, settingOptions } from "../system/settings"; import { hasTouchscreen, isMobile } from "../touch-controls"; -import { TextStyle, addTextObject, getTextColor } from "./text"; +import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; export default class SettingsUiHandler extends UiHandler { private settingsContainer: Phaser.GameObjects.Container; @@ -21,8 +21,12 @@ export default class SettingsUiHandler extends UiHandler { private cursorObj: Phaser.GameObjects.NineSlice; + private reloadRequired: boolean; + constructor(scene: BattleScene, mode?: Mode) { super(scene, mode); + + this.reloadRequired = false; } setup() { @@ -48,7 +52,11 @@ export default class SettingsUiHandler extends UiHandler { this.optionValueLabels = []; Object.keys(Setting).forEach((setting, s) => { - this.settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, setting.replace(/\_/g, ' '), TextStyle.SETTINGS_LABEL); + let settingName = setting.replace(/\_/g, ' '); + if (reloadSettings.includes(Setting[setting])) + settingName += ' (Requires Reload)'; + + this.settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, settingName, TextStyle.SETTINGS_LABEL); this.settingLabels[s].setOrigin(0, 0); this.optionsContainer.add(this.settingLabels[s]); @@ -157,7 +165,7 @@ export default class SettingsUiHandler extends UiHandler { const ret = super.setCursor(cursor); if (!this.cursorObj) { - this.cursorObj = this.scene.add.nineslice(0, 0, 'select_cursor_highlight', null, (this.scene.game.canvas.width / 6) - 10, 16, 1, 1, 1, 1); + this.cursorObj = this.scene.add.nineslice(0, 0, 'summary_moves_cursor', null, (this.scene.game.canvas.width / 6) - 10, 16, 1, 1, 1, 1); this.cursorObj.setOrigin(0, 0); this.optionsContainer.add(this.cursorObj); } @@ -178,17 +186,20 @@ export default class SettingsUiHandler extends UiHandler { const lastCursor = this.optionCursors[settingIndex]; const lastValueLabel = this.optionValueLabels[settingIndex][lastCursor]; - lastValueLabel.setColor(getTextColor(TextStyle.WINDOW)); - lastValueLabel.setShadowColor(getTextColor(TextStyle.WINDOW, true)); + lastValueLabel.setColor(this.getTextColor(TextStyle.WINDOW)); + lastValueLabel.setShadowColor(this.getTextColor(TextStyle.WINDOW, true)); this.optionCursors[settingIndex] = cursor; const newValueLabel = this.optionValueLabels[settingIndex][cursor]; - newValueLabel.setColor(getTextColor(TextStyle.SETTINGS_SELECTED)); - newValueLabel.setShadowColor(getTextColor(TextStyle.SETTINGS_SELECTED, true)); + newValueLabel.setColor(this.getTextColor(TextStyle.SETTINGS_SELECTED)); + newValueLabel.setShadowColor(this.getTextColor(TextStyle.SETTINGS_SELECTED, true)); - if (save) - this.scene.gameData.saveSetting(setting, cursor); + if (save) { + this.scene.gameData.saveSetting(setting, cursor) + if (reloadSettings.includes(setting)) + this.reloadRequired = true; + } return true; } @@ -221,6 +232,10 @@ export default class SettingsUiHandler extends UiHandler { super.clear(); this.settingsContainer.setVisible(false); this.eraseCursor(); + if (this.reloadRequired) { + this.reloadRequired = false; + this.scene.reset(true); + } } eraseCursor() { diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 6636c967c..8fb019257 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -13,7 +13,7 @@ import { DexAttr, DexEntry, StarterFormMoveData, StarterMoveset } from "../syste import * as Utils from "../utils"; import PokemonIconAnimHandler, { PokemonIconAnimMode } from "./pokemon-icon-anim-handler"; import { StatsContainer } from "./stats-container"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; import { Nature, getNatureName } from "../data/nature"; import BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext"; import { pokemonFormChanges } from "../data/pokemon-forms"; @@ -127,7 +127,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { bgColor.setOrigin(0, 0); this.starterSelectContainer.add(bgColor); - const starterSelectBg = this.scene.add.image(1, 1, 'starter_select_bg'); + const starterSelectBg = this.scene.add.image(0, 0, 'starter_select_bg'); starterSelectBg.setOrigin(0, 0); this.starterSelectContainer.add(starterSelectBg); @@ -136,10 +136,15 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.shinyOverlay.setVisible(false); this.starterSelectContainer.add(this.shinyOverlay); + const starterContainerWindow = addWindow(this.scene, 141, 1, 178, 178); + this.starterSelectContainer.add(addWindow(this.scene, 107, 1, 34, 58)); this.starterSelectContainer.add(addWindow(this.scene, 107, 59, 34, 91)); this.starterSelectContainer.add(addWindow(this.scene, 107, 145, 34, 34, true)); - this.starterSelectContainer.add(addWindow(this.scene, 141, 1, 178, 178)); + this.starterSelectContainer.add(starterContainerWindow); + + if (!this.scene.uiTheme) + starterContainerWindow.setVisible(false); this.iconAnimHandler = new PokemonIconAnimHandler(); this.iconAnimHandler.setup(this.scene); @@ -152,7 +157,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonNameText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonNameText); - this.pokemonGrowthRateLabelText = addTextObject(this.scene, 8, 106, 'Growth Rate:', TextStyle.SUMMARY, { fontSize: '36px' }); + this.pokemonGrowthRateLabelText = addTextObject(this.scene, 8, 106, 'Growth Rate:', TextStyle.SUMMARY_ALT, { fontSize: '36px' }); this.pokemonGrowthRateLabelText.setOrigin(0, 0); this.pokemonGrowthRateLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonGrowthRateLabelText); @@ -161,38 +166,38 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonGrowthRateText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonGrowthRateText); - this.pokemonGenderText = addTextObject(this.scene, 96, 112, '', TextStyle.SUMMARY); + this.pokemonGenderText = addTextObject(this.scene, 96, 112, '', TextStyle.SUMMARY_ALT); this.pokemonGenderText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonGenderText); - this.pokemonUncaughtText = addTextObject(this.scene, 6, 126, 'Uncaught', TextStyle.SUMMARY, { fontSize: '56px' }); + this.pokemonUncaughtText = addTextObject(this.scene, 6, 126, 'Uncaught', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonUncaughtText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonUncaughtText); - this.pokemonAbilityLabelText = addTextObject(this.scene, 6, 126, 'Ability:', TextStyle.SUMMARY, { fontSize: '56px' }); + this.pokemonAbilityLabelText = addTextObject(this.scene, 6, 126, 'Ability:', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonAbilityLabelText.setOrigin(0, 0); this.pokemonAbilityLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonAbilityLabelText); - this.pokemonAbilityText = addTextObject(this.scene, 30, 126, '', TextStyle.SUMMARY, { fontSize: '56px' }); + this.pokemonAbilityText = addTextObject(this.scene, 30, 126, '', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonAbilityText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonAbilityText); - this.pokemonNatureLabelText = addTextObject(this.scene, 6, 135, 'Nature:', TextStyle.SUMMARY, { fontSize: '56px' }); + this.pokemonNatureLabelText = addTextObject(this.scene, 6, 135, 'Nature:', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonNatureLabelText.setOrigin(0, 0); this.pokemonNatureLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonNatureLabelText); - this.pokemonNatureText = addBBCodeTextObject(this.scene, 30, 135, '', TextStyle.SUMMARY, { fontSize: '56px' }); + this.pokemonNatureText = addBBCodeTextObject(this.scene, 30, 135, '', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonNatureText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonNatureText); - this.pokemonCaughtCountLabelText = addTextObject(this.scene, 6, 144, 'Caught/Hatched:', TextStyle.SUMMARY, { fontSize: '56px' }); + this.pokemonCaughtCountLabelText = addTextObject(this.scene, 6, 144, 'Caught/Hatched:', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonCaughtCountLabelText.setOrigin(0, 0); this.pokemonCaughtCountLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonCaughtCountLabelText); - this.pokemonCaughtCountText = addTextObject(this.scene, 58, 144, '0/0 (0)', TextStyle.SUMMARY, { fontSize: '56px' }); + this.pokemonCaughtCountText = addTextObject(this.scene, 58, 144, '0/0 (0)', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonCaughtCountText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonCaughtCountText); @@ -212,7 +217,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.updateGenOptions(); this.starterSelectGenIconContainers = new Array(gens.length).fill(null).map((_, i) => { - const container = this.scene.add.container(149, 9); + const container = this.scene.add.container(151, 9); if (i) container.setVisible(false); this.starterSelectContainer.add(container); @@ -256,7 +261,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { startLabel.setOrigin(0.5, 0); this.starterSelectContainer.add(startLabel); - this.startCursorObj = this.scene.add.nineslice(111, 160, 'select_cursor', null, 26, 15, 1, 1, 1, 1); + this.startCursorObj = this.scene.add.nineslice(111, 160, 'select_cursor', null, 26, 15, 6, 6, 6, 6); this.startCursorObj.setVisible(false); this.startCursorObj.setOrigin(0, 0); this.starterSelectContainer.add(this.startCursorObj); @@ -301,7 +306,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.starterValueLabels = new Array(81).fill(null).map((_, i) => { const x = (i % 9) * 18; const y = Math.floor(i / 9) * 18; - const ret = addTextObject(this.scene, x + 150, y + 11, '0', TextStyle.WINDOW, { fontSize: '32px' }); + const ret = addTextObject(this.scene, x + 152, y + 11, '0', TextStyle.WINDOW, { fontSize: '32px' }); ret.setShadowOffset(2, 2); ret.setOrigin(0, 0); ret.setVisible(false); @@ -312,7 +317,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.shinyIcons = new Array(81).fill(null).map((_, i) => { const x = (i % 9) * 18; const y = Math.floor(i / 9) * 18; - const ret = this.scene.add.image(x + 161, y + 11, 'shiny_star'); + const ret = this.scene.add.image(x + 163, y + 11, 'shiny_star'); ret.setOrigin(0, 0); ret.setScale(0.5); ret.setVisible(false); @@ -355,7 +360,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonEggMovesContainer = this.scene.add.container(102, 85); this.pokemonEggMovesContainer.setScale(0.375); - const eggMovesLabel = addTextObject(this.scene, -46, 0, 'Egg Moves', TextStyle.SUMMARY); + const eggMovesLabel = addTextObject(this.scene, -46, 0, 'Egg Moves', TextStyle.SUMMARY_ALT); eggMovesLabel.setOrigin(0.5, 0); this.pokemonEggMovesContainer.add(eggMovesLabel); @@ -429,7 +434,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokerusGens.push(species.generation - 1); this.pokerusCursors.push(pokerusCursor); - this.pokerusCursorObjs[c].setPosition(148 + 18 * (pokerusCursor % 9), 10 + 18 * Math.floor(pokerusCursor / 9)); + this.pokerusCursorObjs[c].setPosition(150 + 18 * (pokerusCursor % 9), 10 + 18 * Math.floor(pokerusCursor / 9)); } }, 0, date.getTime().toString()); @@ -862,8 +867,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { textStyle = TextStyle.SUMMARY_GOLD; break; } - this.starterValueLabels[s].setColor(getTextColor(textStyle)); - this.starterValueLabels[s].setShadowColor(getTextColor(textStyle, true)); + this.starterValueLabels[s].setColor(this.getTextColor(textStyle)); + this.starterValueLabels[s].setShadowColor(this.getTextColor(textStyle, true)); } this.starterValueLabels[s].setVisible(slotVisible); this.shinyIcons[s].setVisible(slotVisible && !!(this.scene.gameData.dexData[speciesId].caughtAttr & DexAttr.SHINY)); @@ -871,7 +876,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } else { changed = super.setCursor(cursor); - this.cursorObj.setPosition(148 + 18 * (cursor % 9), 10 + 18 * Math.floor(cursor / 9)); + this.cursorObj.setPosition(150 + 18 * (cursor % 9), 10 + 18 * Math.floor(cursor / 9)); this.setSpecies(this.genSpecies[this.getGenCursorWithScroll()][cursor]); @@ -1056,8 +1061,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } this.shinyOverlay.setVisible(shiny); - this.pokemonNumberText.setColor(getTextColor(shiny ? TextStyle.SUMMARY_GOLD : TextStyle.SUMMARY)); - this.pokemonNumberText.setShadowColor(getTextColor(shiny ? TextStyle.SUMMARY_GOLD : TextStyle.SUMMARY, true)); + this.pokemonNumberText.setColor(this.getTextColor(shiny ? TextStyle.SUMMARY_GOLD : TextStyle.SUMMARY, false)); + this.pokemonNumberText.setShadowColor(this.getTextColor(shiny ? TextStyle.SUMMARY_GOLD : TextStyle.SUMMARY, true)); if (forSeen ? this.speciesStarterDexEntry?.seenAttr : this.speciesStarterDexEntry?.caughtAttr) { let starterIndex = -1; @@ -1111,8 +1116,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonAbilityText.setText(allAbilities[ability].name); const isHidden = ability === this.lastSpecies.abilityHidden; - this.pokemonAbilityText.setColor(getTextColor(!isHidden ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD)); - this.pokemonAbilityText.setShadowColor(getTextColor(!isHidden ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD, true)); + this.pokemonAbilityText.setColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD)); + this.pokemonAbilityText.setShadowColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD, true)); this.pokemonNatureText.setText(getNatureName(natureIndex as unknown as Nature, true, true)); @@ -1146,8 +1151,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } } else { this.shinyOverlay.setVisible(false); - this.pokemonNumberText.setColor(getTextColor(TextStyle.SUMMARY)); - this.pokemonNumberText.setShadowColor(getTextColor(TextStyle.SUMMARY, true)); + this.pokemonNumberText.setColor(this.getTextColor(TextStyle.SUMMARY)); + this.pokemonNumberText.setShadowColor(this.getTextColor(TextStyle.SUMMARY, true)); this.pokemonGenderText.setText(''); this.pokemonAbilityText.setText(''); this.pokemonNatureText.setText(''); @@ -1200,8 +1205,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (newValueStr.startsWith('0.')) newValueStr = newValueStr.slice(1); this.valueLimitLabel.setText(`${newValueStr}/10`); - this.valueLimitLabel.setColor(getTextColor(!overLimit ? TextStyle.TOOLTIP_CONTENT : TextStyle.SUMMARY_PINK)); - this.valueLimitLabel.setShadowColor(getTextColor(!overLimit ? TextStyle.TOOLTIP_CONTENT : TextStyle.SUMMARY_PINK, true)); + this.valueLimitLabel.setColor(this.getTextColor(!overLimit ? TextStyle.TOOLTIP_CONTENT : TextStyle.SUMMARY_PINK)); + this.valueLimitLabel.setShadowColor(this.getTextColor(!overLimit ? TextStyle.TOOLTIP_CONTENT : TextStyle.SUMMARY_PINK, true)); if (overLimit) { this.scene.time.delayedCall(Utils.fixedInt(500), () => this.tryUpdateValue()); return false; diff --git a/src/ui/stats-container.ts b/src/ui/stats-container.ts index ae3776636..014465805 100644 --- a/src/ui/stats-container.ts +++ b/src/ui/stats-container.ts @@ -70,7 +70,7 @@ export class StatsContainer extends Phaser.GameObjects.Container { let label = ivs[i].toString(); if (this.showDiff && originalIvs) { if (originalIvs[i] < ivs[i]) - label += ` ([color=${getTextColor(TextStyle.SUMMARY_BLUE)}][shadow=${getTextColor(TextStyle.SUMMARY_BLUE, true)}]+${ivs[i] - originalIvs[i]}[/shadow][/color])`; + label += ` ([color=${getTextColor(TextStyle.SUMMARY_BLUE, false, (this.scene as BattleScene).uiTheme)}][shadow=${getTextColor(TextStyle.SUMMARY_BLUE, true, (this.scene as BattleScene).uiTheme)}]+${ivs[i] - originalIvs[i]}[/shadow][/color])`; else label += ' (-)'; } diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index 71babf9f9..97aea72d4 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -8,7 +8,7 @@ import { TextStyle, addBBCodeTextObject, addTextObject, getBBCodeFrag, getTextCo import Move, { MoveCategory } from "../data/move"; import { getPokeballAtlasKey } from "../data/pokeball"; import { getGenderColor, getGenderSymbol } from "../data/gender"; -import { getLevelTotalExp } from "../data/exp"; +import { getLevelRelExp, getLevelTotalExp } from "../data/exp"; import { Stat, getStatName } from "../data/pokemon-stat"; import { PokemonHeldItemModifier } from "../modifier/modifier"; import { StatusEffect } from "../data/status-effect"; @@ -119,11 +119,11 @@ export default class SummaryUiHandler extends UiHandler { this.pokeball.setOrigin(0, 1); this.summaryContainer.add(this.pokeball); - this.levelText = addTextObject(this.scene, 36, -18, '', TextStyle.SUMMARY); + this.levelText = addTextObject(this.scene, 36, -17, '', TextStyle.SUMMARY_ALT); this.levelText.setOrigin(0, 1); this.summaryContainer.add(this.levelText); - this.genderText = addTextObject(this.scene, 96, -18, '', TextStyle.SUMMARY); + this.genderText = addTextObject(this.scene, 96, -17, '', TextStyle.SUMMARY); this.genderText.setOrigin(0, 1); this.summaryContainer.add(this.genderText); @@ -160,11 +160,11 @@ export default class SummaryUiHandler extends UiHandler { this.moveEffectContainer.add(moveEffectLabels); - this.movePowerText = addTextObject(this.scene, 99, 27, '0', TextStyle.WINDOW); + this.movePowerText = addTextObject(this.scene, 99, 27, '0', TextStyle.WINDOW_ALT); this.movePowerText.setOrigin(1, 1); this.moveEffectContainer.add(this.movePowerText); - this.moveAccuracyText = addTextObject(this.scene, 99, 43, '0', TextStyle.WINDOW); + this.moveAccuracyText = addTextObject(this.scene, 99, 43, '0', TextStyle.WINDOW_ALT); this.moveAccuracyText.setOrigin(1, 1); this.moveEffectContainer.add(this.moveAccuracyText); @@ -206,8 +206,8 @@ export default class SummaryUiHandler extends UiHandler { this.shinyOverlay.setVisible(this.pokemon.isShiny()); this.numberText.setText(Utils.padInt(this.pokemon.species.speciesId, 4)); - this.numberText.setColor(getTextColor(!this.pokemon.isShiny() ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD)); - this.numberText.setShadowColor(getTextColor(!this.pokemon.isShiny() ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD, true)); + this.numberText.setColor(this.getTextColor(!this.pokemon.isShiny() ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD)); + this.numberText.setShadowColor(this.getTextColor(!this.pokemon.isShiny() ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD, true)); this.pokemonSprite.play(this.pokemon.getSpriteKey(true)); this.pokemonSprite.pipelineData['teraColor'] = getTypeRgb(this.pokemon.getTeraType()); @@ -502,7 +502,7 @@ export default class SummaryUiHandler extends UiHandler { const profileContainer = this.scene.add.container(0, -pageBg.height); pageContainer.add(profileContainer); - const trainerLabel = addTextObject(this.scene, 7, 12, 'OT/', TextStyle.SUMMARY); + const trainerLabel = addTextObject(this.scene, 7, 12, 'OT/', TextStyle.SUMMARY_ALT); trainerLabel.setOrigin(0, 0); profileContainer.add(trainerLabel); @@ -511,11 +511,11 @@ export default class SummaryUiHandler extends UiHandler { trainerText.setOrigin(0, 0); profileContainer.add(trainerText); - const trainerIdText = addTextObject(this.scene, 174, 12, this.scene.gameData.trainerId.toString(), TextStyle.SUMMARY); + const trainerIdText = addTextObject(this.scene, 174, 12, this.scene.gameData.trainerId.toString(), TextStyle.SUMMARY_ALT); trainerIdText.setOrigin(0, 0); profileContainer.add(trainerIdText); - const typeLabel = addTextObject(this.scene, 7, 28, 'Type/', TextStyle.WINDOW); + const typeLabel = addTextObject(this.scene, 7, 28, 'Type/', TextStyle.WINDOW_ALT); typeLabel.setOrigin(0, 0); profileContainer.add(typeLabel); @@ -542,11 +542,11 @@ export default class SummaryUiHandler extends UiHandler { const ability = this.pokemon.getAbility(true); - const abilityNameText = addTextObject(this.scene, 7, 66, ability.name, TextStyle.SUMMARY); + const abilityNameText = addTextObject(this.scene, 7, 66, ability.name, TextStyle.SUMMARY_ALT); abilityNameText.setOrigin(0, 1); profileContainer.add(abilityNameText); - const abilityDescriptionText = addTextObject(this.scene, 7, 69, ability.description, TextStyle.WINDOW, { wordWrap: { width: 1224 } }); + const abilityDescriptionText = addTextObject(this.scene, 7, 69, ability.description, TextStyle.WINDOW_ALT, { wordWrap: { width: 1224 } }); abilityDescriptionText.setOrigin(0, 0); profileContainer.add(abilityDescriptionText); @@ -574,9 +574,9 @@ export default class SummaryUiHandler extends UiHandler { }); } - let memoString = `${getBBCodeFrag(Utils.toReadableString(Nature[this.pokemon.nature]), TextStyle.SUMMARY_RED)}${getBBCodeFrag(' nature,', TextStyle.WINDOW)}\n${getBBCodeFrag(`${this.pokemon.metBiome === -1 ? 'apparently ' : ''}met at Lv`, TextStyle.WINDOW)}${getBBCodeFrag(this.pokemon.metLevel.toString(), TextStyle.SUMMARY_RED)}${getBBCodeFrag(',', TextStyle.WINDOW)}\n${getBBCodeFrag(getBiomeName(this.pokemon.metBiome), TextStyle.SUMMARY_RED)}${getBBCodeFrag('.', TextStyle.WINDOW)}`; + let memoString = `${getBBCodeFrag(Utils.toReadableString(Nature[this.pokemon.nature]), TextStyle.SUMMARY_RED)}${getBBCodeFrag(' nature,', TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(`${this.pokemon.metBiome === -1 ? 'apparently ' : ''}met at Lv`, TextStyle.WINDOW_ALT)}${getBBCodeFrag(this.pokemon.metLevel.toString(), TextStyle.SUMMARY_RED)}${getBBCodeFrag(',', TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(getBiomeName(this.pokemon.metBiome), TextStyle.SUMMARY_RED)}${getBBCodeFrag('.', TextStyle.WINDOW_ALT)}`; - const memoText = addBBCodeTextObject(this.scene, 7, 113, memoString, TextStyle.WINDOW); + const memoText = addBBCodeTextObject(this.scene, 7, 113, memoString, TextStyle.WINDOW_ALT); memoText.setOrigin(0, 0); profileContainer.add(memoText); break; @@ -603,7 +603,7 @@ export default class SummaryUiHandler extends UiHandler { ? Utils.formatStat(this.pokemon.stats[s]) : `${Utils.formatStat(this.pokemon.hp, true)}/${Utils.formatStat(this.pokemon.getMaxHp(), true)}`; - const statValue = addTextObject(this.scene, 120 + 88 * colIndex, 56 + 16 * rowIndex, statValueText, TextStyle.WINDOW); + const statValue = addTextObject(this.scene, 120 + 88 * colIndex, 56 + 16 * rowIndex, statValueText, TextStyle.WINDOW_ALT); statValue.setOrigin(1, 0); statsContainer.add(statValue); }); @@ -622,8 +622,8 @@ export default class SummaryUiHandler extends UiHandler { icon.on('pointerout', () => (this.scene as BattleScene).ui.hideTooltip()); }); - const totalLvExp = getLevelTotalExp(this.pokemon.level, this.pokemon.species.growthRate); - const expRatio = this.pokemon.level < this.scene.getMaxExpLevel() ? this.pokemon.levelExp / totalLvExp : 0; + const relLvExp = getLevelRelExp(this.pokemon.level + 1, this.pokemon.species.growthRate); + const expRatio = this.pokemon.level < this.scene.getMaxExpLevel() ? this.pokemon.levelExp / relLvExp : 0; const expLabel = addTextObject(this.scene, 6, 112, 'EXP. Points', TextStyle.SUMMARY); expLabel.setOrigin(0, 0); @@ -633,14 +633,14 @@ export default class SummaryUiHandler extends UiHandler { nextLvExpLabel.setOrigin(0, 0); statsContainer.add(nextLvExpLabel); - const expText = addTextObject(this.scene, 208, 112, this.pokemon.exp.toString(), TextStyle.WINDOW); + const expText = addTextObject(this.scene, 208, 112, this.pokemon.exp.toString(), TextStyle.WINDOW_ALT); expText.setOrigin(1, 0); statsContainer.add(expText); const nextLvExp = this.pokemon.level < this.scene.getMaxExpLevel() ? getLevelTotalExp(this.pokemon.level + 1, this.pokemon.species.growthRate) - this.pokemon.exp : 0; - const nextLvExpText = addTextObject(this.scene, 208, 128, nextLvExp.toString(), TextStyle.WINDOW); + const nextLvExpText = addTextObject(this.scene, 208, 128, nextLvExp.toString(), TextStyle.WINDOW_ALT); nextLvExpText.setOrigin(1, 0); statsContainer.add(nextLvExpText); @@ -724,7 +724,7 @@ export default class SummaryUiHandler extends UiHandler { moveRowContainer.add(ppText); } - this.moveDescriptionText = addTextObject(this.scene, 2, 84, '', TextStyle.WINDOW, { wordWrap: { width: 1212 } }); + this.moveDescriptionText = addTextObject(this.scene, 2, 84, '', TextStyle.WINDOW_ALT, { wordWrap: { width: 1212 } }); this.movesContainer.add(this.moveDescriptionText); const moveDescriptionTextMaskRect = this.scene.make.graphics({}); diff --git a/src/ui/text.ts b/src/ui/text.ts index d715eff47..21672847f 100644 --- a/src/ui/text.ts +++ b/src/ui/text.ts @@ -2,14 +2,18 @@ import BBCodeText from "phaser3-rex-plugins/plugins/gameobjects/tagtext/bbcodete import InputText from "phaser3-rex-plugins/plugins/inputtext"; import { ModifierTier } from "../modifier/modifier-tier"; import { EggTier } from "../data/enums/egg-type"; +import BattleScene from "../battle-scene"; +import { UiTheme } from "../enums/ui-theme"; export enum TextStyle { MESSAGE, WINDOW, + WINDOW_ALT, BATTLE_INFO, PARTY, PARTY_RED, SUMMARY, + SUMMARY_ALT, SUMMARY_RED, SUMMARY_BLUE, SUMMARY_PINK, @@ -22,7 +26,7 @@ export enum TextStyle { }; export function addTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): Phaser.GameObjects.Text { - const [ styleOptions, shadowColor, shadowSize ] = getTextStyleOptions(style, extraStyleOptions); + const [ styleOptions, shadowColor, shadowSize ] = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions); const ret = scene.add.text(x, y, content, styleOptions); ret.setScale(0.1666666667); @@ -34,7 +38,7 @@ export function addTextObject(scene: Phaser.Scene, x: number, y: number, content } export function addBBCodeTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): BBCodeText { - const [ styleOptions, shadowColor, shadowSize ] = getTextStyleOptions(style, extraStyleOptions); + const [ styleOptions, shadowColor, shadowSize ] = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions); const ret = new BBCodeText(scene, x, y, content, styleOptions as BBCodeText.TextStyle); scene.add.existing(ret); @@ -47,7 +51,7 @@ export function addBBCodeTextObject(scene: Phaser.Scene, x: number, y: number, c } export function addTextInputObject(scene: Phaser.Scene, x: number, y: number, width: number, height: number, style: TextStyle, extraStyleOptions?: InputText.IConfig): InputText { - const [ styleOptions ] = getTextStyleOptions(style, extraStyleOptions); + const [ styleOptions ] = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions); const ret = new InputText(scene, x, y, width, height, styleOptions as InputText.IConfig); scene.add.existing(ret); @@ -56,14 +60,14 @@ export function addTextInputObject(scene: Phaser.Scene, x: number, y: number, wi return ret; } -function getTextStyleOptions(style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): [ Phaser.Types.GameObjects.Text.TextStyle | InputText.IConfig, string, integer ] { +function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): [ Phaser.Types.GameObjects.Text.TextStyle | InputText.IConfig, string, integer ] { let shadowColor: string; let shadowSize = 6; let styleOptions: Phaser.Types.GameObjects.Text.TextStyle = { fontFamily: 'emerald', fontSize: '96px', - color: getTextColor(style, false), + color: getTextColor(style, false, uiTheme), padding: { bottom: 6 } @@ -97,7 +101,7 @@ function getTextStyleOptions(style: TextStyle, extraStyleOptions?: Phaser.Types. break; } - shadowColor = getTextColor(style, true); + shadowColor = getTextColor(style, true, uiTheme); if (extraStyleOptions) { if (extraStyleOptions.fontSize) { @@ -114,21 +118,31 @@ export function getBBCodeFrag(content: string, textStyle: TextStyle): string { return `[color=${getTextColor(textStyle)}][shadow=${getTextColor(textStyle, true)}]${content}`; } -export function getTextColor(textStyle: TextStyle, shadow?: boolean): string { +export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: UiTheme = UiTheme.DEFAULT): string { switch (textStyle) { case TextStyle.MESSAGE: return !shadow ? '#f8f8f8' : '#6b5a73'; case TextStyle.WINDOW: case TextStyle.TOOLTIP_CONTENT: + if (uiTheme) + return !shadow ? '#484848' : '#d0d0c8'; + return !shadow ? '#f8f8f8' : '#6b5a73'; + case TextStyle.WINDOW_ALT: return !shadow ? '#484848' : '#d0d0c8'; case TextStyle.BATTLE_INFO: - return !shadow ? '#404040' : '#ded6b5'; + if (uiTheme) + return !shadow ? '#404040' : '#ded6b5'; + return !shadow ? '#f8f8f8' : '#6b5a73'; case TextStyle.PARTY: return !shadow ? '#f8f8f8' : '#707070'; case TextStyle.PARTY_RED: return !shadow ? '#f89890' : '#984038'; case TextStyle.SUMMARY: return !shadow ? '#ffffff' : '#636363'; + case TextStyle.SUMMARY_ALT: + if (uiTheme) + return !shadow ? '#ffffff' : '#636363'; + return !shadow ? '#484848' : '#d0d0c8'; case TextStyle.SUMMARY_RED: case TextStyle.TOOLTIP_TITLE: return !shadow ? '#e70808' : '#ffbd73'; diff --git a/src/ui/ui-handler.ts b/src/ui/ui-handler.ts index 16c7b3756..e3c94b764 100644 --- a/src/ui/ui-handler.ts +++ b/src/ui/ui-handler.ts @@ -1,4 +1,5 @@ import BattleScene, { Button } from "../battle-scene"; +import { TextStyle, getTextColor } from "./text"; import UI, { Mode } from "./ui"; export default abstract class UiHandler { @@ -26,6 +27,10 @@ export default abstract class UiHandler { return this.scene.ui; } + getTextColor(style: TextStyle, shadow: boolean = false): string { + return getTextColor(style, shadow, this.scene.uiTheme); + } + getCursor(): integer { return this.cursor; } diff --git a/src/ui/ui-theme.ts b/src/ui/ui-theme.ts new file mode 100644 index 000000000..28612fbcb --- /dev/null +++ b/src/ui/ui-theme.ts @@ -0,0 +1,147 @@ +import { UiTheme } from "#app/enums/ui-theme"; +import BattleScene, { legacyCompatibleImages } from "../battle-scene"; + +export enum WindowVariant { + NORMAL, + THIN, + XTHIN +} + +export function getWindowVariantSuffix(windowVariant: WindowVariant): string { + switch (windowVariant) { + case WindowVariant.THIN: + return '_thin'; + case WindowVariant.XTHIN: + return '_xthin'; + default: + return ''; + } +} + +const windowTypeControlColors = { + [UiTheme.DEFAULT]: { + 0: [ '#6b5a73', '#DD5748', '#7E4955' ], + 1: [ '#6b5a73', '#48DDAA', '#4D7574' ], + 2: [ '#6b5a73', '#C5C5C5', '#766D7E' ], + 3: [ '#6b5a73', '#EBC07C', '#836C66' ], + 4: [ '#686868', '#E8E8E8', '#919191' ] + }, + [UiTheme.LEGACY]: { + 0: [ '#706880', '#8888c8', '#484868' ], + 1: [ '#d04028', '#e0a028', '#902008' ], + 2: [ '#48b840', '#88d880', '#089040' ], + 3: [ '#2068d0', '#80b0e0', '#104888' ], + 4: [ '#706880', '#8888c8', '#484868' ] + } +}; + +export function addWindow(scene: BattleScene, x: number, y: number, width: number, height: number, mergeMaskTop?: boolean, mergeMaskLeft?: boolean, maskOffsetX?: number, maskOffsetY?: number, windowVariant?: WindowVariant): Phaser.GameObjects.NineSlice { + if (windowVariant === undefined) + windowVariant = WindowVariant.NORMAL; + + const borderSize = scene.uiTheme ? 6 : 8; + + const window = scene.add.nineslice(x, y, `window_${scene.windowType}${getWindowVariantSuffix(windowVariant)}`, null, width, height, borderSize, borderSize, borderSize, borderSize); + window.setOrigin(0, 0); + + if (mergeMaskTop || mergeMaskLeft) { + const maskRect = scene.make.graphics({}); + maskRect.setScale(6); + maskRect.fillStyle(0xFFFFFF); + maskRect.beginPath(); + maskRect.fillRect(window.x + (mergeMaskLeft ? 2 : 0) + (maskOffsetX || 0), window.y + (mergeMaskTop ? 2 : 0) + (maskOffsetY || 0), window.width - (mergeMaskLeft ? 2 : 0), window.height - (mergeMaskTop ? 2 : 0)); + window.setMask(maskRect.createGeometryMask()); + } + + return window; +} + +export function updateWindowType(scene: BattleScene, windowTypeIndex: integer): void { + const windowObjects: [Phaser.GameObjects.NineSlice, WindowVariant][] = []; + const bgObjects: Phaser.GameObjects.Image[] = []; + const traverse = (object: any) => { + if (object.hasOwnProperty('children')) { + const children = object.children as Phaser.GameObjects.DisplayList; + for (let child of children.getAll()) + traverse(child); + } else if (object instanceof Phaser.GameObjects.Container) { + for (let child of object.getAll()) + traverse(child); + } else if (object instanceof Phaser.GameObjects.NineSlice) { + if (object.texture.key.startsWith('window_')) + windowObjects.push([ object, object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.XTHIN)) ? WindowVariant.XTHIN : object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.THIN)) ? WindowVariant.THIN : WindowVariant.NORMAL ]); + } else if (object instanceof Phaser.GameObjects.Sprite && object.texture?.key === 'bg') + bgObjects.push(object) + } + + traverse(scene); + + scene.windowType = windowTypeIndex; + + const rootStyle = document.documentElement.style; + [ 'base', 'light', 'dark' ].map((k, i) => rootStyle.setProperty(`--color-${k}`, windowTypeControlColors[scene.uiTheme][windowTypeIndex - 1][i])); + + const windowKey = `window_${windowTypeIndex}`; + + for (let [ window, variant ] of windowObjects) + window.setTexture(`${windowKey}${getWindowVariantSuffix(variant)}`); + + for (let bg of bgObjects) + bg.setFrame(windowTypeIndex); +} + +export function addUiThemeOverrides(scene: BattleScene): void { + const originalAddImage = scene.add.image; + scene.add.image = function (x: number, y: number, texture: string | Phaser.Textures.Texture, frame?: string | number): Phaser.GameObjects.Image { + let legacy = false; + if (typeof texture === 'string' && scene.uiTheme && legacyCompatibleImages.includes(texture)) { + legacy = true; + texture += '_legacy'; + } + const ret: Phaser.GameObjects.Image = originalAddImage.apply(this, [ x, y, texture, frame ]); + if (legacy) { + const originalSetTexture = ret.setTexture; + ret.setTexture = function (key: string, frame?: string | number) { + key += '_legacy'; + return originalSetTexture.apply(this, [ key, frame ]); + }; + } + return ret; + }; + + const originalAddSprite = scene.add.sprite; + scene.add.sprite = function (x: number, y: number, texture: string | Phaser.Textures.Texture, frame?: string | number): Phaser.GameObjects.Sprite { + let legacy = false; + if (typeof texture === 'string' && scene.uiTheme && legacyCompatibleImages.includes(texture)) { + legacy = true; + texture += '_legacy'; + } + const ret: Phaser.GameObjects.Sprite = originalAddSprite.apply(this, [ x, y, texture, frame ]); + if (legacy) { + const originalSetTexture = ret.setTexture; + ret.setTexture = function (key: string, frame?: string | number) { + key += '_legacy'; + return originalSetTexture.apply(this, [ key, frame ]); + }; + } + return ret; + }; + + const originalAddNineslice = scene.add.nineslice; + scene.add.nineslice = function (x: number, y: number, texture: string | Phaser.Textures.Texture, frame?: string | number, width?: number, height?: number, leftWidth?: number, rightWidth?: number, topHeight?: number, bottomHeight?: number): Phaser.GameObjects.NineSlice { + let legacy = false; + if (typeof texture === 'string' && scene.uiTheme && legacyCompatibleImages.includes(texture)) { + legacy = true; + texture += '_legacy'; + } + const ret: Phaser.GameObjects.NineSlice = originalAddNineslice.apply(this, [ x, y, texture, frame, width, height, leftWidth, rightWidth, topHeight, bottomHeight ]); + if (legacy) { + const originalSetTexture = ret.setTexture; + ret.setTexture = function (key: string | Phaser.Textures.Texture, frame?: string | number, updateSize?: boolean, updateOrigin?: boolean) { + key += '_legacy'; + return originalSetTexture.apply(this, [ key, frame, updateSize, updateOrigin ]); + }; + } + return ret; + }; +} \ No newline at end of file diff --git a/src/ui/ui.ts b/src/ui/ui.ts index c30cd9fbe..dd8fcc12f 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -23,7 +23,7 @@ import EggHatchSceneHandler from './egg-hatch-scene-handler'; import EggListUiHandler from './egg-list-ui-handler'; import EggGachaUiHandler from './egg-gacha-ui-handler'; import VouchersUiHandler from './vouchers-ui-handler'; -import { addWindow } from './window'; +import { addWindow } from './ui-theme'; import LoginFormUiHandler from './login-form-ui-handler'; import RegistrationFormUiHandler from './registration-form-ui-handler'; import LoadingModalUiHandler from './loading-modal-ui-handler'; diff --git a/src/ui/vouchers-ui-handler.ts b/src/ui/vouchers-ui-handler.ts index b0e9f9c62..96ef7984a 100644 --- a/src/ui/vouchers-ui-handler.ts +++ b/src/ui/vouchers-ui-handler.ts @@ -3,7 +3,7 @@ import { Voucher, getVoucherTypeIcon, getVoucherTypeName, vouchers } from "../sy import MessageUiHandler from "./message-ui-handler"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; -import { addWindow } from "./window"; +import { addWindow } from "./ui-theme"; const itemRows = 4; const itemCols = 17; diff --git a/src/ui/window.ts b/src/ui/window.ts deleted file mode 100644 index c0299e9be..000000000 --- a/src/ui/window.ts +++ /dev/null @@ -1,73 +0,0 @@ -import BattleScene from "../battle-scene"; - -export enum WindowVariant { - NORMAL, - THIN, - XTHIN -} - -export function getWindowVariantSuffix(windowVariant: WindowVariant): string { - switch (windowVariant) { - case WindowVariant.THIN: - return '_thin'; - case WindowVariant.XTHIN: - return '_xthin'; - default: - return ''; - } -} - -const windowTypeControlColors = { - 0: [ '#706880', '#8888c8', '#484868' ], - 1: [ '#d04028', '#e0a028', '#902008' ], - 2: [ '#48b840', '#88d880', '#089040' ], - 3: [ '#2068d0', '#80b0e0', '#104888' ] -}; - -export function addWindow(scene: BattleScene, x: number, y: number, width: number, height: number, mergeMaskTop?: boolean, mergeMaskLeft?: boolean, maskOffsetX?: number, maskOffsetY?: number, windowVariant?: WindowVariant): Phaser.GameObjects.NineSlice { - if (windowVariant === undefined) - windowVariant = WindowVariant.NORMAL; - - const window = scene.add.nineslice(x, y, `window_${scene.windowType}${getWindowVariantSuffix(windowVariant)}`, null, width, height, 6, 6, 6, 6); - window.setOrigin(0, 0); - - if (mergeMaskTop || mergeMaskLeft) { - const maskRect = scene.make.graphics({}); - maskRect.setScale(6); - maskRect.fillStyle(0xFFFFFF); - maskRect.beginPath(); - maskRect.fillRect(window.x + (mergeMaskLeft ? 2 : 0) + (maskOffsetX || 0), window.y + (mergeMaskTop ? 2 : 0) + (maskOffsetY || 0), window.width - (mergeMaskLeft ? 2 : 0), window.height - (mergeMaskTop ? 2 : 0)); - window.setMask(maskRect.createGeometryMask()); - } - - return window; -} - -export function updateWindowType(scene: BattleScene, windowTypeIndex: integer): void { - const windowObjects: [Phaser.GameObjects.NineSlice, WindowVariant][] = []; - const traverse = (object: any) => { - if (object.hasOwnProperty('children')) { - const children = object.children as Phaser.GameObjects.DisplayList; - for (let child of children.getAll()) - traverse(child); - } else if (object instanceof Phaser.GameObjects.Container) { - for (let child of object.getAll()) - traverse(child); - } else if (object instanceof Phaser.GameObjects.NineSlice) { - if (object.texture.key.startsWith('window_')) - windowObjects.push([ object, object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.XTHIN)) ? WindowVariant.XTHIN : object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.THIN)) ? WindowVariant.THIN : WindowVariant.NORMAL ]); - } - } - - traverse(scene); - - scene.windowType = windowTypeIndex; - - const rootStyle = document.documentElement.style; - [ 'base', 'light', 'dark' ].map((k, i) => rootStyle.setProperty(`--color-${k}`, windowTypeControlColors[windowTypeIndex - 1][i])); - - const windowKey = `window_${windowTypeIndex}`; - - for (let [ window, variant ] of windowObjects) - window.setTexture(`${windowKey}${getWindowVariantSuffix(variant)}`); -} \ No newline at end of file