Merge remote-tracking branch 'upstream/main' into player-related-changes

This commit is contained in:
SkyanUltra 2025-12-03 07:01:05 -05:00
commit 6be9f0b8f5
29 changed files with 3247 additions and 734 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bx7jvtnfom4ik"
path="res://.godot/imported/DayLevelIcons.png-6cf9f039701f5af6b2ebbc4c2d093290.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/LevelIcons/DayLevelIcons.png"
dest_files=["res://.godot/imported/DayLevelIcons.png-6cf9f039701f5af6b2ebbc4c2d093290.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

View file

@ -0,0 +1,235 @@
{
"icon_size": [56, 32],
"icon_data": {
"SMB1_ICONS": [
[
["day", [0,0]],
["day", [0,4]],
["day", [1,0]],
["day", [1,4]],
],
[
["day", [0,2]],
["day", [3,1]],
["day", [1,2]],
["day", [1,5]],
],
[
["day", [0,0]],
["day", [0,1]],
["day", [1,0]],
["day", [1,4]],
],
[
["day", [0,1]],
["day", [0,5]],
["day", [1,3]],
["day", [1,6]],
],
[
["night", [0,1]],
["night", [0,3]],
["night", [1,0]],
["night", [1,5]],
],
[
["night", [0,0]],
["night", [0,2]],
["night", [1,1]],
["night", [1,4]],
],
[
["night", [0,3]],
["night", [0,4]],
["night", [1,2]],
["night", [1,5]],
],
[
["night", [0,1]],
["night", [0,3]],
["night", [2,0]],
["night", [1,6]],
],
],
"SMBLL_ICONS": [
[
["day", [0,2]],
["day", [0,7]],
["day", [1,0]],
["day", [1,4]],
],
[
["day", [1,2]],
["day", [0,1]],
["day", [1,2]],
["day", [1,7]],
],
[
["day", [0,3]],
["day", [3,0]],
["day", [1,1]],
["day", [1,6]],
],
[
["day", [0,1]],
["day", [0,3]],
["day", [1,1]],
["day", [1,5]],
],
[
["night", [0,2]],
["night", [0,6]],
["night", [1,0]],
["night", [1,5]],
],
[
["night", [0,0]],
["night", [3,1]],
["night", [1,2]],
["night", [1,7]],
],
[
["night", [0,2]],
["night", [1,2]],
["night", [1,1]],
["night", [1,5]],
],
[
["night", [0,2]],
["night", [2,0]],
["night", [2,2]],
["night", [1,7]],
],
[
["night", [0,0]],
["night", [3,6]],
["night", [3,7]],
["night", [4,4]],
],
[
["day", [0,2]],
["day", [0,5]],
["day", [1,0]],
["day", [1,4]],
],
[
["day", [0,0]],
["day", [3,1]],
["day", [1,1]],
["day", [1,6]],
],
[
["day", [0,2]],
["day", [1,0]],
["day", [1,1]],
["day", [1,5]],
],
[
["day", [2,6]],
["day", [2,6]],
["day", [2,7]],
["day", [1,7]],
],
],
"SMBS_ICONS": [
[
["day", [0,1]],
["day", [0,4]],
["day", [1,0]],
["day", [1,6]],
],
[
["day", [0,0]],
["day", [3,1]],
["day", [1,2]],
["day", [1,7]],
],
[
["day", [3,0]],
["day", [1,2]],
["day", [1,0]],
["day", [1,4]],
],
[
["day", [0,1]],
["day", [0,5]],
["day", [1,3]],
["day", [1,6]],
],
[
["night", [0,1]],
["night", [0,0]],
["night", [1,0]],
["night", [1,5]],
],
[
["night", [0,1]],
["night", [0,2]],
["night", [1,0]],
["night", [1,4]],
],
[
["night", [0,3]],
["night", [3,1]],
["night", [1,2]],
["night", [1,7]],
],
[
["night", [1,3]],
["night", [2,1]],
["night", [0,7]],
["night", [1,5]],
],
],
"SMBANN_ICONS": [
[
["night", [0,0]],
["night", [0,4]],
["night", [1,0]],
["night", [1,4]],
],
[
["night", [0,2]],
["night", [3,1]],
["night", [1,2]],
["night", [1,5]],
],
[
["night", [0,0]],
["night", [0,1]],
["night", [1,0]],
["night", [1,4]],
],
[
["night", [0,1]],
["night", [0,5]],
["night", [1,3]],
["night", [1,6]],
],
[
["night", [0,1]],
["night", [0,3]],
["night", [1,1]],
["night", [1,7]],
],
[
["night", [0,0]],
["night", [0,2]],
["night", [1,1]],
["night", [1,5]],
],
[
["night", [0,3]],
["night", [3,1]],
["night", [1,2]],
["night", [1,5]],
],
[
["night", [0,1]],
["night", [0,3]],
["night", [2,0]],
["night", [1,7]],
],
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxx6r6wjnkfqo"
path="res://.godot/imported/LockedLevelIcon.png-37b1e7a62a34d00d34a37d8e54f17024.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/LevelIcons/LockedLevelIcon.png"
dest_files=["res://.godot/imported/LockedLevelIcon.png-37b1e7a62a34d00d34a37d8e54f17024.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: 14 KiB

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bgjedrd2p0j04"
path="res://.godot/imported/NightLevelIcons.png-ea0f1c34b333a381e0d0071d5de93bde.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/LevelIcons/NightLevelIcons.png"
dest_files=["res://.godot/imported/NightLevelIcons.png-ea0f1c34b333a381e0d0071d5de93bde.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: 140 B

View file

@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://wb67mbrs5u05"
path="res://.godot/imported/LevelIcons.png-4b08ffadb3e3163a4d083656ccffc674.ctex"
uid="uid://b4vej1pkyqomg"
path="res://.godot/imported/PanelHover.png-41824b38e004dba7008ad1f1352f9881.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/LevelIcons.png"
dest_files=["res://.godot/imported/LevelIcons.png-4b08ffadb3e3163a4d083656ccffc674.ctex"]
source_file="res://Assets/Sprites/UI/PanelHover.png"
dest_files=["res://.godot/imported/PanelHover.png-41824b38e004dba7008ad1f1352f9881.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvchqrf0fdg5x"
path="res://.godot/imported/ProgressTrackerIcons.png-0767a59884d1e021b878d6efc1d518dd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/ProgressTrackerIcons.png"
dest_files=["res://.godot/imported/ProgressTrackerIcons.png-0767a59884d1e021b878d6efc1d518dd.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.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Before After
Before After

View file

@ -1,14 +1,47 @@
[gd_resource type="Theme" load_steps=39 format=3 uid="uid://dtn507x2b5de7"]
[gd_resource type="Theme" load_steps=57 format=3 uid="uid://dtn507x2b5de7"]
[ext_resource type="FontVariation" uid="uid://bl7sbw4nx3l1t" path="res://Resources/ThemedResources/FontMain.tres" id="1_kpcpn"]
[ext_resource type="Texture2D" uid="uid://7qtdxl2cjxeh" path="res://Assets/Sprites/UI/Checkbox.png" id="1_rioqa"]
[ext_resource type="Texture2D" uid="uid://dp4b0cpisp5cs" path="res://Assets/Sprites/UI/Arrow.png" id="1_vmxg5"]
[ext_resource type="Texture2D" uid="uid://b4vej1pkyqomg" path="res://Assets/Sprites/UI/PanelHover.png" id="2_2ratw"]
[ext_resource type="Texture2D" uid="uid://bnv2ocqgws3p7" path="res://Assets/Sprites/UI/Panel.png" id="2_rij67"]
[ext_resource type="Texture2D" uid="uid://da1j4turmb4rt" path="res://Assets/Sprites/UI/EditorOptionButtonIcon.png" id="3_dbcfw"]
[ext_resource type="Texture2D" uid="uid://bhgjvnslkt143" path="res://Assets/Sprites/UI/PanelSelected.png" id="3_eltnc"]
[ext_resource type="Texture2D" uid="uid://bcvq28r3d3pij" path="res://Assets/Sprites/UI/ScrollBar.png" id="5_xbsuy"]
[ext_resource type="Texture2D" uid="uid://dktb2ljmou31p" path="res://Resources/UI/Cursor.tres" id="6_f6qpy"]
[ext_resource type="Texture2D" uid="uid://m14upykpri8v" path="res://Assets/Sprites/UI/SpinBoxArrows.png" id="7_f6qpy"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_w50ow"]
texture = ExtResource("2_rij67")
texture_margin_left = 4.0
texture_margin_top = 4.0
texture_margin_right = 4.0
texture_margin_bottom = 4.0
modulate_color = Color(0.5, 0.5, 0.5, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_2ratw"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_pbjdw"]
texture = ExtResource("2_2ratw")
texture_margin_left = 4.0
texture_margin_top = 4.0
texture_margin_right = 4.0
texture_margin_bottom = 4.0
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_u3www"]
texture = ExtResource("2_rij67")
texture_margin_left = 4.0
texture_margin_top = 4.0
texture_margin_right = 4.0
texture_margin_bottom = 4.0
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_7t41e"]
texture = ExtResource("3_eltnc")
texture_margin_left = 4.0
texture_margin_top = 4.0
texture_margin_right = 4.0
texture_margin_bottom = 4.0
[sub_resource type="AtlasTexture" id="AtlasTexture_f6qpy"]
atlas = ExtResource("1_rioqa")
region = Rect2(16, 0, 16, 16)
@ -17,8 +50,30 @@ region = Rect2(16, 0, 16, 16)
atlas = ExtResource("1_rioqa")
region = Rect2(0, 0, 16, 16)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_eltnc"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_f6qpy"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_w50ow"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pbjdw"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1cpra"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ont7o"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_bomg6"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sonp3"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_lk3ve"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ddui1"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wiser"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wud1c"]
[sub_resource type="AtlasTexture" id="AtlasTexture_brolu"]
atlas = ExtResource("1_vmxg5")
region = Rect2(0, 0, 8, 8)
@ -145,11 +200,29 @@ region_rect = Rect2(12, 0, 11, 12)
[resource]
default_font = ExtResource("1_kpcpn")
Button/colors/font_color = Color(1, 1, 1, 1)
Button/colors/font_pressed_color = Color(0, 1, 0, 1)
Button/styles/disabled = SubResource("StyleBoxTexture_w50ow")
Button/styles/focus = SubResource("StyleBoxEmpty_2ratw")
Button/styles/hover = SubResource("StyleBoxTexture_pbjdw")
Button/styles/normal = SubResource("StyleBoxTexture_u3www")
Button/styles/pressed = SubResource("StyleBoxTexture_7t41e")
CheckBox/icons/checked = SubResource("AtlasTexture_f6qpy")
CheckBox/icons/radio_checked = SubResource("AtlasTexture_f6qpy")
CheckBox/icons/radio_unchecked = SubResource("AtlasTexture_wytm8")
CheckBox/icons/unchecked = SubResource("AtlasTexture_wytm8")
CheckBox/styles/disabled = SubResource("StyleBoxEmpty_eltnc")
CheckBox/styles/focus = SubResource("StyleBoxEmpty_f6qpy")
CheckBox/styles/hover = SubResource("StyleBoxEmpty_w50ow")
CheckBox/styles/hover_pressed = SubResource("StyleBoxEmpty_pbjdw")
CheckBox/styles/normal = SubResource("StyleBoxEmpty_1cpra")
CheckBox/styles/pressed = SubResource("StyleBoxEmpty_ont7o")
CheckButton/styles/disabled = SubResource("StyleBoxEmpty_bomg6")
CheckButton/styles/focus = SubResource("StyleBoxEmpty_sonp3")
CheckButton/styles/hover = SubResource("StyleBoxEmpty_lk3ve")
CheckButton/styles/hover_pressed = SubResource("StyleBoxEmpty_ddui1")
CheckButton/styles/normal = SubResource("StyleBoxEmpty_wiser")
CheckButton/styles/pressed = SubResource("StyleBoxEmpty_wud1c")
FoldableContainer/colors/font_color = Color(1, 1, 1, 1)
FoldableContainer/icons/expanded_arrow = SubResource("AtlasTexture_brolu")
FoldableContainer/icons/folded_arrow = SubResource("AtlasTexture_ifwja")

View file

@ -607,13 +607,13 @@ animations = [{
"speed": 15.0
}]
[node name="ChallengeModeResults" type="Node"]
[node name="ChallengeModeResults" type="Node" unique_id=1344692039]
script = ExtResource("1_3x4fv")
[node name="BG" type="CanvasLayer" parent="."]
[node name="BG" type="CanvasLayer" parent="." unique_id=2056593822]
layer = -1
[node name="ColorRect" type="ColorRect" parent="BG"]
[node name="ColorRect" type="ColorRect" parent="BG" unique_id=398032741]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@ -621,10 +621,10 @@ grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="Camera" type="Camera2D" parent="."]
[node name="Camera" type="Camera2D" parent="." unique_id=2090750111]
process_callback = 0
[node name="Sprite2D2" type="Sprite2D" parent="."]
[node name="Sprite2D2" type="Sprite2D" parent="." unique_id=1857730228]
visible = false
modulate = Color(0.261477, 0.261477, 0.261477, 1)
visibility_layer = 2
@ -633,14 +633,14 @@ texture = ExtResource("3_um36a")
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=606335083]
visibility_layer = 2
z_index = -4096
position = Vector2(0, -8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Sprite2D3" type="Sprite2D" parent="Sprite2D"]
[node name="Sprite2D3" type="Sprite2D" parent="Sprite2D" unique_id=1044616586]
visibility_layer = 2
z_index = 5
z_as_relative = false
@ -648,7 +648,7 @@ position = Vector2(-76, 56)
region_enabled = true
region_rect = Rect2(0, 0, 8, 64)
[node name="Overlay" type="ColorRect" parent="Sprite2D/Sprite2D3"]
[node name="Overlay" type="ColorRect" parent="Sprite2D/Sprite2D3" unique_id=442302167]
visible = false
offset_left = -60.0
offset_top = -32.0
@ -656,7 +656,7 @@ offset_right = -4.0
offset_bottom = 32.0
color = Color(0, 0, 0, 1)
[node name="Score" type="Label" parent="Sprite2D/Sprite2D3"]
[node name="Score" type="Label" parent="Sprite2D/Sprite2D3" unique_id=542029849]
offset_left = 8.0
offset_top = 56.0
offset_right = 56.0
@ -664,7 +664,7 @@ offset_bottom = 64.0
text = "CHALLENGE_DIALOGUE_SCORE"
uppercase = true
[node name="ScoreText" type="Label" parent="Sprite2D/Sprite2D3"]
[node name="ScoreText" type="Label" parent="Sprite2D/Sprite2D3" unique_id=1218819375]
offset_left = 44.0
offset_top = 56.0
offset_right = 108.0
@ -672,7 +672,7 @@ offset_bottom = 79.0
text = "0"
horizontal_alignment = 2
[node name="Target" type="Label" parent="Sprite2D/Sprite2D3/ScoreText"]
[node name="Target" type="Label" parent="Sprite2D/Sprite2D3/ScoreText" unique_id=700581250]
layout_mode = 1
anchors_preset = -1
anchor_left = 1.0
@ -684,7 +684,7 @@ theme_override_colors/font_color = Color(0.462745, 0.52549, 1, 1)
text = "/00000"
horizontal_alignment = 2
[node name="Coins2" type="Label" parent="Sprite2D/Sprite2D3"]
[node name="Coins2" type="Label" parent="Sprite2D/Sprite2D3" unique_id=1876682854]
offset_left = 8.0
offset_top = 40.0
offset_right = 56.0
@ -692,11 +692,11 @@ offset_bottom = 48.0
text = "CHALLENGE_DIALOGUE_COINS"
uppercase = true
[node name="Coins" type="Node2D" parent="Sprite2D/Sprite2D3"]
[node name="Coins" type="Node2D" parent="Sprite2D/Sprite2D3" unique_id=897187102]
visible = false
position = Vector2(72, 12)
[node name="1" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins"]
[node name="1" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins" unique_id=1528461058]
position = Vector2(-5, 36)
texture = ExtResource("10_d76il")
hframes = 2
@ -704,7 +704,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="2" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins"]
[node name="2" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins" unique_id=1836829558]
position = Vector2(3, 36)
texture = ExtResource("10_d76il")
hframes = 2
@ -713,7 +713,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="3" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins"]
[node name="3" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins" unique_id=831763568]
position = Vector2(11, 36)
texture = ExtResource("10_d76il")
hframes = 2
@ -722,7 +722,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="4" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins"]
[node name="4" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins" unique_id=696674550]
position = Vector2(19, 36)
texture = ExtResource("10_d76il")
hframes = 2
@ -731,7 +731,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="5" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins"]
[node name="5" type="Sprite2D" parent="Sprite2D/Sprite2D3/Coins" unique_id=1701753957]
position = Vector2(27, 36)
texture = ExtResource("10_d76il")
hframes = 2
@ -740,15 +740,15 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Sprite2D" type="Sprite2D" parent="Sprite2D"]
[node name="Sprite2D" type="Sprite2D" parent="Sprite2D" unique_id=849347414]
position = Vector2(-28, 44)
texture = ExtResource("6_moc5y")
[node name="Sprite2D2" type="Sprite2D" parent="Sprite2D"]
[node name="Sprite2D2" type="Sprite2D" parent="Sprite2D" unique_id=1148794137]
position = Vector2(-28, 60)
texture = ExtResource("6_moc5y")
[node name="PlayerSprite" type="AnimatedSprite2D" parent="." node_paths=PackedStringArray("resource_setter")]
[node name="PlayerSprite" type="AnimatedSprite2D" parent="." unique_id=1537245075 node_paths=PackedStringArray("resource_setter")]
position = Vector2(-96, 0)
sprite_frames = ExtResource("4_u7ohs")
animation = &"Move"
@ -759,15 +759,15 @@ script = ExtResource("5_x1tpn")
resource_setter = NodePath("ResourceSetterNew")
metadata/_custom_type_script = "uid://b08qfwj5jk6g1"
[node name="ResourceSetterNew" type="Node" parent="PlayerSprite"]
[node name="ResourceSetterNew" type="Node" parent="PlayerSprite" unique_id=951425779]
script = ExtResource("7_bob8r")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="ChallengeResults" type="AudioStreamPlayer" parent="."]
[node name="ChallengeResults" type="AudioStreamPlayer" parent="." unique_id=1689039047]
stream = ExtResource("7_6dwpv")
bus = &"Music"
[node name="ResourceSetterNew" type="Node" parent="ChallengeResults" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="ChallengeResults" unique_id=127176486 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_bob8r")
node_to_affect = NodePath("..")
property_name = "stream"
@ -775,11 +775,11 @@ mode = 2
resource_json = ExtResource("12_fb45j")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="ChallengeEnd" type="AudioStreamPlayer" parent="."]
[node name="ChallengeEnd" type="AudioStreamPlayer" parent="." unique_id=377169015]
stream = ExtResource("12_x7w5s")
bus = &"Music"
[node name="ResourceSetterNew" type="Node" parent="ChallengeEnd" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="ChallengeEnd" unique_id=593640018 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_bob8r")
node_to_affect = NodePath("..")
property_name = "stream"
@ -787,21 +787,21 @@ mode = 2
resource_json = ExtResource("12_y63tt")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="MainSequence" type="AnimationPlayer" parent="."]
[node name="MainSequence" type="AnimationPlayer" parent="." unique_id=877815898]
libraries = {
&"": SubResource("AnimationLibrary_nud7a")
}
autoplay = "Main"
autoplay = &"Main"
speed_scale = 0.8
[node name="Toad" type="AnimatedSprite2D" parent="."]
[node name="Toad" type="AnimatedSprite2D" parent="." unique_id=130158692]
position = Vector2(56, 0)
sprite_frames = SubResource("SpriteFrames_woqpu")
animation = &"1Idle"
autoplay = "Idle"
speed_scale = 2.0
[node name="ResourceSetterNew" type="Node" parent="Toad" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="Toad" unique_id=826345731 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_bob8r")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
@ -809,7 +809,7 @@ resource_json = ExtResource("14_sv6qk")
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="SpeechBubble" type="Sprite2D" parent="."]
[node name="SpeechBubble" type="Sprite2D" parent="." unique_id=579725043]
visible = false
visibility_layer = 2
position = Vector2(-24, -40)
@ -818,7 +818,7 @@ centered = false
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Your" type="Label" parent="SpeechBubble"]
[node name="Your" type="Label" parent="SpeechBubble" unique_id=1272803665]
visible = false
material = SubResource("ShaderMaterial_1l20f")
offset_left = 1.0
@ -828,7 +828,7 @@ offset_bottom = 27.0
text = "your"
uppercase = true
[node name="Results" type="Label" parent="SpeechBubble/Your"]
[node name="Results" type="Label" parent="SpeechBubble/Your" unique_id=1456303163]
use_parent_material = true
layout_mode = 0
offset_left = 27.0
@ -838,7 +838,7 @@ offset_bottom = 31.0
text = "results"
uppercase = true
[node name="Coins" type="Label" parent="SpeechBubble"]
[node name="Coins" type="Label" parent="SpeechBubble" unique_id=893262062]
visible = false
material = SubResource("ShaderMaterial_1l20f")
offset_left = -1.0
@ -848,10 +848,10 @@ offset_bottom = 27.0
text = "CHALLENGE_DIALOGUE_COINS"
uppercase = true
[node name="Node2D" type="Node2D" parent="SpeechBubble/Coins"]
[node name="Node2D" type="Node2D" parent="SpeechBubble/Coins" unique_id=1703833338]
visible = false
[node name="1" type="Sprite2D" parent="SpeechBubble/Coins/Node2D"]
[node name="1" type="Sprite2D" parent="SpeechBubble/Coins/Node2D" unique_id=277536899]
position = Vector2(52, 12)
texture = ExtResource("10_d76il")
centered = false
@ -861,7 +861,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="2" type="Sprite2D" parent="SpeechBubble/Coins/Node2D"]
[node name="2" type="Sprite2D" parent="SpeechBubble/Coins/Node2D" unique_id=158042035]
position = Vector2(60, 12)
texture = ExtResource("10_d76il")
centered = false
@ -871,7 +871,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="3" type="Sprite2D" parent="SpeechBubble/Coins/Node2D"]
[node name="3" type="Sprite2D" parent="SpeechBubble/Coins/Node2D" unique_id=1546774830]
position = Vector2(68, 12)
texture = ExtResource("10_d76il")
centered = false
@ -881,7 +881,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="4" type="Sprite2D" parent="SpeechBubble/Coins/Node2D"]
[node name="4" type="Sprite2D" parent="SpeechBubble/Coins/Node2D" unique_id=1306926662]
position = Vector2(76, 12)
texture = ExtResource("10_d76il")
centered = false
@ -891,7 +891,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="5" type="Sprite2D" parent="SpeechBubble/Coins/Node2D"]
[node name="5" type="Sprite2D" parent="SpeechBubble/Coins/Node2D" unique_id=1225162184]
position = Vector2(84, 12)
texture = ExtResource("10_d76il")
centered = false
@ -901,7 +901,7 @@ region_rect = Rect2(8, 0, 8, 8)
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Score" type="Label" parent="SpeechBubble"]
[node name="Score" type="Label" parent="SpeechBubble" unique_id=784135289]
visible = false
material = SubResource("ShaderMaterial_1l20f")
offset_left = -1.0
@ -911,7 +911,7 @@ offset_bottom = 27.0
text = "CHALLENGE_DIALOGUE_SCORE"
uppercase = true
[node name="ScoreLabel" type="Label" parent="SpeechBubble/Score"]
[node name="ScoreLabel" type="Label" parent="SpeechBubble/Score" unique_id=427565371]
visible = false
material = SubResource("ShaderMaterial_1l20f")
layout_mode = 0
@ -924,14 +924,14 @@ horizontal_alignment = 2
vertical_alignment = 2
uppercase = true
[node name="Sprite2D3" type="Sprite2D" parent="."]
[node name="Sprite2D3" type="Sprite2D" parent="." unique_id=1441403262]
position = Vector2(58, -112)
texture = ExtResource("11_02i7h")
centered = false
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="RedCoins" type="Sprite2D" parent="Sprite2D3"]
[node name="RedCoins" type="Sprite2D" parent="Sprite2D3" unique_id=1811034064]
visible = false
position = Vector2(14, 13)
texture = ExtResource("14_woqpu")
@ -939,7 +939,7 @@ hframes = 2
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Score" type="Sprite2D" parent="Sprite2D3"]
[node name="Score" type="Sprite2D" parent="Sprite2D3" unique_id=1066650364]
visible = false
position = Vector2(30, 13)
texture = ExtResource("14_woqpu")
@ -948,7 +948,7 @@ frame = 1
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="YoshiEgg" type="Sprite2D" parent="Sprite2D3"]
[node name="YoshiEgg" type="Sprite2D" parent="Sprite2D3" unique_id=1296085224]
visible = false
position = Vector2(46, 12)
texture = ExtResource("16_1h3k2")
@ -957,27 +957,27 @@ vframes = 4
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="TalkSFX" type="AudioStreamPlayer" parent="."]
[node name="TalkSFX" type="AudioStreamPlayer" parent="." unique_id=414429401]
stream = ExtResource("9_qaelr")
bus = &"SFX"
script = ExtResource("21_xk7j8")
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="." unique_id=2109458546]
process_mode = 3
stream = ExtResource("11_nym8o")
bus = &"SFX"
script = ExtResource("21_xk7j8")
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
[node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="."]
[node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="." unique_id=1824179585]
process_mode = 3
stream = ExtResource("16_eupxr")
bus = &"SFX"
script = ExtResource("21_xk7j8")
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
[node name="Yoshi" type="AnimatedSprite2D" parent="."]
[node name="Yoshi" type="AnimatedSprite2D" parent="." unique_id=227881632]
process_mode = 3
visible = false
position = Vector2(16, 0)
@ -986,34 +986,34 @@ animation = &"1"
autoplay = "1"
frame_progress = 0.466158
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="Yoshi"]
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="Yoshi" unique_id=1372566037]
visible = false
stream = ExtResource("19_n4lt1")
volume_db = 5.0
bus = &"SFX"
[node name="ResourceSetter" type="Node" parent="Yoshi/AudioStreamPlayer2D" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetter" type="Node" parent="Yoshi/AudioStreamPlayer2D" unique_id=377762125 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("9_iyieq")
node_to_affect = NodePath("..")
property_name = "stream"
themed_resource = SubResource("Resource_vohx7")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="ResourceSetterNew" type="Node" parent="Yoshi" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="Yoshi" unique_id=1898262442 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_bob8r")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("23_vohx7")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="SmokeParticle" type="AnimatedSprite2D" parent="."]
[node name="SmokeParticle" type="AnimatedSprite2D" parent="." unique_id=865577033]
position = Vector2(16, 0)
scale = Vector2(2, 2)
sprite_frames = SubResource("SpriteFrames_bob8r")
frame = 4
frame_progress = 1.0
[node name="Label" type="Label" parent="."]
[node name="Label" type="Label" parent="." unique_id=373370055]
offset_left = -112.0
offset_top = -112.0
offset_right = -64.0
@ -1021,7 +1021,7 @@ offset_bottom = -89.0
text = "world"
uppercase = true
[node name="WorldLevel" type="Label" parent="."]
[node name="WorldLevel" type="Label" parent="." unique_id=1548529906]
offset_left = -104.0
offset_top = -104.0
offset_right = -72.0
@ -1030,9 +1030,9 @@ text = "1-1"
horizontal_alignment = 1
uppercase = true
[node name="DropShadow" parent="." instance=ExtResource("21_bob8r")]
[node name="DropShadow" parent="." unique_id=357749683 instance=ExtResource("21_bob8r")]
[node name="Label2" type="Label" parent="."]
[node name="Label2" type="Label" parent="." unique_id=706098611]
visible = false
visibility_layer = 2
z_index = 4096
@ -1047,39 +1047,39 @@ horizontal_alignment = 1
vertical_alignment = 2
uppercase = true
[node name="LabelFontChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
[node name="LabelFontChanger" type="Node" parent="." unique_id=1370610741 node_paths=PackedStringArray("labels")]
script = ExtResource("24_cq5a1")
labels = [NodePath("../Sprite2D/Sprite2D3/Score"), NodePath("../Sprite2D/Sprite2D3/Coins2"), NodePath("../Sprite2D/Sprite2D3/ScoreText"), NodePath("../Sprite2D/Sprite2D3/ScoreText/Target"), null, NodePath("../SpeechBubble/Your"), NodePath("../SpeechBubble/Your/Results"), NodePath("../SpeechBubble/Coins"), NodePath("../SpeechBubble/Score"), NodePath("../SpeechBubble/Score/ScoreLabel"), NodePath("../Label"), NodePath("../WorldLevel"), NodePath("../Label2")]
metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
[node name="BG2" type="Node2D" parent="."]
[node name="BG2" type="Node2D" parent="." unique_id=2095273623]
z_index = -50
position = Vector2(0, -8)
[node name="PackSprite3" type="Sprite2D" parent="BG2"]
[node name="PackSprite3" type="Sprite2D" parent="BG2" unique_id=986269619]
visibility_layer = 2
z_index = -4096
texture = ExtResource("27_w3bjn")
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="PackSprite2" type="Sprite2D" parent="BG2"]
[node name="PackSprite2" type="Sprite2D" parent="BG2" unique_id=1934819400]
texture = ExtResource("28_vohx7")
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="PackSprite4" type="Sprite2D" parent="BG2"]
[node name="PackSprite4" type="Sprite2D" parent="BG2" unique_id=934123746]
texture = ExtResource("29_1l20f")
script = ExtResource("3_xe6g7")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=2137081576]
[node name="PauseMenu" parent="CanvasLayer" instance=ExtResource("31_1l20f")]
[node name="PauseMenu" parent="CanvasLayer" unique_id=461587507 instance=ExtResource("31_1l20f")]
visible = false
can_exit = false
[node name="WorldSelect" parent="CanvasLayer" instance=ExtResource("32_xk7j8")]
[node name="WorldSelect" parent="CanvasLayer" unique_id=978391179 instance=ExtResource("32_xk7j8")]
visible = false
anchors_preset = 8
anchor_left = 0.5
@ -1092,8 +1092,9 @@ offset_right = 90.0
offset_bottom = 32.5
grow_horizontal = 2
grow_vertical = 2
has_challenge_stuff = true
[node name="LevelSelect" parent="CanvasLayer" instance=ExtResource("33_x7w5s")]
[node name="LevelSelect" parent="CanvasLayer" unique_id=178968045 instance=ExtResource("33_x7w5s")]
visible = false
anchors_preset = 8
anchor_left = 0.5

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=27 format=3 uid="uid://d0mmkuq7wtpcl"]
[gd_scene load_steps=29 format=3 uid="uid://d0mmkuq7wtpcl"]
[ext_resource type="Theme" uid="uid://dtn507x2b5de7" path="res://Resources/Theme.tres" id="1_qwra1"]
[ext_resource type="Script" uid="uid://dhxt5av5njyiv" path="res://Scripts/UI/RomVerifier.gd" id="1_r85ci"]
@ -59,6 +59,12 @@ script = ExtResource("8_c20ch")
Overworld = SubResource("Resource_22hnx")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="InputEventAction" id="InputEventAction_2ok7u"]
action = &"ui_accept"
[sub_resource type="Shortcut" id="Shortcut_5175m"]
events = [SubResource("InputEventAction_2ok7u")]
[sub_resource type="AtlasTexture" id="AtlasTexture_sxtnd"]
atlas = ExtResource("2_r85ci")
region = Rect2(0, 0, 16, 16)
@ -157,6 +163,23 @@ theme_override_constants/margin_bottom = 16
unique_name_in_owner = true
layout_mode = 2
[node name="SelectRom" type="Button" parent="BG/Border/MarginContainer/DefaultText"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = -1
anchor_left = 0.157
anchor_top = 0.52900004
anchor_right = 0.84300005
anchor_bottom = 0.64400005
offset_left = -0.08600044
offset_top = -0.03201294
offset_right = 0.08598328
offset_bottom = 0.04801941
shortcut = SubResource("Shortcut_5175m")
shortcut_in_tooltip = false
text = "BROWSE FILES..."
autowrap_mode = 2
[node name="Label" type="Label" parent="BG/Border/MarginContainer/DefaultText"]
layout_mode = 1
anchors_preset = -1
@ -164,22 +187,36 @@ anchor_right = 1.0
offset_bottom = 16.0
grow_horizontal = 2
size_flags_vertical = 0
text = "ROM VERIFICATION REQUIRED!"
text = "VERIFICATION REQUIRED!"
horizontal_alignment = 1
autowrap_mode = 2
[node name="ColorRect" type="ColorRect" parent="BG/Border/MarginContainer/DefaultText/Label"]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_left = 9.200001
offset_top = 13.0
offset_right = -10.800003
offset_bottom = 14.0
grow_horizontal = 2
[node name="Label2" type="Label" parent="BG/Border/MarginContainer/DefaultText"]
layout_mode = 1
anchors_preset = 15
anchors_preset = -1
anchor_top = 0.082
anchor_right = 1.0
anchor_bottom = 1.0
anchor_bottom = 0.505
offset_left = -4.799999
offset_top = -0.055999756
offset_right = -4.800003
offset_bottom = -0.040000916
grow_horizontal = 2
grow_vertical = 2
text = "Please Drag and drop your vanilla WORLD \"super mario bros\" rom onto the window."
text = "PLEASE PROVIDE A VANILLA ROM FILE FOR \"SUPER MARIO BROS.\" BY SELECTING THE ROM IN YOUR FILES OR DRAGGING THE ROM FILE OVER THE GAME WINDOW."
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
uppercase = true
[node name="Error" type="Label" parent="BG/Border/MarginContainer/DefaultText"]
unique_name_in_owner = true
@ -194,9 +231,9 @@ offset_top = -40.0
grow_horizontal = 2
grow_vertical = 0
size_flags_vertical = 8
text = "ERROR VERIFYING ROM!
text = "INVALID ROM HEADER!
ARE YOU SURE ITS A VALID VANILLA NES SMB1 ROM?"
ARE YOU SURE THIS IS A VANILLA ROM OF SMB1?"
horizontal_alignment = 1
autowrap_mode = 2
@ -213,7 +250,28 @@ offset_top = -40.0
grow_horizontal = 2
grow_vertical = 0
size_flags_vertical = 8
text = "PLEASE EXTRACT THE ROM FILE, OUT OF THE ZIP FIRST"
text = "ERROR EXTRACTING ROM!
ENSURE YOUR ROM ISN'T STORED IN A COMPRESSED FILE FORMAT!"
horizontal_alignment = 1
autowrap_mode = 2
[node name="ExtensionError" type="Label" parent="BG/Border/MarginContainer/DefaultText"]
unique_name_in_owner = true
visible = false
modulate = Color(0.99999994, 0.17417294, 0.12721592, 1)
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -40.0
grow_horizontal = 2
grow_vertical = 0
size_flags_vertical = 8
text = "ERROR VERIFYING ROM!
ARE YOU SURE THIS IS A ROM IMAGE FILE?"
horizontal_alignment = 1
autowrap_mode = 2
@ -245,3 +303,22 @@ stream = ExtResource("11_4o1wk")
[node name="ErrorSFX" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_2ok7u")
[node name="FileDialog" type="FileDialog" parent="."]
oversampling_override = 1.0
title = "SELECT A VALID ROM"
size = Vector2i(352, 240)
popup_window = true
ok_button_text = "OPEN"
dialog_hide_on_ok = true
cancel_button_text = "CANCEL"
file_mode = 0
access = 2
filters = PackedStringArray("*.nes", "*.nez", "*.fds", "*.qd", "*.unf", "*.unif", "*.nsf", "*.nsfe")
use_native_dialog = true
folder_creation_enabled = false
favorites_enabled = false
recent_list_enabled = false
[connection signal="file_selected" from="FileDialog" to="." method="handle_rom"]
[connection signal="files_selected" from="FileDialog" to="." method="on_file_dropped"]

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=40 format=3 uid="uid://d0eoxuntnuej5"]
[gd_scene load_steps=41 format=3 uid="uid://d0eoxuntnuej5"]
[ext_resource type="PackedScene" uid="uid://bpbs3060xjy06" path="res://Scenes/Levels/SMB1/World7/7-3.tscn" id="1_41ghk"]
[ext_resource type="JSON" path="res://Assets/Audio/BGM/Overworld.json" id="2_llbsp"]
[ext_resource type="Texture2D" uid="uid://dt0qtxu2l646n" path="res://Assets/Sprites/Tilesets/Terrain/Overworld.png" id="2_qwk22"]
[ext_resource type="PackedScene" uid="uid://dsa8lpl7n8ge0" path="res://Scenes/Prefabs/Blocks/BrickBlocks/BrickBlock.tscn" id="3_llbsp"]
[ext_resource type="PackedScene" uid="uid://dpukj2ja3i3qj" path="res://Scenes/Prefabs/Blocks/BrickBlocks/StarBrickBlock.tscn" id="4_dkcqk"]
@ -1017,7 +1018,8 @@ metadata/_better_terrain = {
&"version": "0.2"
}
[node name="7-3" instance=ExtResource("1_41ghk")]
[node name="7-3" unique_id=1490926858 instance=ExtResource("1_41ghk")]
music = ExtResource("2_llbsp")
theme = "Overworld"
theme_time = "Day"
time_limit = 85
@ -1032,135 +1034,135 @@ liquid_layer = 2
tile_set = SubResource("TileSet_02lmb")
[connection signal="area_entered" from="Tiles/DeathPit" to="Tiles/DeathPit" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79265" to="Tiles/@Area2D@79265" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79266" to="Tiles/@Area2D@79266" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79267" to="Tiles/@Area2D@79267" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79268" to="Tiles/@Area2D@79268" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79269" to="Tiles/@Area2D@79269" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79270" to="Tiles/@Area2D@79270" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79271" to="Tiles/@Area2D@79271" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79272" to="Tiles/@Area2D@79272" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79273" to="Tiles/@Area2D@79273" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79274" to="Tiles/@Area2D@79274" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79275" to="Tiles/@Area2D@79275" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79276" to="Tiles/@Area2D@79276" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79277" to="Tiles/@Area2D@79277" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79278" to="Tiles/@Area2D@79278" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79279" to="Tiles/@Area2D@79279" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79280" to="Tiles/@Area2D@79280" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79281" to="Tiles/@Area2D@79281" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79282" to="Tiles/@Area2D@79282" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79283" to="Tiles/@Area2D@79283" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79284" to="Tiles/@Area2D@79284" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79285" to="Tiles/@Area2D@79285" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79286" to="Tiles/@Area2D@79286" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79287" to="Tiles/@Area2D@79287" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79288" to="Tiles/@Area2D@79288" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79289" to="Tiles/@Area2D@79289" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79290" to="Tiles/@Area2D@79290" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79291" to="Tiles/@Area2D@79291" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79292" to="Tiles/@Area2D@79292" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79293" to="Tiles/@Area2D@79293" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79294" to="Tiles/@Area2D@79294" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79295" to="Tiles/@Area2D@79295" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79296" to="Tiles/@Area2D@79296" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79297" to="Tiles/@Area2D@79297" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79298" to="Tiles/@Area2D@79298" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79299" to="Tiles/@Area2D@79299" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79300" to="Tiles/@Area2D@79300" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79301" to="Tiles/@Area2D@79301" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79302" to="Tiles/@Area2D@79302" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79303" to="Tiles/@Area2D@79303" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79304" to="Tiles/@Area2D@79304" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79305" to="Tiles/@Area2D@79305" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79306" to="Tiles/@Area2D@79306" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79307" to="Tiles/@Area2D@79307" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79308" to="Tiles/@Area2D@79308" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79309" to="Tiles/@Area2D@79309" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79310" to="Tiles/@Area2D@79310" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79311" to="Tiles/@Area2D@79311" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79312" to="Tiles/@Area2D@79312" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79313" to="Tiles/@Area2D@79313" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79314" to="Tiles/@Area2D@79314" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79315" to="Tiles/@Area2D@79315" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79316" to="Tiles/@Area2D@79316" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79317" to="Tiles/@Area2D@79317" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79318" to="Tiles/@Area2D@79318" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79319" to="Tiles/@Area2D@79319" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79320" to="Tiles/@Area2D@79320" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79321" to="Tiles/@Area2D@79321" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79322" to="Tiles/@Area2D@79322" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79323" to="Tiles/@Area2D@79323" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79324" to="Tiles/@Area2D@79324" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79325" to="Tiles/@Area2D@79325" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79326" to="Tiles/@Area2D@79326" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79327" to="Tiles/@Area2D@79327" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79328" to="Tiles/@Area2D@79328" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79329" to="Tiles/@Area2D@79329" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79330" to="Tiles/@Area2D@79330" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79331" to="Tiles/@Area2D@79331" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79332" to="Tiles/@Area2D@79332" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79333" to="Tiles/@Area2D@79333" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79334" to="Tiles/@Area2D@79334" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79335" to="Tiles/@Area2D@79335" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79336" to="Tiles/@Area2D@79336" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79337" to="Tiles/@Area2D@79337" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79338" to="Tiles/@Area2D@79338" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79339" to="Tiles/@Area2D@79339" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79340" to="Tiles/@Area2D@79340" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79341" to="Tiles/@Area2D@79341" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79342" to="Tiles/@Area2D@79342" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79343" to="Tiles/@Area2D@79343" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79344" to="Tiles/@Area2D@79344" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79345" to="Tiles/@Area2D@79345" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79346" to="Tiles/@Area2D@79346" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79347" to="Tiles/@Area2D@79347" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79348" to="Tiles/@Area2D@79348" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79349" to="Tiles/@Area2D@79349" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79350" to="Tiles/@Area2D@79350" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79351" to="Tiles/@Area2D@79351" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79352" to="Tiles/@Area2D@79352" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79353" to="Tiles/@Area2D@79353" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79354" to="Tiles/@Area2D@79354" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79355" to="Tiles/@Area2D@79355" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79356" to="Tiles/@Area2D@79356" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79357" to="Tiles/@Area2D@79357" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79358" to="Tiles/@Area2D@79358" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79359" to="Tiles/@Area2D@79359" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79360" to="Tiles/@Area2D@79360" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79361" to="Tiles/@Area2D@79361" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79362" to="Tiles/@Area2D@79362" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@79363" to="Tiles/@Area2D@79363" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50468" to="Tiles/@Area2D@50468" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50469" to="Tiles/@Area2D@50469" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50470" to="Tiles/@Area2D@50470" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50471" to="Tiles/@Area2D@50471" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50472" to="Tiles/@Area2D@50472" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50473" to="Tiles/@Area2D@50473" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50474" to="Tiles/@Area2D@50474" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50475" to="Tiles/@Area2D@50475" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50476" to="Tiles/@Area2D@50476" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50477" to="Tiles/@Area2D@50477" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50478" to="Tiles/@Area2D@50478" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50479" to="Tiles/@Area2D@50479" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50480" to="Tiles/@Area2D@50480" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50481" to="Tiles/@Area2D@50481" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50482" to="Tiles/@Area2D@50482" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50483" to="Tiles/@Area2D@50483" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50484" to="Tiles/@Area2D@50484" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50485" to="Tiles/@Area2D@50485" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50486" to="Tiles/@Area2D@50486" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50487" to="Tiles/@Area2D@50487" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50488" to="Tiles/@Area2D@50488" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50489" to="Tiles/@Area2D@50489" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50490" to="Tiles/@Area2D@50490" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50491" to="Tiles/@Area2D@50491" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50492" to="Tiles/@Area2D@50492" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50493" to="Tiles/@Area2D@50493" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50494" to="Tiles/@Area2D@50494" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50495" to="Tiles/@Area2D@50495" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50496" to="Tiles/@Area2D@50496" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50497" to="Tiles/@Area2D@50497" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50498" to="Tiles/@Area2D@50498" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50499" to="Tiles/@Area2D@50499" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50500" to="Tiles/@Area2D@50500" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50501" to="Tiles/@Area2D@50501" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50502" to="Tiles/@Area2D@50502" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50503" to="Tiles/@Area2D@50503" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50504" to="Tiles/@Area2D@50504" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50505" to="Tiles/@Area2D@50505" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50506" to="Tiles/@Area2D@50506" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50507" to="Tiles/@Area2D@50507" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50508" to="Tiles/@Area2D@50508" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50509" to="Tiles/@Area2D@50509" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50510" to="Tiles/@Area2D@50510" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50511" to="Tiles/@Area2D@50511" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50512" to="Tiles/@Area2D@50512" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50513" to="Tiles/@Area2D@50513" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50514" to="Tiles/@Area2D@50514" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50515" to="Tiles/@Area2D@50515" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50516" to="Tiles/@Area2D@50516" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50517" to="Tiles/@Area2D@50517" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50518" to="Tiles/@Area2D@50518" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50519" to="Tiles/@Area2D@50519" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50520" to="Tiles/@Area2D@50520" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50521" to="Tiles/@Area2D@50521" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50522" to="Tiles/@Area2D@50522" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50523" to="Tiles/@Area2D@50523" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50524" to="Tiles/@Area2D@50524" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50525" to="Tiles/@Area2D@50525" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50526" to="Tiles/@Area2D@50526" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50527" to="Tiles/@Area2D@50527" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50528" to="Tiles/@Area2D@50528" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50529" to="Tiles/@Area2D@50529" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50530" to="Tiles/@Area2D@50530" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50531" to="Tiles/@Area2D@50531" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50532" to="Tiles/@Area2D@50532" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50533" to="Tiles/@Area2D@50533" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50534" to="Tiles/@Area2D@50534" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50535" to="Tiles/@Area2D@50535" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50536" to="Tiles/@Area2D@50536" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50537" to="Tiles/@Area2D@50537" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50538" to="Tiles/@Area2D@50538" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50539" to="Tiles/@Area2D@50539" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50540" to="Tiles/@Area2D@50540" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50541" to="Tiles/@Area2D@50541" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50542" to="Tiles/@Area2D@50542" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50543" to="Tiles/@Area2D@50543" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50544" to="Tiles/@Area2D@50544" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50545" to="Tiles/@Area2D@50545" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50546" to="Tiles/@Area2D@50546" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50547" to="Tiles/@Area2D@50547" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50548" to="Tiles/@Area2D@50548" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50549" to="Tiles/@Area2D@50549" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50550" to="Tiles/@Area2D@50550" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50551" to="Tiles/@Area2D@50551" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50552" to="Tiles/@Area2D@50552" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50553" to="Tiles/@Area2D@50553" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50554" to="Tiles/@Area2D@50554" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50555" to="Tiles/@Area2D@50555" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50556" to="Tiles/@Area2D@50556" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50557" to="Tiles/@Area2D@50557" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50558" to="Tiles/@Area2D@50558" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50559" to="Tiles/@Area2D@50559" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50560" to="Tiles/@Area2D@50560" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50561" to="Tiles/@Area2D@50561" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50562" to="Tiles/@Area2D@50562" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50563" to="Tiles/@Area2D@50563" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50564" to="Tiles/@Area2D@50564" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50565" to="Tiles/@Area2D@50565" method="area_entered"]
[connection signal="area_entered" from="Tiles/@Area2D@50566" to="Tiles/@Area2D@50566" method="area_entered"]
[connection signal="collected" from="Tiles/Coin" to="Tiles/Coin/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79364" to="Tiles/@Node2D@79364/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79365" to="Tiles/@Node2D@79365/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79366" to="Tiles/@Node2D@79366/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79367" to="Tiles/@Node2D@79367/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79368" to="Tiles/@Node2D@79368/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79369" to="Tiles/@Node2D@79369/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79370" to="Tiles/@Node2D@79370/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79371" to="Tiles/@Node2D@79371/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79372" to="Tiles/@Node2D@79372/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79373" to="Tiles/@Node2D@79373/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79374" to="Tiles/@Node2D@79374/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79375" to="Tiles/@Node2D@79375/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79376" to="Tiles/@Node2D@79376/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79377" to="Tiles/@Node2D@79377/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79378" to="Tiles/@Node2D@79378/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79379" to="Tiles/@Node2D@79379/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79380" to="Tiles/@Node2D@79380/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79381" to="Tiles/@Node2D@79381/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79382" to="Tiles/@Node2D@79382/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79383" to="Tiles/@Node2D@79383/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79384" to="Tiles/@Node2D@79384/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79385" to="Tiles/@Node2D@79385/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79386" to="Tiles/@Node2D@79386/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79387" to="Tiles/@Node2D@79387/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79388" to="Tiles/@Node2D@79388/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79389" to="Tiles/@Node2D@79389/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79390" to="Tiles/@Node2D@79390/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79391" to="Tiles/@Node2D@79391/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79392" to="Tiles/@Node2D@79392/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79393" to="Tiles/@Node2D@79393/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79394" to="Tiles/@Node2D@79394/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@79395" to="Tiles/@Node2D@79395/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50567" to="Tiles/@Node2D@50567/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50568" to="Tiles/@Node2D@50568/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50569" to="Tiles/@Node2D@50569/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50570" to="Tiles/@Node2D@50570/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50571" to="Tiles/@Node2D@50571/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50572" to="Tiles/@Node2D@50572/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50573" to="Tiles/@Node2D@50573/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50574" to="Tiles/@Node2D@50574/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50575" to="Tiles/@Node2D@50575/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50576" to="Tiles/@Node2D@50576/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50577" to="Tiles/@Node2D@50577/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50578" to="Tiles/@Node2D@50578/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50579" to="Tiles/@Node2D@50579/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50580" to="Tiles/@Node2D@50580/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50581" to="Tiles/@Node2D@50581/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50582" to="Tiles/@Node2D@50582/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50583" to="Tiles/@Node2D@50583/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50584" to="Tiles/@Node2D@50584/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50585" to="Tiles/@Node2D@50585/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50586" to="Tiles/@Node2D@50586/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50587" to="Tiles/@Node2D@50587/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50588" to="Tiles/@Node2D@50588/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50589" to="Tiles/@Node2D@50589/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50590" to="Tiles/@Node2D@50590/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50591" to="Tiles/@Node2D@50591/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50592" to="Tiles/@Node2D@50592/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50593" to="Tiles/@Node2D@50593/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50594" to="Tiles/@Node2D@50594/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50595" to="Tiles/@Node2D@50595/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50596" to="Tiles/@Node2D@50596/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50597" to="Tiles/@Node2D@50597/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@50598" to="Tiles/@Node2D@50598/LevelPersistance" method="set_as_active"]

File diff suppressed because one or more lines are too long

View file

@ -276,15 +276,15 @@ func update_texture() -> void:
atlas = ExtResource("19_3l3ph")
region = Rect2(0, 0, 8, 8)
[node name="Global" type="Node"]
[node name="Global" type="Node" unique_id=1506289717]
process_mode = 3
script = ExtResource("1_t23sr")
[node name="Transition" type="CanvasLayer" parent="."]
[node name="Transition" type="CanvasLayer" parent="." unique_id=240864005]
layer = 128
visible = false
[node name="TransitionBlock" type="ColorRect" parent="Transition"]
[node name="TransitionBlock" type="ColorRect" parent="Transition" unique_id=1940622078]
unique_name_in_owner = true
anchors_preset = 15
anchor_right = 1.0
@ -294,7 +294,7 @@ grow_vertical = 2
mouse_filter = 2
color = Color(0, 0, 0, 1)
[node name="Freeze" type="TextureRect" parent="Transition"]
[node name="Freeze" type="TextureRect" parent="Transition" unique_id=1013697456]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@ -302,15 +302,15 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="Transition"]
[node name="AnimationPlayer" type="AnimationPlayer" parent="Transition" unique_id=804731792]
libraries = {
&"": SubResource("AnimationLibrary_l7dvb")
}
[node name="GameHUD" parent="." instance=ExtResource("1_ctvpw")]
[node name="GameHUD" parent="." unique_id=1073507466 instance=ExtResource("1_ctvpw")]
layer = 1
[node name="FPSCount" type="Label" parent="GameHUD"]
[node name="FPSCount" type="Label" parent="GameHUD" unique_id=1476489533]
unique_name_in_owner = true
visible = false
anchors_preset = 3
@ -325,64 +325,64 @@ grow_vertical = 0
text = "120FPS"
horizontal_alignment = 2
[node name="ScoreTally" type="AudioStreamPlayer" parent="."]
[node name="ScoreTally" type="AudioStreamPlayer" parent="." unique_id=1702522037]
stream = ExtResource("3_vjpdy")
bus = &"SFX"
[node name="ResourceSetter" type="Node" parent="ScoreTally" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetter" type="Node" parent="ScoreTally" unique_id=1337925757 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_7puui")
node_to_affect = NodePath("..")
property_name = "stream"
themed_resource = SubResource("Resource_6jmk5")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="ScoreTallyEnd" type="AudioStreamPlayer" parent="."]
[node name="ScoreTallyEnd" type="AudioStreamPlayer" parent="." unique_id=1222589524]
stream = ExtResource("6_30rl1")
bus = &"SFX"
[node name="ResourceSetter" type="Node" parent="ScoreTallyEnd" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetter" type="Node" parent="ScoreTallyEnd" unique_id=713410305 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_7puui")
node_to_affect = NodePath("..")
property_name = "stream"
themed_resource = SubResource("Resource_l7dvb")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="SettingsApply" type="Node" parent="."]
[node name="SettingsApply" type="Node" parent="." unique_id=897934208]
[node name="Video" type="Node" parent="SettingsApply"]
[node name="Video" type="Node" parent="SettingsApply" unique_id=1109441365]
script = ExtResource("4_nxm2a")
[node name="Audio" type="Node" parent="SettingsApply"]
[node name="Audio" type="Node" parent="SettingsApply" unique_id=1780893547]
script = ExtResource("5_l70br")
[node name="Visuals" type="Node" parent="SettingsApply"]
[node name="Visuals" type="Node" parent="SettingsApply" unique_id=115602530]
script = ExtResource("6_pamiy")
[node name="Difficulty" type="Node" parent="SettingsApply"]
[node name="Difficulty" type="Node" parent="SettingsApply" unique_id=1395239814]
script = ExtResource("7_3324c")
[node name="Timer" type="Timer" parent="."]
[node name="Timer" type="Timer" parent="." unique_id=1047030680]
autostart = true
[node name="Framerule" type="Timer" parent="."]
[node name="Framerule" type="Timer" parent="." unique_id=182874644]
wait_time = 0.351
autostart = true
[node name="SpriteFramesToJSONConverter" type="Node" parent="."]
[node name="SpriteFramesToJSONConverter" type="Node" parent="." unique_id=1797424646]
script = ExtResource("10_nptu4")
resource = SubResource("Resource_qalov")
json_file_path = "res://Assets/Sprites/Blocks/BrickDestructionParticles.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[node name="PlayerGhost" parent="." instance=ExtResource("14_6o310")]
[node name="PlayerGhost" parent="." unique_id=2092747110 instance=ExtResource("14_6o310")]
process_mode = 1
visible = false
z_index = 50
z_as_relative = false
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=471195696]
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer"]
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer" unique_id=1151066527]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@ -390,7 +390,7 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="ErrorMessage" type="Label" parent="CanvasLayer/VBoxContainer"]
[node name="ErrorMessage" type="Label" parent="CanvasLayer/VBoxContainer" unique_id=1317877014]
visible = false
modulate = Color(1, 0, 0, 1)
layout_mode = 2
@ -399,7 +399,7 @@ text = "ERROR! PLEASE REPORT!"
autowrap_mode = 1
uppercase = true
[node name="Warning" type="Label" parent="CanvasLayer/VBoxContainer"]
[node name="Warning" type="Label" parent="CanvasLayer/VBoxContainer" unique_id=1002195923]
visible = false
modulate = Color(1, 1, 0, 1)
layout_mode = 2
@ -408,7 +408,7 @@ text = "Warning!"
autowrap_mode = 1
uppercase = true
[node name="Comment" type="Label" parent="CanvasLayer/VBoxContainer"]
[node name="Comment" type="Label" parent="CanvasLayer/VBoxContainer" unique_id=1122997232]
visible = false
layout_mode = 2
theme_override_colors/font_shadow_color = Color(0.121569, 0.121569, 0.121569, 1)
@ -416,22 +416,22 @@ text = "Comment"
autowrap_mode = 1
uppercase = true
[node name="PanelSetter" type="Node" parent="."]
[node name="PanelSetter" type="Node" parent="." unique_id=1346795200]
script = SubResource("GDScript_30rl1")
panel = ExtResource("16_l7dvb")
texture = ExtResource("16_qalov")
[node name="PanelSetter2" type="Node" parent="."]
[node name="PanelSetter2" type="Node" parent="." unique_id=833840143]
script = SubResource("GDScript_30rl1")
panel = ExtResource("18_yyu8s")
texture = ExtResource("19_xspbb")
[node name="CursorSetter" type="Node" parent="."]
[node name="CursorSetter" type="Node" parent="." unique_id=1281577356]
script = SubResource("GDScript_l7dvb")
cursor = ExtResource("18_xcxrh")
texture = SubResource("AtlasTexture_m6bur")
[node name="ResourceSetterNew" type="Node" parent="CursorSetter" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="CursorSetter" unique_id=1861402201 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("19_okfpr")
node_to_affect = NodePath("..")
property_name = "texture"
@ -439,11 +439,11 @@ mode = 1
resource_json = ExtResource("20_3l3ph")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="FontUpdater" type="Node" parent="."]
[node name="FontUpdater" type="Node" parent="." unique_id=573027079]
script = ExtResource("18_1la0o")
metadata/_custom_type_script = "uid://ctsjagoa5t33f"
[node name="MainFontGetter" type="Node" parent="FontUpdater" node_paths=PackedStringArray("node_to_affect")]
[node name="MainFontGetter" type="Node" parent="FontUpdater" unique_id=615367155 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("19_okfpr")
node_to_affect = NodePath("..")
property_name = "main_font"
@ -451,7 +451,7 @@ mode = 4
resource_json = ExtResource("23_3l3ph")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="ScoreFontGetter" type="Node" parent="FontUpdater" node_paths=PackedStringArray("node_to_affect")]
[node name="ScoreFontGetter" type="Node" parent="FontUpdater" unique_id=1594194950 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("19_okfpr")
node_to_affect = NodePath("..")
property_name = "score_font"
@ -459,7 +459,7 @@ mode = 4
resource_json = ExtResource("24_m6bur")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="TextShadowColourChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
[node name="TextShadowColourChanger" type="Node" parent="." unique_id=1662063214 node_paths=PackedStringArray("labels")]
script = ExtResource("19_l7dvb")
labels = [NodePath("../CanvasLayer/VBoxContainer/ErrorMessage"), NodePath("../CanvasLayer/VBoxContainer/Comment"), NodePath("../CanvasLayer/VBoxContainer/Warning"), NodePath("../GameHUD/FPSCount")]
metadata/_custom_type_script = "uid://dt2p68xl462v2"

View file

@ -14,7 +14,7 @@ color = Color(1, 1, 1, 1)
[sub_resource type="StyleBoxLine" id="StyleBoxLine_lfyeb"]
color = Color(1, 1, 1, 1)
[node name="DiscoResults" type="Control"]
[node name="DiscoResults" type="Control" unique_id=1298188288]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
@ -23,7 +23,7 @@ grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_up7vl")
[node name="PanelContainer" type="PanelContainer" parent="."]
[node name="PanelContainer" type="PanelContainer" parent="." unique_id=1498395662]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
@ -38,15 +38,15 @@ grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = ExtResource("1_nfk08")
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer" unique_id=1061658617]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer"]
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer" unique_id=1367824242]
layout_mode = 2
size_flags_horizontal = 4
text = "YOUR RESULTS"
[node name="HSeparator" type="HSeparator" parent="PanelContainer/VBoxContainer/Label"]
[node name="HSeparator" type="HSeparator" parent="PanelContainer/VBoxContainer/Label" unique_id=1977156132]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
@ -57,28 +57,28 @@ grow_horizontal = 2
grow_vertical = 0
theme_override_styles/separator = SubResource("StyleBoxLine_6886a")
[node name="Score" type="HBoxContainer" parent="PanelContainer/VBoxContainer"]
[node name="Score" type="HBoxContainer" parent="PanelContainer/VBoxContainer" unique_id=277801092]
layout_mode = 2
[node name="Title" type="Label" parent="PanelContainer/VBoxContainer/Score"]
[node name="Title" type="Label" parent="PanelContainer/VBoxContainer/Score" unique_id=168254607]
layout_mode = 2
text = "SCORE:"
[node name="Score" type="Label" parent="PanelContainer/VBoxContainer/Score"]
[node name="Score" type="Label" parent="PanelContainer/VBoxContainer/Score" unique_id=1767125717]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 0
text = "000000"
[node name="Rank" type="HBoxContainer" parent="PanelContainer/VBoxContainer"]
[node name="Rank" type="HBoxContainer" parent="PanelContainer/VBoxContainer" unique_id=1686368771]
layout_mode = 2
[node name="Title" type="Label" parent="PanelContainer/VBoxContainer/Rank"]
[node name="Title" type="Label" parent="PanelContainer/VBoxContainer/Rank" unique_id=678139659]
layout_mode = 2
size_flags_vertical = 0
text = "RANK:"
[node name="Medal" type="NinePatchRect" parent="PanelContainer/VBoxContainer/Rank"]
[node name="Medal" type="NinePatchRect" parent="PanelContainer/VBoxContainer/Rank" unique_id=52736512]
unique_name_in_owner = true
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
@ -88,45 +88,45 @@ region_rect = Rect2(16, 0, 16, 16)
script = ExtResource("3_up7vl")
metadata/_custom_type_script = "uid://xem6lai3ufyj"
[node name="RankMessage" type="Label" parent="PanelContainer/VBoxContainer/Rank"]
[node name="RankMessage" type="Label" parent="PanelContainer/VBoxContainer/Rank" unique_id=571890284]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
text = "FAIL!"
uppercase = true
[node name="HSeparator" type="HSeparator" parent="PanelContainer/VBoxContainer"]
[node name="HSeparator" type="HSeparator" parent="PanelContainer/VBoxContainer" unique_id=1051377687]
layout_mode = 2
theme_override_styles/separator = SubResource("StyleBoxLine_lfyeb")
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer" unique_id=1493933591]
layout_mode = 2
theme_override_constants/margin_left = 4
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer" unique_id=1607230461]
layout_mode = 2
[node name="Continue" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("4_lxtk8")]
[node name="Continue" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" unique_id=1776656853 instance=ExtResource("4_lxtk8")]
unique_name_in_owner = true
layout_mode = 2
text = "CONTINUE"
[node name="Retry" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("4_lxtk8")]
[node name="Retry" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" unique_id=1308037190 instance=ExtResource("4_lxtk8")]
unique_name_in_owner = true
layout_mode = 2
text = "RETRY"
[node name="LevelSelect" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("4_lxtk8")]
[node name="LevelSelect" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" unique_id=84515105 instance=ExtResource("4_lxtk8")]
unique_name_in_owner = true
layout_mode = 2
text = "LEVEL SELECT"
[node name="ReturnMenu" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("4_lxtk8")]
[node name="ReturnMenu" parent="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer" unique_id=2105400998 instance=ExtResource("4_lxtk8")]
unique_name_in_owner = true
layout_mode = 2
text = "RETURN TO MENU"
[node name="WorldSelect" parent="." instance=ExtResource("6_lfyeb")]
[node name="WorldSelect" parent="." unique_id=2048757589 instance=ExtResource("6_lfyeb")]
visible = false
layout_mode = 1
anchors_preset = 8
@ -140,8 +140,9 @@ offset_right = 90.0
offset_bottom = 32.5
grow_horizontal = 2
grow_vertical = 2
has_disco_stuff = true
[node name="LevelSelect" parent="." instance=ExtResource("7_mjrut")]
[node name="LevelSelect" parent="." unique_id=1828692017 instance=ExtResource("7_mjrut")]
visible = false
layout_mode = 1
anchors_preset = 8
@ -164,8 +165,8 @@ grow_vertical = 2
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer/LevelSelect" to="WorldSelect" method="open"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer/LevelSelect" to="." method="set_focus" binds= [false]]
[connection signal="focus_entered" from="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer/ReturnMenu" to="." method="set_index" binds= [3]]
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer/ReturnMenu" to="." method="go_to_menu"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer/ReturnMenu" to="." method="close"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer/ReturnMenu" to="." method="go_to_menu"]
[connection signal="cancelled" from="WorldSelect" to="." method="open"]
[connection signal="cancelled" from="WorldSelect" to="." method="set_focus" binds= [true]]
[connection signal="world_selected" from="WorldSelect" to="LevelSelect" method="open"]

View file

@ -2,21 +2,21 @@
[ext_resource type="PackedScene" uid="uid://dntk2js0tu3y2" path="res://Scenes/Prefabs/UI/WorldSelect.tscn" id="1_fvn0p"]
[node name="WorldSelect" instance=ExtResource("1_fvn0p")]
[node name="WorldSelect" unique_id=110172661 instance=ExtResource("1_fvn0p")]
world_offset = 8
num_of_worlds = 4
[node name="Slot1" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" index="0"]
[node name="Slot1" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" parent_id_path=PackedInt32Array(181733477) index="0" unique_id=1293243576]
focus_neighbor_left = NodePath("../Slot5")
[node name="Slot5" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" index="4"]
[node name="Slot5" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" parent_id_path=PackedInt32Array(181733477) index="4" unique_id=286713451]
focus_neighbor_right = NodePath("../Slot1")
[node name="Slot6" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" index="5"]
[node name="Slot6" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" parent_id_path=PackedInt32Array(181733477) index="5" unique_id=1911479070]
visible = false
[node name="Slot7" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" index="6"]
[node name="Slot7" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" parent_id_path=PackedInt32Array(181733477) index="6" unique_id=1681952344]
visible = false
[node name="Slot8" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" index="7"]
[node name="Slot8" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer" parent_id_path=PackedInt32Array(181733477) index="7" unique_id=576787431]
visible = false

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -509,7 +509,7 @@ func get_version_num_int(ver_num := "0.0.0") -> int:
return int(ver_num.replace(".", ""))
func merge_dict(target: Dictionary, source: Dictionary) -> void:
# SkyanUltra: Used to properly merge dictionaries in CharacterInfo rather than out right overwriting entries.
# SkyanUltra: Used to properly merge dictionaries JSONs rather than out right overwriting entries.
for key in source.keys():
if target.has(key) and target[key] is Dictionary and source[key] is Dictionary:
merge_dict(target[key], source[key])

View file

@ -54,6 +54,11 @@ var best_level_warpless_times := [
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1]
]
@ -95,7 +100,12 @@ const SMB1_LEVEL_GOLD_WARPLESS_TIMES := [
[22, 22, 17, 16], # World 5
[21, 25, 18, 16], # World 6
[20, 38, 25, 23], # World 7
[40, 24, 24, 50] # World 8
[40, 24, 24, 50], # World 8
[-1, -1, -1, -1], # World 9
[-1, -1, -1, -1], # World A
[-1, -1, -1, -1], # World B
[-1, -1, -1, -1], # World C
[-1, -1, -1, -1] # World D
]
const SMBLL_LEVEL_GOLD_WARPLESS_TIMES := [
@ -107,6 +117,11 @@ const SMBLL_LEVEL_GOLD_WARPLESS_TIMES := [
[28, 39, 23, 29],
[21, 26, 32, 36],
[24, 27, 25, 60],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1]
]
const SMB1_LEVEL_GOLD_ANY_TIMES := {
@ -135,6 +150,11 @@ const SMBS_LEVEL_GOLD_TIMES := [
[24, 21, 23, 20],
[24, 40, 30, 27],
[30, 35, 30, 43],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1],
[-1, -1, -1, -1]
]
const SMB1_WARP_LEVELS := ["1-2", "4-2"]
@ -262,7 +282,7 @@ func load_best_times(campaign = Global.current_campaign) -> void:
return
best_time_campaign = campaign
best_level_any_times.clear()
for world_num in 8:
for world_num in 13:
for level_num in 4:
var path = Global.config_path.path_join("marathon_recordings/" + campaign + "/" + str(world_num + 1) + "-" + str(level_num + 1) + ".json")
if FileAccess.file_exists(path):

View file

@ -71,14 +71,13 @@ func _process(_delta: float) -> void:
$BGM.play()
func campaign_selected() -> void:
$CanvasLayer/Options1.close()
if last_campaign != Global.current_campaign:
last_campaign = Global.current_campaign
update_title()
if Global.current_campaign == "SMBANN":
Global.current_game_mode = Global.GameMode.CAMPAIGN
$CanvasLayer/AllNightNippon/WorldSelect.open()
$CanvasLayer/Options2Stripped.open()
return
$CanvasLayer/Options1.close()
$CanvasLayer/Options2.open()
func open_story_options() -> void:

View file

@ -12,49 +12,136 @@ var starting_value := -1
@export var has_challenge_stuff := false
@export var has_disco_stuff := false
const LEVEL_ICON_JSON_PATH := "res://Assets/Sprites/UI/LevelIcons/LevelIcons.json"
const LEVEL_ICONS := {
"SMB1": SMB1_ICONS,
"SMBLL": SMBLL_ICONS,
"SMBS": SMBS_ICONS,
"SMBANN": SMB1_ICONS
"SMBANN": SMBANN_ICONS
}
const SMB1_ICONS := [
"0123",
"0453",
"0023",
"0163",
"8893",
"8893",
"8AB3",
"8883"
[
["day", [0,0]],["day", [0,4]],["day", [1,0]],["day", [1,4]],
],
[
["day", [0,2]],["day", [3,1]],["day", [1,2]],["day", [1,5]],
],
[
["day", [0,0]],["day", [0,1]],["day", [1,0]],["day", [1,4]],
],
[
["day", [0,1]],["day", [0,5]],["day", [1,3]],["day", [1,6]],
],
[
["night", [0,1]],["night", [0,3]],["night", [1,0]],["night", [1,5]],
],
[
["night", [0,0]],["night", [0,2]],["night", [1,1]],["night", [1,4]],
],
[
["night", [0,3]],["night", [0,4]],["night", [1,2]],["night", [1,5]],
],
[
["night", [0,1]],["night", [0,3]],["night", [2,0]],["night", [1,6]],
],
]
const SMBLL_ICONS := [
"0123",
"0053",
"0423",
"0023",
"8193",
"8AB3",
"8993",
"88D3",
"8888",
"0123",
"0423",
"0523",
"0003"
[
["day", [0,2]],["day", [0,7]],["day", [1,0]],["day", [1,4]],
],
[
["day", [1,2]],["day", [0,1]],["day", [1,2]],["day", [1,7]],
],
[
["day", [0,3]],["day", [3,0]],["day", [1,1]],["day", [1,6]],
],
[
["day", [0,1]],["day", [0,3]],["day", [1,1]],["day", [1,5]],
],
[
["night", [0,2]],["night", [0,6]],["night", [1,0]],["night", [1,5]],
],
[
["night", [0,0]],["night", [3,1]],["night", [1,2]],["night", [1,7]],
],
[
["night", [0,2]],["night", [1,2]],["night", [1,1]],["night", [1,5]],
],
[
["night", [0,2]],["night", [2,0]],["night", [2,2]],["night", [1,7]],
],
[
["night", [0,0]],["night", [3,6]],["night", [3,7]],["night", [4,4]],
],
[
["day", [0,2]],["day", [0,5]],["day", [1,0]],["day", [1,4]],
],
[
["day", [0,0]],["day", [3,1]],["day", [1,1]],["day", [1,6]],
],
[
["day", [0,2]],["day", [1,0]],["day", [1,1]],["day", [1,5]],
],
[
["day", [2,6]],["day", [2,6]],["day", [2,7]],["day", [1,7]],
],
]
const SMBS_ICONS := [
"0123",
"0453",
"0023",
"0163",
"8893",
"8893",
"8AB3",
"CA13"
[
["day", [0,1]],["day", [0,4]],["day", [1,0]],["day", [1,6]],
],
[
["day", [0,0]],["day", [3,1]],["day", [1,2]],["day", [1,7]],
],
[
["day", [3,0]],["day", [1,2]],["day", [1,0]],["day", [1,4]],
],
[
["day", [0,1]],["day", [0,5]],["day", [1,3]],["day", [1,6]],
],
[
["night", [0,1]],["night", [0,0]],["night", [1,0]],["night", [1,5]],
],
[
["night", [0,1]],["night", [0,2]],["night", [1,0]],["night", [1,4]],
],
[
["night", [0,3]],["night", [3,1]],["night", [1,2]],["night", [1,7]],
],
[
["night", [1,3]],["night", [2,1]],["night", [0,7]],["night", [1,5]],
],
]
const SMBANN_ICONS := [
[
["night", [0,0]],["night", [0,4]],["night", [1,0]],["night", [1,4]],
],
[
["night", [0,2]],["night", [3,1]],["night", [1,2]],["night", [1,5]],
],
[
["night", [0,0]],["night", [0,1]],["night", [1,0]],["night", [1,4]],
],
[
["night", [0,1]],["night", [0,5]],["night", [1,3]],["night", [1,6]],
],
[
["night", [0,1]],["night", [0,3]],["night", [1,1]],["night", [1,7]],
],
[
["night", [0,0]],["night", [0,2]],["night", [1,1]],["night", [1,5]],
],
[
["night", [0,3]],["night", [3,1]],["night", [1,2]],["night", [1,5]],
],
[
["night", [0,1]],["night", [0,3]],["night", [2,0]],["night", [1,7]],
],
]
const NUMBER_Y := [
@ -69,7 +156,7 @@ const NUMBER_Y := [
func _ready() -> void:
for i in %SlotContainer.get_children():
i.focus_entered.connect(slot_selected.bind(i.get_index()))
for i in [$Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot1/Icon/RankMedal/SRankParticles, $Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot1/Icon/RankMedal/PRankParticles, $Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot2/Icon/RankMedal/SRankParticles, $Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot2/Icon/RankMedal/PRankParticles, $Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot3/Icon/RankMedal/SRankParticles, $Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot3/Icon/RankMedal/PRankParticles, $Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot4/Icon/RankMedal/SRankParticles, $Panel/MarginContainer/VBoxContainer/HBoxContainer/ScrollContainer/SlotContainer/Slot4/Icon/RankMedal/PRankParticles]:
for i in get_tree().get_nodes_in_group("Particles"):
start_particle(i)
func start_particle(particle: GPUParticles2D) -> void:
@ -86,6 +173,7 @@ func open() -> void:
starting_value = Global.level_num
print([Global.level_num, starting_value])
selected_level = Global.level_num - 1
setup_level_icon_data()
setup_visuals()
update_pb()
show()
@ -93,10 +181,22 @@ func open() -> void:
await get_tree().create_timer(0.1).timeout
active = true
const CHARSET := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var visited_levels := "0000"
const ICON_DAY := preload("res://Assets/Sprites/UI/LevelIcons/DayLevelIcons.png")
const ICON_NIGHT := preload("res://Assets/Sprites/UI/LevelIcons/NightLevelIcons.png")
const ICON_LOCKED := preload("res://Assets/Sprites/UI/LevelIcons/LockedLevelIcon.png")
var icon_size := [56, 32]
func setup_level_icon_data() -> void:
var json = JSON.parse_string(FileAccess.open(LEVEL_ICON_JSON_PATH, FileAccess.READ).get_as_text())
icon_size = json.icon_size
for key in json.icon_data:
if get(key) is Dictionary and json.icon_data[key] is Dictionary:
Global.merge_dict(get(key), json.icon_data[key])
else:
set(key, json.icon_data[key])
func setup_visuals() -> void:
%MarathonBits.visible = Global.current_game_mode == Global.GameMode.MARATHON_PRACTICE
%ChallengeBits.visible = Global.current_game_mode == Global.GameMode.CHALLENGE
@ -107,16 +207,18 @@ func setup_visuals() -> void:
var level_theme = Global.LEVEL_THEMES[Global.current_campaign][Global.world_num - 1]
visited_levels = (SaveManager.visited_levels.substr((Global.world_num - 1) * 4, 4))
var level_visited = SaveManager.visited_levels[SaveManager.get_level_idx(Global.world_num, idx + 1)] != "0" or Global.debug_mode
var num = CHARSET.find(LEVEL_ICONS[Global.current_campaign][Global.world_num - 1][idx])
if level_visited == false:
num = 7
i.get_node("ChallengeModeBits").visible = Global.current_game_mode == Global.GameMode.CHALLENGE
if Global.current_game_mode == Global.GameMode.CHALLENGE:
setup_challenge_mode_bits(i.get_node("ChallengeModeBits"), idx + 1)
i.get_node("Icon").region_rect = Rect2((num % 4) * 56, (num / 4) * 32, 56, 32)
var cur_level = LEVEL_ICONS[Global.current_campaign][Global.world_num - 1][idx]
var cur_icon = ICON_LOCKED if not level_visited else ICON_NIGHT if cur_level[0] == "night" else ICON_DAY
var grid_size = [cur_icon.get_width() - icon_size[0], cur_icon.get_height() - icon_size[1]]
var clamp_icon = clamp([cur_level[1][0] * icon_size[0], cur_level[1][1] * icon_size[1]], [0, 0], grid_size)
i.get_node("Icon").texture = cur_icon
i.get_node("Icon").region_rect = Rect2(clamp_icon[0], clamp_icon[1], icon_size[0], icon_size[1])
i.get_node("Icon/Number").region_rect.position.y = clamp(NUMBER_Y.find(level_theme) * 12, 0, 9999)
i.get_node("Icon/Number").region_rect.position.x = (idx) * 12
i.get_node("Icon/RankMedal").visible = Global.current_campaign == "SMBANN"
i.get_node("ChallengeModeBits").visible = Global.current_game_mode == Global.GameMode.CHALLENGE
if Global.current_game_mode == Global.GameMode.CHALLENGE:
setup_challenge_mode_bits(i.get_node("ChallengeModeBits"), idx + 1)
if Global.current_campaign == "SMBANN":
i.get_node("Icon/RankMedal").frame = "ZFDCBASP".find(DiscoLevel.level_ranks[SaveManager.get_level_idx(Global.world_num, idx + 1)])
i.get_node("Icon/RankMedal/SRankParticles").visible = i.get_node("Icon/RankMedal").frame == 6
@ -138,7 +240,6 @@ func update_score() -> void:
func update_pb() -> void:
if has_speedrun_stuff == false: return
var best_warpless_time = SpeedrunHandler.best_level_warpless_times[Global.world_num - 1][selected_level]
print(SpeedrunHandler.best_level_warpless_times)
var best_any_time = SpeedrunHandler.best_level_any_times.get(str(Global.world_num) + "-" + str(selected_level + 1), -1)
%FullRunPB.text = "--:--:--" if best_warpless_time == -1 else SpeedrunHandler.gen_time_string(SpeedrunHandler.format_time(best_warpless_time))
%WarpRunPB.text = "--:--:--" if best_any_time == -1 else SpeedrunHandler.gen_time_string(SpeedrunHandler.format_time(best_any_time))

View file

@ -8,6 +8,7 @@ const VALID_HASHES := [
var args: PackedStringArray
var rom_arg: String = ""
@onready var file_dialog = $FileDialog
func _ready() -> void:
args = OS.get_cmdline_args()
@ -28,8 +29,11 @@ func _ready() -> void:
if local_rom != "" and handle_rom(local_rom):
return
# Otherwise wait for dropped files
# Otherwise wait for dropped/selected files
# SkyanUltra: Added button to select files for convenience
get_window().files_dropped.connect(on_file_dropped)
file_dialog.canceled.connect(file_prompt_closed)
%SelectRom.pressed.connect(file_prompt_open)
await get_tree().physics_frame
# Window setup
@ -48,15 +52,26 @@ func find_local_rom() -> String:
func on_file_dropped(files: PackedStringArray) -> void:
for file in files:
if file.ends_with(".zip"):
zip_error()
return
if handle_rom(file):
return
error()
func file_prompt_open() -> void:
$FileDialog.show()
%SelectRom.disabled = true
func file_prompt_closed() -> void:
%SelectRom.disabled = false
func handle_rom(path: String) -> bool:
file_prompt_closed()
if path.get_extension() in ["zip", "7z", "rar", "tar", "gz", "gzip", "bz2"]:
zip_error()
return false
if not is_valid_rom(path):
if path.get_extension() in ["nes", "nez", "fds", "qd", "unf", "unif", "nsf", "nsfe"]:
error()
else: extension_error()
return false
Global.rom_path = path
copy_rom(path)
@ -80,10 +95,20 @@ static func is_valid_rom(rom_path := "") -> bool:
func error() -> void:
%Error.show()
%ZipError.hide()
%ExtensionError.hide()
$ErrorSFX.play()
func zip_error() -> void:
%ZipError.show()
%Error.hide()
%ExtensionError.hide()
$ErrorSFX.play()
func extension_error() -> void:
%ExtensionError.show()
%Error.hide()
%ZipError.hide()
$ErrorSFX.play()
func verified() -> void:

View file

@ -2,6 +2,10 @@ extends Control
var selected_world := 0
@export var has_speedrun_stuff := false
@export var has_challenge_stuff := false
@export var has_disco_stuff := false
@export var world_offset := 0
@export var num_of_worlds := 7
@ -26,6 +30,12 @@ const NUMBER_Y := [
func _ready() -> void:
for i in %SlotContainer.get_children():
i.focus_entered.connect(slot_focused.bind(i.get_index()))
for i in get_tree().get_nodes_in_group("Particles"):
start_particle(i)
func start_particle(particle: GPUParticles2D) -> void:
await get_tree().create_timer(randf_range(0, 5)).timeout
particle.emitting = true
func _process(_delta: float) -> void:
if active:
@ -36,6 +46,7 @@ func open() -> void:
if starting_value == -1:
starting_value = Global.world_num
selected_world = Global.world_num - 1 - world_offset
if has_speedrun_stuff and not Global.current_game_mode in [Global.GameMode.MARATHON, Global.GameMode.MARATHON_PRACTICE]: Global.current_game_mode = Global.GameMode.MARATHON
setup_visuals()
show()
await get_tree().process_frame
@ -64,10 +75,74 @@ func setup_visuals() -> void:
var resource_getter = ResourceGetter.new() #Is it safe to be making a new one of these per icon?
i.get_node("Icon").region_rect = CustomLevelContainer.THEME_RECTS[level_theme]
i.get_node("Icon").texture = resource_getter.get_resource(CustomLevelContainer.ICON_TEXTURES[0 if (idx <= 3 or idx >= 8) and Global.current_campaign != "SMBANN" else 1])
i.get_node("Icon/Number").position.y = 10 if has_challenge_stuff else 17
i.get_node("Icon/Number").region_rect.position.y = clamp(NUMBER_Y.find(level_theme) * 12, 0, 9999)
i.get_node("Icon/Number").region_rect.position.x = (idx + world_offset) * 12
setup_challenge_mode_bits(i.get_node("Icon/RedCoins"), i.get_node("Icon/Egg"), i.get_node("Icon/Score"), i.get_node("Icon/RedCoins/Full"), i.get_node("Icon/Egg/Full"), i.get_node("Icon/Score/Full"), idx + world_offset)
setup_marathon_bits(i.get_node("Icon/Medal"), i.get_node("Icon/Medal/Full"), idx + world_offset)
setup_disco_bits(i.get_node("Icon/Medal"), i.get_node("Icon/Medal/Full"), i.get_node("Icon/Medal/Full/SRankParticles"), i.get_node("Icon/Medal/Full/PRankParticles"), idx + world_offset)
idx += 1
func setup_challenge_mode_bits(red_coins_outline: TextureRect, egg_outline: TextureRect, score_outline: TextureRect, red_coins: NinePatchRect, egg: NinePatchRect, score: NinePatchRect, world_num := 1) -> void:
if has_challenge_stuff == false: return
var red_coins_collected = []
var eggs_collected = []
var scores_collected = []
for level in 4:
for i in 5:
red_coins_collected.append(ChallengeModeHandler.is_coin_collected(i, ChallengeModeHandler.red_coins_collected[world_num][level]))
eggs_collected.append(ChallengeModeHandler.is_coin_collected(ChallengeModeHandler.CoinValues.YOSHI_EGG, ChallengeModeHandler.red_coins_collected[world_num][level]))
scores_collected.append(ChallengeModeHandler.top_challenge_scores[world_num][level] >= ChallengeModeHandler.CHALLENGE_TARGETS[Global.current_campaign][world_num][level])
for i in [red_coins_outline, egg_outline, score_outline]:
i.visible = true
red_coins.visible = not red_coins_collected.has(false)
egg.visible = not eggs_collected.has(false)
var egg_frame = 10 * (world_num % 4)
egg.region_rect = Rect2(egg_frame, 0, 10, 10)
score.visible = not scores_collected.has(false)
func setup_marathon_bits(medal_outline: TextureRect, medal: NinePatchRect, world_num := 1) -> void:
if has_speedrun_stuff == false: return
var saved_medal_ids = []
for i in 4:
var best_warpless_time = SpeedrunHandler.best_level_warpless_times[world_num][i]
var best_any_time = SpeedrunHandler.best_level_any_times.get(str(world_num + 1) + "-" + str(i + 1), -1)
var gold_warpless_time = SpeedrunHandler.LEVEL_GOLD_WARPLESS_TIMES[Global.current_campaign][world_num][i]
var gold_any_time := -1.0
if SpeedrunHandler.LEVEL_GOLD_ANY_TIMES[Global.current_campaign].has(str(world_num + 1) + "-" + str(i + 1)):
gold_any_time = SpeedrunHandler.LEVEL_GOLD_ANY_TIMES[Global.current_campaign][str(world_num + 1) + "-" + str(i + 1)]
var medal_id = -1
for o in SpeedrunHandler.MEDAL_CONVERSIONS:
var target_time = gold_warpless_time * SpeedrunHandler.MEDAL_CONVERSIONS[o]
medal_id += 1 if SpeedrunHandler.met_target_time(best_warpless_time, target_time) else 0
saved_medal_ids.append(medal_id)
if gold_any_time != -1:
medal_id = -1
for o in SpeedrunHandler.MEDAL_CONVERSIONS:
var target_time = gold_any_time * SpeedrunHandler.MEDAL_CONVERSIONS[o]
medal_id += 1 if SpeedrunHandler.met_target_time(best_any_time, target_time) else 0
saved_medal_ids.append(medal_id)
medal_outline.visible = true
medal.visible = saved_medal_ids.min() >= 0
var medal_rect_x = saved_medal_ids.min() * 10
medal.region_rect = Rect2(10 + medal_rect_x, 10, 10, 10)
func setup_disco_bits(medal_outline: TextureRect, medal: NinePatchRect, s_rank_pfx: GPUParticles2D, p_rank_pfx: GPUParticles2D, world_num := 1) -> void:
if has_disco_stuff == false: return
var saved_rank_ids = []
var lowest_rank = -1
for i in 4:
saved_rank_ids.append(DiscoLevel.level_ranks[SaveManager.get_level_idx(world_num + 1, i + 1)])
for rank in DiscoLevel.RANK_IDs.size():
if DiscoLevel.RANK_IDs[rank] == saved_rank_ids[i] and (lowest_rank > rank + 1 or lowest_rank < 0):
lowest_rank = rank + 1
medal_outline.visible = true
medal.visible = lowest_rank != -1
var medal_rect_x = lowest_rank * 10
medal.region_rect = Rect2(medal_rect_x, 20, 10, 10)
s_rank_pfx.visible = lowest_rank == 6
p_rank_pfx.visible = lowest_rank == 7
func handle_input() -> void:
if Input.is_action_just_pressed("ui_accept"):
if SaveManager.visited_levels.substr((selected_world + world_offset) * 4, 4) == "0000" and not Global.debug_mode and selected_world != 0: