| source_md5="cb7ce8d8a14a0a241c2a2610d8b62104" | |||||
| dest_md5="5ad0353abe6e8049f74988c09b001d19" | |||||
| source_md5="c52a22b38fd33f7dfde93d26589ccba1" | |||||
| dest_md5="88508923a9027f8b27bfd05761bd4209" | |||||
| source_md5="f75f30ba21df9e4254bdd731cd7b398c" | |||||
| dest_md5="0f2fde94c88198f29c69671ce15f5396" | |||||
| [remap] | |||||
| importer="texture" | |||||
| type="StreamTexture" | |||||
| path="res://.import/CreationDate.png-22fbe63cad0f066a0ae043ef18318186.stex" | |||||
| metadata={ | |||||
| "vram_texture": false | |||||
| } | |||||
| [deps] | |||||
| source_file="res://Data/Graphics/Logos/CreationDate.png" | |||||
| dest_files=[ "res://.import/CreationDate.png-22fbe63cad0f066a0ae043ef18318186.stex" ] | |||||
| [params] | |||||
| compress/mode=0 | |||||
| compress/lossy_quality=0.7 | |||||
| compress/hdr_mode=0 | |||||
| compress/bptc_ldr=0 | |||||
| compress/normal_map=0 | |||||
| flags/repeat=0 | |||||
| flags/filter=true | |||||
| flags/mipmaps=false | |||||
| flags/anisotropic=false | |||||
| flags/srgb=2 | |||||
| process/fix_alpha_border=true | |||||
| process/premult_alpha=false | |||||
| process/HDR_as_SRGB=false | |||||
| process/invert_color=false | |||||
| stream=false | |||||
| size_limit=0 | |||||
| detect_3d=true | |||||
| svg/scale=1.0 |
| [remap] | |||||
| importer="texture" | |||||
| type="StreamTexture" | |||||
| path="res://.import/Creator.png-d1f9e7c8f53ac0bfdd40ef53c0593275.stex" | |||||
| metadata={ | |||||
| "vram_texture": false | |||||
| } | |||||
| [deps] | |||||
| source_file="res://Data/Graphics/Logos/Creator.png" | |||||
| dest_files=[ "res://.import/Creator.png-d1f9e7c8f53ac0bfdd40ef53c0593275.stex" ] | |||||
| [params] | |||||
| compress/mode=0 | |||||
| compress/lossy_quality=0.7 | |||||
| compress/hdr_mode=0 | |||||
| compress/bptc_ldr=0 | |||||
| compress/normal_map=0 | |||||
| flags/repeat=0 | |||||
| flags/filter=true | |||||
| flags/mipmaps=false | |||||
| flags/anisotropic=false | |||||
| flags/srgb=2 | |||||
| process/fix_alpha_border=true | |||||
| process/premult_alpha=false | |||||
| process/HDR_as_SRGB=false | |||||
| process/invert_color=false | |||||
| stream=false | |||||
| size_limit=0 | |||||
| detect_3d=true | |||||
| svg/scale=1.0 |
| [remap] | |||||
| importer="texture" | |||||
| type="StreamTexture" | |||||
| path="res://.import/GameTitle.png-01b2e6251715664903ab98921fb0b733.stex" | |||||
| metadata={ | |||||
| "vram_texture": false | |||||
| } | |||||
| [deps] | |||||
| source_file="res://Data/Graphics/Logos/GameTitle.png" | |||||
| dest_files=[ "res://.import/GameTitle.png-01b2e6251715664903ab98921fb0b733.stex" ] | |||||
| [params] | |||||
| compress/mode=0 | |||||
| compress/lossy_quality=0.7 | |||||
| compress/hdr_mode=0 | |||||
| compress/bptc_ldr=0 | |||||
| compress/normal_map=0 | |||||
| flags/repeat=0 | |||||
| flags/filter=true | |||||
| flags/mipmaps=false | |||||
| flags/anisotropic=false | |||||
| flags/srgb=2 | |||||
| process/fix_alpha_border=true | |||||
| process/premult_alpha=false | |||||
| process/HDR_as_SRGB=false | |||||
| process/invert_color=false | |||||
| stream=false | |||||
| size_limit=0 | |||||
| detect_3d=true | |||||
| svg/scale=1.0 |
| orbit_velocity_random = 0.0 | orbit_velocity_random = 0.0 | ||||
| scale = 2.0 | scale = 2.0 | ||||
| scale_curve = SubResource( 4 ) | scale_curve = SubResource( 4 ) | ||||
| color = Color( 0.94902, 0.541176, 0.827451, 1 ) | |||||
| color = Color( 0.576471, 0.760784, 0.996078, 1 ) | |||||
| [node name="Liquid" type="Sprite"] | [node name="Liquid" type="Sprite"] | ||||
| material = SubResource( 1 ) | material = SubResource( 1 ) |
| [sub_resource type="ShaderMaterial" id=5] | [sub_resource type="ShaderMaterial" id=5] | ||||
| resource_local_to_scene = true | resource_local_to_scene = true | ||||
| shader = ExtResource( 6 ) | shader = ExtResource( 6 ) | ||||
| shader_param/sprite_scale = Vector2( 1, 1 ) | |||||
| shader_param/sprite_scale = Vector2( 1.63999, 1 ) | |||||
| shader_param/distortion = 16.265 | shader_param/distortion = 16.265 | ||||
| shader_param/liquid_color_main = Color( 0.741176, 0.741176, 0.741176, 1 ) | shader_param/liquid_color_main = Color( 0.741176, 0.741176, 0.741176, 1 ) | ||||
| shader_param/liquid_color_surface = Color( 1, 1, 1, 1 ) | shader_param/liquid_color_surface = Color( 1, 1, 1, 1 ) | ||||
| [sub_resource type="ShaderMaterial" id=3] | [sub_resource type="ShaderMaterial" id=3] | ||||
| resource_local_to_scene = true | resource_local_to_scene = true | ||||
| shader = ExtResource( 6 ) | shader = ExtResource( 6 ) | ||||
| shader_param/sprite_scale = Vector2( 1, 1 ) | |||||
| shader_param/sprite_scale = Vector2( 1.56, 1 ) | |||||
| shader_param/distortion = 16.265 | shader_param/distortion = 16.265 | ||||
| shader_param/liquid_color_main = Color( 0.305882, 0.129412, 0.745098, 1 ) | shader_param/liquid_color_main = Color( 0.305882, 0.129412, 0.745098, 1 ) | ||||
| shader_param/liquid_color_surface = Color( 0.0156863, 0.658824, 0.745098, 1 ) | shader_param/liquid_color_surface = Color( 0.0156863, 0.658824, 0.745098, 1 ) | ||||
| [node name="ExitVortex" parent="." instance=ExtResource( 3 )] | [node name="ExitVortex" parent="." instance=ExtResource( 3 )] | ||||
| position = Vector2( 630.493, -32.7922 ) | position = Vector2( 630.493, -32.7922 ) | ||||
| next_level = "Level_TestSite.tscn" | |||||
| next_level = "MainMenuLogo.tscn" | |||||
| [connection signal="exit_level" from="ExitVortex" to="." method="_on_ExitVortex_exit_level"] | [connection signal="exit_level" from="ExitVortex" to="." method="_on_ExitVortex_exit_level"] |
| [gd_scene load_steps=10 format=2] | |||||
| [gd_scene load_steps=11 format=2] | |||||
| [ext_resource path="res://Data/Objects/Liquid.tscn" type="PackedScene" id=1] | [ext_resource path="res://Data/Objects/Liquid.tscn" type="PackedScene" id=1] | ||||
| [ext_resource path="res://Data/Misc/Tileset.tres" type="TileSet" id=2] | [ext_resource path="res://Data/Misc/Tileset.tres" type="TileSet" id=2] | ||||
| [ext_resource path="res://Data/Objects/ExitVortex.tscn" type="PackedScene" id=3] | |||||
| [ext_resource path="res://Data/Shaders/Liquid.shader" type="Shader" id=7] | [ext_resource path="res://Data/Shaders/Liquid.shader" type="Shader" id=7] | ||||
| [ext_resource path="res://Data/Objects/Pusher.tscn" type="PackedScene" id=9] | [ext_resource path="res://Data/Objects/Pusher.tscn" type="PackedScene" id=9] | ||||
| [ext_resource path="res://Data/Objects/BladeSaw.tscn" type="PackedScene" id=10] | [ext_resource path="res://Data/Objects/BladeSaw.tscn" type="PackedScene" id=10] | ||||
| [node name="Player_Start" type="Position2D" parent="."] | [node name="Player_Start" type="Position2D" parent="."] | ||||
| position = Vector2( -31.5133, -15.0267 ) | position = Vector2( -31.5133, -15.0267 ) | ||||
| [node name="ExitVortex" parent="." instance=ExtResource( 3 )] | |||||
| position = Vector2( 95.2261, 692.429 ) | |||||
| next_level = "Level_002.tscn" | |||||
| [connection signal="exit_level" from="ExitVortex" to="." method="_on_ExitVortex_exit_level"] |
| [gd_scene load_steps=8 format=2] | |||||
| [ext_resource path="res://Data/Graphics/Logos/GodotWildJam.png" type="Texture" id=1] | |||||
| [ext_resource path="res://Data/Graphics/Logos/head_bg_less.png" type="Texture" id=2] | |||||
| [ext_resource path="res://Data/Graphics/Logos/GameTitle.png" type="Texture" id=3] | |||||
| [ext_resource path="res://Data/Graphics/Logos/Creator.png" type="Texture" id=4] | |||||
| [ext_resource path="res://Data/Graphics/Logos/CreationDate.png" type="Texture" id=5] | |||||
| [ext_resource path="res://Data/Scripts/Levels/MainMenuLogo.gd" type="Script" id=6] | |||||
| [sub_resource type="Animation" id=1] | |||||
| resource_name = "Title" | |||||
| length = 15.0 | |||||
| tracks/0/type = "value" | |||||
| tracks/0/path = NodePath("GodotJamTitle:position") | |||||
| tracks/0/interp = 1 | |||||
| tracks/0/loop_wrap = true | |||||
| tracks/0/imported = false | |||||
| tracks/0/enabled = true | |||||
| tracks/0/keys = { | |||||
| "times": PoolRealArray( 0, 4, 4.5 ), | |||||
| "transitions": PoolRealArray( 1, 1, 1 ), | |||||
| "update": 0, | |||||
| "values": [ Vector2( -192.752, 375.251 ), Vector2( 627.468, 375.251 ), Vector2( 554.762, 375.251 ) ] | |||||
| } | |||||
| tracks/1/type = "value" | |||||
| tracks/1/path = NodePath("GodotJamFace:position") | |||||
| tracks/1/interp = 1 | |||||
| tracks/1/loop_wrap = true | |||||
| tracks/1/imported = false | |||||
| tracks/1/enabled = true | |||||
| tracks/1/keys = { | |||||
| "times": PoolRealArray( 0, 1.5, 2, 3, 3.5, 4 ), | |||||
| "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), | |||||
| "update": 0, | |||||
| "values": [ Vector2( 174.297, 346.543 ), Vector2( 174.297, 346.543 ), Vector2( 477.778, 346.543 ), Vector2( 477.778, 346.543 ), Vector2( 477.778, 346.543 ), Vector2( 955.556, 346.543 ) ] | |||||
| } | |||||
| tracks/2/type = "value" | |||||
| tracks/2/path = NodePath("GameTitle:position") | |||||
| tracks/2/interp = 1 | |||||
| tracks/2/loop_wrap = true | |||||
| tracks/2/imported = false | |||||
| tracks/2/enabled = true | |||||
| tracks/2/keys = { | |||||
| "times": PoolRealArray( 0, 10, 11.5 ), | |||||
| "transitions": PoolRealArray( 1, 1, 1 ), | |||||
| "update": 0, | |||||
| "values": [ Vector2( 672.58, -129.185 ), Vector2( 672.58, -129.185 ), Vector2( 672.58, 352.496 ) ] | |||||
| } | |||||
| tracks/3/type = "value" | |||||
| tracks/3/path = NodePath("GodotJamTitle/Sprite:modulate") | |||||
| tracks/3/interp = 1 | |||||
| tracks/3/loop_wrap = true | |||||
| tracks/3/imported = false | |||||
| tracks/3/enabled = true | |||||
| tracks/3/keys = { | |||||
| "times": PoolRealArray( 0, 4.5, 5, 5.5, 6, 8, 9 ), | |||||
| "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ), | |||||
| "update": 0, | |||||
| "values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0.501961 ), Color( 1, 1, 1, 0.25098 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] | |||||
| } | |||||
| tracks/4/type = "value" | |||||
| tracks/4/path = NodePath("GodotJamFace/Sprite:modulate") | |||||
| tracks/4/interp = 1 | |||||
| tracks/4/loop_wrap = true | |||||
| tracks/4/imported = false | |||||
| tracks/4/enabled = true | |||||
| tracks/4/keys = { | |||||
| "times": PoolRealArray( 0, 1, 1.5, 2, 3, 3.5, 4, 4.5, 5, 5.5, 8, 9 ), | |||||
| "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), | |||||
| "update": 0, | |||||
| "values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0.0941176 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0.392157 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0.705882 ), Color( 1, 1, 1, 0.313726 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] | |||||
| } | |||||
| tracks/5/type = "value" | |||||
| tracks/5/path = NodePath("GameTitle:visible") | |||||
| tracks/5/interp = 1 | |||||
| tracks/5/loop_wrap = true | |||||
| tracks/5/imported = false | |||||
| tracks/5/enabled = true | |||||
| tracks/5/keys = { | |||||
| "times": PoolRealArray( 0, 10 ), | |||||
| "transitions": PoolRealArray( 1, 1 ), | |||||
| "update": 1, | |||||
| "values": [ false, true ] | |||||
| } | |||||
| tracks/6/type = "value" | |||||
| tracks/6/path = NodePath("CreationDate/Sprite:modulate") | |||||
| tracks/6/interp = 1 | |||||
| tracks/6/loop_wrap = true | |||||
| tracks/6/imported = false | |||||
| tracks/6/enabled = true | |||||
| tracks/6/keys = { | |||||
| "times": PoolRealArray( 0, 13, 14 ), | |||||
| "transitions": PoolRealArray( 1, 1, 1 ), | |||||
| "update": 0, | |||||
| "values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] | |||||
| } | |||||
| tracks/7/type = "value" | |||||
| tracks/7/path = NodePath("Creator/Sprite:modulate") | |||||
| tracks/7/interp = 1 | |||||
| tracks/7/loop_wrap = true | |||||
| tracks/7/imported = false | |||||
| tracks/7/enabled = true | |||||
| tracks/7/keys = { | |||||
| "times": PoolRealArray( 0, 12, 13 ), | |||||
| "transitions": PoolRealArray( 1, 1, 1 ), | |||||
| "update": 0, | |||||
| "values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] | |||||
| } | |||||
| [node name="MainMenuLogo" type="Node2D"] | |||||
| script = ExtResource( 6 ) | |||||
| [node name="GameTitle" type="Position2D" parent="."] | |||||
| visible = false | |||||
| position = Vector2( 672.58, -129.185 ) | |||||
| [node name="Sprite" type="Sprite" parent="GameTitle"] | |||||
| texture = ExtResource( 3 ) | |||||
| [node name="GodotJamFace" type="Position2D" parent="."] | |||||
| position = Vector2( 174.297, 346.543 ) | |||||
| [node name="Sprite" type="Sprite" parent="GodotJamFace"] | |||||
| modulate = Color( 1, 1, 1, 0 ) | |||||
| scale = Vector2( 0.5, 0.5 ) | |||||
| texture = ExtResource( 2 ) | |||||
| [node name="GodotJamTitle" type="Position2D" parent="."] | |||||
| position = Vector2( -192.752, 375.251 ) | |||||
| [node name="Sprite" type="Sprite" parent="GodotJamTitle"] | |||||
| modulate = Color( 1, 1, 1, 0 ) | |||||
| scale = Vector2( 0.5, 0.5 ) | |||||
| texture = ExtResource( 1 ) | |||||
| [node name="CreationDate" type="Position2D" parent="."] | |||||
| position = Vector2( 789.418, 451.433 ) | |||||
| [node name="Sprite" type="Sprite" parent="CreationDate"] | |||||
| modulate = Color( 1, 1, 1, 0 ) | |||||
| texture = ExtResource( 5 ) | |||||
| [node name="Creator" type="Position2D" parent="."] | |||||
| position = Vector2( 502.814, 239.1 ) | |||||
| [node name="Sprite" type="Sprite" parent="Creator"] | |||||
| modulate = Color( 1, 1, 1, 0 ) | |||||
| texture = ExtResource( 4 ) | |||||
| [node name="AnimPlayer" type="AnimationPlayer" parent="."] | |||||
| autoplay = "Title" | |||||
| anims/Title = SubResource( 1 ) | |||||
| [node name="Player_Start" type="Position2D" parent="."] | |||||
| position = Vector2( 683, 384 ) | |||||
| [connection signal="animation_finished" from="AnimPlayer" to="." method="_on_AnimPlayer_animation_finished"] |
| [gd_scene load_steps=3 format=2] | |||||
| [ext_resource path="res://Data/Graphics/Logos/GodotWildJam.png" type="Texture" id=1] | |||||
| [ext_resource path="res://Data/Graphics/Logos/head_bg_less.png" type="Texture" id=2] | |||||
| [node name="MainMenuLogo" type="Node2D"] | |||||
| [node name="GodotFace" type="Node2D" parent="."] | |||||
| position = Vector2( 172.95, 351.479 ) | |||||
| [node name="Sprite" type="Sprite" parent="GodotFace"] | |||||
| scale = Vector2( 0.5, 0.5 ) | |||||
| texture = ExtResource( 2 ) | |||||
| [node name="GodotJamTitle" type="Node2D" parent="."] | |||||
| position = Vector2( -203.938, 372.715 ) | |||||
| [node name="Sprite" type="Sprite" parent="GodotJamTitle"] | |||||
| scale = Vector2( 0.5, 0.5 ) | |||||
| texture = ExtResource( 1 ) |
| signal exit_level | signal exit_level | ||||
| func is_main_menu(): | |||||
| return false | |||||
| func get_starting_position(): | func get_starting_position(): | ||||
| return get_node("Player_Start").position | return get_node("Player_Start").position | ||||
| func _on_Exit_exit_level(exit, body, next_level): | func _on_Exit_exit_level(exit, body, next_level): | ||||
| emit_signal("exit_level", exit, body, next_level) | emit_signal("exit_level", exit, body, next_level) | ||||
| func _on_ExitVortex_exit_level(exit, body, next_level): | |||||
| # Different exit vortex than the signal handler above. | |||||
| emit_signal("exit_level", exit, body, next_level) |
| signal exit_level | signal exit_level | ||||
| func is_main_menu(): | |||||
| return false | |||||
| func get_starting_position(): | func get_starting_position(): | ||||
| return get_node("Player_Start").position | return get_node("Player_Start").position | ||||
| extends Node2D | extends Node2D | ||||
| signal exit_level | |||||
| func is_main_menu(): | |||||
| return false | |||||
| func get_starting_position(): | func get_starting_position(): | ||||
| return get_node("Player_Start").position | return get_node("Player_Start").position | ||||
| func get_level_music(): | func get_level_music(): | ||||
| return "Fly.ogg" | |||||
| return "Fly_1.ogg" | |||||
| func _on_ExitVortex_exit_level(exit, body, next_level): | |||||
| emit_signal("exit_level", exit, body, next_level) |
| extends Node2D | |||||
| signal exit_level | |||||
| func _input(event): | |||||
| if event.is_action_pressed("ButtonA"): | |||||
| emit_signal("exit_level", null, null, "Level_001.tscn") | |||||
| if event.is_action_pressed("ui_cancel"): | |||||
| get_tree().quit() | |||||
| func is_main_menu(): | |||||
| return true | |||||
| func get_starting_position(): | |||||
| return get_node("Player_Start").position | |||||
| func get_level_music(): | |||||
| return "" | |||||
| func _on_AnimPlayer_animation_finished(anim_name): | |||||
| set_process_input(true) |
| onready var _nrg_bar = get_node("PlayerUI/NRG/Bar/Progress") | onready var _nrg_bar = get_node("PlayerUI/NRG/Bar/Progress") | ||||
| onready var _nrg_bar_tween = get_node("PlayerUI/NRG/Bar/Progress/Tween") | onready var _nrg_bar_tween = get_node("PlayerUI/NRG/Bar/Progress/Tween") | ||||
| # Called when the node enters the scene tree for the first time. | # Called when the node enters the scene tree for the first time. | ||||
| func _ready(): | func _ready(): | ||||
| set_process_input(true) | |||||
| #set_process_input(true) | |||||
| set_process(true) | set_process(true) | ||||
| _agg_bar.max_value = 100.0 | _agg_bar.max_value = 100.0 | ||||
| _agg_bar.value = 0.0 | _agg_bar.value = 0.0 | ||||
| _nrg_bar.value = get_node("../Player").get_current_energy() | _nrg_bar.value = get_node("../Player").get_current_energy() | ||||
| func _input(event): | func _input(event): | ||||
| if not $Timer.visible: | |||||
| return | |||||
| if event.is_action_pressed("ui_cancel"): | if event.is_action_pressed("ui_cancel"): | ||||
| get_parent().pause(true) | get_parent().pause(true) | ||||
| $Menus/PauseMenu.show() | $Menus/PauseMenu.show() |
| func load_and_play_music(src): | func load_and_play_music(src): | ||||
| var fn = "res://Data/Sound/Music/" + src | |||||
| if File.new().file_exists(fn): | |||||
| $Music.stream = load(fn) | |||||
| $Music.play() | |||||
| if src != "": | |||||
| var fn = "res://Data/Sound/Music/" + src | |||||
| if File.new().file_exists(fn): | |||||
| $Music.stream = load(fn) | |||||
| $Music.play() | |||||
| func load_level(src): | func load_level(src): | ||||
| $Music.stop() | |||||
| _level_running = false | _level_running = false | ||||
| get_node("Player").hide() | get_node("Player").hide() | ||||
| var lvl = get_node("lvl") | var lvl = get_node("lvl") | ||||
| _level_node.connect("exit_level", self, "_on_exit_level") | _level_node.connect("exit_level", self, "_on_exit_level") | ||||
| load_and_play_music(_level_node.get_level_music()) | load_and_play_music(_level_node.get_level_music()) | ||||
| reset() | reset() | ||||
| _level_running = true | |||||
| if _level_node.is_main_menu(): | |||||
| $GUI/PlayerUI.hide() | |||||
| $GUI/Timer.hide() | |||||
| else: | |||||
| $GUI/PlayerUI.show() | |||||
| $GUI/Timer.show() | |||||
| _level_running = true | |||||
| func reset(): | func reset(): | ||||
| else: | else: | ||||
| p.position = Vector2.ZERO | p.position = Vector2.ZERO | ||||
| p.reset() | p.reset() | ||||
| p.show() | |||||
| if _level_node.is_main_menu(): | |||||
| p.mode = RigidBody2D.MODE_KINEMATIC | |||||
| else: | |||||
| p.mode = RigidBody2D.MODE_RIGID | |||||
| p.show() | |||||
| _timer = 0.0 | _timer = 0.0 | ||||
| get_tree().paused = false | get_tree().paused = false | ||||
| func _ready(): | func _ready(): | ||||
| set_physics_process(true) | set_physics_process(true) | ||||
| load_level("Level_002.tscn") | |||||
| load_level("MainMenuLogo.tscn") | |||||
| func _animate_level_exit(exit): | func _animate_level_exit(exit): | ||||
| $Player.mode = RigidBody2D.MODE_KINEMATIC | $Player.mode = RigidBody2D.MODE_KINEMATIC | ||||
| func _on_exit_level(exit, body, next_level): | func _on_exit_level(exit, body, next_level): | ||||
| if next_level != "": | if next_level != "": | ||||
| _next_level = next_level | _next_level = next_level | ||||
| _animate_level_exit(exit) | |||||
| if exit != null: | |||||
| _animate_level_exit(exit) | |||||
| else: | |||||
| load_level(next_level) | |||||
| func _on_ExitTween_tween_all_completed(): | func _on_ExitTween_tween_all_completed(): |