diff --git a/.gitignore b/.gitignore index e6e20995..2eae03de 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,7 @@ export_presets.cfg *.translation .mono/ addons/discord_game_sdk/bin/** - +addons/discord_game_sdk/discord_game_sdk.dll +addons/discord_game_sdk/discord_game_sdk.dylib +override.cfg .vscode/settings.json diff --git a/LICENSE.txt b/LICENSE.txt index 3db7fa55..8a8cd0d9 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 Basil +Copyright (c) 2022-2025 Lilian "Chedski" & Rhythia Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/assets/font/NotoSansMono/NotoSansMono-Black.ttf b/assets/font/NotoSansMono/NotoSansMono-Black.ttf new file mode 100644 index 00000000..ed87328b Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-Black.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-Bold.ttf b/assets/font/NotoSansMono/NotoSansMono-Bold.ttf new file mode 100644 index 00000000..8073d573 Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-Bold.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-ExtraBold.ttf b/assets/font/NotoSansMono/NotoSansMono-ExtraBold.ttf new file mode 100644 index 00000000..a8617964 Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-ExtraBold.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-ExtraLight.ttf b/assets/font/NotoSansMono/NotoSansMono-ExtraLight.ttf new file mode 100644 index 00000000..0bfe1011 Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-ExtraLight.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-Light.ttf b/assets/font/NotoSansMono/NotoSansMono-Light.ttf new file mode 100644 index 00000000..2463d6bd Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-Light.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-Medium.ttf b/assets/font/NotoSansMono/NotoSansMono-Medium.ttf new file mode 100644 index 00000000..6ebf2d5e Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-Medium.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-Regular.ttf b/assets/font/NotoSansMono/NotoSansMono-Regular.ttf new file mode 100644 index 00000000..ff9389ae Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-Regular.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-SemiBold.ttf b/assets/font/NotoSansMono/NotoSansMono-SemiBold.ttf new file mode 100644 index 00000000..d0ec3860 Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-SemiBold.ttf differ diff --git a/assets/font/NotoSansMono/NotoSansMono-Thin.ttf b/assets/font/NotoSansMono/NotoSansMono-Thin.ttf new file mode 100644 index 00000000..26988150 Binary files /dev/null and b/assets/font/NotoSansMono/NotoSansMono-Thin.ttf differ diff --git a/assets/images/branding/icon.png.import b/assets/images/branding/icon.png.import index 6775976c..82ba7ed0 100644 --- a/assets/images/branding/icon.png.import +++ b/assets/images/branding/icon.png.import @@ -2,28 +2,31 @@ importer="texture" type="StreamTexture" -path="res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.stex" +path.s3tc="res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.s3tc.stex" +path.etc2="res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.etc2.stex" +path.etc="res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.etc.stex" metadata={ -"vram_texture": false +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true } [deps] source_file="res://assets/images/branding/icon.png" -dest_files=[ "res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.stex" ] +dest_files=[ "res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.s3tc.stex", "res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.etc2.stex", "res://.import/icon.png-29103d28d10c95ea8b4bc51a2d70e8db.etc.stex" ] [params] -compress/mode=0 +compress/mode=2 compress/lossy_quality=0.7 compress/hdr_mode=0 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 +flags/repeat=true flags/filter=true -flags/mipmaps=false +flags/mipmaps=true flags/anisotropic=false -flags/srgb=2 +flags/srgb=1 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false @@ -31,5 +34,5 @@ process/invert_color=false process/normal_map_invert_y=false stream=false size_limit=0 -detect_3d=true +detect_3d=false svg/scale=1.0 diff --git a/assets/images/branding/icon_glow.png b/assets/images/branding/icon_glow.png new file mode 100644 index 00000000..1f0882c3 Binary files /dev/null and b/assets/images/branding/icon_glow.png differ diff --git a/assets/images/branding/icon_glow.png.import b/assets/images/branding/icon_glow.png.import new file mode 100644 index 00000000..92cbe100 --- /dev/null +++ b/assets/images/branding/icon_glow.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/icon_glow.png-687175a5ec6e4d83730911ebf311ef40.s3tc.stex" +path.etc2="res://.import/icon_glow.png-687175a5ec6e4d83730911ebf311ef40.etc2.stex" +path.etc="res://.import/icon_glow.png-687175a5ec6e4d83730911ebf311ef40.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/images/branding/icon_glow.png" +dest_files=[ "res://.import/icon_glow.png-687175a5ec6e4d83730911ebf311ef40.s3tc.stex", "res://.import/icon_glow.png-687175a5ec6e4d83730911ebf311ef40.etc2.stex", "res://.import/icon_glow.png-687175a5ec6e4d83730911ebf311ef40.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/images/branding/logo.png.import b/assets/images/branding/logo.png.import index 70120a85..40615148 100644 --- a/assets/images/branding/logo.png.import +++ b/assets/images/branding/logo.png.import @@ -2,28 +2,31 @@ importer="texture" type="StreamTexture" -path="res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.stex" +path.s3tc="res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.s3tc.stex" +path.etc2="res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.etc2.stex" +path.etc="res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.etc.stex" metadata={ -"vram_texture": false +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true } [deps] source_file="res://assets/images/branding/logo.png" -dest_files=[ "res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.stex" ] +dest_files=[ "res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.s3tc.stex", "res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.etc2.stex", "res://.import/logo.png-51e5047df242d51d76015b7ce520fd5b.etc.stex" ] [params] -compress/mode=0 +compress/mode=2 compress/lossy_quality=0.7 compress/hdr_mode=0 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 +flags/repeat=true flags/filter=true -flags/mipmaps=false +flags/mipmaps=true flags/anisotropic=false -flags/srgb=2 +flags/srgb=1 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false @@ -31,5 +34,5 @@ process/invert_color=false process/normal_map_invert_y=false stream=false size_limit=0 -detect_3d=true +detect_3d=false svg/scale=1.0 diff --git a/assets/images/devbg.png b/assets/images/devbg.png new file mode 100644 index 00000000..4974feaf Binary files /dev/null and b/assets/images/devbg.png differ diff --git a/assets/images/devbg.png.import b/assets/images/devbg.png.import new file mode 100644 index 00000000..9d4806e6 --- /dev/null +++ b/assets/images/devbg.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/devbg.png-d8b2b40ed647588cf99b30dcf0a7fd69.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/devbg.png" +dest_files=[ "res://.import/devbg.png-d8b2b40ed647588cf99b30dcf0a7fd69.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/bot.svg b/assets/images/menu3d/badges/bot.svg new file mode 100644 index 00000000..3a15b779 --- /dev/null +++ b/assets/images/menu3d/badges/bot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/bot.svg.import b/assets/images/menu3d/badges/bot.svg.import new file mode 100644 index 00000000..e3594862 --- /dev/null +++ b/assets/images/menu3d/badges/bot.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bot.svg-95b9d73e5ae7a57ac59c85ef06946871.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/bot.svg" +dest_files=[ "res://.import/bot.svg-95b9d73e5ae7a57ac59c85ef06946871.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/bughunter.svg b/assets/images/menu3d/badges/bughunter.svg new file mode 100644 index 00000000..69d45ef8 --- /dev/null +++ b/assets/images/menu3d/badges/bughunter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/bughunter.svg.import b/assets/images/menu3d/badges/bughunter.svg.import new file mode 100644 index 00000000..ab9594fb --- /dev/null +++ b/assets/images/menu3d/badges/bughunter.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bughunter.svg-7b43ec76145db137e0c47b3ae265e193.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/bughunter.svg" +dest_files=[ "res://.import/bughunter.svg-7b43ec76145db137e0c47b3ae265e193.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/cat.svg b/assets/images/menu3d/badges/cat.svg new file mode 100644 index 00000000..c742a8f2 --- /dev/null +++ b/assets/images/menu3d/badges/cat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/cat.svg.import b/assets/images/menu3d/badges/cat.svg.import new file mode 100644 index 00000000..d852bda6 --- /dev/null +++ b/assets/images/menu3d/badges/cat.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/cat.svg-22fdbda54b59981223ccc3b5d375a638.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/cat.svg" +dest_files=[ "res://.import/cat.svg-22fdbda54b59981223ccc3b5d375a638.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/contentcreator.svg b/assets/images/menu3d/badges/contentcreator.svg new file mode 100644 index 00000000..3a05f3cc --- /dev/null +++ b/assets/images/menu3d/badges/contentcreator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/contentcreator.svg.import b/assets/images/menu3d/badges/contentcreator.svg.import new file mode 100644 index 00000000..11a1e8c6 --- /dev/null +++ b/assets/images/menu3d/badges/contentcreator.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/contentcreator.svg-89024b128e553a074c5f86d0d6b0611a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/contentcreator.svg" +dest_files=[ "res://.import/contentcreator.svg-89024b128e553a074c5f86d0d6b0611a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/contestwinner.svg b/assets/images/menu3d/badges/contestwinner.svg new file mode 100644 index 00000000..c7770e07 --- /dev/null +++ b/assets/images/menu3d/badges/contestwinner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/contestwinner.svg.import b/assets/images/menu3d/badges/contestwinner.svg.import new file mode 100644 index 00000000..051a127e --- /dev/null +++ b/assets/images/menu3d/badges/contestwinner.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/contestwinner.svg-c6fbb13160c1be12cebb4060e763e366.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/contestwinner.svg" +dest_files=[ "res://.import/contestwinner.svg-c6fbb13160c1be12cebb4060e763e366.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/developer.svg b/assets/images/menu3d/badges/developer.svg new file mode 100644 index 00000000..d038d9b5 --- /dev/null +++ b/assets/images/menu3d/badges/developer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/developer.svg.import b/assets/images/menu3d/badges/developer.svg.import new file mode 100644 index 00000000..8d0e4d73 --- /dev/null +++ b/assets/images/menu3d/badges/developer.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/developer.svg-7489458574237ba3e77b571bda2ca81e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/developer.svg" +dest_files=[ "res://.import/developer.svg-7489458574237ba3e77b571bda2ca81e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/earlybird.svg b/assets/images/menu3d/badges/earlybird.svg new file mode 100644 index 00000000..1ac3f6c3 --- /dev/null +++ b/assets/images/menu3d/badges/earlybird.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/earlybird.svg.import b/assets/images/menu3d/badges/earlybird.svg.import new file mode 100644 index 00000000..3057bf73 --- /dev/null +++ b/assets/images/menu3d/badges/earlybird.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/earlybird.svg-54c09a23e09940ef048f94e7d70bb08a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/earlybird.svg" +dest_files=[ "res://.import/earlybird.svg-54c09a23e09940ef048f94e7d70bb08a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/map_legacy.svg b/assets/images/menu3d/badges/map_legacy.svg new file mode 100644 index 00000000..7dec7873 --- /dev/null +++ b/assets/images/menu3d/badges/map_legacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/map_legacy.svg.import b/assets/images/menu3d/badges/map_legacy.svg.import new file mode 100644 index 00000000..0b8bba54 --- /dev/null +++ b/assets/images/menu3d/badges/map_legacy.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/map_legacy.svg-f851470155a54941f3acf3bbcab4caad.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/map_legacy.svg" +dest_files=[ "res://.import/map_legacy.svg-f851470155a54941f3acf3bbcab4caad.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/map_offline.svg b/assets/images/menu3d/badges/map_offline.svg new file mode 100644 index 00000000..ebc3e3a0 --- /dev/null +++ b/assets/images/menu3d/badges/map_offline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/map_offline.svg.import b/assets/images/menu3d/badges/map_offline.svg.import new file mode 100644 index 00000000..03d7c76f --- /dev/null +++ b/assets/images/menu3d/badges/map_offline.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/map_offline.svg-286886aa5742710a72f9f42eaac456a5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/map_offline.svg" +dest_files=[ "res://.import/map_offline.svg-286886aa5742710a72f9f42eaac456a5.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/map_online.svg b/assets/images/menu3d/badges/map_online.svg new file mode 100644 index 00000000..b26419ce --- /dev/null +++ b/assets/images/menu3d/badges/map_online.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/map_online.svg.import b/assets/images/menu3d/badges/map_online.svg.import new file mode 100644 index 00000000..bb6895ac --- /dev/null +++ b/assets/images/menu3d/badges/map_online.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/map_online.svg-fa948c47a00ee9d091ef3a9acb779efc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/map_online.svg" +dest_files=[ "res://.import/map_online.svg-fa948c47a00ee9d091ef3a9acb779efc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/map_ranked.svg b/assets/images/menu3d/badges/map_ranked.svg new file mode 100644 index 00000000..f5d28095 --- /dev/null +++ b/assets/images/menu3d/badges/map_ranked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/map_ranked.svg.import b/assets/images/menu3d/badges/map_ranked.svg.import new file mode 100644 index 00000000..e2c66b6e --- /dev/null +++ b/assets/images/menu3d/badges/map_ranked.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/map_ranked.svg-3b32da5c482a15ac758ea6bfd3acb58d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/map_ranked.svg" +dest_files=[ "res://.import/map_ranked.svg-3b32da5c482a15ac758ea6bfd3acb58d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/map_review_pending.svg b/assets/images/menu3d/badges/map_review_pending.svg new file mode 100644 index 00000000..de0f810d --- /dev/null +++ b/assets/images/menu3d/badges/map_review_pending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/map_review_pending.svg.import b/assets/images/menu3d/badges/map_review_pending.svg.import new file mode 100644 index 00000000..d262cedf --- /dev/null +++ b/assets/images/menu3d/badges/map_review_pending.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/map_review_pending.svg-d821f8c8f83b78a3f79aea698148309b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/map_review_pending.svg" +dest_files=[ "res://.import/map_review_pending.svg-d821f8c8f83b78a3f79aea698148309b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/map_unranked.svg b/assets/images/menu3d/badges/map_unranked.svg new file mode 100644 index 00000000..1fdde770 --- /dev/null +++ b/assets/images/menu3d/badges/map_unranked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/map_unranked.svg.import b/assets/images/menu3d/badges/map_unranked.svg.import new file mode 100644 index 00000000..9ce7d281 --- /dev/null +++ b/assets/images/menu3d/badges/map_unranked.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/map_unranked.svg-4ca2bec1bd639ff8c8c2c05df7ffb44e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/map_unranked.svg" +dest_files=[ "res://.import/map_unranked.svg-4ca2bec1bd639ff8c8c2c05df7ffb44e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/map_wip.svg b/assets/images/menu3d/badges/map_wip.svg new file mode 100644 index 00000000..c2ad9483 --- /dev/null +++ b/assets/images/menu3d/badges/map_wip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/map_wip.svg.import b/assets/images/menu3d/badges/map_wip.svg.import new file mode 100644 index 00000000..aac5390a --- /dev/null +++ b/assets/images/menu3d/badges/map_wip.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/map_wip.svg-f1201042dd62dd5cebd012a26946a400.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/map_wip.svg" +dest_files=[ "res://.import/map_wip.svg-f1201042dd62dd5cebd012a26946a400.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/mmt.svg b/assets/images/menu3d/badges/mmt.svg new file mode 100644 index 00000000..0a17b52c --- /dev/null +++ b/assets/images/menu3d/badges/mmt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/mmt.svg.import b/assets/images/menu3d/badges/mmt.svg.import new file mode 100644 index 00000000..ffabb202 --- /dev/null +++ b/assets/images/menu3d/badges/mmt.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/mmt.svg-f659ef8598481f4d6ab1408724685f6d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/mmt.svg" +dest_files=[ "res://.import/mmt.svg-f659ef8598481f4d6ab1408724685f6d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/moderator.svg b/assets/images/menu3d/badges/moderator.svg new file mode 100644 index 00000000..793f7002 --- /dev/null +++ b/assets/images/menu3d/badges/moderator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/moderator.svg.import b/assets/images/menu3d/badges/moderator.svg.import new file mode 100644 index 00000000..885aae25 --- /dev/null +++ b/assets/images/menu3d/badges/moderator.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/moderator.svg-ac50c24c1ad4e51224df71385dd6664a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/moderator.svg" +dest_files=[ "res://.import/moderator.svg-ac50c24c1ad4e51224df71385dd6664a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/rct.svg b/assets/images/menu3d/badges/rct.svg new file mode 100644 index 00000000..8d33fbb0 --- /dev/null +++ b/assets/images/menu3d/badges/rct.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/rct.svg.import b/assets/images/menu3d/badges/rct.svg.import new file mode 100644 index 00000000..53515ab1 --- /dev/null +++ b/assets/images/menu3d/badges/rct.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/rct.svg-a68ee6d21616f711e9cadda76749fed6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/rct.svg" +dest_files=[ "res://.import/rct.svg-a68ee6d21616f711e9cadda76749fed6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/silenced.svg b/assets/images/menu3d/badges/silenced.svg new file mode 100644 index 00000000..de86c627 --- /dev/null +++ b/assets/images/menu3d/badges/silenced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/silenced.svg.import b/assets/images/menu3d/badges/silenced.svg.import new file mode 100644 index 00000000..a46f213e --- /dev/null +++ b/assets/images/menu3d/badges/silenced.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/silenced.svg-7be15cdee264af184fe27076a5d26825.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/silenced.svg" +dest_files=[ "res://.import/silenced.svg-7be15cdee264af184fe27076a5d26825.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/supporter.svg b/assets/images/menu3d/badges/supporter.svg new file mode 100644 index 00000000..d92c51a8 --- /dev/null +++ b/assets/images/menu3d/badges/supporter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/supporter.svg.import b/assets/images/menu3d/badges/supporter.svg.import new file mode 100644 index 00000000..32291e38 --- /dev/null +++ b/assets/images/menu3d/badges/supporter.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/supporter.svg-6f7f47353d0b2129d9d545af950e68bc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/supporter.svg" +dest_files=[ "res://.import/supporter.svg-6f7f47353d0b2129d9d545af950e68bc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/tester.svg b/assets/images/menu3d/badges/tester.svg new file mode 100644 index 00000000..b32d027c --- /dev/null +++ b/assets/images/menu3d/badges/tester.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/tester.svg.import b/assets/images/menu3d/badges/tester.svg.import new file mode 100644 index 00000000..ecb6081e --- /dev/null +++ b/assets/images/menu3d/badges/tester.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/tester.svg-87392929331ce95f45e14a546a54caf7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/tester.svg" +dest_files=[ "res://.import/tester.svg-87392929331ce95f45e14a546a54caf7.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/badges/top50.svg b/assets/images/menu3d/badges/top50.svg new file mode 100644 index 00000000..3197d50a --- /dev/null +++ b/assets/images/menu3d/badges/top50.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/badges/top50.svg.import b/assets/images/menu3d/badges/top50.svg.import new file mode 100644 index 00000000..d0738b78 --- /dev/null +++ b/assets/images/menu3d/badges/top50.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/top50.svg-99a9a6b8ff9d044b63cedf7bde79af0a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/badges/top50.svg" +dest_files=[ "res://.import/top50.svg-99a9a6b8ff9d044b63cedf7bde79af0a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/bgtile.svg b/assets/images/menu3d/bgtile.svg new file mode 100644 index 00000000..f0afb1fe --- /dev/null +++ b/assets/images/menu3d/bgtile.svg @@ -0,0 +1,114 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/assets/images/menu3d/bgtile.svg.import b/assets/images/menu3d/bgtile.svg.import new file mode 100644 index 00000000..5fa575ff --- /dev/null +++ b/assets/images/menu3d/bgtile.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/bgtile.svg-9642330d3ac688ef4d0f013249a85348.s3tc.stex" +path.etc2="res://.import/bgtile.svg-9642330d3ac688ef4d0f013249a85348.etc2.stex" +path.etc="res://.import/bgtile.svg-9642330d3ac688ef4d0f013249a85348.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/images/menu3d/bgtile.svg" +dest_files=[ "res://.import/bgtile.svg-9642330d3ac688ef4d0f013249a85348.s3tc.stex", "res://.import/bgtile.svg-9642330d3ac688ef4d0f013249a85348.etc2.stex", "res://.import/bgtile.svg-9642330d3ac688ef4d0f013249a85348.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/images/menu3d/bgtile_b.png b/assets/images/menu3d/bgtile_b.png new file mode 100644 index 00000000..64dc12db Binary files /dev/null and b/assets/images/menu3d/bgtile_b.png differ diff --git a/assets/images/menu3d/bgtile_b.png.import b/assets/images/menu3d/bgtile_b.png.import new file mode 100644 index 00000000..e69c31e5 --- /dev/null +++ b/assets/images/menu3d/bgtile_b.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/bgtile_b.png-d08429989f1fe15cf447748ae543045f.s3tc.stex" +path.etc2="res://.import/bgtile_b.png-d08429989f1fe15cf447748ae543045f.etc2.stex" +path.etc="res://.import/bgtile_b.png-d08429989f1fe15cf447748ae543045f.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/images/menu3d/bgtile_b.png" +dest_files=[ "res://.import/bgtile_b.png-d08429989f1fe15cf447748ae543045f.s3tc.stex", "res://.import/bgtile_b.png-d08429989f1fe15cf447748ae543045f.etc2.stex", "res://.import/bgtile_b.png-d08429989f1fe15cf447748ae543045f.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=2 +flags/repeat=1 +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/images/menu3d/bgtile_b.svg b/assets/images/menu3d/bgtile_b.svg new file mode 100644 index 00000000..b28cf3bf --- /dev/null +++ b/assets/images/menu3d/bgtile_b.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/assets/images/menu3d/bgtile_b.svg.import b/assets/images/menu3d/bgtile_b.svg.import new file mode 100644 index 00000000..e820aa35 --- /dev/null +++ b/assets/images/menu3d/bgtile_b.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/bgtile_b.svg-cdda2294c7b84d76faa31721f7ba2b42.s3tc.stex" +path.etc2="res://.import/bgtile_b.svg-cdda2294c7b84d76faa31721f7ba2b42.etc2.stex" +path.etc="res://.import/bgtile_b.svg-cdda2294c7b84d76faa31721f7ba2b42.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/images/menu3d/bgtile_b.svg" +dest_files=[ "res://.import/bgtile_b.svg-cdda2294c7b84d76faa31721f7ba2b42.s3tc.stex", "res://.import/bgtile_b.svg-cdda2294c7b84d76faa31721f7ba2b42.etc2.stex", "res://.import/bgtile_b.svg-cdda2294c7b84d76faa31721f7ba2b42.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/account.svg b/assets/images/menu3d/icons/account.svg new file mode 100644 index 00000000..76710665 --- /dev/null +++ b/assets/images/menu3d/icons/account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/account.svg.import b/assets/images/menu3d/icons/account.svg.import new file mode 100644 index 00000000..e7d66b14 --- /dev/null +++ b/assets/images/menu3d/icons/account.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/account.svg-3c52112a196c970a6d0299b01ce2d424.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/account.svg" +dest_files=[ "res://.import/account.svg-3c52112a196c970a6d0299b01ce2d424.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/account_signedout.svg b/assets/images/menu3d/icons/account_signedout.svg new file mode 100644 index 00000000..e6ae8d89 --- /dev/null +++ b/assets/images/menu3d/icons/account_signedout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/account_signedout.svg.import b/assets/images/menu3d/icons/account_signedout.svg.import new file mode 100644 index 00000000..dcfa22c5 --- /dev/null +++ b/assets/images/menu3d/icons/account_signedout.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/account_signedout.svg-6f406cb891f58bcf33dbd2c16924daee.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/account_signedout.svg" +dest_files=[ "res://.import/account_signedout.svg-6f406cb891f58bcf33dbd2c16924daee.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/advanced.svg b/assets/images/menu3d/icons/advanced.svg new file mode 100644 index 00000000..7794db7e --- /dev/null +++ b/assets/images/menu3d/icons/advanced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/advanced.svg.import b/assets/images/menu3d/icons/advanced.svg.import new file mode 100644 index 00000000..c797ebc3 --- /dev/null +++ b/assets/images/menu3d/icons/advanced.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/advanced.svg-0152e6c9fd776c1dbfd58bb4a83d7af9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/advanced.svg" +dest_files=[ "res://.import/advanced.svg-0152e6c9fd776c1dbfd58bb4a83d7af9.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/maintenance.svg b/assets/images/menu3d/icons/maintenance.svg new file mode 100644 index 00000000..f79d4b1c --- /dev/null +++ b/assets/images/menu3d/icons/maintenance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/maintenance.svg.import b/assets/images/menu3d/icons/maintenance.svg.import new file mode 100644 index 00000000..1a8a8fb2 --- /dev/null +++ b/assets/images/menu3d/icons/maintenance.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/maintenance.svg-d7fca4f3c981ec7e089801427cc303ce.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/maintenance.svg" +dest_files=[ "res://.import/maintenance.svg-d7fca4f3c981ec7e089801427cc303ce.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/mapbrowser.svg b/assets/images/menu3d/icons/mapbrowser.svg new file mode 100644 index 00000000..8aae2292 --- /dev/null +++ b/assets/images/menu3d/icons/mapbrowser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/mapbrowser.svg.import b/assets/images/menu3d/icons/mapbrowser.svg.import new file mode 100644 index 00000000..11fd3411 --- /dev/null +++ b/assets/images/menu3d/icons/mapbrowser.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/mapbrowser.svg-1a97ab791aafeb6d2fe159bbfcd468ae.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/mapbrowser.svg" +dest_files=[ "res://.import/mapbrowser.svg-1a97ab791aafeb6d2fe159bbfcd468ae.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/online.svg b/assets/images/menu3d/icons/online.svg new file mode 100644 index 00000000..c7dd33a4 --- /dev/null +++ b/assets/images/menu3d/icons/online.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/online.svg.import b/assets/images/menu3d/icons/online.svg.import new file mode 100644 index 00000000..decefaaa --- /dev/null +++ b/assets/images/menu3d/icons/online.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/online.svg-b44215a388d863d4cf56c9736c98474b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/online.svg" +dest_files=[ "res://.import/online.svg-b44215a388d863d4cf56c9736c98474b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/online_no.svg b/assets/images/menu3d/icons/online_no.svg new file mode 100644 index 00000000..d77e33c7 --- /dev/null +++ b/assets/images/menu3d/icons/online_no.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/online_no.svg.import b/assets/images/menu3d/icons/online_no.svg.import new file mode 100644 index 00000000..d127c348 --- /dev/null +++ b/assets/images/menu3d/icons/online_no.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/online_no.svg-636634f13b95d22ef6560c58471d8e78.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/online_no.svg" +dest_files=[ "res://.import/online_no.svg-636634f13b95d22ef6560c58471d8e78.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/prohibit.svg b/assets/images/menu3d/icons/prohibit.svg new file mode 100644 index 00000000..b544dd9d --- /dev/null +++ b/assets/images/menu3d/icons/prohibit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/prohibit.svg.import b/assets/images/menu3d/icons/prohibit.svg.import new file mode 100644 index 00000000..924cbc76 --- /dev/null +++ b/assets/images/menu3d/icons/prohibit.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/prohibit.svg-3e3999183801678cc63da8b4d86ee119.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/prohibit.svg" +dest_files=[ "res://.import/prohibit.svg-3e3999183801678cc63da8b4d86ee119.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/images/menu3d/icons/sword.svg b/assets/images/menu3d/icons/sword.svg new file mode 100644 index 00000000..21d79e7d --- /dev/null +++ b/assets/images/menu3d/icons/sword.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/menu3d/icons/sword.svg.import b/assets/images/menu3d/icons/sword.svg.import new file mode 100644 index 00000000..474e2031 --- /dev/null +++ b/assets/images/menu3d/icons/sword.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/sword.svg-bd8f4d59ce659058cda4327fe80f6e06.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/menu3d/icons/sword.svg" +dest_files=[ "res://.import/sword.svg-bd8f4d59ce659058cda4327fe80f6e06.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion.gd b/assets/notefx/explosion/explosion.gd new file mode 100644 index 00000000..a90989b3 --- /dev/null +++ b/assets/notefx/explosion/explosion.gd @@ -0,0 +1,29 @@ +extends Spatial + +var active:bool = false +var menu:bool = false + +func _process(delta): + if active: + if $Particles.emitting == false: + active = false + queue_free() + return + +func spawn_menu(parent:Node,col:Color,transform:Transform): + menu = true +# setup("ssp_explosion",false) + global_transform = transform + spawn(parent,transform.origin,col,"ssp_explosion",false) + +func spawn(parent:Node,pos:Vector3,col:Color,id:String,miss:bool): + transform.origin = pos + parent.add_child(self) + visible = true + $Particles.emitting = true + active = true + +func setup(id:String,miss:bool): + if id == "ssp_explosion_t": + $Particles.material_override = $Particles.material_override.duplicate() + $Particles.material_override.albedo_color = Color(1.0,1.0,1.0,0.3) diff --git a/assets/notefx/explosion/explosion.tres b/assets/notefx/explosion/explosion.tres new file mode 100644 index 00000000..49eb2497 --- /dev/null +++ b/assets/notefx/explosion/explosion.tres @@ -0,0 +1,57 @@ +[gd_resource type="AnimatedTexture" load_steps=18 format=2] + +[ext_resource path="res://assets/notefx/explosion/explosion01.png" type="Texture" id=1] +[ext_resource path="res://assets/notefx/explosion/explosion02.png" type="Texture" id=2] +[ext_resource path="res://assets/notefx/explosion/explosion06.png" type="Texture" id=3] +[ext_resource path="res://assets/notefx/explosion/explosion03.png" type="Texture" id=4] +[ext_resource path="res://assets/notefx/explosion/explosion07.png" type="Texture" id=5] +[ext_resource path="res://assets/notefx/explosion/explosion04.png" type="Texture" id=6] +[ext_resource path="res://assets/notefx/explosion/explosion05.png" type="Texture" id=7] +[ext_resource path="res://assets/notefx/explosion/explosion11.png" type="Texture" id=8] +[ext_resource path="res://assets/notefx/explosion/explosion10.png" type="Texture" id=9] +[ext_resource path="res://assets/notefx/explosion/explosion09.png" type="Texture" id=10] +[ext_resource path="res://assets/notefx/explosion/explosion14.png" type="Texture" id=11] +[ext_resource path="res://assets/notefx/explosion/explosion08.png" type="Texture" id=12] +[ext_resource path="res://assets/notefx/explosion/explosion15.png" type="Texture" id=13] +[ext_resource path="res://assets/notefx/explosion/explosion17.png" type="Texture" id=14] +[ext_resource path="res://assets/notefx/explosion/explosion12.png" type="Texture" id=15] +[ext_resource path="res://assets/notefx/explosion/explosion13.png" type="Texture" id=16] +[ext_resource path="res://assets/notefx/explosion/explosion16.png" type="Texture" id=17] + +[resource] +flags = 23 +frames = 17 +fps = 10.0 +frame_0/texture = ExtResource( 1 ) +frame_1/texture = ExtResource( 2 ) +frame_1/delay_sec = 0.0 +frame_2/texture = ExtResource( 4 ) +frame_2/delay_sec = 0.0 +frame_3/texture = ExtResource( 6 ) +frame_3/delay_sec = 0.0 +frame_4/texture = ExtResource( 7 ) +frame_4/delay_sec = 0.0 +frame_5/texture = ExtResource( 3 ) +frame_5/delay_sec = 0.0 +frame_6/texture = ExtResource( 5 ) +frame_6/delay_sec = 0.0 +frame_7/texture = ExtResource( 12 ) +frame_7/delay_sec = 0.0 +frame_8/texture = ExtResource( 10 ) +frame_8/delay_sec = 0.0 +frame_9/texture = ExtResource( 9 ) +frame_9/delay_sec = 0.0 +frame_10/texture = ExtResource( 8 ) +frame_10/delay_sec = 0.0 +frame_11/texture = ExtResource( 15 ) +frame_11/delay_sec = 0.0 +frame_12/texture = ExtResource( 16 ) +frame_12/delay_sec = 0.0 +frame_13/texture = ExtResource( 11 ) +frame_13/delay_sec = 0.0 +frame_14/texture = ExtResource( 13 ) +frame_14/delay_sec = 0.0 +frame_15/texture = ExtResource( 17 ) +frame_15/delay_sec = 0.0 +frame_16/texture = ExtResource( 14 ) +frame_16/delay_sec = 0.0 diff --git a/assets/notefx/explosion/explosion.tscn b/assets/notefx/explosion/explosion.tscn new file mode 100644 index 00000000..46e7afab --- /dev/null +++ b/assets/notefx/explosion/explosion.tscn @@ -0,0 +1,42 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://assets/notefx/explosion/explosion.gd" type="Script" id=1] +[ext_resource path="res://assets/notefx/explosion/explosion_spritesheet.png" type="Texture" id=2] + +[sub_resource type="SpatialMaterial" id=8] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +vertex_color_is_srgb = true +params_billboard_mode = 3 +particles_anim_h_frames = 5 +particles_anim_v_frames = 4 +particles_anim_loop = true +albedo_texture = ExtResource( 2 ) + +[sub_resource type="Curve" id=6] +max_value = 0.72 +_data = [ Vector2( 0, 0.36 ), 0.0, 0.401025, 0, 0, Vector2( 1, 0.72 ), 0.349364, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=7] +curve = SubResource( 6 ) + +[sub_resource type="ParticlesMaterial" id=9] +gravity = Vector3( 0, 0, 0 ) +scale_curve = SubResource( 7 ) +anim_speed = 0.9 +anim_offset = 0.1 + +[sub_resource type="QuadMesh" id=10] +size = Vector2( 2, 2 ) + +[node name="Effect" type="Spatial"] +script = ExtResource( 1 ) + +[node name="Particles" type="Particles" parent="."] +material_override = SubResource( 8 ) +emitting = false +amount = 1 +one_shot = true +process_material = SubResource( 9 ) +draw_pass_1 = SubResource( 10 ) diff --git a/assets/notefx/explosion/explosion01.png b/assets/notefx/explosion/explosion01.png new file mode 100644 index 00000000..4e640cb1 Binary files /dev/null and b/assets/notefx/explosion/explosion01.png differ diff --git a/assets/notefx/explosion/explosion01.png.import b/assets/notefx/explosion/explosion01.png.import new file mode 100644 index 00000000..ae3f2437 --- /dev/null +++ b/assets/notefx/explosion/explosion01.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion01.png-b1166232b4ef701a12ef41ea98fa2a50.s3tc.stex" +path.etc2="res://.import/explosion01.png-b1166232b4ef701a12ef41ea98fa2a50.etc2.stex" +path.etc="res://.import/explosion01.png-b1166232b4ef701a12ef41ea98fa2a50.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion01.png" +dest_files=[ "res://.import/explosion01.png-b1166232b4ef701a12ef41ea98fa2a50.s3tc.stex", "res://.import/explosion01.png-b1166232b4ef701a12ef41ea98fa2a50.etc2.stex", "res://.import/explosion01.png-b1166232b4ef701a12ef41ea98fa2a50.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion02.png b/assets/notefx/explosion/explosion02.png new file mode 100644 index 00000000..56173999 Binary files /dev/null and b/assets/notefx/explosion/explosion02.png differ diff --git a/assets/notefx/explosion/explosion02.png.import b/assets/notefx/explosion/explosion02.png.import new file mode 100644 index 00000000..77c7e64c --- /dev/null +++ b/assets/notefx/explosion/explosion02.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion02.png-085138e319b071d14fa84e5cfc4d0c97.s3tc.stex" +path.etc2="res://.import/explosion02.png-085138e319b071d14fa84e5cfc4d0c97.etc2.stex" +path.etc="res://.import/explosion02.png-085138e319b071d14fa84e5cfc4d0c97.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion02.png" +dest_files=[ "res://.import/explosion02.png-085138e319b071d14fa84e5cfc4d0c97.s3tc.stex", "res://.import/explosion02.png-085138e319b071d14fa84e5cfc4d0c97.etc2.stex", "res://.import/explosion02.png-085138e319b071d14fa84e5cfc4d0c97.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion03.png b/assets/notefx/explosion/explosion03.png new file mode 100644 index 00000000..e0b7ac94 Binary files /dev/null and b/assets/notefx/explosion/explosion03.png differ diff --git a/assets/notefx/explosion/explosion03.png.import b/assets/notefx/explosion/explosion03.png.import new file mode 100644 index 00000000..7147a2f0 --- /dev/null +++ b/assets/notefx/explosion/explosion03.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion03.png-7a5e1d674a29455f5b7d08287d60dd17.s3tc.stex" +path.etc2="res://.import/explosion03.png-7a5e1d674a29455f5b7d08287d60dd17.etc2.stex" +path.etc="res://.import/explosion03.png-7a5e1d674a29455f5b7d08287d60dd17.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion03.png" +dest_files=[ "res://.import/explosion03.png-7a5e1d674a29455f5b7d08287d60dd17.s3tc.stex", "res://.import/explosion03.png-7a5e1d674a29455f5b7d08287d60dd17.etc2.stex", "res://.import/explosion03.png-7a5e1d674a29455f5b7d08287d60dd17.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion04.png b/assets/notefx/explosion/explosion04.png new file mode 100644 index 00000000..cfc3437d Binary files /dev/null and b/assets/notefx/explosion/explosion04.png differ diff --git a/assets/notefx/explosion/explosion04.png.import b/assets/notefx/explosion/explosion04.png.import new file mode 100644 index 00000000..4d77eab7 --- /dev/null +++ b/assets/notefx/explosion/explosion04.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion04.png-6c0867bdfb7bf6a0cc1d980fdb592de6.s3tc.stex" +path.etc2="res://.import/explosion04.png-6c0867bdfb7bf6a0cc1d980fdb592de6.etc2.stex" +path.etc="res://.import/explosion04.png-6c0867bdfb7bf6a0cc1d980fdb592de6.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion04.png" +dest_files=[ "res://.import/explosion04.png-6c0867bdfb7bf6a0cc1d980fdb592de6.s3tc.stex", "res://.import/explosion04.png-6c0867bdfb7bf6a0cc1d980fdb592de6.etc2.stex", "res://.import/explosion04.png-6c0867bdfb7bf6a0cc1d980fdb592de6.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion05.png b/assets/notefx/explosion/explosion05.png new file mode 100644 index 00000000..82aeb5cc Binary files /dev/null and b/assets/notefx/explosion/explosion05.png differ diff --git a/assets/notefx/explosion/explosion05.png.import b/assets/notefx/explosion/explosion05.png.import new file mode 100644 index 00000000..25c8c0d7 --- /dev/null +++ b/assets/notefx/explosion/explosion05.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion05.png-a34107206ddecf3f24b307cabdfe8743.s3tc.stex" +path.etc2="res://.import/explosion05.png-a34107206ddecf3f24b307cabdfe8743.etc2.stex" +path.etc="res://.import/explosion05.png-a34107206ddecf3f24b307cabdfe8743.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion05.png" +dest_files=[ "res://.import/explosion05.png-a34107206ddecf3f24b307cabdfe8743.s3tc.stex", "res://.import/explosion05.png-a34107206ddecf3f24b307cabdfe8743.etc2.stex", "res://.import/explosion05.png-a34107206ddecf3f24b307cabdfe8743.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion06.png b/assets/notefx/explosion/explosion06.png new file mode 100644 index 00000000..ff38a590 Binary files /dev/null and b/assets/notefx/explosion/explosion06.png differ diff --git a/assets/notefx/explosion/explosion06.png.import b/assets/notefx/explosion/explosion06.png.import new file mode 100644 index 00000000..684c6b0b --- /dev/null +++ b/assets/notefx/explosion/explosion06.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion06.png-19c90fef4c58bd0b35479e9296d5aaba.s3tc.stex" +path.etc2="res://.import/explosion06.png-19c90fef4c58bd0b35479e9296d5aaba.etc2.stex" +path.etc="res://.import/explosion06.png-19c90fef4c58bd0b35479e9296d5aaba.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion06.png" +dest_files=[ "res://.import/explosion06.png-19c90fef4c58bd0b35479e9296d5aaba.s3tc.stex", "res://.import/explosion06.png-19c90fef4c58bd0b35479e9296d5aaba.etc2.stex", "res://.import/explosion06.png-19c90fef4c58bd0b35479e9296d5aaba.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion07.png b/assets/notefx/explosion/explosion07.png new file mode 100644 index 00000000..61afc4c0 Binary files /dev/null and b/assets/notefx/explosion/explosion07.png differ diff --git a/assets/notefx/explosion/explosion07.png.import b/assets/notefx/explosion/explosion07.png.import new file mode 100644 index 00000000..20b92cd7 --- /dev/null +++ b/assets/notefx/explosion/explosion07.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion07.png-a9804825e6ce00c62974afe92d909ed7.s3tc.stex" +path.etc2="res://.import/explosion07.png-a9804825e6ce00c62974afe92d909ed7.etc2.stex" +path.etc="res://.import/explosion07.png-a9804825e6ce00c62974afe92d909ed7.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion07.png" +dest_files=[ "res://.import/explosion07.png-a9804825e6ce00c62974afe92d909ed7.s3tc.stex", "res://.import/explosion07.png-a9804825e6ce00c62974afe92d909ed7.etc2.stex", "res://.import/explosion07.png-a9804825e6ce00c62974afe92d909ed7.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion08.png b/assets/notefx/explosion/explosion08.png new file mode 100644 index 00000000..d76b6768 Binary files /dev/null and b/assets/notefx/explosion/explosion08.png differ diff --git a/assets/notefx/explosion/explosion08.png.import b/assets/notefx/explosion/explosion08.png.import new file mode 100644 index 00000000..1942a247 --- /dev/null +++ b/assets/notefx/explosion/explosion08.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion08.png-79cb959d2f1b10abf4e49ef5fb863d49.s3tc.stex" +path.etc2="res://.import/explosion08.png-79cb959d2f1b10abf4e49ef5fb863d49.etc2.stex" +path.etc="res://.import/explosion08.png-79cb959d2f1b10abf4e49ef5fb863d49.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion08.png" +dest_files=[ "res://.import/explosion08.png-79cb959d2f1b10abf4e49ef5fb863d49.s3tc.stex", "res://.import/explosion08.png-79cb959d2f1b10abf4e49ef5fb863d49.etc2.stex", "res://.import/explosion08.png-79cb959d2f1b10abf4e49ef5fb863d49.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion09.png b/assets/notefx/explosion/explosion09.png new file mode 100644 index 00000000..79393bd6 Binary files /dev/null and b/assets/notefx/explosion/explosion09.png differ diff --git a/assets/notefx/explosion/explosion09.png.import b/assets/notefx/explosion/explosion09.png.import new file mode 100644 index 00000000..f9828cbe --- /dev/null +++ b/assets/notefx/explosion/explosion09.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion09.png-a9fe415af1f8998464461f4db718e221.s3tc.stex" +path.etc2="res://.import/explosion09.png-a9fe415af1f8998464461f4db718e221.etc2.stex" +path.etc="res://.import/explosion09.png-a9fe415af1f8998464461f4db718e221.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion09.png" +dest_files=[ "res://.import/explosion09.png-a9fe415af1f8998464461f4db718e221.s3tc.stex", "res://.import/explosion09.png-a9fe415af1f8998464461f4db718e221.etc2.stex", "res://.import/explosion09.png-a9fe415af1f8998464461f4db718e221.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion10.png b/assets/notefx/explosion/explosion10.png new file mode 100644 index 00000000..2346b6af Binary files /dev/null and b/assets/notefx/explosion/explosion10.png differ diff --git a/assets/notefx/explosion/explosion10.png.import b/assets/notefx/explosion/explosion10.png.import new file mode 100644 index 00000000..7c979316 --- /dev/null +++ b/assets/notefx/explosion/explosion10.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion10.png-f47a456f7ee8455e9b310300feecb646.s3tc.stex" +path.etc2="res://.import/explosion10.png-f47a456f7ee8455e9b310300feecb646.etc2.stex" +path.etc="res://.import/explosion10.png-f47a456f7ee8455e9b310300feecb646.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion10.png" +dest_files=[ "res://.import/explosion10.png-f47a456f7ee8455e9b310300feecb646.s3tc.stex", "res://.import/explosion10.png-f47a456f7ee8455e9b310300feecb646.etc2.stex", "res://.import/explosion10.png-f47a456f7ee8455e9b310300feecb646.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion11.png b/assets/notefx/explosion/explosion11.png new file mode 100644 index 00000000..3dd47e62 Binary files /dev/null and b/assets/notefx/explosion/explosion11.png differ diff --git a/assets/notefx/explosion/explosion11.png.import b/assets/notefx/explosion/explosion11.png.import new file mode 100644 index 00000000..506aa6de --- /dev/null +++ b/assets/notefx/explosion/explosion11.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion11.png-68fdf550db66b793b83ea5ba769f404c.s3tc.stex" +path.etc2="res://.import/explosion11.png-68fdf550db66b793b83ea5ba769f404c.etc2.stex" +path.etc="res://.import/explosion11.png-68fdf550db66b793b83ea5ba769f404c.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion11.png" +dest_files=[ "res://.import/explosion11.png-68fdf550db66b793b83ea5ba769f404c.s3tc.stex", "res://.import/explosion11.png-68fdf550db66b793b83ea5ba769f404c.etc2.stex", "res://.import/explosion11.png-68fdf550db66b793b83ea5ba769f404c.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion12.png b/assets/notefx/explosion/explosion12.png new file mode 100644 index 00000000..d594510b Binary files /dev/null and b/assets/notefx/explosion/explosion12.png differ diff --git a/assets/notefx/explosion/explosion12.png.import b/assets/notefx/explosion/explosion12.png.import new file mode 100644 index 00000000..18045d73 --- /dev/null +++ b/assets/notefx/explosion/explosion12.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion12.png-d708df8ebc86ad52ce260f7ab907320b.s3tc.stex" +path.etc2="res://.import/explosion12.png-d708df8ebc86ad52ce260f7ab907320b.etc2.stex" +path.etc="res://.import/explosion12.png-d708df8ebc86ad52ce260f7ab907320b.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion12.png" +dest_files=[ "res://.import/explosion12.png-d708df8ebc86ad52ce260f7ab907320b.s3tc.stex", "res://.import/explosion12.png-d708df8ebc86ad52ce260f7ab907320b.etc2.stex", "res://.import/explosion12.png-d708df8ebc86ad52ce260f7ab907320b.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion13.png b/assets/notefx/explosion/explosion13.png new file mode 100644 index 00000000..5de821a9 Binary files /dev/null and b/assets/notefx/explosion/explosion13.png differ diff --git a/assets/notefx/explosion/explosion13.png.import b/assets/notefx/explosion/explosion13.png.import new file mode 100644 index 00000000..3ae15b38 --- /dev/null +++ b/assets/notefx/explosion/explosion13.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion13.png-82c74adade711603e0ea658368c541d3.s3tc.stex" +path.etc2="res://.import/explosion13.png-82c74adade711603e0ea658368c541d3.etc2.stex" +path.etc="res://.import/explosion13.png-82c74adade711603e0ea658368c541d3.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion13.png" +dest_files=[ "res://.import/explosion13.png-82c74adade711603e0ea658368c541d3.s3tc.stex", "res://.import/explosion13.png-82c74adade711603e0ea658368c541d3.etc2.stex", "res://.import/explosion13.png-82c74adade711603e0ea658368c541d3.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion14.png b/assets/notefx/explosion/explosion14.png new file mode 100644 index 00000000..c2df658a Binary files /dev/null and b/assets/notefx/explosion/explosion14.png differ diff --git a/assets/notefx/explosion/explosion14.png.import b/assets/notefx/explosion/explosion14.png.import new file mode 100644 index 00000000..29c3a9b6 --- /dev/null +++ b/assets/notefx/explosion/explosion14.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion14.png-84254093b517b8c47981586e6c98a373.s3tc.stex" +path.etc2="res://.import/explosion14.png-84254093b517b8c47981586e6c98a373.etc2.stex" +path.etc="res://.import/explosion14.png-84254093b517b8c47981586e6c98a373.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion14.png" +dest_files=[ "res://.import/explosion14.png-84254093b517b8c47981586e6c98a373.s3tc.stex", "res://.import/explosion14.png-84254093b517b8c47981586e6c98a373.etc2.stex", "res://.import/explosion14.png-84254093b517b8c47981586e6c98a373.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion15.png b/assets/notefx/explosion/explosion15.png new file mode 100644 index 00000000..0a1133db Binary files /dev/null and b/assets/notefx/explosion/explosion15.png differ diff --git a/assets/notefx/explosion/explosion15.png.import b/assets/notefx/explosion/explosion15.png.import new file mode 100644 index 00000000..8d80889a --- /dev/null +++ b/assets/notefx/explosion/explosion15.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion15.png-ff4a756d0aa919643a602010227a61db.s3tc.stex" +path.etc2="res://.import/explosion15.png-ff4a756d0aa919643a602010227a61db.etc2.stex" +path.etc="res://.import/explosion15.png-ff4a756d0aa919643a602010227a61db.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion15.png" +dest_files=[ "res://.import/explosion15.png-ff4a756d0aa919643a602010227a61db.s3tc.stex", "res://.import/explosion15.png-ff4a756d0aa919643a602010227a61db.etc2.stex", "res://.import/explosion15.png-ff4a756d0aa919643a602010227a61db.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion16.png b/assets/notefx/explosion/explosion16.png new file mode 100644 index 00000000..ae6114b2 Binary files /dev/null and b/assets/notefx/explosion/explosion16.png differ diff --git a/assets/notefx/explosion/explosion16.png.import b/assets/notefx/explosion/explosion16.png.import new file mode 100644 index 00000000..a0700a0a --- /dev/null +++ b/assets/notefx/explosion/explosion16.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion16.png-d45c525823accc891d7aefd0b363ecd4.s3tc.stex" +path.etc2="res://.import/explosion16.png-d45c525823accc891d7aefd0b363ecd4.etc2.stex" +path.etc="res://.import/explosion16.png-d45c525823accc891d7aefd0b363ecd4.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion16.png" +dest_files=[ "res://.import/explosion16.png-d45c525823accc891d7aefd0b363ecd4.s3tc.stex", "res://.import/explosion16.png-d45c525823accc891d7aefd0b363ecd4.etc2.stex", "res://.import/explosion16.png-d45c525823accc891d7aefd0b363ecd4.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion17.png b/assets/notefx/explosion/explosion17.png new file mode 100644 index 00000000..87784807 Binary files /dev/null and b/assets/notefx/explosion/explosion17.png differ diff --git a/assets/notefx/explosion/explosion17.png.import b/assets/notefx/explosion/explosion17.png.import new file mode 100644 index 00000000..8d07b262 --- /dev/null +++ b/assets/notefx/explosion/explosion17.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion17.png-176649932a09eb48b6cf5aa4cb860864.s3tc.stex" +path.etc2="res://.import/explosion17.png-176649932a09eb48b6cf5aa4cb860864.etc2.stex" +path.etc="res://.import/explosion17.png-176649932a09eb48b6cf5aa4cb860864.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion17.png" +dest_files=[ "res://.import/explosion17.png-176649932a09eb48b6cf5aa4cb860864.s3tc.stex", "res://.import/explosion17.png-176649932a09eb48b6cf5aa4cb860864.etc2.stex", "res://.import/explosion17.png-176649932a09eb48b6cf5aa4cb860864.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/explosion/explosion_spritesheet.png b/assets/notefx/explosion/explosion_spritesheet.png new file mode 100644 index 00000000..aaa5d826 Binary files /dev/null and b/assets/notefx/explosion/explosion_spritesheet.png differ diff --git a/assets/notefx/explosion/explosion_spritesheet.png.import b/assets/notefx/explosion/explosion_spritesheet.png.import new file mode 100644 index 00000000..f15535a3 --- /dev/null +++ b/assets/notefx/explosion/explosion_spritesheet.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/explosion_spritesheet.png-e95b65646b81c8c7debc4f3944d2799e.s3tc.stex" +path.etc2="res://.import/explosion_spritesheet.png-e95b65646b81c8c7debc4f3944d2799e.etc2.stex" +path.etc="res://.import/explosion_spritesheet.png-e95b65646b81c8c7debc4f3944d2799e.etc.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2", "etc" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/notefx/explosion/explosion_spritesheet.png" +dest_files=[ "res://.import/explosion_spritesheet.png-e95b65646b81c8c7debc4f3944d2799e.s3tc.stex", "res://.import/explosion_spritesheet.png-e95b65646b81c8c7debc4f3944d2799e.etc2.stex", "res://.import/explosion_spritesheet.png-e95b65646b81c8c7debc4f3944d2799e.etc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/notefx/ripple/ripple.tscn b/assets/notefx/ripple/ripple.tscn index 59626d7a..2ad0b45b 100644 --- a/assets/notefx/ripple/ripple.tscn +++ b/assets/notefx/ripple/ripple.tscn @@ -3,8 +3,6 @@ [ext_resource path="res://assets/notefx/ripple/ripple.png" type="Texture" id=1] [ext_resource path="res://assets/notefx/ripple/ripple.gd" type="Script" id=2] - - [sub_resource type="SpatialMaterial" id=2] flags_transparent = true flags_unshaded = true diff --git a/assets/sfx/mkw_alert.mp3 b/assets/sfx/mkw_alert.mp3 new file mode 100644 index 00000000..ba1d39cd Binary files /dev/null and b/assets/sfx/mkw_alert.mp3 differ diff --git a/assets/sfx/mkw_alert.mp3.import b/assets/sfx/mkw_alert.mp3.import new file mode 100644 index 00000000..c9f4d714 --- /dev/null +++ b/assets/sfx/mkw_alert.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/mkw_alert.mp3-49441d8fc087664d08e2d38dcf548d4c.mp3str" + +[deps] + +source_file="res://assets/sfx/mkw_alert.mp3" +dest_files=[ "res://.import/mkw_alert.mp3-49441d8fc087664d08e2d38dcf548d4c.mp3str" ] + +[params] + +loop=false +loop_offset=0 diff --git a/assets/sfx/mkw_back.mp3 b/assets/sfx/mkw_back.mp3 new file mode 100644 index 00000000..129219da Binary files /dev/null and b/assets/sfx/mkw_back.mp3 differ diff --git a/assets/sfx/mkw_back.mp3.import b/assets/sfx/mkw_back.mp3.import new file mode 100644 index 00000000..3b46cb69 --- /dev/null +++ b/assets/sfx/mkw_back.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/mkw_back.mp3-21c1d47ac0cc71fdc2b15e996e94ec86.mp3str" + +[deps] + +source_file="res://assets/sfx/mkw_back.mp3" +dest_files=[ "res://.import/mkw_back.mp3-21c1d47ac0cc71fdc2b15e996e94ec86.mp3str" ] + +[params] + +loop=false +loop_offset=0 diff --git a/assets/sfx/mkw_next.mp3 b/assets/sfx/mkw_next.mp3 new file mode 100644 index 00000000..58b2aa80 Binary files /dev/null and b/assets/sfx/mkw_next.mp3 differ diff --git a/assets/sfx/mkw_next.mp3.import b/assets/sfx/mkw_next.mp3.import new file mode 100644 index 00000000..f86b16ee --- /dev/null +++ b/assets/sfx/mkw_next.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/mkw_next.mp3-341a987dcdc420e91f57b98112f69479.mp3str" + +[deps] + +source_file="res://assets/sfx/mkw_next.mp3" +dest_files=[ "res://.import/mkw_next.mp3-341a987dcdc420e91f57b98112f69479.mp3str" ] + +[params] + +loop=false +loop_offset=0 diff --git a/assets/sfx/mkwii_load_short.ogg b/assets/sfx/mkwii_load_short.ogg new file mode 100644 index 00000000..01c29a78 Binary files /dev/null and b/assets/sfx/mkwii_load_short.ogg differ diff --git a/assets/sfx/mkwii_load_short.ogg.import b/assets/sfx/mkwii_load_short.ogg.import new file mode 100644 index 00000000..3b02a887 --- /dev/null +++ b/assets/sfx/mkwii_load_short.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/mkwii_load_short.ogg-1b32da8777d55c3c0d34c816de4fe5c2.oggstr" + +[deps] + +source_file="res://assets/sfx/mkwii_load_short.ogg" +dest_files=[ "res://.import/mkwii_load_short.ogg-1b32da8777d55c3c0d34c816de4fe5c2.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/assets/sfx/music/init3d/drums.ogg b/assets/sfx/music/init3d/drums.ogg new file mode 100644 index 00000000..a6bd4774 Binary files /dev/null and b/assets/sfx/music/init3d/drums.ogg differ diff --git a/assets/sfx/music/init3d/drums.ogg.import b/assets/sfx/music/init3d/drums.ogg.import new file mode 100644 index 00000000..6708926f --- /dev/null +++ b/assets/sfx/music/init3d/drums.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/drums.ogg-24d114ce7e004ccd16d3da77a5aac83a.oggstr" + +[deps] + +source_file="res://assets/sfx/music/init3d/drums.ogg" +dest_files=[ "res://.import/drums.ogg-24d114ce7e004ccd16d3da77a5aac83a.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/assets/sfx/music/init3d/phaser.ogg b/assets/sfx/music/init3d/phaser.ogg new file mode 100644 index 00000000..2f77bc22 Binary files /dev/null and b/assets/sfx/music/init3d/phaser.ogg differ diff --git a/assets/sfx/music/init3d/phaser.ogg.import b/assets/sfx/music/init3d/phaser.ogg.import new file mode 100644 index 00000000..c4301f76 --- /dev/null +++ b/assets/sfx/music/init3d/phaser.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/phaser.ogg-53c2d8a1efcdf19e7be49f4dbb231e86.oggstr" + +[deps] + +source_file="res://assets/sfx/music/init3d/phaser.ogg" +dest_files=[ "res://.import/phaser.ogg-53c2d8a1efcdf19e7be49f4dbb231e86.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/assets/sfx/music/init3d/piano.ogg b/assets/sfx/music/init3d/piano.ogg new file mode 100644 index 00000000..dc4b1860 Binary files /dev/null and b/assets/sfx/music/init3d/piano.ogg differ diff --git a/assets/sfx/music/init3d/piano.ogg.import b/assets/sfx/music/init3d/piano.ogg.import new file mode 100644 index 00000000..36bc801e --- /dev/null +++ b/assets/sfx/music/init3d/piano.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/piano.ogg-2d48a720c2634408d5a853ca9321fe03.oggstr" + +[deps] + +source_file="res://assets/sfx/music/init3d/piano.ogg" +dest_files=[ "res://.import/piano.ogg-2d48a720c2634408d5a853ca9321fe03.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/assets/sfx/music/init3d/strings.ogg b/assets/sfx/music/init3d/strings.ogg new file mode 100644 index 00000000..277b9905 Binary files /dev/null and b/assets/sfx/music/init3d/strings.ogg differ diff --git a/assets/sfx/music/init3d/strings.ogg.import b/assets/sfx/music/init3d/strings.ogg.import new file mode 100644 index 00000000..acd18433 --- /dev/null +++ b/assets/sfx/music/init3d/strings.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/strings.ogg-af28458439b812473980d511a0d570d9.oggstr" + +[deps] + +source_file="res://assets/sfx/music/init3d/strings.ogg" +dest_files=[ "res://.import/strings.ogg-af28458439b812473980d511a0d570d9.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/prefabs/game/HUD.tscn b/prefabs/game/HUD.tscn index 3eb4f23a..3aa74d18 100644 --- a/prefabs/game/HUD.tscn +++ b/prefabs/game/HUD.tscn @@ -34,22 +34,22 @@ [ext_resource path="res://scripts/game/MobileButtons.gd" type="Script" id=32] [ext_resource path="res://assets/font/NotoColorEmoji.ttf" type="DynamicFontData" id=33] -[sub_resource type="Gradient" id=86] +[sub_resource type="Gradient" id=91] interpolation_mode = 1 offsets = PoolRealArray( 1 ) colors = PoolColorArray( 1, 1, 1, 1 ) [sub_resource type="GradientTexture2D" id=87] -gradient = SubResource( 86 ) +gradient = SubResource( 91 ) use_hdr = true -[sub_resource type="Gradient" id=88] +[sub_resource type="Gradient" id=92] interpolation_mode = 1 offsets = PoolRealArray( 1 ) colors = PoolColorArray( 1, 1, 1, 1 ) [sub_resource type="GradientTexture2D" id=89] -gradient = SubResource( 88 ) +gradient = SubResource( 92 ) [sub_resource type="DynamicFont" id=85] size = 48 @@ -347,9 +347,6 @@ to give up" [node name="Stats" type="Control" parent="."] anchor_right = 1.0 anchor_bottom = 1.0 -__meta__ = { -"_edit_use_anchors_": true -} [node name="Label" type="Label" parent="Stats"] anchor_right = 1.0 diff --git a/prefabs/game/HUD2.tscn b/prefabs/game/HUD2.tscn new file mode 100644 index 00000000..9c5bf11b --- /dev/null +++ b/prefabs/game/HUD2.tscn @@ -0,0 +1,1690 @@ +[gd_scene load_steps=92 format=2] + +[ext_resource path="res://scripts/game/TrueComboHandler.gd" type="Script" id=1] +[ext_resource path="res://scripts/game/FPS.gd" type="Script" id=2] +[ext_resource path="res://scripts/game/configDisp.gd" type="Script" id=3] +[ext_resource path="res://scripts/game/MobileButtons.gd" type="Script" id=4] +[ext_resource path="res://assets/font/Lato/Lato-Regular.ttf" type="DynamicFontData" id=5] +[ext_resource path="res://assets/font/Lato/Lato-Bold.ttf" type="DynamicFontData" id=6] +[ext_resource path="res://assets/font/UbuntuMono/Regular.ttf" type="DynamicFontData" id=7] +[ext_resource path="res://assets/font/NotoSansMono/NotoSansMono-Regular.ttf" type="DynamicFontData" id=8] +[ext_resource path="res://assets/images/ui/spinner_thin.png" type="Texture" id=9] +[ext_resource path="res://assets/font/NotoSansMono/NotoSansMono-Light.ttf" type="DynamicFontData" id=10] +[ext_resource path="res://assets/images/modifiers/32/speed_mmm_colored.png" type="Texture" id=11] +[ext_resource path="res://assets/images/ui/spinner_thick.png" type="Texture" id=12] +[ext_resource path="res://assets/font/Roboto/Regular.ttf" type="DynamicFontData" id=13] +[ext_resource path="res://assets/font/NotoColorEmoji.ttf" type="DynamicFontData" id=14] +[ext_resource path="res://assets/font/Lato/Lato-Light.ttf" type="DynamicFontData" id=15] +[ext_resource path="res://assets/images/modifiers/32/speed_pp_colored.png" type="Texture" id=16] +[ext_resource path="res://assets/images/modifiers/32/speed_mm_colored.png" type="Texture" id=17] +[ext_resource path="res://assets/images/modifiers/32/speed_m_colored.png" type="Texture" id=18] +[ext_resource path="res://assets/font/Noto_Sans_JP/NotoSansJP-Medium.otf" type="DynamicFontData" id=19] +[ext_resource path="res://assets/images/modifiers/32/speed_p_colored.png" type="Texture" id=20] +[ext_resource path="res://assets/images/modifiers/32/speed_pppp_colored.png" type="Texture" id=21] +[ext_resource path="res://assets/images/modifiers/32/autoplayer.png" type="Texture" id=22] +[ext_resource path="res://assets/font/NotoSansMono/NotoSansMono-Medium.ttf" type="DynamicFontData" id=23] +[ext_resource path="res://assets/images/modifiers/64/speed_pp_colored.png" type="Texture" id=24] +[ext_resource path="res://scripts/game/CircularProgress2.gd" type="Script" id=25] +[ext_resource path="res://scripts/game/PauseHud.gd" type="Script" id=26] +[ext_resource path="res://assets/images/modifiers/64/speed_mm_colored.png" type="Texture" id=27] +[ext_resource path="res://assets/images/modifiers/64/speed_ppp_colored.png" type="Texture" id=28] +[ext_resource path="res://scripts/game/HUD2.gd" type="Script" id=29] +[ext_resource path="res://assets/images/modifiers/32/speed_ppp_colored.png" type="Texture" id=30] +[ext_resource path="res://assets/images/modifiers/32/replaying.png" type="Texture" id=31] +[ext_resource path="res://assets/font/NotoSansMono/NotoSansMono-SemiBold.ttf" type="DynamicFontData" id=32] +[ext_resource path="res://assets/images/modifiers/64/speed_pppp_colored.png" type="Texture" id=33] +[ext_resource path="res://assets/images/modifiers/64/autoplayer.png" type="Texture" id=34] +[ext_resource path="res://assets/images/modifiers/64/speed_m_colored.png" type="Texture" id=35] +[ext_resource path="res://assets/images/modifiers/64/speed_mmm_colored.png" type="Texture" id=36] +[ext_resource path="res://assets/images/modifiers/64/speed_p_colored.png" type="Texture" id=37] +[ext_resource path="res://assets/images/modifiers/64/replaying.png" type="Texture" id=38] +[ext_resource path="res://assets/notefx/miss/miss.png" type="Texture" id=39] + +[sub_resource type="Gradient" id=86] +interpolation_mode = 1 +offsets = PoolRealArray( 1 ) +colors = PoolColorArray( 1, 1, 1, 1 ) + +[sub_resource type="GradientTexture2D" id=96] +gradient = SubResource( 86 ) +use_hdr = true + +[sub_resource type="Gradient" id=88] +interpolation_mode = 1 +offsets = PoolRealArray( 1 ) +colors = PoolColorArray( 1, 1, 1, 1 ) + +[sub_resource type="GradientTexture2D" id=97] +gradient = SubResource( 88 ) + +[sub_resource type="DynamicFont" id=98] +size = 48 +outline_size = 4 +outline_color = Color( 0, 0, 0, 0.490196 ) +use_filter = true +font_data = ExtResource( 7 ) + +[sub_resource type="StyleBoxFlat" id=84] +bg_color = Color( 0, 0, 0, 0.45098 ) +corner_radius_top_left = 125 +corner_radius_top_right = 125 +corner_radius_bottom_right = 125 +corner_radius_bottom_left = 125 + +[sub_resource type="StyleBoxFlat" id=8] +bg_color = Color( 0.54902, 1, 0, 1 ) + +[sub_resource type="StyleBoxFlat" id=5] +bg_color = Color( 0.560784, 0.560784, 0.560784, 0.690196 ) + +[sub_resource type="DynamicFont" id=9] +size = 36 +use_filter = true +font_data = ExtResource( 5 ) + +[sub_resource type="DynamicFont" id=10] +size = 48 +use_filter = true +font_data = ExtResource( 13 ) + +[sub_resource type="Shader" id=52] +code = "shader_type canvas_item; + +uniform float amount = 0.0; + +void fragment() { + vec2 uv = UV + vec2(TIME * -0.07); + float mult = ( 0.75 + (( 1.0 - amount ) * 0.25) + (amount * 0.25 * sin(length( uv*38.0) )) ); + COLOR.rgb *= texture(TEXTURE,UV).rgb * mult; + COLOR.a *= texture(TEXTURE,UV).a; + +}" + +[sub_resource type="ShaderMaterial" id=53] +shader = SubResource( 52 ) +shader_param/amount = 0.0 + +[sub_resource type="DynamicFont" id=51] +size = 64 +use_filter = true +font_data = ExtResource( 6 ) + +[sub_resource type="Shader" id=109] +code = "shader_type canvas_item; + +uniform float amount = 0.0; + +void fragment() { + vec2 uv = (UV + vec2(TIME * -0.07)) * vec2(0.25, 0.75); + float mult = ( 0.75 + (( 1.0 - amount ) * 0.25) + (amount * 0.25 * sin(length( uv*38.0) )) ); + COLOR.rgb *= texture(TEXTURE,UV).rgb * mult; + COLOR.a *= texture(TEXTURE,UV).a; + +}" + +[sub_resource type="ShaderMaterial" id=110] +shader = SubResource( 109 ) +shader_param/amount = 0.0 + +[sub_resource type="DynamicFont" id=11] +size = 96 +use_filter = true +font_data = ExtResource( 15 ) + +[sub_resource type="Shader" id=41] +code = "shader_type canvas_item; + +uniform float value:hint_range(0.0,1.0) = 0.5; +uniform vec4 fill_color:hint_color = vec4(1,1,1,1); +uniform vec4 empty_color:hint_color = vec4(0.2,0.2,0.2,0.5); +uniform float sml:hint_range(0.0,1.0) = 0.0; + +void fragment() { + vec4 col = texture(TEXTURE,UV); + vec2 p = (UV - vec2(0.5)) * 2.0; + float ang = -(degrees(atan(p.x,p.y)) - 180.0); + float pos = ang/360.0; + + float v = 0.5; + if (sml != 0.0) { + v = 1.0 - clamp((pos - (value + (sml * ((value*2.0)-1.0)))) / max(sml * 2.0,0.0001),0.0,1.0); + } else { + v = float(pos <= value); + } + vec4 final = mix(empty_color,fill_color,v); + COLOR = vec4(final.rgb,final.a*col.a); +}" + +[sub_resource type="ShaderMaterial" id=42] +shader = SubResource( 41 ) +shader_param/value = 0.5 +shader_param/fill_color = Color( 0.482353, 1, 0.952941, 1 ) +shader_param/empty_color = Color( 0.294118, 0.294118, 0.294118, 0.72549 ) +shader_param/sml = 0.0 + +[sub_resource type="DynamicFont" id=13] +size = 52 +use_filter = true +font_data = ExtResource( 5 ) + +[sub_resource type="DynamicFont" id=14] +size = 72 +use_filter = true +font_data = ExtResource( 15 ) + +[sub_resource type="StyleBoxFlat" id=50] +bg_color = Color( 0, 0, 0, 0.45098 ) +corner_radius_top_left = 125 +corner_radius_top_right = 125 +corner_radius_bottom_right = 125 +corner_radius_bottom_left = 125 + +[sub_resource type="DynamicFont" id=77] +size = 52 +use_filter = true +font_data = ExtResource( 6 ) + +[sub_resource type="DynamicFont" id=17] +size = 72 +outline_color = Color( 0, 0, 0, 0.333333 ) +use_filter = true +font_data = ExtResource( 5 ) + +[sub_resource type="DynamicFont" id=75] +size = 72 +outline_color = Color( 0.407843, 0.584314, 1, 1 ) +use_filter = true +font_data = ExtResource( 5 ) + +[sub_resource type="DynamicFont" id=43] +size = 28 +outline_color = Color( 0, 0, 0, 0.333333 ) +use_filter = true +extra_spacing_space = 3 +font_data = ExtResource( 5 ) + +[sub_resource type="DynamicFont" id=18] +size = 44 +use_filter = true +font_data = ExtResource( 5 ) + +[sub_resource type="DynamicFont" id=19] +size = 28 +use_filter = true +font_data = ExtResource( 5 ) + +[sub_resource type="ShaderMaterial" id=108] +shader = SubResource( 52 ) +shader_param/amount = 0.0 + +[sub_resource type="DynamicFont" id=20] +size = 128 +use_filter = true +font_data = ExtResource( 5 ) + +[sub_resource type="ViewportTexture" id=22] +flags = 20 +viewport_path = NodePath("LeftVP") + +[sub_resource type="ViewportTexture" id=23] +flags = 4 +viewport_path = NodePath("GiveUpVP") + +[sub_resource type="ViewportTexture" id=24] +flags = 4 +viewport_path = NodePath("PauseVP") + +[sub_resource type="ViewportTexture" id=25] +flags = 4 +viewport_path = NodePath("RightVP") + +[sub_resource type="ViewportTexture" id=27] +flags = 4 +viewport_path = NodePath("ConfigVP") + +[sub_resource type="ViewportTexture" id=28] +flags = 4 +viewport_path = NodePath("ComboVP") + +[sub_resource type="StyleBoxLine" id=85] +color = Color( 1, 1, 1, 0.470588 ) +thickness = 2 + +[sub_resource type="DynamicFont" id=99] +size = 32 +use_filter = true +font_data = ExtResource( 10 ) +fallback/0 = ExtResource( 19 ) +fallback/1 = ExtResource( 14 ) + +[sub_resource type="DynamicFont" id=87] +use_filter = true +font_data = ExtResource( 8 ) +fallback/0 = ExtResource( 19 ) + +[sub_resource type="DynamicFont" id=100] +use_filter = true +font_data = ExtResource( 8 ) +fallback/0 = ExtResource( 19 ) +fallback/1 = ExtResource( 14 ) + +[sub_resource type="DynamicFont" id=89] +use_filter = true +font_data = ExtResource( 8 ) +fallback/0 = ExtResource( 19 ) + +[sub_resource type="StyleBoxFlat" id=4] +bg_color = Color( 1, 1, 1, 1 ) + +[sub_resource type="DynamicFont" id=93] +size = 28 +use_filter = true +font_data = ExtResource( 32 ) +fallback/0 = ExtResource( 19 ) + +[sub_resource type="DynamicFont" id=101] +size = 28 +font_data = ExtResource( 23 ) +fallback/0 = ExtResource( 19 ) +fallback/1 = ExtResource( 14 ) + +[sub_resource type="StyleBoxFlat" id=111] +bg_color = Color( 0.227451, 0.647059, 0.0823529, 1 ) + +[sub_resource type="StyleBoxFlat" id=112] +bg_color = Color( 0.580392, 0.129412, 0.129412, 0.686275 ) + +[sub_resource type="DynamicFont" id=106] +size = 24 +use_filter = true +font_data = ExtResource( 5 ) +fallback/0 = ExtResource( 19 ) + +[sub_resource type="DynamicFont" id=107] +size = 48 +font_data = ExtResource( 14 ) +fallback/0 = ExtResource( 19 ) + +[sub_resource type="PlaneMesh" id=90] +size = Vector2( 4.95, 4.95 ) + +[sub_resource type="ViewportTexture" id=92] +viewport_path = NodePath("GridVP") + +[sub_resource type="SpatialMaterial" id=91] +resource_local_to_scene = true +render_priority = 99 +flags_transparent = true +flags_unshaded = true +flags_no_depth_test = true +albedo_color = Color( 1, 1, 1, 0.588235 ) +albedo_texture = SubResource( 92 ) + +[sub_resource type="ViewportTexture" id=104] +flags = 4 +viewport_path = NodePath("TimerVP") + +[sub_resource type="ViewportTexture" id=105] +flags = 68 +viewport_path = NodePath("EnergyVP") + +[node name="HUD" type="Spatial"] +pause_mode = 1 +script = ExtResource( 29 ) + +[node name="Mobile" type="Control" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 4 ) + +[node name="Pause" type="Control" parent="Mobile"] +modulate = Color( 1, 1, 1, 0.501961 ) +margin_right = 1280.0 +margin_bottom = 720.0 + +[node name="Button" type="TouchScreenButton" parent="Mobile/Pause"] +modulate = Color( 1, 1, 1, 0.521569 ) +scale = Vector2( 3.75, 3.5 ) +normal = SubResource( 96 ) + +[node name="Label" type="Label" parent="Mobile/Pause/Button"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -20.0 +margin_top = -15.5 +margin_right = 20.0 +margin_bottom = 15.5 +text = "tap to pause" +align = 1 +autowrap = true + +[node name="GiveUp" type="Control" parent="Mobile"] +modulate = Color( 1, 1, 1, 0.501961 ) +anchor_top = 1.0 +anchor_bottom = 1.0 +margin_top = -720.0 +margin_right = 1280.0 + +[node name="Button" type="TouchScreenButton" parent="Mobile/GiveUp"] +modulate = Color( 1, 1, 1, 0.505882 ) +position = Vector2( 0, 494 ) +scale = Vector2( 3.75, 3.5 ) +normal = SubResource( 97 ) + +[node name="Label" type="Label" parent="Mobile/GiveUp/Button"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -31.5 +margin_top = -15.5 +margin_right = 31.5 +margin_bottom = 15.5 +text = " hold +to give up" + +[node name="Stats" type="Control" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 + +[node name="Label" type="Label" parent="Stats"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 98 ) +text = "(stats)" +align = 2 + +[node name="LeftVP" type="Viewport" parent="."] +size = Vector2( 300, 900 ) +transparent_bg = true +msaa = 2 +hdr = false +usage = 0 +render_target_update_mode = 3 +gui_snap_controls_to_pixels = false + +[node name="Control" type="ColorRect" parent="LeftVP" groups=["panel_bg"]] +margin_right = 300.0 +margin_bottom = 900.0 +color = Color( 0, 0, 0, 0.607843 ) + +[node name="SimpleBg" type="Panel" parent="LeftVP/Control" groups=["panel_bg"]] +visible = false +margin_left = 25.0 +margin_top = 225.0 +margin_right = 275.0 +margin_bottom = 475.0 +custom_styles/panel = SubResource( 84 ) + +[node name="AccuracyBar" type="ProgressBar" parent="LeftVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -1.18921 +margin_top = -50.0 +margin_right = -1.18921 +margin_bottom = -25.0 +custom_styles/fg = SubResource( 8 ) +custom_styles/bg = SubResource( 5 ) +max_value = 1.0 +step = 0.0 +value = 1.0 +percent_visible = false +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AccuracyTitle" type="Label" parent="LeftVP/Control" groups=["panel_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -231.908 +margin_bottom = -156.908 +custom_fonts/font = SubResource( 9 ) +text = "ACCURACY" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Accuracy" type="Label" parent="LeftVP/Control" groups=["panel_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -167.0 +margin_bottom = -92.0003 +custom_fonts/font = SubResource( 10 ) +text = "-" +align = 1 +valign = 1 + +[node name="LetterGrade" type="Label" parent="LeftVP/Control"] +material = SubResource( 53 ) +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -343.0 +margin_bottom = -265.0 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_fonts/font = SubResource( 51 ) +text = "--" +align = 1 +valign = 1 + +[node name="FullComboIndicator" type="ColorRect" parent="LeftVP/Control/LetterGrade"] +visible = false +show_behind_parent = true +material = SubResource( 110 ) +anchor_right = 1.0 +anchor_bottom = 1.0 + +[node name="Combo" type="Control" parent="LeftVP/Control"] +anchor_right = 1.0 +margin_left = 25.0 +margin_top = 25.0 +margin_right = -25.0 +margin_bottom = 275.0 +script = ExtResource( 25 ) +fill_color = Color( 0.482353, 1, 0.952941, 1 ) +empty_color = Color( 0.294118, 0.294118, 0.294118, 0.72549 ) + +[node name="Label" type="Label" parent="LeftVP/Control/Combo" groups=["panel_text"]] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_fonts/font = SubResource( 11 ) +text = "1x" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Spin" type="TextureRect" parent="LeftVP/Control/Combo"] +material = SubResource( 42 ) +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource( 9 ) +expand = true +stretch_mode = 6 + +[node name="Pauses" type="Label" parent="LeftVP/Control" groups=["pause_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -552.0 +margin_bottom = -477.0 +custom_fonts/font = SubResource( 13 ) +text = "0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="PausesTitle" type="Label" parent="LeftVP/Control" groups=["pause_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -616.776 +margin_bottom = -541.776 +custom_fonts/font = SubResource( 9 ) +text = "PAUSES" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="GiveUpVP" type="Viewport" parent="."] +size = Vector2( 600, 600 ) +transparent_bg = true +msaa = 2 +debanding = true +hdr = false +usage = 0 +render_target_update_mode = 3 +gui_snap_controls_to_pixels = false + +[node name="Control" type="Control" parent="GiveUpVP"] +margin_right = 600.0 +margin_bottom = 600.0 +script = ExtResource( 25 ) +fill_color = Color( 1, 0.560784, 0.172549, 1 ) +empty_color = Color( 0.435294, 0.435294, 0.435294, 0 ) + +[node name="Label" type="Label" parent="GiveUpVP/Control"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -300.0 +margin_top = -300.0 +margin_right = 300.0 +margin_bottom = 300.0 +custom_fonts/font = SubResource( 14 ) +text = "Giving up..." +align = 1 +valign = 1 +clip_text = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Spin" type="TextureRect" parent="GiveUpVP/Control"] +material = SubResource( 42 ) +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 50.0 +margin_top = 50.0 +margin_right = -50.0 +margin_bottom = -50.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource( 12 ) +expand = true +stretch_mode = 6 + +[node name="RightVP" type="Viewport" parent="."] +size = Vector2( 300, 900 ) +transparent_bg = true +msaa = 2 +hdr = false +usage = 0 +render_target_update_mode = 3 +gui_snap_controls_to_pixels = false + +[node name="Control" type="ColorRect" parent="RightVP" groups=["panel_bg"]] +margin_right = 300.0 +margin_bottom = 900.0 +color = Color( 0, 0, 0, 0.607843 ) + +[node name="SimpleBg" type="Panel" parent="RightVP/Control" groups=["panel_bg"]] +visible = false +margin_left = 25.0 +margin_top = 225.0 +margin_right = 275.0 +margin_bottom = 475.0 +custom_styles/panel = SubResource( 50 ) + +[node name="Notes" type="Label" parent="RightVP/Control" groups=["panel_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -168.0 +margin_bottom = -93.0002 +custom_fonts/font = SubResource( 13 ) +text = "0/0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NoteTitle" type="Label" parent="RightVP/Control" groups=["panel_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -232.0 +margin_bottom = -157.0 +custom_fonts/font = SubResource( 9 ) +text = "NOTES" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Misses" type="Label" parent="RightVP/Control" groups=["miss_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -552.0 +margin_bottom = -477.0 +custom_fonts/font = SubResource( 13 ) +text = "0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MissesTitle" type="Label" parent="RightVP/Control" groups=["miss_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -617.0 +margin_bottom = -542.0 +custom_fonts/font = SubResource( 9 ) +text = "MISSES" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="FPS" type="Label" parent="RightVP/Control" groups=["panel_text"]] +visible = false +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -785.0 +margin_bottom = -710.0 +custom_fonts/font = SubResource( 13 ) +text = "0" +align = 1 +valign = 1 +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="FPSTitle" type="Label" parent="RightVP/Control" groups=["panel_text"]] +visible = false +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -850.0 +margin_bottom = -775.0 +custom_fonts/font = SubResource( 9 ) +text = "FPS" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Score" type="Label" parent="RightVP/Control" groups=["score_text"]] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -809.0 +margin_bottom = -734.0 +custom_fonts/font = SubResource( 77 ) +text = "0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ScoreTitle" type="Label" parent="RightVP/Control" groups=["score_text"]] +visible = false +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -874.0 +margin_bottom = -799.0 +custom_fonts/font = SubResource( 9 ) +text = "SCORE" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="PauseVP" type="Viewport" parent="."] +size = Vector2( 600, 600 ) +transparent_bg = true +msaa = 2 +debanding = true +hdr = false +usage = 0 +render_target_update_mode = 3 +gui_snap_controls_to_pixels = false + +[node name="Control" type="Control" parent="PauseVP"] +margin_right = 600.0 +margin_bottom = 600.0 +script = ExtResource( 26 ) + +[node name="Paused" type="Label" parent="PauseVP/Control"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -300.0 +margin_top = -300.0 +margin_right = 300.0 +margin_bottom = 300.0 +custom_colors/font_color = Color( 0.407843, 1, 0, 1 ) +custom_fonts/font = SubResource( 17 ) +text = "PAUSED" +align = 1 +valign = 1 +clip_text = true + +[node name="ProgressBar" type="Control" parent="PauseVP/Control"] +margin_left = 160.0 +margin_top = 160.0 +margin_right = 160.0 +margin_bottom = 440.0 +grow_horizontal = 2 +rect_clip_content = true + +[node name="Paused" type="Label" parent="PauseVP/Control/ProgressBar"] +margin_right = 280.0 +margin_bottom = 280.0 +grow_horizontal = 2 +custom_colors/font_color = Color( 0.501961, 1, 0.952941, 1 ) +custom_fonts/font = SubResource( 75 ) +text = "PAUSED" +align = 1 +valign = 1 + +[node name="HoldR" type="Label" parent="PauseVP/Control"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -300.0 +margin_top = 40.0 +margin_right = 300.0 +margin_bottom = 300.0 +custom_colors/font_color = Color( 1, 0.858824, 0, 1 ) +custom_fonts/font = SubResource( 43 ) +text = "HOLD R TO EXIT" +align = 1 +clip_text = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ConfigVP" type="Viewport" parent="."] +size = Vector2( 600, 600 ) +transparent_bg = true +msaa = 1 +fxaa = true +hdr = false +usage = 0 +render_target_update_mode = 3 +gui_snap_controls_to_pixels = false + +[node name="Control" type="ColorRect" parent="ConfigVP"] +margin_right = 600.0 +margin_bottom = 600.0 +color = Color( 0, 0, 0, 0.831373 ) +script = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="HitWindow" type="Label" parent="ConfigVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 30.0 +margin_top = -525.0 +margin_right = -315.0 +margin_bottom = -460.0 +custom_fonts/font = SubResource( 18 ) +text = "35 ms" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="ConfigVP/Control/HitWindow"] +anchor_right = 1.0 +margin_top = -40.0 +custom_fonts/font = SubResource( 19 ) +text = "HIT WINDOW" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Approach" type="Label" parent="ConfigVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 315.0 +margin_top = -525.0 +margin_right = -30.0 +margin_bottom = -460.0 +custom_fonts/font = SubResource( 18 ) +text = "50" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="ConfigVP/Control/Approach"] +anchor_right = 1.0 +margin_top = -40.0 +custom_fonts/font = SubResource( 19 ) +text = "APPROACH RATE" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Camera" type="Label" parent="ConfigVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 30.0 +margin_top = -400.0 +margin_right = -315.0 +margin_bottom = -335.0 +custom_fonts/font = SubResource( 18 ) +text = "LOCK" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="ConfigVP/Control/Camera"] +anchor_right = 1.0 +margin_top = -40.0 +custom_fonts/font = SubResource( 19 ) +text = "CAMERA TYPE" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Parallax" type="Label" parent="ConfigVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 315.0 +margin_top = -400.0 +margin_right = -30.0 +margin_bottom = -335.0 +custom_fonts/font = SubResource( 18 ) +text = "1.00" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="ConfigVP/Control/Parallax"] +anchor_right = 1.0 +margin_top = -40.0 +custom_fonts/font = SubResource( 19 ) +text = "PARALLAX" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="EdgeBuffer" type="Label" parent="ConfigVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 30.0 +margin_top = -275.0 +margin_right = -315.0 +margin_bottom = -210.0 +custom_fonts/font = SubResource( 18 ) +text = "NO" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="ConfigVP/Control/EdgeBuffer"] +anchor_right = 1.0 +margin_top = -40.0 +custom_fonts/font = SubResource( 19 ) +text = "EDGE BUFFER" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Hitbox" type="Label" parent="ConfigVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 30.0 +margin_top = -150.0 +margin_right = -315.0 +margin_bottom = -85.0 +custom_fonts/font = SubResource( 18 ) +text = "1.27 (+0)" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="ConfigVP/Control/Hitbox"] +anchor_right = 1.0 +margin_top = -40.0 +custom_fonts/font = SubResource( 19 ) +text = "HITBOX SIZE" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Sensitivity" type="Label" parent="ConfigVP/Control"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 315.0 +margin_top = -275.0 +margin_right = -30.0 +margin_bottom = -210.0 +custom_fonts/font = SubResource( 18 ) +text = "1.00" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="ConfigVP/Control/Sensitivity"] +anchor_right = 1.0 +margin_top = -40.0 +custom_fonts/font = SubResource( 19 ) +text = "SENSITIVITY" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ComboVP" type="Viewport" parent="."] +size = Vector2( 600, 600 ) +transparent_bg = true +msaa = 1 +fxaa = true +hdr = false +usage = 0 +render_target_update_mode = 3 +gui_snap_controls_to_pixels = false + +[node name="Value" type="Label" parent="ComboVP"] +material = SubResource( 108 ) +anchor_top = 0.25 +anchor_right = 1.0 +anchor_bottom = 0.25 +margin_bottom = 236.0 +grow_horizontal = 2 +grow_vertical = 0 +custom_colors/font_color = Color( 1, 1, 1, 0.196078 ) +custom_fonts/font = SubResource( 20 ) +text = "0" +align = 1 +valign = 1 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="LeftHud" type="Sprite3D" parent="."] +transform = Transform( -0.996195, 0.0871559, 3.8097e-09, 0, -4.37114e-08, 1, 0.0871559, 0.996195, 4.35451e-08, -2.457, 0, 0.28 ) +cast_shadow = 0 +flip_h = true +pixel_size = 0.0033 +axis = 1 +double_sided = false +render_priority = 101 +texture = SubResource( 22 ) + +[node name="GiveUpHud" type="Sprite3D" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 2.23827e-08, 0.512057 ) +visible = false +cast_shadow = 0 +pixel_size = 0.0033 +axis = 1 +no_depth_test = true +render_priority = 105 +texture = SubResource( 23 ) + +[node name="PauseHud" type="Sprite3D" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 1.89666e-08, 0.433905 ) +visible = false +cast_shadow = 0 +pixel_size = 0.0044 +axis = 1 +no_depth_test = true +render_priority = 104 +texture = SubResource( 24 ) + +[node name="RightHud" type="Sprite3D" parent="."] +transform = Transform( -0.996195, -0.0871557, -3.80969e-09, 0, -4.37114e-08, 1, -0.0871557, 0.996195, 4.35451e-08, 2.457, 0, 0.28 ) +cast_shadow = 0 +flip_h = true +pixel_size = 0.0033 +axis = 1 +double_sided = false +render_priority = 101 +texture = SubResource( 25 ) + +[node name="ConfigHud" type="Sprite3D" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 2.35546e-08, 0.538867 ) +visible = false +cast_shadow = 0 +pixel_size = 0.0033 +axis = 1 +no_depth_test = true +render_priority = 103 +texture = SubResource( 27 ) + +[node name="ComboHud" type="Sprite3D" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 1, -0.461133 ) +cast_shadow = 0 +pixel_size = 0.0033 +axis = 1 +no_depth_test = true +render_priority = 100 +texture = SubResource( 28 ) + +[node name="Info" type="HBoxContainer" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +grow_horizontal = 2 +alignment = 1 + +[node name="C" type="VBoxContainer" parent="Info"] +margin_left = 315.0 +margin_right = 965.0 +margin_bottom = 118.0 +rect_min_size = Vector2( 650, 0 ) + +[node name="Sep" type="MarginContainer" parent="Info/C"] +margin_right = 650.0 +margin_bottom = 14.0 +custom_constants/margin_right = 45 +custom_constants/margin_left = 45 +custom_constants/margin_bottom = 10 + +[node name="HSeparator" type="HSeparator" parent="Info/C/Sep"] +margin_left = 45.0 +margin_right = 605.0 +margin_bottom = 4.0 +custom_styles/separator = SubResource( 85 ) + +[node name="MapName" type="MarginContainer" parent="Info/C"] +margin_top = 18.0 +margin_right = 650.0 +margin_bottom = 63.0 +custom_constants/margin_right = 30 +custom_constants/margin_left = 30 + +[node name="L" type="Label" parent="Info/C/MapName"] +margin_left = 30.0 +margin_right = 620.0 +margin_bottom = 45.0 +custom_fonts/font = SubResource( 99 ) +text = "Artist Name - Song Name" +align = 1 + +[node name="Mapper" type="MarginContainer" parent="Info/C"] +margin_top = 67.0 +margin_right = 650.0 +margin_bottom = 90.0 +custom_constants/margin_right = 30 +custom_constants/margin_left = 30 + +[node name="H" type="HBoxContainer" parent="Info/C/Mapper"] +margin_left = 30.0 +margin_right = 620.0 +margin_bottom = 23.0 +custom_constants/separation = 0 +alignment = 1 + +[node name="T" type="Label" parent="Info/C/Mapper/H"] +margin_left = 180.0 +margin_right = 280.0 +margin_bottom = 23.0 +custom_colors/font_color = Color( 0.67451, 0.992157, 0.694118, 1 ) +custom_fonts/font = SubResource( 87 ) +text = "Mapped by " +align = 1 + +[node name="L" type="Label" parent="Info/C/Mapper/H"] +margin_left = 280.0 +margin_right = 410.0 +margin_bottom = 23.0 +custom_colors/font_color = Color( 0.67451, 0.968627, 0.992157, 1 ) +custom_fonts/font = SubResource( 100 ) +text = "Mario & Luigi" +align = 1 + +[node name="Sep2" type="MarginContainer" parent="Info/C"] +margin_top = 94.0 +margin_right = 650.0 +margin_bottom = 118.0 +custom_constants/margin_right = 45 +custom_constants/margin_top = 10 +custom_constants/margin_left = 45 +custom_constants/margin_bottom = 10 + +[node name="HSeparator2" type="HSeparator" parent="Info/C/Sep2"] +margin_left = 45.0 +margin_top = 10.0 +margin_right = 605.0 +margin_bottom = 14.0 +custom_styles/separator = SubResource( 85 ) + +[node name="Modifiers" type="MarginContainer" parent="Info/C"] +visible = false +margin_top = 122.0 +margin_right = 800.0 +margin_bottom = 149.0 + +[node name="V" type="VBoxContainer" parent="Info/C/Modifiers"] +margin_right = 800.0 +margin_bottom = 27.0 +grow_horizontal = 2 + +[node name="Icons" type="MarginContainer" parent="Info/C/Modifiers/V"] +margin_right = 800.0 +grow_horizontal = 2 +custom_constants/margin_right = 28 +custom_constants/margin_left = 28 + +[node name="H" type="HBoxContainer" parent="Info/C/Modifiers/V/Icons"] +margin_left = 28.0 +margin_right = 772.0 +rect_min_size = Vector2( 744, 0 ) +custom_constants/separation = 6 +alignment = 1 + +[node name="Replaying" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 204.0 +margin_right = 236.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 31 ) +stretch_mode = 1 + +[node name="Autoplay" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 242.0 +margin_right = 274.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 22 ) +stretch_mode = 1 + +[node name="SpeedMMM" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 280.0 +margin_right = 312.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 11 ) +stretch_mode = 1 + +[node name="SpeedMM" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 318.0 +margin_right = 350.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 17 ) +stretch_mode = 1 + +[node name="SpeedM" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 356.0 +margin_right = 388.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 18 ) +stretch_mode = 1 + +[node name="SpeedP" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 394.0 +margin_right = 426.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 20 ) +stretch_mode = 1 + +[node name="SpeedPP" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 432.0 +margin_right = 464.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 16 ) +stretch_mode = 1 + +[node name="SpeedPPP" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 470.0 +margin_right = 502.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 30 ) +stretch_mode = 1 + +[node name="SpeedPPPP" type="TextureRect" parent="Info/C/Modifiers/V/Icons/H"] +visible = false +margin_left = 508.0 +margin_right = 540.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 21 ) +stretch_mode = 1 + +[node name="Text" type="Label" parent="Info/C/Modifiers/V"] +margin_top = 4.0 +margin_right = 800.0 +margin_bottom = 27.0 +rect_min_size = Vector2( 800, 0 ) +custom_colors/font_color = Color( 1, 0.929412, 0.658824, 1 ) +custom_fonts/font = SubResource( 89 ) +text = "Modifier text" +align = 1 +autowrap = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="GridVP" type="Viewport" parent="."] +size = Vector2( 900, 900 ) +transparent_bg = true +msaa = 2 +debanding = true +hdr = false +usage = 0 +render_target_v_flip = true +render_target_update_mode = 3 +gui_snap_controls_to_pixels = false + +[node name="Control" type="Control" parent="GridVP"] +margin_right = 900.0 +margin_bottom = 900.0 + +[node name="Timer" type="Control" parent="GridVP/Control"] +margin_right = 900.0 +margin_bottom = 150.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Time" type="ProgressBar" parent="GridVP/Control/Timer"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = -210.0 +margin_top = -13.0 +margin_right = 210.0 +margin_bottom = -8.0 +custom_styles/fg = SubResource( 4 ) +custom_styles/bg = SubResource( 5 ) +max_value = 1.0 +step = 0.0 +value = 0.5 +percent_visible = false + +[node name="Label" type="Label" parent="GridVP/Control/Timer" groups=["timer_text"]] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_bottom = -15.0 +custom_fonts/font = SubResource( 93 ) +text = "CLICK TO START" +align = 1 +valign = 2 + +[node name="SongName" type="Label" parent="GridVP/Control/Timer" groups=["timer_text"]] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_bottom = -60.0 +rect_min_size = Vector2( 0, 48 ) +custom_fonts/font = SubResource( 101 ) +text = "Artist Name - Song Name" +align = 1 +valign = 2 +autowrap = true +clip_text = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Sides" type="Control" parent="GridVP/Control"] +margin_left = 150.0 +margin_top = 150.0 +margin_right = 750.0 +margin_bottom = 750.0 + +[node name="AA" type="ColorRect" parent="GridVP/Control/Sides"] +anchor_top = 0.2 +anchor_bottom = 0.8 +margin_left = 1.0 +margin_right = 4.0 +color = Color( 1, 1, 1, 0.470588 ) + +[node name="AB" type="ColorRect" parent="GridVP/Control/Sides"] +anchor_left = 1.0 +anchor_top = 0.2 +anchor_right = 1.0 +anchor_bottom = 0.8 +margin_left = -4.0 +margin_right = -1.0 +color = Color( 1, 1, 1, 0.470588 ) + +[node name="BA" type="ColorRect" parent="GridVP/Control/Sides"] +anchor_left = 0.2 +anchor_top = 1.0 +anchor_right = 0.8 +anchor_bottom = 1.0 +margin_top = -4.0 +margin_bottom = -1.0 +color = Color( 1, 1, 1, 0.470588 ) + +[node name="BB" type="ColorRect" parent="GridVP/Control/Sides"] +anchor_left = 0.2 +anchor_right = 0.8 +margin_top = 1.0 +margin_bottom = 4.0 +color = Color( 1, 1, 1, 0.470588 ) + +[node name="Corners" type="Control" parent="GridVP/Control"] +margin_left = 150.0 +margin_top = 150.0 +margin_right = 750.0 +margin_bottom = 750.0 + +[node name="Corner" type="Control" parent="GridVP/Control/Corners"] +anchor_right = 0.15 +anchor_bottom = 0.15 + +[node name="A" type="ColorRect" parent="GridVP/Control/Corners/Corner"] +anchor_bottom = 1.0 +margin_right = 4.0 + +[node name="B" type="ColorRect" parent="GridVP/Control/Corners/Corner"] +anchor_right = 1.0 +margin_left = 4.0 +margin_bottom = 4.0 + +[node name="Corner4" type="Control" parent="GridVP/Control/Corners"] +anchor_top = 0.85 +anchor_right = 0.15 +anchor_bottom = 1.0 + +[node name="A" type="ColorRect" parent="GridVP/Control/Corners/Corner4"] +anchor_bottom = 1.0 +margin_right = 4.0 + +[node name="B" type="ColorRect" parent="GridVP/Control/Corners/Corner4"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 4.0 +margin_top = -4.0 + +[node name="Corner2" type="Control" parent="GridVP/Control/Corners"] +anchor_left = 0.85 +anchor_top = 0.85 +anchor_right = 1.0 +anchor_bottom = 1.0 + +[node name="A" type="ColorRect" parent="GridVP/Control/Corners/Corner2"] +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -4.0 + +[node name="B" type="ColorRect" parent="GridVP/Control/Corners/Corner2"] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -4.0 +margin_right = -4.0 + +[node name="Corner3" type="Control" parent="GridVP/Control/Corners"] +anchor_left = 0.85 +anchor_right = 1.0 +anchor_bottom = 0.15 + +[node name="A" type="ColorRect" parent="GridVP/Control/Corners/Corner3"] +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -4.0 + +[node name="B" type="ColorRect" parent="GridVP/Control/Corners/Corner3"] +anchor_right = 1.0 +margin_right = -4.0 +margin_bottom = 4.0 + +[node name="Energy" type="Control" parent="GridVP/Control"] +anchor_top = 1.0 +anchor_bottom = 1.0 +margin_top = -150.0 +margin_right = 900.0 + +[node name="Energy" type="ProgressBar" parent="GridVP/Control/Energy"] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -210.0 +margin_top = 8.0 +margin_right = 210.0 +margin_bottom = 13.0 +custom_styles/fg = SubResource( 111 ) +custom_styles/bg = SubResource( 112 ) +max_value = 1.0 +step = 0.0 +value = 1.0 +percent_visible = false + +[node name="Failed" type="TextureRect" parent="GridVP/Control/Energy/Energy"] +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -24.0 +margin_top = -24.0 +margin_right = 24.0 +margin_bottom = 24.0 +rect_pivot_offset = Vector2( 24, 24 ) +texture = ExtResource( 39 ) +expand = true + +[node name="Modifiers" type="VBoxContainer" parent="GridVP/Control/Energy"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = 25.0 +grow_horizontal = 2 + +[node name="Text" type="Label" parent="GridVP/Control/Energy/Modifiers"] +margin_right = 900.0 +margin_bottom = 30.0 +rect_min_size = Vector2( 800, 0 ) +custom_colors/font_color = Color( 1, 0.929412, 0.658824, 1 ) +custom_fonts/font = SubResource( 106 ) +text = "Modifier text" +align = 1 +autowrap = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Icons" type="MarginContainer" parent="GridVP/Control/Energy/Modifiers"] +margin_top = 34.0 +margin_right = 900.0 +margin_bottom = 34.0 +grow_horizontal = 2 +custom_constants/margin_right = 28 +custom_constants/margin_left = 28 + +[node name="H" type="HBoxContainer" parent="GridVP/Control/Energy/Modifiers/Icons"] +margin_left = 28.0 +margin_right = 872.0 +rect_min_size = Vector2( 744, 0 ) +custom_constants/separation = 6 +alignment = 1 + +[node name="Replaying" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 155.0 +margin_right = 203.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 38 ) +expand = true +stretch_mode = 1 + +[node name="Autoplay" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 209.0 +margin_right = 257.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 34 ) +expand = true +stretch_mode = 1 + +[node name="SpeedMMM" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 263.0 +margin_right = 311.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 36 ) +expand = true +stretch_mode = 1 + +[node name="SpeedMM" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 317.0 +margin_right = 365.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 27 ) +expand = true +stretch_mode = 1 + +[node name="SpeedM" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 371.0 +margin_right = 419.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 35 ) +expand = true +stretch_mode = 1 + +[node name="SpeedP" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 425.0 +margin_right = 473.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 37 ) +expand = true +stretch_mode = 1 + +[node name="SpeedPP" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 479.0 +margin_right = 527.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 24 ) +expand = true +stretch_mode = 1 + +[node name="SpeedPPP" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 533.0 +margin_right = 581.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 28 ) +expand = true +stretch_mode = 1 + +[node name="SpeedPPPP" type="TextureRect" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 587.0 +margin_right = 635.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +texture = ExtResource( 33 ) +expand = true +stretch_mode = 1 + +[node name="Window" type="Label" parent="GridVP/Control/Energy/Modifiers/Icons/H"] +visible = false +margin_left = 641.0 +margin_right = 689.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 48, 48 ) +size_flags_vertical = 3 +custom_fonts/font = SubResource( 107 ) +text = "🪟" +align = 1 +valign = 1 + +[node name="Grid" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, 0 ) + +[node name="Outer" type="MeshInstance" parent="Grid"] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 1, -1, 0 ) +mesh = SubResource( 90 ) +skeleton = NodePath("../..") +material/0 = SubResource( 91 ) + +[node name="TimerVP" type="Viewport" parent="."] +size = Vector2( 900, 300 ) +transparent_bg = true +msaa = 2 +debanding = true +hdr = false +usage = 0 +render_target_update_mode = 3 + +[node name="EnergyVP" type="Viewport" parent="."] +size = Vector2( 900, 300 ) +transparent_bg = true +msaa = 2 +debanding = true +hdr = false +usage = 0 +render_target_update_mode = 3 + +[node name="TimerHud" type="Sprite3D" parent="."] +transform = Transform( -1, 2.9595e-08, -1.50892e-07, -1.50597e-07, -0.386727, 0.922195, -3.10616e-08, 0.922195, 0.386727, -1.05219e-07, 2.3915, -0.13436 ) +cast_shadow = 0 +flip_h = true +pixel_size = 0.0055 +axis = 1 +double_sided = false +render_priority = 102 +texture = SubResource( 104 ) + +[node name="EnergyHud" type="Sprite3D" parent="."] +transform = Transform( -1, 6.50888e-09, 3.31011e-08, 3.31011e-08, 0.378633, 0.925547, -6.5089e-09, 0.925547, -0.378633, -2.19198e-08, -2.63437, -0.117157 ) +cast_shadow = 0 +flip_h = true +pixel_size = 0.0055 +axis = 1 +double_sided = false +render_priority = 102 +texture = SubResource( 105 ) + +[connection signal="pressed" from="Mobile/Pause/Button" to="Mobile" method="_on_Pause_pressed"] +[connection signal="released" from="Mobile/Pause/Button" to="Mobile" method="_on_Pause_released"] +[connection signal="pressed" from="Mobile/GiveUp/Button" to="Mobile" method="_on_GiveUp_pressed"] +[connection signal="released" from="Mobile/GiveUp/Button" to="Mobile" method="_on_GiveUp_released"] diff --git a/prefabs/menu/confirm.tscn b/prefabs/menu/confirm.tscn index 78912b2c..cad7a83f 100644 --- a/prefabs/menu/confirm.tscn +++ b/prefabs/menu/confirm.tscn @@ -4,11 +4,9 @@ [ext_resource path="res://assets/font/Noto_Sans_JP/NotoSansJP-Medium.otf" type="DynamicFontData" id=2] [ext_resource path="res://assets/font/Lato/Lato-Regular.ttf" type="DynamicFontData" id=3] [ext_resource path="res://scripts/ui/ConfirmationPrompt2D.gd" type="Script" id=4] -[ext_resource path="res://assets/sfx/new_best.wav" type="AudioStream" id=5] -[ext_resource path="res://assets/sfx/button-16.wav" type="AudioStream" id=6] -[ext_resource path="res://assets/sfx/button-16.wav" type="AudioStream" id=7] - - +[ext_resource path="res://assets/sfx/mkw_alert.mp3" type="AudioStream" id=5] +[ext_resource path="res://assets/sfx/mkw_back.mp3" type="AudioStream" id=6] +[ext_resource path="res://assets/sfx/mkw_next.mp3" type="AudioStream" id=7] [sub_resource type="StyleBoxFlat" id=4] bg_color = Color( 0.0784314, 0.0784314, 0.0784314, 1 ) @@ -45,17 +43,14 @@ script = ExtResource( 4 ) [node name="Alert" type="AudioStreamPlayer" parent="."] stream = ExtResource( 5 ) -volume_db = -6.0 bus = "Prompt" [node name="Next" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 6 ) -volume_db = -6.0 +stream = ExtResource( 7 ) bus = "Prompt" [node name="Back" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 7 ) -volume_db = -6.0 +stream = ExtResource( 6 ) bus = "Prompt" [node name="C" type="CenterContainer" parent="."] diff --git a/prefabs/menu/credits.tscn b/prefabs/menu/credits.tscn index 6293e651..f17b0de5 100644 --- a/prefabs/menu/credits.tscn +++ b/prefabs/menu/credits.tscn @@ -373,17 +373,17 @@ margin_right = 1216.0 margin_bottom = 77.0 [node name="H" type="HBoxContainer" parent="SpecialThanks/C13"] -margin_left = 259.0 -margin_right = 956.0 +margin_left = 375.0 +margin_right = 840.0 margin_bottom = 25.0 alignment = 1 [node name="Label" type="Label" parent="SpecialThanks/C13/H"] -margin_right = 697.0 +margin_right = 465.0 margin_bottom = 25.0 custom_colors/font_color = Color( 0.878431, 0.858824, 0.682353, 1 ) custom_fonts/font = SubResource( 160 ) -text = "Basil \"Chedski\" Cyathea - The person that started it all; unfortunately gone now" +text = "Lily \"Chedski\" Cyathea - The person that started it all" align = 1 [node name="C7" type="CenterContainer" parent="SpecialThanks"] diff --git a/prefabs/menu/settings_page.tscn b/prefabs/menu/settings_page.tscn index 02b58b65..dd2d8acd 100644 --- a/prefabs/menu/settings_page.tscn +++ b/prefabs/menu/settings_page.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=92 format=2] +[gd_scene load_steps=93 format=2] [ext_resource path="res://uitheme.tres" type="Theme" id=1] [ext_resource path="res://assets/font/Lato/Lato-Regular.ttf" type="DynamicFontData" id=2] @@ -41,6 +41,7 @@ [ext_resource path="res://scripts/ui/settings/fov.gd" type="Script" id=39] [ext_resource path="res://assets/font/Lato/Lato-Bold.ttf" type="DynamicFontData" id=40] [ext_resource path="res://scripts/ui/settings/Bloom.gd" type="Script" id=41] +[ext_resource path="res://assets/notefx/miss/miss.png" type="Texture" id=42] [ext_resource path="res://scripts/ui/settings/NoteScale.gd" type="Script" id=44] [ext_resource path="res://scripts/ui/settings/ReplaceCustomFile.gd" type="Script" id=45] [ext_resource path="res://addons/native_dialogs/bin/native_dialog_open_file.gdns" type="Script" id=46] @@ -2350,11 +2351,11 @@ custom_styles/separator = SubResource( 55 ) [node name="Cursor" type="VBoxContainer" parent="TabContainer/World & Cursor"] margin_top = 276.0 margin_right = 1280.0 -margin_bottom = 700.0 +margin_bottom = 736.0 [node name="Group" type="MarginContainer" parent="TabContainer/World & Cursor/Cursor"] margin_right = 1280.0 -margin_bottom = 424.0 +margin_bottom = 460.0 mouse_filter = 1 custom_constants/margin_left = 66 custom_constants/margin_bottom = 12 @@ -2362,7 +2363,7 @@ custom_constants/margin_bottom = 12 [node name="H" type="GridContainer" parent="TabContainer/World & Cursor/Cursor/Group"] margin_left = 66.0 margin_right = 1280.0 -margin_bottom = 412.0 +margin_bottom = 448.0 [node name="CustomCursor" type="Control" parent="TabContainer/World & Cursor/Cursor/Group/H"] margin_right = 316.0 @@ -2437,10 +2438,85 @@ disabled = true icon = ExtResource( 4 ) expand_icon = true -[node name="CursorColorType" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] +[node name="CursorTrailImg" type="Control" parent="TabContainer/World & Cursor/Cursor/Group/H"] margin_top = 36.0 margin_right = 316.0 margin_bottom = 68.0 +rect_min_size = Vector2( 200, 32 ) + +[node name="CursorTrailImg" type="Button" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorTrailImg"] +margin_right = 200.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 200, 32 ) +rect_pivot_offset = Vector2( -432, 104 ) +hint_tooltip = "changes the image used by the cursor trail. uses the cursor image if unset" +theme = ExtResource( 1 ) +custom_colors/font_color_focus = Color( 0, 0, 0, 1 ) +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) +custom_colors/font_color_pressed = Color( 0, 0, 0, 1 ) +text = "Click to replace" +script = ExtResource( 45 ) +target = "trail" +default_image = ExtResource( 42 ) + +[node name="Label" type="Label" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorTrailImg/CursorTrailImg"] +margin_left = 289.0 +margin_right = 462.0 +margin_bottom = 32.0 +hint_tooltip = "ah, the cursor. arguably the most important part of this game." +focus_mode = 2 +mouse_filter = 1 +theme = ExtResource( 1 ) +custom_colors/font_color = Color( 0.898039, 0.94902, 1, 1 ) +custom_fonts/font = SubResource( 3 ) +text = "Cursor Trail (optional)" +valign = 1 + +[node name="ImgPreview" type="TextureRect" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorTrailImg/CursorTrailImg"] +anchor_left = 1.0 +anchor_right = 1.0 +margin_left = 5.0 +margin_right = 37.0 +margin_bottom = 32.0 +texture = ExtResource( 42 ) +expand = true +stretch_mode = 1 + +[node name="Button" type="Button" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorTrailImg/CursorTrailImg"] +visible = false +anchor_left = 1.0 +anchor_right = 1.0 +margin_left = 42.0 +margin_right = 74.0 +margin_bottom = 32.0 + +[node name="TextureRect" type="TextureRect" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorTrailImg/CursorTrailImg/Button"] +anchor_right = 1.0 +anchor_bottom = 1.0 +texture = ExtResource( 4 ) +expand = true +stretch_mode = 4 + +[node name="Clear" type="Button" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorTrailImg/CursorTrailImg"] +anchor_left = 1.0 +anchor_right = 1.0 +margin_left = 42.0 +margin_right = 74.0 +margin_bottom = 32.0 +theme = ExtResource( 1 ) +custom_colors/font_color_focus = Color( 0, 0, 0, 1 ) +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) +custom_colors/font_color_pressed = Color( 0, 0, 0, 1 ) +disabled = true +icon = ExtResource( 4 ) +expand_icon = true + +[node name="CursorColorType" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] +margin_top = 72.0 +margin_right = 316.0 +margin_bottom = 104.0 hint_tooltip = "how the cursor will be colored" [node name="Effect" type="MenuButton" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorColorType"] @@ -2475,9 +2551,9 @@ align = 2 valign = 1 [node name="cursor_color" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 72.0 +margin_top = 108.0 margin_right = 316.0 -margin_bottom = 104.0 +margin_bottom = 140.0 hint_tooltip = "[def. #ffffff] color used for \"Single Color\"" [node name="Color" type="ColorPickerButton" parent="TabContainer/World & Cursor/Cursor/Group/H/cursor_color"] @@ -2509,9 +2585,9 @@ align = 2 valign = 1 [node name="CursorScale" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 108.0 +margin_top = 144.0 margin_right = 316.0 -margin_bottom = 140.0 +margin_bottom = 176.0 hint_tooltip = "[def. 1] cursor size multiplier (doesn't affect hitboxes)" [node name="CursorScale" type="SpinBox" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorScale"] @@ -2540,9 +2616,9 @@ align = 2 valign = 1 [node name="CursorSpin" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 144.0 +margin_top = 180.0 margin_right = 316.0 -margin_bottom = 176.0 +margin_bottom = 212.0 hint_tooltip = "[def. 0°] makes the cursor image rotate" [node name="CursorSpin" type="SpinBox" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorSpin"] @@ -2575,16 +2651,16 @@ align = 2 valign = 1 [node name="SEPARATOR7" type="HSeparator" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 180.0 +margin_top = 216.0 margin_right = 316.0 -margin_bottom = 190.0 +margin_bottom = 226.0 rect_min_size = Vector2( 0, 10 ) custom_styles/separator = SubResource( 55 ) [node name="CursorTrail" type="CheckBox" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 194.0 +margin_top = 230.0 margin_right = 316.0 -margin_bottom = 222.0 +margin_bottom = 258.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "many of you have asked so i shall deliver" theme = ExtResource( 1 ) @@ -2602,9 +2678,9 @@ script = ExtResource( 54 ) target = "cursor_trail" [node name="SmartTrail" type="CheckBox" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 226.0 +margin_top = 262.0 margin_right = 316.0 -margin_bottom = 254.0 +margin_bottom = 290.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "makes the trail smooth by using distance moved to spawn particles instead of having a constant number" theme = ExtResource( 1 ) @@ -2622,9 +2698,9 @@ script = ExtResource( 54 ) target = "smart_trail" [node name="CursorTrailMode" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 258.0 +margin_top = 294.0 margin_right = 316.0 -margin_bottom = 290.0 +margin_bottom = 326.0 hint_tooltip = "how the trail will fade out" [node name="Effect" type="MenuButton" parent="TabContainer/World & Cursor/Cursor/Group/H/CursorTrailMode"] @@ -2657,9 +2733,9 @@ align = 2 valign = 1 [node name="TrailDetail" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 294.0 +margin_top = 330.0 margin_right = 316.0 -margin_bottom = 326.0 +margin_bottom = 362.0 hint_tooltip = "[def. 10] number of particles in the cursor trail / (smart trail) number spawned per grid unit" [node name="TrailDetail" type="SpinBox" parent="TabContainer/World & Cursor/Cursor/Group/H/TrailDetail"] @@ -2690,9 +2766,9 @@ align = 2 valign = 1 [node name="TrailTime" type="HBoxContainer" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 330.0 +margin_top = 366.0 margin_right = 316.0 -margin_bottom = 362.0 +margin_bottom = 398.0 hint_tooltip = "[def. 0.15] how long the cursor trail lasts in seconds" [node name="TrailTime" type="SpinBox" parent="TabContainer/World & Cursor/Cursor/Group/H/TrailTime"] @@ -2724,16 +2800,16 @@ align = 2 valign = 1 [node name="SEPARATOR3" type="HSeparator" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 366.0 +margin_top = 402.0 margin_right = 316.0 -margin_bottom = 376.0 +margin_bottom = 412.0 rect_min_size = Vector2( 0, 10 ) custom_styles/separator = SubResource( 55 ) [node name="TouchIndicator" type="Control" parent="TabContainer/World & Cursor/Cursor/Group/H"] -margin_top = 380.0 +margin_top = 416.0 margin_right = 316.0 -margin_bottom = 412.0 +margin_bottom = 448.0 rect_min_size = Vector2( 200, 32 ) [node name="TouchIndicator" type="Button" parent="TabContainer/World & Cursor/Cursor/Group/H/TouchIndicator"] @@ -2791,9 +2867,9 @@ icon = ExtResource( 4 ) expand_icon = true [node name="SEPARATOR" type="HSeparator" parent="TabContainer/World & Cursor"] -margin_top = 700.0 +margin_top = 736.0 margin_right = 1280.0 -margin_bottom = 730.0 +margin_bottom = 766.0 rect_min_size = Vector2( 0, 10 ) custom_constants/separation = 30 custom_styles/separator = SubResource( 55 ) @@ -2816,21 +2892,21 @@ custom_styles/separator = SubResource( 55 ) [node name="UI" type="VBoxContainer" parent="TabContainer/UI"] margin_top = 30.0 margin_right = 1280.0 -margin_bottom = 562.0 +margin_bottom = 594.0 [node name="Group" type="MarginContainer" parent="TabContainer/UI/UI"] margin_right = 1280.0 -margin_bottom = 532.0 +margin_bottom = 564.0 mouse_filter = 1 custom_constants/margin_left = 66 [node name="H" type="GridContainer" parent="TabContainer/UI/UI/Group"] margin_left = 66.0 margin_right = 1280.0 -margin_bottom = 532.0 +margin_bottom = 564.0 [node name="Grid" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_right = 170.0 +margin_right = 214.0 margin_bottom = 28.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "turns the note grid on or off" @@ -2854,7 +2930,7 @@ target = "enable_grid" [node name="Border" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] margin_top = 32.0 -margin_right = 170.0 +margin_right = 214.0 margin_bottom = 60.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "turns the note grid border on or off" @@ -2878,7 +2954,7 @@ target = "enable_border" [node name="SimpleHud" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] margin_top = 64.0 -margin_right = 170.0 +margin_right = 214.0 margin_bottom = 92.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "changes the side panels to show only your misses and pauses" @@ -2902,7 +2978,7 @@ target = "simple_hud" [node name="LetterGrade" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] margin_top = 96.0 -margin_right = 170.0 +margin_right = 214.0 margin_bottom = 124.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "shows a letter grade (SS, S, A, etc.) above your accuracy" @@ -2926,7 +3002,7 @@ target = "show_letter_grade" [node name="Config" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] margin_top = 128.0 -margin_right = 170.0 +margin_right = 214.0 margin_bottom = 156.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "shows your approach rate, hit window, and camera config at the start of songs (to show off)" @@ -2950,7 +3026,7 @@ target = "show_config" [node name="DisplayTrueCombo" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] margin_top = 160.0 -margin_right = 170.0 +margin_right = 214.0 margin_bottom = 188.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "displays the real value of your combo behind the grid" @@ -2969,11 +3045,32 @@ flat = true script = ExtResource( 54 ) target = "display_true_combo" -[node name="ShowHealth" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] +[node name="FullComboIndicators" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] margin_top = 192.0 -margin_right = 170.0 +margin_right = 214.0 margin_bottom = 220.0 rect_min_size = Vector2( 0, 28 ) +hint_tooltip = "highlights the letter grade and combo number (if visible) when you have 100% accuracy" +theme = ExtResource( 1 ) +custom_colors/font_color_disabled = Color( 0.898039, 0.94902, 1, 1 ) +custom_colors/font_color_focus = Color( 0.898039, 0.94902, 1, 1 ) +custom_colors/font_color_hover_pressed = Color( 0.898039, 0.94902, 1, 1 ) +custom_colors/font_color = Color( 0.898039, 0.94902, 1, 1 ) +custom_colors/font_color_hover = Color( 0.898039, 0.94902, 1, 1 ) +custom_colors/font_color_pressed = Color( 0.898039, 0.94902, 1, 1 ) +custom_fonts/font = SubResource( 4 ) +pressed = true +action_mode = 0 +text = "Show Full Combo Indicators" +flat = true +script = ExtResource( 54 ) +target = "show_full_combo_indicators" + +[node name="ShowHealth" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] +margin_top = 224.0 +margin_right = 214.0 +margin_bottom = 252.0 +rect_min_size = Vector2( 0, 28 ) hint_tooltip = "i don't understand why you'd turn this off but people have asked so here you go" theme = ExtResource( 1 ) custom_colors/font_color_disabled = Color( 0.898039, 0.94902, 1, 1 ) @@ -2991,9 +3088,9 @@ script = ExtResource( 54 ) target = "show_hp_bar" [node name="ShowTimer" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 224.0 -margin_right = 170.0 -margin_bottom = 252.0 +margin_top = 256.0 +margin_right = 214.0 +margin_bottom = 284.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "tells you how far into a song you are (and the name of the song)" theme = ExtResource( 1 ) @@ -3012,9 +3109,9 @@ script = ExtResource( 54 ) target = "show_timer" [node name="AccuracyBar" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 256.0 -margin_right = 170.0 -margin_bottom = 284.0 +margin_top = 288.0 +margin_right = 214.0 +margin_bottom = 316.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "shows your accuracy on a progress bar" theme = ExtResource( 1 ) @@ -3033,9 +3130,9 @@ script = ExtResource( 54 ) target = "show_accuracy_bar" [node name="ShowLeftPanel" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 288.0 -margin_right = 170.0 -margin_bottom = 316.0 +margin_top = 320.0 +margin_right = 214.0 +margin_bottom = 348.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "contains: combo meter, pause counter, accuracy" theme = ExtResource( 1 ) @@ -3054,9 +3151,9 @@ script = ExtResource( 54 ) target = "show_left_panel" [node name="ShowRightPanel" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 320.0 -margin_right = 170.0 -margin_bottom = 348.0 +margin_top = 352.0 +margin_right = 214.0 +margin_bottom = 380.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "contains: framerate, miss counter, notes hit / total notes" theme = ExtResource( 1 ) @@ -3075,9 +3172,9 @@ script = ExtResource( 54 ) target = "show_right_panel" [node name="ShowCursor" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 352.0 -margin_right = 170.0 -margin_bottom = 380.0 +margin_top = 384.0 +margin_right = 214.0 +margin_bottom = 412.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "to prevent issues where people forget they turned the cursor off, this doesn't save" theme = ExtResource( 1 ) @@ -3096,9 +3193,9 @@ script = ExtResource( 54 ) target = "show_cursor" [node name="AttachHpToGrid" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 384.0 -margin_right = 170.0 -margin_bottom = 412.0 +margin_top = 416.0 +margin_right = 214.0 +margin_bottom = 444.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "attaches your health bar + modifiers to the note grid" theme = ExtResource( 1 ) @@ -3116,9 +3213,9 @@ script = ExtResource( 54 ) target = "attach_hp_to_grid" [node name="AttachTimerToGrid" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 416.0 -margin_right = 170.0 -margin_bottom = 444.0 +margin_top = 448.0 +margin_right = 214.0 +margin_bottom = 476.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "attaches the timer + song name to the note grid" theme = ExtResource( 1 ) @@ -3136,9 +3233,9 @@ script = ExtResource( 54 ) target = "attach_timer_to_grid" [node name="Score Popup" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 448.0 -margin_right = 170.0 -margin_bottom = 476.0 +margin_top = 480.0 +margin_right = 214.0 +margin_bottom = 508.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "show the score you get from hitting a note at the bottom of the grid" theme = ExtResource( 1 ) @@ -3157,9 +3254,9 @@ script = ExtResource( 54 ) target = "score_popup" [node name="BillboardScore2" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 480.0 -margin_right = 170.0 -margin_bottom = 508.0 +margin_top = 512.0 +margin_right = 214.0 +margin_bottom = 540.0 rect_min_size = Vector2( 0, 28 ) hint_tooltip = "apply a billboard effect to the score popup" theme = ExtResource( 1 ) @@ -3210,9 +3307,9 @@ valign = 1 clip_text = true [node name="ExpandHUDonHR" type="CheckBox" parent="TabContainer/UI/UI/Group/H"] -margin_top = 512.0 -margin_right = 170.0 -margin_bottom = 532.0 +margin_top = 544.0 +margin_right = 214.0 +margin_bottom = 564.0 hint_tooltip = "expands the HUD when using Hard Rock" theme = ExtResource( 1 ) custom_colors/font_color_disabled = Color( 0.898039, 0.94902, 1, 1 ) @@ -3230,20 +3327,20 @@ script = ExtResource( 54 ) target = "expand_hud_onhr" [node name="UIColor" type="VBoxContainer" parent="TabContainer/UI"] -margin_top = 562.0 +margin_top = 594.0 margin_right = 1280.0 -margin_bottom = 2194.0 +margin_bottom = 2384.0 [node name="Group" type="MarginContainer" parent="TabContainer/UI/UIColor"] margin_right = 1280.0 -margin_bottom = 1632.0 +margin_bottom = 1790.0 mouse_filter = 1 custom_constants/margin_left = 66 [node name="H" type="GridContainer" parent="TabContainer/UI/UIColor/Group"] margin_left = 66.0 margin_right = 1280.0 -margin_bottom = 1632.0 +margin_bottom = 1790.0 [node name="Presets" type="Control" parent="TabContainer/UI/UIColor/Group/H"] margin_right = 500.0 @@ -4170,10 +4267,153 @@ margin_bottom = 1072.0 rect_min_size = Vector2( 500, 10 ) custom_styles/separator = SubResource( 55 ) -[node name="miss_text_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] +[node name="energy_fg" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] margin_top = 1076.0 margin_right = 500.0 margin_bottom = 1108.0 +hint_tooltip = "[def. ##DEFAULT##] fill color of timer progress bar (when skipping is possible)" + +[node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/energy_fg"] +margin_right = 100.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 100, 32 ) +rect_pivot_offset = Vector2( 286, -36 ) +hint_tooltip = "[def. ##DEFAULT##] fill color of energy bar" +theme = ExtResource( 1 ) +custom_styles/hover = SubResource( 50 ) +custom_styles/pressed = SubResource( 51 ) +custom_styles/focus = SubResource( 52 ) +custom_styles/disabled = SubResource( 53 ) +custom_styles/normal = SubResource( 54 ) +script = ExtResource( 51 ) +target = "energy_fg" + +[node name="Label" type="Label" parent="TabContainer/UI/UIColor/Group/H/energy_fg"] +margin_left = 104.0 +margin_top = 6.0 +margin_right = 212.0 +margin_bottom = 26.0 +focus_mode = 2 +theme = ExtResource( 1 ) +custom_colors/font_color = Color( 0.898039, 0.94902, 1, 1 ) +custom_fonts/font = SubResource( 3 ) +text = "Energy Bar - Fill" +align = 2 +valign = 1 + +[node name="energy_bg" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] +margin_top = 1112.0 +margin_right = 500.0 +margin_bottom = 1144.0 +hint_tooltip = "[def. ##DEFAULT##] fill color of timer progress bar (when skipping is possible)" + +[node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/energy_bg"] +margin_right = 100.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 100, 32 ) +rect_pivot_offset = Vector2( 286, -36 ) +hint_tooltip = "[def. ##DEFAULT##] empty color of energy bar" +theme = ExtResource( 1 ) +custom_styles/hover = SubResource( 50 ) +custom_styles/pressed = SubResource( 51 ) +custom_styles/focus = SubResource( 52 ) +custom_styles/disabled = SubResource( 53 ) +custom_styles/normal = SubResource( 54 ) +script = ExtResource( 51 ) +target = "energy_bg" + +[node name="Label" type="Label" parent="TabContainer/UI/UIColor/Group/H/energy_bg"] +margin_left = 104.0 +margin_top = 6.0 +margin_right = 236.0 +margin_bottom = 26.0 +focus_mode = 2 +theme = ExtResource( 1 ) +custom_colors/font_color = Color( 0.898039, 0.94902, 1, 1 ) +custom_fonts/font = SubResource( 3 ) +text = "Energy Bar - Empty" +align = 2 +valign = 1 + +[node name="energy_failed" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] +margin_top = 1148.0 +margin_right = 500.0 +margin_bottom = 1180.0 +hint_tooltip = "[def. ##DEFAULT##] color of the energy bar after failing" + +[node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/energy_failed"] +margin_right = 100.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 100, 32 ) +rect_pivot_offset = Vector2( 286, -36 ) +hint_tooltip = "[def. ##DEFAULT##] color of the energy bar after failing when playing with nofail" +theme = ExtResource( 1 ) +custom_styles/hover = SubResource( 50 ) +custom_styles/pressed = SubResource( 51 ) +custom_styles/focus = SubResource( 52 ) +custom_styles/disabled = SubResource( 53 ) +custom_styles/normal = SubResource( 54 ) +script = ExtResource( 51 ) +target = "energy_failed" + +[node name="Label" type="Label" parent="TabContainer/UI/UIColor/Group/H/energy_failed"] +margin_left = 104.0 +margin_top = 6.0 +margin_right = 233.0 +margin_bottom = 26.0 +focus_mode = 2 +theme = ExtResource( 1 ) +custom_colors/font_color = Color( 0.898039, 0.94902, 1, 1 ) +custom_fonts/font = SubResource( 3 ) +text = "Energy Bar - Failed" +align = 2 +valign = 1 + +[node name="energy_failed_flash" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] +margin_top = 1184.0 +margin_right = 500.0 +margin_bottom = 1216.0 +hint_tooltip = "[def. ##DEFAULT##] color of the energy bar after failing" + +[node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/energy_failed_flash"] +margin_right = 100.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 100, 32 ) +rect_pivot_offset = Vector2( 286, -36 ) +hint_tooltip = "[def. ##DEFAULT##] color that the energy bar flashes when you fail with nofail on" +theme = ExtResource( 1 ) +custom_styles/hover = SubResource( 50 ) +custom_styles/pressed = SubResource( 51 ) +custom_styles/focus = SubResource( 52 ) +custom_styles/disabled = SubResource( 53 ) +custom_styles/normal = SubResource( 54 ) +script = ExtResource( 51 ) +target = "energy_failed_flash" + +[node name="Label" type="Label" parent="TabContainer/UI/UIColor/Group/H/energy_failed_flash"] +margin_left = 104.0 +margin_top = 6.0 +margin_right = 283.0 +margin_bottom = 26.0 +focus_mode = 2 +theme = ExtResource( 1 ) +custom_colors/font_color = Color( 0.898039, 0.94902, 1, 1 ) +custom_fonts/font = SubResource( 3 ) +text = "Energy Bar - Failed (Flash)" +align = 2 +valign = 1 + +[node name="SEPARATOR15" type="HSeparator" parent="TabContainer/UI/UIColor/Group/H"] +margin_top = 1220.0 +margin_right = 500.0 +margin_bottom = 1230.0 +rect_min_size = Vector2( 500, 10 ) +custom_styles/separator = SubResource( 55 ) + +[node name="miss_text_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] +margin_top = 1234.0 +margin_right = 500.0 +margin_bottom = 1266.0 hint_tooltip = "[def. ##DEFAULT##] text color of the miss counter" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/miss_text_color"] @@ -4205,9 +4445,9 @@ align = 2 valign = 1 [node name="miss_flash_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1112.0 +margin_top = 1270.0 margin_right = 500.0 -margin_bottom = 1144.0 +margin_bottom = 1302.0 hint_tooltip = "[def. ##DEFAULT##] miss counter text briefly flashes this color when you get a miss" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/miss_flash_color"] @@ -4239,16 +4479,16 @@ align = 2 valign = 1 [node name="SEPARATOR11" type="HSeparator" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1148.0 +margin_top = 1306.0 margin_right = 500.0 -margin_bottom = 1158.0 +margin_bottom = 1316.0 rect_min_size = Vector2( 500, 10 ) custom_styles/separator = SubResource( 55 ) [node name="pause_text_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1162.0 +margin_top = 1320.0 margin_right = 500.0 -margin_bottom = 1194.0 +margin_bottom = 1352.0 hint_tooltip = "[def. ##DEFAULT##] color of the pause counter (with no pauses)" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/pause_text_color"] @@ -4280,9 +4520,9 @@ align = 2 valign = 1 [node name="pause_used_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1198.0 +margin_top = 1356.0 margin_right = 500.0 -margin_bottom = 1230.0 +margin_bottom = 1388.0 hint_tooltip = "[def. ##DEFAULT##] color of the pause counter (with at least 1 pause)" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/pause_used_color"] @@ -4314,16 +4554,16 @@ align = 2 valign = 1 [node name="SEPARATOR12" type="HSeparator" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1234.0 +margin_top = 1392.0 margin_right = 500.0 -margin_bottom = 1244.0 +margin_bottom = 1402.0 rect_min_size = Vector2( 500, 10 ) custom_styles/separator = SubResource( 55 ) [node name="grade_ss_saturation" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1248.0 +margin_top = 1406.0 margin_right = 500.0 -margin_bottom = 1280.0 +margin_bottom = 1438.0 hint_tooltip = "[def. ##DEFAULT##] hsv saturation of rainbow effect on grade SS" [node name="SpinBox" type="SpinBox" parent="TabContainer/UI/UIColor/Group/H/grade_ss_saturation"] @@ -4354,9 +4594,9 @@ align = 2 valign = 1 [node name="grade_ss_value" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1284.0 +margin_top = 1442.0 margin_right = 500.0 -margin_bottom = 1316.0 +margin_bottom = 1474.0 hint_tooltip = "[def. ##DEFAULT##] hsv value of rainbow effect on grade SS" [node name="SpinBox" type="SpinBox" parent="TabContainer/UI/UIColor/Group/H/grade_ss_value"] @@ -4387,9 +4627,9 @@ align = 2 valign = 1 [node name="grade_ss_shine" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1320.0 +margin_top = 1478.0 margin_right = 500.0 -margin_bottom = 1352.0 +margin_bottom = 1510.0 hint_tooltip = "[def. ##DEFAULT##] level of shine shader when grade is SS" [node name="SpinBox" type="SpinBox" parent="TabContainer/UI/UIColor/Group/H/grade_ss_shine"] @@ -4420,16 +4660,16 @@ align = 2 valign = 1 [node name="SEPARATOR13" type="HSeparator" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1356.0 +margin_top = 1514.0 margin_right = 500.0 -margin_bottom = 1366.0 +margin_bottom = 1524.0 rect_min_size = Vector2( 500, 10 ) custom_styles/separator = SubResource( 55 ) [node name="grade_s_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1370.0 +margin_top = 1528.0 margin_right = 500.0 -margin_bottom = 1402.0 +margin_bottom = 1560.0 hint_tooltip = "[def. ##DEFAULT##] color of text when grade is S" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/grade_s_color"] @@ -4461,9 +4701,9 @@ align = 2 valign = 1 [node name="grade_s_shine" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1406.0 +margin_top = 1564.0 margin_right = 500.0 -margin_bottom = 1438.0 +margin_bottom = 1596.0 hint_tooltip = "[def. ##DEFAULT##] level of shine shader when grade is S" [node name="SpinBox" type="SpinBox" parent="TabContainer/UI/UIColor/Group/H/grade_s_shine"] @@ -4494,16 +4734,16 @@ align = 2 valign = 1 [node name="SEPARATOR14" type="HSeparator" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1442.0 +margin_top = 1600.0 margin_right = 500.0 -margin_bottom = 1452.0 +margin_bottom = 1610.0 rect_min_size = Vector2( 500, 10 ) custom_styles/separator = SubResource( 55 ) [node name="grade_a_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1456.0 +margin_top = 1614.0 margin_right = 500.0 -margin_bottom = 1488.0 +margin_bottom = 1646.0 hint_tooltip = "[def. ##DEFAULT##] color of text when grade is A" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/grade_a_color"] @@ -4535,9 +4775,9 @@ align = 2 valign = 1 [node name="grade_b_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1492.0 +margin_top = 1650.0 margin_right = 500.0 -margin_bottom = 1524.0 +margin_bottom = 1682.0 hint_tooltip = "[def. ##DEFAULT##] color of text when grade is B" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/grade_b_color"] @@ -4569,9 +4809,9 @@ align = 2 valign = 1 [node name="grade_c_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1528.0 +margin_top = 1686.0 margin_right = 500.0 -margin_bottom = 1560.0 +margin_bottom = 1718.0 hint_tooltip = "[def. ##DEFAULT##] color of text when grade is C" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/grade_c_color"] @@ -4603,9 +4843,9 @@ align = 2 valign = 1 [node name="grade_d_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1564.0 +margin_top = 1722.0 margin_right = 500.0 -margin_bottom = 1596.0 +margin_bottom = 1754.0 hint_tooltip = "[def. ##DEFAULT##] color of text when grade is D" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/grade_d_color"] @@ -4637,9 +4877,9 @@ align = 2 valign = 1 [node name="grade_f_color" type="HBoxContainer" parent="TabContainer/UI/UIColor/Group/H"] -margin_top = 1600.0 +margin_top = 1758.0 margin_right = 500.0 -margin_bottom = 1632.0 +margin_bottom = 1790.0 hint_tooltip = "[def. ##DEFAULT##] color of text when grade is F" [node name="Color" type="ColorPickerButton" parent="TabContainer/UI/UIColor/Group/H/grade_f_color"] @@ -4671,9 +4911,9 @@ align = 2 valign = 1 [node name="SEPARATOR" type="HSeparator" parent="TabContainer/UI"] -margin_top = 2194.0 +margin_top = 2384.0 margin_right = 1280.0 -margin_bottom = 2224.0 +margin_bottom = 2414.0 rect_min_size = Vector2( 0, 10 ) custom_constants/separation = 30 custom_styles/separator = SubResource( 55 ) diff --git a/prefabs/menu/string.tscn b/prefabs/menu/string.tscn index 7a3f0c93..cdc9fbea 100644 --- a/prefabs/menu/string.tscn +++ b/prefabs/menu/string.tscn @@ -1,11 +1,12 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=14 format=2] [ext_resource path="res://uitheme.tres" type="Theme" id=1] [ext_resource path="res://assets/font/Noto_Sans_JP/NotoSansJP-Medium.otf" type="DynamicFontData" id=2] [ext_resource path="res://assets/font/Lato/Lato-Regular.ttf" type="DynamicFontData" id=3] [ext_resource path="res://scripts/ui/StringPrompt2D.gd" type="Script" id=4] -[ext_resource path="res://assets/sfx/new_best.wav" type="AudioStream" id=5] -[ext_resource path="res://assets/sfx/button-16.wav" type="AudioStream" id=7] +[ext_resource path="res://assets/sfx/mkw_alert.mp3" type="AudioStream" id=5] +[ext_resource path="res://assets/sfx/mkw_back.mp3" type="AudioStream" id=6] +[ext_resource path="res://assets/sfx/mkw_next.mp3" type="AudioStream" id=7] [sub_resource type="StyleBoxFlat" id=4] bg_color = Color( 0.0784314, 0.0784314, 0.0784314, 1 ) @@ -42,17 +43,14 @@ script = ExtResource( 4 ) [node name="Alert" type="AudioStreamPlayer" parent="."] stream = ExtResource( 5 ) -volume_db = -6.0 bus = "Prompt" [node name="Next" type="AudioStreamPlayer" parent="."] stream = ExtResource( 7 ) -volume_db = -6.0 bus = "Prompt" [node name="Back" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 7 ) -volume_db = -6.0 +stream = ExtResource( 6 ) bus = "Prompt" [node name="C" type="CenterContainer" parent="."] diff --git a/project.godot b/project.godot index ef22b89a..a2e1845b 100644 --- a/project.godot +++ b/project.godot @@ -49,72 +49,72 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://scripts/cursordance/Directional.gd" }, { -"base": "", +"base": "Reference", "class": "DiscordActivity", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_activity.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordActivityAssets", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_activity_assets.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordActivityManager", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_activity_manager.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordActivityParty", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_activity_party.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordActivitySecrets", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_activity_secrets.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordActivityTimestamps", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_activity_timestamps.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordCore", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_core.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordLobby", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_lobby.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordLobbyManager", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_lobby_manager.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordLobbyTransaction", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_lobby_transaction.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordOverlayManager", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_overlay_manager.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordPartySize", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_party_size.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordResult", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_result.gdns" }, { -"base": "", +"base": "Reference", "class": "DiscordUser", "language": "NativeScript", "path": "res://addons/discord_game_sdk/discord_user.gdns" @@ -175,6 +175,11 @@ _global_script_classes=[ { "path": "res://scripts/content/resources/ObjParse.gd" }, { "base": "Resource", +"class": "OnlineAccount", +"language": "GDScript", +"path": "res://scripts/online/OnlineAccount.gd" +}, { +"base": "Resource", "class": "Registry", "language": "GDScript", "path": "res://scripts/content/Registry.gd" @@ -243,6 +248,7 @@ _global_script_class_icons={ "NoteMesh": "", "Notify2D": "", "ObjParse": "", +"OnlineAccount": "", "Registry": "", "Replay": "", "SimpleDanceMover": "", @@ -255,7 +261,7 @@ _global_script_class_icons={ [application] config/name="Rhythia" -run/main_scene="res://scenes/init.tscn" +run/main_scene="res://scenes/init3d.tscn" config/use_custom_user_dir=true config/custom_user_dir_name="SoundSpacePlus" run/delta_sync_after_draw=true @@ -265,7 +271,7 @@ boot_splash/bg_color=Color( 0, 0, 0, 1 ) config/icon="res://assets/images/branding/icon.png" config/windows_native_icon="res://icon.ico" config/quit_on_go_back=false -config/version="oct31-2024" +config/version="dev-menu3d" config/autoload_map_registries="test maps|res://test_assets/test_maps.sspmr;built in|res://content/songs/built_in_maps.sspmr" config/enable_new_content_mgr=true config/default_menu_target="res://scenes/menu/menu2.tscn" @@ -300,6 +306,7 @@ config/is_using_controller=true config/discord_rpc=true config/discord_rpc.editor=true networking/github_repo="David20122/sound-space-plus" +networking/online_features=true [audio] @@ -321,6 +328,7 @@ SFXManager="*res://scripts/game/SFXManager.gd" gdscript/warnings/unused_argument=false gdscript/warnings/narrowing_conversion=false gdscript/warnings/unused_signal=false +gdscript/warnings/return_value_discarded=false [discord_presence] @@ -524,6 +532,31 @@ menu_quickbar={ , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":10,"pressure":0.0,"pressed":false,"script":null) ] } +warning_test2={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":true,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +warning_test3={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":true,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +warning_test4={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":true,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +dismiss_bar={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":67,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +debug_devmenu={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":true,"control":true,"meta":false,"command":true,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} [locale] diff --git a/scenes/devmenu.tscn b/scenes/devmenu.tscn new file mode 100644 index 00000000..979658ba --- /dev/null +++ b/scenes/devmenu.tscn @@ -0,0 +1,554 @@ +[gd_scene load_steps=41 format=2] + +[ext_resource path="res://uitheme.tres" type="Theme" id=1] +[ext_resource path="res://assets/font/Lato/Lato-Regular.ttf" type="DynamicFontData" id=2] +[ext_resource path="res://assets/font/Noto_Sans_JP/NotoSansJP-Medium.otf" type="DynamicFontData" id=3] +[ext_resource path="res://assets/font/NotoColorEmoji.ttf" type="DynamicFontData" id=4] +[ext_resource path="res://scripts/ui/menu/WarningBar.gd" type="Script" id=5] +[ext_resource path="res://scripts/ui/menu/VersionNumber.gd" type="Script" id=6] +[ext_resource path="res://assets/images/branding/icon.png" type="Texture" id=7] +[ext_resource path="res://assets/images/menu3d/badges/map_offline.svg" type="Texture" id=8] +[ext_resource path="res://assets/images/menu3d/icons/online.svg" type="Texture" id=9] +[ext_resource path="res://assets/images/menu3d/badges/contentcreator.svg" type="Texture" id=10] +[ext_resource path="res://assets/images/menu3d/badges/map_online.svg" type="Texture" id=11] +[ext_resource path="res://assets/images/menu3d/icons/online_no.svg" type="Texture" id=12] +[ext_resource path="res://assets/images/menu3d/badges/developer.svg" type="Texture" id=13] +[ext_resource path="res://assets/images/menu3d/icons/advanced.svg" type="Texture" id=14] +[ext_resource path="res://assets/images/menu3d/badges/rct.svg" type="Texture" id=15] +[ext_resource path="res://assets/images/menu3d/badges/map_ranked.svg" type="Texture" id=16] +[ext_resource path="res://assets/images/menu3d/badges/map_unranked.svg" type="Texture" id=17] +[ext_resource path="res://assets/images/menu3d/icons/account_signedout.svg" type="Texture" id=18] +[ext_resource path="res://assets/images/menu3d/badges/mmt.svg" type="Texture" id=19] +[ext_resource path="res://assets/images/menu3d/icons/maintenance.svg" type="Texture" id=20] +[ext_resource path="res://assets/images/menu3d/icons/sword.svg" type="Texture" id=21] +[ext_resource path="res://assets/images/menu3d/badges/moderator.svg" type="Texture" id=22] +[ext_resource path="res://scripts/ui/devmenu/devmenu.gd" type="Script" id=23] +[ext_resource path="res://assets/images/menu3d/badges/silenced.svg" type="Texture" id=24] +[ext_resource path="res://assets/images/menu3d/badges/map_wip.svg" type="Texture" id=25] +[ext_resource path="res://prefabs/menu/credits.tscn" type="PackedScene" id=26] +[ext_resource path="res://prefabs/menu/settings_page.tscn" type="PackedScene" id=27] +[ext_resource path="res://assets/sfx/menu_full.mp3" type="AudioStream" id=28] +[ext_resource path="res://scripts/ui/menu/buttons/RunMapButton.gd" type="Script" id=29] +[ext_resource path="res://scripts/ui/menu/buttons/Favorite.gd" type="Script" id=30] +[ext_resource path="res://scripts/ui/menu/menu2.gd" type="Script" id=31] +[ext_resource path="res://scripts/ui/menu/buttons/PlaySong.gd" type="Script" id=32] +[ext_resource path="res://scripts/ui/settings/MusicVolumeSetter.gd" type="Script" id=33] +[ext_resource path="res://assets/images/ui/settings_dark.png" type="Texture" id=34] +[ext_resource path="res://scripts/ui/menu/buttons/MapActions.gd" type="Script" id=35] +[ext_resource path="res://assets/images/devbg.png" type="Texture" id=36] +[ext_resource path="res://assets/notefx/explosion/explosion.tres" type="Texture" id=37] + +[sub_resource type="StyleBoxFlat" id=1] +bg_color = Color( 0.498039, 0.894118, 1, 1 ) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 + +[sub_resource type="StyleBoxFlat" id=3] +bg_color = Color( 0.129412, 0.129412, 0.129412, 0.568627 ) + +[sub_resource type="DynamicFont" id=2] +use_filter = true +font_data = ExtResource( 2 ) +fallback/0 = ExtResource( 4 ) +fallback/1 = ExtResource( 3 ) + +[node name="Menu" type="TextureRect"] +self_modulate = Color( 1, 1, 1, 0 ) +anchor_right = 1.0 +anchor_bottom = 1.0 +theme = ExtResource( 1 ) +texture = ExtResource( 36 ) +expand = true +script = ExtResource( 31 ) + +[node name="Menu" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_constants/margin_right = 6 +custom_constants/margin_top = 6 +custom_constants/margin_left = 6 +custom_constants/margin_bottom = 6 +script = ExtResource( 23 ) + +[node name="V" type="VBoxContainer" parent="Menu"] +margin_left = 6.0 +margin_top = 6.0 +margin_right = 1274.0 +margin_bottom = 714.0 + +[node name="Bar" type="HFlowContainer" parent="Menu/V"] +margin_right = 1268.0 +margin_bottom = 32.0 +rect_pivot_offset = Vector2( -422, 4 ) + +[node name="Quit" type="Button" parent="Menu/V/Bar"] +margin_right = 64.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 64, 32 ) +theme = ExtResource( 1 ) +custom_styles/pressed = SubResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "quit" +icon = ExtResource( 37 ) +icon_align = 1 +expand_icon = true + +[node name="Logo" type="TextureRect" parent="Menu/V/Bar"] +visible = false +margin_left = 68.0 +margin_right = 100.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +texture = ExtResource( 7 ) +expand = true +stretch_mode = 1 + +[node name="VersionNumber" type="Label" parent="Menu/V/Bar"] +margin_left = 68.0 +margin_top = 6.0 +margin_right = 228.0 +margin_bottom = 26.0 +theme_type_variation = "DevMenuMonoLabel" +text = "Rhythia [?????-????]" +script = ExtResource( 6 ) + +[node name="Debug" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.239216, 0.988235, 1 ) +margin_left = 232.0 +margin_right = 256.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 13 ) +expand = true +stretch_mode = 6 + +[node name="Release" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.239216, 0.87451, 1, 1 ) +margin_left = 260.0 +margin_right = 284.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 10 ) +expand = true +stretch_mode = 6 + +[node name="OnlineServicesYes" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.0235294, 0.803922, 0.0901961, 1 ) +margin_left = 288.0 +margin_right = 312.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 9 ) +expand = true +stretch_mode = 6 + +[node name="OnlineServicesNo" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.752941, 0.435294, 1 ) +margin_left = 316.0 +margin_right = 340.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 12 ) +expand = true +stretch_mode = 6 + +[node name="OnlineMapsYes" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.0235294, 0.803922, 0.0901961, 1 ) +margin_left = 344.0 +margin_right = 368.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 11 ) +expand = true +stretch_mode = 6 + +[node name="OnlineMapsNo" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.752941, 0.435294, 1 ) +margin_left = 372.0 +margin_right = 396.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 8 ) +expand = true +stretch_mode = 6 + +[node name="ScoreSubYes" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.0235294, 0.803922, 0.0901961, 1 ) +margin_left = 400.0 +margin_right = 424.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 16 ) +expand = true +stretch_mode = 6 + +[node name="ScoreSubNo" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.752941, 0.435294, 1 ) +margin_left = 428.0 +margin_right = 452.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 17 ) +expand = true +stretch_mode = 6 + +[node name="Silenced" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.356863, 0.356863, 1 ) +margin_left = 456.0 +margin_right = 480.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 24 ) +expand = true +stretch_mode = 6 + +[node name="Banned" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.356863, 0.356863, 1 ) +margin_left = 484.0 +margin_right = 508.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 22 ) +expand = true +stretch_mode = 6 + +[node name="AntiTamper" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.356863, 0.356863, 1 ) +margin_left = 512.0 +margin_right = 536.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 25 ) +expand = true +stretch_mode = 6 + +[node name="ServerDown" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.356863, 0.356863, 1 ) +margin_left = 540.0 +margin_right = 564.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 20 ) +expand = true +stretch_mode = 6 + +[node name="NoInternet" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.356863, 0.356863, 1 ) +margin_left = 568.0 +margin_right = 592.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 12 ) +expand = true +stretch_mode = 6 + +[node name="SignedOut" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 1, 0.356863, 0.356863, 1 ) +margin_left = 596.0 +margin_right = 620.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 18 ) +expand = true +stretch_mode = 6 + +[node name="IsAdmin" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.356863, 0.607843, 1, 1 ) +margin_left = 624.0 +margin_right = 648.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 14 ) +expand = true +stretch_mode = 6 + +[node name="IsModerator" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.356863, 0.607843, 1, 1 ) +margin_left = 652.0 +margin_right = 676.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 21 ) +expand = true +stretch_mode = 6 + +[node name="IsMMT" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.356863, 0.607843, 1, 1 ) +margin_left = 680.0 +margin_right = 704.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 19 ) +expand = true +stretch_mode = 6 + +[node name="IsRCT" type="TextureRect" parent="Menu/V/Bar"] +modulate = Color( 0.356863, 0.607843, 1, 1 ) +margin_left = 708.0 +margin_right = 732.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 24, 32 ) +texture = ExtResource( 15 ) +expand = true +stretch_mode = 6 + +[node name="DevMenuTag" type="Label" parent="Menu/V/Bar"] +margin_left = 736.0 +margin_top = 6.0 +margin_right = 880.0 +margin_bottom = 26.0 +theme_type_variation = "DevMenuMonoLabel" +text = "debug menu!!!! :3c" + +[node name="VSeparator" type="VSeparator" parent="Menu/V/Bar"] +margin_left = 884.0 +margin_right = 888.0 +margin_bottom = 32.0 + +[node name="Label" type="Label" parent="Menu/V/Bar"] +margin_left = 892.0 +margin_top = 6.0 +margin_right = 935.0 +margin_bottom = 26.0 +text = "Go to:" + +[node name="ToDevMenu" type="Button" parent="Menu/V/Bar"] +margin_left = 939.0 +margin_right = 1003.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 0, 32 ) +theme = ExtResource( 1 ) +custom_styles/pressed = SubResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "devmenu" + +[node name="ToMenu2" type="Button" parent="Menu/V/Bar"] +margin_left = 1007.0 +margin_right = 1055.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 0, 32 ) +theme = ExtResource( 1 ) +custom_styles/pressed = SubResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "menu2" + +[node name="ToMenu3" type="Button" parent="Menu/V/Bar"] +margin_left = 1059.0 +margin_right = 1116.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 0, 32 ) +theme = ExtResource( 1 ) +custom_styles/pressed = SubResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "menu3d" + +[node name="ToInit3d" type="Button" parent="Menu/V/Bar"] +margin_left = 1120.0 +margin_right = 1161.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 0, 32 ) +theme = ExtResource( 1 ) +custom_styles/pressed = SubResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "init3d" + +[node name="ToSongload" type="Button" parent="Menu/V/Bar"] +margin_left = 1165.0 +margin_right = 1198.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 0, 32 ) +theme = ExtResource( 1 ) +custom_styles/pressed = SubResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "song" + +[node name="VSeparator2" type="VSeparator" parent="Menu/V/Bar"] +margin_left = 1202.0 +margin_right = 1206.0 +margin_bottom = 32.0 + +[node name="Main" type="TabContainer" parent="Menu/V"] +margin_top = 36.0 +margin_right = 1268.0 +margin_bottom = 674.0 +size_flags_vertical = 3 +custom_styles/panel = SubResource( 3 ) +tab_align = 0 + +[node name="Songs" type="MarginContainer" parent="Menu/V/Main"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = 30.0 + +[node name="Split" type="HSplitContainer" parent="Menu/V/Main/Songs"] +margin_right = 1268.0 +margin_bottom = 608.0 +custom_constants/autohide = 0 +split_offset = 300 + +[node name="Map" type="ScrollContainer" parent="Menu/V/Main/Songs/Split"] +margin_right = 300.0 +margin_bottom = 608.0 + +[node name="V" type="VBoxContainer" parent="Menu/V/Main/Songs/Split/Map"] +margin_right = 300.0 +margin_bottom = 608.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="DevMenuTag" type="Label" parent="Menu/V/Main/Songs/Split/Map/V"] +margin_right = 300.0 +margin_bottom = 20.0 +theme_type_variation = "DevMenuMonoLabel" +text = "DEBUG MENU" + +[node name="Run" type="Button" parent="Menu/V/Main/Songs/Split/Map/V"] +margin_top = 24.0 +margin_right = 300.0 +margin_bottom = 72.0 +rect_min_size = Vector2( 0, 48 ) +hint_tooltip = "(Spacebar, Xbox A)" +size_flags_stretch_ratio = 3.0 +theme = ExtResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "Start!" +script = ExtResource( 29 ) + +[node name="Actions" type="MenuButton" parent="Menu/V/Main/Songs/Split/Map/V"] +margin_top = 76.0 +margin_right = 300.0 +margin_bottom = 100.0 +rect_min_size = Vector2( 32, 24 ) +focus_mode = 2 +theme = ExtResource( 1 ) +custom_colors/font_color_disabled = Color( 0, 0, 0, 1 ) +custom_colors/font_color_focus = Color( 0, 0, 0, 1 ) +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) +custom_colors/font_color_pressed = Color( 0, 0, 0, 1 ) +text = "Actions" +icon = ExtResource( 34 ) +flat = false +expand_icon = true +script = ExtResource( 35 ) + +[node name="Favorite" type="Button" parent="Menu/V/Main/Songs/Split/Map/V"] +margin_top = 104.0 +margin_right = 300.0 +margin_bottom = 128.0 +rect_min_size = Vector2( 0, 24 ) +theme = ExtResource( 1 ) +toggle_mode = true +action_mode = 0 +text = "Favorite" +script = ExtResource( 30 ) + +[node name="PreviewMusic" type="Button" parent="Menu/V/Main/Songs/Split/Map/V"] +margin_top = 132.0 +margin_right = 300.0 +margin_bottom = 156.0 +rect_min_size = Vector2( 0, 24 ) +theme = ExtResource( 1 ) +action_mode = 0 +text = "Play Music" +script = ExtResource( 32 ) + +[node name="Song" type="AudioStreamPlayer" parent="Menu/V/Main/Songs/Split/Map/V/PreviewMusic"] +pause_mode = 2 +bus = "Music" +script = ExtResource( 33 ) + +[node name="MenuSong" type="AudioStreamPlayer" parent="Menu/V/Main/Songs/Split/Map/V/PreviewMusic"] +pause_mode = 2 +stream = ExtResource( 28 ) +volume_db = -10.0 +bus = "Music" + +[node name="DevMenuTag2" type="Label" parent="Menu/V/Main/Songs/Split/Map/V"] +margin_top = 160.0 +margin_right = 300.0 +margin_bottom = 180.0 +theme_type_variation = "DevMenuMonoLabel" +text = "DEBUG MENU" + +[node name="List" type="ScrollContainer" parent="Menu/V/Main/Songs/Split"] +margin_left = 312.0 +margin_right = 1268.0 +margin_bottom = 608.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="Menu/V/Main/Songs/Split/List"] +margin_right = 956.0 +margin_bottom = 608.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="Settings" type="ScrollContainer" parent="Menu/V/Main"] +visible = false +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = 30.0 + +[node name="L" parent="Menu/V/Main/Settings" instance=ExtResource( 27 )] +anchor_right = 0.0 +margin_right = 1268.0 +margin_bottom = 915.0 + +[node name="Credits" type="ScrollContainer" parent="Menu/V/Main"] +visible = false +margin_right = 12.0 +margin_bottom = 12.0 + +[node name="L" parent="Menu/V/Main/Credits" instance=ExtResource( 26 )] +margin_right = 720.0 +margin_bottom = 1521.0 + +[node name="WarningBar" type="ColorRect" parent="Menu/V"] +margin_top = 678.0 +margin_right = 1268.0 +margin_bottom = 708.0 +rect_min_size = Vector2( 0, 30 ) +size_flags_vertical = 0 +color = Color( 0.278431, 0.490196, 0.580392, 1 ) +script = ExtResource( 5 ) +is_devmenu = true + +[node name="L" type="Label" parent="Menu/V/WarningBar"] +anchor_bottom = 1.0 +margin_right = 201.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color_shadow = Color( 0, 0, 0, 0 ) +custom_fonts/font = SubResource( 2 ) +text = "This is a warning bar message" +valign = 1 + +[node name="L2" type="Label" parent="Menu/V/WarningBar"] +anchor_bottom = 1.0 +margin_right = 201.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color_shadow = Color( 0, 0, 0, 0 ) +custom_fonts/font = SubResource( 2 ) +text = "This is a warning bar message" +valign = 1 + +[node name="Button" type="Button" parent="Menu/V/WarningBar"] +anchor_right = 1.0 +anchor_bottom = 1.0 +flat = true + +[node name="BlackFade" type="ColorRect" parent="."] +visible = false +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0, 0, 0, 0 ) +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/scenes/errors/DeleteSettingsFile.gd b/scenes/errors/DeleteSettingsFile.gd index 688b58ef..9d5e29a8 100644 --- a/scenes/errors/DeleteSettingsFile.gd +++ b/scenes/errors/DeleteSettingsFile.gd @@ -34,7 +34,7 @@ func confirm(v:int): #get_node("../BlackFade").target = true #yield(get_node("../BlackFade"),"done_fading") Engine.target_fps = 0 - get_tree().change_scene("res://scenes/init.tscn") + get_tree().change_scene("res://scenes/init3d.tscn") return else: Globals.confirm_prompt.s_back.play() diff --git a/scenes/init3d.tscn b/scenes/init3d.tscn new file mode 100644 index 00000000..699aa5f4 --- /dev/null +++ b/scenes/init3d.tscn @@ -0,0 +1,326 @@ +[gd_scene load_steps=37 format=2] + +[ext_resource path="res://assets/images/branding/logo.png" type="Texture" id=1] +[ext_resource path="res://assets/sfx/music/init3d/drums.ogg" type="AudioStream" id=2] +[ext_resource path="res://assets/images/menu3d/bgtile_b.png" type="Texture" id=3] +[ext_resource path="res://assets/sfx/music/init3d/piano.ogg" type="AudioStream" id=4] +[ext_resource path="res://assets/images/cursors/circle.png" type="Texture" id=5] +[ext_resource path="res://assets/sfx/music/init3d/phaser.ogg" type="AudioStream" id=6] +[ext_resource path="res://assets/sfx/music/init3d/strings.ogg" type="AudioStream" id=7] +[ext_resource path="res://scripts/ui/menu3d/GameInit.gd" type="Script" id=8] +[ext_resource path="res://scripts/ui/menu3d/Controls.gd" type="Script" id=9] +[ext_resource path="res://assets/font/debug.tres" type="DynamicFont" id=10] +[ext_resource path="res://assets/font/Lato/Lato-Regular.ttf" type="DynamicFontData" id=11] +[ext_resource path="res://scripts/ui/menu3d/init3d.gd" type="Script" id=12] +[ext_resource path="res://scripts/ui/menu3d/Music.gd" type="Script" id=13] +[ext_resource path="res://scripts/ui/menu3d/PointerTrail.gd" type="Script" id=14] +[ext_resource path="res://assets/images/branding/icon.png" type="Texture" id=15] +[ext_resource path="res://assets/images/branding/icon_glow.png" type="Texture" id=16] + +[sub_resource type="Environment" id=1] +background_mode = 1 +background_color = Color( 0.0313726, 0.00784314, 0.0588235, 1 ) + +[sub_resource type="Shader" id=2] +code = "shader_type spatial; + +uniform sampler2D base_map: hint_albedo; +uniform vec4 color: hint_color = vec4(1.0); +uniform float uv_scale = 1.0; + +void fragment() { + vec2 cUV = (UV * 2.0) - vec2(1.0, 1.0); + vec4 m = color * texture(base_map, (UV) * uv_scale); + + ALPHA = m.a * clamp(1.0 - length(cUV), 0.0, 1.0); + ALBEDO = m.rgb; +}" + +[sub_resource type="ShaderMaterial" id=7] +shader = SubResource( 2 ) +shader_param/color = Color( 0.109804, 0.109804, 0.109804, 1 ) +shader_param/uv_scale = 8.0 +shader_param/base_map = ExtResource( 3 ) + +[sub_resource type="QuadMesh" id=19] +material = SubResource( 7 ) +size = Vector2( 8, 8 ) + +[sub_resource type="Shader" id=8] +code = "shader_type spatial; + +uniform sampler2D base_map: hint_albedo; +uniform vec4 color: hint_color = vec4(1.0); +uniform float uv_scale = 1.0; + +void fragment() { + vec2 cUV = (UV * 2.0) - vec2(1.0, 1.0); + float bv = mod(TIME - (UV.y * 250.0), 3.0); + float v = clamp(clamp(bv, 0.0, 1.0) - clamp(bv - 1.0, 0.0, 1.0) - 0.8, 0.0, 1.0); + + ALPHA = color.a * v * clamp(1.0 - length(cUV), 0.0, 1.0); + ALBEDO = color.rgb; +}" + +[sub_resource type="ShaderMaterial" id=9] +shader = SubResource( 8 ) +shader_param/color = Color( 1, 1, 1, 0.113725 ) +shader_param/uv_scale = 8.0 +shader_param/base_map = ExtResource( 3 ) + +[sub_resource type="QuadMesh" id=4] +material = SubResource( 9 ) +size = Vector2( 8, 8 ) + +[sub_resource type="BoxShape" id=31] +extents = Vector3( 4.2, 4, 1.25 ) + +[sub_resource type="SpatialMaterial" id=25] +flags_unshaded = true +albedo_color = Color( 1, 0, 0, 1 ) + +[sub_resource type="QuadMesh" id=26] +material = SubResource( 25 ) +size = Vector2( 0.1, 0.1 ) + +[sub_resource type="SpatialMaterial" id=29] +flags_unshaded = true +albedo_color = Color( 1, 1, 0, 1 ) + +[sub_resource type="QuadMesh" id=30] +material = SubResource( 29 ) +size = Vector2( 0.1, 0.1 ) + +[sub_resource type="SpatialMaterial" id=27] + +[sub_resource type="QuadMesh" id=28] +material = SubResource( 27 ) +size = Vector2( 2, 2 ) + +[sub_resource type="SpatialMaterial" id=6] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +albedo_texture = ExtResource( 5 ) + +[sub_resource type="QuadMesh" id=14] +material = SubResource( 6 ) +size = Vector2( 0.273, 0.273 ) + +[sub_resource type="QuadMesh" id=34] +size = Vector2( 0.273, 0.273 ) + +[sub_resource type="SpatialMaterial" id=33] +resource_local_to_scene = true +render_priority = 1 +flags_transparent = true +flags_unshaded = true +flags_do_not_receive_shadows = true +flags_disable_ambient_light = true +params_depth_draw_mode = 2 +albedo_texture = ExtResource( 5 ) + +[sub_resource type="DynamicFont" id=36] +size = 64 +use_filter = true +font_data = ExtResource( 11 ) + +[sub_resource type="DynamicFont" id=35] +size = 36 +use_filter = true +font_data = ExtResource( 11 ) + +[node name="Onboarding" type="Spatial"] +script = ExtResource( 12 ) + +[node name="BlackFade" type="ColorRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0, 0, 0, 1 ) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource( 1 ) + +[node name="Env" type="Spatial" parent="."] + +[node name="Background" type="Area" parent="Env"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4 ) + +[node name="BackgroundTile" type="MeshInstance" parent="Env/Background"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.01 ) +mesh = SubResource( 19 ) +skeleton = NodePath("../../..") + +[node name="BackgroundLines" type="MeshInstance" parent="Env/Background"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.005 ) +mesh = SubResource( 4 ) +skeleton = NodePath("../../..") + +[node name="CollisionShape" type="CollisionShape" parent="Env/Background"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.25 ) +shape = SubResource( 31 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="Env"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.5 ) +light_color = Color( 0.941176, 0.858824, 1, 1 ) + +[node name="RightWall" type="Area" parent="Env"] +transform = Transform( 0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, 4, 0, -4 ) + +[node name="CollisionShape" type="CollisionShape" parent="Env/RightWall"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -1.25 ) +shape = SubResource( 31 ) + +[node name="LeftWall" type="Area" parent="Env"] +transform = Transform( 0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, -4, 0, -4 ) + +[node name="CollisionShape" type="CollisionShape" parent="Env/LeftWall"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0, -1.25 ) +shape = SubResource( 31 ) + +[node name="Music" type="Node" parent="."] +script = ExtResource( 13 ) + +[node name="Strings" type="AudioStreamPlayer" parent="Music"] +stream = ExtResource( 7 ) +volume_db = -80.0 +bus = "Music" + +[node name="Drums" type="AudioStreamPlayer" parent="Music"] +stream = ExtResource( 2 ) +volume_db = -80.0 +bus = "Music" + +[node name="Piano" type="AudioStreamPlayer" parent="Music"] +stream = ExtResource( 4 ) +volume_db = -80.0 +bus = "Music" + +[node name="Phaser" type="AudioStreamPlayer" parent="Music"] +stream = ExtResource( 6 ) +volume_db = -80.0 +bus = "Music" + +[node name="Controls" type="Spatial" parent="."] +script = ExtResource( 9 ) + +[node name="Camera" type="Camera" parent="Controls"] +current = true +fov = 55.0 +far = 500.0 + +[node name="RayCast" type="RayCast" parent="Controls/Camera"] +cast_to = Vector3( 0, 0, -100 ) +collide_with_areas = true +collide_with_bodies = false + +[node name="p" type="MeshInstance" parent="Controls/Camera"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.13351 ) +visible = false +mesh = SubResource( 26 ) +skeleton = NodePath("../../..") + +[node name="p2" type="MeshInstance" parent="Controls/Camera"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.135 ) +visible = false +mesh = SubResource( 30 ) +skeleton = NodePath("../../..") + +[node name="MeshInstance4" type="MeshInstance" parent="Controls/Camera"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.16137 ) +visible = false +mesh = SubResource( 28 ) +skeleton = NodePath("../../..") + +[node name="Label" type="Label" parent="Controls"] +visible = false +margin_left = 25.0 +margin_top = 90.0 +margin_right = 65.0 +margin_bottom = 104.0 +custom_fonts/font = ExtResource( 10 ) +text = "AUGH" + +[node name="PointerHolder" type="Spatial" parent="Controls"] +visible = false + +[node name="Pointer" type="MeshInstance" parent="Controls/PointerHolder"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3.99863 ) +visible = false +mesh = SubResource( 14 ) +skeleton = NodePath("../../..") + +[node name="PointerTrail" type="MeshInstance" parent="Controls/PointerHolder"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.09278e-07, 1.09278e-07, -4 ) +visible = false +cast_shadow = 0 +generate_lightmap = false +mesh = SubResource( 34 ) +skeleton = NodePath(".") +material/0 = SubResource( 33 ) +script = ExtResource( 14 ) + +[node name="GameInit" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3 ) +script = ExtResource( 8 ) + +[node name="Logo" type="Spatial" parent="GameInit"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0 ) + +[node name="IconOnly" type="Sprite3D" parent="GameInit/Logo"] +opacity = 0.0 +pixel_size = 0.002 +texture = ExtResource( 1 ) + +[node name="S0" type="Sprite3D" parent="GameInit/Logo"] +opacity = 0.0 +pixel_size = 0.002 +texture = ExtResource( 1 ) + +[node name="S1" type="Sprite3D" parent="GameInit/Logo"] +opacity = 0.0 +pixel_size = 0.002 +texture = ExtResource( 1 ) + +[node name="S2" type="Sprite3D" parent="GameInit/Logo"] +opacity = 0.0 +pixel_size = 0.002 +texture = ExtResource( 1 ) + +[node name="S3" type="Sprite3D" parent="GameInit/Logo"] +opacity = 0.0 +pixel_size = 0.002 +texture = ExtResource( 1 ) + +[node name="S4" type="Sprite3D" parent="GameInit/Logo"] +opacity = 0.0 +pixel_size = 0.002 +texture = ExtResource( 1 ) + +[node name="LogoSpinner" type="Spatial" parent="GameInit"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0 ) + +[node name="Glow" type="Sprite3D" parent="GameInit/LogoSpinner"] +opacity = 0.0 +pixel_size = 0.0005 +texture = ExtResource( 16 ) + +[node name="NoGlow" type="Sprite3D" parent="GameInit/LogoSpinner"] +pixel_size = 0.0005 +texture = ExtResource( 15 ) + +[node name="Label" type="Label3D" parent="GameInit"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0 ) +pixel_size = 0.003 +text = "Loading" +font = SubResource( 36 ) +vertical_alignment = 0 + +[node name="Label2" type="Label3D" parent="GameInit"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.35, 0 ) +pixel_size = 0.003 +text = "Waiting for engine" +font = SubResource( 35 ) +vertical_alignment = 0 + +[node name="Position3D" type="Position3D" parent="GameInit"] diff --git a/scenes/song.tscn b/scenes/song.tscn index ade02d72..611463f6 100644 --- a/scenes/song.tscn +++ b/scenes/song.tscn @@ -4,7 +4,7 @@ [ext_resource path="res://scripts/game/NoteManager.gd" type="Script" id=2] [ext_resource path="res://scripts/game/Game.gd" type="Script" id=3] [ext_resource path="res://scripts/content/game/Note.gd" type="Script" id=4] -[ext_resource path="res://prefabs/game/HUD.tscn" type="PackedScene" id=5] +[ext_resource path="res://prefabs/game/HUD2.tscn" type="PackedScene" id=5] [ext_resource path="res://assets/images/cursors/circle.png" type="Texture" id=6] [ext_resource path="res://assets/images/grid_inner.png" type="Texture" id=7] [ext_resource path="res://assets/images/spawn_effect.png" type="Texture" id=8] diff --git a/scripts/Intro.gd b/scripts/Intro.gd index cd59921a..c967b8fd 100644 --- a/scripts/Intro.gd +++ b/scripts/Intro.gd @@ -33,7 +33,7 @@ func _ready(): $ColorRect.modulate.a = 1 # OS.window_fullscreen = true Input.mouse_mode = Input.MOUSE_MODE_HIDDEN - yield(get_tree().create_timer(4),"timeout") +# yield(get_tree().create_timer(4),"timeout") running = true $Avatar/Animations.play("Float") $Avatar/Animations.playback_speed = 1 @@ -49,13 +49,13 @@ func _ready(): yield(get_tree().create_timer(14),"timeout") fading = true yield(get_tree().create_timer(4),"timeout") - get_tree().change_scene("res://scenes/init.tscn") + get_tree().change_scene("res://scenes/init3d.tscn") func _input(event): if Input.is_action_just_pressed("pause") and can_skip: - get_tree().change_scene("res://scenes/init.tscn") + get_tree().change_scene("res://scenes/init3d.tscn") elif OS.has_feature("Android") and can_skip: - get_tree().change_scene("res://scenes/init.tscn") + get_tree().change_scene("res://scenes/init3d.tscn") func _process(delta): $Sprite3D.rotation_degrees.z += 16 * delta diff --git a/scripts/Online.gd b/scripts/Online.gd index ad1bd5c7..06fa3c46 100644 --- a/scripts/Online.gd +++ b/scripts/Online.gd @@ -1,6 +1,16 @@ extends Node # https://cdn.rhythia.net/index.json +enum STATUS { + OK = 0, + NOT_INITIALIZED, + CONNECTION_TEST_FAIL, + API_HTTP_FAIL, + CONFIG_ERROR, + INTERNAL_ERROR, + ANTI_TAMPER, +} +var netmaps_status:int = STATUS.NOT_INITIALIZED var mapdb_api:String = "" @@ -38,19 +48,28 @@ func _on_ctest_request_completed(result:int,response_code:int,headers:PoolString emit_signal("_connection_test",true) else: emit_signal("_connection_test",false) + netmaps_status = STATUS.CONNECTION_TEST_FAIL func test_connection(): var res = ctest_hr.request(ProjectSettings.get_setting("application/networking/test_url")) - if res != OK: emit_signal("_connection_test",false) + if res != OK: + emit_signal("_connection_test",false) + netmaps_status = STATUS.CONNECTION_TEST_FAIL func _mapdl_handler(id:String,map:Song): print("[MapDB Download] Starting download of map %s" % map.id) if !ProjectSettings.get_setting("application/networking/enabled"): - mapdl_error(id,"Networking is disabled",map); return + mapdl_error(id,"Networking is disabled",map) + netmaps_status = STATUS.CONFIG_ERROR + return if mapdb_api == "": - mapdl_error(id,"MapDB API Invalid",map); return + mapdl_error(id,"MapDB API Invalid",map) + netmaps_status = STATUS.CONFIG_ERROR + return if !Globals.is_valid_url(mapdb_api): - mapdl_error(id,"MapDB API Invalid",map); return + mapdl_error(id,"MapDB API Invalid",map) + netmaps_status = STATUS.CONFIG_ERROR + return call_deferred("test_connection") if !yield(self,"_connection_test"): @@ -199,24 +218,31 @@ func load_db_maps(): if netmaps_res.result == HTTPRequest.RESULT_CANT_RESOLVE: show_db_error("Map database download failed.\nError: Can't Resolve","Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") elif netmaps_res.result == HTTPRequest.RESULT_CANT_CONNECT: show_db_error("Map database download failed.\nError: Can't Connect","Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") elif netmaps_res.result == HTTPRequest.RESULT_CONNECTION_ERROR: show_db_error("Map database download failed.\nError: Connection Error","Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") elif netmaps_res.result == HTTPRequest.RESULT_SSL_HANDSHAKE_ERROR: show_db_error("Map database download failed.\nError: SSL Handshake Error","Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") elif netmaps_res.result == HTTPRequest.RESULT_TIMEOUT: show_db_error("Map database download failed.\nError: Timeout","Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") elif netmaps_res.result == HTTPRequest.RESULT_REDIRECT_LIMIT_REACHED: show_db_error("Map database download failed.\nError: Redirect Limit Reached","Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") elif netmaps_res.result == HTTPRequest.RESULT_SUCCESS: + netmaps_status = STATUS.OK if netmaps_res.response_code == 200: print("Cache miss!") var res = file.open(Globals.p("user://.mapdb_cache.json"),File.WRITE) @@ -285,23 +311,31 @@ func load_db_maps(): file.close() else: show_db_error("Map database download failed.\nError code: HTTP-%s" % netmaps_res.response_code,"Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") else: # Unknown error show_db_error("Map database download failed.\nError code: HTTP-%s" % netmaps_res.response_code,"Map Database Error") + netmaps_status = STATUS.API_HTTP_FAIL yield(self,"error_done") emit_signal("db_maps_done") + + var latest_version_data signal latest_version var version_hr:HTTPRequest = HTTPRequest.new() func check_latest_version(): - if !(OS.has_feature("Windows") or OS.has_feature("X11")) or !ProjectSettings.get_setting("application/networking/enabled"): + if ( + !(OS.has_feature("Windows") or OS.has_feature("X11")) + or !ProjectSettings.get_setting("application/networking/enabled") + ): emit_signal("latest_version",ProjectSettings.get_setting("application/config/version")) return var github_url = "https://api.github.com/repos/%s/releases/latest" version_hr.request(github_url % ProjectSettings.get_setting("application/networking/github_repo")) + func _on_version_request_completed(result:int,response_code:int,headers:PoolStringArray,body:PoolByteArray): if result != HTTPRequest.RESULT_SUCCESS or response_code != 200: emit_signal("latest_version",ProjectSettings.get_setting("application/config/version")) @@ -310,7 +344,9 @@ func _on_version_request_completed(result:int,response_code:int,headers:PoolStri var json = JSON.parse(string) var data = json.result latest_version_data = data + emit_signal("latest_version",data.tag_name) + signal update_finished signal _update_req var update_hr:HTTPRequest = HTTPRequest.new() @@ -355,7 +391,7 @@ func _on_update_request_completed(result:int,response_code:int,headers:PoolStrin func _ready(): add_child(netmaps_hr) netmaps_hr.use_threads = true - netmaps_hr.timeout = 80 + netmaps_hr.timeout = 30#80 netmaps_hr.connect("request_completed",self,"_on_netmaps_request_completed") add_child(ctest_hr) diff --git a/scripts/Rhythia.gd b/scripts/Rhythia.gd index c8f832d0..d17e15c0 100644 --- a/scripts/Rhythia.gd +++ b/scripts/Rhythia.gd @@ -121,6 +121,9 @@ var song_end_accuracy_str:String var song_end_time_str:String var song_end_length:float var song_end_combo:int +var song_end_fail_time_str:String +var song_end_fail_position:float +var song_end_failed:bool # Replay data var replay:Replay var replay_path:String = "" @@ -141,7 +144,8 @@ var first_init_done = false # Don't reload mods as that can cause problems var loaded_world = null # Holds the bg world for transit between songload and song player var was_map_screen_centered:bool = true var menu_target:String = ProjectSettings.get_setting("application/config/default_menu_target") -var is_init:bool = true # Used to check if Onboarding is being used for game startup +var is_init:bool = true # Should we start the initialization process? +var init_running:bool = false # Is the initialization process currently running? # Song list position/search persistence var was_auto_play_switch:bool = true @@ -351,12 +355,21 @@ func _process(delta): # Global hotkeys if Input.is_action_just_pressed("fullscreen"): OS.window_fullscreen = not OS.window_fullscreen + + if OS.has_feature("debug"): + if init_running and Input.is_action_pressed("debug_devmenu"): + menu_target = "res://scenes/devmenu.tscn" + elif Input.is_action_just_pressed("debug_devmenu"): + get_tree().change_scene("res://scenes/devmenu.tscn") # Debug var desync_alerts:bool = false var disable_desync:bool = false func _console(cmd:String,args:String): match cmd: + "devmenu": + menu_target = "res://scenes/devmenu.tscn" + get_tree().change_scene("res://scenes/devmenu.tscn") "queue": var ids = args.split(" ",false) if ids.size() == 0: @@ -423,7 +436,7 @@ func update_rpc_song(): # Discord RPC if mod_flashlight: mods.append("Flashlight") if mod_nearsighted: mods.append("Nearsight") if mod_hardrock: mods.append("Hard Rock") - if replay.autoplayer: mods.append("Auto") + if replay and replay.autoplayer: mods.append("Auto") if mods.size() == 0: txt = "No modifiers" else: @@ -668,6 +681,7 @@ var visual_approach_follow:bool = false var billboard_score:bool = false var score_popup:bool = false var mirror_buttons:bool = false +var show_full_combo_indicators:bool = true # Settings - HUD Colors var panel_bg:Color = Color("#9b000000") #9bcecece @@ -698,6 +712,11 @@ var timer_bg_done:Color = Color("#af008f00") #af008f00 var timer_fg_canskip:Color = Color("#b3ffff") #760070 var timer_bg_canskip:Color = Color("#b0638f8f") #b02b172a +var energy_fg:Color = Color("#3aa515") +var energy_bg:Color = Color("#af942121") +var energy_failed:Color = Color(0.3,0.3,0.3,0.5) +var energy_failed_flash:Color = Color(1.0,0.25,0.25) + var miss_flash_color:Color = Color("#ff0000") #ff0000 var pause_used_color:Color = Color("#ff66ff") #2600c2 @@ -822,7 +841,7 @@ func generate_pb_str(for_pb:bool=false): Globals.HP_OLD: pts.append("hp_old") Globals.HP_SOUNDSPACE: pass # prevents wiping of old pbs pts.append("hitw:%s" % String(floor(hitwindow_ms))) - var hb = note_hitbox_size +# var hb = note_hitbox_size pts.append("hbox:%.02f" % note_hitbox_size) pts.append("ar:%d" % sign(approach_rate)) if !for_pb and start_offset != 0: pts.append("so:%f" % start_offset) @@ -1259,6 +1278,8 @@ func load_saved_settings(saveFile:String = Globals.p("user://settings.json")): hit_pitch_max = data.hit_pitch_max if data.has("half_ghost"): half_ghost = data.half_ghost + if data.has("show_full_combo_indicators"): + show_full_combo_indicators = data.show_full_combo_indicators if data.has("language"): language = data.language @@ -1291,6 +1312,10 @@ func load_saved_settings(saveFile:String = Globals.p("user://settings.json")): lcol(data,"timer_bg_done") lcol(data,"timer_fg_canskip") lcol(data,"timer_bg_canskip") + lcol(data,"energy_fg") + lcol(data,"energy_bg") + lcol(data,"energy_failed") + lcol(data,"energy_failed_flash") lcol(data,"miss_flash_color") lcol(data,"pause_used_color") lcol(data,"miss_text_color") @@ -1634,6 +1659,7 @@ func save_settings(saveFile:String = Globals.p("user://settings.json")): ignore_controller_detection = ignore_controller_detection, expand_hud_onhr = expand_hud_onhr, last_search_incl_online = last_search_incl_online, + show_full_combo_indicators = show_full_combo_indicators, master_volume = ser_float(clamp(AudioServer.get_bus_volume_db(AudioServer.get_bus_index("Master")),-80,1000000)), music_volume = ser_float(clamp(AudioServer.get_bus_volume_db(AudioServer.get_bus_index("Music")),-80,1000000)), @@ -1939,6 +1965,13 @@ func register_effects(): registry_effect.add_item(NoteEffect.new( "ssp_miss_w", "Miss* (no color)", "res://assets/notefx/miss/miss.tscn", "Chedski" )) + + registry_effect.add_item(NoteEffect.new( + "ssp_explosion", "Explosion", "res://assets/notefx/explosion/explosion.tscn", "Chedski" + )) + registry_effect.add_item(NoteEffect.new( + "ssp_explosion_t", "Explosion (transparent)", "res://assets/notefx/explosion/explosion.tscn", "Chedski" + )) @@ -2016,6 +2049,8 @@ var single_map_mode_audio_path:String # Initialization func do_init(_ud=null): + init_running = true + is_init = false installed_packs = [] yield(get_tree().create_timer(0.05),"timeout") # haha thread safety go brrrr var lp:bool = false # load pause @@ -2074,7 +2109,11 @@ func do_init(_ud=null): single_map_mode_audio_path = Globals.cmdline.audio # Check for updates - if (OS.has_feature("Windows") or OS.has_feature("X11")) and !OS.has_feature("editor"): + if ( + (OS.has_feature("Windows") or OS.has_feature("X11")) + and !OS.has_feature("editor") + and !ProjectSettings.get_setting("application/config/version").begins_with("dev-") + ): emit_signal("init_stage_reached","Check for updates") emit_signal("init_stage_num",-1) yield(get_tree(),"idle_frame") @@ -2261,9 +2300,9 @@ func do_init(_ud=null): var smaps:Array = [] emit_signal("init_stage_reached","Register content 1/4\nImport Rhythia maps\nLocating files") yield(get_tree(),"idle_frame") - var sd:Array = [] +# var sd:Array = [] dir.change_dir(user_map_dir) - var li = 0 +# var li = 0 var map_search_folders = [user_map_dir] err = file.open(Globals.p("user://map_folders.txt"),File.READ) @@ -2520,5 +2559,6 @@ func do_init(_ud=null): Globals.confirm_prompt.s_next.play() Globals.confirm_prompt.close() yield(Globals.confirm_prompt,"done_closing") - is_init = false + init_running = false + print("Init done!") emit_signal("init_stage_reached","Waiting for menu",true) diff --git a/scripts/content/Registry.gd b/scripts/content/Registry.gd index d556a523..73ceec2f 100644 --- a/scripts/content/Registry.gd +++ b/scripts/content/Registry.gd @@ -152,8 +152,11 @@ func load_registry_file(path:String,regtype:int,regDisplayName:String=""): if regDisplayName == "": regDisplayName = path.get_base_dir().get_file() print(path) var file:File = File.new() - file.open(path,File.READ) - if regtype == Globals.REGISTRY_MAP: + var status = file.open(path,File.READ) + if status != OK: + print("Unable to open registry file %s, skipping" % path) + yield(Globals.get_tree(),"idle_frame") # We have to sleep here to ensure it doesn't get stuck + elif regtype == Globals.REGISTRY_MAP: var home_path:String = path.get_base_dir() + "/" # var home_path:String = "res://test_assets/" var rawRegData:String = file.get_as_text() diff --git a/scripts/content/game/Song.gd b/scripts/content/game/Song.gd index 8ec9e148..abdc4ecc 100644 --- a/scripts/content/game/Song.gd +++ b/scripts/content/game/Song.gd @@ -123,8 +123,8 @@ const db_builtin_difficulty_names = [ func load_from_db_data(data:Dictionary={ "id":"INVALID_id_that_doesnt_exist", - "download":"http://chedski.test/ssp/mapdb/api/download/INVALID_id_that_doesnt_exist", - "audio":"http://chedski.test/ssp/mapdb/api/audio/INVALID_id_that_doesnt_exist", + "download":"http://nonexistent.invalid", + "audio":"http://nonexistent.invalid", # "id":"ss_archive_waterflame_-_geometrical_dominator", # "download":"http://chedski.test/ssp/mapdb/api/download/ss_archive_waterflame_-_geometrical_dominator", # "audio":"http://chedski.test/ssp/mapdb/api/audio/ss_archive_waterflame_-_geometrical_dominator", @@ -216,7 +216,7 @@ func load_pbs(): var amt:int = file.get_64() # number of bests stored - for i in range(amt): + for _i in range(amt): var pb:Dictionary = {} var s:String = file.get_line() # if sv == 1: s = s.replace("1.27","1.14") # handle the default hitbox change @@ -260,7 +260,7 @@ func save_pbs(): else: file.store_32(floor(min(pb.length,pb.position))) file.store_32(floor(pb.length)) - file.store_16(pb.max_combo) + file.store_16(pb.max_combo) file.close() diff --git a/scripts/game/Game.gd b/scripts/game/Game.gd index 5754fe8d..baf6aaab 100644 --- a/scripts/game/Game.gd +++ b/scripts/game/Game.gd @@ -3,6 +3,7 @@ class_name SongPlayerManager signal hit signal miss +signal failed var rawMapData:String var notes:Array @@ -68,6 +69,17 @@ func end(end_type:int): Rhythia.replay.store_sig($Spawn.rms,Globals.RS_GIVEUP) if end_type != Globals.END_PASS: Rhythia.fail_asp.play() + if !Rhythia.song_end_failed: + Rhythia.song_end_failed = true + var fail_ms = clamp($Spawn.ms,0,last_ms) + + var s = fail_ms / 1000.0 + var m = floor(s / 60.0) + var rs = fmod(s, 60.0) + + Rhythia.song_end_fail_position = fail_ms + Rhythia.song_end_time_str = "%d:%02d" % [m,rs] + get_tree().paused = true if total_notes == 0: total_notes = 1 update_hud() @@ -231,7 +243,8 @@ func hit(col): emit_signal("hit",col) hits += 1 total_notes += 1 - if !Rhythia.mod_no_regen: energy = clamp(energy+energy_per_hit,0,max_energy) + if !Rhythia.mod_no_regen and not song_has_failed: + energy = clamp(energy+energy_per_hit,0,max_energy) combo += 1 if combo > max_combo: max_combo = combo @@ -266,12 +279,22 @@ func miss(col): if combo_level != 1: combo_level -= 1 update_hud() if energy == 0: - if Rhythia.mod_nofail: - if not song_has_failed: - song_has_failed = true + if not song_has_failed: + song_has_failed = true + emit_signal("failed") + if Rhythia.mod_nofail: Rhythia.fail_asp.play() - else: - end(Globals.END_FAIL) + var fail_ms = clamp($Spawn.ms,0,last_ms) + + var s = fail_ms / 1000.0 + var m = floor(s / 60.0) + var rs = fmod(s, 60.0) + + Rhythia.song_end_fail_position = fail_ms + Rhythia.song_end_time_str = "%d:%02d" % [m,rs] + else: + end(Globals.END_FAIL) + Rhythia.song_end_failed = true func _ready(): diff --git a/scripts/game/HUD2.gd b/scripts/game/HUD2.gd new file mode 100644 index 00000000..ef024e9a --- /dev/null +++ b/scripts/game/HUD2.gd @@ -0,0 +1,673 @@ +extends Spatial + + +onready var Game:SongPlayerManager = get_parent() +onready var Spawn:NoteManager = get_parent().get_node("Spawn") + + +onready var timebar:ProgressBar = get_node("GridVP/Control/Timer/Time") +onready var timelabel:Label = get_node("GridVP/Control/Timer/Label") +onready var songnametxt:Label = get_node("GridVP/Control/Timer/SongName") +onready var songnametxt2:Label = get_node("Info/C/MapName/L") +onready var mappertxt:Label = get_node("Info/C/Mapper/H/L") +onready var mappertitle:Label = get_node("Info/C/Mapper/H/T") +onready var acclabel:Label = get_node("LeftVP/Control/Accuracy") +onready var accbar:ProgressBar = get_node("LeftVP/Control/AccuracyBar") +onready var pauselabel:Label = get_node("LeftVP/Control/Pauses") +onready var noteslabel:Label = get_node("RightVP/Control/Notes") +onready var misseslabel:Label = get_node("RightVP/Control/Misses") +onready var scorelabel:Label = get_node("RightVP/Control/Score") +onready var energybar:ProgressBar = get_node("GridVP/Control/Energy/Energy") +onready var modicons:HBoxContainer = get_node("GridVP/Control/Energy/Modifiers/Icons/H") +onready var modtxt:Label = get_node("GridVP/Control/Energy/Modifiers/Text") +onready var modholder:VBoxContainer = get_node("GridVP/Control/Energy/Modifiers") +onready var infoholder:HBoxContainer = get_node("Info") + +onready var comboring:Control = get_node("LeftVP/Control/Combo") +onready var combotxt:Label = get_node("LeftVP/Control/Combo/Label") +onready var truecombo:Label = get_node("ComboVP/Value") + +onready var lettergrade:Label = get_node("LeftVP/Control/LetterGrade") + +onready var friend:MeshInstance = Spawn.get_node("Friend") +onready var gridborder:Spatial = get_node("Grid") +onready var gridvp:Viewport = get_node("GridVP") +onready var gridmat:SpatialMaterial = get_node("Grid/Outer").get_surface_material(0) +onready var gridsides:Control = get_node("GridVP/Control/Sides") +onready var gridcorners:Control = get_node("GridVP/Control/Corners") + +onready var cur_pos = $"../Spawn/Cursor/Mesh".global_transform.origin +onready var pcur_pos = cur_pos + + + + +var panel_bg:Color = Rhythia.panel_bg +var panel_text:Color = Rhythia.panel_text + +var unpause_fill_color:Color = Rhythia.unpause_fill_color +var unpause_empty_color:Color = Rhythia.unpause_empty_color +var how_to_quit:Color = Rhythia.how_to_quit + +var combo_fill_color:Color = Rhythia.combo_fill_color +var combo_empty_color:Color = Rhythia.combo_empty_color + +var acc_fill_color:Color = Rhythia.acc_fill_color +var acc_empty_color:Color = Rhythia.acc_empty_color + +var giveup_text:Color = Rhythia.giveup_text +var giveup_fill_color:Color = Rhythia.giveup_fill_color +var giveup_fill_color_end_skip:Color = Rhythia.giveup_fill_color_end_skip + +var timer_text:Color = Rhythia.timer_text +var timer_text_done:Color = Rhythia.timer_text_done +var timer_text_canskip:Color = Rhythia.timer_text_canskip + +var timer_fg:Color = Rhythia.timer_fg +var timer_bg:Color = Rhythia.timer_bg +var timer_fg_done:Color = Rhythia.timer_fg_done +var timer_bg_done:Color = Rhythia.timer_bg_done +var timer_fg_canskip:Color = Rhythia.timer_fg_canskip +var timer_bg_canskip:Color = Rhythia.timer_bg_canskip + +var energy_fg:Color = Rhythia.energy_fg +var energy_bg:Color = Rhythia.energy_bg +var energy_failed:Color = Rhythia.energy_failed +var energy_failed_flash:Color = Rhythia.energy_failed_flash + +var miss_flash_color:Color = Rhythia.miss_flash_color +var pause_used_color:Color = Rhythia.pause_used_color + +var miss_text_color:Color = Rhythia.miss_text_color +var pause_text_color:Color = Rhythia.pause_text_color +var score_text_color:Color = Rhythia.score_text_color + +var pause_ui_opacity:float = Rhythia.pause_ui_opacity + +var grade_ss_saturation:float = Rhythia.grade_ss_saturation +var grade_ss_value:float = Rhythia.grade_ss_value +var grade_ss_shine:float = Rhythia.grade_ss_shine + +var grade_s_color:Color = Rhythia.grade_s_color +var grade_s_shine:float = Rhythia.grade_s_shine + +var grade_a_color:Color = Rhythia.grade_a_color +var grade_b_color:Color = Rhythia.grade_b_color +var grade_c_color:Color = Rhythia.grade_c_color +var grade_d_color:Color = Rhythia.grade_d_color +var grade_f_color:Color = Rhythia.grade_f_color + + + +var last_combo:int = 0 +var is_full_combo:bool = false +var full_combo_indicator_t:float = 1.0 + + + +var elapsed:float = 0 +var gtimer:float = 0 # global delta timer +var s_curspd:float = 0 +var s_tcurspd:float = 0 +var calculating:bool = false + + +func set_song_name(name:String=Rhythia.selected_song.name): + songnametxt.text = name + songnametxt2.text = name + +func song_end(end_type:int): + if end_type == Globals.END_GIVEUP and Rhythia.record_replays and !Rhythia.replaying: + Rhythia.replay.store_sig(Spawn.rms,Globals.RS_GIVEUP) + if end_type != Globals.END_PASS: + friend.failed = true + Rhythia.fail_asp.play() + friend.upd() + +var combo_ring_target:float = 0 +var combo_ring_value:float = 0 + +func update_static_values(): + + if Game.hits == Game.total_notes: acclabel.text = "100%" + elif Game.hits == 0: acclabel.text = "0%" + else: acclabel.text = "%.3f%%" % ((Game.hits/Game.total_notes)*100) + Rhythia.song_end_accuracy_str = acclabel.text + if not Game.total_notes == 0: + accbar.value = Game.hits/Game.total_notes + noteslabel.text = "%s/%s" % [Globals.comma_sep(Game.hits),Globals.comma_sep(Game.total_notes)] + misseslabel.text = "%s" % Globals.comma_sep(Game.misses) + energybar.max_value = Game.max_energy + energybar.value = Game.energy + combotxt.text = String(Game.combo_level) + "x" + combo_ring_target = float(Game.lvl_progress) / 10.0 + + if Game.combo != last_combo: + truecombo.text = String(Game.combo) + truecombo.rect_position.y = 100 + last_combo = Game.combo + + pauselabel.text = Globals.comma_sep(Rhythia.song_end_pause_count) + + for n in get_tree().get_nodes_in_group("pause_text"): + paint( + n, + pause_text_color if (Rhythia.song_end_pause_count == 0) + else pause_used_color + ) + + scorelabel.text = Globals.comma_sep(Game.score) + + + var grade:String = "--" + var gcol:Color = Color(1,0,1) + var shine:float = 0 + var acc = 1 + if not Game.total_notes == 0: + acc = Game.hits/Game.total_notes + is_full_combo = (acc == 1) + if acc == 1: + grade = "SS" + gcol = Color.from_hsv(Rhythia.rainbow_t*0.1, grade_ss_saturation, grade_ss_value) + shine = grade_ss_shine + elif acc >= 0.98: + grade = "S" + gcol = grade_s_color + shine = grade_s_shine + elif acc >= 0.95: + grade = "A" + gcol = grade_a_color + elif acc >= 0.90: + grade = "B" + gcol = grade_b_color + elif acc >= 0.85: + grade = "C" + gcol = grade_c_color + elif acc >= 0.80: + grade = "D" + gcol = grade_d_color + else: + grade = "F" + gcol = grade_f_color + + lettergrade.text = grade + if shine != lettergrade.material.get_shader_param("amount"): + lettergrade.material.set_shader_param("amount",shine) + + if !Rhythia.rainbow_hud: + lettergrade.set("custom_colors/font_color",gcol) + +var miss_flash:float = 0 +var hit_flash:float = 1 +var hit_color:Color = Color("#ffffff") +var fail_flash:float = 0 + + +func dry_get_next(): + if Rhythia.song_end_type == Globals.END_GIVEUP or Rhythia.queue_pos + 1 == Rhythia.song_queue.size(): + return null + + return Rhythia.song_queue[Rhythia.queue_pos + 1] + +var info_fade:float = 1 +var info_target:bool = true +func update_timer(ms:float,canSkip:bool=false): + var qms = ms + Spawn.ms_offset + var lms = Game.last_ms + + if Rhythia.queue_active: + lms = Rhythia.queue_end_length + (3000 * (Rhythia.song_queue.size() - 1)) + + var s = clamp(floor(qms/1000),0,lms/1000) + var m = floor(s / 60) + var rs = fmod(s,60) + + var ls = floor(lms/1000) + var lm = floor(ls / 60) + var lrs = fmod(ls,60) + + if !Rhythia.rainbow_hud: + if canSkip: + timebar.get("custom_styles/fg").bg_color = timer_fg_canskip + timebar.get("custom_styles/bg").bg_color = timer_bg_canskip + for n in get_tree().get_nodes_in_group("timer_text"): + paint(n,timer_text_canskip) + + elif !Rhythia.queue_active and Spawn.ms > Game.last_ms: + timebar.get("custom_styles/fg").bg_color = timer_fg_done + timebar.get("custom_styles/bg").bg_color = timer_bg_done + for n in get_tree().get_nodes_in_group("timer_text"): + paint(n,timer_text_done) + + else: + timebar.get("custom_styles/fg").bg_color = timer_fg + timebar.get("custom_styles/bg").bg_color = timer_bg + for n in get_tree().get_nodes_in_group("timer_text"): + paint(n,timer_text) + + timebar.value = clamp(qms/lms,0,1) + if canSkip: timelabel.text = tr("PRESS SPACE TO SKIP") + elif canSkip and OS.has_feature("Android"): timelabel.text = tr("TAP TO SKIP") + else: timelabel.text = "%d:%02d / %d:%02d" % [m,rs,lm,lrs] + Rhythia.song_end_time_str = "%d:%02d" % [m,rs] + + + if Rhythia.queue_active: + if ms >= Game.last_ms + Rhythia.hitwindow_ms: +# songnametxt.text = "(Intermission)" + var next = dry_get_next() + if next: + info_target = true + songnametxt.text = next.name + songnametxt2.text = next.name + mappertitle.text = "Mapped by " + mappertxt.text = next.creator +# mappertitle.text = "Next song:" +# mappertxt.text = next.name + else: + info_target = false#Input.is_key_pressed(KEY_S) + else: + songnametxt.text = Rhythia.selected_song.name + songnametxt2.text = Rhythia.selected_song.name + mappertitle.text = "Mapped by " + mappertxt.text = Rhythia.selected_song.creator + if ms <= Rhythia.start_offset - 1000: + info_target = true + else: + info_target = false#Input.is_key_pressed(KEY_S) + else: + if ms <= (Rhythia.start_offset - 1000): + info_target = true + else: + info_target = false#Input.is_key_pressed(KEY_S) + + + +func on_miss(color:Color): + miss_flash = 1 + +func on_hit(color:Color): + hit_flash = 1 + hit_color = color + if !Rhythia.rainbow_grid: + paint(gridcorners,hit_color) + paint(gridsides, hit_color) + +func paint(node:Control,color:Color): + if node is ColorRect: + node.color = color + + elif node is Panel: + node.get("custom_styles/panel").bg_color = color + + elif node is Label: + if node.has_color_override("font_color"): + node.set("custom_colors/font_color",color) + else: + node.modulate = color + + else: + node.modulate = color + +var config_time:float = 2.5 + +func on_fail(): + fail_flash = 1 + +func _process(delta:float): + gtimer += delta + if Rhythia.show_config: + config_time = max(config_time-delta,0) + if config_time <= 0: $ConfigHud.visible = false + else: $ConfigHud.opacity = min(1,config_time) + + if combo_ring_value > combo_ring_target: + combo_ring_value = max(combo_ring_value + ( + ((combo_ring_target - combo_ring_value) * delta * 6) + ), combo_ring_target) + elif combo_ring_value < combo_ring_target: + combo_ring_value = min(combo_ring_value + ( + ((combo_ring_target - combo_ring_value) * delta * 6) + ), combo_ring_target) + + if comboring.percent != combo_ring_value: + comboring._set_percent(combo_ring_value) + + if Input.is_action_pressed("give_up"): + get_node("GiveUpHud").visible = true + get_node("GiveUpVP/Control/Label").visible = !$PauseHud.visible + if Spawn.ms > Game.last_ms: + get_node("GiveUpVP/Control/Label").text = "Skipping..." + get_node("GiveUpVP/Control").fill_color = giveup_fill_color_end_skip + + get_node("GiveUpVP/Control").percent = Game.giving_up + get_node("GiveUpHud").opacity = min(Game.giving_up*2,1) + else: + get_node("GiveUpHud").visible = false + get_node("GiveUpHud").opacity = 0 + + if not is_full_combo: + full_combo_indicator_t = max(full_combo_indicator_t - (delta / 0.35), 0.0) + else: + full_combo_indicator_t = 1.0 + + if Rhythia.show_full_combo_indicators:# and Game.total_notes != 0: + var fc_indicator_t_curved = ease(full_combo_indicator_t,0.25) + var lettergrade_rainbow = Color.from_hsv(Rhythia.rainbow_t*0.1, grade_ss_saturation, grade_ss_value) + var combo_rainbow = Color.from_hsv(Rhythia.rainbow_t*0.1, 0.75, 1.0, 0.5) + $ComboVP/Value.material.set_shader_param("amount",fc_indicator_t_curved) + $ComboVP/Value.set("custom_colors/font_color",lerp(Color(1.0,1.0,1.0,0.19),combo_rainbow,fc_indicator_t_curved)) + lettergrade.get_node("FullComboIndicator").anchor_top = lerp(0.5,0.0,fc_indicator_t_curved) + lettergrade.get_node("FullComboIndicator").anchor_bottom = lerp(0.5,1.0,fc_indicator_t_curved) + lettergrade.get_node("FullComboIndicator").visible = fc_indicator_t_curved > 0 + #lettergrade.get_node("FullComboIndicator").material.set_shader_param("amount",fc_indicator_t_curved) + lettergrade.self_modulate = lerp(Color.white, Color.black, fc_indicator_t_curved) + $ComboHud.scale = lerp(Vector3.ONE, Vector3(1.25,1.25,1.25), fc_indicator_t_curved) + if !Rhythia.rainbow_hud: + lettergrade.get_node("FullComboIndicator").color = lettergrade_rainbow + elif is_full_combo and !Rhythia.rainbow_hud: + lettergrade.set("custom_colors/font_color",Color.from_hsv(Rhythia.rainbow_t*0.1, grade_ss_saturation, grade_ss_value)) + + if miss_flash != 0: + miss_flash = max(0, miss_flash - (delta * 3)) + var miss_col = lerp(miss_text_color, miss_flash_color, miss_flash) + for n in get_tree().get_nodes_in_group("miss_text"): + paint(n, miss_col) + + if hit_flash != 0: + hit_flash = max(0, hit_flash - (delta * 1.5)) + var hit_col = lerp(Color(hit_color.r,hit_color.g,hit_color.b,0), hit_color, min(hit_flash/0.5, 1)) + paint(gridsides, hit_col) + + if Game.song_has_failed: + fail_flash = max(fail_flash - (delta / 0.5), 0.0) + var fail_flash_curved = ease(fail_flash, 4) + energybar.get("custom_styles/fg").bg_color = Color(0.0,0.0,0.0,0.0) + energybar.get("custom_styles/bg").bg_color = lerp(energy_failed, energy_failed_flash, fail_flash_curved) + energybar.get_node("Failed").visible = true + energybar.get_node("Failed").modulate = lerp(Color(1.0,0.4,0.4,0.8), Color(1.0,0.0,0.0), fail_flash_curved) + if Rhythia.attach_hp_to_grid: # unfortunately this gets cut off when using detached HP + energybar.get_node("Failed").rect_scale = lerp(Vector2.ONE, Vector2(6.0,6.0), fail_flash_curved) + elif Rhythia.rainbow_hud: + energybar.get("custom_styles/fg").bg_color = Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,1) + energybar.get("custom_styles/bg").bg_color = Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,0.2,0.65) + + # yes these do need to be separate + if Rhythia.rainbow_hud: + $TimerHud.modulate = Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,1) + $ComboHud.modulate = Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,1) + $LeftHud.modulate = Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,1) + $RightHud.modulate = Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,1) + if Rhythia.rainbow_grid: + paint(gridcorners, Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,1)) + paint(gridsides, Color.from_hsv(Rhythia.rainbow_t*0.1,0.4,1,min(hit_flash/0.5, 1))) + + if info_target && info_fade != 1: + info_fade = min(info_fade + (delta),1) + infoholder.modulate = Color(1,1,1,info_fade) + elif !info_target && info_fade != 0: + info_fade = max(info_fade - (delta),0) + infoholder.modulate = Color(1,1,1,info_fade) + infoholder.visible = (info_fade != 0) + + + + if Spawn.pause_state != 0: + $PauseHud.visible = !Input.is_key_pressed(KEY_C) + $PauseVP/Control.percent = clamp( + 1 - (Spawn.pause_state), + 0, + float(Spawn.pause_state != -1) + ) + $PauseHud.modulate = Color(1,1,1,abs(Spawn.pause_state) * pause_ui_opacity) + else: + $PauseHud.visible = false + + # stat mod + elapsed += delta + if elapsed >= 0.1 and calculating: + pcur_pos = cur_pos + cur_pos = $"../Spawn/Cursor/Mesh".global_transform.origin + var dist = cur_pos.distance_to(pcur_pos) + s_curspd = dist / elapsed + if s_curspd > s_tcurspd: + s_tcurspd = s_curspd + elapsed = 0 + if gtimer >= 2: + calculating = true + + var fstr = "cursor speed\n{current} m/sec/{frames}fr\n\ntop speed\n{top} m/sec/{frames}fr\n\nrec interval\n{rec}" + $Stats/Label.text = fstr.format( + { + "current": stepify(s_curspd,0.1), + "frames": Engine.get_frames_per_second(), + "top": stepify(s_tcurspd,0.1), + "rec": round(Spawn.rec_interval) + } + ) + + + + +func _ready(): + $Grid.translation = Vector3.ZERO + Game.connect("miss",self,"on_miss") + Game.connect("hit",self,"on_hit") + Game.connect("failed",self,"on_fail") + $Stats/Label.visible = Rhythia.show_stats + + $GiveUpVP/Control.fill_color = giveup_fill_color + + if !Rhythia.rainbow_hud: + for n in get_tree().get_nodes_in_group("panel_bg"): + paint(n,panel_bg) + + for n in get_tree().get_nodes_in_group("panel_text"): + paint(n,panel_text) + + for n in get_tree().get_nodes_in_group("score_text"): + paint(n,score_text_color) + + for n in get_tree().get_nodes_in_group("pause_text"): + paint(n, pause_text_color) + + for n in get_tree().get_nodes_in_group("miss_text"): + paint(n, miss_text_color) + + if !Rhythia.enable_border: + $GridVP/Control/Sides.visible = false + $GridVP/Control/Corners.visible = false + + paint($PauseVP/Control/Paused,unpause_empty_color) + paint($PauseVP/Control/ProgressBar/Paused,unpause_fill_color) + paint($PauseVP/Control/HoldR,how_to_quit) + paint($GiveUpVP/Control/Label,giveup_text) + + if Rhythia.rainbow_hud: + var cf = max(max(combo_fill_color.r,combo_fill_color.g),combo_fill_color.b) + var ce = max(max(combo_empty_color.r,combo_empty_color.g),combo_empty_color.b) + var af = max(max(acc_fill_color.r,acc_fill_color.g),acc_fill_color.b) + var ae = max(max(acc_empty_color.r,acc_empty_color.g),acc_empty_color.b) + + comboring.fill_color = Color(cf,cf,cf,combo_fill_color.a) + comboring.empty_color = Color(ce,ce,ce,combo_empty_color.a) + accbar.get("custom_styles/fg").bg_color = Color(af,af,af,acc_fill_color.a) + accbar.get("custom_styles/bg").bg_color = Color(ae,ae,ae,acc_empty_color.a) + + else: + comboring.fill_color = combo_fill_color + comboring.empty_color = combo_empty_color + accbar.get("custom_styles/fg").bg_color = acc_fill_color + accbar.get("custom_styles/bg").bg_color = acc_empty_color + energybar.get("custom_styles/fg").bg_color = energy_fg + energybar.get("custom_styles/bg").bg_color = energy_bg + + + + + if !Rhythia.show_config: + $ConfigHud.visible = false + + if !Rhythia.enable_grid: + Spawn.get_node("Inner").visible = false + + # --------------------------------------------- making this a setting cuz fog wants to lol + + if Rhythia.mod_hardrock and Rhythia.expand_hud_onhr: + var HUDScale:Array = [ + $TimerHud, + $LeftHud, + $RightHud, + $EnergyHud, + $ComboHud, + ] + Spawn.get_node("Inner").scale *= 1.35 + Spawn.get_node("Outer").scale *= 1.35 + $TimerHud.transform.origin += Vector3(0, 0.385, 0) + $LeftHud.transform.origin += Vector3(-0.50, 0, 0) + $RightHud.transform.origin += Vector3(0.50, 0, 0) + $EnergyHud.transform.origin += Vector3(0, -0.45, 0) + $ComboHud.transform.origin += Vector3(0, 0.40, 0) + + for l in HUDScale: + l.scale *= 0.85 + + if !Rhythia.enable_border: + Spawn.get_node("Outer").visible = false + + if Rhythia.visual_mode or !Rhythia.show_left_panel: + $LeftHud.visible = false + + if Rhythia.visual_mode or !Rhythia.show_right_panel: + $RightHud.visible = false + + if !Rhythia.show_letter_grade: + lettergrade.visible = false + + if !Rhythia.show_accuracy_bar: + accbar.visible = false + + if Rhythia.visual_mode or !Rhythia.show_hp_bar: + energybar.visible = false + modholder.margin_top = 8 + + if !Rhythia.show_timer: + timelabel.visible = false + timebar.visible = false + + + # TODO: figure out how to handle these + if not Rhythia.attach_hp_to_grid: + var econtrol = $GridVP/Control/Energy + var ehud = $EnergyHud + econtrol.get_parent().remove_child(econtrol) + $EnergyVP.add_child(econtrol) + econtrol.margin_top = -300 + econtrol.margin_left = 0 + econtrol.margin_right = 900 + econtrol.margin_bottom = 0 +# remove_child(ehud) +# Spawn.add_child(ehud) +# ehud.transform.origin += Vector3(1,-1,0) + + if not Rhythia.attach_timer_to_grid: + var tcontrol = $GridVP/Control/Timer + var thud = $TimerHud + tcontrol.get_parent().remove_child(tcontrol) + $TimerVP.add_child(tcontrol) + tcontrol.margin_top = 0 + tcontrol.margin_left = 0 + tcontrol.margin_right = 900 + tcontrol.margin_bottom = 300 +# remove_child(thud) +# Spawn.add_child(thud) +# thud.transform.origin += Vector3(1,-1,0) + + if Rhythia.simple_hud: + $LeftVP/Control.self_modulate = Color(0,0,0,0) + $RightVP/Control.self_modulate = Color(0,0,0,0) + + for n in $LeftVP/Control.get_children(): + n.visible = n.name == "SimpleBg" or n.name == "Pauses" or n.name == "PausesTitle" + if n.visible: n.rect_position.y += 100 + + for n in $RightVP/Control.get_children(): + n.visible = n.name == "SimpleBg" or n.name == "Misses" or n.name == "MissesTitle" + if n.visible: n.rect_position.y += 100 + + if Rhythia.faraway_hud: + transform.origin = Vector3(0,0,-10) + scale = Vector3(3.7,3.7,3.7) + +# if Rhythia.visual_mode: +# $EnergyVP/Control/Modifiers.visible = false + + songnametxt.text = Rhythia.selected_song.name + songnametxt2.text = Rhythia.selected_song.name + mappertitle.text = tr("Mapped by ") + mappertxt.text = Rhythia.selected_song.creator + + + + + + var ms = "" + + if Rhythia.replaying: + if Rhythia.replay.autoplayer: modicons.get_node("Autoplay").visible = true + else: modicons.get_node("Replaying").visible = true + + if Rhythia.mod_nofail: ms += tr("[ NOFAIL ACTIVE ]") + "\n" + elif Rhythia.health_model == Globals.HP_OLD: ms += tr("Using old hp model (more hp + fast regen)") + "\n" + + var mods = [] + if Rhythia.mod_speed_level != Globals.SPEED_NORMAL: + match Rhythia.mod_speed_level: + Globals.SPEED_MMM: modicons.get_node("SpeedMMM").visible = true + Globals.SPEED_MM: modicons.get_node("SpeedMM").visible = true + Globals.SPEED_M: modicons.get_node("SpeedM").visible = true + Globals.SPEED_P: modicons.get_node("SpeedP").visible = true + Globals.SPEED_PP: modicons.get_node("SpeedPP").visible = true + Globals.SPEED_PPP: modicons.get_node("SpeedPPP").visible = true + Globals.SPEED_PPPP: modicons.get_node("SpeedPPPP").visible = true + Globals.SPEED_CUSTOM: mods.append("S%s" % [Globals.speed_multi[Globals.SPEED_CUSTOM] * 100]) + if Rhythia.mod_sudden_death: mods.append("SuddenDeath") + if Rhythia.mod_extra_energy: mods.append("Energy+") + if Rhythia.mod_no_regen: mods.append("NoRegen") + if Rhythia.mod_mirror_x or Rhythia.mod_mirror_y: + var mirrorst = tr("Mirror") + if Rhythia.mod_mirror_x: mirrorst += "X" + if Rhythia.mod_mirror_y: mirrorst += "Y" + mods.append(mirrorst) + if Rhythia.mod_ghost: mods.append(tr("Ghost")) + if Rhythia.mod_nearsighted: mods.append("Nearsight") + if Rhythia.mod_chaos: mods.append(tr("Chaos")) + if Rhythia.mod_earthquake: mods.append(tr("Earthquake")) + if Rhythia.mod_flashlight: mods.append(tr("Flashlight")) + if Rhythia.mod_hardrock: mods.append(tr("Hard Rock")) + if Rhythia.invert_mouse: mods.append(tr("Mouse Inverted")) + for i in range(mods.size()): + if i != 0: ms += " " + ms += mods[i] + if mods.size() != 0 and !Rhythia.mod_nofail: ms += '\n' + + if Rhythia.hitwindow_ms != 55 or Rhythia.note_hitbox_size != 1.140: + ms += "HW: %.0f ms | HB: %.02f m" % [Rhythia.hitwindow_ms,Rhythia.note_hitbox_size] + + modtxt.text = ms + + Spawn.get_node("Outer").visible = false + if Rhythia.enable_border: + yield(get_tree(),"idle_frame") + remove_child(gridborder) + yield(get_tree(),"idle_frame") + Spawn.add_child(gridborder) +# yield(get_tree(),"idle_frame") +# var vpt = ViewportTexture.new() +# gridmat.albedo_texture = vpt +# vpt.viewport_path = get_tree().root.get_node("Song").get_path_to(gridvp) + else: + gridborder.visible = false + + + diff --git a/scripts/game/TrueComboHandler.gd b/scripts/game/TrueComboHandler.gd index 51cfa417..7e48fdc5 100644 --- a/scripts/game/TrueComboHandler.gd +++ b/scripts/game/TrueComboHandler.gd @@ -6,5 +6,5 @@ func _ready(): else: visible = true -func _physics_process(delta): - rect_position.y += (150 - rect_position.y) * 0.25 +func _process(delta): + rect_position.y += (150 - rect_position.y) * 0.25 * (delta * 60.0) diff --git a/scripts/init.gd b/scripts/init.gd index 17de246f..2851ecdc 100644 --- a/scripts/init.gd +++ b/scripts/init.gd @@ -31,7 +31,7 @@ func _ready(): black_fade = 1 $BlackFade.color = Color(0,0,0,black_fade) Rhythia.connect("init_stage_reached",self,"stage") - var s = Globals.error_sound +# var s = Globals.error_sound # var st = Rhythia.get_stream_with_default("user://loadingmusic",s) # if st != s: # $Music.stream = st diff --git a/scripts/online/OnlineAccount.gd b/scripts/online/OnlineAccount.gd new file mode 100644 index 00000000..b51a4b25 --- /dev/null +++ b/scripts/online/OnlineAccount.gd @@ -0,0 +1,6 @@ +class_name OnlineAccount +extends Resource + +var ready:bool = false + +var profile_aboutme:String = "" diff --git a/scripts/ui/devmenu/devmenu.gd b/scripts/ui/devmenu/devmenu.gd new file mode 100644 index 00000000..a242cd8e --- /dev/null +++ b/scripts/ui/devmenu/devmenu.gd @@ -0,0 +1,115 @@ +extends Control + +var online_services_ok:bool = false +var online_maps_ok:bool = false +var online_score_submission_ok:bool = false +var online_silenced:bool = false +var online_banned:bool = false # Restricted / Excluded +var online_anti_tamper:bool = false +var online_server_down:bool = false +var online_no_internet:bool = false +var online_signed_out:bool = false +var online_is_admin:bool = false +var online_is_moderator:bool = false +var online_is_mmt:bool = false +var online_is_rct:bool = false + +func check_online_status(): + online_maps_ok = (Online.netmaps_status == Online.STATUS.OK) + online_server_down = (Online.netmaps_status == Online.STATUS.API_HTTP_FAIL) + online_no_internet = (Online.netmaps_status == Online.STATUS.CONNECTION_TEST_FAIL) + online_signed_out = true + +func update_status_icons(): + $V/Bar/Debug.visible = OS.has_feature("debug") + $V/Bar/Release.visible = not OS.has_feature("debug") + + check_online_status() + $V/Bar/OnlineServicesYes.visible = online_services_ok + $V/Bar/OnlineServicesNo.visible = not online_services_ok + $V/Bar/OnlineMapsYes.visible = online_maps_ok + $V/Bar/OnlineMapsNo.visible = not online_maps_ok + $V/Bar/ScoreSubYes.visible = online_score_submission_ok + $V/Bar/ScoreSubNo.visible = not online_score_submission_ok + $V/Bar/Silenced.visible = online_silenced + $V/Bar/Banned.visible = online_banned + $V/Bar/AntiTamper.visible = online_anti_tamper + $V/Bar/ServerDown.visible = online_server_down + $V/Bar/NoInternet.visible = online_no_internet + $V/Bar/SignedOut.visible = online_signed_out + $V/Bar/IsAdmin.visible = online_is_admin + $V/Bar/IsModerator.visible = online_is_moderator + $V/Bar/IsMMT.visible = online_is_mmt + $V/Bar/IsRCT.visible = online_is_rct + +var bg_image_fade:float = 0.0 +var bg_image_httpreq:HTTPRequest = HTTPRequest.new() +var bg_image_ready:bool = false + + +func _bg_image_req_done(result:int, response_code:int, headers:PoolStringArray, body:PoolByteArray): + if result == OK and response_code == 200: + var format = Globals.imageLoader.get_format(body) + var img = Image.new() + var img_err = ERR_INVALID_DATA + if format == "png": img_err = img.load_png_from_buffer(body) + elif format == "bmp": img_err = img.load_bmp_from_buffer(body) + elif format == "jpg": img_err = img.load_jpg_from_buffer(body) + elif format == "webp": img_err = img.load_webp_from_buffer(body) + + if img_err == OK: + print("mraaaow mrrp meoww :3c") + var texture = ImageTexture.new() + texture.create_from_image(img) + print("%s %sx%s" % [texture.get_format(), texture.get_width(), texture.get_height()]) + get_parent().texture = texture + else: + print("image load was error %s" % img_err) + else: + print("request failed: result=%s code=%s" % [result,response_code]) + bg_image_ready = true + # if the image fails we want to fade in the normal background + +func _process(delta): + if bg_image_ready and bg_image_fade < 1.0: + bg_image_fade += delta + get_parent().self_modulate = Color(1.0,1.0,1.0,bg_image_fade * 0.3) + if Input.is_action_just_pressed("ui_quicksettings"): + get_parent().self_modulate = Color(1.0,1.0,1.0,0.0) + bg_image_fade = 0 + bg_image_ready = false + get_bg_image() + +func get_bg_image(): + if randf() < 0.05: + bg_image_ready = true + get_parent().texture = load("res://assets/images/devbg.png") + # use the default image + else: + var error = bg_image_httpreq.request("https://cataas.com/cat") + if error != OK: + print("error %s requesting bg image" % error) + bg_image_ready = true + # use default image + +func _exit_tree(): + bg_image_httpreq.cancel_request() + +func _ready(): + add_child(bg_image_httpreq) + bg_image_httpreq.connect("request_completed",self,"_bg_image_req_done") + bg_image_httpreq.use_threads = true + bg_image_httpreq.timeout = 6 + bg_image_httpreq.body_size_limit = 1024*1024*4 # 4 MiB + get_bg_image() + + get_parent().self_modulate = Color(1.0,1.0,1.0,0.0) + update_status_icons() + + $V/Bar/Quit.connect("pressed",get_tree(),"quit") + $V/Bar/ToDevMenu.connect("pressed",get_tree(),"change_scene",["res://scenes/devmenu.tscn"]) + $V/Bar/ToMenu2.connect("pressed",get_tree(),"change_scene",["res://scenes/menu/menu2.tscn"]) + $V/Bar/ToMenu3.connect("pressed",get_tree(),"change_scene",["res://scenes/menu/menu3d.tscn"]) + $V/Bar/ToInit3d.connect("pressed",get_tree(),"change_scene",["res://scenes/init3d.tscn"]) + $V/Bar/ToSongload.connect("pressed",get_tree(),"change_scene",["res://scenes/loaders/songload.tscn"]) + diff --git a/scripts/ui/menu/VersionNumber.gd b/scripts/ui/menu/VersionNumber.gd index a7f4aa5e..0952f158 100644 --- a/scripts/ui/menu/VersionNumber.gd +++ b/scripts/ui/menu/VersionNumber.gd @@ -1,4 +1,6 @@ extends Label +export var template:String = "Rhythia [%s]" + func _ready(): - text = "Rhythia [%s]" % ProjectSettings.get_setting("application/config/version") + text = template % ProjectSettings.get_setting("application/config/version") diff --git a/scripts/ui/menu/WarningBar.gd b/scripts/ui/menu/WarningBar.gd index adde1b98..ebdb3b94 100644 --- a/scripts/ui/menu/WarningBar.gd +++ b/scripts/ui/menu/WarningBar.gd @@ -1,5 +1,7 @@ extends ColorRect +export var is_devmenu = false + var entry:float = 0 var state:bool = false var scroll:float = 0 @@ -21,28 +23,64 @@ func display_warning(id:String): color = Color("#5cb76e") "smm": state = true - $L.text = "Running in single map mode. Online features, PBs, and most map actions are disabled." + $L.text = tr("Running in single map mode. Online features, PBs, and most map actions are disabled.") color = Color("#ffbb19") + "online_excluded": + state = true + $L.text = tr("Your account has been excluded. Online features, including score submission, are disabled. See rhythia.com/rules for more information.") + color = Color("#ff7c19") + "online_restricted": + state = true + $L.text = tr("Your account has been restricted. Scores will not be submitted. See rhythia.com/rules for more information.") + color = Color("#ffbb19") + "online_silenced": + state = true + $L.text = tr("Your account has been silenced. Chat and comments will be read-only. See rhythia.com/rules for more information.") + color = Color("#ffbb19") + "online_nointernet": + state = true + $L.text = tr("You are not connected to the internet. Score submission and other online features are unavailable.") + color = Color("#f2e830") + "online_outage": + state = true + $L.text = tr("Rhythia online services are experiencing an outage. Score submission and other online features are unavailable.") + color = Color("#f29e30") + "online_maintenance": + state = true + $L.text = tr("Rhythia online services are undergoing maintenance. Score submission and other online features are unavailable.") + color = Color("#f29e30") + "online_antitamper": + state = true + $L.text = tr("Your game has been modified, or you are using an unapproved build. Score submission is disabled. (Press C to dismiss)") + color = Color("#fc6d35") + "online_scoremaintenance": + state = true + $L.text = tr("Score submission is currently disabled for maintenance.") + color = Color("#f29e30") + "online_loggedout": + state = true + $L.text = tr("You are not logged into your Rhythia account.") + color = Color("#f2e6d7") "spawn": state = true - $L.text = "Note spawn effects may be buggy." + $L.text = tr("Note spawn effects may be buggy.") color = Color("#fc794e") "debug": state = true - $L.text = "Development mode is active, game mods will not be used." + $L.text = tr("Development mode is active, game mods will not be used and scores will not be submitted.") color = Color("#477d94") "controllercheck": state = true - $L.text = "Controller checking disabled. Press C to hide this bar." + $L.text = tr("Controller checking disabled. Press C to hide this bar.") color = Color("#8400ff") "experimental": state = true - $L.text = "You are currently using experimental settings. Expect bugs." + $L.text = tr("You are currently using experimental settings. Expect bugs.") color = Color("#c1c1ac") # color = Color("#dbd1a2") "experimental_mod": state = true - $L.text = "One or more mods you selected are currently experimental. Expect bugs." + $L.text = tr("One or more mods you selected are currently experimental. Expect bugs.") color = Color("#77c1d1") _: assert(false) @@ -58,14 +96,38 @@ func check_experimental_settings(): if Rhythia.get(k): return true return false +var test_excluded = false +var test_restricted = false +var test_silenced = false +var online_status = "ok" +# antitamper / loggedout / nointernet / scoremaintenance / maintenance / outage / ok + func check_warnings(): - if Input.is_action_pressed("arcw3") and bar_enable: + if Input.is_action_pressed("dismiss_bar") and bar_enable: bar_enable = false if Input.is_action_pressed("warning_test"): return "test" elif Rhythia.single_map_mode: return "smm" + elif test_excluded: + return "online_excluded" + elif test_restricted: + return "online_restricted" + elif test_silenced: + return "online_silenced" + elif online_status == "nointernet": + return "online_nointernet" + elif online_status == "outage": + return "online_outage" + elif online_status == "maintenance": + return "online_maintenance" + elif bar_enable and online_status == "antitamper" and !OS.has_feature("debug"): + return "online_antitamper" + elif online_status == "scoremaintenance": + return "online_scoremaintenance" + elif online_status == "loggedout": + return "online_loggedout" elif Rhythia.note_spawn_effect: return "spawn" # Temp mark HR as a Experimental due to issues :/ @@ -75,11 +137,8 @@ func check_warnings(): return "debug" elif check_experimental_settings(): return "experimental" - elif Rhythia.ignore_controller_detection: - if bar_enable: - return "controllercheck" - else: - return "none" + elif bar_enable and Rhythia.ignore_controller_detection: + return "controllercheck" else: return "none" @@ -104,9 +163,16 @@ func _process(delta): switch = 0.35 state = false + var centerdist = width * abs( + fmod(scroll + ($L.rect_size.x/2.0/width), 1.0) - 0.5 + ) + + var centerdist_mod = (6.0 * pow(centerdist/((width-$L.rect_size.x)/1.7), 2.0)) # keep text in the middle for longer scroll = scroll + (delta * (20.0/1200.0)) * ( - 1.5 + (3.0 * float(Input.is_key_pressed(KEY_CONTROL)))) + 1.5 + (3.0 * float(Input.is_key_pressed(KEY_CONTROL))) + + centerdist_mod + ) if scroll >= 1.0: scroll -= 1.0 $L.rect_position = Vector2( @@ -118,27 +184,30 @@ func _process(delta): 0 ) - if state && entry != 1: - entry = min(entry + (delta/0.8), 1.0) - modulate = Color(1.0, 1.0, 1.0, entry) - margin_top = Dance.InOutSine(entry) * -30 - margin_bottom = (1.0 - Dance.InOutSine(entry)) * 30 - get_parent().get_node("VersionNumber").margin_top = -45 - (Dance.InOutSine(entry)*30) - get_parent().get_node("VersionNumber").margin_bottom = -15 - (Dance.InOutSine(entry)*30) - get_parent().get_node("VersionNumberB").margin_top = -45 - (Dance.InOutSine(entry)*30) - get_parent().get_node("VersionNumberB").margin_bottom = -15 - (Dance.InOutSine(entry)*30) - - elif !state && entry != 0: - entry = max(entry - (delta/0.8), 0.0) - modulate = Color(1.0, 1.0, 1.0, entry) - margin_top = Dance.InOutSine(entry) * -30 - margin_bottom = (1.0 - Dance.InOutSine(entry)) * 30 - get_parent().get_node("VersionNumber").margin_top = -45 - (Dance.InOutSine(entry)*30) - get_parent().get_node("VersionNumber").margin_bottom = -15 - (Dance.InOutSine(entry)*30) - get_parent().get_node("VersionNumberB").margin_top = -45 - (Dance.InOutSine(entry)*30) - get_parent().get_node("VersionNumberB").margin_bottom = -15 - (Dance.InOutSine(entry)*30) - - visible = (entry != 0) + if is_devmenu: + visible = state + else: + if state && entry != 1: + entry = min(entry + (delta/0.8), 1.0) + modulate = Color(1.0, 1.0, 1.0, entry) + margin_top = Dance.InOutSine(entry) * -30 + margin_bottom = (1.0 - Dance.InOutSine(entry)) * 30 + get_parent().get_node("VersionNumber").margin_top = -45 - (Dance.InOutSine(entry)*30) + get_parent().get_node("VersionNumber").margin_bottom = -15 - (Dance.InOutSine(entry)*30) + get_parent().get_node("VersionNumberB").margin_top = -45 - (Dance.InOutSine(entry)*30) + get_parent().get_node("VersionNumberB").margin_bottom = -15 - (Dance.InOutSine(entry)*30) + + elif !state && entry != 0: + entry = max(entry - (delta/0.8), 0.0) + modulate = Color(1.0, 1.0, 1.0, entry) + margin_top = Dance.InOutSine(entry) * -30 + margin_bottom = (1.0 - Dance.InOutSine(entry)) * 30 + get_parent().get_node("VersionNumber").margin_top = -45 - (Dance.InOutSine(entry)*30) + get_parent().get_node("VersionNumber").margin_bottom = -15 - (Dance.InOutSine(entry)*30) + get_parent().get_node("VersionNumberB").margin_top = -45 - (Dance.InOutSine(entry)*30) + get_parent().get_node("VersionNumberB").margin_bottom = -15 - (Dance.InOutSine(entry)*30) + + visible = (entry != 0) func _ready(): current_warning = check_warnings() diff --git a/scripts/ui/menu/buttons/RunMapButton.gd b/scripts/ui/menu/buttons/RunMapButton.gd index 99398e5c..8f950bc9 100644 --- a/scripts/ui/menu/buttons/RunMapButton.gd +++ b/scripts/ui/menu/buttons/RunMapButton.gd @@ -35,6 +35,9 @@ func files_dropped(files:PoolStringArray,_screen:int): func _input(event:InputEvent): if not is_visible_in_tree(): return + if not get_viewport().has_node("Menu/Main"): return + # make sure this doesn't run in devmenu + if get_focus_owner() == $"/root/Menu/Main/Maps/MapRegistry/T/Search": return if get_focus_owner() == $"/root/Menu/Main/Maps/MapRegistry/T/AuthorSearch": return if get_viewport().get_node("Menu/Main/Maps/Results").visible == true: diff --git a/scripts/ui/menu3d/Controls.gd b/scripts/ui/menu3d/Controls.gd new file mode 100644 index 00000000..63e2455e --- /dev/null +++ b/scripts/ui/menu3d/Controls.gd @@ -0,0 +1,226 @@ +extends Spatial + +var controls_allowed:bool = false +var fov_target:float = 65 + +var yaw = 0 +var pitch = 0 + +var yaw_limit = 75 +var pitch_limit = 35 + +var yaw_pillow = 35 +var pitch_pillow = 18 + +var ellipse_grow = 6 + +var joy_multi = 120 + +# $d = \sqrt {(a\cos t + c)^2 + (b\sin t)^2}$ + +func get_limits(): + return Vector2(yaw_limit, pitch_limit) +# return Vector2( +# sqrt( abs( pow(yaw_limit+ellipse_grow,2) * ( -(pow(pitch,2) / pow(pitch_limit+ellipse_grow,2)) + 1 ) ) ), +# sqrt( abs( pow(pitch_limit+ellipse_grow,2) * ( -(pow(yaw,2) / pow(yaw_limit+ellipse_grow,2)) + 1 ) ) ) +# ) + +func _input(event:InputEvent): + if !controls_allowed: return + if (Input.mouse_mode == Input.MOUSE_MODE_CAPTURED && event is InputEventMouseMotion) || event is InputEventScreenDrag: + var xc = -(event.relative.x * Rhythia.sensitivity * 0.2) + var yc = -(event.relative.y * Rhythia.sensitivity * 0.2) + + var l = get_limits() + $Label.text = String(l) + + if sign(xc) == sign(yaw) && (l.x - abs(yaw)) < yaw_pillow: + xc *= (l.x - abs(yaw)) / yaw_pillow + + if sign(yc) == sign(pitch) && (l.y - abs(pitch)) < pitch_pillow: + yc *= (l.y - abs(pitch)) / pitch_pillow + + yaw = clamp(yaw + xc, -l.x, l.x) + pitch = clamp(pitch + yc, -l.y, l.y) + $Camera.rotation = Vector3(deg2rad(pitch), deg2rad(fmod(yaw, 360)), 0) + $PointerHolder/Pointer.visible = true + + +var trail_cache:Array = [] + +var prev_end +var trail_started = false + +var ct:float = 0 +var segt:float = 0 +var segl:float = 0.01 + +var total_trail_segments = 0 + +onready var trail_base = $PointerHolder/PointerTrail + + +func _ready(): + set_process(false) # this will be re-enabled by onboarding.gd when needed +# Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + + + var img = Globals.imageLoader.load_if_exists("user://cursor") + if img: $PointerHolder/Pointer.mesh.surface_get_material(0).albedo_texture = img + + var mat = trail_base.get("material/0") + var img2 = Globals.imageLoader.load_if_exists("user://trail") + if img2: mat.albedo_texture = img2 + elif img: mat.albedo_texture = img + + yield(get_tree(),"idle_frame") + prev_end = global_transform.origin + + for i in range(48): + var trail = trail_base.duplicate() + $PointerHolder.add_child(trail) + trail.connect("cache_me",self,"cache_trail",[trail]) + trail_cache.append(trail) + trail.init() + trail_started = true + +var t = 0 +var ci = 0 + +var trail_t = 0 + +func cache_trail(part:Spatial): + trail_cache.append(part) + +var ripple = preload("res://assets/notefx/ripple/ripple.tscn") + +func on_click(): + if !Rhythia.selected_colorset: return + ci = (ci+1) % len(Rhythia.selected_colorset.colors) + var e = ripple.instance() + e.spawn_menu(self,Rhythia.selected_colorset.colors[ci],$PointerHolder/Pointer.transform) + pass # this will do raycast stuff eventually + +func _process(delta): + if $Camera.fov > fov_target: + $Camera.fov = max(lerp($Camera.fov, fov_target * 0.99, delta * 2), fov_target) + elif $Camera.fov < fov_target: + $Camera.fov = min(lerp($Camera.fov, fov_target * 1.01, delta * 2), fov_target) + # if it's equal we don't need to do anything + + if !controls_allowed: + if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + + if Input.is_action_just_pressed("toggle_mouse_lock"): + if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + else: + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + + if controls_allowed: + $PointerHolder.visible = true + var xp = Input.get_action_strength("joy_right") - Input.get_action_strength("joy_left") + var yp = Input.get_action_strength("joy_up") - Input.get_action_strength("joy_down") + + $Label.text = "" + + # $Camera/p.visible = (xp != 0 || yp != 0) + # $Camera/p2.visible = (xp != 0 || yp != 0) + + if xp != 0 || yp != 0: + $PointerHolder/Pointer.visible = true + var l = get_limits() + + + $Camera/p.transform.origin.x = xp + $Camera/p.transform.origin.y = yp + + if sign(xp) == -sign(yaw) && (l.x - abs(yaw)) < yaw_pillow: + xp *= (l.x - abs(yaw)) / yaw_pillow + + if sign(yp) == sign(pitch) && (l.y - abs(pitch)) < pitch_pillow: + yp *= (l.y - abs(pitch)) / pitch_pillow + + var xc = -(xp * Rhythia.sensitivity * delta * joy_multi) + var yc = (yp * Rhythia.sensitivity * delta * joy_multi) + + $Camera/p2.transform.origin.x = xp + $Camera/p2.transform.origin.y = yp + + yaw = clamp(yaw + xc, -l.x, l.x) + pitch = clamp(pitch + yc, -l.y, l.y) + $Camera.rotation = Vector3(deg2rad(pitch), deg2rad(fmod(yaw, 360)), 0) + + $Camera/RayCast.force_raycast_update() + + if $Camera/RayCast.is_colliding(): + $Label.text += "\nP: " + String($Camera/RayCast.get_collision_point()) + $Label.text += "\nN: " + String($Camera/RayCast.get_collision_normal()) + + $PointerHolder/Pointer.global_translation = $Camera/RayCast.get_collision_point() + $PointerHolder/Pointer.look_at($PointerHolder/Pointer.global_translation - $Camera/RayCast.get_collision_normal(),Vector3.UP) + + $PointerHolder/Pointer.scale = Vector3(Rhythia.cursor_scale, Rhythia.cursor_scale, Rhythia.cursor_scale) + + if Rhythia.cursor_color_type == Globals.CURSOR_RAINBOW: + $PointerHolder/Pointer.mesh.material.albedo_color = Color.from_hsv(Rhythia.rainbow_t*0.1,0.65,1) + elif Rhythia.cursor_color_type == Globals.CURSOR_NOTE_COLOR: + if Rhythia.selected_colorset: + ci = ci % len(Rhythia.selected_colorset.colors) + $PointerHolder/Pointer.mesh.material.albedo_color = Rhythia.selected_colorset.colors[ci] + else: + $PointerHolder/Pointer.mesh.material.albedo_color = Rhythia.cursor_color + else: + $PointerHolder/Pointer.visible = false + + if Rhythia.cursor_trail and trail_started: +# print("doing trail") + trail_t += delta + $Label.text += "\n\nT: " + String(trail_t) + + if Rhythia.smart_trail: + $Label.text += "\nsmart" + trail_t = 0 + var start_p = $PointerHolder/Pointer.global_transform.origin + var end_p = prev_end + $Label.text += "\nD: " + String((start_p-end_p).length()) + var amt = min(ceil(Rhythia.trail_detail*((start_p-end_p).length())),120) + $Label.text += "\nA: " + String(amt) + + for i in range(amt): + var trail:Spatial + var v = float(i)/float(amt) + var pos = lerp(start_p,end_p,v) + if trail_cache.size() != 0: + trail = trail_cache.pop_front() + else: + trail = trail_base.duplicate() + $PointerHolder.add_child(trail) + trail.connect("cache_me",self,"cache_trail",[trail]) + total_trail_segments += 1 + + trail.start_smart(v*delta,pos) + + elif trail_t >= 1.0 / Rhythia.trail_detail: + $Label.text += "\ndumb" + while trail_t >= 1.0 / Rhythia.trail_detail: + var trail:Spatial + var v = clamp(trail_t / (1.0 / Rhythia.trail_detail), 0.0, 1.0) + + trail_t -= (1.0 / Rhythia.trail_detail) + + if trail_cache.size() != 0: + trail = trail_cache.pop_front() + else: + trail = trail_base.duplicate() + $PointerHolder.add_child(trail) + trail.connect("cache_me",self,"cache_trail",[trail]) + total_trail_segments += 1 + trail.start(v) + + prev_end = $PointerHolder/Pointer.global_transform.origin + $Label.text += "\nTotal: " + String(total_trail_segments) + + if Input.is_action_just_pressed("menu_click"): + on_click() diff --git a/scripts/ui/menu3d/GameInit.gd b/scripts/ui/menu3d/GameInit.gd new file mode 100644 index 00000000..1651b3eb --- /dev/null +++ b/scripts/ui/menu3d/GameInit.gd @@ -0,0 +1,126 @@ +extends Spatial + +var active:bool = false + +var thread:Thread +var target:String = Rhythia.menu_target +var leaving:bool = false + +func stage(text:String,done:bool=false): + $Label2.text = text + if done: +# black_fade_target = true + $Label2.text = "Loading menu" + var res = RQueue.queue_resource(target) + if res != OK: + Rhythia.errorstr = "queue_resource returned %s" % res + get_tree().change_scene("res://scenes/errors/menuload.tscn") +# leaving = true + +enum { + MODE_STARTINIT = 0, + MODE_MIDINIT = 1, + MODE_MENU = 2, +} + +func activate(mode): + get_node("../Music").change(true,false,false,false) + + print("Showing loading screen in mode %s" % mode) + + active = true + +# init vr (disabled currently) +# var VR = ARVRServer.find_interface("OpenVR") +# if VR and VR.initialize(): +# target = "res://vrmenudemo.tscn" + +# VisualServer.set_debug_generate_wireframes(true) +# get_viewport().debug_draw = get_viewport().DEBUG_DRAW_OVERDRAW + + if mode == MODE_STARTINIT or mode == MODE_MIDINIT: + Rhythia.connect("init_stage_reached",self,"stage") + + match mode: + MODE_STARTINIT: + thread = Thread.new() + + OS.request_permissions() + yield(get_tree().create_timer(0.5),"timeout") + if ProjectSettings.get_setting("application/config/auto_maximize") and Rhythia.auto_maximize: OS.window_maximized = true + yield(get_tree().create_timer(0.5),"timeout") + + thread.start(Rhythia,"do_init") + + MODE_MENU: + stage("",true) + + _: + pass + + if ProjectSettings.get_setting("application/config/discord_rpc"): + var activity = Discord.Activity.new() + activity.set_type(Discord.ActivityType.Playing) + activity.set_details("Initialization") + + if mode == MODE_MENU: activity.set_state("Loading menu") + elif Rhythia.do_archive_convert: activity.set_state("Mass-converting songs") + elif Rhythia.first_init_done: activity.set_state("Reloading content") + else: activity.set_state("Starting the game") + + var assets = activity.get_assets() + assets.set_large_image("icon") + + Discord.activity_manager.update_activity(activity) + +func _exit_tree(): + if thread: thread.wait_to_finish() + +var result + +var logo_target = -2 + +func set_logo_target(i): + logo_target = i + +onready var logo = [ + $Logo/IconOnly, + $Logo/S0, + $Logo/S1, + $Logo/S2, + $Logo/S3, + $Logo/S4, +] + +var glow_timer = 0 + +func _process(delta): + glow_timer += delta * PI + if glow_timer > PI: + glow_timer -= PI + $LogoSpinner/Glow.opacity = 0.25 + (0.75 * sin(glow_timer)) + var total = 0 +# for i in range(logo.size()): +# var n:Sprite3D = logo[i] +# i -= 1 +# if i == logo_target: +# n.opacity = min(n.opacity + (delta / 0.6), 1) +# else: +# n.opacity = max(n.opacity - (delta / 0.6), 0) +# total += n.opacity + + if !leaving: + + if Rhythia.init_running and OS.has_feature("debug") and Input.is_action_pressed("debug_devmenu"): + target = "res://scenes/devmenu.tscn" + if RQueue.is_ready(target): + result = RQueue.get_resource(target) + leaving = true + get_node("../Music").change(false,false,false,false) + get_parent().black_fade_target = true + if !(result is Object): + Rhythia.errorstr = "get_resource returned non-object (probably null)" + get_tree().change_scene("res://scenes/errors/menuload.tscn") + + if leaving and result and get_parent().black_fade == 1 and get_node("../Music").hv == 0: + get_tree().change_scene_to(result) diff --git a/scripts/ui/menu3d/MenuCamera.gd b/scripts/ui/menu3d/MenuCamera.gd new file mode 100644 index 00000000..7cafa7db --- /dev/null +++ b/scripts/ui/menu3d/MenuCamera.gd @@ -0,0 +1,11 @@ +extends Camera + +var yaw = 0 +var pitch = 0 + +func _input(event): + if Rhythia.cam_unlock and !Rhythia.replaying: + if (event is InputEventMouseMotion) or (event is InputEventScreenDrag): + yaw = fmod(yaw - event.relative.x * Rhythia.sensitivity * 0.2, 360) + pitch = max(min(pitch - event.relative.y * Rhythia.sensitivity * 0.2, 89), -89) + rotation = Vector3(deg2rad(pitch), deg2rad(yaw), 0) diff --git a/scripts/ui/menu3d/Music.gd b/scripts/ui/menu3d/Music.gd new file mode 100644 index 00000000..99a08588 --- /dev/null +++ b/scripts/ui/menu3d/Music.gd @@ -0,0 +1,51 @@ +extends Node + +var transition_time:float = 0.6 + +var strings_target:bool = false +var piano_target:bool = false +var phaser_target:bool = false +var drums_target:bool = false + +var strings_v:float = 0 +var piano_v:float = 0 +var phaser_v:float = 0 +var drums_v:float = 0 + +var hv:float = 0 # highest value, for fade-out checks + +func change(strings:bool,piano:bool,phaser:bool,drums:bool): + strings_target = strings + piano_target = piano + phaser_target = phaser + drums_target = drums + + if (strings_v + piano_v + phaser_v + drums_v) == 0: + $Strings.play() +# strings_v = float(strings) + $Piano.play() +# piano_v = float(piano) + $Phaser.play() +# phaser_v = float(phaser) + $Drums.play() +# drums_v = float(drums) + +func m(x:float,v:bool): + if v: return x + else: return -x + +func _process(delta:float): + var c:float = delta / transition_time + var bfm:float = 1.0 - get_parent().black_fade + + strings_v = clamp(strings_v + m(c,strings_target),0,1) + piano_v = clamp(piano_v + m(c,piano_target),0,1) + phaser_v = clamp(phaser_v + m(c,phaser_target),0,1) + drums_v = clamp(drums_v + m(c,drums_target),0,1) + + $Strings.volume_db = linear2db(strings_v * bfm) + $Piano.volume_db = linear2db(piano_v * bfm) + $Phaser.volume_db = linear2db(phaser_v * bfm) + $Drums.volume_db = linear2db(drums_v * bfm) + + hv = max(max(strings_v,piano_v),max(phaser_v,drums_v)) diff --git a/scripts/ui/menu3d/PointerTrail.gd b/scripts/ui/menu3d/PointerTrail.gd new file mode 100644 index 00000000..05b2ffe3 --- /dev/null +++ b/scripts/ui/menu3d/PointerTrail.gd @@ -0,0 +1,82 @@ +extends Spatial + +signal cache_me + +var started:bool = false +var t:float = 0 + +onready var cursor = get_node("../Pointer") +onready var cursormesh = get_node("../Pointer") + +var last_origin = Vector3(-100,0,0) +var before +var can_reuse:bool = false +var transp_multi = 1 + +var smart:bool = false + +func respawn(t_override=null): + if t_override: + visible = true + global_transform.origin = t_override + else: + visible = (cursor.global_transform.origin - Vector3(0,0,0.001)) != last_origin + global_transform.origin = cursor.global_transform.origin - Vector3(0,0,0.001) + + self.get("material/0").albedo_color = cursormesh.mesh.surface_get_material(0).albedo_color + rotation = cursormesh.rotation + +func upd_dumb(delta): + t += (delta/Rhythia.trail_time) + + var a = clamp((t - 0.2),0,1) + if Rhythia.trail_mode_opacity: + get("material/0").albedo_color.a = a * 0.6 * transp_multi + if Rhythia.trail_mode_scale: + scale = Vector3(a*Rhythia.cursor_scale,a*Rhythia.cursor_scale,a*Rhythia.cursor_scale) + if t >= 1: + started = false + visible = false + emit_signal("cache_me") + +func update(delta): + t -= (delta/Rhythia.trail_time) + var a = clamp((t),0,1) + if Rhythia.trail_mode_opacity: + self.get("material/0").albedo_color.a = a * 0.6 * transp_multi + if Rhythia.trail_mode_scale: + scale = Vector3(a*Rhythia.cursor_scale,a*Rhythia.cursor_scale,a*Rhythia.cursor_scale) + if t <= 0: + started = false + visible = false + emit_signal("cache_me") + +func _process(delta): + if started: + if smart: update(delta) + else: upd_dumb(delta) + +var init_done:bool = false +func init(): + smart = false + scale = Vector3(0,1,0) + if not Rhythia.trail_mode_scale: + scale = Vector3(Rhythia.cursor_scale,Rhythia.cursor_scale,Rhythia.cursor_scale) + + if init_done: return + init_done = true + var mat:SpatialMaterial = self.get("material/0").duplicate() + self.set("material/0",mat) + +func start(v:float): + init() + t = v + started = true + + +func start_smart(v:float,pos:Vector3): + init() + smart = true + started = true + t = 1 - v + respawn(pos) diff --git a/scripts/ui/menu3d/init3d.gd b/scripts/ui/menu3d/init3d.gd new file mode 100644 index 00000000..b7535168 --- /dev/null +++ b/scripts/ui/menu3d/init3d.gd @@ -0,0 +1,42 @@ +extends Node + +func _ready(): + set_process(false) + get_tree().paused = false + + # fix audio pitchshifts + if AudioServer.get_bus_effect_count(AudioServer.get_bus_index("Music")) > 0: + AudioServer.remove_bus_effect(AudioServer.get_bus_index("Music"),0) + + $BlackFade.visible = true + $BlackFade.color = Color(0,0,0,black_fade) + + self.call_deferred("_begin") + # We defer this because, on startup, Globals will invoke the do_init function + # and we want to make sure we give it a chance to set init_running + +func _begin(): +# active = true + set_process(true) + $Controls.set_process(true) + if Rhythia.init_running: + print("Init is running, listening for init stage events.") + $GameInit.activate(1) # MODE_MIDINIT + elif Rhythia.is_init: + print("Init is requested, calling do_init and listening for stage events.") + $GameInit.activate(0) # MODE_STARTINIT + else: + print("Init is not running or requested, proceeding to the main menu.") + $GameInit.activate(2) # MODE_MENU + +var black_fade_target:bool = false +var black_fade:float = 1 + +func _process(delta): + if black_fade_target && black_fade != 1: + black_fade = min(black_fade + (delta/0.6),1) + $BlackFade.color = Color(0,0,0,black_fade) + elif !black_fade_target && black_fade != 0: + black_fade = max(black_fade - (delta/0.5),0) + $BlackFade.color = Color(0,0,0,black_fade) + $BlackFade.visible = (black_fade != 0) diff --git a/scripts/ui/settings/ArchiveConvert.gd b/scripts/ui/settings/ArchiveConvert.gd index e7d343ab..2665f2a3 100644 --- a/scripts/ui/settings/ArchiveConvert.gd +++ b/scripts/ui/settings/ArchiveConvert.gd @@ -10,7 +10,7 @@ func _pressed(): OS.shell_open(ProjectSettings.globalize_path(Globals.p("user://packs"))) elif confirm: Rhythia.do_archive_convert = true - get_tree().change_scene("res://scenes/init.tscn") + get_tree().change_scene("res://scenes/init3d.tscn") else: confirm = true text = "8 GB space required. Continue?" diff --git a/scripts/ui/settings/Profiles.gd b/scripts/ui/settings/Profiles.gd index e82041fb..25e3e16a 100644 --- a/scripts/ui/settings/Profiles.gd +++ b/scripts/ui/settings/Profiles.gd @@ -55,7 +55,7 @@ func on_pressed(i): # Rhythia.is_switch_profile = true get_viewport().get_node("Menu").black_fade_target = true yield(get_tree().create_timer(0.35),"timeout") - get_tree().change_scene("res://scenes/init.tscn") + get_tree().change_scene("res://scenes/init3d.tscn") Rhythia.load_saved_settings(profile) Rhythia.save_settings() diff --git a/scripts/ui/settings/ReloadContent.gd b/scripts/ui/settings/ReloadContent.gd index 683bb865..459625dd 100644 --- a/scripts/ui/settings/ReloadContent.gd +++ b/scripts/ui/settings/ReloadContent.gd @@ -19,6 +19,6 @@ func _pressed(): get_viewport().get_node("Menu").black_fade_target = true yield(get_tree().create_timer(0.35),"timeout") Rhythia.is_init = true - get_tree().change_scene("res://scenes/init.tscn") + get_tree().change_scene("res://scenes/init3d.tscn") else: Globals.confirm_prompt.s_back.play() diff --git a/uitheme.tres b/uitheme.tres index 7e2302bd..e0fe1feb 100644 --- a/uitheme.tres +++ b/uitheme.tres @@ -1,8 +1,9 @@ -[gd_resource type="Theme" load_steps=23 format=2] +[gd_resource type="Theme" load_steps=25 format=2] [ext_resource path="res://assets/font/Lato/Lato-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://assets/font/Noto_Sans_JP/NotoSansJP-Medium.otf" type="DynamicFontData" id=2] [ext_resource path="res://assets/font/NotoColorEmoji.ttf" type="DynamicFontData" id=3] +[ext_resource path="res://assets/font/NotoSansMono/NotoSansMono-Medium.ttf" type="DynamicFontData" id=4] [sub_resource type="DynamicFont" id=17] use_filter = true @@ -48,6 +49,12 @@ corner_radius_top_right = 6 corner_radius_bottom_right = 6 corner_radius_bottom_left = 6 +[sub_resource type="DynamicFont" id=20] +size = 14 +font_data = ExtResource( 4 ) +fallback/0 = ExtResource( 2 ) +fallback/1 = ExtResource( 3 ) + [sub_resource type="StyleBoxFlat" id=5] bg_color = Color( 0.87451, 0.87451, 0.87451, 1 ) draw_center = false @@ -251,6 +258,8 @@ ColorPickerButton/styles/focus = null ColorPickerButton/styles/hover = null ColorPickerButton/styles/normal = null ColorPickerButton/styles/pressed = null +DevMenuMonoLabel/base_type = "Label" +DevMenuMonoLabel/fonts/font = SubResource( 20 ) Dialogs/constants/button_margin = 32 Dialogs/constants/margin = 8 FileDialog/colors/file_icon_modulate = Color( 1, 1, 1, 1 )