Expanded world/level icons (#763)
* Expanded Level Icons Level icons are now defined in their own custom JSON file (LevelIcons.json) which determines which icons will be shown, along with an area where the user can input the size of their icons for custom sizing (larger sizes will likely be a bit odd in behavior, smaller should work fine though) Along with that, icons have been greatly expanded, with 32 new level icons available for levels to use now, (a total of 45!) along with various older icons recieving slight touch-ups. Various levels now use these new icons to better represent major recognizable elements from those levels, and to give them a bit more variation between each other. If there are any additional level icons that would make sense for implementation, let me know. I think this should cover most of the important ones, though. * Delete LevelIcons.png.import * Marathon + ANN Medal Icons on World Select Marathon mode and ANN now show the highest ranking achieved on all levels when applicable. So if you manage to get a gold medal on every level, but get a bronze on one, then it'll display a bronze medal for your world completion. Side note: Why the fuck was the only solution to the GPU particle emitting behavior to make a massive array of node paths. I hate this! This sucks! Joe, why did you do that? And why was it the only thing I could find that worked? * Optimized particle emitting for world/level select * ANN now has its own menu + bugfixes This gives ANN its own dedicated menu rather than throwing you directly into the world selection menu, which additionally fixes an issue with rendering medal icons when selecting the campaign, and a few other fixes like the DiscoResults menu not using the ANN visual settings. * Challenge Hunt Icons + menu bugfixes Challenge Hunt icons are now implemented, so you can see all of your red coins, eggs and score requirements if you've met them. Along with that, fixed a bug where you could enter Worlds 9-D in marathon when you aren't supposed to by selecting a story mode option and then entering marathon. * New icons + layout change for Challenge Hunt icons By recommendation by Vanny, Challenge Hunt icons have been changed. Along with this, all icons for progress tracking are now in their own relegated image file for separate modification, and have been updated to use white outlines similar to the world icons themselves. * Update ChallengeModeResults.tscn Forgot to update this to use challenge icons for the world select screen. * Eggs cycle through color again Accidentally got rid of this, but didn't want to update every node. It simply does it based on the world number now rather than needing to be manually set.
|
Before Width: | Height: | Size: 5.5 KiB |
BIN
Assets/Sprites/UI/LevelIcons/DayLevelIcons.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://wb67mbrs5u05"
|
uid="uid://bx7jvtnfom4ik"
|
||||||
path="res://.godot/imported/LevelIcons.png-4b08ffadb3e3163a4d083656ccffc674.ctex"
|
path="res://.godot/imported/DayLevelIcons.png-6cf9f039701f5af6b2ebbc4c2d093290.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Assets/Sprites/UI/LevelIcons.png"
|
source_file="res://Assets/Sprites/UI/LevelIcons/DayLevelIcons.png"
|
||||||
dest_files=["res://.godot/imported/LevelIcons.png-4b08ffadb3e3163a4d083656ccffc674.ctex"]
|
dest_files=["res://.godot/imported/DayLevelIcons.png-6cf9f039701f5af6b2ebbc4c2d093290.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
235
Assets/Sprites/UI/LevelIcons/LevelIcons.json
Normal 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]],
|
||||||
|
],
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
Assets/Sprites/UI/LevelIcons/LockedLevelIcon.png
Normal file
|
After Width: | Height: | Size: 279 B |
40
Assets/Sprites/UI/LevelIcons/LockedLevelIcon.png.import
Normal 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
|
||||||
BIN
Assets/Sprites/UI/LevelIcons/NightLevelIcons.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
40
Assets/Sprites/UI/LevelIcons/NightLevelIcons.png.import
Normal 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
|
||||||
BIN
Assets/Sprites/UI/ProgressTrackerIcons.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
40
Assets/Sprites/UI/ProgressTrackerIcons.png.import
Normal 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
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.9 KiB |
|
|
@ -607,13 +607,13 @@ animations = [{
|
||||||
"speed": 15.0
|
"speed": 15.0
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[node name="ChallengeModeResults" type="Node"]
|
[node name="ChallengeModeResults" type="Node" unique_id=1344692039]
|
||||||
script = ExtResource("1_3x4fv")
|
script = ExtResource("1_3x4fv")
|
||||||
|
|
||||||
[node name="BG" type="CanvasLayer" parent="."]
|
[node name="BG" type="CanvasLayer" parent="." unique_id=2056593822]
|
||||||
layer = -1
|
layer = -1
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="BG"]
|
[node name="ColorRect" type="ColorRect" parent="BG" unique_id=398032741]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
|
@ -621,10 +621,10 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
color = Color(0, 0, 0, 1)
|
color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
[node name="Camera" type="Camera2D" parent="."]
|
[node name="Camera" type="Camera2D" parent="." unique_id=2090750111]
|
||||||
process_callback = 0
|
process_callback = 0
|
||||||
|
|
||||||
[node name="Sprite2D2" type="Sprite2D" parent="."]
|
[node name="Sprite2D2" type="Sprite2D" parent="." unique_id=1857730228]
|
||||||
visible = false
|
visible = false
|
||||||
modulate = Color(0.261477, 0.261477, 0.261477, 1)
|
modulate = Color(0.261477, 0.261477, 0.261477, 1)
|
||||||
visibility_layer = 2
|
visibility_layer = 2
|
||||||
|
|
@ -633,14 +633,14 @@ texture = ExtResource("3_um36a")
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
metadata/_custom_type_script = "uid://364rywt44hy6"
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=606335083]
|
||||||
visibility_layer = 2
|
visibility_layer = 2
|
||||||
z_index = -4096
|
z_index = -4096
|
||||||
position = Vector2(0, -8)
|
position = Vector2(0, -8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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
|
visibility_layer = 2
|
||||||
z_index = 5
|
z_index = 5
|
||||||
z_as_relative = false
|
z_as_relative = false
|
||||||
|
|
@ -648,7 +648,7 @@ position = Vector2(-76, 56)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(0, 0, 8, 64)
|
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
|
visible = false
|
||||||
offset_left = -60.0
|
offset_left = -60.0
|
||||||
offset_top = -32.0
|
offset_top = -32.0
|
||||||
|
|
@ -656,7 +656,7 @@ offset_right = -4.0
|
||||||
offset_bottom = 32.0
|
offset_bottom = 32.0
|
||||||
color = Color(0, 0, 0, 1)
|
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_left = 8.0
|
||||||
offset_top = 56.0
|
offset_top = 56.0
|
||||||
offset_right = 56.0
|
offset_right = 56.0
|
||||||
|
|
@ -664,7 +664,7 @@ offset_bottom = 64.0
|
||||||
text = "CHALLENGE_DIALOGUE_SCORE"
|
text = "CHALLENGE_DIALOGUE_SCORE"
|
||||||
uppercase = true
|
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_left = 44.0
|
||||||
offset_top = 56.0
|
offset_top = 56.0
|
||||||
offset_right = 108.0
|
offset_right = 108.0
|
||||||
|
|
@ -672,7 +672,7 @@ offset_bottom = 79.0
|
||||||
text = "0"
|
text = "0"
|
||||||
horizontal_alignment = 2
|
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
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
|
|
@ -684,7 +684,7 @@ theme_override_colors/font_color = Color(0.462745, 0.52549, 1, 1)
|
||||||
text = "/00000"
|
text = "/00000"
|
||||||
horizontal_alignment = 2
|
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_left = 8.0
|
||||||
offset_top = 40.0
|
offset_top = 40.0
|
||||||
offset_right = 56.0
|
offset_right = 56.0
|
||||||
|
|
@ -692,11 +692,11 @@ offset_bottom = 48.0
|
||||||
text = "CHALLENGE_DIALOGUE_COINS"
|
text = "CHALLENGE_DIALOGUE_COINS"
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="Coins" type="Node2D" parent="Sprite2D/Sprite2D3"]
|
[node name="Coins" type="Node2D" parent="Sprite2D/Sprite2D3" unique_id=897187102]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(72, 12)
|
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)
|
position = Vector2(-5, 36)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
hframes = 2
|
hframes = 2
|
||||||
|
|
@ -704,7 +704,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(3, 36)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
hframes = 2
|
hframes = 2
|
||||||
|
|
@ -713,7 +713,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(11, 36)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
hframes = 2
|
hframes = 2
|
||||||
|
|
@ -722,7 +722,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(19, 36)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
hframes = 2
|
hframes = 2
|
||||||
|
|
@ -731,7 +731,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(27, 36)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
hframes = 2
|
hframes = 2
|
||||||
|
|
@ -740,15 +740,15 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(-28, 44)
|
||||||
texture = ExtResource("6_moc5y")
|
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)
|
position = Vector2(-28, 60)
|
||||||
texture = ExtResource("6_moc5y")
|
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)
|
position = Vector2(-96, 0)
|
||||||
sprite_frames = ExtResource("4_u7ohs")
|
sprite_frames = ExtResource("4_u7ohs")
|
||||||
animation = &"Move"
|
animation = &"Move"
|
||||||
|
|
@ -759,15 +759,15 @@ script = ExtResource("5_x1tpn")
|
||||||
resource_setter = NodePath("ResourceSetterNew")
|
resource_setter = NodePath("ResourceSetterNew")
|
||||||
metadata/_custom_type_script = "uid://b08qfwj5jk6g1"
|
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")
|
script = ExtResource("7_bob8r")
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
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")
|
stream = ExtResource("7_6dwpv")
|
||||||
bus = &"Music"
|
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")
|
script = ExtResource("7_bob8r")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "stream"
|
property_name = "stream"
|
||||||
|
|
@ -775,11 +775,11 @@ mode = 2
|
||||||
resource_json = ExtResource("12_fb45j")
|
resource_json = ExtResource("12_fb45j")
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
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")
|
stream = ExtResource("12_x7w5s")
|
||||||
bus = &"Music"
|
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")
|
script = ExtResource("7_bob8r")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "stream"
|
property_name = "stream"
|
||||||
|
|
@ -787,21 +787,21 @@ mode = 2
|
||||||
resource_json = ExtResource("12_y63tt")
|
resource_json = ExtResource("12_y63tt")
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
||||||
|
|
||||||
[node name="MainSequence" type="AnimationPlayer" parent="."]
|
[node name="MainSequence" type="AnimationPlayer" parent="." unique_id=877815898]
|
||||||
libraries = {
|
libraries = {
|
||||||
&"": SubResource("AnimationLibrary_nud7a")
|
&"": SubResource("AnimationLibrary_nud7a")
|
||||||
}
|
}
|
||||||
autoplay = "Main"
|
autoplay = &"Main"
|
||||||
speed_scale = 0.8
|
speed_scale = 0.8
|
||||||
|
|
||||||
[node name="Toad" type="AnimatedSprite2D" parent="."]
|
[node name="Toad" type="AnimatedSprite2D" parent="." unique_id=130158692]
|
||||||
position = Vector2(56, 0)
|
position = Vector2(56, 0)
|
||||||
sprite_frames = SubResource("SpriteFrames_woqpu")
|
sprite_frames = SubResource("SpriteFrames_woqpu")
|
||||||
animation = &"1Idle"
|
animation = &"1Idle"
|
||||||
autoplay = "Idle"
|
autoplay = "Idle"
|
||||||
speed_scale = 2.0
|
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")
|
script = ExtResource("7_bob8r")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "sprite_frames"
|
property_name = "sprite_frames"
|
||||||
|
|
@ -809,7 +809,7 @@ resource_json = ExtResource("14_sv6qk")
|
||||||
use_cache = false
|
use_cache = false
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
||||||
|
|
||||||
[node name="SpeechBubble" type="Sprite2D" parent="."]
|
[node name="SpeechBubble" type="Sprite2D" parent="." unique_id=579725043]
|
||||||
visible = false
|
visible = false
|
||||||
visibility_layer = 2
|
visibility_layer = 2
|
||||||
position = Vector2(-24, -40)
|
position = Vector2(-24, -40)
|
||||||
|
|
@ -818,7 +818,7 @@ centered = false
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_1l20f")
|
material = SubResource("ShaderMaterial_1l20f")
|
||||||
offset_left = 1.0
|
offset_left = 1.0
|
||||||
|
|
@ -828,7 +828,7 @@ offset_bottom = 27.0
|
||||||
text = "your"
|
text = "your"
|
||||||
uppercase = true
|
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
|
use_parent_material = true
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 27.0
|
offset_left = 27.0
|
||||||
|
|
@ -838,7 +838,7 @@ offset_bottom = 31.0
|
||||||
text = "results"
|
text = "results"
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="Coins" type="Label" parent="SpeechBubble"]
|
[node name="Coins" type="Label" parent="SpeechBubble" unique_id=893262062]
|
||||||
visible = false
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_1l20f")
|
material = SubResource("ShaderMaterial_1l20f")
|
||||||
offset_left = -1.0
|
offset_left = -1.0
|
||||||
|
|
@ -848,10 +848,10 @@ offset_bottom = 27.0
|
||||||
text = "CHALLENGE_DIALOGUE_COINS"
|
text = "CHALLENGE_DIALOGUE_COINS"
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D" parent="SpeechBubble/Coins"]
|
[node name="Node2D" type="Node2D" parent="SpeechBubble/Coins" unique_id=1703833338]
|
||||||
visible = false
|
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)
|
position = Vector2(52, 12)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
centered = false
|
centered = false
|
||||||
|
|
@ -861,7 +861,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(60, 12)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
centered = false
|
centered = false
|
||||||
|
|
@ -871,7 +871,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(68, 12)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
centered = false
|
centered = false
|
||||||
|
|
@ -881,7 +881,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(76, 12)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
centered = false
|
centered = false
|
||||||
|
|
@ -891,7 +891,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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)
|
position = Vector2(84, 12)
|
||||||
texture = ExtResource("10_d76il")
|
texture = ExtResource("10_d76il")
|
||||||
centered = false
|
centered = false
|
||||||
|
|
@ -901,7 +901,7 @@ region_rect = Rect2(8, 0, 8, 8)
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_1l20f")
|
material = SubResource("ShaderMaterial_1l20f")
|
||||||
offset_left = -1.0
|
offset_left = -1.0
|
||||||
|
|
@ -911,7 +911,7 @@ offset_bottom = 27.0
|
||||||
text = "CHALLENGE_DIALOGUE_SCORE"
|
text = "CHALLENGE_DIALOGUE_SCORE"
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="ScoreLabel" type="Label" parent="SpeechBubble/Score"]
|
[node name="ScoreLabel" type="Label" parent="SpeechBubble/Score" unique_id=427565371]
|
||||||
visible = false
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_1l20f")
|
material = SubResource("ShaderMaterial_1l20f")
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
|
|
@ -924,14 +924,14 @@ horizontal_alignment = 2
|
||||||
vertical_alignment = 2
|
vertical_alignment = 2
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="Sprite2D3" type="Sprite2D" parent="."]
|
[node name="Sprite2D3" type="Sprite2D" parent="." unique_id=1441403262]
|
||||||
position = Vector2(58, -112)
|
position = Vector2(58, -112)
|
||||||
texture = ExtResource("11_02i7h")
|
texture = ExtResource("11_02i7h")
|
||||||
centered = false
|
centered = false
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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
|
visible = false
|
||||||
position = Vector2(14, 13)
|
position = Vector2(14, 13)
|
||||||
texture = ExtResource("14_woqpu")
|
texture = ExtResource("14_woqpu")
|
||||||
|
|
@ -939,7 +939,7 @@ hframes = 2
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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
|
visible = false
|
||||||
position = Vector2(30, 13)
|
position = Vector2(30, 13)
|
||||||
texture = ExtResource("14_woqpu")
|
texture = ExtResource("14_woqpu")
|
||||||
|
|
@ -948,7 +948,7 @@ frame = 1
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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
|
visible = false
|
||||||
position = Vector2(46, 12)
|
position = Vector2(46, 12)
|
||||||
texture = ExtResource("16_1h3k2")
|
texture = ExtResource("16_1h3k2")
|
||||||
|
|
@ -957,27 +957,27 @@ vframes = 4
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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")
|
stream = ExtResource("9_qaelr")
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("21_xk7j8")
|
script = ExtResource("21_xk7j8")
|
||||||
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
|
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
|
||||||
|
|
||||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="." unique_id=2109458546]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
stream = ExtResource("11_nym8o")
|
stream = ExtResource("11_nym8o")
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("21_xk7j8")
|
script = ExtResource("21_xk7j8")
|
||||||
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
|
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
|
||||||
|
|
||||||
[node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="."]
|
[node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="." unique_id=1824179585]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
stream = ExtResource("16_eupxr")
|
stream = ExtResource("16_eupxr")
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("21_xk7j8")
|
script = ExtResource("21_xk7j8")
|
||||||
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
|
metadata/_custom_type_script = "uid://dmtw1jesw1vl7"
|
||||||
|
|
||||||
[node name="Yoshi" type="AnimatedSprite2D" parent="."]
|
[node name="Yoshi" type="AnimatedSprite2D" parent="." unique_id=227881632]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(16, 0)
|
position = Vector2(16, 0)
|
||||||
|
|
@ -986,34 +986,34 @@ animation = &"1"
|
||||||
autoplay = "1"
|
autoplay = "1"
|
||||||
frame_progress = 0.466158
|
frame_progress = 0.466158
|
||||||
|
|
||||||
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="Yoshi"]
|
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="Yoshi" unique_id=1372566037]
|
||||||
visible = false
|
visible = false
|
||||||
stream = ExtResource("19_n4lt1")
|
stream = ExtResource("19_n4lt1")
|
||||||
volume_db = 5.0
|
volume_db = 5.0
|
||||||
bus = &"SFX"
|
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")
|
script = ExtResource("9_iyieq")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "stream"
|
property_name = "stream"
|
||||||
themed_resource = SubResource("Resource_vohx7")
|
themed_resource = SubResource("Resource_vohx7")
|
||||||
metadata/_custom_type_script = "uid://cq6f682453q6o"
|
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")
|
script = ExtResource("7_bob8r")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "sprite_frames"
|
property_name = "sprite_frames"
|
||||||
resource_json = ExtResource("23_vohx7")
|
resource_json = ExtResource("23_vohx7")
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
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)
|
position = Vector2(16, 0)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
sprite_frames = SubResource("SpriteFrames_bob8r")
|
sprite_frames = SubResource("SpriteFrames_bob8r")
|
||||||
frame = 4
|
frame = 4
|
||||||
frame_progress = 1.0
|
frame_progress = 1.0
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="." unique_id=373370055]
|
||||||
offset_left = -112.0
|
offset_left = -112.0
|
||||||
offset_top = -112.0
|
offset_top = -112.0
|
||||||
offset_right = -64.0
|
offset_right = -64.0
|
||||||
|
|
@ -1021,7 +1021,7 @@ offset_bottom = -89.0
|
||||||
text = "world"
|
text = "world"
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="WorldLevel" type="Label" parent="."]
|
[node name="WorldLevel" type="Label" parent="." unique_id=1548529906]
|
||||||
offset_left = -104.0
|
offset_left = -104.0
|
||||||
offset_top = -104.0
|
offset_top = -104.0
|
||||||
offset_right = -72.0
|
offset_right = -72.0
|
||||||
|
|
@ -1030,9 +1030,9 @@ text = "1-1"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
uppercase = true
|
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
|
visible = false
|
||||||
visibility_layer = 2
|
visibility_layer = 2
|
||||||
z_index = 4096
|
z_index = 4096
|
||||||
|
|
@ -1047,39 +1047,39 @@ horizontal_alignment = 1
|
||||||
vertical_alignment = 2
|
vertical_alignment = 2
|
||||||
uppercase = true
|
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")
|
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")]
|
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"
|
metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
|
||||||
|
|
||||||
[node name="BG2" type="Node2D" parent="."]
|
[node name="BG2" type="Node2D" parent="." unique_id=2095273623]
|
||||||
z_index = -50
|
z_index = -50
|
||||||
position = Vector2(0, -8)
|
position = Vector2(0, -8)
|
||||||
|
|
||||||
[node name="PackSprite3" type="Sprite2D" parent="BG2"]
|
[node name="PackSprite3" type="Sprite2D" parent="BG2" unique_id=986269619]
|
||||||
visibility_layer = 2
|
visibility_layer = 2
|
||||||
z_index = -4096
|
z_index = -4096
|
||||||
texture = ExtResource("27_w3bjn")
|
texture = ExtResource("27_w3bjn")
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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")
|
texture = ExtResource("28_vohx7")
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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")
|
texture = ExtResource("29_1l20f")
|
||||||
script = ExtResource("3_xe6g7")
|
script = ExtResource("3_xe6g7")
|
||||||
metadata/_custom_type_script = "uid://364rywt44hy6"
|
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
|
visible = false
|
||||||
can_exit = 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
|
visible = false
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
|
|
@ -1092,8 +1092,9 @@ offset_right = 90.0
|
||||||
offset_bottom = 32.5
|
offset_bottom = 32.5
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 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
|
visible = false
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
|
|
|
||||||
|
|
@ -276,15 +276,15 @@ func update_texture() -> void:
|
||||||
atlas = ExtResource("19_3l3ph")
|
atlas = ExtResource("19_3l3ph")
|
||||||
region = Rect2(0, 0, 8, 8)
|
region = Rect2(0, 0, 8, 8)
|
||||||
|
|
||||||
[node name="Global" type="Node"]
|
[node name="Global" type="Node" unique_id=1506289717]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
script = ExtResource("1_t23sr")
|
script = ExtResource("1_t23sr")
|
||||||
|
|
||||||
[node name="Transition" type="CanvasLayer" parent="."]
|
[node name="Transition" type="CanvasLayer" parent="." unique_id=240864005]
|
||||||
layer = 128
|
layer = 128
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="TransitionBlock" type="ColorRect" parent="Transition"]
|
[node name="TransitionBlock" type="ColorRect" parent="Transition" unique_id=1940622078]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
@ -294,7 +294,7 @@ grow_vertical = 2
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
color = Color(0, 0, 0, 1)
|
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
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
|
@ -302,15 +302,15 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Transition"]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="Transition" unique_id=804731792]
|
||||||
libraries = {
|
libraries = {
|
||||||
&"": SubResource("AnimationLibrary_l7dvb")
|
&"": SubResource("AnimationLibrary_l7dvb")
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="GameHUD" parent="." instance=ExtResource("1_ctvpw")]
|
[node name="GameHUD" parent="." unique_id=1073507466 instance=ExtResource("1_ctvpw")]
|
||||||
layer = 1
|
layer = 1
|
||||||
|
|
||||||
[node name="FPSCount" type="Label" parent="GameHUD"]
|
[node name="FPSCount" type="Label" parent="GameHUD" unique_id=1476489533]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
anchors_preset = 3
|
anchors_preset = 3
|
||||||
|
|
@ -325,64 +325,64 @@ grow_vertical = 0
|
||||||
text = "120FPS"
|
text = "120FPS"
|
||||||
horizontal_alignment = 2
|
horizontal_alignment = 2
|
||||||
|
|
||||||
[node name="ScoreTally" type="AudioStreamPlayer" parent="."]
|
[node name="ScoreTally" type="AudioStreamPlayer" parent="." unique_id=1702522037]
|
||||||
stream = ExtResource("3_vjpdy")
|
stream = ExtResource("3_vjpdy")
|
||||||
bus = &"SFX"
|
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")
|
script = ExtResource("4_7puui")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "stream"
|
property_name = "stream"
|
||||||
themed_resource = SubResource("Resource_6jmk5")
|
themed_resource = SubResource("Resource_6jmk5")
|
||||||
metadata/_custom_type_script = "uid://cq6f682453q6o"
|
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")
|
stream = ExtResource("6_30rl1")
|
||||||
bus = &"SFX"
|
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")
|
script = ExtResource("4_7puui")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "stream"
|
property_name = "stream"
|
||||||
themed_resource = SubResource("Resource_l7dvb")
|
themed_resource = SubResource("Resource_l7dvb")
|
||||||
metadata/_custom_type_script = "uid://cq6f682453q6o"
|
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")
|
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")
|
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")
|
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")
|
script = ExtResource("7_3324c")
|
||||||
|
|
||||||
[node name="Timer" type="Timer" parent="."]
|
[node name="Timer" type="Timer" parent="." unique_id=1047030680]
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
[node name="Framerule" type="Timer" parent="."]
|
[node name="Framerule" type="Timer" parent="." unique_id=182874644]
|
||||||
wait_time = 0.351
|
wait_time = 0.351
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
[node name="SpriteFramesToJSONConverter" type="Node" parent="."]
|
[node name="SpriteFramesToJSONConverter" type="Node" parent="." unique_id=1797424646]
|
||||||
script = ExtResource("10_nptu4")
|
script = ExtResource("10_nptu4")
|
||||||
resource = SubResource("Resource_qalov")
|
resource = SubResource("Resource_qalov")
|
||||||
json_file_path = "res://Assets/Sprites/Blocks/BrickDestructionParticles.json"
|
json_file_path = "res://Assets/Sprites/Blocks/BrickDestructionParticles.json"
|
||||||
metadata/_custom_type_script = "uid://cqif1li7otvpl"
|
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
|
process_mode = 1
|
||||||
visible = false
|
visible = false
|
||||||
z_index = 50
|
z_index = 50
|
||||||
z_as_relative = false
|
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
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
|
@ -390,7 +390,7 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
mouse_filter = 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
|
visible = false
|
||||||
modulate = Color(1, 0, 0, 1)
|
modulate = Color(1, 0, 0, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -399,7 +399,7 @@ text = "ERROR! PLEASE REPORT!"
|
||||||
autowrap_mode = 1
|
autowrap_mode = 1
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="Warning" type="Label" parent="CanvasLayer/VBoxContainer"]
|
[node name="Warning" type="Label" parent="CanvasLayer/VBoxContainer" unique_id=1002195923]
|
||||||
visible = false
|
visible = false
|
||||||
modulate = Color(1, 1, 0, 1)
|
modulate = Color(1, 1, 0, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -408,7 +408,7 @@ text = "Warning!"
|
||||||
autowrap_mode = 1
|
autowrap_mode = 1
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="Comment" type="Label" parent="CanvasLayer/VBoxContainer"]
|
[node name="Comment" type="Label" parent="CanvasLayer/VBoxContainer" unique_id=1122997232]
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_colors/font_shadow_color = Color(0.121569, 0.121569, 0.121569, 1)
|
theme_override_colors/font_shadow_color = Color(0.121569, 0.121569, 0.121569, 1)
|
||||||
|
|
@ -416,22 +416,22 @@ text = "Comment"
|
||||||
autowrap_mode = 1
|
autowrap_mode = 1
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="PanelSetter" type="Node" parent="."]
|
[node name="PanelSetter" type="Node" parent="." unique_id=1346795200]
|
||||||
script = SubResource("GDScript_30rl1")
|
script = SubResource("GDScript_30rl1")
|
||||||
panel = ExtResource("16_l7dvb")
|
panel = ExtResource("16_l7dvb")
|
||||||
texture = ExtResource("16_qalov")
|
texture = ExtResource("16_qalov")
|
||||||
|
|
||||||
[node name="PanelSetter2" type="Node" parent="."]
|
[node name="PanelSetter2" type="Node" parent="." unique_id=833840143]
|
||||||
script = SubResource("GDScript_30rl1")
|
script = SubResource("GDScript_30rl1")
|
||||||
panel = ExtResource("18_yyu8s")
|
panel = ExtResource("18_yyu8s")
|
||||||
texture = ExtResource("19_xspbb")
|
texture = ExtResource("19_xspbb")
|
||||||
|
|
||||||
[node name="CursorSetter" type="Node" parent="."]
|
[node name="CursorSetter" type="Node" parent="." unique_id=1281577356]
|
||||||
script = SubResource("GDScript_l7dvb")
|
script = SubResource("GDScript_l7dvb")
|
||||||
cursor = ExtResource("18_xcxrh")
|
cursor = ExtResource("18_xcxrh")
|
||||||
texture = SubResource("AtlasTexture_m6bur")
|
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")
|
script = ExtResource("19_okfpr")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "texture"
|
property_name = "texture"
|
||||||
|
|
@ -439,11 +439,11 @@ mode = 1
|
||||||
resource_json = ExtResource("20_3l3ph")
|
resource_json = ExtResource("20_3l3ph")
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
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")
|
script = ExtResource("18_1la0o")
|
||||||
metadata/_custom_type_script = "uid://ctsjagoa5t33f"
|
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")
|
script = ExtResource("19_okfpr")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "main_font"
|
property_name = "main_font"
|
||||||
|
|
@ -451,7 +451,7 @@ mode = 4
|
||||||
resource_json = ExtResource("23_3l3ph")
|
resource_json = ExtResource("23_3l3ph")
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
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")
|
script = ExtResource("19_okfpr")
|
||||||
node_to_affect = NodePath("..")
|
node_to_affect = NodePath("..")
|
||||||
property_name = "score_font"
|
property_name = "score_font"
|
||||||
|
|
@ -459,7 +459,7 @@ mode = 4
|
||||||
resource_json = ExtResource("24_m6bur")
|
resource_json = ExtResource("24_m6bur")
|
||||||
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
|
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")
|
script = ExtResource("19_l7dvb")
|
||||||
labels = [NodePath("../CanvasLayer/VBoxContainer/ErrorMessage"), NodePath("../CanvasLayer/VBoxContainer/Comment"), NodePath("../CanvasLayer/VBoxContainer/Warning"), NodePath("../GameHUD/FPSCount")]
|
labels = [NodePath("../CanvasLayer/VBoxContainer/ErrorMessage"), NodePath("../CanvasLayer/VBoxContainer/Comment"), NodePath("../CanvasLayer/VBoxContainer/Warning"), NodePath("../GameHUD/FPSCount")]
|
||||||
metadata/_custom_type_script = "uid://dt2p68xl462v2"
|
metadata/_custom_type_script = "uid://dt2p68xl462v2"
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ color = Color(1, 1, 1, 1)
|
||||||
[sub_resource type="StyleBoxLine" id="StyleBoxLine_lfyeb"]
|
[sub_resource type="StyleBoxLine" id="StyleBoxLine_lfyeb"]
|
||||||
color = Color(1, 1, 1, 1)
|
color = Color(1, 1, 1, 1)
|
||||||
|
|
||||||
[node name="DiscoResults" type="Control"]
|
[node name="DiscoResults" type="Control" unique_id=1298188288]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
@ -23,7 +23,7 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_up7vl")
|
script = ExtResource("1_up7vl")
|
||||||
|
|
||||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
[node name="PanelContainer" type="PanelContainer" parent="." unique_id=1498395662]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
|
|
@ -38,15 +38,15 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_styles/panel = ExtResource("1_nfk08")
|
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
|
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
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
text = "YOUR RESULTS"
|
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
|
layout_mode = 1
|
||||||
anchors_preset = 12
|
anchors_preset = 12
|
||||||
anchor_top = 1.0
|
anchor_top = 1.0
|
||||||
|
|
@ -57,28 +57,28 @@ grow_horizontal = 2
|
||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
theme_override_styles/separator = SubResource("StyleBoxLine_6886a")
|
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
|
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
|
layout_mode = 2
|
||||||
text = "SCORE:"
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 0
|
size_flags_horizontal = 0
|
||||||
text = "000000"
|
text = "000000"
|
||||||
|
|
||||||
[node name="Rank" type="HBoxContainer" parent="PanelContainer/VBoxContainer"]
|
[node name="Rank" type="HBoxContainer" parent="PanelContainer/VBoxContainer" unique_id=1686368771]
|
||||||
layout_mode = 2
|
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
|
layout_mode = 2
|
||||||
size_flags_vertical = 0
|
size_flags_vertical = 0
|
||||||
text = "RANK:"
|
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
|
unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(16, 16)
|
custom_minimum_size = Vector2(16, 16)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -88,45 +88,45 @@ region_rect = Rect2(16, 0, 16, 16)
|
||||||
script = ExtResource("3_up7vl")
|
script = ExtResource("3_up7vl")
|
||||||
metadata/_custom_type_script = "uid://xem6lai3ufyj"
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
text = "FAIL!"
|
text = "FAIL!"
|
||||||
uppercase = true
|
uppercase = true
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="PanelContainer/VBoxContainer"]
|
[node name="HSeparator" type="HSeparator" parent="PanelContainer/VBoxContainer" unique_id=1051377687]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_styles/separator = SubResource("StyleBoxLine_lfyeb")
|
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
|
layout_mode = 2
|
||||||
theme_override_constants/margin_left = 4
|
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
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "CONTINUE"
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "RETRY"
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "LEVEL SELECT"
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "RETURN TO MENU"
|
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
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
|
|
@ -140,8 +140,9 @@ offset_right = 90.0
|
||||||
offset_bottom = 32.5
|
offset_bottom = 32.5
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 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
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
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="WorldSelect" method="open"]
|
||||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/VBoxContainer/LevelSelect" to="." method="set_focus" binds= [false]]
|
[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="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="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="open"]
|
||||||
[connection signal="cancelled" from="WorldSelect" to="." method="set_focus" binds= [true]]
|
[connection signal="cancelled" from="WorldSelect" to="." method="set_focus" binds= [true]]
|
||||||
[connection signal="world_selected" from="WorldSelect" to="LevelSelect" method="open"]
|
[connection signal="world_selected" from="WorldSelect" to="LevelSelect" method="open"]
|
||||||
|
|
|
||||||
|
|
@ -2,21 +2,21 @@
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dntk2js0tu3y2" path="res://Scenes/Prefabs/UI/WorldSelect.tscn" id="1_fvn0p"]
|
[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
|
world_offset = 8
|
||||||
num_of_worlds = 4
|
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")
|
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")
|
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
|
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
|
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
|
visible = false
|
||||||
|
|
|
||||||
|
|
@ -507,3 +507,11 @@ func get_base_asset_version() -> int:
|
||||||
|
|
||||||
func get_version_num_int(ver_num := "0.0.0") -> int:
|
func get_version_num_int(ver_num := "0.0.0") -> int:
|
||||||
return int(ver_num.replace(".", ""))
|
return int(ver_num.replace(".", ""))
|
||||||
|
|
||||||
|
func merge_dict(target: Dictionary, source: Dictionary) -> void:
|
||||||
|
# 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])
|
||||||
|
else:
|
||||||
|
target[key] = source[key]
|
||||||
|
|
|
||||||
|
|
@ -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],
|
||||||
|
[-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
|
[22, 22, 17, 16], # World 5
|
||||||
[21, 25, 18, 16], # World 6
|
[21, 25, 18, 16], # World 6
|
||||||
[20, 38, 25, 23], # World 7
|
[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 := [
|
const SMBLL_LEVEL_GOLD_WARPLESS_TIMES := [
|
||||||
|
|
@ -107,6 +117,11 @@ const SMBLL_LEVEL_GOLD_WARPLESS_TIMES := [
|
||||||
[28, 39, 23, 29],
|
[28, 39, 23, 29],
|
||||||
[21, 26, 32, 36],
|
[21, 26, 32, 36],
|
||||||
[24, 27, 25, 60],
|
[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 := {
|
const SMB1_LEVEL_GOLD_ANY_TIMES := {
|
||||||
|
|
@ -135,6 +150,11 @@ const SMBS_LEVEL_GOLD_TIMES := [
|
||||||
[24, 21, 23, 20],
|
[24, 21, 23, 20],
|
||||||
[24, 40, 30, 27],
|
[24, 40, 30, 27],
|
||||||
[30, 35, 30, 43],
|
[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"]
|
const SMB1_WARP_LEVELS := ["1-2", "4-2"]
|
||||||
|
|
@ -262,7 +282,7 @@ func load_best_times(campaign = Global.current_campaign) -> void:
|
||||||
return
|
return
|
||||||
best_time_campaign = campaign
|
best_time_campaign = campaign
|
||||||
best_level_any_times.clear()
|
best_level_any_times.clear()
|
||||||
for world_num in 8:
|
for world_num in 13:
|
||||||
for level_num in 4:
|
for level_num in 4:
|
||||||
var path = Global.config_path.path_join("marathon_recordings/" + campaign + "/" + str(world_num + 1) + "-" + str(level_num + 1) + ".json")
|
var path = Global.config_path.path_join("marathon_recordings/" + campaign + "/" + str(world_num + 1) + "-" + str(level_num + 1) + ".json")
|
||||||
if FileAccess.file_exists(path):
|
if FileAccess.file_exists(path):
|
||||||
|
|
|
||||||
|
|
@ -71,14 +71,13 @@ func _process(_delta: float) -> void:
|
||||||
$BGM.play()
|
$BGM.play()
|
||||||
|
|
||||||
func campaign_selected() -> void:
|
func campaign_selected() -> void:
|
||||||
|
$CanvasLayer/Options1.close()
|
||||||
if last_campaign != Global.current_campaign:
|
if last_campaign != Global.current_campaign:
|
||||||
last_campaign = Global.current_campaign
|
last_campaign = Global.current_campaign
|
||||||
update_title()
|
update_title()
|
||||||
if Global.current_campaign == "SMBANN":
|
if Global.current_campaign == "SMBANN":
|
||||||
Global.current_game_mode = Global.GameMode.CAMPAIGN
|
$CanvasLayer/Options2Stripped.open()
|
||||||
$CanvasLayer/AllNightNippon/WorldSelect.open()
|
|
||||||
return
|
return
|
||||||
$CanvasLayer/Options1.close()
|
|
||||||
$CanvasLayer/Options2.open()
|
$CanvasLayer/Options2.open()
|
||||||
|
|
||||||
func open_story_options() -> void:
|
func open_story_options() -> void:
|
||||||
|
|
|
||||||
|
|
@ -12,49 +12,136 @@ var starting_value := -1
|
||||||
@export var has_challenge_stuff := false
|
@export var has_challenge_stuff := false
|
||||||
@export var has_disco_stuff := false
|
@export var has_disco_stuff := false
|
||||||
|
|
||||||
|
const LEVEL_ICON_JSON_PATH := "res://Assets/Sprites/UI/LevelIcons/LevelIcons.json"
|
||||||
|
|
||||||
const LEVEL_ICONS := {
|
const LEVEL_ICONS := {
|
||||||
"SMB1": SMB1_ICONS,
|
"SMB1": SMB1_ICONS,
|
||||||
"SMBLL": SMBLL_ICONS,
|
"SMBLL": SMBLL_ICONS,
|
||||||
"SMBS": SMBS_ICONS,
|
"SMBS": SMBS_ICONS,
|
||||||
"SMBANN": SMB1_ICONS
|
"SMBANN": SMBANN_ICONS
|
||||||
}
|
}
|
||||||
|
|
||||||
const SMB1_ICONS := [
|
const SMB1_ICONS := [
|
||||||
"0123",
|
[
|
||||||
"0453",
|
["day", [0,0]],["day", [0,4]],["day", [1,0]],["day", [1,4]],
|
||||||
"0023",
|
],
|
||||||
"0163",
|
[
|
||||||
"8893",
|
["day", [0,2]],["day", [3,1]],["day", [1,2]],["day", [1,5]],
|
||||||
"8893",
|
],
|
||||||
"8AB3",
|
[
|
||||||
"8883"
|
["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 := [
|
const SMBLL_ICONS := [
|
||||||
"0123",
|
[
|
||||||
"0053",
|
["day", [0,2]],["day", [0,7]],["day", [1,0]],["day", [1,4]],
|
||||||
"0423",
|
],
|
||||||
"0023",
|
[
|
||||||
"8193",
|
["day", [1,2]],["day", [0,1]],["day", [1,2]],["day", [1,7]],
|
||||||
"8AB3",
|
],
|
||||||
"8993",
|
[
|
||||||
"88D3",
|
["day", [0,3]],["day", [3,0]],["day", [1,1]],["day", [1,6]],
|
||||||
"8888",
|
],
|
||||||
"0123",
|
[
|
||||||
"0423",
|
["day", [0,1]],["day", [0,3]],["day", [1,1]],["day", [1,5]],
|
||||||
"0523",
|
],
|
||||||
"0003"
|
[
|
||||||
|
["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 := [
|
const SMBS_ICONS := [
|
||||||
"0123",
|
[
|
||||||
"0453",
|
["day", [0,1]],["day", [0,4]],["day", [1,0]],["day", [1,6]],
|
||||||
"0023",
|
],
|
||||||
"0163",
|
[
|
||||||
"8893",
|
["day", [0,0]],["day", [3,1]],["day", [1,2]],["day", [1,7]],
|
||||||
"8893",
|
],
|
||||||
"8AB3",
|
[
|
||||||
"CA13"
|
["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 := [
|
const NUMBER_Y := [
|
||||||
|
|
@ -69,7 +156,7 @@ const NUMBER_Y := [
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
for i in %SlotContainer.get_children():
|
for i in %SlotContainer.get_children():
|
||||||
i.focus_entered.connect(slot_selected.bind(i.get_index()))
|
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)
|
start_particle(i)
|
||||||
|
|
||||||
func start_particle(particle: GPUParticles2D) -> void:
|
func start_particle(particle: GPUParticles2D) -> void:
|
||||||
|
|
@ -86,6 +173,7 @@ func open() -> void:
|
||||||
starting_value = Global.level_num
|
starting_value = Global.level_num
|
||||||
print([Global.level_num, starting_value])
|
print([Global.level_num, starting_value])
|
||||||
selected_level = Global.level_num - 1
|
selected_level = Global.level_num - 1
|
||||||
|
setup_level_icon_data()
|
||||||
setup_visuals()
|
setup_visuals()
|
||||||
update_pb()
|
update_pb()
|
||||||
show()
|
show()
|
||||||
|
|
@ -93,10 +181,22 @@ func open() -> void:
|
||||||
await get_tree().create_timer(0.1).timeout
|
await get_tree().create_timer(0.1).timeout
|
||||||
active = true
|
active = true
|
||||||
|
|
||||||
const CHARSET := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
||||||
|
|
||||||
var visited_levels := "0000"
|
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:
|
func setup_visuals() -> void:
|
||||||
%MarathonBits.visible = Global.current_game_mode == Global.GameMode.MARATHON_PRACTICE
|
%MarathonBits.visible = Global.current_game_mode == Global.GameMode.MARATHON_PRACTICE
|
||||||
%ChallengeBits.visible = Global.current_game_mode == Global.GameMode.CHALLENGE
|
%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]
|
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))
|
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 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])
|
var cur_level = LEVEL_ICONS[Global.current_campaign][Global.world_num - 1][idx]
|
||||||
if level_visited == false:
|
var cur_icon = ICON_LOCKED if not level_visited else ICON_NIGHT if cur_level[0] == "night" else ICON_DAY
|
||||||
num = 7
|
var grid_size = [cur_icon.get_width() - icon_size[0], cur_icon.get_height() - icon_size[1]]
|
||||||
i.get_node("ChallengeModeBits").visible = Global.current_game_mode == Global.GameMode.CHALLENGE
|
var clamp_icon = clamp([cur_level[1][0] * icon_size[0], cur_level[1][1] * icon_size[1]], [0, 0], grid_size)
|
||||||
if Global.current_game_mode == Global.GameMode.CHALLENGE:
|
i.get_node("Icon").texture = cur_icon
|
||||||
setup_challenge_mode_bits(i.get_node("ChallengeModeBits"), idx + 1)
|
i.get_node("Icon").region_rect = Rect2(clamp_icon[0], clamp_icon[1], icon_size[0], icon_size[1])
|
||||||
i.get_node("Icon").region_rect = Rect2((num % 4) * 56, (num / 4) * 32, 56, 32)
|
|
||||||
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.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/Number").region_rect.position.x = (idx) * 12
|
||||||
i.get_node("Icon/RankMedal").visible = Global.current_campaign == "SMBANN"
|
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":
|
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").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
|
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:
|
func update_pb() -> void:
|
||||||
if has_speedrun_stuff == false: return
|
if has_speedrun_stuff == false: return
|
||||||
var best_warpless_time = SpeedrunHandler.best_level_warpless_times[Global.world_num - 1][selected_level]
|
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)
|
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))
|
%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))
|
%WarpRunPB.text = "--:--:--" if best_any_time == -1 else SpeedrunHandler.gen_time_string(SpeedrunHandler.format_time(best_any_time))
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,10 @@ extends Control
|
||||||
|
|
||||||
var selected_world := 0
|
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 world_offset := 0
|
||||||
|
|
||||||
@export var num_of_worlds := 7
|
@export var num_of_worlds := 7
|
||||||
|
|
@ -26,6 +30,12 @@ const NUMBER_Y := [
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
for i in %SlotContainer.get_children():
|
for i in %SlotContainer.get_children():
|
||||||
i.focus_entered.connect(slot_focused.bind(i.get_index()))
|
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:
|
func _process(_delta: float) -> void:
|
||||||
if active:
|
if active:
|
||||||
|
|
@ -36,6 +46,7 @@ func open() -> void:
|
||||||
if starting_value == -1:
|
if starting_value == -1:
|
||||||
starting_value = Global.world_num
|
starting_value = Global.world_num
|
||||||
selected_world = Global.world_num - 1 - world_offset
|
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()
|
setup_visuals()
|
||||||
show()
|
show()
|
||||||
await get_tree().process_frame
|
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?
|
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").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").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.y = clamp(NUMBER_Y.find(level_theme) * 12, 0, 9999)
|
||||||
i.get_node("Icon/Number").region_rect.position.x = (idx + world_offset) * 12
|
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
|
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:
|
func handle_input() -> void:
|
||||||
if Input.is_action_just_pressed("ui_accept"):
|
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:
|
if SaveManager.visited_levels.substr((selected_world + world_offset) * 4, 4) == "0000" and not Global.debug_mode and selected_world != 0:
|
||||||
|
|
|
||||||