diff --git a/addons/enhanced_gridmap/meshlibrary/default.tres b/addons/enhanced_gridmap/meshlibrary/default.tres index 5c1d663..cdb133e 100644 --- a/addons/enhanced_gridmap/meshlibrary/default.tres +++ b/addons/enhanced_gridmap/meshlibrary/default.tres @@ -14,7 +14,7 @@ [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://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"] load_path = "res://.godot/imported/tile_heart.png-deeef50755ca225f028608dfd16900e6.s3tc.ctex" diff --git a/assets/graphics/gui/game_over_panel/1st.png b/assets/graphics/gui/game_over_panel/1st.png new file mode 100644 index 0000000..13cc5d1 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/1st.png differ diff --git a/assets/graphics/gui/game_over_panel/1st.png.import b/assets/graphics/gui/game_over_panel/1st.png.import new file mode 100644 index 0000000..afdfa5f --- /dev/null +++ b/assets/graphics/gui/game_over_panel/1st.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyhnq5lti5xs6" +path="res://.godot/imported/1st.png-09608c1f2352fd9bd0caa5bd58d7dc5c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/1st.png" +dest_files=["res://.godot/imported/1st.png-09608c1f2352fd9bd0caa5bd58d7dc5c.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 diff --git a/assets/graphics/gui/game_over_panel/2nd.png b/assets/graphics/gui/game_over_panel/2nd.png new file mode 100644 index 0000000..6cebc31 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/2nd.png differ diff --git a/assets/graphics/gui/game_over_panel/2nd.png.import b/assets/graphics/gui/game_over_panel/2nd.png.import new file mode 100644 index 0000000..2d03c5a --- /dev/null +++ b/assets/graphics/gui/game_over_panel/2nd.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwquf8ex24iux" +path="res://.godot/imported/2nd.png-7b334347a1509fbfe89aac4e9206a978.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/2nd.png" +dest_files=["res://.godot/imported/2nd.png-7b334347a1509fbfe89aac4e9206a978.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 diff --git a/assets/graphics/gui/game_over_panel/3rd.png b/assets/graphics/gui/game_over_panel/3rd.png new file mode 100644 index 0000000..66b456c Binary files /dev/null and b/assets/graphics/gui/game_over_panel/3rd.png differ diff --git a/assets/graphics/gui/game_over_panel/3rd.png.import b/assets/graphics/gui/game_over_panel/3rd.png.import new file mode 100644 index 0000000..6a9a5ce --- /dev/null +++ b/assets/graphics/gui/game_over_panel/3rd.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfi4bfok7kfjt" +path="res://.godot/imported/3rd.png-ac9e18b5a3734b2e12ccde3198df1677.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/3rd.png" +dest_files=["res://.godot/imported/3rd.png-ac9e18b5a3734b2e12ccde3198df1677.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 diff --git a/assets/graphics/gui/game_over_panel/4th.png b/assets/graphics/gui/game_over_panel/4th.png new file mode 100644 index 0000000..b5b3101 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/4th.png differ diff --git a/assets/graphics/gui/game_over_panel/4th.png.import b/assets/graphics/gui/game_over_panel/4th.png.import new file mode 100644 index 0000000..ef37caf --- /dev/null +++ b/assets/graphics/gui/game_over_panel/4th.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsb22bl3pb05f" +path="res://.godot/imported/4th.png-a249354b03eeeeafd4d35082a6d109e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/4th.png" +dest_files=["res://.godot/imported/4th.png-a249354b03eeeeafd4d35082a6d109e6.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 diff --git a/assets/graphics/gui/game_over_panel/5th.png b/assets/graphics/gui/game_over_panel/5th.png new file mode 100644 index 0000000..8705daf Binary files /dev/null and b/assets/graphics/gui/game_over_panel/5th.png differ diff --git a/assets/graphics/gui/game_over_panel/5th.png.import b/assets/graphics/gui/game_over_panel/5th.png.import new file mode 100644 index 0000000..918a817 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/5th.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c65x7tp8x8sys" +path="res://.godot/imported/5th.png-20bc3b884f3fac7e3d37d1f355ca0b2f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/5th.png" +dest_files=["res://.godot/imported/5th.png-20bc3b884f3fac7e3d37d1f355ca0b2f.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 diff --git a/assets/graphics/gui/game_over_panel/6th.png b/assets/graphics/gui/game_over_panel/6th.png new file mode 100644 index 0000000..1ec4676 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/6th.png differ diff --git a/assets/graphics/gui/game_over_panel/6th.png.import b/assets/graphics/gui/game_over_panel/6th.png.import new file mode 100644 index 0000000..5795924 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/6th.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://de20ks0e5gmba" +path="res://.godot/imported/6th.png-41946448477658c36d082aaca0df9af6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/6th.png" +dest_files=["res://.godot/imported/6th.png-41946448477658c36d082aaca0df9af6.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 diff --git a/assets/graphics/gui/game_over_panel/7th.png b/assets/graphics/gui/game_over_panel/7th.png new file mode 100644 index 0000000..b4a5f42 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/7th.png differ diff --git a/assets/graphics/gui/game_over_panel/7th.png.import b/assets/graphics/gui/game_over_panel/7th.png.import new file mode 100644 index 0000000..9d422ea --- /dev/null +++ b/assets/graphics/gui/game_over_panel/7th.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvv2288euvnei" +path="res://.godot/imported/7th.png-9b26415826fba42722be72d534549c9c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/7th.png" +dest_files=["res://.godot/imported/7th.png-9b26415826fba42722be72d534549c9c.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 diff --git a/assets/graphics/gui/game_over_panel/8th.png b/assets/graphics/gui/game_over_panel/8th.png new file mode 100644 index 0000000..e6be2fa Binary files /dev/null and b/assets/graphics/gui/game_over_panel/8th.png differ diff --git a/assets/graphics/gui/game_over_panel/8th.png.import b/assets/graphics/gui/game_over_panel/8th.png.import new file mode 100644 index 0000000..6bf2212 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/8th.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://be5eer1coyjbc" +path="res://.godot/imported/8th.png-88d87ad6329f83d7ac1eed3acf8eaa86.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/8th.png" +dest_files=["res://.godot/imported/8th.png-88d87ad6329f83d7ac1eed3acf8eaa86.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 diff --git a/assets/graphics/gui/game_over_panel/Button_avail.png b/assets/graphics/gui/game_over_panel/Button_avail.png new file mode 100644 index 0000000..bc0c164 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/Button_avail.png differ diff --git a/assets/graphics/gui/game_over_panel/Button_avail.png.import b/assets/graphics/gui/game_over_panel/Button_avail.png.import new file mode 100644 index 0000000..41f4387 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/Button_avail.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://k06v44dkdw4l" +path="res://.godot/imported/Button_avail.png-8810af8c9e1decc0f4da46cc2d3c1bdc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/Button_avail.png" +dest_files=["res://.godot/imported/Button_avail.png-8810af8c9e1decc0f4da46cc2d3c1bdc.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 diff --git a/assets/graphics/gui/game_over_panel/Button_avail_click.png b/assets/graphics/gui/game_over_panel/Button_avail_click.png new file mode 100644 index 0000000..c807f8a Binary files /dev/null and b/assets/graphics/gui/game_over_panel/Button_avail_click.png differ diff --git a/assets/graphics/gui/game_over_panel/Button_avail_click.png.import b/assets/graphics/gui/game_over_panel/Button_avail_click.png.import new file mode 100644 index 0000000..57c4a7f --- /dev/null +++ b/assets/graphics/gui/game_over_panel/Button_avail_click.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccw0tfqj2mjyy" +path="res://.godot/imported/Button_avail_click.png-bae20e948be70415c97b044f9f1b27de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/Button_avail_click.png" +dest_files=["res://.godot/imported/Button_avail_click.png-bae20e948be70415c97b044f9f1b27de.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 diff --git a/assets/graphics/gui/game_over_panel/Button_avail_expand.png b/assets/graphics/gui/game_over_panel/Button_avail_expand.png new file mode 100644 index 0000000..391196f Binary files /dev/null and b/assets/graphics/gui/game_over_panel/Button_avail_expand.png differ diff --git a/assets/graphics/gui/game_over_panel/Button_avail_expand.png.import b/assets/graphics/gui/game_over_panel/Button_avail_expand.png.import new file mode 100644 index 0000000..3132695 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/Button_avail_expand.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4460yl3caudj" +path="res://.godot/imported/Button_avail_expand.png-bdac0a700f7d7983b01855fbb9aaa72e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/Button_avail_expand.png" +dest_files=["res://.godot/imported/Button_avail_expand.png-bdac0a700f7d7983b01855fbb9aaa72e.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 diff --git a/assets/graphics/gui/game_over_panel/Button_unavail.png b/assets/graphics/gui/game_over_panel/Button_unavail.png new file mode 100644 index 0000000..4ffdca0 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/Button_unavail.png differ diff --git a/assets/graphics/gui/game_over_panel/Button_unavail.png.import b/assets/graphics/gui/game_over_panel/Button_unavail.png.import new file mode 100644 index 0000000..8ed5836 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/Button_unavail.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5ghj5ytsh4wc" +path="res://.godot/imported/Button_unavail.png-455b81a1f2dd0425382a7e83a8dcc20a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/Button_unavail.png" +dest_files=["res://.godot/imported/Button_unavail.png-455b81a1f2dd0425382a7e83a8dcc20a.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 diff --git a/assets/graphics/gui/game_over_panel/Button_unavail_click.png b/assets/graphics/gui/game_over_panel/Button_unavail_click.png new file mode 100644 index 0000000..2a4a3dc Binary files /dev/null and b/assets/graphics/gui/game_over_panel/Button_unavail_click.png differ diff --git a/assets/graphics/gui/game_over_panel/Button_unavail_click.png.import b/assets/graphics/gui/game_over_panel/Button_unavail_click.png.import new file mode 100644 index 0000000..c0b16d3 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/Button_unavail_click.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmj8fwjtkyabp" +path="res://.godot/imported/Button_unavail_click.png-5509562d176490aa48b6adc4facc6a7e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/Button_unavail_click.png" +dest_files=["res://.godot/imported/Button_unavail_click.png-5509562d176490aa48b6adc4facc6a7e.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 diff --git a/assets/graphics/gui/game_over_panel/achievement.png b/assets/graphics/gui/game_over_panel/achievement.png new file mode 100644 index 0000000..e8eedad Binary files /dev/null and b/assets/graphics/gui/game_over_panel/achievement.png differ diff --git a/assets/graphics/gui/game_over_panel/achievement.png.import b/assets/graphics/gui/game_over_panel/achievement.png.import new file mode 100644 index 0000000..d41e969 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/achievement.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ykjd2vg0e1lw" +path="res://.godot/imported/achievement.png-c4c8494dc0efa37667db3ade596543fa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/achievement.png" +dest_files=["res://.godot/imported/achievement.png-c4c8494dc0efa37667db3ade596543fa.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 diff --git a/assets/graphics/gui/game_over_panel/button_back_click.png b/assets/graphics/gui/game_over_panel/button_back_click.png new file mode 100644 index 0000000..12c026e Binary files /dev/null and b/assets/graphics/gui/game_over_panel/button_back_click.png differ diff --git a/assets/graphics/gui/game_over_panel/button_back_click.png.import b/assets/graphics/gui/game_over_panel/button_back_click.png.import new file mode 100644 index 0000000..ab2ec3f --- /dev/null +++ b/assets/graphics/gui/game_over_panel/button_back_click.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2epjkpphlkku" +path="res://.godot/imported/button_back_click.png-a7bc6b7ee639d5f431b0396ccc98a7ab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/button_back_click.png" +dest_files=["res://.godot/imported/button_back_click.png-a7bc6b7ee639d5f431b0396ccc98a7ab.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 diff --git a/assets/graphics/gui/game_over_panel/button_back_hover.png b/assets/graphics/gui/game_over_panel/button_back_hover.png new file mode 100644 index 0000000..c044b2c Binary files /dev/null and b/assets/graphics/gui/game_over_panel/button_back_hover.png differ diff --git a/assets/graphics/gui/game_over_panel/button_back_hover.png.import b/assets/graphics/gui/game_over_panel/button_back_hover.png.import new file mode 100644 index 0000000..a459147 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/button_back_hover.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://oo0mw8pkasst" +path="res://.godot/imported/button_back_hover.png-d493a068e88fb21a86ff561bf094b6ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/button_back_hover.png" +dest_files=["res://.godot/imported/button_back_hover.png-d493a068e88fb21a86ff561bf094b6ba.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 diff --git a/assets/graphics/gui/game_over_panel/button_back_normal.png b/assets/graphics/gui/game_over_panel/button_back_normal.png new file mode 100644 index 0000000..989c1b5 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/button_back_normal.png differ diff --git a/assets/graphics/gui/game_over_panel/button_back_normal.png.import b/assets/graphics/gui/game_over_panel/button_back_normal.png.import new file mode 100644 index 0000000..29c31a6 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/button_back_normal.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfoq4oe8flax" +path="res://.godot/imported/button_back_normal.png-9cc835c68bb07b7b07581afdcd148dc4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/button_back_normal.png" +dest_files=["res://.godot/imported/button_back_normal.png-9cc835c68bb07b7b07581afdcd148dc4.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 diff --git a/assets/graphics/gui/game_over_panel/button_rematch_click.png b/assets/graphics/gui/game_over_panel/button_rematch_click.png new file mode 100644 index 0000000..d096fc2 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/button_rematch_click.png differ diff --git a/assets/graphics/gui/game_over_panel/button_rematch_click.png.import b/assets/graphics/gui/game_over_panel/button_rematch_click.png.import new file mode 100644 index 0000000..34602c3 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/button_rematch_click.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0wgciia15q30" +path="res://.godot/imported/button_rematch_click.png-83eac918c140e13d45c8b3e6783c6cce.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/button_rematch_click.png" +dest_files=["res://.godot/imported/button_rematch_click.png-83eac918c140e13d45c8b3e6783c6cce.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 diff --git a/assets/graphics/gui/game_over_panel/button_rematch_hover.png b/assets/graphics/gui/game_over_panel/button_rematch_hover.png new file mode 100644 index 0000000..c5b26aa Binary files /dev/null and b/assets/graphics/gui/game_over_panel/button_rematch_hover.png differ diff --git a/assets/graphics/gui/game_over_panel/button_rematch_hover.png.import b/assets/graphics/gui/game_over_panel/button_rematch_hover.png.import new file mode 100644 index 0000000..ff4f1e4 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/button_rematch_hover.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwmc51qxcxxni" +path="res://.godot/imported/button_rematch_hover.png-12dd52007bc38cbf10e098f6840dec39.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/button_rematch_hover.png" +dest_files=["res://.godot/imported/button_rematch_hover.png-12dd52007bc38cbf10e098f6840dec39.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 diff --git a/assets/graphics/gui/game_over_panel/button_rematch_normal.png b/assets/graphics/gui/game_over_panel/button_rematch_normal.png new file mode 100644 index 0000000..7d5d80f Binary files /dev/null and b/assets/graphics/gui/game_over_panel/button_rematch_normal.png differ diff --git a/assets/graphics/gui/game_over_panel/button_rematch_normal.png.import b/assets/graphics/gui/game_over_panel/button_rematch_normal.png.import new file mode 100644 index 0000000..1c3c8aa --- /dev/null +++ b/assets/graphics/gui/game_over_panel/button_rematch_normal.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsi6yhjdkrcbl" +path="res://.godot/imported/button_rematch_normal.png-33cf7551739468db5d0941523511dd8f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/button_rematch_normal.png" +dest_files=["res://.godot/imported/button_rematch_normal.png-33cf7551739468db5d0941523511dd8f.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 diff --git a/assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png b/assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png new file mode 100644 index 0000000..0c94ee1 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png differ diff --git a/assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png.import b/assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png.import new file mode 100644 index 0000000..6b3b781 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mdqtul5w72uj" +path="res://.godot/imported/exp_gauge_placeholder.png-1cae7a7043e7aae326b860a723b7fc74.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png" +dest_files=["res://.godot/imported/exp_gauge_placeholder.png-1cae7a7043e7aae326b860a723b7fc74.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 diff --git a/assets/graphics/gui/game_over_panel/raceresult.png b/assets/graphics/gui/game_over_panel/raceresult.png new file mode 100644 index 0000000..ea9019e Binary files /dev/null and b/assets/graphics/gui/game_over_panel/raceresult.png differ diff --git a/assets/graphics/gui/game_over_panel/raceresult.png.import b/assets/graphics/gui/game_over_panel/raceresult.png.import new file mode 100644 index 0000000..2199742 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/raceresult.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b70vqj55uj2h" +path="res://.godot/imported/raceresult.png-b74395a5dbe739bedf688b7ac50770f4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/raceresult.png" +dest_files=["res://.godot/imported/raceresult.png-b74395a5dbe739bedf688b7ac50770f4.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 diff --git a/assets/graphics/gui/game_over_panel/ranklist.png b/assets/graphics/gui/game_over_panel/ranklist.png new file mode 100644 index 0000000..0cadcc2 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/ranklist.png differ diff --git a/assets/graphics/gui/game_over_panel/ranklist.png.import b/assets/graphics/gui/game_over_panel/ranklist.png.import new file mode 100644 index 0000000..064723d --- /dev/null +++ b/assets/graphics/gui/game_over_panel/ranklist.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2dv61m8loe11" +path="res://.godot/imported/ranklist.png-58a6040cbed233a05d72f17d43d272fb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/ranklist.png" +dest_files=["res://.godot/imported/ranklist.png-58a6040cbed233a05d72f17d43d272fb.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 diff --git a/assets/graphics/gui/game_over_panel/scroll.png b/assets/graphics/gui/game_over_panel/scroll.png new file mode 100644 index 0000000..2038434 Binary files /dev/null and b/assets/graphics/gui/game_over_panel/scroll.png differ diff --git a/assets/graphics/gui/game_over_panel/scroll.png.import b/assets/graphics/gui/game_over_panel/scroll.png.import new file mode 100644 index 0000000..9361819 --- /dev/null +++ b/assets/graphics/gui/game_over_panel/scroll.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvrmivsbaknhs" +path="res://.godot/imported/scroll.png-01da095276b708de57c3773a2af13130.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/gui/game_over_panel/scroll.png" +dest_files=["res://.godot/imported/scroll.png-01da095276b708de57c3773a2af13130.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 diff --git a/assets/graphics/touch_control/grab_tekton.png.import b/assets/graphics/touch_control/grab_tekton.png.import index 9ca9b37..fd1efc2 100644 --- a/assets/graphics/touch_control/grab_tekton.png.import +++ b/assets/graphics/touch_control/grab_tekton.png.import @@ -3,19 +3,20 @@ importer="texture" type="CompressedTexture2D" uid="uid://biun2yvglxgij" -path="res://.godot/imported/grab_tekton.png-38105d2382c7af6ceba9f67fafd9b104.ctex" +path.s3tc="res://.godot/imported/grab_tekton.png-38105d2382c7af6ceba9f67fafd9b104.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://assets/graphics/touch_control/grab_tekton.png" -dest_files=["res://.godot/imported/grab_tekton.png-38105d2382c7af6ceba9f67fafd9b104.ctex"] +dest_files=["res://.godot/imported/grab_tekton.png-38105d2382c7af6ceba9f67fafd9b104.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -37,4 +38,4 @@ 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 +detect_3d/compress_to=0 diff --git a/scenes/tekton.tscn b/scenes/tekton.tscn index 731e85f..b701dbe 100644 --- a/scenes/tekton.tscn +++ b/scenes/tekton.tscn @@ -3,6 +3,7 @@ [ext_resource type="Script" uid="uid://dyovwailce5tf" path="res://scripts/tekton.gd" id="1_tekton"] [ext_resource type="Script" uid="uid://c67yq846u8y68" path="res://scripts/tekton_controller.gd" id="2_controller"] [ext_resource type="PackedScene" uid="uid://b6d6qu1ir13q1" path="res://scenes/tekton_mesh.scn" id="3_d2kpk"] +[ext_resource type="Texture2D" uid="uid://biun2yvglxgij" path="res://assets/graphics/touch_control/grab_tekton.png" id="4_grab_icon"] [sub_resource type="BoxShape3D" id="BoxShape3D_tekton"] size = Vector3(0.8, 1, 0.8) @@ -24,3 +25,32 @@ collision_mask = 2 [node name="CollisionShape3D" type="CollisionShape3D" parent="HitArea" unique_id=818146069] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) shape = SubResource("BoxShape3D_tekton") + +[node name="InteractionPrompt" type="Node3D" parent="." unique_id=855764577] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.4, 0) + +[node name="PromptIcon" type="Sprite3D" parent="InteractionPrompt" unique_id=11135903] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3731489, 0) +pixel_size = 0.002 +billboard = 1 +no_depth_test = true +texture = ExtResource("4_grab_icon") + +[node name="KeyLabel" type="Label3D" parent="InteractionPrompt" unique_id=1816493043] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.30466843, 0) +pixel_size = 0.01 +billboard = 1 +no_depth_test = true +modulate = Color(0.1, 1, 0.2, 1) +text = "[ G ]" +font_size = 48 +outline_size = 18 + +[node name="ActionLabel" type="Label3D" parent="InteractionPrompt" unique_id=848495007] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.79176676, 0) +pixel_size = 0.01 +billboard = 1 +no_depth_test = true +text = "LIFT TEKTON" +font_size = 38 +outline_size = 10 diff --git a/scenes/ui/game_over_panel.tscn b/scenes/ui/game_over_panel.tscn index d32d7bd..b765caa 100644 --- a/scenes/ui/game_over_panel.tscn +++ b/scenes/ui/game_over_panel.tscn @@ -1,111 +1,101 @@ -[gd_scene format=3] +[gd_scene format=3 uid="uid://dtja62p1y5m57"] -[ext_resource type="Script" path="res://scripts/ui/game_over_panel.gd" id="1_script"] +[ext_resource type="Script" uid="uid://b100tjl67tbh7" path="res://scripts/ui/game_over_panel.gd" id="1_script"] [ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="2_font"] [ext_resource type="PackedScene" uid="uid://ejeamn0pyey4" path="res://assets/characters/Bob.glb" id="3_bob"] +[ext_resource type="Texture2D" uid="uid://b70vqj55uj2h" path="res://assets/graphics/gui/game_over_panel/raceresult.png" id="3_llt1x"] +[ext_resource type="Texture2D" uid="uid://k06v44dkdw4l" path="res://assets/graphics/gui/game_over_panel/Button_avail.png" id="4_fdy76"] [ext_resource type="PackedScene" uid="uid://d4cul3w3wem5w" path="res://assets/characters/Gatot.glb" id="4_gatot"] +[ext_resource type="Texture2D" uid="uid://cyhnq5lti5xs6" path="res://assets/graphics/gui/game_over_panel/1st.png" id="4_o7bn5"] +[ext_resource type="Texture2D" uid="uid://ccw0tfqj2mjyy" path="res://assets/graphics/gui/game_over_panel/Button_avail_click.png" id="5_a3ist"] [ext_resource type="PackedScene" uid="uid://1vk0mjnwkngi" path="res://assets/characters/Masbro.glb" id="5_masbro"] [ext_resource type="PackedScene" uid="uid://bmln7v6v5kvxg" path="res://assets/characters/Oldpop.glb" id="6_oldpop"] +[ext_resource type="Texture2D" uid="uid://c4460yl3caudj" path="res://assets/graphics/gui/game_over_panel/Button_avail_expand.png" id="6_t0b3p"] [ext_resource type="AnimationLibrary" uid="uid://c3pyopnwibckj" path="res://assets/characters/animations/animation-pack.res" id="7_animlib"] +[ext_resource type="Texture2D" uid="uid://b5ghj5ytsh4wc" path="res://assets/graphics/gui/game_over_panel/Button_unavail.png" id="7_t0b3p"] +[ext_resource type="Texture2D" uid="uid://bfoq4oe8flax" path="res://assets/graphics/gui/game_over_panel/button_back_normal.png" id="12_o7bn5"] +[ext_resource type="Texture2D" uid="uid://dsi6yhjdkrcbl" path="res://assets/graphics/gui/game_over_panel/button_rematch_normal.png" id="13_0eqys"] +[ext_resource type="Texture2D" uid="uid://2epjkpphlkku" path="res://assets/graphics/gui/game_over_panel/button_back_click.png" id="13_a3ist"] +[ext_resource type="Texture2D" uid="uid://mdqtul5w72uj" path="res://assets/graphics/gui/game_over_panel/exp_gauge_placeholder.png" id="14_fnsbg"] +[ext_resource type="Texture2D" uid="uid://oo0mw8pkasst" path="res://assets/graphics/gui/game_over_panel/button_back_hover.png" id="14_t0b3p"] +[ext_resource type="Texture2D" uid="uid://ykjd2vg0e1lw" path="res://assets/graphics/gui/game_over_panel/achievement.png" id="18_0eqys"] +[ext_resource type="Texture2D" uid="uid://0wgciia15q30" path="res://assets/graphics/gui/game_over_panel/button_rematch_click.png" id="19_0nol5"] +[ext_resource type="Texture2D" uid="uid://dwmc51qxcxxni" path="res://assets/graphics/gui/game_over_panel/button_rematch_hover.png" id="20_qn6hl"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_header"] +content_margin_left = 16.0 +content_margin_top = 8.0 +content_margin_right = 16.0 +content_margin_bottom = 8.0 +bg_color = Color(0.95, 0.75, 0.1, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_fnsbg"] +content_margin_left = 50.0 +content_margin_top = 180.0 +content_margin_right = 80.0 +content_margin_bottom = 20.0 +texture = ExtResource("3_llt1x") + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_a3ist"] +color = Color(0.041599996, 0.07514666, 0.16, 1) +thickness = 4 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0pv0k"] +texture = ExtResource("4_o7bn5") + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_abdxb"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_q158c"] +texture = ExtResource("4_fdy76") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0nol5"] +texture = ExtResource("5_a3ist") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_qn6hl"] +texture = ExtResource("6_t0b3p") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_aju6u"] +texture = ExtResource("7_t0b3p") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_w6rcn"] +texture = ExtResource("7_t0b3p") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_3toab"] +texture = ExtResource("7_t0b3p") [sub_resource type="Environment" id="Environment_preview"] background_mode = 1 background_color = Color(0.06, 0.07, 0.1, 0) ambient_light_source = 2 -ambient_light_color = Color(0.5, 0.55, 0.75, 1) -ambient_light_energy = 0.7 +ambient_light_color = Color(0.7100897, 0.74440694, 0.87715524, 1) -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_header"] -bg_color = Color(0.95, 0.75, 0.1, 1) -corner_radius_top_left = 8 -corner_radius_top_right = 8 -content_margin_left = 16.0 -content_margin_top = 8.0 -content_margin_right = 16.0 -content_margin_bottom = 8.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_gkif2"] +texture = ExtResource("14_fnsbg") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_content"] -bg_color = Color(0.08, 0.1, 0.2, 0.95) -corner_radius_bottom_left = 8 -content_margin_left = 20.0 -content_margin_top = 16.0 -content_margin_right = 20.0 -content_margin_bottom = 16.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_gqj3c"] +texture = ExtResource("12_o7bn5") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_back_normal"] -bg_color = Color(0.75, 0.15, 0.15, 1) -corner_radius_top_left = 6 -corner_radius_top_right = 6 -corner_radius_bottom_right = 6 -corner_radius_bottom_left = 6 -content_margin_left = 16.0 -content_margin_top = 8.0 -content_margin_right = 16.0 -content_margin_bottom = 8.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_o7bn5"] +texture = ExtResource("13_a3ist") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_back_hover"] -bg_color = Color(0.9, 0.2, 0.2, 1) -corner_radius_top_left = 6 -corner_radius_top_right = 6 -corner_radius_bottom_right = 6 -corner_radius_bottom_left = 6 -content_margin_left = 16.0 -content_margin_top = 8.0 -content_margin_right = 16.0 -content_margin_bottom = 8.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0eqys"] +texture = ExtResource("14_t0b3p") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_back_pressed"] -bg_color = Color(0.6, 0.1, 0.1, 1) -corner_radius_top_left = 6 -corner_radius_top_right = 6 -corner_radius_bottom_right = 6 -corner_radius_bottom_left = 6 -content_margin_left = 16.0 -content_margin_top = 8.0 -content_margin_right = 16.0 -content_margin_bottom = 8.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_37kxa"] +texture = ExtResource("13_0eqys") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rematch_normal"] -bg_color = Color(0.15, 0.7, 0.15, 1) -corner_radius_top_left = 6 -corner_radius_top_right = 6 -corner_radius_bottom_right = 6 -corner_radius_bottom_left = 6 -content_margin_left = 16.0 -content_margin_top = 8.0 -content_margin_right = 16.0 -content_margin_bottom = 8.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_3r3oo"] +texture = ExtResource("19_0nol5") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rematch_hover"] -bg_color = Color(0.2, 0.85, 0.2, 1) -corner_radius_top_left = 6 -corner_radius_top_right = 6 -corner_radius_bottom_right = 6 -corner_radius_bottom_left = 6 -content_margin_left = 16.0 -content_margin_top = 8.0 -content_margin_right = 16.0 -content_margin_bottom = 8.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_cn37d"] +texture = ExtResource("20_qn6hl") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rematch_pressed"] -bg_color = Color(0.1, 0.55, 0.1, 1) -corner_radius_top_left = 6 -corner_radius_top_right = 6 -corner_radius_bottom_right = 6 -corner_radius_bottom_left = 6 -content_margin_left = 16.0 -content_margin_top = 8.0 -content_margin_right = 16.0 -content_margin_bottom = 8.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_abdxb"] +texture = ExtResource("18_0eqys") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xp_bg"] -bg_color = Color(0.15, 0.15, 0.15, 1) -corner_radius_top_left = 4 -corner_radius_top_right = 4 -corner_radius_bottom_right = 4 -corner_radius_bottom_left = 4 - -[node name="GameOverPanel" type="Control"] +[node name="GameOverPanel" type="Control" unique_id=1175073206] layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -114,7 +104,7 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_script") -[node name="Background" type="ColorRect" parent="."] +[node name="Background" type="ColorRect" parent="." unique_id=1286194910] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -123,7 +113,7 @@ grow_horizontal = 2 grow_vertical = 2 color = Color(0.22, 0.22, 0.22, 0.95) -[node name="MainMargin" type="MarginContainer" parent="."] +[node name="MainMargin" type="MarginContainer" parent="." unique_id=2110579550] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -135,26 +125,47 @@ theme_override_constants/margin_top = 20 theme_override_constants/margin_right = 30 theme_override_constants/margin_bottom = 20 -[node name="MainHBox" type="HBoxContainer" parent="MainMargin"] -layout_mode = 2 -theme_override_constants/separation = 20 - -[node name="LeftSide" type="VBoxContainer" parent="MainMargin/MainHBox"] +[node name="MainHBox" type="Control" parent="MainMargin" unique_id=67537991] layout_mode = 2 size_flags_horizontal = 3 -size_flags_stretch_ratio = 1.4 +size_flags_vertical = 3 + +[node name="LeftWrapper" type="Control" parent="MainMargin/MainHBox" unique_id=112233445] +layout_mode = 1 +anchor_left = -0.058000002 +anchor_top = 0.046000004 +anchor_right = 0.50200003 +anchor_bottom = 0.87500006 +offset_left = 14.748005 +offset_top = 36.265774 +offset_right = 13.362427 +offset_bottom = 36.94568 +grow_horizontal = 2 +grow_vertical = 2 +rotation = -0.05 +pivot_offset = Vector2(0, 250) + +[node name="LeftSide" type="VBoxContainer" parent="MainMargin/MainHBox/LeftWrapper" unique_id=548147419] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 0.938 +anchor_bottom = 1.0 +offset_right = -0.048461914 +grow_horizontal = 2 +grow_vertical = 2 theme_override_constants/separation = 0 -[node name="HeaderPanel" type="PanelContainer" parent="MainMargin/MainHBox/LeftSide"] +[node name="HeaderPanel" type="PanelContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide" unique_id=486625903] +visible = false layout_mode = 2 size_flags_horizontal = 3 theme_override_styles/panel = SubResource("StyleBoxFlat_header") -[node name="HeaderHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide/HeaderPanel"] +[node name="HeaderHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/HeaderPanel" unique_id=2047940161] layout_mode = 2 theme_override_constants/separation = 10 -[node name="TabTitleLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/HeaderPanel/HeaderHBox"] +[node name="TabTitleLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/HeaderPanel/HeaderHBox" unique_id=439793498] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -163,40 +174,38 @@ theme_override_fonts/font = ExtResource("2_font") theme_override_font_sizes/font_size = 28 text = "RACE RESULT" -[node name="BodyHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide"] +[node name="BodyHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide" unique_id=1514193774] layout_mode = 2 size_flags_vertical = 3 -theme_override_constants/separation = 8 +theme_override_constants/separation = -32 -[node name="ContentPanel" type="PanelContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox"] +[node name="ContentPanel" type="PanelContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox" unique_id=272457141] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_content") +theme_override_styles/panel = SubResource("StyleBoxTexture_fnsbg") -[node name="ContentStack" type="Control" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel"] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 +[node name="ContentStack" type="Control" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel" unique_id=1176006429] +layout_mode = 2 -[node name="RaceResultContent" type="VBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack"] +[node name="RaceResultContent" type="VBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack" unique_id=911961232] unique_name_in_owner = true layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_bottom = -44.0 grow_horizontal = 2 grow_vertical = 2 -theme_override_constants/separation = 12 +theme_override_constants/separation = 24 -[node name="PlayerInfoHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent"] +[node name="PlayerInfoHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent" unique_id=1786750668] +visible = false layout_mode = 2 theme_override_constants/separation = 12 -[node name="PlayerRankLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/PlayerInfoHBox"] +[node name="PlayerRankLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/PlayerInfoHBox" unique_id=1516399018] unique_name_in_owner = true layout_mode = 2 theme_override_colors/font_color = Color(0.95, 0.75, 0.1, 1) @@ -204,7 +213,7 @@ theme_override_fonts/font = ExtResource("2_font") theme_override_font_sizes/font_size = 32 text = "1st" -[node name="PlayerNameLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/PlayerInfoHBox"] +[node name="PlayerNameLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/PlayerInfoHBox" unique_id=58019783] unique_name_in_owner = true layout_mode = 2 theme_override_colors/font_color = Color(1, 1, 1, 1) @@ -212,116 +221,55 @@ theme_override_fonts/font = ExtResource("2_font") theme_override_font_sizes/font_size = 32 text = "Player" -[node name="PlayerScoreLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/PlayerInfoHBox"] +[node name="PlayerScoreLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/PlayerInfoHBox" unique_id=1173655800] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 theme_override_colors/font_color = Color(1, 1, 1, 1) theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 40 +theme_override_font_sizes/font_size = 32 text = "0" horizontal_alignment = 2 -[node name="Sep1" type="HSeparator" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent"] +[node name="Sep1" type="HSeparator" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent" unique_id=841015548] +visible = false layout_mode = 2 -theme_override_constants/separation = 4 +theme_override_styles/separator = SubResource("StyleBoxLine_a3ist") -[node name="CompletionRow" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent"] +[node name="CompletionRow" type="HBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent" unique_id=995121163] layout_mode = 2 theme_override_constants/separation = 20 -[node name="CompletionLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/CompletionRow"] +[node name="CompletionLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/CompletionRow" unique_id=750921646] layout_mode = 2 size_flags_horizontal = 3 theme_override_colors/font_color = Color(0.8, 0.8, 0.8, 1) theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 24 +theme_override_font_sizes/font_size = 38 text = "COMPLETION" -[node name="CompletionValue" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/CompletionRow"] +[node name="CompletionValue" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/CompletionRow" unique_id=24310777] unique_name_in_owner = true layout_mode = 2 theme_override_colors/font_color = Color(1, 1, 1, 1) theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 24 +theme_override_font_sizes/font_size = 38 text = "0x" horizontal_alignment = 2 -[node name="ScoreRow" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent"] +[node name="ScoreRow" type="HBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent" unique_id=971702300] layout_mode = 2 theme_override_constants/separation = 20 -[node name="ScoreLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/ScoreRow"] +[node name="ScoreLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/ScoreRow" unique_id=2027492572] layout_mode = 2 size_flags_horizontal = 3 theme_override_colors/font_color = Color(0.8, 0.8, 0.8, 1) theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 24 +theme_override_font_sizes/font_size = 38 text = "SCORE" -[node name="ScoreValue" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/ScoreRow"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_colors/font_color = Color(1, 1, 1, 1) -theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 24 -text = "0" -horizontal_alignment = 2 - -[node name="RankRow" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent"] -layout_mode = 2 -theme_override_constants/separation = 20 - -[node name="RankLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/RankRow"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_colors/font_color = Color(0.8, 0.8, 0.8, 1) -theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 24 -text = "RANK" - -[node name="RankValue" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/RankRow"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_colors/font_color = Color(0.95, 0.75, 0.1, 1) -theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 52 -text = "1st" -horizontal_alignment = 2 - -[node name="RankListContent" type="VBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack"] -unique_name_in_owner = true -visible = false -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -theme_override_constants/separation = 6 - -[node name="WinnerHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent"] -layout_mode = 2 -theme_override_constants/separation = 12 - -[node name="WinnerRankLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/WinnerHBox"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_colors/font_color = Color(0.95, 0.75, 0.1, 1) -theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 30 -text = "1st" - -[node name="WinnerNameLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/WinnerHBox"] -unique_name_in_owner = true -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_colors/font_color = Color(1, 1, 1, 1) -theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 30 -text = "Player" - -[node name="WinnerScoreLabel" type="Label" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/WinnerHBox"] +[node name="ScoreValue" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/ScoreRow" unique_id=625339146] unique_name_in_owner = true layout_mode = 2 theme_override_colors/font_color = Color(1, 1, 1, 1) @@ -330,175 +278,311 @@ theme_override_font_sizes/font_size = 38 text = "0" horizontal_alignment = 2 -[node name="Sep2" type="HSeparator" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent"] +[node name="RankRow" type="HBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent" unique_id=1373436256] +layout_mode = 2 +theme_override_constants/separation = 20 + +[node name="RankLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/RankRow" unique_id=1601428290] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(0.8, 0.8, 0.8, 1) +theme_override_fonts/font = ExtResource("2_font") +theme_override_font_sizes/font_size = 38 +text = "RANK" + +[node name="RankValue" type="Panel" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/RankRow" unique_id=646850553] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 150) +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxTexture_0pv0k") + +[node name="VSeparator" type="VSeparator" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RaceResultContent/RankRow" unique_id=191739732] +custom_minimum_size = Vector2(106.025, 0) +layout_mode = 2 +theme_override_styles/separator = SubResource("StyleBoxEmpty_abdxb") + +[node name="RankListContent" type="VBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack" unique_id=1296050215] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_bottom = -44.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 6 + +[node name="WinnerHBox" type="HBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent" unique_id=135735131] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="WinnerRankLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/WinnerHBox" unique_id=774723477] +unique_name_in_owner = true +layout_mode = 2 +theme_override_colors/font_color = Color(0.95, 0.75, 0.1, 1) +theme_override_fonts/font = ExtResource("2_font") +theme_override_font_sizes/font_size = 32 +text = "1st" + +[node name="WinnerNameLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/WinnerHBox" unique_id=865272502] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_fonts/font = ExtResource("2_font") +theme_override_font_sizes/font_size = 32 +text = "Player" + +[node name="WinnerScoreLabel" type="Label" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/WinnerHBox" unique_id=88165648] +unique_name_in_owner = true +layout_mode = 2 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_fonts/font = ExtResource("2_font") +theme_override_font_sizes/font_size = 32 +text = "0" +horizontal_alignment = 2 + +[node name="Sep2" type="HSeparator" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent" unique_id=525354966] layout_mode = 2 theme_override_constants/separation = 4 -[node name="RankScroll" type="ScrollContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent"] +[node name="RankScroll" type="ScrollContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent" unique_id=1786542658] layout_mode = 2 size_flags_vertical = 3 -[node name="RankListVBox" type="VBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/RankScroll"] +[node name="RankListVBox" type="VBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/ContentPanel/ContentStack/RankListContent/RankScroll" unique_id=1214877592] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 theme_override_constants/separation = 4 -[node name="TabBtnVBox" type="VBoxContainer" parent="MainMargin/MainHBox/LeftSide/BodyHBox"] +[node name="TabBtnVBox" type="VBoxContainer" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox" unique_id=1687584513] custom_minimum_size = Vector2(90, 0) layout_mode = 2 theme_override_constants/separation = 8 -[node name="TabSpacer" type="Control" parent="MainMargin/MainHBox/LeftSide/BodyHBox/TabBtnVBox"] -custom_minimum_size = Vector2(0, 30) +[node name="TabSpacer" type="Control" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/TabBtnVBox" unique_id=620415399] +custom_minimum_size = Vector2(0, 200) layout_mode = 2 -[node name="RaceResultTabBtn" type="Button" parent="MainMargin/MainHBox/LeftSide/BodyHBox/TabBtnVBox"] +[node name="RaceResultTabBtn" type="Button" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/TabBtnVBox" unique_id=288426013] unique_name_in_owner = true custom_minimum_size = Vector2(85, 50) layout_mode = 2 +theme_override_constants/outline_size = 5 +theme_override_constants/line_spacing = -5 theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 12 +theme_override_font_sizes/font_size = 14 +theme_override_styles/normal = SubResource("StyleBoxTexture_q158c") +theme_override_styles/pressed = SubResource("StyleBoxTexture_0nol5") +theme_override_styles/hover = SubResource("StyleBoxTexture_qn6hl") text = "RACE RESULT" -[node name="RankListTabBtn" type="Button" parent="MainMargin/MainHBox/LeftSide/BodyHBox/TabBtnVBox"] +[node name="RankListTabBtn" type="Button" parent="MainMargin/MainHBox/LeftWrapper/LeftSide/BodyHBox/TabBtnVBox" unique_id=645406477] unique_name_in_owner = true custom_minimum_size = Vector2(85, 50) layout_mode = 2 +theme_override_constants/outline_size = 5 +theme_override_constants/line_spacing = -5 theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 12 +theme_override_font_sizes/font_size = 14 +theme_override_styles/normal = SubResource("StyleBoxTexture_aju6u") +theme_override_styles/pressed = SubResource("StyleBoxTexture_w6rcn") +theme_override_styles/hover = SubResource("StyleBoxTexture_3toab") text = "RANK LIST" -[node name="BottomBar" type="HBoxContainer" parent="MainMargin/MainHBox/LeftSide"] -custom_minimum_size = Vector2(0, 50) -layout_mode = 2 -theme_override_constants/separation = 20 +[node name="RightWrapper" type="Control" parent="MainMargin/MainHBox" unique_id=223344556] +layout_mode = 1 +anchor_left = 0.551 +anchor_top = 0.1 +anchor_right = 0.95100003 +anchor_bottom = 0.83 +offset_left = 0.39398193 +offset_right = 0.3939209 +offset_bottom = 0.054260254 +grow_horizontal = 2 +grow_vertical = 2 -[node name="BackBtn" type="Button" parent="MainMargin/MainHBox/LeftSide/BottomBar"] -unique_name_in_owner = true -custom_minimum_size = Vector2(120, 48) -layout_mode = 2 -theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 20 -theme_override_styles/normal = SubResource("StyleBoxFlat_back_normal") -theme_override_styles/hover = SubResource("StyleBoxFlat_back_hover") -theme_override_styles/pressed = SubResource("StyleBoxFlat_back_pressed") -text = "BACK" - -[node name="BottomSpacer" type="Control" parent="MainMargin/MainHBox/LeftSide/BottomBar"] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="RightSide" type="VBoxContainer" parent="MainMargin/MainHBox"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_stretch_ratio = 1.0 +[node name="RightSide" type="VBoxContainer" parent="MainMargin/MainHBox/RightWrapper" unique_id=694266103] +layout_mode = 1 +anchors_preset = -1 +anchor_left = -0.19900002 +anchor_top = -0.07300001 +anchor_right = 1.064 +anchor_bottom = 1.0150001 +offset_left = -0.042388916 +offset_top = 0.24116135 +offset_right = 0.16638184 +offset_bottom = 0.09890747 +grow_horizontal = 2 +grow_vertical = 2 theme_override_constants/separation = 8 alignment = 1 -[node name="ViewportContainer" type="SubViewportContainer" parent="MainMargin/MainHBox/RightSide"] +[node name="ViewportContainer" type="SubViewportContainer" parent="MainMargin/MainHBox/RightWrapper/RightSide" unique_id=1093032361] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 stretch = true -[node name="PreviewViewport" type="SubViewport" parent="MainMargin/MainHBox/RightSide/ViewportContainer"] +[node name="PreviewViewport" type="SubViewport" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer" unique_id=190990679] +own_world_3d = true transparent_bg = true handle_input_locally = false -size = Vector2i(400, 500) +size = Vector2i(660, 411) render_target_update_mode = 4 -[node name="WorldEnvironment" type="WorldEnvironment" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport"] +[node name="WorldEnvironment" type="WorldEnvironment" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport" unique_id=1823674523] environment = SubResource("Environment_preview") -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport"] +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport" unique_id=808528854] transform = Transform3D(0.866025, -0.25, 0.433013, 0, 0.866025, 0.5, -0.5, -0.433013, 0.75, 0, 4, 0) light_energy = 1.4 -[node name="FillLight" type="OmniLight3D" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport"] +[node name="FillLight" type="OmniLight3D" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport" unique_id=1897012151] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2, 2) light_color = Color(0.4, 0.5, 1, 1) light_energy = 0.5 omni_range = 8.0 -[node name="PreviewCamera" type="Camera3D" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport"] -transform = Transform3D(1, 0, 0, 0, 0.9659259, 0.25881898, 0, -0.25881898, 0.9659259, 0, 0.8380414, 3.2) +[node name="PreviewCamera" type="Camera3D" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport" unique_id=1869696119] +transform = Transform3D(1, 0, 0, 0, 0.9659259, 0.25881895, 0, -0.25881895, 0.9659259, 0, 0.81, 2.309) +cull_mask = 512 current = true fov = 40.0 -[node name="CharacterRoot" type="Node3D" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport"] +[node name="CharacterRoot" type="Node3D" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport" unique_id=2072292979] unique_name_in_owner = true -[node name="Masbro" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" instance=ExtResource("5_masbro")] +[node name="Masbro" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" unique_id=853004539 instance=ExtResource("5_masbro")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.485, 0) visible = false -[node name="Bob" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" instance=ExtResource("3_bob")] +[node name="Bob" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" unique_id=31535600 instance=ExtResource("3_bob")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.485, 0) visible = false -[node name="Gatot" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" instance=ExtResource("4_gatot")] +[node name="Gatot" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" unique_id=1607811370 instance=ExtResource("4_gatot")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.485, 0) visible = false -[node name="Oldpop" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" instance=ExtResource("6_oldpop")] +[node name="Oldpop" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" unique_id=1101298409 instance=ExtResource("6_oldpop")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.485, 0) -[node name="AnimationPlayer" type="AnimationPlayer" parent="MainMargin/MainHBox/RightSide/ViewportContainer/PreviewViewport/CharacterRoot"] +[node name="AnimationPlayer" type="AnimationPlayer" parent="MainMargin/MainHBox/RightWrapper/RightSide/ViewportContainer/PreviewViewport/CharacterRoot" unique_id=1274064114] root_node = NodePath("../Oldpop") libraries/animation-pack = ExtResource("7_animlib") autoplay = &"animation-pack/idle" -[node name="CharNameLabel" type="Label" parent="MainMargin/MainHBox/RightSide"] +[node name="CharNameLabel" type="Label" parent="MainMargin/MainHBox/RightWrapper/RightSide" unique_id=1040352623] unique_name_in_owner = true layout_mode = 2 theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_constants/outline_size = 12 theme_override_fonts/font = ExtResource("2_font") -theme_override_font_sizes/font_size = 26 +theme_override_font_sizes/font_size = 38 text = "PLAYER" horizontal_alignment = 1 -[node name="XPBarHBox" type="HBoxContainer" parent="MainMargin/MainHBox/RightSide"] +[node name="XPBarHBox" type="HBoxContainer" parent="MainMargin/MainHBox/RightWrapper/RightSide" unique_id=1727935825] layout_mode = 2 theme_override_constants/separation = 8 alignment = 1 -[node name="XPIcon" type="ColorRect" parent="MainMargin/MainHBox/RightSide/XPBarHBox"] +[node name="XPIcon" type="ColorRect" parent="MainMargin/MainHBox/RightWrapper/RightSide/XPBarHBox" unique_id=2005795604] +visible = false custom_minimum_size = Vector2(24, 24) layout_mode = 2 color = Color(0.85, 0.65, 0.1, 1) -[node name="XPBarBg" type="PanelContainer" parent="MainMargin/MainHBox/RightSide/XPBarHBox"] -custom_minimum_size = Vector2(180, 20) +[node name="XPBarBg" type="PanelContainer" parent="MainMargin/MainHBox/RightWrapper/RightSide/XPBarHBox" unique_id=174029272] +custom_minimum_size = Vector2(283.333, 70) layout_mode = 2 -theme_override_styles/panel = SubResource("StyleBoxFlat_xp_bg") +theme_override_styles/panel = SubResource("StyleBoxTexture_gkif2") -[node name="XPFill" type="ColorRect" parent="MainMargin/MainHBox/RightSide/XPBarHBox/XPBarBg"] +[node name="XPFill" type="ColorRect" parent="MainMargin/MainHBox/RightWrapper/RightSide/XPBarHBox/XPBarBg" unique_id=129406007] +visible = false custom_minimum_size = Vector2(120, 16) layout_mode = 2 color = Color(0.85, 0.65, 0.1, 1) -[node name="RematchHBox" type="HBoxContainer" parent="MainMargin/MainHBox/RightSide"] -layout_mode = 2 -theme_override_constants/separation = 10 -alignment = 2 +[node name="BottomWrapper" type="Control" parent="MainMargin/MainHBox" unique_id=131883260] +layout_mode = 1 +anchor_left = -0.034 +anchor_top = 0.86 +anchor_right = 1.033 +anchor_bottom = 0.98200005 +offset_left = -0.59599686 +offset_top = 0.2000122 +offset_right = -0.09802246 +offset_bottom = 0.23999023 +grow_horizontal = 2 +grow_vertical = 2 -[node name="RematchBtn" type="Button" parent="MainMargin/MainHBox/RightSide/RematchHBox"] +[node name="BottomBar" type="HBoxContainer" parent="MainMargin/MainHBox/BottomWrapper" unique_id=881993212] +custom_minimum_size = Vector2(0, 50) +layout_mode = 0 +offset_right = 761.0 +offset_bottom = 86.0 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 1.4 +theme_override_constants/separation = 20 + +[node name="BackBtn" type="Button" parent="MainMargin/MainHBox/BottomWrapper/BottomBar" unique_id=504498314] unique_name_in_owner = true -custom_minimum_size = Vector2(160, 48) +custom_minimum_size = Vector2(200, 80) layout_mode = 2 theme_override_fonts/font = ExtResource("2_font") theme_override_font_sizes/font_size = 20 -theme_override_styles/normal = SubResource("StyleBoxFlat_rematch_normal") -theme_override_styles/hover = SubResource("StyleBoxFlat_rematch_hover") -theme_override_styles/pressed = SubResource("StyleBoxFlat_rematch_pressed") -text = "REMATCH" +theme_override_styles/normal = SubResource("StyleBoxTexture_gqj3c") +theme_override_styles/pressed = SubResource("StyleBoxTexture_o7bn5") +theme_override_styles/hover = SubResource("StyleBoxTexture_0eqys") -[node name="RematchVoteLabel" type="Label" parent="MainMargin/MainHBox/RightSide/RematchHBox"] +[node name="BottomSpacer" type="Control" parent="MainMargin/MainHBox/BottomWrapper/BottomBar" unique_id=263011202] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="RematchHBox" type="HBoxContainer" parent="MainMargin/MainHBox/BottomWrapper" unique_id=307743406] +custom_minimum_size = Vector2(0, 50) +layout_mode = 0 +offset_left = 761.0 +offset_right = 1394.0 +offset_bottom = 86.0 +size_flags_horizontal = 3 +theme_override_constants/separation = 10 +alignment = 2 + +[node name="RematchVoteLabel" type="Label" parent="MainMargin/MainHBox/BottomWrapper/RematchHBox" unique_id=2013869409] unique_name_in_owner = true layout_mode = 2 theme_override_colors/font_color = Color(0.7, 0.7, 0.7, 1) theme_override_fonts/font = ExtResource("2_font") theme_override_font_sizes/font_size = 18 + +[node name="RematchBtn" type="Button" parent="MainMargin/MainHBox/BottomWrapper/RematchHBox" unique_id=1023916356] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 80) +layout_mode = 2 +theme_override_fonts/font = ExtResource("2_font") +theme_override_font_sizes/font_size = 20 +theme_override_styles/normal = SubResource("StyleBoxTexture_37kxa") +theme_override_styles/pressed = SubResource("StyleBoxTexture_3r3oo") +theme_override_styles/hover = SubResource("StyleBoxTexture_cn37d") + +[node name="AchievementPanel" type="Panel" parent="MainMargin/MainHBox/BottomWrapper" unique_id=689276483] +custom_minimum_size = Vector2(165.5, 208) +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.35300002 +anchor_top = -1.9760001 +anchor_right = 0.45800003 +anchor_bottom = 0.42600003 +offset_left = -0.08200073 +offset_top = 0.008010864 +offset_right = 19.047974 +offset_bottom = 8.641998 +rotation = 0.10297442 +theme_override_styles/panel = SubResource("StyleBoxTexture_abdxb") diff --git a/scripts/managers/stop_n_go_manager.gd b/scripts/managers/stop_n_go_manager.gd index 81607d2..88b87a7 100644 --- a/scripts/managers/stop_n_go_manager.gd +++ b/scripts/managers/stop_n_go_manager.gd @@ -14,6 +14,7 @@ var active_safe_zone_rects: Array[Rect2i] = [] var spawned_safe_zones: int = 0 var _safe_zone_animating: bool = false var _outline_nodes: Array[Node3D] = [] # Track perimeter outline containers for cleanup +var _cached_safe_zone_mesh: Mesh = null # Power-Up Tile Spawning const POWERUP_TILES = [11, 14] # Speed, Ghost (Freeze and Wall excluded in this mode) @@ -654,7 +655,10 @@ func _animate_safe_zone_appear(): _safe_zone_animating = false return - var original_mesh = gridmap.mesh_library.get_item_mesh(TILE_SAFE) + if not _cached_safe_zone_mesh: + _cached_safe_zone_mesh = gridmap.mesh_library.get_item_mesh(TILE_SAFE) + + var original_mesh = _cached_safe_zone_mesh if not is_instance_valid(original_mesh): _safe_zone_animating = false return @@ -854,12 +858,10 @@ func _animate_safe_zone_disappear(): var cur_mat = cur_mesh.material if not is_instance_valid(cur_mat): return - var fade_mat: StandardMaterial3D = cur_mat.duplicate() - var fade_mesh = cur_mesh.duplicate() - fade_mesh.material = fade_mat - gridmap.mesh_library.set_item_mesh(TILE_SAFE, fade_mesh) + # Instead of continuously duplicating, use the current duplicated material for tweening. + var fade_mat: StandardMaterial3D = cur_mat - var start_alpha: float = cur_mat.albedo_color.a + var start_alpha: float = fade_mat.albedo_color.a var tween = create_tween() # Phase 1 — Flicker brighten: alpha → 0.95 in 0.15s (warn the player) @@ -895,6 +897,17 @@ func _animate_safe_zone_disappear(): func(a: float): if is_instance_valid(omat): omat.albedo_color.a = a, 1.0, 0.0, 0.4 ).set_ease(Tween.EASE_IN).set_trans(Tween.TRANS_EXPO) + + # Wait for animation to finish, then free outlines locally + await get_tree().create_timer(0.6).timeout + for outline in _outline_nodes: + if is_instance_valid(outline): + outline.queue_free() + _outline_nodes.clear() + + # Restore the original safe zone mesh to prevent material/alpha leakage + if _cached_safe_zone_mesh and gridmap and gridmap.mesh_library: + gridmap.mesh_library.set_item_mesh(TILE_SAFE, _cached_safe_zone_mesh) func _clear_dynamic_safe_zones(): var gridmap = get_parent().get_node_or_null("EnhancedGridMap") @@ -926,11 +939,8 @@ func _clear_dynamic_safe_zones(): active_safe_zone_rects.clear() spawned_safe_zones = 0 - # Free all outline containers now that the animation has finished - for outline in _outline_nodes: - if is_instance_valid(outline): - outline.queue_free() - _outline_nodes.clear() + # Outline deletion and mesh restoration is now handled locally by each client + # at the end of _animate_safe_zone_disappear() func _scatter_player_tiles(player_node: Node): """Server: Take all tiles from player's playerboard and scatter them onto nearby grid cells.""" diff --git a/scripts/tekton.gd b/scripts/tekton.gd index 796c39a..fb017a2 100644 --- a/scripts/tekton.gd +++ b/scripts/tekton.gd @@ -194,17 +194,21 @@ func _process(delta): rotation = carrier.rotation _update_prompt_label() + + if prompt_container and prompt_container.visible: + var time = Time.get_ticks_msec() / 1000.0 + prompt_container.position.y = 2.4 + sin(time * 5.0) * 0.15 var mesh_cache: Array[MeshInstance3D] = [] var original_scales: Array[Vector3] = [] -var prompt_label: Label3D +var prompt_container: Node3D @onready var SettingsManager = get_node_or_null("/root/SettingsManager") func _update_prompt_label(): - if not prompt_label: return + if not prompt_container: return if is_static_turret or is_carried or is_thrown or is_recovering: - prompt_label.visible = false + prompt_container.visible = false return var authority_player = null @@ -215,40 +219,38 @@ func _update_prompt_label(): break if not authority_player: - prompt_label.visible = false + prompt_container.visible = false return # Check distance var player_pos = Vector2(authority_player.current_position.x, authority_player.current_position.y) var tekton_pos = Vector2(current_position.x, current_position.y) if player_pos.distance_to(tekton_pos) > 1.5: - prompt_label.visible = false + prompt_container.visible = false return # Check power bar var pw_mgr = authority_player.get_node_or_null("PowerUpManager") if pw_mgr and pw_mgr.current_boost >= (pw_mgr.MAX_BOOST - 1): - prompt_label.visible = true + prompt_container.visible = true else: - prompt_label.visible = false + prompt_container.visible = false func _ready(): # Cache meshes and their initial scales _cache_meshes(self) - prompt_label = Label3D.new() - var shortcut_text = "G" - if SettingsManager and SettingsManager.has_method("get_control_text"): - shortcut_text = SettingsManager.get_control_text("tekton_grab") - prompt_label.text = "[ " + str(shortcut_text) + " ]" - prompt_label.font_size = 64 - prompt_label.outline_size = 12 - prompt_label.billboard = BaseMaterial3D.BILLBOARD_ENABLED - prompt_label.no_depth_test = true - prompt_label.position = Vector3(0, 1.8, 0) - prompt_label.modulate = Color(1.0, 0.9, 0.0) # Yellow text - prompt_label.visible = false - add_child(prompt_label) + prompt_container = get_node_or_null("InteractionPrompt") + if prompt_container: + prompt_container.visible = false + var key_label = prompt_container.get_node_or_null("KeyLabel") + if key_label: + var shortcut_text = "G" + if SettingsManager and SettingsManager.has_method("get_control_text"): + shortcut_text = SettingsManager.get_control_text("tekton_grab") + key_label.text = "[ " + str(shortcut_text) + " ]" + else: + push_warning("[Tekton] 'InteractionPrompt' node missing. UI will not appear.") func _cache_meshes(node: Node): if node is MeshInstance3D: diff --git a/scripts/ui/game_over_panel.gd b/scripts/ui/game_over_panel.gd index 968138d..7276a25 100644 --- a/scripts/ui/game_over_panel.gd +++ b/scripts/ui/game_over_panel.gd @@ -19,7 +19,10 @@ signal rematch_pressed @onready var player_score_label := %PlayerScoreLabel as Label @onready var completion_value := %CompletionValue as Label @onready var score_value := %ScoreValue as Label -@onready var rank_value := %RankValue as Label +@onready var rank_value := %RankValue as Panel + +# Content Panel +@onready var content_panel := %ContentPanel as PanelContainer # Rank List tab @onready var rank_list_content := %RankListContent as VBoxContainer @@ -87,7 +90,48 @@ func _ready() -> void: func _switch_tab(show_race_result: bool) -> void: race_result_content.visible = show_race_result rank_list_content.visible = not show_race_result - tab_title_label.text = "RACE RESULT" if show_race_result else "RANK LIST" + if tab_title_label: + tab_title_label.text = "RACE RESULT" if show_race_result else "RANK LIST" + + # Tab button styles + var tex_avail_normal = preload("res://assets/graphics/gui/game_over_panel/Button_avail.png") + var tex_avail_click = preload("res://assets/graphics/gui/game_over_panel/Button_avail_click.png") + var tex_avail_hover = preload("res://assets/graphics/gui/game_over_panel/Button_avail_expand.png") + var tex_unavail_normal = preload("res://assets/graphics/gui/game_over_panel/Button_unavail.png") + var tex_unavail_click = preload("res://assets/graphics/gui/game_over_panel/Button_unavail_click.png") + + if show_race_result: + race_result_tab_btn.add_theme_stylebox_override("normal", _get_stylebox(tex_avail_normal)) + race_result_tab_btn.add_theme_stylebox_override("pressed", _get_stylebox(tex_avail_click)) + race_result_tab_btn.add_theme_stylebox_override("hover", _get_stylebox(tex_avail_hover)) + + rank_list_tab_btn.add_theme_stylebox_override("normal", _get_stylebox(tex_unavail_normal)) + rank_list_tab_btn.add_theme_stylebox_override("pressed", _get_stylebox(tex_unavail_click)) + rank_list_tab_btn.add_theme_stylebox_override("hover", _get_stylebox(tex_unavail_normal)) + else: + race_result_tab_btn.add_theme_stylebox_override("normal", _get_stylebox(tex_unavail_normal)) + race_result_tab_btn.add_theme_stylebox_override("pressed", _get_stylebox(tex_unavail_click)) + race_result_tab_btn.add_theme_stylebox_override("hover", _get_stylebox(tex_unavail_normal)) + + rank_list_tab_btn.add_theme_stylebox_override("normal", _get_stylebox(tex_avail_normal)) + rank_list_tab_btn.add_theme_stylebox_override("pressed", _get_stylebox(tex_avail_click)) + rank_list_tab_btn.add_theme_stylebox_override("hover", _get_stylebox(tex_avail_hover)) + + # Content Panel Background + var bg_tex = preload("res://assets/graphics/gui/game_over_panel/raceresult.png") if show_race_result else preload("res://assets/graphics/gui/game_over_panel/ranklist.png") + var bg_style = StyleBoxTexture.new() + bg_style.texture = bg_tex + # Must match margins from tscn: left 50, top 180, right 80, bottom 20 + bg_style.content_margin_left = 50 + bg_style.content_margin_top = 180 + bg_style.content_margin_right = 80 + bg_style.content_margin_bottom = 20 + content_panel.add_theme_stylebox_override("panel", bg_style) + +func _get_stylebox(tex: Texture2D) -> StyleBoxTexture: + var sb = StyleBoxTexture.new() + sb.texture = tex + return sb # ------------------------------------------------------------------------- # Data Population (called by main.gd) @@ -119,14 +163,21 @@ func setup(player_scores: Array, local_peer_id: int) -> void: player_score_label.text = str(local_score) completion_value.text = "%dx" % local_goal_count score_value.text = str(local_score) - rank_value.text = _get_ordinal(local_rank + 1) + + # Update RankValue Panel texture based on rank + var rank_str = _get_ordinal(local_rank + 1) + var rank_tex_path = "res://assets/graphics/gui/game_over_panel/%s.png" % rank_str + if ResourceLoader.exists(rank_tex_path): + var rank_tex = load(rank_tex_path) + var rank_style = StyleBoxTexture.new() + rank_style.texture = rank_tex + rank_value.add_theme_stylebox_override("panel", rank_style) # Rank color var rank_color := Color(0.95, 0.75, 0.1) # Gold if local_rank == 1: rank_color = Color(0.75, 0.75, 0.75) # Silver elif local_rank == 2: rank_color = Color(0.8, 0.5, 0.2) # Bronze elif local_rank > 2: rank_color = Color(0.6, 0.6, 0.6) - rank_value.add_theme_color_override("font_color", rank_color) player_rank_label.add_theme_color_override("font_color", rank_color) # --- Rank List tab --- @@ -199,6 +250,13 @@ func _setup_3d_preview() -> void: if not character_root: return _anim_player = character_root.get_node_or_null("AnimationPlayer") + _set_layers_recursive(character_root, 512) + +func _set_layers_recursive(node: Node, layer_mask: int) -> void: + if node is VisualInstance3D: + node.layers = layer_mask + for child in node.get_children(): + _set_layers_recursive(child, layer_mask) func _update_3d_preview(character_name: String) -> void: if not character_root: