feat: add GUI enhancement for Leaderboard, and Timer

This commit is contained in:
2026-03-26 02:57:04 +08:00
parent c46e28a69d
commit 66f54e34ab
27 changed files with 779 additions and 224 deletions
@@ -14,7 +14,7 @@
[ext_resource type="Texture2D" uid="uid://dpkx1a780pvwv" path="res://assets/textures/tile_diamond.png" id="10_sx8rm"] [ext_resource type="Texture2D" uid="uid://dpkx1a780pvwv" path="res://assets/textures/tile_diamond.png" id="10_sx8rm"]
[ext_resource type="BoxMesh" uid="uid://fy4bhoeii40c" path="res://addons/enhanced_gridmap/meshlibrary/tile_safe_zone.tres" id="10_uwjsj"] [ext_resource type="BoxMesh" uid="uid://fy4bhoeii40c" path="res://addons/enhanced_gridmap/meshlibrary/tile_safe_zone.tres" id="10_uwjsj"]
[ext_resource type="BoxMesh" uid="uid://b5cc3prem52r6" path="res://addons/enhanced_gridmap/meshlibrary/tile_freeze.tres" id="11_pgnbl"] [ext_resource type="BoxMesh" uid="uid://b5cc3prem52r6" path="res://addons/enhanced_gridmap/meshlibrary/tile_freeze.tres" id="11_pgnbl"]
[ext_resource type="BoxMesh" uid="uid://dcjdwbffgtutt" path="res://addons/enhanced_gridmap/meshlibrary/tile_non_walkable.tres" id="11_uwjsj"] [ext_resource type="BoxMesh" path="res://addons/enhanced_gridmap/meshlibrary/tile_non_walkable.tres" id="11_uwjsj"]
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_5d0gc"] [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_5d0gc"]
load_path = "res://.godot/imported/tile_heart.png-deeef50755ca225f028608dfd16900e6.s3tc.ctex" load_path = "res://.godot/imported/tile_heart.png-deeef50755ca225f028608dfd16900e6.s3tc.ctex"
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4xpg3j7p7g33"
path="res://.godot/imported/timer.png-0c491719db408b4863803dfb0360b749.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/global_match_timer/timer.png"
dest_files=["res://.godot/imported/timer.png-0c491719db408b4863803dfb0360b749.ctex"]
[params]
compress/mode=4
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: 13 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cp0nlmkii1ewp"
path="res://.godot/imported/1st.png-1c963205aee52de3d519c7ad81264061.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/rankings/1st.png"
dest_files=["res://.godot/imported/1st.png-1c963205aee52de3d519c7ad81264061.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: 8.8 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ikek8mcpeob5"
path="res://.godot/imported/2nd.png-f4d74f3e0f79b64b581447bcf54a3ee4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/rankings/2nd.png"
dest_files=["res://.godot/imported/2nd.png-f4d74f3e0f79b64b581447bcf54a3ee4.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: 9.6 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://f5mgglfrifjd"
path="res://.godot/imported/3rd.png-3cb9417b465e45d108dc5bb387e9572c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/rankings/3rd.png"
dest_files=["res://.godot/imported/3rd.png-3cb9417b465e45d108dc5bb387e9572c.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.6 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://l2f7pdckhkiq"
path="res://.godot/imported/4th.png-cf725336a34d807bb6fe770d072d01c9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/rankings/4th.png"
dest_files=["res://.godot/imported/4th.png-cf725336a34d807bb6fe770d072d01c9.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: 4.3 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bafocgx2apwjm"
path="res://.godot/imported/Segment0_empty.png-02d1282f68628d7399e2022a7cdcf57b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/stop_timer/Segment0_empty.png"
dest_files=["res://.godot/imported/Segment0_empty.png-02d1282f68628d7399e2022a7cdcf57b.ctex"]
[params]
compress/mode=4
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: 4.6 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://df7pe5qch1mgo"
path="res://.godot/imported/Segment0_filled.png-d73cab52ae2afc2297535c50215cb02a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/stop_timer/Segment0_filled.png"
dest_files=["res://.godot/imported/Segment0_filled.png-d73cab52ae2afc2297535c50215cb02a.ctex"]
[params]
compress/mode=4
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: 3.7 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbgdkky8ballo"
path="res://.godot/imported/Segment1_empty.png-8615d42cb87c232b8d0f8da85c54fbd3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/stop_timer/Segment1_empty.png"
dest_files=["res://.godot/imported/Segment1_empty.png-8615d42cb87c232b8d0f8da85c54fbd3.ctex"]
[params]
compress/mode=4
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: 3.9 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl41oty01h8bj"
path="res://.godot/imported/Segment1_filled.png-eb120a80201fda74a35fe70fe663332b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/stop_timer/Segment1_filled.png"
dest_files=["res://.godot/imported/Segment1_filled.png-eb120a80201fda74a35fe70fe663332b.ctex"]
[params]
compress/mode=4
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: 23 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://crd21ry2k8cn2"
path="res://.godot/imported/Segment2_empty.png-f79ca3df2aaef2d38d4dcdea7d2ffadf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/stop_timer/Segment2_empty.png"
dest_files=["res://.godot/imported/Segment2_empty.png-f79ca3df2aaef2d38d4dcdea7d2ffadf.ctex"]
[params]
compress/mode=4
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: 24 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://umdyt5xdplay"
path="res://.godot/imported/Segment2_filled.png-16ee171552cb4f4d72548f53a9479c19.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/gui/stop_timer/Segment2_filled.png"
dest_files=["res://.godot/imported/Segment2_filled.png-16ee171552cb4f4d72548f53a9479c19.ctex"]
[params]
compress/mode=4
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
+2 -2
View File
@@ -456,7 +456,7 @@ func _setup_global_match_timer_ui():
# Label # Label
var label = Label.new() var label = Label.new()
label.name = "TimerLabel" label.name = "TimerLabel"
label.text = "3:00" label.text = "03:00"
label.add_theme_font_size_override("font_size", 28) label.add_theme_font_size_override("font_size", 28)
label.add_theme_color_override("font_color", Color(0.647, 0.996, 0.224)) label.add_theme_color_override("font_color", Color(0.647, 0.996, 0.224))
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
@@ -1927,7 +1927,7 @@ func _on_global_timer_updated(time_remaining: float):
if timer_label: if timer_label:
var minutes = int(time_remaining) / 60 var minutes = int(time_remaining) / 60
var seconds = int(time_remaining) % 60 var seconds = int(time_remaining) % 60
timer_label.text = "%d:%02d" % [minutes, seconds] timer_label.text = "%02d:%02d" % [minutes, seconds]
# Trigger countdown animations (30s and 15s) # Trigger countdown animations (30s and 15s)
if int(time_remaining) == 30 and int(time_remaining + 0.1) > 30: if int(time_remaining) == 30 and int(time_remaining + 0.1) > 30:
+310 -173
View File
@@ -14,15 +14,23 @@
[ext_resource type="Texture2D" uid="uid://68x88jj25yxg" path="res://assets/textures/Adjacent.png" id="9_6gcb6"] [ext_resource type="Texture2D" uid="uid://68x88jj25yxg" path="res://assets/textures/Adjacent.png" id="9_6gcb6"]
[ext_resource type="Texture2D" uid="uid://dasaeaytvhll0" path="res://assets/models/pboard/AdjacentRect.tres" id="9_aspsw"] [ext_resource type="Texture2D" uid="uid://dasaeaytvhll0" path="res://assets/models/pboard/AdjacentRect.tres" id="9_aspsw"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="13_j8jky"] [ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="13_j8jky"]
[ext_resource type="Texture2D" uid="uid://bafocgx2apwjm" path="res://assets/graphics/gui/stop_timer/Segment0_empty.png" id="14_fv21b"]
[ext_resource type="Texture2D" uid="uid://c4xpg3j7p7g33" path="res://assets/graphics/gui/global_match_timer/timer.png" id="14_tel4y"]
[ext_resource type="Texture2D" uid="uid://73ayhl1lqdpt" path="res://assets/graphics/gui/gauge/PowerLabel.png" id="14_vxglm"] [ext_resource type="Texture2D" uid="uid://73ayhl1lqdpt" path="res://assets/graphics/gui/gauge/PowerLabel.png" id="14_vxglm"]
[ext_resource type="Texture2D" uid="uid://dcoaeof23pt3c" path="res://assets/graphics/gui/gauge/Segment0_empty.png" id="15_2f3dj"] [ext_resource type="Texture2D" uid="uid://dcoaeof23pt3c" path="res://assets/graphics/gui/gauge/Segment0_empty.png" id="15_2f3dj"]
[ext_resource type="Texture2D" uid="uid://cbgdkky8ballo" path="res://assets/graphics/gui/stop_timer/Segment1_empty.png" id="15_tel4y"]
[ext_resource type="Texture2D" uid="uid://crd21ry2k8cn2" path="res://assets/graphics/gui/stop_timer/Segment2_empty.png" id="16_qkpxi"]
[ext_resource type="Texture2D" uid="uid://ctgxeo2i3vcfq" path="res://assets/graphics/gui/gauge/Segment1_empty.png" id="16_yq6so"] [ext_resource type="Texture2D" uid="uid://ctgxeo2i3vcfq" path="res://assets/graphics/gui/gauge/Segment1_empty.png" id="16_yq6so"]
[ext_resource type="Texture2D" uid="uid://djbin5556lwsx" path="res://assets/graphics/gui/gauge/Segment2_empty.png" id="17_fv21b"] [ext_resource type="Texture2D" uid="uid://djbin5556lwsx" path="res://assets/graphics/gui/gauge/Segment2_empty.png" id="17_fv21b"]
[ext_resource type="Theme" uid="uid://0dhxl4ohyxh8" path="res://assets/graphics/game_setting/setting_theme.tres" id="18_pm3ni"] [ext_resource type="Theme" uid="uid://0dhxl4ohyxh8" path="res://assets/graphics/game_setting/setting_theme.tres" id="18_pm3ni"]
[ext_resource type="Texture2D" uid="uid://ba80xnybpixw2" path="res://assets/graphics/touch_control/take_tile.png" id="25_qkpxi"] [ext_resource type="Texture2D" uid="uid://ba80xnybpixw2" path="res://assets/graphics/touch_control/take_tile.png" id="25_qkpxi"]
[ext_resource type="Texture2D" uid="uid://bsgqrjx2ity4c" path="res://assets/graphics/touch_control/speed.png" id="26_2f3dj"] [ext_resource type="Texture2D" uid="uid://bsgqrjx2ity4c" path="res://assets/graphics/touch_control/speed.png" id="26_2f3dj"]
[ext_resource type="Texture2D" uid="uid://pwxo4lb87yi" path="res://assets/graphics/touch_control/put_tile.png" id="26_5q0nq"] [ext_resource type="Texture2D" uid="uid://pwxo4lb87yi" path="res://assets/graphics/touch_control/put_tile.png" id="26_5q0nq"]
[ext_resource type="Texture2D" uid="uid://cp0nlmkii1ewp" path="res://assets/graphics/gui/rankings/1st.png" id="26_j8jky"]
[ext_resource type="Texture2D" uid="uid://umw3e8nfe3vr" path="res://assets/graphics/touch_control/attack_mode.png" id="27_dgi5k"] [ext_resource type="Texture2D" uid="uid://umw3e8nfe3vr" path="res://assets/graphics/touch_control/attack_mode.png" id="27_dgi5k"]
[ext_resource type="Texture2D" uid="uid://cfpxknbdsk4u" path="res://assets/graphics/character_selection/sc_characters/sc_unknown.png" id="27_j8jky"]
[ext_resource type="Texture2D" uid="uid://ikek8mcpeob5" path="res://assets/graphics/gui/rankings/2nd.png" id="28_fuf3a"]
[ext_resource type="Texture2D" uid="uid://f5mgglfrifjd" path="res://assets/graphics/gui/rankings/3rd.png" id="29_pibwh"]
[ext_resource type="Texture2D" uid="uid://biun2yvglxgij" path="res://assets/graphics/touch_control/grab_tekton.png" id="36_pibwh"] [ext_resource type="Texture2D" uid="uid://biun2yvglxgij" path="res://assets/graphics/touch_control/grab_tekton.png" id="36_pibwh"]
[ext_resource type="Script" uid="uid://86ikh0wuqk7v" path="res://scripts/ui/powerup_inventory_ui.gd" id="powerup_ui_script"] [ext_resource type="Script" uid="uid://86ikh0wuqk7v" path="res://scripts/ui/powerup_inventory_ui.gd" id="powerup_ui_script"]
[ext_resource type="Script" uid="uid://b54tfa0n6kogi" path="res://scripts/managers/touch_controls.gd" id="touch_manager"] [ext_resource type="Script" uid="uid://b54tfa0n6kogi" path="res://scripts/managers/touch_controls.gd" id="touch_manager"]
@@ -51,6 +59,21 @@ corner_radius_top_right = 8
corner_radius_bottom_right = 8 corner_radius_bottom_right = 8
corner_radius_bottom_left = 8 corner_radius_bottom_left = 8
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_c6pm6"]
content_margin_bottom = 20.0
texture = ExtResource("14_tel4y")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5q0nq"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_kmb1v"]
texture = ExtResource("14_fv21b")
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_fuf3a"]
texture = ExtResource("15_tel4y")
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_pibwh"]
texture = ExtResource("16_qkpxi")
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tel4y"] [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tel4y"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_qkpxi"] [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_qkpxi"]
@@ -67,22 +90,30 @@ texture = ExtResource("17_fv21b")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1cewu"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1cewu"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kmb1v"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_c6pm6"]
content_margin_left = 16.0
content_margin_top = 16.0 [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_5he1u"]
content_margin_right = 16.0 content_margin_left = 33.0
content_margin_bottom = 16.0 content_margin_bottom = 20.0
bg_color = Color(0, 0, 0, 0.49803922) texture = ExtResource("26_j8jky")
border_width_left = 2
border_width_top = 2 [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_5poiv"]
border_width_right = 2 content_margin_left = 33.0
border_width_bottom = 2 content_margin_bottom = 20.0
border_color = Color(0.992, 0.796, 0.047, 1) texture = ExtResource("28_fuf3a")
corner_radius_top_left = 36
corner_radius_top_right = 36 [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_2cjbq"]
corner_radius_bottom_right = 36 content_margin_left = 33.0
corner_radius_bottom_left = 36 content_margin_bottom = 20.0
corner_detail = 12 texture = ExtResource("29_pibwh")
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_chjal"]
load_path = "res://.godot/imported/4th.png-cf725336a34d807bb6fe770d072d01c9.ctex"
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_cjqg0"]
content_margin_left = 33.0
content_margin_bottom = 20.0
texture = SubResource("CompressedTexture2D_chjal")
[node name="Main" type="Node3D" unique_id=1566673391] [node name="Main" type="Node3D" unique_id=1566673391]
script = ExtResource("1_xcpe3") script = ExtResource("1_xcpe3")
@@ -1065,32 +1096,61 @@ theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
text = "X0" text = "X0"
[node name="GlobalMatchTimer" type="PanelContainer" parent="." unique_id=1714357974]
custom_minimum_size = Vector2(372, 162)
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -111.0
offset_top = 16.0
offset_right = 261.0
offset_bottom = 178.0
grow_horizontal = 2
scale = Vector2(0.60000014, 0.60000014)
theme_override_styles/panel = SubResource("StyleBoxTexture_c6pm6")
[node name="VBox" type="VBoxContainer" parent="GlobalMatchTimer" unique_id=24429117]
layout_mode = 2
alignment = 1
[node name="TimerLabel" type="Label" parent="GlobalMatchTimer/VBox" unique_id=689385799]
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 72
text = "03:00"
horizontal_alignment = 1
[node name="StopTimer" type="PanelContainer" parent="." unique_id=991540081] [node name="StopTimer" type="PanelContainer" parent="." unique_id=991540081]
visible = false visible = false
anchors_preset = 5 anchors_preset = 5
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = -58.0 offset_left = -79.0
offset_top = 80.0 offset_top = 61.0
offset_right = 58.0 offset_right = 307.0
offset_bottom = 113.00012 offset_bottom = 196.0
grow_horizontal = 2 grow_horizontal = 2
scale = Vector2(0.56167674, 0.56167674)
theme_override_styles/panel = SubResource("StyleBoxEmpty_5q0nq")
[node name="HBox" type="HBoxContainer" parent="StopTimer" unique_id=1541315617] [node name="HBox" type="HBoxContainer" parent="StopTimer" unique_id=1541315617]
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 4 theme_override_constants/separation = 0
[node name="Segment0" type="Panel" parent="StopTimer/HBox" unique_id=307582302] [node name="Segment0" type="Panel" parent="StopTimer/HBox" unique_id=307582302]
custom_minimum_size = Vector2(36, 20) custom_minimum_size = Vector2(96, 135)
layout_mode = 2 layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_kmb1v")
[node name="Segment1" type="Panel" parent="StopTimer/HBox" unique_id=615805583] [node name="Segment1" type="Panel" parent="StopTimer/HBox" unique_id=615805583]
custom_minimum_size = Vector2(36, 20) custom_minimum_size = Vector2(83, 135)
layout_mode = 2 layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_fuf3a")
[node name="Segment2" type="Panel" parent="StopTimer/HBox" unique_id=1041800993] [node name="Segment2" type="Panel" parent="StopTimer/HBox" unique_id=1041800993]
custom_minimum_size = Vector2(36, 20) custom_minimum_size = Vector2(207, 135)
layout_mode = 2 layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_pibwh")
[node name="PowerUpBar" type="PanelContainer" parent="." unique_id=1775378146] [node name="PowerUpBar" type="PanelContainer" parent="." unique_id=1775378146]
anchors_preset = 4 anchors_preset = 4
@@ -1214,19 +1274,23 @@ icon_alignment = 1
expand_icon = true expand_icon = true
[node name="LeaderboardPanel" type="PanelContainer" parent="." unique_id=364209533] [node name="LeaderboardPanel" type="PanelContainer" parent="." unique_id=364209533]
clip_contents = true
anchors_preset = 1 anchors_preset = 1
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
offset_left = -273.64343 offset_left = -229.0
offset_top = 84.58379 offset_top = 95.0
offset_right = -26.733765 offset_right = 231.0
offset_bottom = 253.5838 offset_bottom = 610.0
grow_horizontal = 0 grow_horizontal = 0
rotation = 0.10297442 rotation = 0.10297442
scale = Vector2(0.5, 0.5)
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_c6pm6")
[node name="MarginContainer" type="MarginContainer" parent="LeaderboardPanel" unique_id=1736331167] [node name="MarginContainer" type="MarginContainer" parent="LeaderboardPanel" unique_id=1736331167]
clip_contents = true
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_left = 10 theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10 theme_override_constants/margin_top = 10
@@ -1234,10 +1298,12 @@ theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10 theme_override_constants/margin_bottom = 10
[node name="VBox" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer" unique_id=635878805] [node name="VBox" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer" unique_id=635878805]
clip_contents = true
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 4 theme_override_constants/separation = 5
[node name="Title" type="Label" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1810699363] [node name="Title" type="Label" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1810699363]
visible = false
layout_mode = 2 layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
@@ -1245,277 +1311,337 @@ text = "🏆 LEADERBOARD"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="Separator" type="HSeparator" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1615297005] [node name="Separator" type="HSeparator" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1615297005]
visible = false
layout_mode = 2 layout_mode = 2
[node name="Entry1" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1372346601] [node name="Entry1" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1372346601]
custom_minimum_size = Vector2(440, 86)
layout_mode = 2 layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_5he1u")
[node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1" unique_id=617135879] [node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1" unique_id=617135879]
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=828754165] [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=828754165]
custom_minimum_size = Vector2(50, 0) custom_minimum_size = Vector2(70, 0)
layout_mode = 2 layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 7
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 36
text = "1st" text = "1st"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=1512406425] [node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=1512406425]
custom_minimum_size = Vector2(24, 24) custom_minimum_size = Vector2(100, 100)
layout_mode = 2 layout_mode = 2
texture = ExtResource("27_j8jky")
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=777741978] [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=1068203836]
custom_minimum_size = Vector2(100, 0) layout_mode = 2
theme_override_constants/separation = 22
alignment = 1
[node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer" unique_id=1497811185]
layout_mode = 2
theme_override_constants/separation = 0
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionA" unique_id=777741978]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2 layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "Player 1" text = "Player 1"
vertical_alignment = 1
clip_text = true clip_text = true
[node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=143108099] [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionA" unique_id=143108099]
modulate = Color(1, 1, 1, 0) modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(16, 16) custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=163441394] [node name="SectionB" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer" unique_id=1394489174]
clip_contents = true
layout_mode = 2
alignment = 1
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionB" unique_id=163441394]
custom_minimum_size = Vector2(120, 0)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "0" text = "0"
horizontal_alignment = 2
[node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=1277323584] [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionB" unique_id=1277323584]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
theme_override_constants/separation = 6
[node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=797392101]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=789099266]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=1018238656]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Entry2" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1047425879]
custom_minimum_size = Vector2(440, 86)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_5poiv")
[node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2" unique_id=1942870621]
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 2 theme_override_constants/separation = 2
alignment = 1
[node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/MiniPowerUpBar" unique_id=797392101] [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=1946714047]
custom_minimum_size = Vector2(12, 12) custom_minimum_size = Vector2(70, 0)
layout_mode = 2
[node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/MiniPowerUpBar" unique_id=789099266]
custom_minimum_size = Vector2(12, 12)
layout_mode = 2
[node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/MiniPowerUpBar" unique_id=1018238656]
custom_minimum_size = Vector2(12, 12)
layout_mode = 2
[node name="Entry2" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1213770719]
layout_mode = 2
[node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2" unique_id=649896203]
layout_mode = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=276085006]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2 layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 7
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 36
text = "2nd" text = "2nd"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=1005069505] [node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=46217188]
custom_minimum_size = Vector2(24, 24) custom_minimum_size = Vector2(100, 100)
layout_mode = 2 layout_mode = 2
texture = ExtResource("27_j8jky")
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=980063105] [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=2134048836]
custom_minimum_size = Vector2(100, 0) layout_mode = 2
theme_override_constants/separation = 22
alignment = 1
[node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer" unique_id=1404467822]
layout_mode = 2
theme_override_constants/separation = 0
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionA" unique_id=1475419922]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2 layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "Player 2" text = "Player 2"
vertical_alignment = 1
clip_text = true clip_text = true
[node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=1898054695] [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionA" unique_id=414359335]
modulate = Color(1, 1, 1, 0) modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(16, 16) custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=630589738] [node name="SectionB" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer" unique_id=10662559]
clip_contents = true
layout_mode = 2
alignment = 1
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionB" unique_id=1606855267]
custom_minimum_size = Vector2(120, 0)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "0" text = "0"
horizontal_alignment = 2
[node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=719453508] [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionB" unique_id=219625555]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
theme_override_constants/separation = 6
[node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=993398985]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=1149709938]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=1263023268]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Entry3" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1530449446]
custom_minimum_size = Vector2(440, 86)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_2cjbq")
[node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3" unique_id=1214564201]
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 2 theme_override_constants/separation = 2
alignment = 1
[node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/MiniPowerUpBar" unique_id=1487042283] [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=377846102]
custom_minimum_size = Vector2(12, 12) custom_minimum_size = Vector2(70, 0)
layout_mode = 2
[node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/MiniPowerUpBar" unique_id=1303981736]
custom_minimum_size = Vector2(12, 12)
layout_mode = 2
[node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/MiniPowerUpBar" unique_id=564492200]
custom_minimum_size = Vector2(12, 12)
layout_mode = 2
[node name="Entry3" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=988674004]
layout_mode = 2
[node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3" unique_id=2098193159]
layout_mode = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=940102589]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2 layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 7
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 36
text = "3rd" text = "3rd"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=77999167] [node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=383855502]
custom_minimum_size = Vector2(24, 24) custom_minimum_size = Vector2(100, 100)
layout_mode = 2 layout_mode = 2
texture = ExtResource("27_j8jky")
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=872999463] [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=1969616094]
custom_minimum_size = Vector2(100, 0) layout_mode = 2
theme_override_constants/separation = 22
alignment = 1
[node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer" unique_id=1627755679]
layout_mode = 2
theme_override_constants/separation = 0
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionA" unique_id=1670492515]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2 layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "Player 3" text = "Player 3"
vertical_alignment = 1
clip_text = true clip_text = true
[node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=1209672815] [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionA" unique_id=616766448]
modulate = Color(1, 1, 1, 0) modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(16, 16) custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=508325054] [node name="SectionB" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer" unique_id=734590478]
clip_contents = true
layout_mode = 2
alignment = 1
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionB" unique_id=246464797]
custom_minimum_size = Vector2(120, 0)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "0" text = "0"
horizontal_alignment = 2
[node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=1235595014] [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionB" unique_id=473697297]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
theme_override_constants/separation = 6
[node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=824194655]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=2096101462]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=970732664]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
[node name="Entry4" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1325242351]
custom_minimum_size = Vector2(440, 86)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_cjqg0")
[node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4" unique_id=1110779657]
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 2 theme_override_constants/separation = 2
alignment = 1
[node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/MiniPowerUpBar" unique_id=1321277357] [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=171801451]
custom_minimum_size = Vector2(12, 12) custom_minimum_size = Vector2(70, 0)
layout_mode = 2
[node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/MiniPowerUpBar" unique_id=847275899]
custom_minimum_size = Vector2(12, 12)
layout_mode = 2
[node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/MiniPowerUpBar" unique_id=701782565]
custom_minimum_size = Vector2(12, 12)
layout_mode = 2
[node name="Entry4" type="PanelContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=394023021]
layout_mode = 2
[node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4" unique_id=1481335373]
layout_mode = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=539805932]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2 layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 7
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 36
text = "4th" text = "4th"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=736863972] [node name="PortraitRect" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=1346078271]
custom_minimum_size = Vector2(24, 24) custom_minimum_size = Vector2(100, 100)
layout_mode = 2 layout_mode = 2
texture = ExtResource("27_j8jky")
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=379355680] [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=249320303]
custom_minimum_size = Vector2(100, 0) layout_mode = 2
theme_override_constants/separation = 22
alignment = 1
[node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer" unique_id=404059862]
layout_mode = 2
theme_override_constants/separation = 0
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionA" unique_id=1153987614]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2 layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "Player 4" text = "Player 4"
vertical_alignment = 1
clip_text = true clip_text = true
[node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=1812577580] [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionA" unique_id=316169104]
modulate = Color(1, 1, 1, 0) modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(16, 16) custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=560418594] [node name="SectionB" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer" unique_id=1754884921]
clip_contents = true
layout_mode = 2
alignment = 1
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionB" unique_id=1975407740]
custom_minimum_size = Vector2(120, 0)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky") theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22 theme_override_font_sizes/font_size = 22
text = "0" text = "0"
horizontal_alignment = 2
[node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=2059921947] [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionB" unique_id=2099215641]
custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 2 theme_override_constants/separation = 6
alignment = 1
[node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/MiniPowerUpBar" unique_id=1695101926] [node name="Segment0" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=941239068]
custom_minimum_size = Vector2(12, 12) custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
[node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/MiniPowerUpBar" unique_id=1697515395] [node name="Segment1" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=518121211]
custom_minimum_size = Vector2(12, 12) custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
[node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/MiniPowerUpBar" unique_id=500915161] [node name="Segment2" type="Panel" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionB/MiniPowerUpBar" unique_id=206598393]
custom_minimum_size = Vector2(12, 12) custom_minimum_size = Vector2(25, 25)
layout_mode = 2 layout_mode = 2
[node name="GlobalMatchTimer" type="PanelContainer" parent="." unique_id=1714357974]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -75.0
offset_top = 8.0
offset_right = 73.0
offset_bottom = 72.0
grow_horizontal = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_kmb1v")
[node name="VBox" type="VBoxContainer" parent="GlobalMatchTimer" unique_id=24429117]
layout_mode = 2
alignment = 1
[node name="TimerLabel" type="Label" parent="GlobalMatchTimer/VBox" unique_id=689385799]
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 28
text = "3:00"
horizontal_alignment = 1
[node name="SettingsBtn" type="Button" parent="." unique_id=1964422444]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -78.0
offset_top = 8.0
offset_right = -30.0
offset_bottom = 56.0
grow_horizontal = 0
text = "⚙"
[node name="TouchControls" type="Control" parent="." unique_id=1539594058] [node name="TouchControls" type="Control" parent="." unique_id=1539594058]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
@@ -1878,6 +2004,17 @@ custom_minimum_size = Vector2(0, 40)
layout_mode = 2 layout_mode = 2
text = "Back" text = "Back"
[node name="SettingsBtn" type="Button" parent="." unique_id=1964422444]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -78.0
offset_top = 8.0
offset_right = -30.0
offset_bottom = 56.0
grow_horizontal = 0
text = "⚙"
[connection signal="text_submitted" from="MessageInput" to="." method="_on_message_input_text_submitted"] [connection signal="text_submitted" from="MessageInput" to="." method="_on_message_input_text_submitted"]
[connection signal="pressed" from="PauseMenu/Panel/VBox/ResumeBtn" to="." method="_on_resume_pressed"] [connection signal="pressed" from="PauseMenu/Panel/VBox/ResumeBtn" to="." method="_on_resume_pressed"]
[connection signal="pressed" from="PauseMenu/Panel/VBox/HowToPlayBtn" to="." method="_on_how_to_play_pressed"] [connection signal="pressed" from="PauseMenu/Panel/VBox/HowToPlayBtn" to="." method="_on_how_to_play_pressed"]
+17 -28
View File
@@ -51,9 +51,8 @@ var red_tint_overlay: ColorRect
# Traffic Light / StopTimer Visuals # Traffic Light / StopTimer Visuals
var stop_timer_node: PanelContainer var stop_timer_node: PanelContainer
var stop_segments: Array[Panel] = [] var stop_segments: Array[Panel] = []
var lit_style: StyleBoxFlat var empty_styles: Array[StyleBoxTexture] = []
var dim_style: StyleBoxFlat var filled_styles: Array[StyleBoxTexture] = []
var red_style: StyleBoxFlat
func _ready(): func _ready():
set_process(false) set_process(false)
@@ -155,29 +154,19 @@ func _update_stop_timer_visuals():
var hbox = stop_timer_node.get_node_or_null("HBox") var hbox = stop_timer_node.get_node_or_null("HBox")
if hbox: if hbox:
stop_segments.clear() stop_segments.clear()
empty_styles.clear()
filled_styles.clear()
for i in range(3): for i in range(3):
var seg = hbox.get_node_or_null("Segment%d" % i) var seg = hbox.get_node_or_null("Segment%d" % i)
if seg: stop_segments.append(seg) if seg: stop_segments.append(seg)
# Prepare styles var e_style = StyleBoxTexture.new()
lit_style = StyleBoxFlat.new() e_style.texture = load("res://assets/graphics/gui/stop_timer/Segment%d_empty.png" % i)
lit_style.bg_color = Color.YELLOW empty_styles.append(e_style)
lit_style.border_width_left = 2
lit_style.border_width_top = 2 var f_style = StyleBoxTexture.new()
lit_style.border_width_right = 2 f_style.texture = load("res://assets/graphics/gui/stop_timer/Segment%d_filled.png" % i)
lit_style.border_width_bottom = 2 filled_styles.append(f_style)
lit_style.border_color = Color(1.0, 1.0, 1.0, 0.5)
dim_style = StyleBoxFlat.new()
dim_style.bg_color = Color(0.1, 0.1, 0.1, 0.8) # Dark dim
red_style = StyleBoxFlat.new()
red_style.bg_color = Color.RED
red_style.border_width_left = 2
red_style.border_width_top = 2
red_style.border_width_right = 2
red_style.border_width_bottom = 2
red_style.border_color = Color(1.0, 0.5, 0.5, 0.5)
if not stop_timer_node: return if not stop_timer_node: return
@@ -185,17 +174,17 @@ func _update_stop_timer_visuals():
stop_timer_node.visible = true stop_timer_node.visible = true
if current_phase == Phase.GO: if current_phase == Phase.GO:
# GO Phase: All dim unless in last 3 seconds (lights up 3, 2, 1s) # GO Phase: All empty unless in last 3 seconds (lights up 3, 2, 1s)
for i in range(stop_segments.size()): for i in range(stop_segments.size()):
var threshold = 3.0 - (i * 1.0) var threshold = 3.0 - (i * 1.0)
if phase_timer <= threshold: if phase_timer <= threshold:
stop_segments[i].add_theme_stylebox_override("panel", lit_style) stop_segments[i].add_theme_stylebox_override("panel", filled_styles[i])
else: else:
stop_segments[i].add_theme_stylebox_override("panel", dim_style) stop_segments[i].add_theme_stylebox_override("panel", empty_styles[i])
else: else:
# STOP Phase: All Red # STOP Phase: All Red
for seg in stop_segments: for i in range(stop_segments.size()):
seg.add_theme_stylebox_override("panel", red_style) stop_segments[i].add_theme_stylebox_override("panel", filled_styles[i])
func activate_client_side(): func activate_client_side():
is_active = true is_active = true
+9 -20
View File
@@ -321,17 +321,6 @@ func setup_leaderboard_ui(main_node):
if not leaderboard_panel: if not leaderboard_panel:
push_warning("LeaderboardPanel node not found in scene") push_warning("LeaderboardPanel node not found in scene")
return return
# Apply styling to the panel
var style = StyleBoxFlat.new()
style.bg_color = Color(0.08, 0.08, 0.12, 0.92)
style.border_color = Color(0.85, 0.75, 0.25, 1.0) # Gold border
style.set_border_width_all(2)
style.corner_radius_top_left = 8
style.corner_radius_top_right = 8
style.corner_radius_bottom_left = 8
style.corner_radius_bottom_right = 8
leaderboard_panel.add_theme_stylebox_override("panel", style)
func _get_rank_text(rank: int) -> String: func _get_rank_text(rank: int) -> String:
match rank: match rank:
@@ -416,11 +405,11 @@ func initialize_leaderboard_with_players(players: Array):
if i < players.size(): if i < players.size():
var player = players[i] var player = players[i]
var name_label = entry.get_node_or_null("NameLabel") var name_label = entry.get_node_or_null("SplitterContainer/SectionA/NameLabel")
var score_label = entry.get_node_or_null("ScoreLabel") var score_label = entry.get_node_or_null("SplitterContainer/SectionB/ScoreLabel")
var portrait_rect = entry.get_node_or_null("PortraitRect") var portrait_rect = entry.get_node_or_null("PortraitRect")
var ghost_icon = entry.get_node_or_null("GhostIcon") var ghost_icon = entry.get_node_or_null("SplitterContainer/SectionA/GhostIcon")
var mini_powerup_bar = entry.get_node_or_null("MiniPowerUpBar") var mini_powerup_bar = entry.get_node_or_null("SplitterContainer/SectionB/MiniPowerUpBar")
if name_label: if name_label:
# Use display_name if available, otherwise fallback to node name # Use display_name if available, otherwise fallback to node name
@@ -524,15 +513,15 @@ func update_live_leaderboard(players: Array):
_: rank_label.text = str(rank) + "th" _: rank_label.text = str(rank) + "th"
if player and player.name == str(my_id): if player and player.name == str(my_id):
entry_root.modulate = Color(1.0, 1.0, 0.0) # Yellow entry_root.modulate = Color(0.3, 0.7, 1.0) # Blue highlight for local player
else: else:
entry_root.modulate = Color.WHITE entry_root.modulate = Color.WHITE
var score_label = entry.get_node_or_null("ScoreLabel") var score_label = entry.get_node_or_null("SplitterContainer/SectionB/ScoreLabel")
var ghost_icon = entry.get_node_or_null("GhostIcon") var ghost_icon = entry.get_node_or_null("SplitterContainer/SectionA/GhostIcon")
var mini_powerup_bar = entry.get_node_or_null("MiniPowerUpBar") var mini_powerup_bar = entry.get_node_or_null("SplitterContainer/SectionB/MiniPowerUpBar")
var portrait_rect = entry.get_node_or_null("PortraitRect") var portrait_rect = entry.get_node_or_null("PortraitRect")
var name_label = entry.get_node_or_null("NameLabel") var name_label = entry.get_node_or_null("SplitterContainer/SectionA/NameLabel")
if name_label: if name_label:
var default_name = player.name if player else "Unknown" var default_name = player.name if player else "Unknown"