feat: add battlepass slider and quest list tabs to lobby HUD

This commit is contained in:
2026-07-09 18:25:07 +08:00
parent 114748a54f
commit 933119ca56
99 changed files with 3861 additions and 417 deletions
+11 -11
View File
@@ -27,22 +27,22 @@ jobs:
- name: Setup Godot (Cached)
run: |
apt-get update -qq && apt-get install -y -qq unzip curl
if [ ! -f /cache/godot_4.7 ]; then
echo "Downloading Godot 4.7..."
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_linux.x86_64.zip"
if [ ! -f /cache/godot_4.6.3 ]; then
echo "Downloading Godot 4.6.3..."
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.6.3-stable/Godot_v4.6.3-stable_linux.x86_64.zip"
unzip -q -o /tmp/godot.zip -d /cache/
mv /cache/Godot_v4.7-stable_linux.x86_64 /cache/godot_4.7
mv /cache/Godot_v4.6.3-stable_linux.x86_64 /cache/godot_4.6.3
fi
cp /cache/godot_4.7 /usr/local/bin/godot
cp /cache/godot_4.6.3 /usr/local/bin/godot
chmod +x /usr/local/bin/godot
mkdir -p ~/.local/share/godot/export_templates/4.7.stable
if [ ! -f /cache/Godot_v4.7-stable_export_templates.tpz ]; then
mkdir -p ~/.local/share/godot/export_templates/4.6.3.stable
if [ ! -f /cache/Godot_v4.6.3-stable_export_templates.tpz ]; then
echo "Downloading templates..."
curl -sL -o /cache/Godot_v4.7-stable_export_templates.tpz \
"https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_export_templates.tpz"
curl -sL -o /cache/Godot_v4.6.3-stable_export_templates.tpz \
"https://github.com/godotengine/godot-builds/releases/download/4.6.3-stable/Godot_v4.6.3-stable_export_templates.tpz"
fi
cd ~/.local/share/godot/export_templates/4.7.stable
unzip -q -o /cache/Godot_v4.7-stable_export_templates.tpz
cd ~/.local/share/godot/export_templates/4.6.3.stable
unzip -q -o /cache/Godot_v4.6.3-stable_export_templates.tpz
mv templates/* .
rm -rf templates
cd $GITHUB_WORKSPACE
+5 -5
View File
@@ -28,14 +28,14 @@ jobs:
- name: Setup Godot (Cached)
run: |
if [ ! -f /cache/godot_4.7 ]; then
echo "Downloading Godot 4.7..."
if [ ! -f /cache/godot_4.6.3 ]; then
echo "Downloading Godot 4.6.3..."
apt-get update -qq && apt-get install -y -qq unzip curl
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_linux.x86_64.zip"
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.6.3-stable/Godot_v4.6.3-stable_linux.x86_64.zip"
unzip -q -o /tmp/godot.zip -d /cache/
mv /cache/Godot_v4.7-stable_linux.x86_64 /cache/godot_4.7
mv /cache/Godot_v4.6.3-stable_linux.x86_64 /cache/godot_4.6.3
fi
cp /cache/godot_4.7 /usr/local/bin/godot
cp /cache/godot_4.6.3 /usr/local/bin/godot
chmod +x /usr/local/bin/godot
mkdir -p build
-1
View File
@@ -3,7 +3,6 @@
- Fixed punch/smack SFX playing repeatedly when quickly attacking another player.
- Fixed currency split between Gacha and Shop — wallet balance now updates immediately after purchase without needing to reopen the panel.
- Fixed fatal crash in Multiplayer Gauntlet caused by missing `has_method` check on smack cooldown timers on remote peers.
- Upgraded engine from Godot 4.6 to 4.7 stable for better performance and stability.
- Migrated patch delivery from GitHub Pages to Gitea native raw endpoint — no more external dependencies for game updates.
- CI: optimized build cache for Godot binary, eliminating repeated 140MB downloads on every workflow run.
- CI: shallow repository checkout (--depth 1) for faster clone times.
@@ -0,0 +1 @@
trigger
+3
View File
@@ -0,0 +1,3 @@
<svg width="29" height="32" viewBox="0 0 29 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.5908 0C27.7455 0 28.6813 0.93623 28.6816 2.09082V6.33496C28.6816 6.74949 28.5597 7.13498 28.3516 7.45996C28.3248 7.78987 28.2184 8.12325 28.0156 8.43359L18.1201 23.5752H26.5908C27.7455 23.5752 28.6814 24.5113 28.6816 25.666V29.9092C28.6816 31.064 27.7457 32 26.5908 32H2.0918C0.937096 31.9998 0 31.0639 0 29.9092V25.666C0.000226274 24.5115 0.937236 23.5754 2.0918 23.5752H10.8691L0.835938 8.49023C0.66992 8.24041 0.566752 7.97466 0.517578 7.70801C0.196833 7.34056 7.64485e-05 6.861 0 6.33496V2.09082C0.00031815 0.936346 0.937293 0.000188385 2.0918 0H26.5908ZM14.8809 3.48828C14.7244 3.00665 14.0422 3.00665 13.8857 3.48828L12.418 8.00684C12.348 8.22215 12.1473 8.36806 11.9209 8.36816H7.16895C6.66281 8.36849 6.45273 9.01588 6.8623 9.31348L10.7061 12.1064C10.8893 12.2396 10.9655 12.476 10.8955 12.6914L9.42773 17.21C9.27131 17.6916 9.82274 18.0916 10.2324 17.7939L14.0762 15.002C14.2594 14.8688 14.5072 14.8688 14.6904 15.002L18.5342 17.7939C18.9439 18.0916 19.4953 17.6915 19.3389 17.21L17.8711 12.6914C17.8011 12.476 17.8773 12.2396 18.0605 12.1064L21.9043 9.31348C22.3139 9.01578 22.1031 8.36816 21.5967 8.36816H16.8457C16.6193 8.3681 16.4186 8.22218 16.3486 8.00684L14.8809 3.48828Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dqwm7rou1fttt"
path="res://.godot/imported/badge_bar.svg-e4a524a9fe98564c44524e72480e967b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/badge_bar.svg"
dest_files=["res://.godot/imported/badge_bar.svg-e4a524a9fe98564c44524e72480e967b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+4
View File
@@ -0,0 +1,4 @@
<svg width="41" height="34" viewBox="0 0 41 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.5986 20.0674C15.5986 21.1178 16.4496 21.9695 17.5 21.9697H22.6357C23.6863 21.9697 24.5381 21.1179 24.5381 20.0674V15.2178H34.334V31.8613C34.3339 32.9118 33.4821 33.7637 32.4316 33.7637H7.89453C6.84404 33.7637 5.99226 32.9118 5.99219 31.8613V15.2178H15.5986V20.0674ZM4.18457 31.8613H3.61426C1.61826 31.8613 0 30.2431 0 28.2471V19.4023C0 17.4063 1.61826 15.7881 3.61426 15.7881H4.18457V31.8613ZM36.7119 15.7881C38.7079 15.7882 40.3262 17.4064 40.3262 19.4023V28.2471C40.3262 30.243 38.7079 31.8613 36.7119 31.8613H36.1416V15.7881H36.7119ZM32.4316 0C33.4822 0 34.334 0.85181 34.334 1.90234V13.5059H24.5381V9.03516C24.538 7.98469 23.6862 7.13281 22.6357 7.13281H17.5C16.4497 7.13301 15.5987 7.98482 15.5986 9.03516V13.5059H5.99219V1.90234C5.99219 0.85181 6.844 0 7.89453 0H32.4316Z" fill="white"/>
<rect x="16.834" y="8.36963" width="6.27713" height="12.364" rx="1.90216" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 999 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b45naqdq1rfbf"
path="res://.godot/imported/bag.svg-6aad2540ac3b2ae41bbaa0eab08dc35d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/bag.svg"
dest_files=["res://.godot/imported/bag.svg-6aad2540ac3b2ae41bbaa0eab08dc35d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+3
View File
@@ -0,0 +1,3 @@
<svg width="81" height="9" viewBox="0 0 81 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.89406 0H80.3482L73.4541 9H0L6.89406 0Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 168 B

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5qt2u2k23b5w"
path="res://.godot/imported/bar_active.svg-fa2bdc20c08dc5e5caf41404ea9fca52.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/bar_active.svg"
dest_files=["res://.godot/imported/bar_active.svg-fa2bdc20c08dc5e5caf41404ea9fca52.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,3 @@
<svg width="81" height="9" viewBox="0 0 81 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" d="M6.89406 0H80.3482L73.4541 9H0L6.89406 0Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 182 B

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://y0y2fqa6xml7"
path="res://.godot/imported/bar_default.svg-b536747d2c9a6af5ffa8cdb61e16d577.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/bar_default.svg"
dest_files=["res://.godot/imported/bar_default.svg-b536747d2c9a6af5ffa8cdb61e16d577.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwk0ftvkieg6a"
path="res://.godot/imported/battlepass_left.png-faa67cece510943dcfea37649905d983.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/battlepass_left.png"
dest_files=["res://.godot/imported/battlepass_left.png-faa67cece510943dcfea37649905d983.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ccnwto2rc8h6u"
path="res://.godot/imported/battlepass_right.png-bfe70d145001815fbebe7138176c3a0d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/battlepass_right.png"
dest_files=["res://.godot/imported/battlepass_right.png-bfe70d145001815fbebe7138176c3a0d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjqxr7nt5n1i0"
path="res://.godot/imported/blue_tile.png-b6228b7f24ff3e6dc562f9408bf54937.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/blue_tile.png"
dest_files=["res://.godot/imported/blue_tile.png-b6228b7f24ff3e6dc562f9408bf54937.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bhv35y3q1jxr0"
path="res://.godot/imported/card_xmple.png-8c32694d37dfa9b52f185eb68032d21f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/card_xmple.png"
dest_files=["res://.godot/imported/card_xmple.png-8c32694d37dfa9b52f185eb68032d21f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+3
View File
@@ -0,0 +1,3 @@
<svg width="33" height="32" viewBox="0 0 33 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.6 0C30.1346 0 33 2.77699 33 6.20259V19.3831C33 22.8087 30.1346 25.5857 26.6 25.5857H16.3142L8.36533 31.8048C7.7767 32.2653 6.90002 31.8593 6.9 31.1261V25.5857H6.4C2.86538 25.5857 1.03095e-07 22.8087 0 19.3831V6.20259C1.03095e-07 2.77699 2.86538 0 6.4 0H26.6ZM9.1 10.1761C7.60883 10.1761 6.4 11.3477 6.4 12.7928C6.4 14.238 7.60883 15.4096 9.1 15.4096C10.5912 15.4096 11.8 14.238 11.8 12.7928C11.8 11.3477 10.5912 10.1761 9.1 10.1761ZM16.5 10.1761C15.0088 10.1761 13.8 11.3477 13.8 12.7928C13.8 14.238 15.0088 15.4096 16.5 15.4096C17.9912 15.4096 19.2 14.238 19.2 12.7928C19.2 11.3477 17.9912 10.1761 16.5 10.1761ZM23.9 10.1761C22.4088 10.1761 21.2 11.3477 21.2 12.7928C21.2 14.238 22.4088 15.4096 23.9 15.4096C25.3912 15.4096 26.6 14.238 26.6 12.7928C26.6 11.3477 25.3912 10.1761 23.9 10.1761Z" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 927 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dj1dt2noi1bl3"
path="res://.godot/imported/chat.svg-ace9e070f497fc9416dfc6184da3dbb8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/chat.svg"
dest_files=["res://.godot/imported/chat.svg-ace9e070f497fc9416dfc6184da3dbb8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+3
View File
@@ -0,0 +1,3 @@
<svg width="14" height="8" viewBox="0 0 14 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.63512 0.244192C7.25935 -0.0812354 6.70159 -0.0812345 6.32582 0.244193L0.347785 5.42132C-0.352119 6.02745 0.0765559 7.17725 1.00244 7.17725L12.9585 7.17725C13.8844 7.17724 14.3131 6.02745 13.6132 5.42132L7.63512 0.244192Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 350 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bblx8fmv77m7h"
path="res://.godot/imported/chev.svg-fce4a145742f1ff9544de09b3a2b99e2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/chev.svg"
dest_files=["res://.godot/imported/chev.svg-fce4a145742f1ff9544de09b3a2b99e2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,8 @@
<svg width="41" height="32" viewBox="0 0 41 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25.8808 6.23451C25.8808 9.67774 23.0895 12.469 19.6463 12.469C16.2031 12.469 13.4118 9.67774 13.4118 6.23451C13.4118 2.79129 16.2031 0 19.6463 0C23.0895 0 25.8808 2.79129 25.8808 6.23451Z" fill="white"/>
<path d="M37.87 7.28916C37.87 10.1497 35.5511 12.4686 32.6906 12.4686C29.83 12.4686 27.5111 10.1497 27.5111 7.28916C27.5111 4.42864 29.83 2.10972 32.6906 2.10972C35.5511 2.10972 37.87 4.42864 37.87 7.28916Z" fill="white"/>
<path d="M11.7811 7.28916C11.7811 10.1497 9.46219 12.4686 6.60166 12.4686C3.74114 12.4686 1.42222 10.1497 1.42222 7.28916C1.42222 4.42864 3.74114 2.10972 6.60166 2.10972C9.46219 2.10972 11.7811 4.42864 11.7811 7.28916Z" fill="white"/>
<path d="M8.4125 16.5375C8.59451 16.5375 8.77538 16.5442 8.95417 16.5569C8.66574 17.3644 8.50833 18.2353 8.50833 19.1431V32H0V24.1604C9.07467e-05 19.9504 3.38123 16.5376 7.55208 16.5375H8.4125Z" fill="white"/>
<path d="M20.2187 14.2222C24.6273 14.2222 28.2014 17.8299 28.2014 22.2799V32H12.2361V22.2799C12.2361 17.8299 15.8102 14.2222 20.2187 14.2222Z" fill="white"/>
<path d="M32.9813 16.5375C37.1521 16.5376 40.5332 19.9504 40.5333 24.1604V32H31.6431V19.1431C31.6431 18.2486 31.4901 17.3898 31.2097 16.5924C31.5084 16.5561 31.8125 16.5375 32.1208 16.5375H32.9813Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bg7mca4i1fgup"
path="res://.godot/imported/community_bar.svg-504b1077795422180a9f71afb6c956cc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/community_bar.svg"
dest_files=["res://.godot/imported/community_bar.svg-504b1077795422180a9f71afb6c956cc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,11 @@
<svg width="41" height="31" viewBox="0 0 41 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.5101 4C19.2799 2.66667 21.2052 2.66667 21.975 4L27.7484 14H28.0394L33.8002 5.11914C34.9666 3.32125 37.7615 4.36951 37.4584 6.49121L35.9935 16.7412C35.9763 16.8615 35.9486 16.978 35.9115 17.0898L34.7426 28H5.74255L4.57361 17.0898C4.53647 16.978 4.50879 16.8615 4.49158 16.7412L3.02673 6.49121C2.72363 4.36951 5.51851 3.32125 6.68494 5.11914L12.4447 14H12.7357L18.5101 4Z" fill="#FFAE00"/>
<path d="M18.5101 4C19.2799 2.66667 21.2052 2.66667 21.975 4L27.7484 14H28.0394L33.8002 5.11914C34.9666 3.32125 37.7615 4.36951 37.4584 6.49121L35.9935 16.7412C35.9763 16.8615 35.9486 16.978 35.9115 17.0898L34.7426 28H5.74255L4.57361 17.0898C4.53647 16.978 4.50879 16.8615 4.49158 16.7412L3.02673 6.49121C2.72363 4.36951 5.51851 3.32125 6.68494 5.11914L12.4447 14H12.7357L18.5101 4Z" fill="url(#paint0_linear_95_36)" fill-opacity="0.74" style="mix-blend-mode:color-dodge"/>
<path d="M16.1009 2.1974C18.0691 -0.73243 22.417 -0.732505 24.3851 2.1974L24.5736 2.50014L28.0345 8.49428L31.2835 3.48647C34.2008 -1.01018 41.186 1.61361 40.429 6.91518L40.4281 6.91615L38.9632 17.1662C38.9398 17.3302 38.9075 17.4916 38.8685 17.6505L37.4388 31.0001H3.04721L1.61752 17.6505C1.57853 17.4916 1.54528 17.3303 1.52182 17.1662L0.0569719 6.91615C-0.688111 1.69763 6.06765 -0.927241 9.06185 3.28041L9.20248 3.48647L12.4505 8.49428L15.9124 2.50014L16.1009 2.1974ZM21.9749 4.00014C21.2051 2.66696 19.2799 2.66686 18.5101 4.00014L12.7357 14.0001H12.4447L6.6849 5.11928C5.51842 3.32163 2.72366 4.36975 3.0267 6.49135L4.49154 16.7413C4.50875 16.8616 4.53645 16.9782 4.57357 17.09L5.74252 28.0001H34.7425L35.9115 17.09C35.9486 16.9782 35.9763 16.8617 35.9935 16.7413L37.4583 6.49135C37.7614 4.36965 34.9666 3.32138 33.8001 5.11928L28.0394 14.0001H27.7484L21.9749 4.00014Z" fill="white"/>
<defs>
<linearGradient id="paint0_linear_95_36" x1="20.2426" y1="3" x2="20.2426" y2="28" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF623B"/>
<stop offset="1" stop-color="#666666" stop-opacity="0"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://k1sghma1361w"
path="res://.godot/imported/crown_profile.svg-1d229ff3606b6073a9f2b00a00db02fc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/crown_profile.svg"
dest_files=["res://.godot/imported/crown_profile.svg-1d229ff3606b6073a9f2b00a00db02fc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,4 @@
[gd_resource type="CompressedTexture2D" format=3 uid="uid://dwb753gnca5wv"]
[resource]
load_path = "res://.godot/imported/crown_profile.svg-1d229ff3606b6073a9f2b00a00db02fc.ctex"
+8
View File
@@ -0,0 +1,8 @@
<svg width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.1441 3.04572C10.3436 2.47913 10.8789 2.1001 11.4796 2.1001H20.7324C21.3331 2.1001 21.8684 2.47913 22.0679 3.04572L24.7897 10.7751C24.8695 11.0017 24.9102 11.2403 24.9102 11.4805V15.9995C24.9102 16.7815 24.2763 17.4154 23.4943 17.4154H8.71765C7.93568 17.4154 7.30176 16.7815 7.30176 15.9995V11.4805C7.30176 11.2403 7.34253 11.0017 7.42233 10.7751L10.1441 3.04572Z" fill="white"/>
<path d="M12.193 5.35219C12.3239 4.98026 12.6753 4.73145 13.0697 4.73145H19.1436C19.5379 4.73145 19.8893 4.98026 20.0203 5.35219L21.8069 10.4261C21.8593 10.5749 21.8861 10.7314 21.8861 10.8892V13.8556C21.8861 14.3689 21.47 14.785 20.9566 14.785H11.2566C10.7433 14.785 10.3271 14.3689 10.3271 13.8556V10.8892C10.3271 10.7314 10.3539 10.5749 10.4063 10.4261L12.193 5.35219Z" fill="#F2AF1D"/>
<path d="M2.84232 15.7303C3.04183 15.1637 3.57714 14.7847 4.17783 14.7847H13.4306C14.0313 14.7847 14.5666 15.1637 14.7662 15.7303L17.4879 23.4597C17.5677 23.6863 17.6085 23.9248 17.6085 24.1651V28.6841C17.6085 29.4661 16.9746 30.1 16.1926 30.1H1.4159C0.633919 30.1 0 29.4661 0 28.6841V24.1651C0 23.9248 0.0407685 23.6863 0.12057 23.4597L2.84232 15.7303Z" fill="white"/>
<path d="M4.88925 18.0372C5.02022 17.6653 5.37162 17.4165 5.76594 17.4165H11.8399C12.2342 17.4165 12.5856 17.6653 12.7166 18.0372L14.5032 23.1111C14.5556 23.2599 14.5824 23.4165 14.5824 23.5742V26.5407C14.5824 27.054 14.1662 27.4701 13.6529 27.4701H3.95289C3.43957 27.4701 3.02344 27.054 3.02344 26.5407V23.5742C3.02344 23.4165 3.0502 23.2599 3.10258 23.1111L4.88925 18.0372Z" fill="#F2AF1D"/>
<path d="M17.4341 15.7303C17.6336 15.1637 18.1689 14.7847 18.7696 14.7847H28.0224C28.6231 14.7847 29.1584 15.1637 29.358 15.7303L32.0797 23.4597C32.1595 23.6863 32.2003 23.9248 32.2003 24.1651V28.6841C32.2003 29.4661 31.5663 30.1 30.7844 30.1H16.0077C15.2257 30.1 14.5918 29.4661 14.5918 28.6841V24.1651C14.5918 23.9248 14.6326 23.6863 14.7124 23.4597L17.4341 15.7303Z" fill="white"/>
<path d="M19.482 18.0372C19.613 17.6653 19.9644 17.4165 20.3587 17.4165H26.4326C26.827 17.4165 27.1784 17.6653 27.3093 18.0372L29.096 23.1111C29.1484 23.2599 29.1751 23.4165 29.1751 23.5742V26.5407C29.1751 27.054 28.759 27.4701 28.2457 27.4701H18.5457C18.0323 27.4701 17.6162 27.054 17.6162 26.5407V23.5742C17.6162 23.4165 17.643 23.2599 17.6954 23.1111L19.482 18.0372Z" fill="#F2AF1D"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://rncdblgyqxms"
path="res://.godot/imported/curr_gold.svg-e2aade40f51cb8afdee7896e5f918c90.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/curr_gold.svg"
dest_files=["res://.godot/imported/curr_gold.svg-e2aade40f51cb8afdee7896e5f918c90.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+4
View File
@@ -0,0 +1,4 @@
[gd_resource type="CompressedTexture2D" format=3 uid="uid://dq3crtqml0k35"]
[resource]
load_path = "res://.godot/imported/curr_gold.svg-e2aade40f51cb8afdee7896e5f918c90.ctex"
+4
View File
@@ -0,0 +1,4 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.2435 2.35929C11.76 -0.786429 16.24 -0.786432 17.7565 2.35929L19.6881 6.36628C20.0979 7.21624 20.7838 7.90212 21.6337 8.31186L25.6407 10.2435C28.7864 11.76 28.7864 16.24 25.6407 17.7565L21.6337 19.6881C20.7838 20.0979 20.0979 20.7838 19.6881 21.6337L17.7565 25.6407C16.24 28.7864 11.76 28.7864 10.2435 25.6407L8.31186 21.6337C7.90212 20.7838 7.21624 20.0979 6.36628 19.6881L2.35929 17.7565C-0.786429 16.24 -0.786432 11.76 2.35929 10.2435L6.36628 8.31186C7.21624 7.90212 7.90212 7.21624 8.31186 6.36628L10.2435 2.35929Z" fill="white"/>
<path d="M12.3013 3.63488C13.0356 2.29228 14.9639 2.29228 15.6982 3.63488L18.4902 8.73982C18.6678 9.06464 18.9349 9.3317 19.2597 9.50935L24.3647 12.3013C25.7073 13.0356 25.7073 14.9639 24.3647 15.6982L19.2597 18.4902C18.9349 18.6678 18.6678 18.9349 18.4902 19.2597L15.6982 24.3647C14.9639 25.7073 13.0356 25.7073 12.3013 24.3647L9.50935 19.2597C9.3317 18.9349 9.06464 18.6678 8.73982 18.4902L3.63488 15.6982C2.29228 14.9639 2.29228 13.0356 3.63488 12.3013L8.73982 9.50935C9.06464 9.3317 9.3317 9.06464 9.50935 8.73982L12.3013 3.63488Z" fill="#41CCFE"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bt70g810ef6jj"
path="res://.godot/imported/curr_star.svg-6c7fe7037dccf76a4615f5430186d65a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/curr_star.svg"
dest_files=["res://.godot/imported/curr_star.svg-6c7fe7037dccf76a4615f5430186d65a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+4
View File
@@ -0,0 +1,4 @@
[gd_resource type="CompressedTexture2D" format=3 uid="uid://duxo4w34d3ree"]
[resource]
load_path = "res://.godot/imported/curr_star.svg-6c7fe7037dccf76a4615f5430186d65a.ctex"
@@ -0,0 +1,5 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.6704 14.2317H17.9457V18H6.79027L10.6704 14.2317Z" fill="white"/>
<path d="M0 14.2805L11.1694 3.12333L14.8733 6.8232L3.68429 18L0 18V14.2805Z" fill="white"/>
<path d="M12.2046 2.08925L14.2961 0L18 3.69987L15.9085 5.78913L12.2046 2.08925Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 369 B

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dp3s31pu8qlhh"
path="res://.godot/imported/edit_profile.svg-2a0c92ccba4d176da6dc121f1c47b697.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/edit_profile.svg"
dest_files=["res://.godot/imported/edit_profile.svg-2a0c92ccba4d176da6dc121f1c47b697.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,4 @@
[gd_resource type="CompressedTexture2D" format=3 uid="uid://b2lyv0usa762v"]
[resource]
load_path = "res://.godot/imported/edit_profile.svg-2a0c92ccba4d176da6dc121f1c47b697.ctex"
+7
View File
@@ -0,0 +1,7 @@
<svg width="36" height="37" viewBox="0 0 36 37" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.9951 0C27.9335 0 35.9902 8.08293 35.9902 18.0537C35.9902 28.0245 27.9335 36.1075 17.9951 36.1075C8.05669 36.1075 0 28.0245 0 18.0537C0 8.08293 8.05669 0 17.9951 0ZM10.8279 20.8782C10.7469 20.8654 10.6848 20.9489 10.7204 21.0228C13.6803 27.1588 22.4172 27.1593 25.3771 21.0233C25.4128 20.9493 25.3505 20.8656 25.2693 20.8786L21.1466 21.5409C19.13 21.8648 17.0748 21.8671 15.0575 21.5477L10.8279 20.8782Z" fill="#FFD67A"/>
<path d="M18.0049 1.23535C27.257 1.23535 34.7646 8.76165 34.7646 18.0537C34.7646 27.3458 27.257 34.8721 18.0049 34.8721C8.75276 34.8721 1.24512 27.3458 1.24512 18.0537C1.24513 8.76165 8.75277 1.23535 18.0049 1.23535Z" stroke="black" stroke-width="2.47164"/>
<path d="M11.7188 14.8297C12.7446 13.0913 15.2588 13.0913 16.2847 14.8297" stroke="black" stroke-width="1.50448" stroke-linecap="round"/>
<circle cx="22.8923" cy="14.1853" r="1.93433" fill="black"/>
<path d="M15.0661 21.5479L10.8366 20.8783C10.7555 20.8654 10.6934 20.949 10.7291 21.023C13.689 27.1589 22.4258 27.1594 25.3857 21.0234C25.4214 20.9494 25.3592 20.8657 25.278 20.8788L21.1553 21.541C19.1386 21.8649 17.0834 21.8673 15.0661 21.5479Z" stroke="black" stroke-width="1.7194"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b8bxf0eim4g4p"
path="res://.godot/imported/emoji.svg-6f5d5aa30898e8bccd149f34e174da0c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/emoji.svg"
dest_files=["res://.godot/imported/emoji.svg-6f5d5aa30898e8bccd149f34e174da0c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,12 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.25369 15.1642H10.1492V20.0598H5.25369V15.1642Z" fill="white"/>
<path d="M5.25369 22.5672H10.1492V27.4628H5.25369V22.5672Z" fill="white"/>
<path d="M12.6566 22.5672H17.5521V27.4628H12.6566V22.5672Z" fill="white"/>
<path d="M12.6566 15.1642H17.5521V20.0598H12.6566V15.1642Z" fill="white"/>
<path d="M20.0596 15.1642H24.955V20.0598H20.0596V15.1642Z" fill="white"/>
<path d="M3.82087 6.32838C3.82087 7.77916 4.99695 8.95525 6.44771 8.95525C7.89848 8.95525 9.07456 7.77916 9.07456 6.32838V5.13434H23.6416V6.32838C23.6416 7.77916 24.8177 8.95525 26.2685 8.95525C27.7192 8.95525 28.8953 7.77916 28.8953 6.32838V5.13434H29.4923C31.075 5.13434 32.358 6.41735 32.358 8.00002V17.5523H30.0893V12.2985H2.38804V30.209H17.5521V32.5971H2.86565C1.283 32.5971 0 31.3141 0 29.7314V8.00002C0 6.41735 1.283 5.13434 2.86565 5.13434H3.82087V6.32838Z" fill="white"/>
<path d="M25.0744 1.19403C25.0744 0.534587 25.609 0 26.2685 0C26.9279 0 27.4625 0.534587 27.4625 1.19403V6.32838C27.4625 6.98782 26.9279 7.52241 26.2685 7.52241C25.609 7.52241 25.0744 6.98782 25.0744 6.32838V1.19403Z" fill="white"/>
<path d="M5.25369 1.19403C5.25369 0.534587 5.78827 0 6.44771 0C7.10715 0 7.64173 0.534587 7.64173 1.19403V6.32838C7.64173 6.98782 7.10715 7.52241 6.44771 7.52241C5.78827 7.52241 5.25369 6.98782 5.25369 6.32838V1.19403Z" fill="white"/>
<path d="M27.3434 26.1494C27.3434 25.424 27.9314 24.836 28.6568 24.836C29.3822 24.836 29.9702 25.424 29.9702 26.1494V30.03H33.9105C34.6359 30.03 35.2239 30.6181 35.2239 31.3434C35.2239 32.0688 34.6359 32.6569 33.9105 32.6569H28.6568C27.9314 32.6569 27.3434 32.0688 27.3434 31.3434V26.1494Z" fill="white"/>
<path d="M37.3731 29.9703C37.3731 25.8817 34.0587 22.5673 29.9702 22.5673C25.8817 22.5673 22.5673 25.8817 22.5673 29.9703C22.5673 34.0589 25.8817 37.3733 29.9702 37.3733V40.0002C24.4309 40.0002 19.9404 35.5097 19.9404 29.9703C19.9404 24.431 24.4309 19.9404 29.9702 19.9404C35.5095 19.9404 40 24.431 40 29.9703C40 35.5097 35.5095 40.0002 29.9702 40.0002V37.3733C34.0587 37.3733 37.3731 34.0589 37.3731 29.9703Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d04v2xn8xmom"
path="res://.godot/imported/event_calendar.svg-bc64330a484d7c6bd4740c6db41ef248.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/event_calendar.svg"
dest_files=["res://.godot/imported/event_calendar.svg-bc64330a484d7c6bd4740c6db41ef248.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cep023y0s7f0f"
path="res://.godot/imported/green_tile.png-ee3310f4f145f80c08614e3446669370.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/green_tile.png"
dest_files=["res://.godot/imported/green_tile.png-ee3310f4f145f80c08614e3446669370.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+5
View File
@@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="8" cy="8" r="7.17176" stroke="white" stroke-width="1.65647"/>
<path d="M9.03516 12.1602C9.03516 12.4513 8.79918 12.6872 8.5081 12.6872H7.52927C7.23819 12.6872 7.00221 12.4513 7.00221 12.1602V11.5578C7.00221 11.2667 7.23819 11.0308 7.52927 11.0308H8.5081C8.79918 11.0308 9.03516 11.2667 9.03516 11.5578V12.1602Z" fill="white"/>
<path d="M6.83398 3.82052C6.82339 3.64729 6.96104 3.50098 7.1346 3.50098H8.90372C9.07728 3.50098 9.21492 3.64729 9.20434 3.82052L8.82703 9.99464C8.81732 10.1535 8.68562 10.2774 8.52641 10.2774H7.5119C7.3527 10.2774 7.221 10.1535 7.21129 9.99464L6.83398 3.82052Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 720 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2empktddd47l"
path="res://.godot/imported/info.svg-ee9a6cfd88f87333aa473a30db1f68d5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/info.svg"
dest_files=["res://.godot/imported/info.svg-ee9a6cfd88f87333aa473a30db1f68d5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,6 @@
<svg width="40" height="25" viewBox="0 0 40 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M38.0701 24.6224C37.6519 24.8618 37.1683 25 36.6519 25H2.86078C2.31882 25 1.81217 24.849 1.38023 24.5872L14.2734 10.1463L19.3679 13.4159L25.021 10.008L38.0701 24.6224Z" fill="white"/>
<path d="M39.1602 1.48462C39.3847 1.89294 39.5127 2.3619 39.5127 2.86078V22.1392C39.5127 22.606 39.3999 23.0461 39.2016 23.4354L26.446 9.14909L39.1602 1.48462Z" fill="white"/>
<path d="M12.8803 9.25213L0.277266 23.3683C0.0997667 22.9959 3.08165e-05 22.5792 0 22.1392V2.86078C5.62526e-05 2.27976 0.1735 1.73931 0.471148 1.28803L12.8803 9.25213Z" fill="white"/>
<path d="M36.6519 0C37.117 1.87232e-05 37.5559 0.111558 37.944 0.308449L19.3944 11.4906L1.80528 0.202017C2.13194 0.0722236 2.48789 1.64904e-05 2.86078 0H36.6519Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 834 B

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://kmleuwyxmn0c"
path="res://.godot/imported/message_bar.svg-66acc7d397a41ea08336d5cecf805c29.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/message_bar.svg"
dest_files=["res://.godot/imported/message_bar.svg-66acc7d397a41ea08336d5cecf805c29.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
@@ -0,0 +1,5 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.9294 10C17.9294 5.62071 14.3793 2.07059 10 2.07059C5.62071 2.07059 2.07059 5.62071 2.07059 10C2.07059 14.3793 5.62071 17.9294 10 17.9294V20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20V17.9294C14.3793 17.9294 17.9294 14.3793 17.9294 10Z" fill="white"/>
<path d="M9.00311 11.8589C9.00311 10.6989 9.13373 10.4001 9.70657 9.48241L10.2459 8.753C10.5273 8.18829 10.5273 7.85858 10.5273 7.60006C10.5273 7.11187 10.4761 6.61182 9.97458 6.61182C9.46203 6.61182 9.2376 6.91251 9.2376 7.41182V8.09417C9.2376 8.45803 8.94264 8.753 8.57878 8.753H7.19984C6.83598 8.753 6.54102 8.45803 6.54102 8.09417L6.54102 7.41182C6.54102 5.62019 7.38517 4.23535 9.97458 4.23535C11.8079 4.23535 13.3645 4.89835 13.3645 6.753C13.3645 8.25888 12.7783 9.10594 12.1687 10.0001L11.7466 10.4706C11.4652 10.7059 11.3011 11.3883 11.3011 11.8589V12.0942C11.3011 12.458 11.0061 12.753 10.6422 12.753H9.66194C9.29808 12.753 9.00311 12.458 9.00311 12.0942V11.8589Z" fill="white"/>
<path d="M11.4352 15.1059C11.4352 15.4698 11.1403 15.7648 10.7764 15.7648H9.55287C9.18901 15.7648 8.89405 15.4698 8.89405 15.1059V14.353C8.89405 13.9891 9.18901 13.6942 9.55287 13.6942H10.7764C11.1403 13.6942 11.4352 13.9891 11.4352 14.353V15.1059Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7dp73xokujdb"
path="res://.godot/imported/question_circle.svg-2401c75e57a76566e387083459fe91d8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/question_circle.svg"
dest_files=["res://.godot/imported/question_circle.svg-2401c75e57a76566e387083459fe91d8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+3
View File
@@ -0,0 +1,3 @@
<svg width="41" height="32" viewBox="0 0 41 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24.4486 0C25.6032 0.000161056 26.5392 0.93613 26.5394 2.09074V11.6891H36.52C37.6748 11.6892 38.6107 12.6251 38.6107 13.7799V23.5767C39.6839 23.6653 40.5272 24.5638 40.5274 25.6598V29.9093C40.5274 31.064 39.5914 31.9999 38.4366 32H2.09074C0.936041 31.9998 1.75716e-05 31.064 0 29.9093V25.6598C0.000128848 24.5052 0.93611 23.5692 2.09074 23.5691H2.29954V9.56441C2.29954 8.40957 3.23544 7.47367 4.39028 7.47367H12.7428V2.09074C12.743 0.936107 13.6789 0.000124455 14.8336 0H24.4486ZM31.0302 15.5696C30.6232 15.5696 30.2378 15.6758 29.8746 15.8873C29.5114 16.0948 29.2178 16.374 28.9943 16.7252C28.7668 17.0765 28.653 17.4761 28.653 17.9232V18.576C28.6531 18.6156 28.6692 18.6355 28.7009 18.6356H30.0785C30.1104 18.6356 30.1263 18.6157 30.1264 18.576V17.9891C30.1264 17.7256 30.2143 17.502 30.39 17.3183C30.5655 17.1348 30.7789 17.043 31.0302 17.0429C31.2937 17.0429 31.5136 17.1347 31.6892 17.3183C31.8649 17.502 31.9528 17.7257 31.9528 17.9891V18.1563C31.9528 18.4357 31.8671 18.6617 31.6955 18.8333C31.5239 19.0049 31.3281 19.0906 31.1086 19.0907H30.6293C30.5974 19.0907 30.5815 19.1067 30.5814 19.1385L30.5696 20.5099C30.5697 20.5538 30.5894 20.5758 30.6293 20.5758H31.1086C31.3521 20.5759 31.5539 20.6775 31.7135 20.8811C31.8732 21.0846 31.9528 21.3144 31.9528 21.5699V21.8994C31.9528 22.1508 31.8709 22.3784 31.7073 22.582C31.5436 22.7815 31.3176 22.8809 31.0302 22.8809C30.7709 22.8808 30.5553 22.7853 30.3837 22.5937C30.2122 22.3982 30.1264 22.1667 30.1264 21.8994V21.3479C30.1263 21.3043 30.1064 21.2828 30.0667 21.2827H28.6891C28.6573 21.2828 28.6413 21.3043 28.6412 21.3479V21.8994C28.6413 22.3464 28.7489 22.7598 28.9645 23.139C29.184 23.5142 29.476 23.8131 29.8392 24.0366C30.2064 24.2641 30.6032 24.3778 31.0302 24.3779C31.4733 24.3779 31.8768 24.2686 32.24 24.0491C32.6033 23.8255 32.8952 23.526 33.1147 23.1508C33.3303 22.7716 33.438 22.3544 33.438 21.8994V21.5276C33.438 21.2204 33.3757 20.9212 33.2521 20.6299C33.1283 20.3386 32.9607 20.0709 32.7492 19.8274C32.9607 19.5879 33.1261 19.3383 33.2458 19.0789C33.3656 18.8154 33.4255 18.5038 33.4255 18.1445V17.9468C33.4255 17.5157 33.3178 17.1205 33.1023 16.7613C32.8907 16.4021 32.6033 16.1124 32.24 15.8928C31.8768 15.6773 31.4733 15.5696 31.0302 15.5696ZM9.76697 13.4622C9.35189 13.4622 8.96272 13.5738 8.59951 13.7972C8.23632 14.0167 7.94277 14.3142 7.71923 14.6893C7.49173 15.0645 7.37799 15.4817 7.37795 15.9407V16.54C7.37801 16.5798 7.39394 16.5997 7.42581 16.5997H8.80276C8.8426 16.5997 8.86233 16.5798 8.86241 16.54V15.9407C8.86247 15.6454 8.95042 15.4018 9.12601 15.2102C9.30166 15.0187 9.51549 14.9231 9.76697 14.9231C10.0304 14.9231 10.2481 15.0232 10.4197 15.2227C10.5912 15.4222 10.6771 15.6416 10.6771 15.881C10.6771 15.9688 10.6573 16.0728 10.6174 16.1925C10.5815 16.3082 10.5352 16.4038 10.4794 16.4797L7.44939 20.6355C7.43349 20.6514 7.42587 20.6675 7.42581 20.6834V22.0728C7.42581 22.1127 7.44555 22.1324 7.48547 22.1324H12.0603C12.0962 22.1324 12.1144 22.1127 12.1144 22.0728V20.6834C12.1143 20.6515 12.0961 20.6355 12.0603 20.6355H9.30567L11.635 17.4383C11.7987 17.2228 11.9268 16.9771 12.0186 16.7017C12.1145 16.4222 12.1622 16.1485 12.1622 15.881C12.1622 15.4539 12.0523 15.0566 11.8327 14.6893C11.6172 14.3221 11.3297 14.0247 10.9705 13.7972C10.6073 13.5737 10.206 13.4622 9.76697 13.4622ZM18.8985 4.59353C18.8667 4.59358 18.8507 4.60954 18.8507 4.64139L18.8389 13.0668C18.8389 13.1066 18.8588 13.1264 18.8985 13.1264H20.288C20.3199 13.1264 20.3358 13.1066 20.3358 13.0668L20.324 4.64139C20.324 4.60955 20.308 4.5936 20.2762 4.59353H18.8985Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://btjm25hjxssbd"
path="res://.godot/imported/rank_bar.svg-c6d5a0b7f812f9e43fcf123b38dac146.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/rank_bar.svg"
dest_files=["res://.godot/imported/rank_bar.svg-c6d5a0b7f812f9e43fcf123b38dac146.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cic88doubsblr"
path="res://.godot/imported/red_tile.png-9f219ec997f64576619073039811b504.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/red_tile.png"
dest_files=["res://.godot/imported/red_tile.png-9f219ec997f64576619073039811b504.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27.3138 4.68608C33.5623 10.9347 33.5623 21.0658 27.3138 27.3144C22.1804 32.4476 14.4278 33.3627 8.35921 30.0618L14.1109 24.3101C14.1842 24.2369 14.2756 24.1923 14.3706 24.1766C14.4188 24.1604 14.4717 24.1517 14.5286 24.1517L21.7953 24.1512C22.2137 23.846 22.6153 23.5062 22.993 23.1286C25.6097 20.5119 26.4859 16.814 25.6231 13.4728L20.3248 18.7712C20.1452 18.9507 19.8886 19.0073 19.6611 18.9399L14.3633 18.1804C14.1535 18.1502 13.9885 17.9852 13.9583 17.7755L13.1993 12.4781C13.1318 12.2506 13.188 11.9936 13.3676 11.814L18.817 6.36449C15.3688 5.31226 11.4678 6.14914 8.74067 8.87624C8.5476 9.06933 8.36413 9.26861 8.19 9.47288V17.8131C8.18995 17.8699 8.18129 17.923 8.16506 17.9711C8.14938 18.066 8.10471 18.1575 8.03155 18.2308L2.18449 24.0778C-1.40463 17.9486 -0.571217 9.94382 4.68597 4.68657C10.9345 -1.56194 21.0652 -1.56227 27.3138 4.68608Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 979 B

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://lks5ndwn3ppp"
path="res://.godot/imported/setting_bar.svg-45496c706178804cc5c7146fcde7bf19.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/setting_bar.svg"
dest_files=["res://.godot/imported/setting_bar.svg-45496c706178804cc5c7146fcde7bf19.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+3
View File
@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.2975 0C31.2492 0 31.9831 0.83853 31.8567 1.7818L29.6519 18.2396C29.5471 19.0205 28.8806 19.6033 28.0927 19.6033H10.7722L8.94378 23.0632H25.7821C25.8046 23.0632 25.8268 23.0657 25.8489 23.0667C28.2503 23.1425 30.1737 25.1122 30.1737 27.5319C30.1735 29.9995 28.1732 31.9998 25.7056 32C23.3184 32 21.368 30.128 21.2431 27.772H9.98739C9.86251 30.1279 7.91263 31.9998 5.52559 32C3.05787 32 1.05702 29.9996 1.05683 27.5319C1.05683 25.9527 1.87675 24.5655 3.11345 23.7708C3.14448 23.6447 3.18997 23.5196 3.25469 23.3992L5.97295 18.3447C5.96138 18.2876 5.9525 18.2292 5.94721 18.17L4.79645 5.28556H1.04848C0.469409 5.28548 0 4.81547 0 4.23638V1.04848C7.63629e-05 0.469456 0.469457 7.65464e-05 1.04848 0H30.2975Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 836 B

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ci3nm26qx5vdo"
path="res://.godot/imported/shop_bar.svg-8a6d623c86eeefaae8816eebe1a143fd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/shop_bar.svg"
dest_files=["res://.godot/imported/shop_bar.svg-8a6d623c86eeefaae8816eebe1a143fd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=4.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dc0o5lcx1cq64"
path="res://.godot/imported/yellow_tile.png-764b81de5a4ed1002d1b5b0ffe150bbb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/lobby/yellow_tile.png"
dest_files=["res://.godot/imported/yellow_tile.png-764b81de5a4ed1002d1b5b0ffe150bbb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+13
View File
@@ -0,0 +1,13 @@
shader_type canvas_item;
#include "res://assets/shaders/rounded_border.gdshaderinc"
uniform vec2 rect_size = vec2(270.0, 108.0);
uniform vec4 corner_radius = vec4(20.0, 20.0, 20.0, 20.0); // top-right, bottom-right, top-left, bottom-left
uniform float border_width : hint_range(0.0, 50.0) = 3.0;
uniform vec4 border_color : source_color = vec4(0.06666667, 0.13333334, 0.1882353, 1.0);
void fragment() {
vec4 tex_color = texture(TEXTURE, UV) * COLOR;
COLOR = apply_rounded_border(tex_color, UV, rect_size, corner_radius, border_width, border_color);
}
@@ -0,0 +1 @@
uid://cjpl2gt2fc1h2
+21
View File
@@ -0,0 +1,21 @@
float rounded_box_sdf(vec2 p, vec2 half_size, vec4 r) {
r.xy = (p.x > 0.0) ? r.xy : r.zw;
r.x = (p.y > 0.0) ? r.x : r.y;
vec2 q = abs(p) - half_size + r.x;
return min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r.x;
}
vec4 apply_rounded_border(vec4 base_color, vec2 uv, vec2 rect_size, vec4 corner_radius, float border_width, vec4 border_color) {
vec2 px = uv * rect_size;
vec2 centered = px - rect_size * 0.5;
vec2 half_size = rect_size * 0.5;
float d = rounded_box_sdf(centered, half_size, corner_radius);
float aa = 1.0;
float shape_alpha = 1.0 - smoothstep(-aa, aa, d);
float border_mask = 1.0 - smoothstep(border_width - aa, border_width + aa, -d);
vec4 col = mix(base_color, border_color, border_mask);
col.a *= shape_alpha;
return col;
}
@@ -0,0 +1 @@
uid://blepo5lsqvih7
@@ -0,0 +1,24 @@
shader_type canvas_item;
#include "res://assets/shaders/rounded_border.gdshaderinc"
uniform float blur_amount : hint_range(0.0, 1.0) = 0.0;
uniform float blur_radius_px : hint_range(0.0, 32.0) = 14.0;
uniform vec2 rect_size = vec2(100.0, 108.0);
uniform vec4 corner_radius = vec4(35.0, 35.0, 12.0, 12.0); // top-right, bottom-right, top-left, bottom-left
uniform float border_width : hint_range(0.0, 50.0) = 3.0;
uniform vec4 border_color : source_color = vec4(0.06666667, 0.13333334, 0.1882353, 1.0);
void fragment() {
vec2 px = TEXTURE_PIXEL_SIZE * blur_radius_px * blur_amount;
vec4 sum = texture(TEXTURE, UV) * 2.0;
float total_weight = 2.0;
for (int i = 0; i < 8; i++) {
float angle = float(i) * 0.7853981634; // TAU / 8
vec2 offset = vec2(cos(angle), sin(angle)) * px;
sum += texture(TEXTURE, UV + offset);
total_weight += 1.0;
}
vec4 tex_color = (sum / total_weight) * COLOR;
COLOR = apply_rounded_border(tex_color, UV, rect_size, corner_radius, border_width, border_color);
}
@@ -0,0 +1 @@
uid://dmsw38nbm2val
+1 -1
View File
@@ -58,7 +58,7 @@ No separate Steam vs. Non-Steam presets. All presets produce the same Nakama-onl
On tag push (`v*`), the CI pipeline:
1. **Checkout** code at tag
2. **Setup Godot 4.7** (cached)
2. **Setup Godot 4.6.3** (cached)
3. **Export Windows**`build/windows/tekton_armageddon_windows.exe` (copies `libgodotsteam*` DLLs if present, failure ignored with `|| true`)
4. **Export Linux**`build/linux/tekton_armageddon_linux.x86_64`
5. **Export macOS**`build/macos/tekton_armageddon_macos.zip`
+1 -1
View File
@@ -17,7 +17,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
config/name="Tekton Dash Armageddon"
config/version="2.4.3"
run/main_scene="res://scenes/ui/boot_screen.tscn"
config/features=PackedStringArray("4.7", "Forward Plus")
config/features=PackedStringArray("4.6", "Forward Plus")
boot_splash/bg_color=Color(0.16470589, 0.6745098, 0.9372549, 1)
boot_splash/stretch_mode=0
boot_splash/image="uid://b10e6kr508642"
+148
View File
@@ -0,0 +1,148 @@
extends ScrollContainer
signal page_changed(index: int)
const SNAP_DURATION := 0.25
const TEX_DEFAULT := preload("res://assets/graphics/gui/lobby/bar_default.svg")
const TEX_ACTIVE := preload("res://assets/graphics/gui/lobby/bar_active.svg")
@export var auto_advance_enabled: bool = true
@export var auto_advance_delay: float = 4.0
@onready var _track: HBoxContainer = $CardMargin/HBoxContainer
@onready var _page_dots: Array = get_node_or_null("../PageIndicator").get_children() if get_node_or_null("../PageIndicator") else []
var _dragging := false
var _drag_start_pos := 0.0
var _drag_start_scroll := 0
var _snap_tween: Tween
var _auto_timer: Timer
var _last_reported_page := -1
func _ready() -> void:
_update_indicator()
_setup_auto_timer()
func _setup_auto_timer() -> void:
_auto_timer = Timer.new()
_auto_timer.name = "AutoAdvanceTimer"
_auto_timer.one_shot = true
_auto_timer.timeout.connect(_on_auto_timer_timeout)
add_child(_auto_timer)
_restart_auto_timer()
func _restart_auto_timer() -> void:
if not auto_advance_enabled or _dragging or _card_count() <= 1:
return
_auto_timer.stop()
_auto_timer.wait_time = auto_advance_delay
_auto_timer.start()
func _on_auto_timer_timeout() -> void:
if _dragging:
return
var next_index := (_current_page() + 1) % _card_count()
_animate_to_page(next_index)
func _exit_tree() -> void:
if _auto_timer:
_auto_timer.stop()
if _snap_tween:
_snap_tween.kill()
func _gui_input(event: InputEvent) -> void:
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
if event.pressed:
_start_drag(event.position.x)
elif _dragging:
_end_drag()
elif event is InputEventMouseMotion and _dragging:
_update_drag(event.position.x)
elif event is InputEventScreenTouch and event.index == 0:
if event.pressed:
_start_drag(event.position.x)
elif _dragging:
_end_drag()
elif event is InputEventScreenDrag and event.index == 0 and _dragging:
_update_drag(event.position.x)
func _start_drag(x: float) -> void:
if _snap_tween:
_snap_tween.kill()
_auto_timer.stop()
_dragging = true
_drag_start_pos = x
_drag_start_scroll = scroll_horizontal
func _update_drag(x: float) -> void:
var delta := _drag_start_pos - x
scroll_horizontal = clampi(_drag_start_scroll + int(delta), 0, _max_scroll())
_update_indicator()
func _end_drag() -> void:
_dragging = false
_snap_to_nearest_card()
func _max_scroll() -> int:
var bar := get_h_scroll_bar()
return maxi(0, int(bar.max_value - bar.page))
func _card_count() -> int:
return maxi(1, _track.get_child_count())
func _card_step() -> float:
var count := _card_count()
if count <= 1:
return 0.0
return float(_max_scroll()) / float(count - 1)
func _current_page() -> int:
var step := _card_step()
if step <= 0.0:
return 0
return clampi(roundi(scroll_horizontal / step), 0, _card_count() - 1)
func _snap_to_nearest_card() -> void:
_animate_to_page(_current_page())
func _animate_to_page(target_index: int) -> void:
target_index = clampi(target_index, 0, _card_count() - 1)
var step := _card_step()
var target_scroll := int(round(target_index * step))
if _snap_tween:
_snap_tween.kill()
_snap_tween = create_tween().set_trans(Tween.TRANS_CUBIC).set_ease(Tween.EASE_OUT)
_snap_tween.tween_method(_set_scroll_and_indicator, float(scroll_horizontal), float(target_scroll), SNAP_DURATION)
_snap_tween.finished.connect(_restart_auto_timer)
func _set_scroll_and_indicator(value: float) -> void:
scroll_horizontal = int(round(value))
_update_indicator()
func _update_indicator() -> void:
if _page_dots.is_empty():
return
var active_index := _current_page()
for i in _page_dots.size():
var dot: TextureRect = _page_dots[i]
dot.texture = TEX_ACTIVE if i == active_index else TEX_DEFAULT
if active_index != _last_reported_page:
_last_reported_page = active_index
page_changed.emit(active_index)
+1
View File
@@ -0,0 +1 @@
uid://c54ct7t1td21g
+187
View File
@@ -0,0 +1,187 @@
[gd_scene format=3 uid="uid://bnnq5eunh8o6j"]
[ext_resource type="Script" uid="uid://dc5dh15rrdc4" path="res://scenes/ui/battlepass_panel.gd" id="1_4dl3x"]
[ext_resource type="Script" uid="uid://c54ct7t1td21g" path="res://scenes/battlepass_slider.gd" id="2_t440c"]
[ext_resource type="Script" uid="uid://bwu41vcu5t8nd" path="res://scenes/ui/battlepass_ticket.gd" id="3_1jvp2"]
[ext_resource type="Shader" uid="uid://cjpl2gt2fc1h2" path="res://assets/shaders/rounded_border.gdshader" id="3_tf0vp"]
[ext_resource type="Texture2D" uid="uid://bwk0ftvkieg6a" path="res://assets/graphics/gui/lobby/battlepass_left.png" id="4_1jvp2"]
[ext_resource type="Texture2D" uid="uid://y0y2fqa6xml7" path="res://assets/graphics/gui/lobby/bar_default.svg" id="4_ypw31"]
[ext_resource type="Texture2D" uid="uid://b5qt2u2k23b5w" path="res://assets/graphics/gui/lobby/bar_active.svg" id="5_tf0vp"]
[ext_resource type="Shader" uid="uid://dmsw38nbm2val" path="res://assets/shaders/ticket_blur_dissolve.gdshader" id="6_jwc2v"]
[ext_resource type="Texture2D" uid="uid://ccnwto2rc8h6u" path="res://assets/graphics/gui/lobby/battlepass_right.png" id="9_qnxxy"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8vv3u"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_qnxxy"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_d13xu"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tf0vp"]
shader = ExtResource("3_tf0vp")
shader_parameter/rect_size = Vector2(270, 108)
shader_parameter/corner_radius = Vector4(20, 20, 20, 20)
shader_parameter/border_width = 3.0
shader_parameter/border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_1jvp2"]
shader = ExtResource("3_tf0vp")
shader_parameter/rect_size = Vector2(270, 108)
shader_parameter/corner_radius = Vector4(20, 20, 20, 20)
shader_parameter/border_width = 3.0
shader_parameter/border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ypw31"]
shader = ExtResource("3_tf0vp")
shader_parameter/rect_size = Vector2(270, 108)
shader_parameter/corner_radius = Vector4(20, 20, 20, 20)
shader_parameter/border_width = 3.0
shader_parameter/border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_n0nj0"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8vv3u"]
shader = ExtResource("6_jwc2v")
shader_parameter/blur_amount = 0.0
shader_parameter/blur_radius_px = 14.0
shader_parameter/rect_size = Vector2(100, 108)
shader_parameter/corner_radius = Vector4(35, 35, 12, 12)
shader_parameter/border_width = 3.0
shader_parameter/border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_d13xu"]
shader = ExtResource("6_jwc2v")
shader_parameter/blur_amount = 0.0
shader_parameter/blur_radius_px = 14.0
shader_parameter/rect_size = Vector2(100, 108)
shader_parameter/corner_radius = Vector4(35, 35, 12, 12)
shader_parameter/border_width = 3.0
shader_parameter/border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_n0nj0"]
shader = ExtResource("6_jwc2v")
shader_parameter/blur_amount = 0.0
shader_parameter/blur_radius_px = 14.0
shader_parameter/rect_size = Vector2(100, 108)
shader_parameter/corner_radius = Vector4(35, 35, 12, 12)
shader_parameter/border_width = 3.0
shader_parameter/border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
[node name="BattlePassSlider" type="Panel" unique_id=1064439374]
custom_minimum_size = Vector2(367, 112)
theme_override_styles/panel = SubResource("StyleBoxEmpty_8vv3u")
script = ExtResource("1_4dl3x")
[node name="Content" type="Panel" parent="." unique_id=639821944]
custom_minimum_size = Vector2(0, 112)
layout_mode = 0
offset_right = 270.0
offset_bottom = 108.0
theme_override_styles/panel = SubResource("StyleBoxEmpty_qnxxy")
[node name="ScrollContainer" type="ScrollContainer" parent="Content" unique_id=1495632648]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_d13xu")
horizontal_scroll_mode = 3
vertical_scroll_mode = 3
script = ExtResource("2_t440c")
[node name="CardMargin" type="MarginContainer" parent="Content/ScrollContainer" unique_id=1204390870]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Content/ScrollContainer/CardMargin" unique_id=1504751594]
custom_minimum_size = Vector2(0, 112)
layout_mode = 2
[node name="CardBase1" type="TextureRect" parent="Content/ScrollContainer/CardMargin/HBoxContainer" unique_id=876602906]
material = SubResource("ShaderMaterial_tf0vp")
custom_minimum_size = Vector2(270, 108)
layout_mode = 2
texture = ExtResource("4_1jvp2")
expand_mode = 1
stretch_mode = 6
[node name="CardBase2" type="TextureRect" parent="Content/ScrollContainer/CardMargin/HBoxContainer" unique_id=1729572925]
material = SubResource("ShaderMaterial_1jvp2")
custom_minimum_size = Vector2(270, 108)
layout_mode = 2
texture = ExtResource("4_1jvp2")
expand_mode = 1
stretch_mode = 6
[node name="CardBase3" type="TextureRect" parent="Content/ScrollContainer/CardMargin/HBoxContainer" unique_id=1734371616]
material = SubResource("ShaderMaterial_ypw31")
custom_minimum_size = Vector2(270, 108)
layout_mode = 2
texture = ExtResource("4_1jvp2")
expand_mode = 1
stretch_mode = 6
[node name="PageIndicator" type="HBoxContainer" parent="Content" unique_id=874321806]
layout_mode = 0
offset_left = 13.0
offset_top = 90.0
offset_right = 259.0
offset_bottom = 99.0
theme_override_constants/separation = 3
[node name="Dot1" type="TextureRect" parent="Content/PageIndicator" unique_id=392540618]
custom_minimum_size = Vector2(80, 6)
layout_mode = 2
texture = ExtResource("5_tf0vp")
expand_mode = 1
[node name="Dot2" type="TextureRect" parent="Content/PageIndicator" unique_id=437177486]
custom_minimum_size = Vector2(80, 6)
layout_mode = 2
texture = ExtResource("4_ypw31")
expand_mode = 1
[node name="Dot3" type="TextureRect" parent="Content/PageIndicator" unique_id=314560320]
custom_minimum_size = Vector2(80, 6)
layout_mode = 2
texture = ExtResource("4_ypw31")
expand_mode = 1
[node name="Ticket" type="Panel" parent="." unique_id=1195576560]
clip_contents = true
custom_minimum_size = Vector2(0, 112)
layout_mode = 0
offset_left = 267.0
offset_right = 367.0
offset_bottom = 108.0
theme_override_styles/panel = SubResource("StyleBoxEmpty_n0nj0")
script = ExtResource("3_1jvp2")
[node name="Ticket1" type="TextureRect" parent="Ticket" unique_id=1639108074]
material = SubResource("ShaderMaterial_8vv3u")
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
texture = ExtResource("9_qnxxy")
expand_mode = 1
stretch_mode = 5
[node name="Ticket2" type="TextureRect" parent="Ticket" unique_id=111676944]
visible = false
material = SubResource("ShaderMaterial_d13xu")
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
texture = ExtResource("9_qnxxy")
expand_mode = 1
stretch_mode = 5
[node name="Ticket3" type="TextureRect" parent="Ticket" unique_id=1822173598]
visible = false
material = SubResource("ShaderMaterial_n0nj0")
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
texture = ExtResource("9_qnxxy")
expand_mode = 1
stretch_mode = 5
+142 -1
View File
@@ -12,6 +12,8 @@ extends Control
@onready var avatar_display = %AvatarDisplay
@onready var lobby_settings_btn = %SettingsBtn
@onready var quit_btn = %QuitBtn
@onready var chat_toggle_btn = get_node_or_null("%BubbleBtn")
@onready var chat_panel_container = $MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel
# Main Menu 3D Preview
@onready var character_root = %CharacterRoot
@@ -158,6 +160,29 @@ var _friend_suggest_list: ItemList
# var server_option: OptionButton
# var server_ip_input: LineEdit
# =============================================================================
# Menu Button Animation (ROOM / PLAY hover + press juice)
# =============================================================================
@export_group("Menu Button Animation")
@export var menu_btn_hover_scale: float = 1.06
@export var menu_btn_press_scale: float = 0.94
@export var menu_btn_hover_duration: float = 0.15
@export var menu_btn_press_duration: float = 0.08
@export var menu_btn_release_duration: float = 0.2
@export var menu_btn_hover_trans: Tween.TransitionType = Tween.TRANS_BACK
@export var menu_btn_hover_ease: Tween.EaseType = Tween.EASE_OUT
@export var menu_btn_hover_brighten: float = 1.08
@export_group("Card Fan Idle Animation")
@export var card_fan_idle_enabled: bool = true
@export var card_fan_jump_height: float = 14.0
@export var card_fan_jump_duration: float = 0.35
@export var card_fan_jump_stagger: float = 0.15
@export var card_fan_cycle_pause: float = 14.0
var _button_tweens: Dictionary = {}
var _card_fan_tweens: Dictionary = {}
func _ready():
chat = LobbyChat.new(self)
@@ -182,7 +207,10 @@ func _ready():
# Initial UI update
_sync_room_profile_card()
# ROOM / PLAY button hover, press, and card-fan idle animation
_setup_menu_button_animations()
# Connect Social / Friend UI
var global_chat_tab_btn = get_node_or_null("%GlobalChatTabBtn")
if global_chat_tab_btn:
@@ -401,6 +429,119 @@ func _connect_slot_signals(slot: Control, i: int):
if right_btn:
right_btn.pressed.connect(func(): LobbyManager.cycle_character(1))
# =============================================================================
# Menu Button Animation (ROOM / PLAY)
# =============================================================================
func _setup_menu_button_animations() -> void:
for btn in [browse_rooms_btn, create_room_btn]:
if not btn:
continue
btn.pivot_offset = btn.size / 2.0
btn.mouse_entered.connect(_on_menu_btn_mouse_entered.bind(btn))
btn.mouse_exited.connect(_on_menu_btn_mouse_exited.bind(btn))
btn.button_down.connect(_on_menu_btn_down.bind(btn))
btn.button_up.connect(_on_menu_btn_up.bind(btn))
_start_card_fan_idle(get_node_or_null("MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/RoomBtnRoot"))
_start_card_fan_idle(get_node_or_null("MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/PlayBtnRoot"))
if chat_toggle_btn:
chat_toggle_btn.pressed.connect(_on_chat_toggle_pressed)
func _on_chat_toggle_pressed() -> void:
if chat_panel_container:
chat_panel_container.visible = not chat_panel_container.visible
func _kill_button_tween(btn: Control) -> void:
if _button_tweens.has(btn) and is_instance_valid(_button_tweens[btn]):
_button_tweens[btn].kill()
func _tween_button_scale(btn: Control, target_scale: float, duration: float, use_overshoot: bool = false) -> void:
_kill_button_tween(btn)
var tween := create_tween()
if use_overshoot:
tween.set_trans(menu_btn_hover_trans).set_ease(menu_btn_hover_ease)
else:
tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT)
tween.tween_property(btn, "scale", Vector2(target_scale, target_scale), duration)
_button_tweens[btn] = tween
func _on_menu_btn_mouse_entered(btn: Control) -> void:
if btn.disabled:
return
_tween_button_scale(btn, menu_btn_hover_scale, menu_btn_hover_duration, true)
btn.self_modulate = Color(menu_btn_hover_brighten, menu_btn_hover_brighten, menu_btn_hover_brighten, 1.0)
func _on_menu_btn_mouse_exited(btn: Control) -> void:
_tween_button_scale(btn, 1.0, menu_btn_release_duration)
btn.self_modulate = Color.WHITE
func _on_menu_btn_down(btn: Control) -> void:
_tween_button_scale(btn, menu_btn_press_scale, menu_btn_press_duration)
func _on_menu_btn_up(btn: Control) -> void:
var target := menu_btn_hover_scale if btn.get_global_rect().has_point(get_global_mouse_position()) else 1.0
_tween_button_scale(btn, target, menu_btn_release_duration, true)
func _start_card_fan_idle(root: Control) -> void:
if not root or not card_fan_idle_enabled:
return
# find_child (recursive) instead of a direct get_node_or_null so this still
# finds the cards even if they end up nested under a layout wrapper (e.g. a
# PanelContainer) instead of being direct children of root.
var cards: Array[Control] = []
for card_name in ["CardLeft", "CardRight"]:
var card := root.find_child(card_name, true, false) as Control
if card:
cards.append(card)
if cards.is_empty():
return
if _card_fan_tweens.has(root):
for old_tween in _card_fan_tweens[root]:
if is_instance_valid(old_tween):
old_tween.kill()
# Sequential "leapfrog" jump: each card jumps in turn, staggered by
# card_fan_jump_stagger, then the whole row pauses before looping.
var cycle_total: float = cards.size() * card_fan_jump_stagger + card_fan_cycle_pause
var tweens: Array[Tween] = []
for i in cards.size():
var card := cards[i]
var start_y := card.position.y
var lead_in: float = i * card_fan_jump_stagger
var trailing: float = cycle_total - lead_in - card_fan_jump_duration
var tween := create_tween().set_loops()
if lead_in > 0.0:
tween.tween_interval(lead_in)
tween.tween_property(card, "position:y", start_y - card_fan_jump_height, card_fan_jump_duration * 0.5).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
tween.tween_property(card, "position:y", start_y, card_fan_jump_duration * 0.5).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT)
if trailing > 0.0:
tween.tween_interval(trailing)
tweens.append(tween)
_card_fan_tweens[root] = tweens
func _exit_tree() -> void:
for tween in _button_tweens.values():
if is_instance_valid(tween):
tween.kill()
for tweens in _card_fan_tweens.values():
for tween in tweens:
if is_instance_valid(tween):
tween.kill()
# =============================================================================
# Panel Management
# =============================================================================
+1493 -272
View File
@@ -12,45 +12,64 @@
[ext_resource type="AnimationLibrary" path="res://assets/characters/animations/animation-pack.res" id="5_animlib"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="5_pc087"]
[ext_resource type="Texture2D" uid="uid://brhn1dhp1gm13" path="res://assets/graphics/character_selection/sc_characters/sc_copper.png" id="10_dyhay"]
[ext_resource type="Texture2D" uid="uid://c8xwpkvvwa7a4" path="res://assets/graphics/gui/mainmenu/chat.png" id="12_dfnwm"]
[ext_resource type="Texture2D" uid="uid://dwb753gnca5wv" path="res://assets/graphics/gui/lobby/crown_profile.tres" id="10_jkgfa"]
[ext_resource type="Texture2D" uid="uid://b5pp08fke7ptd" path="res://assets/graphics/gui/lobby/gold.png" id="12_gufxi"]
[ext_resource type="Texture2D" uid="uid://c05mo12h5umgi" path="res://assets/graphics/gui/mainmenu/chat_emoji.png" id="13_0jb4q"]
[ext_resource type="Texture2D" uid="uid://d0ouvm3x8h42c" path="res://assets/graphics/gui/lobby/star.png" id="13_arjad"]
[ext_resource type="Texture2D" uid="uid://b2lyv0usa762v" path="res://assets/graphics/gui/lobby/edit_profile.tres" id="13_ph747"]
[ext_resource type="Texture2D" uid="uid://bt70g810ef6jj" path="res://assets/graphics/gui/lobby/curr_star.svg" id="13_twy5w"]
[ext_resource type="Theme" uid="uid://cxab3xxy00" path="res://assets/themes/GUI_Tekton.tres" id="14_2630d"]
[ext_resource type="FontFile" uid="uid://c2tryhyhlyb1u" path="res://assets/fonts/Supercell-Magic Regular.ttf" id="14_vwf6o"]
[ext_resource type="Texture2D" uid="uid://kflvrkha1jwy" path="res://assets/graphics/gui/mainmenu/chat_enter.png" id="15_iwi7x"]
[ext_resource type="Texture2D" uid="uid://duxo4w34d3ree" path="res://assets/graphics/gui/lobby/curr_star.tres" id="16_ixomp"]
[ext_resource type="Texture2D" uid="uid://dq3crtqml0k35" path="res://assets/graphics/gui/lobby/curr_gold.tres" id="17_8kv63"]
[ext_resource type="Texture2D" uid="uid://dq8ll26kexu3b" path="res://assets/graphics/gui/mainmenu/button_room.png" id="17_wjff0"]
[ext_resource type="Texture2D" uid="uid://bcgu0jku4ntcw" path="res://assets/graphics/gui/mainmenu/button_room_interact.png" id="18_0jb4q"]
[ext_resource type="PackedScene" uid="uid://bnnq5eunh8o6j" path="res://scenes/battlepass_slider.tscn" id="18_5jb2g"]
[ext_resource type="Texture2D" uid="uid://dllwxub5n4361" path="res://assets/graphics/gui/mainmenu/button_play.png" id="18_h1rib"]
[ext_resource type="Texture2D" uid="uid://d04v2xn8xmom" path="res://assets/graphics/gui/lobby/event_calendar.svg" id="18_olier"]
[ext_resource type="Texture2D" uid="uid://l03huy5c0vvy" path="res://assets/graphics/gui/lobby/profile.png" id="18_u7tfn"]
[ext_resource type="Texture2D" uid="uid://jted80o4uarv" path="res://assets/graphics/gui/lobby/leaderboards.png" id="19_2630d"]
[ext_resource type="Texture2D" uid="uid://bvugtpcgc2qkx" path="res://assets/graphics/gui/lobby/shop.png" id="20_835bk"]
[ext_resource type="Texture2D" uid="uid://b45naqdq1rfbf" path="res://assets/graphics/gui/lobby/bag.svg" id="19_5jb2g"]
[ext_resource type="Texture2D" uid="uid://dj1dt2noi1bl3" path="res://assets/graphics/gui/lobby/chat.svg" id="19_oysm8"]
[ext_resource type="Texture2D" uid="uid://b8bxf0eim4g4p" path="res://assets/graphics/gui/lobby/emoji.svg" id="20_4pkyx"]
[ext_resource type="Texture2D" uid="uid://bblx8fmv77m7h" path="res://assets/graphics/gui/lobby/chev.svg" id="20_rievh"]
[ext_resource type="Texture2D" uid="uid://cdupokfxuufpl" path="res://assets/graphics/gui/mainmenu/button_play_interact.png" id="20_vwf6o"]
[ext_resource type="Texture2D" uid="uid://6agwwbc1l4g3" path="res://assets/graphics/gui/play/selection_play0.png" id="21_h1rib"]
[ext_resource type="Texture2D" uid="uid://bmmajc7h7o4dg" path="res://assets/graphics/gui/lobby/dailylogin.png" id="21_ucbax"]
[ext_resource type="Texture2D" uid="uid://dv782w5t0xlcc" path="res://assets/graphics/gui/lobby/friends.png" id="22_1x1aw"]
[ext_resource type="Texture2D" uid="uid://cpy5lppf3ro02" path="res://assets/graphics/gui/play/selection_play1.png" id="22_kn4i6"]
[ext_resource type="Texture2D" uid="uid://b0ovmvcm8rt2n" path="res://assets/graphics/gui/play/selection_room0.png" id="23_3jc85"]
[ext_resource type="Texture2D" uid="uid://cs5lke40qve7y" path="res://assets/graphics/gui/mailbox/mailbox_icon.png" id="23_835bk"]
[ext_resource type="Texture2D" uid="uid://bqcxrfu2jlplr" path="res://assets/graphics/gui/lobby/settings.png" id="23_twy5w"]
[ext_resource type="Shader" uid="uid://bx46eyi72i6ak" path="res://setting_bar_shader.gdshader" id="23_8kv63"]
[ext_resource type="Texture2D" uid="uid://3p0sabd1og31" path="res://assets/graphics/gui/play/selection_room1.png" id="24_jhtcy"]
[ext_resource type="Texture2D" uid="uid://b7dp73xokujdb" path="res://assets/graphics/gui/lobby/question_circle.svg" id="24_ph747"]
[ext_resource type="Texture2D" uid="uid://bpco6lch7homj" path="res://assets/graphics/gui/play/bg.png" id="25_iwv4c"]
[ext_resource type="Texture2D" uid="uid://ci3nm26qx5vdo" path="res://assets/graphics/gui/lobby/shop_bar.svg" id="25_ixomp"]
[ext_resource type="Texture2D" uid="uid://dqwm7rou1fttt" path="res://assets/graphics/gui/lobby/badge_bar.svg" id="26_8kv63"]
[ext_resource type="Texture2D" uid="uid://chkt6c6tt7gdb" path="res://assets/graphics/gui/play/story.png" id="26_wpcbs"]
[ext_resource type="Texture2D" uid="uid://6oeuovfdxahu" path="res://assets/graphics/gui/play/story_dimmed.png" id="27_8tmsf"]
[ext_resource type="Texture2D" uid="uid://3kcp8qjd1vfm" path="res://assets/graphics/gui/play/stopngo.png" id="27_ierb3"]
[ext_resource type="Texture2D" uid="uid://btjm25hjxssbd" path="res://assets/graphics/gui/lobby/rank_bar.svg" id="27_y8bta"]
[ext_resource type="Texture2D" uid="uid://4nejhkohp70d" path="res://assets/graphics/gui/play/freemode.png" id="28_78rk6"]
[ext_resource type="Texture2D" uid="uid://bg7mca4i1fgup" path="res://assets/graphics/gui/lobby/community_bar.svg" id="28_st18m"]
[ext_resource type="Texture2D" uid="uid://b8dgaw0bk3x6f" path="res://assets/graphics/gui/play/Rank.png" id="29_6mek4"]
[ext_resource type="Texture2D" uid="uid://kmleuwyxmn0c" path="res://assets/graphics/gui/lobby/message_bar.svg" id="29_6yc8v"]
[ext_resource type="Texture2D" uid="uid://23tvis1trvfr" path="res://assets/graphics/gui/play/x.png" id="29_417c5"]
[ext_resource type="Texture2D" uid="uid://3tsnxh8xbxr5" path="res://assets/graphics/gui/play/stopngo_dimmed.png" id="29_gxh4y"]
[ext_resource type="Texture2D" uid="uid://blh0vhxpbiqip" path="res://assets/graphics/gui/play/stopngo_vertical.png" id="30_8ht5e"]
[ext_resource type="Texture2D" uid="uid://lks5ndwn3ppp" path="res://assets/graphics/gui/lobby/setting_bar.svg" id="30_yb58j"]
[ext_resource type="Texture2D" uid="uid://1lilep4qo3tc" path="res://assets/graphics/gui/play/freemode-dimmed.png" id="31_30fw8"]
[ext_resource type="Texture2D" uid="uid://6lopq2j3kmai" path="res://assets/graphics/gui/play/freemode_vertical.png" id="31_tuh25"]
[ext_resource type="PackedScene" uid="uid://c3v78hufajngu" path="res://scenes/lobby_sliders.tscn" id="32_8kv63"]
[ext_resource type="Texture2D" uid="uid://dxngyrdx5riab" path="res://assets/graphics/gui/play/room_list.png" id="32_8tmsf"]
[ext_resource type="Texture2D" uid="uid://dimb6edbhvbrm" path="res://assets/graphics/gui/play/refresh.png" id="33_gxh4y"]
[ext_resource type="Texture2D" uid="uid://cep023y0s7f0f" path="res://assets/graphics/gui/lobby/green_tile.png" id="33_yb58j"]
[ext_resource type="Texture2D" uid="uid://cniyw4aa1kc4n" path="res://assets/graphics/gui/play/stopngo_vertical_dimmed.png" id="34_7rn74"]
[ext_resource type="Texture2D" uid="uid://bupl61vxuub71" path="res://assets/graphics/gui/play/join.png" id="34_30fw8"]
[ext_resource type="Texture2D" uid="uid://dc0o5lcx1cq64" path="res://assets/graphics/gui/lobby/yellow_tile.png" id="34_oysm8"]
[ext_resource type="Texture2D" uid="uid://bbuxwuypygk38" path="res://assets/graphics/gui/play/freemode_vertical_dimmed.png" id="36_30el1"]
[ext_resource type="Texture2D" uid="uid://bjqxr7nt5n1i0" path="res://assets/graphics/gui/lobby/blue_tile.png" id="37_4pkyx"]
[ext_resource type="FontFile" uid="uid://dsqg0x5lnosou" path="res://assets/fonts/TektonDash2.ttf" id="38_87ggl"]
[ext_resource type="Texture2D" uid="uid://cic88doubsblr" path="res://assets/graphics/gui/lobby/red_tile.png" id="38_rievh"]
[ext_resource type="Texture2D" uid="uid://c2empktddd47l" path="res://assets/graphics/gui/lobby/info.svg" id="39_agxrn"]
[ext_resource type="Texture2D" uid="uid://bwu5ms5nsyy43" path="res://assets/graphics/gui/play/referesh_dimmed.png" id="39_s3vw1"]
[ext_resource type="Script" uid="uid://cas5sc40ampq1" path="res://scenes/ui/quest_list_tab.gd" id="40_agxrn"]
[ext_resource type="Texture2D" uid="uid://cb454spy2usoa" path="res://assets/graphics/gui/play/x_dimmed.png" id="41_7rn74"]
[ext_resource type="Texture2D" uid="uid://d4mt1q2fxkjy" path="res://assets/graphics/gui/play/join_dimmed.png" id="41_iwv5h"]
@@ -63,8 +82,13 @@ ambient_light_energy = 0.5
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_busoe"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_jkgfa"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ph747"]
bg_color = Color(0.6, 0.6, 0.6, 0)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8mpuv"]
bg_color = Color(0.2784314, 0.8745098, 1, 1)
bg_color = Color(0.2784314, 0.8745098, 1, 0)
border_width_left = 3
border_width_top = 3
border_width_right = 3
@@ -75,37 +99,216 @@ corner_radius_top_right = 15
corner_radius_bottom_right = 15
corner_radius_bottom_left = 15
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_835bk"]
bg_color = Color(0.078431375, 0.6666667, 0.7921569, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ucbax"]
content_margin_top = 20.0
content_margin_right = 20.0
content_margin_bottom = 20.0
bg_color = Color(0.54509807, 0.54509807, 0.54509807, 0)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 15
corner_radius_top_right = 15
corner_radius_bottom_right = 15
corner_radius_bottom_left = 15
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1x1aw"]
bg_color = Color(0.11764706, 0.11764706, 0.11764706, 0.42745098)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ph747"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ixomp"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8kv63"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_twy5w"]
bg_color = Color(1, 1, 1, 1)
border_width_top = 2
border_width_bottom = 2
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_y8bta"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gd4oi"]
bg_color = Color(0, 0, 0, 0.48235294)
border_color = Color(0.92941177, 0.91764706, 0.8862745, 1)
corner_radius_top_left = 3
corner_radius_top_right = 3
corner_radius_bottom_right = 3
corner_radius_bottom_left = 3
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kn4i6"]
bg_color = Color(0, 0, 0, 0.48235294)
border_width_left = 5
border_width_top = 5
border_width_right = 5
border_width_bottom = 5
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_st18m"]
bg_color = Color(0.11764706, 0.11764706, 0.11764706, 0.5568628)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3jc85"]
bg_color = Color(0, 0, 0, 0.48235294)
border_width_left = 5
border_width_top = 5
border_width_right = 5
border_width_bottom = 5
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_6yc8v"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yb58j"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yf42k"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_v63ud"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fwqx0"]
bg_color = Color(0, 0, 0, 0.54901963)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mb33m"]
bg_color = Color(0, 0, 0, 0.54901963)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_agxrn"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4pkyx"]
bg_color = Color(0, 0, 0, 0.4)
corner_radius_top_left = 27
corner_radius_top_right = 27
corner_radius_bottom_right = 27
corner_radius_bottom_left = 27
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4pkyx"]
shader = ExtResource("23_8kv63")
shader_parameter/panel_size = Vector2(520, 34)
shader_parameter/corner_radius = 27.0
[sub_resource type="Gradient" id="Gradient_rievh"]
colors = PackedColorArray(0, 0, 0, 0.2, 0, 0, 0, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_olier"]
gradient = SubResource("Gradient_rievh")
width = 8
fill_to = Vector2(0, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_vfec7"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yf42k"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 17
corner_radius_top_right = 17
corner_radius_bottom_right = 17
corner_radius_bottom_left = 17
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v63ud"]
bg_color = Color(1, 1, 1, 0.12)
corner_radius_top_left = 17
corner_radius_top_right = 17
corner_radius_bottom_right = 17
corner_radius_bottom_left = 17
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sy4be"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0nf8f"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 17
corner_radius_top_right = 17
corner_radius_bottom_right = 17
corner_radius_bottom_left = 17
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rox41"]
bg_color = Color(1, 1, 1, 0.12)
corner_radius_top_left = 17
corner_radius_top_right = 17
corner_radius_bottom_right = 17
corner_radius_bottom_left = 17
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_f1hfh"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6ax38"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 17
corner_radius_top_right = 17
corner_radius_bottom_right = 17
corner_radius_bottom_left = 17
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pril5"]
bg_color = Color(1, 1, 1, 0.12)
corner_radius_top_left = 17
corner_radius_top_right = 17
corner_radius_bottom_right = 17
corner_radius_bottom_left = 17
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5jb2g"]
bg_color = Color(0, 0, 0, 0.4)
corner_radius_top_left = 26
corner_radius_top_right = 26
corner_radius_bottom_right = 26
corner_radius_bottom_left = 26
[sub_resource type="ShaderMaterial" id="ShaderMaterial_rievh"]
shader = ExtResource("23_8kv63")
shader_parameter/panel_size = Vector2(520, 149)
shader_parameter/corner_radius = 26.0
[sub_resource type="Gradient" id="Gradient_s0n6j"]
colors = PackedColorArray(0, 0, 0, 0.2, 0, 0, 0, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_87ggl"]
gradient = SubResource("Gradient_s0n6j")
width = 8
fill_to = Vector2(0, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_l7nca"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s0n6j"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_87ggl"]
bg_color = Color(0.85, 0.9, 0.95, 1)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_agxrn"]
bg_color = Color(0.95, 0.97, 1, 1)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rievh"]
bg_color = Color(0, 0, 0, 0.3764706)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_olier"]
bg_color = Color(0, 0, 0, 0.3764706)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jhtcy"]
bg_color = Color(0.6, 0.6, 0.6, 0)
@@ -114,12 +317,151 @@ bg_color = Color(0.6, 0.6, 0.6, 0)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dfnwm"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_87ggl"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l7nca"]
bg_color = Color(0, 0, 0, 0.4)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vfec7"]
bg_color = Color(0, 0, 0, 0.4)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sy4be"]
bg_color = Color(0, 0, 0, 0.6)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f1hfh"]
bg_color = Color(0, 0, 0, 0.5)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0nf8f"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rox41"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_6ax38"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jkoci"]
bg_color = Color(0, 0, 0, 0.15)
corner_radius_top_left = 18
corner_radius_top_right = 18
corner_radius_bottom_right = 18
corner_radius_bottom_left = 18
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3y5sy"]
bg_color = Color(1, 1, 1, 0.15)
corner_radius_top_left = 18
corner_radius_top_right = 18
corner_radius_bottom_right = 18
corner_radius_bottom_left = 18
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_oysm8"]
bg_color = Color(0.6, 0.6, 0.6, 0)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 16
corner_radius_bottom_left = 8
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ixomp"]
shader = ExtResource("23_8kv63")
shader_parameter/panel_size = Vector2(550, 64)
shader_parameter/corner_radius = 16.0
[sub_resource type="Gradient" id="Gradient_4pkyx"]
colors = PackedColorArray(0.16862746, 0, 0.6, 0, 0.16862746, 0, 0.6, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_rievh"]
gradient = SubResource("Gradient_4pkyx")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_835bk"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ucbax"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1x1aw"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pril5"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wqxeh"]
bg_color = Color(1, 1, 1, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_do6di"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_do6di"]
bg_color = Color(0, 0, 0, 0.4509804)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_jkoci"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_os6ns"]
bg_color = Color(1, 1, 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="StyleBoxFlat_b6wif"]
bg_color = Color(1, 1, 1, 0.12156863)
corner_radius_top_left = 13
corner_radius_top_right = 13
corner_radius_bottom_right = 13
corner_radius_bottom_left = 13
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_uovpt"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_3y5sy"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_fwqx0"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8onxx"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 13
corner_radius_top_right = 13
corner_radius_bottom_right = 13
corner_radius_bottom_left = 13
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_15eno"]
bg_color = Color(1, 1, 1, 0.12156863)
corner_radius_top_left = 13
corner_radius_top_right = 13
corner_radius_bottom_right = 13
corner_radius_bottom_left = 13
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_4pkyx"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rievh"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_olier"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_oysm8"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5jb2g"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_s0n6j"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_50md7"]
texture = ExtResource("25_iwv4c")
@@ -194,6 +536,8 @@ grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2_theme")
script = ExtResource("1_lp6xi")
metadata/_edit_horizontal_guides_ = [35.0, 733.0]
metadata/_edit_vertical_guides_ = [35.0, 1331.0]
[node name="Background3" type="ColorRect" parent="." unique_id=245238082]
visible = false
@@ -303,48 +647,78 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_top = 30
theme_override_constants/margin_right = 30
theme_override_constants/margin_bottom = 30
theme_override_constants/margin_left = 35
theme_override_constants/margin_top = 35
theme_override_constants/margin_right = 35
theme_override_constants/margin_bottom = 35
[node name="MainHBox" type="HBoxContainer" parent="MainMenuPanel/MainMargin" unique_id=892534882]
layout_mode = 2
theme_override_constants/separation = 16
[node name="LeftCol" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox" unique_id=53823485]
custom_minimum_size = Vector2(350, 0)
custom_minimum_size = Vector2(207, 0)
layout_mode = 2
theme_override_constants/separation = 8
[node name="HBoxContainer2" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=473798164]
layout_mode = 2
[node name="ProfileCard" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2" unique_id=5938459]
clip_contents = true
custom_minimum_size = Vector2(0, 130)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_busoe")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard" unique_id=1195708144]
layout_mode = 2
theme_override_constants/margin_left = 20
theme_override_constants/margin_right = 20
size_flags_vertical = 4
[node name="HBox" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer" unique_id=58934509]
custom_minimum_size = Vector2(448, 100)
layout_mode = 2
theme_override_constants/separation = 12
size_flags_vertical = 4
theme_override_constants/separation = 8
[node name="MainProfileBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox" unique_id=89234859]
unique_name_in_owner = true
[node name="Panel2" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox" unique_id=384190896]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_jkgfa")
[node name="Crown" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel2" unique_id=1182974540]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_top = -28.0
offset_bottom = 6.0
grow_horizontal = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_ph747")
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel2/Crown" unique_id=244556470]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -20.5
offset_right = 20.5
offset_bottom = 31.0
grow_horizontal = 2
texture = ExtResource("10_jkgfa")
expand_mode = 1
[node name="MainProfileBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel2" unique_id=89234859]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 100)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 4
flat = true
expand_icon = true
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/MainProfileBtn" unique_id=2112174468]
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel2/MainProfileBtn" unique_id=2112174468]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -353,7 +727,19 @@ grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_8mpuv")
[node name="AvatarDisplay" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/MainProfileBtn" unique_id=593485890]
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel2/MainProfileBtn/Panel" unique_id=981680637]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.87, 0.87)
pivot_offset = Vector2(50, 50)
theme_override_styles/panel = SubResource("StyleBoxFlat_835bk")
metadata/_edit_use_anchors_ = true
[node name="AvatarDisplay" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel2/MainProfileBtn/Panel" unique_id=593485890]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
@@ -361,16 +747,55 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.88, 0.88)
pivot_offset = Vector2(50, 50)
texture = ExtResource("10_dyhay")
expand_mode = 1
stretch_mode = 5
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox" unique_id=598345789]
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox" unique_id=95033853]
layout_mode = 2
size_flags_horizontal = 3
alignment = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_ucbax")
[node name="Username" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer" unique_id=50934858]
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel" unique_id=887191722]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 6.0
offset_top = 6.0
offset_right = -6.0
offset_bottom = -6.0
grow_horizontal = 2
grow_vertical = 2
pivot_offset = Vector2(50, 50)
pivot_offset_ratio = Vector2(50, 50)
theme_override_styles/panel = SubResource("StyleBoxFlat_1x1aw")
metadata/_edit_use_anchors_ = true
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel" unique_id=814833769]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
rotation = -0.00042401726
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
[node name="ProfileCard" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer" unique_id=1124531167]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="HBoxContainer2" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard" unique_id=2125411101]
layout_mode = 2
[node name="Username" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer2" unique_id=50934858]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("2_theme")
@@ -378,230 +803,662 @@ theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 24
text = "USERNAME"
[node name="Subtitle" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer" unique_id=5948395]
[node name="VSeparator" type="VSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer2" unique_id=1291684476]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 0
theme_override_styles/separator = SubResource("StyleBoxEmpty_ph747")
[node name="Panel" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer2" unique_id=1669254581]
custom_minimum_size = Vector2(18, 18)
layout_mode = 2
size_flags_vertical = 4
theme_override_styles/normal = SubResource("StyleBoxEmpty_ixomp")
[node name="TextureButton" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer2/Panel" unique_id=1316337810]
custom_minimum_size = Vector2(18, 18)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
texture = ExtResource("13_ph747")
expand_mode = 1
[node name="HSeparator3" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard" unique_id=631156959]
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/separation = 0
theme_override_styles/separator = SubResource("StyleBoxEmpty_8kv63")
[node name="HSeparator" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard" unique_id=1789932398]
clip_contents = true
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/separation = 4
theme_override_styles/separator = SubResource("StyleBoxFlat_twy5w")
[node name="HSeparator2" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard" unique_id=817356678]
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/separation = 0
theme_override_styles/separator = SubResource("StyleBoxEmpty_y8bta")
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard" unique_id=331071595]
layout_mode = 2
size_flags_vertical = 3
[node name="Panel2" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer" unique_id=1514999060]
visible = false
custom_minimum_size = Vector2(40, 20)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_gd4oi")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel2" unique_id=2040127486]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel2/MarginContainer" unique_id=108285540]
layout_mode = 2
size_flags_vertical = 4
[node name="Panel" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=1271756238]
custom_minimum_size = Vector2(28, 28)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel2/MarginContainer/HBoxContainer/Panel" unique_id=1770079891]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("13_twy5w")
expand_mode = 1
[node name="Label" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=1184388330]
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "0000000"
horizontal_alignment = 2
vertical_alignment = 1
[node name="StarLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=948509]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer" unique_id=113826609]
visible = false
custom_minimum_size = Vector2(80, 20)
layout_mode = 2
size_flags_horizontal = 8
theme_override_styles/panel = SubResource("StyleBoxFlat_gd4oi")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel" unique_id=2062391446]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 6
theme_override_constants/margin_bottom = 3
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel/MarginContainer" unique_id=1826509078]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=1462222702]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("12_gufxi")
[node name="Label" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=312597909]
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "0000000"
horizontal_alignment = 2
vertical_alignment = 1
[node name="GoldLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=94850]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="MarginContainer2" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer" unique_id=289273153]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_left = 13
[node name="curr_star" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2" unique_id=442904116]
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_st18m")
[node name="MarginContainer2" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2/curr_star" unique_id=812952188]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_right = 5
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2/curr_star/MarginContainer2" unique_id=863776061]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_6yc8v")
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2/curr_star/MarginContainer2/Panel" unique_id=476579988]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="icon" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2/curr_star/MarginContainer2/Panel/HBoxContainer" unique_id=1857907027]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2/curr_star/MarginContainer2/Panel/HBoxContainer/icon" unique_id=1890970008]
custom_minimum_size = Vector2(28, 28)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 0.5
offset_top = -1.1
offset_right = 0.5
offset_bottom = -1.1000004
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(1.1, 1.1)
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("16_ixomp")
expand_mode = 1
[node name="StarLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2/curr_star/MarginContainer2/Panel/HBoxContainer" unique_id=1885199303]
layout_mode = 2
size_flags_horizontal = 10
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer2/curr_star/MarginContainer2/Panel" unique_id=1722932535]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 4.0
offset_top = -0.5
offset_right = 25.0
offset_bottom = 0.5
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 3
theme_override_constants/margin_bottom = 3
[node name="VSeparator" type="VSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer" unique_id=2040409119]
layout_mode = 2
theme_override_constants/separation = 20
theme_override_styles/separator = SubResource("StyleBoxEmpty_yb58j")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer" unique_id=1921432898]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_left = 13
[node name="curr_star" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer" unique_id=872102647]
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_st18m")
[node name="MarginContainer2" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer/curr_star" unique_id=720374599]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_right = 5
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer/curr_star/MarginContainer2" unique_id=1403218261]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_6yc8v")
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer/curr_star/MarginContainer2/Panel" unique_id=2059872823]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="icon" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer/curr_star/MarginContainer2/Panel/HBoxContainer" unique_id=933100210]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer/curr_star/MarginContainer2/Panel/HBoxContainer/icon" unique_id=30722077]
custom_minimum_size = Vector2(28, 28)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 0.5
offset_top = -1.1
offset_right = 0.5
offset_bottom = -1.1000004
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(1.1, 1.1)
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("17_8kv63")
expand_mode = 1
[node name="StarLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer/curr_star/MarginContainer2/Panel/HBoxContainer" unique_id=227792042]
layout_mode = 2
size_flags_horizontal = 10
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard/HBoxContainer/MarginContainer/curr_star/MarginContainer2/Panel" unique_id=1503179775]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 4.0
offset_top = -0.5
offset_right = 25.0
offset_bottom = 0.5
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 3
theme_override_constants/margin_bottom = 3
[node name="Subtitle" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/Panel/Panel/MarginContainer/ProfileCard" unique_id=5948395]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_colors/font_color = Color(0.53, 0.53, 0.53, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 14
text = "EU SERVER"
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer" unique_id=331071595]
layout_mode = 2
theme_override_constants/separation = 6
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer" unique_id=113826609]
custom_minimum_size = Vector2(80, 30)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_gd4oi")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel" unique_id=2062391446]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 6
theme_override_constants/margin_bottom = 3
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer" unique_id=1826509078]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=1462222702]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("12_gufxi")
[node name="Label" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=312597909]
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "0000000"
horizontal_alignment = 2
vertical_alignment = 1
[node name="GoldLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=94850]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="Panel2" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer" unique_id=1514999060]
custom_minimum_size = Vector2(80, 30)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_gd4oi")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2" unique_id=2040127486]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 6
theme_override_constants/margin_bottom = 3
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer" unique_id=108285540]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=1770079891]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("13_arjad")
[node name="Label" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=1184388330]
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "0000000"
horizontal_alignment = 2
vertical_alignment = 1
[node name="StarLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=948509]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="Control" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2" unique_id=177944371]
visible = false
custom_minimum_size = Vector2(50, 0)
layout_direction = 3
layout_mode = 2
[node name="SpacerProfile" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=58943589]
custom_minimum_size = Vector2(0, 8)
[node name="HSeparator2" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=2047650361]
layout_mode = 2
theme_override_constants/separation = 10
theme_override_styles/separator = SubResource("StyleBoxEmpty_yf42k")
[node name="SpacerMiddle" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=984509]
[node name="BattlePass" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=1064439374 instance=ExtResource("18_5jb2g")]
layout_mode = 2
size_flags_vertical = 3
size_flags_horizontal = 0
theme_override_styles/panel = SubResource("StyleBoxEmpty_v63ud")
[node name="ChatPanel" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=948590]
custom_minimum_size = Vector2(520, 260)
[node name="HSeparator3" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=1331729522]
layout_mode = 2
theme_override_constants/separation = 14
theme_override_styles/separator = SubResource("StyleBoxEmpty_yf42k")
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=2050468161]
custom_minimum_size = Vector2(80, 0)
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
[node name="Events" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/VBoxContainer" unique_id=1942930509]
custom_minimum_size = Vector2(67, 67)
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
theme_override_styles/panel = SubResource("StyleBoxFlat_fwqx0")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/VBoxContainer/Events" unique_id=73447453]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 13
theme_override_constants/margin_top = 13
theme_override_constants/margin_right = 13
theme_override_constants/margin_bottom = 13
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/VBoxContainer/Events/MarginContainer" unique_id=1725027124]
layout_mode = 2
texture = ExtResource("18_olier")
expand_mode = 1
stretch_mode = 5
[node name="HSeparator3" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/VBoxContainer" unique_id=188784548]
layout_mode = 2
theme_override_constants/separation = 6
theme_override_styles/separator = SubResource("StyleBoxEmpty_yf42k")
[node name="Inventory" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/VBoxContainer" unique_id=776230915]
custom_minimum_size = Vector2(67, 67)
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
theme_override_styles/panel = SubResource("StyleBoxFlat_mb33m")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/VBoxContainer/Inventory" unique_id=103420172]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 13
theme_override_constants/margin_top = 13
theme_override_constants/margin_right = 13
theme_override_constants/margin_bottom = 13
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/VBoxContainer/Inventory/MarginContainer" unique_id=1908625726]
layout_mode = 2
texture = ExtResource("19_5jb2g")
expand_mode = 1
stretch_mode = 5
[node name="HSeparator4" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=524180060]
layout_mode = 2
theme_override_constants/separation = 14
theme_override_styles/separator = SubResource("StyleBoxEmpty_yf42k")
[node name="Control" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=1092740754]
layout_mode = 2
size_flags_vertical = 8
[node name="ChatPanel" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control" unique_id=948590]
custom_minimum_size = Vector2(400, 197)
layout_mode = 0
offset_top = 4.0
offset_right = 400.0
offset_bottom = 201.0
size_flags_horizontal = 0
size_flags_vertical = 8
theme = ExtResource("14_2630d")
theme_override_styles/panel = SubResource("StyleBoxFlat_kn4i6")
theme_override_styles/panel = SubResource("StyleBoxEmpty_agxrn")
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel" unique_id=459039]
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel" unique_id=459039]
layout_mode = 2
theme_override_constants/separation = 10
[node name="TabsBackground" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer" unique_id=1292343209]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_4pkyx")
[node name="GradientOverlay" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground" unique_id=484114092]
material = SubResource("ShaderMaterial_4pkyx")
layout_mode = 2
mouse_filter = 2
texture = SubResource("GradientTexture2D_olier")
expand_mode = 1
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground" unique_id=1189440913]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer" unique_id=1189440913]
layout_mode = 2
theme_override_constants/margin_left = 7
theme_override_constants/margin_top = 7
theme_override_constants/margin_right = 7
[node name="ChatTabsContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer" unique_id=459040]
[node name="ChatTabsContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground/MarginContainer" unique_id=459040]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 4
[node name="GlobalChatTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer" unique_id=439566196]
[node name="GlobalChatTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground/MarginContainer/ChatTabsContainer" unique_id=439566196]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
size_flags_horizontal = 3
text = "Global"
theme_override_colors/font_color = Color(1, 1, 1, 0.85)
theme_override_colors/font_pressed_color = Color(0.08, 0.14, 0.24, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 16
theme_override_styles/normal = SubResource("StyleBoxEmpty_vfec7")
theme_override_styles/pressed = SubResource("StyleBoxFlat_yf42k")
theme_override_styles/hover = SubResource("StyleBoxFlat_v63ud")
toggle_mode = true
button_pressed = true
text = "WORLD"
[node name="DMTabTemplate" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer" unique_id=123456789]
[node name="ServerChatTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground/MarginContainer/ChatTabsContainer" unique_id=1431581913]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(1, 1, 1, 0.85)
theme_override_colors/font_pressed_color = Color(0.08, 0.14, 0.24, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 16
theme_override_styles/normal = SubResource("StyleBoxEmpty_sy4be")
theme_override_styles/pressed = SubResource("StyleBoxFlat_0nf8f")
theme_override_styles/hover = SubResource("StyleBoxFlat_rox41")
toggle_mode = true
text = "SERVER"
[node name="DMTabTemplate" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground/MarginContainer/ChatTabsContainer" unique_id=123456789]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
[node name="DMTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer/DMTabTemplate" unique_id=123456780]
[node name="DMTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground/MarginContainer/ChatTabsContainer/DMTabTemplate" unique_id=123456780]
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(1, 1, 1, 0.85)
theme_override_colors/font_pressed_color = Color(0.08, 0.14, 0.24, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 16
theme_override_styles/normal = SubResource("StyleBoxEmpty_f1hfh")
theme_override_styles/pressed = SubResource("StyleBoxFlat_6ax38")
theme_override_styles/hover = SubResource("StyleBoxFlat_pril5")
toggle_mode = true
text = "FriendName"
[node name="DMTabCloseBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer/DMTabTemplate" unique_id=123456781]
[node name="DMTabCloseBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/TabsBackground/MarginContainer/ChatTabsContainer/DMTabTemplate" unique_id=123456781]
layout_mode = 2
theme_override_colors/font_color = Color(0.8, 0.2, 0.2, 1)
text = " X "
[node name="GlobalChat" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer" unique_id=945890]
[node name="MessagePanel" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer" unique_id=495737699]
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_5jb2g")
[node name="GradientOverlay" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/MessagePanel" unique_id=334451362]
material = SubResource("ShaderMaterial_rievh")
layout_mode = 2
mouse_filter = 2
texture = SubResource("GradientTexture2D_87ggl")
expand_mode = 1
[node name="GlobalChat" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/MessagePanel" unique_id=945890]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 6
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
theme_override_constants/margin_left = 18
theme_override_constants/margin_top = 16
theme_override_constants/margin_right = 18
theme_override_constants/margin_bottom = 16
[node name="RichTextLabel" type="RichTextLabel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/GlobalChat" unique_id=1730680016]
[node name="RichTextLabel" type="RichTextLabel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/VBoxContainer/MessagePanel/GlobalChat" unique_id=1730680016]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/default_color = Color(1, 1, 1, 1)
theme_override_fonts/normal_font = ExtResource("14_vwf6o")
theme_override_fonts/bold_font = ExtResource("14_vwf6o")
theme_override_font_sizes/normal_font_size = 14
theme_override_font_sizes/bold_font_size = 15
bbcode_enabled = true
scroll_following = true
[node name="FriendSuggestPanel" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel" unique_id=987654321]
[node name="FriendSuggestPanel" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel" unique_id=987654321]
unique_name_in_owner = true
visible = false
layout_mode = 2
[node name="FriendSuggestList" type="ItemList" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/FriendSuggestPanel" unique_id=987654320]
[node name="FriendSuggestList" type="ItemList" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/FriendSuggestPanel" unique_id=987654320]
unique_name_in_owner = true
layout_mode = 2
allow_reselect = true
auto_height = true
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=459038]
clip_contents = true
[node name="TailOverlay" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel" unique_id=1037808647]
layout_mode = 2
mouse_filter = 2
[node name="ChevIcon" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/ChatPanel/TailOverlay" unique_id=1489474671]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 18.0
offset_top = 5.0
offset_right = 40.0
offset_bottom = 17.0
grow_vertical = 0
scale = Vector2(0.8, 0.8)
mouse_filter = 2
texture = ExtResource("20_rievh")
expand_mode = 1
stretch_mode = 5
[node name="HSeparator" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control" unique_id=1035778803]
layout_mode = 0
offset_top = 205.0
offset_right = 448.0
offset_bottom = 217.0
theme_override_constants/separation = 12
theme_override_styles/separator = SubResource("StyleBoxEmpty_l7nca")
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control" unique_id=459038]
clip_contents = true
custom_minimum_size = Vector2(400, 0)
layout_mode = 0
offset_top = 221.0
offset_right = 400.0
offset_bottom = 276.0
size_flags_horizontal = 0
size_flags_vertical = 8
theme_override_constants/separation = 8
[node name="QuitBtn2" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer" unique_id=1520754242]
[node name="BubbleBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer" unique_id=850962556]
unique_name_in_owner = true
custom_minimum_size = Vector2(40, 40)
custom_minimum_size = Vector2(55, 55)
layout_mode = 2
theme = ExtResource("2_theme")
texture_normal = ExtResource("12_dfnwm")
size_flags_horizontal = 0
size_flags_vertical = 4
theme_override_styles/normal = SubResource("StyleBoxFlat_s0n6j")
theme_override_styles/pressed = SubResource("StyleBoxFlat_87ggl")
theme_override_styles/hover = SubResource("StyleBoxFlat_agxrn")
text = ""
[node name="Control" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer" unique_id=59880168]
custom_minimum_size = Vector2(0, 70)
[node name="Icon" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/BubbleBtn" unique_id=1890525601]
modulate = Color(0.08, 0.16, 0.32, 1)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -13.0
offset_top = -13.0
offset_right = 13.0
offset_bottom = 13.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("19_oysm8")
expand_mode = 1
stretch_mode = 5
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer" unique_id=2123634957]
visible = false
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_3jc85")
theme_override_styles/panel = SubResource("StyleBoxFlat_rievh")
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control" unique_id=1328089782]
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel" unique_id=1015348738]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -27.5
offset_bottom = 27.5
grow_horizontal = 2
grow_vertical = 2
[node name="Button" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer" unique_id=840720163]
custom_minimum_size = Vector2(55, 55)
layout_mode = 2
size_flags_vertical = 4
theme_override_styles/normal = SubResource("StyleBoxFlat_olier")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer/Button" unique_id=1824281772]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
[node name="QuitBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer" unique_id=738138485]
unique_name_in_owner = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer/Button/MarginContainer" unique_id=523485444]
layout_mode = 2
texture_normal = ExtResource("13_0jb4q")
texture = ExtResource("20_4pkyx")
expand_mode = 1
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer" unique_id=628941879]
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer" unique_id=448545432]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_left = 5
size_flags_vertical = 4
theme_override_constants/margin_left = 10
[node name="ChatInput" type="LineEdit" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer/MarginContainer" unique_id=1346390421]
unique_name_in_owner = true
[node name="ChatInput" type="LineEdit" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer/MarginContainer" unique_id=1315081387]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
theme_override_fonts/font = ExtResource("14_vwf6o")
theme_override_font_sizes/font_size = 16
theme_override_styles/normal = SubResource("StyleBoxFlat_jhtcy")
@@ -609,12 +1466,110 @@ theme_override_styles/read_only = SubResource("StyleBoxEmpty_iulku")
theme_override_styles/focus = SubResource("StyleBoxEmpty_dfnwm")
placeholder_text = " type to chat"
[node name="SendBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer" unique_id=1491048704]
unique_name_in_owner = true
[node name="Button2" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer" unique_id=1728884896]
custom_minimum_size = Vector2(64, 55)
layout_mode = 2
theme_override_styles/normal = SubResource("StyleBoxEmpty_87ggl")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer/Button2" unique_id=1324567722]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -29.0
offset_top = -29.0
offset_right = 29.0
offset_bottom = 29.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/Panel/HBoxContainer/Button2/MarginContainer" unique_id=569120138]
layout_mode = 2
texture = ExtResource("15_iwi7x")
[node name="InputBar" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer" unique_id=59880168]
custom_minimum_size = Vector2(0, 55)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_l7nca")
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/InputBar" unique_id=1328089782]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="EmojiBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/InputBar/HBoxContainer" unique_id=524485525]
custom_minimum_size = Vector2(55, 55)
layout_mode = 2
theme_override_styles/normal = SubResource("StyleBoxFlat_vfec7")
theme_override_styles/pressed = SubResource("StyleBoxFlat_sy4be")
theme_override_styles/hover = SubResource("StyleBoxFlat_f1hfh")
[node name="Icon" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/InputBar/HBoxContainer/EmojiBtn" unique_id=363959800]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -11.0
offset_top = -11.0
offset_right = 11.0
offset_bottom = 11.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("20_4pkyx")
expand_mode = 1
stretch_mode = 5
[node name="QuitBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/InputBar/HBoxContainer" unique_id=738138485]
unique_name_in_owner = true
visible = false
layout_mode = 2
texture_normal = ExtResource("13_0jb4q")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/InputBar/HBoxContainer" unique_id=628941879]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_left = 5
[node name="ChatInput" type="LineEdit" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/InputBar/HBoxContainer/MarginContainer" unique_id=1346390421]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 38)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_placeholder_color = Color(1, 1, 1, 0.75)
theme_override_fonts/font = ExtResource("14_vwf6o")
theme_override_font_sizes/font_size = 14
theme_override_styles/normal = SubResource("StyleBoxEmpty_0nf8f")
theme_override_styles/read_only = SubResource("StyleBoxEmpty_iulku")
theme_override_styles/focus = SubResource("StyleBoxEmpty_rox41")
placeholder_text = "Send to World..."
[node name="SendBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/Control/HBoxContainer/InputBar/HBoxContainer" unique_id=1491048704]
unique_name_in_owner = true
custom_minimum_size = Vector2(44, 44)
layout_mode = 2
size_flags_vertical = 4
theme = ExtResource("2_theme")
theme_override_styles/normal = SubResource("StyleBoxEmpty_6ax38")
theme_override_styles/pressed = SubResource("StyleBoxFlat_jkoci")
theme_override_styles/hover = SubResource("StyleBoxFlat_3y5sy")
icon = ExtResource("15_iwi7x")
flat = true
[node name="CenterCol" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox" unique_id=7006870]
clip_contents = true
@@ -625,22 +1580,54 @@ size_flags_horizontal = 3
custom_minimum_size = Vector2(280, 0)
layout_mode = 2
[node name="TopRightPanel" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=20449742]
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=76839117]
clip_contents = true
custom_minimum_size = Vector2(532, 48)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_oysm8")
[node name="GradientPanel" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel" unique_id=966402216]
material = SubResource("ShaderMaterial_ixomp")
custom_minimum_size = Vector2(0, 48)
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 64.0
grow_horizontal = 2
scale = Vector2(1, 0.75)
texture = SubResource("GradientTexture2D_rievh")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel" unique_id=1907187664]
custom_minimum_size = Vector2(532, 0)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 8
[node name="TopRightPanel" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer" unique_id=20449742]
custom_minimum_size = Vector2(500, 0)
layout_mode = 2
theme = ExtResource("2_theme")
theme_override_constants/separation = 12
theme_override_constants/separation = 40
alignment = 2
[node name="ProfileBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=752873406]
[node name="ProfileBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=752873406]
unique_name_in_owner = true
custom_minimum_size = Vector2(61, 61)
visible = false
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/ProfileBtn" unique_id=1690437163]
custom_minimum_size = Vector2(32, 32)
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/ProfileBtn" unique_id=1690437163]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -650,81 +1637,124 @@ grow_vertical = 2
texture = ExtResource("18_u7tfn")
expand_mode = 2
[node name="LeaderboardBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=312524216]
[node name="HelpBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=925822252]
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
size_flags_horizontal = 4
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/HelpBtn" unique_id=155484110]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -16.0
offset_bottom = 16.0
grow_horizontal = 0
texture = ExtResource("24_ph747")
expand_mode = 1
[node name="CartBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=456149005]
unique_name_in_owner = true
custom_minimum_size = Vector2(61, 61)
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/LeaderboardBtn" unique_id=1226601226]
custom_minimum_size = Vector2(32, 32)
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/CartBtn" unique_id=1719165221]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("19_2630d")
texture = ExtResource("25_ixomp")
expand_mode = 2
[node name="CartBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=456149005]
[node name="TicketBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=64042310]
unique_name_in_owner = true
custom_minimum_size = Vector2(61, 61)
custom_minimum_size = Vector2(28, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/CartBtn" unique_id=1719165221]
custom_minimum_size = Vector2(32, 32)
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/TicketBtn" unique_id=109558990]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("20_835bk")
expand_mode = 2
texture = ExtResource("26_8kv63")
expand_mode = 1
[node name="TicketBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=64042310]
[node name="LeaderboardBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=312524216]
unique_name_in_owner = true
custom_minimum_size = Vector2(61, 61)
custom_minimum_size = Vector2(40, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/TicketBtn" unique_id=109558990]
custom_minimum_size = Vector2(32, 32)
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/LeaderboardBtn" unique_id=1226601226]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("21_ucbax")
expand_mode = 2
texture = ExtResource("27_y8bta")
expand_mode = 1
[node name="MailboxBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=64042311]
[node name="SocialBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=82719328]
unique_name_in_owner = true
custom_minimum_size = Vector2(61, 61)
custom_minimum_size = Vector2(40, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/SocialBtn" unique_id=134959792]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("28_st18m")
expand_mode = 1
[node name="MailboxBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=64042311]
unique_name_in_owner = true
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_styles/normal = SubResource("StyleBoxEmpty_835bk")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_ucbax")
theme_override_styles/hover = SubResource("StyleBoxEmpty_1x1aw")
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/MailboxBtn" unique_id=109558991]
custom_minimum_size = Vector2(32, 32)
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/MailboxBtn" unique_id=109558991]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -19.5
offset_top = -12.0
offset_right = 20.5
offset_bottom = 13.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("23_835bk")
texture = ExtResource("29_6yc8v")
expand_mode = 3
[node name="MailBadge" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/MailboxBtn" unique_id=156491696]
[node name="MailBadge" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/MailboxBtn" unique_id=156491696]
unique_name_in_owner = true
visible = false
layout_mode = 1
@@ -741,47 +1771,31 @@ theme_override_font_sizes/font_size = 10
horizontal_alignment = 1
vertical_alignment = 1
[node name="SocialBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=82719328]
[node name="SettingsBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel" unique_id=90]
unique_name_in_owner = true
custom_minimum_size = Vector2(61, 61)
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/SocialBtn" unique_id=134959792]
custom_minimum_size = Vector2(32, 32)
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Panel/MarginContainer/TopRightPanel/SettingsBtn" unique_id=629469797]
custom_minimum_size = Vector2(16, 16)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("22_1x1aw")
expand_mode = 2
texture = ExtResource("30_yb58j")
expand_mode = 1
[node name="SettingsBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=90]
unique_name_in_owner = true
custom_minimum_size = Vector2(61, 61)
[node name="Events" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=43997484 instance=ExtResource("32_8kv63")]
custom_minimum_size = Vector2(276, 141)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/SettingsBtn" unique_id=629469797]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("23_twy5w")
expand_mode = 2
[node name="Spacer1" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=9023]
layout_mode = 2
size_flags_vertical = 3
size_flags_vertical = 1
[node name="Banners" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=1356766829]
visible = false
layout_mode = 2
theme_override_constants/separation = 16
alignment = 2
@@ -828,30 +1842,123 @@ theme_override_font_sizes/font_size = 30
disabled = true
text = "Banner Slot"
[node name="HBoxContainer3" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Banners" unique_id=1502007727]
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=496474529]
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
alignment = 2
size_flags_horizontal = 8
size_flags_vertical = 3
[node name="Control" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Banners/HBoxContainer3" unique_id=249145750]
clip_contents = true
custom_minimum_size = Vector2(350, 0)
layout_direction = 3
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer" unique_id=1789411264]
layout_mode = 2
[node name="Banner3" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/Banners/HBoxContainer3" unique_id=945]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 120)
[node name="Label" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/HBoxContainer" unique_id=1371230077]
layout_mode = 2
theme_override_fonts/font = ExtResource("38_87ggl")
theme_override_font_sizes/font_size = 20
text = "QUEST LIST"
[node name="VSeparator" type="VSeparator" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/HBoxContainer" unique_id=2072828325]
layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("14_2630d")
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 30
disabled = true
text = "Banner Slot"
theme_override_styles/separator = SubResource("StyleBoxEmpty_pril5")
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/HBoxContainer" unique_id=2106503240]
custom_minimum_size = Vector2(16, 0)
layout_mode = 2
texture = ExtResource("39_agxrn")
expand_mode = 1
stretch_mode = 4
[node name="HSeparator2" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer" unique_id=2069465384]
layout_mode = 2
theme_override_constants/separation = 4
theme_override_styles/separator = SubResource("StyleBoxFlat_wqxeh")
[node name="HSeparator" type="HSeparator" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer" unique_id=1831625398]
layout_mode = 2
theme_override_styles/separator = SubResource("StyleBoxEmpty_do6di")
[node name="QuestListTab" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer" unique_id=731395093]
custom_minimum_size = Vector2(0, 38)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_do6di")
script = ExtResource("40_agxrn")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/QuestListTab" unique_id=1241608073]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 6
theme_override_constants/margin_top = 6
theme_override_constants/margin_right = 6
theme_override_constants/margin_bottom = 6
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/QuestListTab/MarginContainer" unique_id=1931628729]
layout_mode = 2
theme_override_constants/separation = 0
[node name="DailyTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/QuestListTab/MarginContainer/HBoxContainer" unique_id=1009068559]
unique_name_in_owner = true
custom_minimum_size = Vector2(68, 28)
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(1, 1, 1, 0.9)
theme_override_colors/font_pressed_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("38_87ggl")
theme_override_styles/normal = SubResource("StyleBoxEmpty_jkoci")
theme_override_styles/pressed = SubResource("StyleBoxFlat_os6ns")
theme_override_styles/hover = SubResource("StyleBoxFlat_b6wif")
toggle_mode = true
button_pressed = true
text = "DAILY"
[node name="VSeparator2" type="VSeparator" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/QuestListTab/MarginContainer/HBoxContainer" unique_id=1786352918]
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/separator = SubResource("StyleBoxEmpty_uovpt")
[node name="WeeklyTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/QuestListTab/MarginContainer/HBoxContainer" unique_id=1907844738]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 26)
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(1, 1, 1, 0.9)
theme_override_colors/font_pressed_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("38_87ggl")
theme_override_styles/normal = SubResource("StyleBoxEmpty_3y5sy")
theme_override_styles/pressed = SubResource("StyleBoxFlat_os6ns")
theme_override_styles/hover = SubResource("StyleBoxFlat_b6wif")
toggle_mode = true
text = "WEEKLY"
[node name="VSeparator" type="VSeparator" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/QuestListTab/MarginContainer/HBoxContainer" unique_id=1382495761]
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/separator = SubResource("StyleBoxEmpty_uovpt")
[node name="MonthlyTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/VBoxContainer/QuestListTab/MarginContainer/HBoxContainer" unique_id=1294883329]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 26)
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(1, 1, 1, 0.9)
theme_override_colors/font_pressed_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("38_87ggl")
theme_override_styles/normal = SubResource("StyleBoxEmpty_fwqx0")
theme_override_styles/pressed = SubResource("StyleBoxFlat_8onxx")
theme_override_styles/hover = SubResource("StyleBoxFlat_15eno")
toggle_mode = true
text = "MONTHLY"
[node name="Spacer2" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=324]
custom_minimum_size = Vector2(0, 92)
layout_mode = 2
size_flags_vertical = 3
[node name="BottomRightPanel" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=987]
layout_mode = 2
@@ -869,10 +1976,68 @@ theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "TUTORIAL"
[node name="BrowseRoomsBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=1204550484]
[node name="RoomBtnRoot" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=1998141679]
custom_minimum_size = Vector2(195, 77)
layout_mode = 2
size_flags_horizontal = 10
size_flags_vertical = 8
[node name="PanelContainer" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/RoomBtnRoot" unique_id=2047958981]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -160.0
offset_top = -65.0
offset_bottom = 36.0
grow_horizontal = 0
theme_override_styles/panel = SubResource("StyleBoxEmpty_4pkyx")
[node name="Panel2" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/RoomBtnRoot/PanelContainer" unique_id=1384210399]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_rievh")
[node name="CardLeft" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/RoomBtnRoot/PanelContainer/Panel2" unique_id=975861905]
custom_minimum_size = Vector2(85, 85)
layout_mode = 0
offset_left = -2.0
offset_top = 20.0
offset_right = 83.0
offset_bottom = 105.0
rotation = -0.35081118
pivot_offset = Vector2(28, 28)
size_flags_horizontal = 0
size_flags_vertical = 8
mouse_filter = 2
texture = ExtResource("33_yb58j")
expand_mode = 1
stretch_mode = 5
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/RoomBtnRoot/PanelContainer" unique_id=155993237]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_olier")
[node name="CardRight" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/RoomBtnRoot/PanelContainer/Panel" unique_id=817735936]
layout_mode = 0
offset_left = 77.0
offset_top = -1.0
offset_right = 167.0
offset_bottom = 89.0
rotation = 0.34906584
pivot_offset = Vector2(28, 28)
size_flags_horizontal = 8
size_flags_vertical = 8
mouse_filter = 2
texture = ExtResource("34_oysm8")
expand_mode = 1
stretch_mode = 5
[node name="BrowseRoomsBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/RoomBtnRoot" unique_id=1204550484]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
layout_mode = 0
offset_right = 195.0
offset_bottom = 77.0
size_flags_horizontal = 10
size_flags_vertical = 8
theme = ExtResource("2_theme")
@@ -880,10 +2045,66 @@ texture_normal = ExtResource("17_wjff0")
texture_pressed = ExtResource("18_0jb4q")
texture_hover = ExtResource("18_0jb4q")
[node name="CreateRoomBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=1662316269]
[node name="PlayBtnRoot" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=521048431]
custom_minimum_size = Vector2(284, 107)
layout_mode = 2
size_flags_horizontal = 3
[node name="PanelContainer" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/PlayBtnRoot" unique_id=1177755408]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -222.0
offset_top = -110.0
offset_bottom = 9.0
grow_horizontal = 0
theme_override_styles/panel = SubResource("StyleBoxEmpty_oysm8")
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/PlayBtnRoot/PanelContainer" unique_id=1036605899]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_5jb2g")
[node name="CardRight" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/PlayBtnRoot/PanelContainer/Panel" unique_id=1142287670]
layout_mode = 0
offset_left = 115.0
offset_top = 26.0
offset_right = 215.0
offset_bottom = 126.0
rotation = 0.24958208
pivot_offset = Vector2(28, 28)
size_flags_horizontal = 8
size_flags_vertical = 8
mouse_filter = 2
texture = ExtResource("38_rievh")
expand_mode = 1
stretch_mode = 5
[node name="Panel2" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/PlayBtnRoot/PanelContainer" unique_id=379136491]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_s0n6j")
[node name="CardLeft" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/PlayBtnRoot/PanelContainer/Panel2" unique_id=614956734]
layout_mode = 0
offset_left = 17.0
offset_top = 58.0
offset_right = 112.0
offset_bottom = 153.0
rotation = -0.34382987
pivot_offset = Vector2(28, 28)
size_flags_horizontal = 0
size_flags_vertical = 8
mouse_filter = 2
texture = ExtResource("37_4pkyx")
expand_mode = 1
stretch_mode = 5
[node name="CreateRoomBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel/PlayBtnRoot" unique_id=1662316269]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
layout_mode = 0
offset_right = 284.0
offset_bottom = 107.0
size_flags_horizontal = 3
theme = ExtResource("2_theme")
texture_normal = ExtResource("18_h1rib")
+142
View File
@@ -0,0 +1,142 @@
extends ScrollContainer
const SNAP_DURATION := 0.25
const TEX_DEFAULT := preload("res://assets/graphics/gui/lobby/bar_default.svg")
const TEX_ACTIVE := preload("res://assets/graphics/gui/lobby/bar_active.svg")
@export var auto_advance_enabled: bool = true
@export var auto_advance_delay: float = 4.0
@onready var _track: HBoxContainer = $CardMargin/HBoxContainer
@onready var _page_dots: Array = get_node_or_null("../PageIndicator").get_children() if get_node_or_null("../PageIndicator") else []
var _dragging := false
var _drag_start_pos := 0.0
var _drag_start_scroll := 0
var _snap_tween: Tween
var _auto_timer: Timer
func _ready() -> void:
_update_indicator()
_setup_auto_timer()
func _setup_auto_timer() -> void:
_auto_timer = Timer.new()
_auto_timer.name = "AutoAdvanceTimer"
_auto_timer.one_shot = true
_auto_timer.timeout.connect(_on_auto_timer_timeout)
add_child(_auto_timer)
_restart_auto_timer()
func _restart_auto_timer() -> void:
if not auto_advance_enabled or _dragging or _card_count() <= 1:
return
_auto_timer.stop()
_auto_timer.wait_time = auto_advance_delay
_auto_timer.start()
func _on_auto_timer_timeout() -> void:
if _dragging:
return
var next_index := (_current_page() + 1) % _card_count()
_animate_to_page(next_index)
func _exit_tree() -> void:
if _auto_timer:
_auto_timer.stop()
if _snap_tween:
_snap_tween.kill()
func _gui_input(event: InputEvent) -> void:
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
if event.pressed:
_start_drag(event.position.x)
elif _dragging:
_end_drag()
elif event is InputEventMouseMotion and _dragging:
_update_drag(event.position.x)
elif event is InputEventScreenTouch and event.index == 0:
if event.pressed:
_start_drag(event.position.x)
elif _dragging:
_end_drag()
elif event is InputEventScreenDrag and event.index == 0 and _dragging:
_update_drag(event.position.x)
func _start_drag(x: float) -> void:
if _snap_tween:
_snap_tween.kill()
_auto_timer.stop()
_dragging = true
_drag_start_pos = x
_drag_start_scroll = scroll_horizontal
func _update_drag(x: float) -> void:
var delta := _drag_start_pos - x
scroll_horizontal = clampi(_drag_start_scroll + int(delta), 0, _max_scroll())
_update_indicator()
func _end_drag() -> void:
_dragging = false
_snap_to_nearest_card()
func _max_scroll() -> int:
var bar := get_h_scroll_bar()
return maxi(0, int(bar.max_value - bar.page))
func _card_count() -> int:
return maxi(1, _track.get_child_count())
func _card_step() -> float:
var count := _card_count()
if count <= 1:
return 0.0
return float(_max_scroll()) / float(count - 1)
func _current_page() -> int:
var step := _card_step()
if step <= 0.0:
return 0
return clampi(roundi(scroll_horizontal / step), 0, _card_count() - 1)
func _snap_to_nearest_card() -> void:
_animate_to_page(_current_page())
func _animate_to_page(target_index: int) -> void:
target_index = clampi(target_index, 0, _card_count() - 1)
var step := _card_step()
var target_scroll := int(round(target_index * step))
if _snap_tween:
_snap_tween.kill()
_snap_tween = create_tween().set_trans(Tween.TRANS_CUBIC).set_ease(Tween.EASE_OUT)
_snap_tween.tween_method(_set_scroll_and_indicator, float(scroll_horizontal), float(target_scroll), SNAP_DURATION)
_snap_tween.finished.connect(_restart_auto_timer)
func _set_scroll_and_indicator(value: float) -> void:
scroll_horizontal = int(round(value))
_update_indicator()
func _update_indicator() -> void:
if _page_dots.is_empty():
return
var active_index := _current_page()
for i in _page_dots.size():
var dot: TextureRect = _page_dots[i]
dot.texture = TEX_ACTIVE if i == active_index else TEX_DEFAULT
+1
View File
@@ -0,0 +1 @@
uid://bnxbmxuwjwqua
+198
View File
@@ -0,0 +1,198 @@
[gd_scene format=3 uid="uid://c3v78hufajngu"]
[ext_resource type="Texture2D" uid="uid://bhv35y3q1jxr0" path="res://assets/graphics/gui/lobby/card_xmple.png" id="1_3k5w5"]
[ext_resource type="Script" uid="uid://bnxbmxuwjwqua" path="res://scenes/lobby_sliders.gd" id="1_l3iok"]
[ext_resource type="FontFile" uid="uid://dsqg0x5lnosou" path="res://assets/fonts/TektonDash2.ttf" id="2_l3iok"]
[ext_resource type="Texture2D" uid="uid://y0y2fqa6xml7" path="res://assets/graphics/gui/lobby/bar_default.svg" id="3_i4gg1"]
[ext_resource type="Texture2D" uid="uid://b5qt2u2k23b5w" path="res://assets/graphics/gui/lobby/bar_active.svg" id="4_crv6i"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_st18m"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_t5gla"]
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
corner_radius_top_left = 23
corner_radius_top_right = 23
corner_radius_bottom_right = 23
corner_radius_bottom_left = 23
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a37jl"]
bg_color = Color(1, 0.25882354, 0.25882354, 1)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(0.06666667, 0.13333334, 0.1882353, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[node name="Sliders" type="Panel" unique_id=43997484]
custom_minimum_size = Vector2(276, 0)
offset_right = 276.0
offset_bottom = 132.0
size_flags_horizontal = 8
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_st18m")
[node name="ScrollContainer" type="ScrollContainer" parent="." unique_id=1629363718]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_bottom = 4.0
grow_horizontal = 2
grow_vertical = 2
horizontal_scroll_mode = 3
vertical_scroll_mode = 3
script = ExtResource("1_l3iok")
[node name="CardMargin" type="MarginContainer" parent="ScrollContainer" unique_id=481757735]
layout_mode = 2
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 0
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/CardMargin" unique_id=1982136347]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
[node name="PanelContainer1" type="PanelContainer" parent="ScrollContainer/CardMargin/HBoxContainer" unique_id=610661983]
layout_mode = 2
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_t5gla")
[node name="CardBase" type="TextureRect" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer1" unique_id=313528397]
custom_minimum_size = Vector2(270, 117)
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 4
texture = ExtResource("1_3k5w5")
expand_mode = 1
[node name="LimitedBadge" type="PanelContainer" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer1/CardBase" unique_id=802083624]
layout_mode = 0
offset_left = 2.0
offset_top = -5.0
offset_right = 108.0
offset_bottom = 29.0
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_a37jl")
[node name="MarginContainer" type="MarginContainer" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer1/CardBase/LimitedBadge" unique_id=51791062]
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/margin_left = 13
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 13
theme_override_constants/margin_bottom = 3
[node name="Label" type="Label" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer1/CardBase/LimitedBadge/MarginContainer" unique_id=1817736469]
layout_mode = 2
theme_override_fonts/font = ExtResource("2_l3iok")
theme_override_font_sizes/font_size = 20
text = "Limited"
[node name="PanelContainer2" type="PanelContainer" parent="ScrollContainer/CardMargin/HBoxContainer" unique_id=704308740]
layout_mode = 2
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_t5gla")
[node name="CardBase" type="TextureRect" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer2" unique_id=870258525]
custom_minimum_size = Vector2(270, 117)
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 4
texture = ExtResource("1_3k5w5")
expand_mode = 1
[node name="LimitedBadge" type="PanelContainer" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer2/CardBase" unique_id=1744093227]
layout_mode = 0
offset_left = 2.0
offset_top = -5.0
offset_right = 102.0
offset_bottom = 28.0
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_a37jl")
[node name="MarginContainer" type="MarginContainer" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer2/CardBase/LimitedBadge" unique_id=126611072]
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/margin_left = 13
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 13
theme_override_constants/margin_bottom = 3
[node name="Label" type="Label" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer2/CardBase/LimitedBadge/MarginContainer" unique_id=1709358746]
layout_mode = 2
theme_override_fonts/font = ExtResource("2_l3iok")
theme_override_font_sizes/font_size = 20
text = "Limited"
[node name="PanelContainer3" type="PanelContainer" parent="ScrollContainer/CardMargin/HBoxContainer" unique_id=1308324127]
layout_mode = 2
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_t5gla")
[node name="CardBase" type="TextureRect" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer3" unique_id=1957855413]
custom_minimum_size = Vector2(270, 117)
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 4
texture = ExtResource("1_3k5w5")
expand_mode = 1
[node name="LimitedBadge" type="PanelContainer" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer3/CardBase" unique_id=1087414779]
layout_mode = 0
offset_left = 2.0
offset_top = -5.0
offset_right = 102.0
offset_bottom = 28.0
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_a37jl")
[node name="MarginContainer" type="MarginContainer" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer3/CardBase/LimitedBadge" unique_id=516591042]
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/margin_left = 13
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 13
theme_override_constants/margin_bottom = 3
[node name="Label" type="Label" parent="ScrollContainer/CardMargin/HBoxContainer/PanelContainer3/CardBase/LimitedBadge/MarginContainer" unique_id=1269776987]
layout_mode = 2
theme_override_fonts/font = ExtResource("2_l3iok")
theme_override_font_sizes/font_size = 20
text = "Limited"
[node name="PageIndicator" type="HBoxContainer" parent="." unique_id=844141711]
layout_mode = 0
offset_left = 13.0
offset_top = 108.0
offset_right = 263.0
offset_bottom = 117.0
theme_override_constants/separation = 5
[node name="Dot1" type="TextureRect" parent="PageIndicator" unique_id=1939877728]
custom_minimum_size = Vector2(80, 6)
layout_mode = 2
texture = ExtResource("4_crv6i")
expand_mode = 1
[node name="Dot2" type="TextureRect" parent="PageIndicator" unique_id=1471300482]
custom_minimum_size = Vector2(80, 6)
layout_mode = 2
texture = ExtResource("3_i4gg1")
expand_mode = 1
[node name="Dot3" type="TextureRect" parent="PageIndicator" unique_id=1825186770]
custom_minimum_size = Vector2(80, 6)
layout_mode = 2
texture = ExtResource("3_i4gg1")
expand_mode = 1
+14 -14
View File
@@ -117,6 +117,7 @@ var can_finish: bool:
# Modifier for Turn based
var has_performed_action: bool = false
@warning_ignore("unused_private_class_variable") # read/written by player_action_manager.gd
var _is_processing_action: bool = false
var selected_gridmap_position = Vector2i(-1, -1)
var selected_playerboard_slot = -1
@@ -157,6 +158,7 @@ var spawn_point_selected = false
# Action for hilighter
var highlighted_spawn_points = []
@warning_ignore("unused_private_class_variable") # read/written by player_movement_manager.gd
var _is_highlighting: bool = false
# Character selection and animation
@@ -579,7 +581,7 @@ const COSMETIC_MAPPING = {
}
}
func apply_loadout(character_node: Node3D) -> void:
func apply_loadout(_character_node: Node3D) -> void:
"""Apply equipped cosmetics via SkinManager — the single source of truth.
Uses _player_loadout (synced from the owning client via sync_loadout RPC)
so all peers render the same skin regardless of their own loadout."""
@@ -928,14 +930,14 @@ func _refresh_player_visuals():
if active_character:
apply_loadout(active_character)
func update_rank_visuals(rank: int, score: int = -1):
func update_rank_visuals(rank: int, player_score: int = -1):
var pos_label = get_node_or_null("Position")
if not pos_label:
return
# Hide rank until the player has actually scored, so the match doesn't
# start with everyone showing a position (e.g. all "1st").
if score == 0:
if player_score == 0:
pos_label.visible = false
return
@@ -1110,7 +1112,6 @@ func drop_all_tiles():
for i in range(playerboard.size()):
if playerboard[i] != -1:
var item_id = playerboard[i]
playerboard[i] = -1
# Find a spot to drop? Or just destroy?
@@ -1603,7 +1604,7 @@ func _find_random_spawn_position() -> Vector2i:
# Special handling for Stop n Go mode (22x10 Grid)
if LobbyManager.game_mode == "Stop n Go":
var available_positions = []
var stop_n_go_positions = []
# Scan the 22x10 grid
for x in range(22):
for z in range(10):
@@ -1616,12 +1617,12 @@ func _find_random_spawn_position() -> Vector2i:
# Assuming 4 is obstacle, and -1 is void. 0 is walkable, 2 is safe zone.
if item != -1 and item != 4:
if not is_position_occupied(pos):
available_positions.append(pos)
if available_positions.size() > 0:
stop_n_go_positions.append(pos)
if stop_n_go_positions.size() > 0:
var rng = RandomNumberGenerator.new()
rng.randomize()
return available_positions[rng.randi() % available_positions.size()]
return stop_n_go_positions[rng.randi() % stop_n_go_positions.size()]
return Vector2i(10, 5) # Fallback center
@@ -1651,6 +1652,7 @@ func _find_random_spawn_position() -> Vector2i:
# Better fallback center instead of 0,0 which is often a wall/border
print("[Player] Warning: No available spawn positions found! Using fallback.")
@warning_ignore("integer_division") # grid center is intentionally an integer cell
return Vector2i(cols / 2, rs / 2)
func find_random_valid_position_in_range() -> Vector2i:
@@ -1690,8 +1692,8 @@ func raycast_to_grid(from: Vector3, to: Vector3) -> Vector2i:
return Vector2i(-1, -1)
func is_within_movement_range(target_position: Vector2i) -> bool:
return movement_manager.is_within_movement_range(target_position)
func is_within_movement_range(check_position: Vector2i) -> bool:
return movement_manager.is_within_movement_range(check_position)
# -----------------------------------------------------------------
# Movement
@@ -1777,9 +1779,7 @@ func start_movement_along_path(path: Array, clear_visual: bool = true, force: bo
var current_finish_locs = race_manager.get_current_finish_locations() if race_manager else finish_locations
if current_position in current_finish_locs and can_finish:
finish_race()
var main = get_tree().get_root().get_node_or_null("Main")
# Clear visuals for everyone including bots
if clear_visual:
if enhanced_gridmap:
+13
View File
@@ -0,0 +1,13 @@
extends Panel
@onready var _slider = $Content/ScrollContainer
@onready var _ticket = $Ticket
func _ready() -> void:
if _slider.has_signal("page_changed"):
_slider.page_changed.connect(_on_page_changed)
func _on_page_changed(index: int) -> void:
_ticket.show_index(index)
+1
View File
@@ -0,0 +1 @@
uid://dc5dh15rrdc4
+53
View File
@@ -0,0 +1,53 @@
extends Panel
const DIP_DURATION := 0.36
@onready var _tickets: Array = get_children().filter(func(c): return c is TextureRect)
var _current_index := 0
var _tween: Tween
func _ready() -> void:
for i in _tickets.size():
_tickets[i].visible = (i == 0)
_tickets[i].modulate.a = 1.0
func show_index(index: int, animate: bool = true) -> void:
if index < 0 or index >= _tickets.size() or index == _current_index:
return
var from_ticket: TextureRect = _tickets[_current_index]
var to_ticket: TextureRect = _tickets[index]
if not animate:
from_ticket.visible = false
to_ticket.visible = true
to_ticket.modulate.a = 1.0
_current_index = index
return
if _tween:
_tween.kill()
var from_mat: ShaderMaterial = from_ticket.material
var to_mat: ShaderMaterial = to_ticket.material
_tween = create_tween()
_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN)
if from_mat:
_tween.tween_method(func(v): from_mat.set_shader_parameter("blur_amount", v), 0.0, 1.0, DIP_DURATION * 0.5)
_tween.parallel().tween_property(from_ticket, "modulate:a", 0.0, DIP_DURATION * 0.5)
_tween.tween_callback(func():
from_ticket.visible = false
to_ticket.modulate.a = 0.0
to_ticket.visible = true
_current_index = index
)
_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT)
if to_mat:
_tween.tween_method(func(v): to_mat.set_shader_parameter("blur_amount", v), 1.0, 0.0, DIP_DURATION * 0.5)
_tween.parallel().tween_property(to_ticket, "modulate:a", 1.0, DIP_DURATION * 0.5)
+1
View File
@@ -0,0 +1 @@
uid://bwu41vcu5t8nd
+82 -34
View File
@@ -10,6 +10,8 @@ var _active_chat_context: String = "global"
var _dm_tabs: Dictionary = {}
var _dm_messages: Dictionary = {}
var _chat_config: Dictionary = {"prefix": "", "max_messages": 50, "max_age_days": 0}
var _global_chat_loading: bool = false
var _dm_loading: Dictionary = {}
func _init(p_lobby: Control):
lobby = p_lobby
@@ -19,26 +21,41 @@ func _init(p_lobby: Control):
if lobby.chat_input:
lobby.chat_input.text_submitted.connect(func(_t): _on_chat_send_pressed())
lobby.chat_input.text_changed.connect(_on_chat_input_changed)
var global_btn = lobby.get_node_or_null("%GlobalChatTabBtn")
if global_btn:
global_btn.pressed.connect(func(): switch_chat_tab("global"))
var server_btn = lobby.get_node_or_null("%ServerChatTabBtn")
if server_btn:
server_btn.pressed.connect(func(): switch_chat_tab("server"))
_setup_friend_suggest_ui()
func join_global_chat() -> void:
if _chat_channel != null:
if _chat_channel != null or _global_chat_loading:
return
_global_chat_loading = true
_refresh_chat_display()
var socket = NakamaManager.socket
if not socket or not socket.is_connected_to_host():
push_warning("[Chat] Socket not connected, skipping chat join.")
_global_chat_loading = false
_refresh_chat_display()
return
var result = await socket.join_chat_async(GLOBAL_CHAT_ROOM,
NakamaSocket.ChannelType.Room,
true, false)
if result.is_exception():
push_warning("[Chat] Failed to join global chat: " + result.get_exception().message)
_global_chat_loading = false
_refresh_chat_display()
return
_chat_channel = result
print("[Chat] Joined global channel: ", _chat_channel.id)
@@ -51,26 +68,28 @@ func join_global_chat() -> void:
if cfg_res.has("config"):
_chat_config = cfg_res["config"]
_chat_messages.clear()
var limit: int = _chat_config.get("max_messages", 50)
var history_entries: Array = []
var history_result = await NakamaManager.client.list_channel_messages_async(NakamaManager.session, _chat_channel.id, limit, false)
if not history_result.is_exception() and history_result.messages:
var msgs = history_result.messages.duplicate()
msgs.reverse()
for msg in msgs:
_add_chat_message(msg, false)
history_entries.append(_parse_chat_message(msg))
# Inject admin system prefix if configured
var prefix: String = _chat_config.get("prefix", "")
if not prefix.is_empty():
_chat_messages.insert(0, {
history_entries.insert(0, {
"sender": "SYSTEM",
"content": prefix,
"ts": _get_local_time(),
"date": Time.get_date_string_from_system()
})
_chat_messages = history_entries + _chat_messages
_trim_old_messages()
_global_chat_loading = false
_refresh_chat_display()
func _on_chat_message_received(message) -> void:
@@ -80,29 +99,32 @@ func _on_chat_message_received(message) -> void:
return
_add_chat_message(message, true)
func _add_chat_message(message, refresh_display: bool) -> void:
func _parse_chat_message(message) -> Dictionary:
var text: String = ""
var parsed = JSON.parse_string(message.content)
if typeof(parsed) == TYPE_DICTIONARY:
text = parsed.get("msg", message.content)
else:
text = message.content
var sender: String = message.username
if sender.is_empty() and message.sender_id:
sender = message.sender_id.substr(0, 8)
elif sender.is_empty():
sender = "Unknown"
var ts_str: String = _format_nakama_time(message.create_time)
_chat_messages.append({
return {
"sender": sender,
"content": text,
"ts": ts_str,
"date": message.create_time.substr(0, 10) if message.create_time else Time.get_date_string_from_system()
})
}
func _add_chat_message(message, refresh_display: bool) -> void:
_chat_messages.append(_parse_chat_message(message))
if refresh_display:
_trim_old_messages()
_refresh_chat_display()
@@ -209,16 +231,21 @@ func _open_dm_tab(user_id: String, username: String) -> void:
if not _dm_tabs.has(user_id):
_create_dm_tab(user_id, username)
_dm_messages[user_id] = []
_dm_loading[user_id] = true
switch_chat_tab(user_id)
var history = await FriendManager.get_dm_history(user_id)
var my_id = NakamaManager.session.user_id if NakamaManager.session else ""
var history_entries: Array = []
for entry in history:
var is_self = entry.get("from") == my_id
var sender_name = "You" if is_self else username
var ts = _format_nakama_time(entry.get("create_time", ""))
_dm_messages[user_id].append({"sender": sender_name, "content": entry.get("msg", ""), "ts": ts})
history_entries.append({"sender": sender_name, "content": entry.get("msg", ""), "ts": ts})
_dm_messages[user_id] = history_entries + _dm_messages[user_id]
_dm_loading[user_id] = false
if _active_chat_context == user_id:
_refresh_chat_display()
else:
@@ -256,16 +283,34 @@ func _close_dm_tab(user_id: String) -> void:
func switch_chat_tab(context_id: String) -> void:
_active_chat_context = context_id
_refresh_chat_display()
var tabs_container = lobby.get_node_or_null("%ChatTabsContainer")
if tabs_container:
var global_btn = lobby.get_node_or_null("%GlobalChatTabBtn")
if global_btn:
global_btn.modulate = Color(1.0, 1.0, 1.0) if context_id == "global" else Color(0.6, 0.6, 0.6)
for u_id in _dm_tabs:
var tab_hbox = _dm_tabs[u_id]
tab_hbox.modulate = Color(1.0, 1.0, 1.0) if context_id == u_id else Color(0.6, 0.6, 0.6)
var global_btn = lobby.get_node_or_null("%GlobalChatTabBtn")
if global_btn:
global_btn.button_pressed = (context_id == "global")
var server_btn = lobby.get_node_or_null("%ServerChatTabBtn")
if server_btn:
server_btn.button_pressed = (context_id == "server")
for u_id in _dm_tabs:
var tab_hbox = _dm_tabs[u_id]
var dm_btn = tab_hbox.get_node_or_null("DMTabBtn")
if dm_btn:
dm_btn.button_pressed = (context_id == u_id)
if lobby.chat_input:
lobby.chat_input.placeholder_text = "Send to %s..." % _get_context_display_name(context_id)
func _get_context_display_name(context_id: String) -> String:
if context_id == "global":
return "World"
if context_id == "server":
return "Server"
if _dm_tabs.has(context_id):
var btn = _dm_tabs[context_id].get_node_or_null("DMTabBtn")
if btn:
return btn.text
return "Chat"
func _setup_friend_suggest_ui() -> void:
lobby._friend_suggest_panel = lobby.get_node_or_null("%FriendSuggestPanel")
@@ -331,12 +376,15 @@ func _refresh_chat_display() -> void:
messages_to_show = []
for msg in messages_to_show:
var ts: String = msg.get("ts", "")
var sender: String = msg.get("sender", "?")
var text: String = msg.get("content", "")
lobby.chat_display.append_text("[color=#888888][%s][/color] [b]%s:[/b] %s\n" % [ts, sender, text])
lobby.chat_display.append_text("[b]%s[/b]\n[color=#c7d3e0]%s[/color]\n\n" % [sender, text])
var is_loading: bool = _global_chat_loading if _active_chat_context == "global" else _dm_loading.get(_active_chat_context, false)
if is_loading:
lobby.chat_display.append_text("[i][color=#8a97a8]Loading messages...[/color][/i]\n")
if lobby.chat_display:
var scrollbar = lobby.chat_display.get_v_scroll_bar()
if scrollbar:
+1 -2
View File
@@ -153,8 +153,7 @@ func _on_room_joined(room_data: Dictionary) -> void:
_on_enable_cycle_timer_changed(LobbyManager.enable_cycle_timer)
_on_scarcity_mode_changed(LobbyManager.scarcity_mode)
_on_sng_update()
_on_doors_update()
if lobby.area_left_btn: lobby.area_left_btn.disabled = not is_host
if lobby.area_right_btn: lobby.area_right_btn.disabled = not is_host
if lobby.area_name_label: lobby.area_name_label.text = LobbyManager.get_selected_area()
+25
View File
@@ -0,0 +1,25 @@
extends Panel
signal period_changed(period: String)
@onready var _daily_btn: Button = %DailyTabBtn
@onready var _weekly_btn: Button = %WeeklyTabBtn
@onready var _monthly_btn: Button = %MonthlyTabBtn
var _active := "daily"
func _ready() -> void:
_daily_btn.pressed.connect(_select.bind("daily"))
_weekly_btn.pressed.connect(_select.bind("weekly"))
_monthly_btn.pressed.connect(_select.bind("monthly"))
func _select(period: String) -> void:
if period == _active:
return
_active = period
_daily_btn.button_pressed = (period == "daily")
_weekly_btn.button_pressed = (period == "weekly")
_monthly_btn.button_pressed = (period == "monthly")
period_changed.emit(period)
+1
View File
@@ -0,0 +1 @@
uid://cas5sc40ampq1
+2 -10
View File
@@ -79,7 +79,6 @@ func _ready():
return
# Initialize strategic planner
var BotStrategicPlanner = load("res://scripts/bot_strategic_planner.gd")
strategic_planner = BotStrategicPlanner.new(actor, enhanced_gridmap)
# Disable input processing for bots
@@ -211,7 +210,7 @@ func _run_ai_tick():
return
# Priority 0.5: Gauntlet (#075) — use Ghost powerup if boxed in
if await _try_activate_ghost():
if _try_activate_ghost():
print("[BotController] Action Taken: Ghost (trapped)")
return
@@ -677,8 +676,6 @@ func _try_move() -> bool:
else:
print("[BotController] %s simple_move_to BLOCKED (others). Trying unstuck move." % actor.name)
return await _try_unstuck_move()
return false
func _should_freeze_for_stop_n_go() -> bool:
"""Check if the bot should intentionally skip its turn during STOP phase outside of safe zones."""
@@ -909,12 +906,7 @@ func _handle_goal_completion():
if goals_cycle_manager:
var time_remaining = goals_cycle_manager.get_time_remaining()
goals_cycle_manager.on_goal_completed(actor, time_remaining)
var powerup_manager = actor.get_node_or_null("PowerUpManager")
# if powerup_manager:
# powerup_manager.add_goal_completion_reward()
print("[BotController] %s COMPLETED GOAL!" % actor.name)
func _wait_with_variance(base_delay: float):
+25 -32
View File
@@ -204,9 +204,7 @@ func get_unneeded_tile_slot() -> int:
"""Find a slot containing a tile that is not needed for the goal."""
if not actor or actor.playerboard.size() == 0:
return -1
var needed_tiles = get_tiles_needed()
# Check center 3x3 for misplaced tiles
for i in range(3):
for j in range(3):
@@ -252,7 +250,6 @@ func get_unneeded_tile_slot() -> int:
var center_indices = [6, 7, 8, 11, 12, 13, 16, 17, 18]
for i in range(actor.playerboard.size()):
if not i in center_indices and actor.playerboard[i] != -1:
var item = actor.playerboard[i]
# Only keep if we strictly need it and can't find it easily?
# Actually, generally dump outer ring tiles to keep board clean
# unless we are about to move it to a valid spot.
@@ -263,8 +260,6 @@ func get_unneeded_tile_slot() -> int:
return -1
return -1
func get_unneeded_tile_slot_panic() -> int:
"""Aggressively find ANY tile that doesn't match a goal perfectly."""
if not actor or actor.playerboard.size() == 0:
@@ -439,33 +434,31 @@ func find_optimal_move_target() -> Vector2i:
var time_left = gc_manager.get_global_time_remaining() if gc_manager else 999.0
var is_match_running = gc_manager.is_match_running() if gc_manager else false
var is_late_game = is_sng and is_match_running and time_left > 0.0 and time_left <= 30.0
# 1. STOP N GO: Reach the finish line if goals are complete
if is_sng and main:
var sng_manager = main.get_node_or_null("StopNGoManager")
if sng_manager and sng_manager.is_mission_complete(actor.name.to_int()):
# MISSION COMPLETE: We CAN finish, but should we?
if not is_late_game:
# CHAOS MODE: Allow falling through to target holo tiles, but we'll limit the target X later
# print("[BotStrategicPlanner] %s mission complete (Chaos Phase %.1fs). Roaming field." % [actor.name, time_left])
pass
else:
# Late game: go to finish
var finish_target = Vector2i(21, actor.current_position.y)
# Ensure finish_target is walkable
if not _is_valid_move_target(finish_target):
for dy in [1, -1, 2, -2]:
var alt = Vector2i(21, actor.current_position.y + dy)
if _is_valid_move_target(alt):
finish_target = alt
break
print("[BotStrategicPlanner] %s mission complete (Late Game %.1fs)! Heading to finish: %s" % [actor.name, time_left, finish_target])
return finish_target
var sng_manager = main.get_node_or_null("StopNGoManager") if main else null
# 1. STOP N GO: Reach the finish line if goals are complete
if is_sng and sng_manager and sng_manager.is_mission_complete(actor.name.to_int()):
# MISSION COMPLETE: We CAN finish, but should we?
if not is_late_game:
# CHAOS MODE: Allow falling through to target holo tiles, but we'll limit the target X later
# print("[BotStrategicPlanner] %s mission complete (Chaos Phase %.1fs). Roaming field." % [actor.name, time_left])
pass
else:
# Late game: go to finish
var finish_target = Vector2i(21, actor.current_position.y)
# Ensure finish_target is walkable
if not _is_valid_move_target(finish_target):
for dy in [1, -1, 2, -2]:
var alt = Vector2i(21, actor.current_position.y + dy)
if _is_valid_move_target(alt):
finish_target = alt
break
print("[BotStrategicPlanner] %s mission complete (Late Game %.1fs)! Heading to finish: %s" % [actor.name, time_left, finish_target])
return finish_target
var is_mission_complete = sng_manager.is_mission_complete(actor.name.to_int()) if sng_manager else false
var needed_tiles = get_tiles_needed()
+4 -4
View File
@@ -69,9 +69,9 @@ func generate_guest_name() -> String:
_used_guest_names.append(fallback)
return fallback
func release_guest_name(name: String) -> void:
func release_guest_name(guest_name: String) -> void:
"""Call when a guest disconnects to free up their name for reuse."""
_used_guest_names.erase(name)
_used_guest_names.erase(guest_name)
# -----------------------------------------------------------------------
# Bot name generation
@@ -98,9 +98,9 @@ func generate_bot_name() -> String:
_used_bot_names.append(candidate)
return candidate
func release_bot_name(name: String) -> void:
func release_bot_name(bot_name: String) -> void:
"""Call when a bot slot is removed to free up its name."""
_used_bot_names.erase(name)
_used_bot_names.erase(bot_name)
func reset_all() -> void:
"""Reset both pools — useful on returning to main menu."""
+5 -5
View File
@@ -173,15 +173,15 @@ func send_lobby_invite(to_user_id: String, match_id: String) -> void:
if result.get("success", false) == false:
push_warning("[FriendManager] send_lobby_invite failed: " + str(result.get("error", "")))
func _on_notification_received(notification) -> void:
print("[FriendManager] _on_notification_received: code=%d sender=%s" % [notification.code, notification.sender_id])
match notification.code:
func _on_notification_received(notif) -> void:
print("[FriendManager] _on_notification_received: code=%d sender=%s" % [notif.code, notif.sender_id])
match notif.code:
NOTIF_LOBBY_INVITE:
var content = JSON.parse_string(notification.content)
var content = JSON.parse_string(notif.content)
if content:
var from_name: String = content.get("from_name", "Someone")
var match_id: String = content.get("match_id", "")
emit_signal("lobby_invite_received", notification.sender_id, from_name, match_id)
emit_signal("lobby_invite_received", notif.sender_id, from_name, match_id)
NOTIF_FRIEND_REQUEST:
# Refresh friends list so the incoming request appears immediately
print("[FriendManager] friend request notification received, reloading friends...")
-5
View File
@@ -32,11 +32,6 @@ func pull(banner_id: String, count: int) -> Array:
push_error("[GachaManager] Not authenticated")
return []
var payload = JSON.stringify({
"banner_id": banner_id,
"count": count
})
var result = await BackendService.perform_gacha_pull(banner_id, count)
if result.get("success", false) == false:
+1 -3
View File
@@ -44,7 +44,7 @@ func initialize(main: Node):
if LobbyManager:
LobbyManager.enable_cycle_timer_changed.connect(_on_enable_cycle_timer_changed)
func _on_enable_cycle_timer_changed(enabled: bool):
func _on_enable_cycle_timer_changed(_enabled: bool):
# If disabled mid-cycle, the timer will just freeze in _process
# If enabled mid-cycle, it will resume
pass
@@ -69,9 +69,7 @@ func _process(delta):
return
# Skip countdown if timer is disabled
var lobby_manager = get_tree().get_root().get_node_or_null("Main/LobbyManager")
# Note: LobbyManager is an Autoload, so we can access it directly via 'LobbyManager'
if LobbyManager and not LobbyManager.get_enable_cycle_timer():
# If timer is disabled, we just don't decrement.
# But we still keep is_cycle_active = true so the phase is "active" (allowing actions)
+1 -4
View File
@@ -2,15 +2,12 @@ extends Node
# PlayerManager - Handles player and bot lifecycle management
signal player_added(peer_id, player_node)
signal player_removed(peer_id)
signal bot_created(bot_id, bot_node)
signal bot_removed(bot_id)
var player_scene = preload("res://scenes/player.tscn")
var connected_peer_ids = []
func add_player_character(peer_id: int, position: Vector2i = Vector2i.ZERO) -> Node:
func add_player_character(peer_id: int, _position: Vector2i = Vector2i.ZERO) -> Node:
var player_character = player_scene.instantiate()
player_character.set_multiplayer_authority(peer_id)
player_character.name = str(peer_id)
-5
View File
@@ -282,11 +282,6 @@ func list_matches_async(mode_filter: String = "") -> Array:
# Batch-read room metadata from Nakama storage
var meta_map: Dictionary = {} # match_id -> {host_name, game_mode, ...}
if read_ids.size() > 0:
var storage_reads: Array = []
for mid in read_ids:
# We don't know the owner_id, so list objects by collection+key
# Use list_storage_objects per match or batch read
pass
# Read all match metas from our own storage (other users' objects are public read)
for mid in read_ids:
var list_result = await client.list_storage_objects_async(session, "match_meta", "", 100)
+2 -2
View File
@@ -87,13 +87,13 @@ func get_steamworks_manager() -> Node:
return steamworks_manager
## Unified RPC with Retry and Error Mapping
func api_rpc_async(rpc_id: String, payload: String = "{}") -> Dictionary:
func api_rpc_async(p_rpc_id: String, payload: String = "{}") -> Dictionary:
if not nakama_backend or not nakama_backend.client or not nakama_backend.session:
return { "success": false, "error": ErrorCode.UNAUTHORIZED, "message": "Not authenticated" }
var retries := 0
while retries <= MAX_RETRIES:
var result = await nakama_backend.client.rpc_async(nakama_backend.session, rpc_id, payload)
var result = await nakama_backend.client.rpc_async(nakama_backend.session, p_rpc_id, payload)
# NakamaAPI.ApiRpc has is_exception()
if result.is_exception():
+1 -1
View File
@@ -95,7 +95,7 @@ func _on_update_pressed() -> void:
status_label.text = "Downloading update..."
update_manager.download_update()
func _on_download_started(total_size: int) -> void:
func _on_download_started(_total_size: int) -> void:
progress_bar.visible = true
progress_label.visible = true
progress_bar.value = 0
+20
View File
@@ -0,0 +1,20 @@
shader_type canvas_item;
// Masukkan ukuran Size panel Anda di Inspector (X dan Y)
uniform vec2 panel_size = vec2(550.0, 64.0);
// Atur radius kelengkungan dalam satuan pixel (misal: 12.0 atau 16.0)
uniform float corner_radius : hint_range(0.0, 100.0) = 8.0;
void fragment() {
vec2 center = panel_size * 0.5;
vec2 half_size = panel_size * 0.5 - vec2(corner_radius);
vec2 p = UV * panel_size - center;
vec2 d = abs(p) - half_size;
float dist = length(max(d, 0.0)) + min(max(d.x, d.y), 0.0) - corner_radius;
// Mengambil warna asli dari GradientTexture2D Anda
vec4 tex_color = texture(TEXTURE, UV);
float alpha_mask = 1.0 - step(0.0, dist);
COLOR = vec4(tex_color.rgb, tex_color.a * alpha_mask);
}
+1
View File
@@ -0,0 +1 @@
uid://bx46eyi72i6ak
+2 -2
View File
@@ -4,7 +4,7 @@
[Back to Home](./Home)
Complete per-function reference for the Godot 4.7 client codebase. Every script, signal, autoload dependency, and cross-file relationship documented.
Complete per-function reference for the Godot 4.6.3 client codebase. Every script, signal, autoload dependency, and cross-file relationship documented.
[Back to top](#top)
@@ -93,7 +93,7 @@ Complete per-function reference for the Godot 4.7 client codebase. Every script,
```
/home/dev/tekton/
project.godot -- Godot 4.7 project file
project.godot -- Godot 4.6.3 project file
scripts/
main.gd -- (NOT USED; logic lives in scenes/main.gd)
nakama_manager.gd -- Nakama network layer (autoload)
+2 -2
View File
@@ -90,7 +90,7 @@ curl -X POST "http://52.74.133.55:3000/api/v1/repos/danchie/tekton/actions/workf
### What the CI does (deploy_patch.yml)
1. **Checkout**`git clone --depth 1` from `experimental` branch (shallow = fast).
2. **Setup Godot** — Uses cached `/cache/godot_4.7` binary. Downloads only if missing (140MB, cached forever).
2. **Setup Godot** — Uses cached `/cache/godot_4.6.3` binary. Downloads only if missing (140MB, cached forever).
3. **Generate version.json** — Runs `tools/generate_version_json.py --skip-changelog`. Reads version from `project.godot`, bumps patch number, writes `assets/data/version.json` with the new release entry including `pck_url` pointing to Gitea raw endpoint.
4. **Export patch PCK**`godot --headless --export-pack "Windows Desktop" build/patch.pck`. No export templates needed — `--export-pack` only packs resources, not binaries. Output ~10-15MB.
5. **Push to patches branch** — Force-pushes `patch.pck` + `version.json` to the `patches` branch of the repo.
@@ -249,7 +249,7 @@ Root cause: `ubuntu-latest` container doesn't have `zip` pre-installed. The inst
### Godot export fails silently (`|| true`)
The `|| true` on export commands means a failed Godot export still shows step as success. Check:
- Is `godot_4.7` cached at `/cache/`?
- Is `godot_4.6.3` cached at `/cache/`?
- Does the export preset name match exactly? E.g. `"Windows Desktop"` must match `export_presets.cfg`.
- Is `addons/godotsteam/libgodotsteam*` present? Missing DLLs cause Godot to exit 1.