| @@ -0,0 +1,3 @@ | |||
| source_md5="cb7ce8d8a14a0a241c2a2610d8b62104" | |||
| dest_md5="5ad0353abe6e8049f74988c09b001d19" | |||
| @@ -0,0 +1,3 @@ | |||
| source_md5="c52a22b38fd33f7dfde93d26589ccba1" | |||
| dest_md5="88508923a9027f8b27bfd05761bd4209" | |||
| @@ -0,0 +1,3 @@ | |||
| source_md5="f75f30ba21df9e4254bdd731cd7b398c" | |||
| dest_md5="0f2fde94c88198f29c69671ce15f5396" | |||
| @@ -0,0 +1,34 @@ | |||
| [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 | |||
| @@ -0,0 +1,34 @@ | |||
| [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 | |||
| @@ -0,0 +1,34 @@ | |||
| [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 | |||
| @@ -38,7 +38,7 @@ orbit_velocity = 0.0 | |||
| orbit_velocity_random = 0.0 | |||
| scale = 2.0 | |||
| 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"] | |||
| material = SubResource( 1 ) | |||
| @@ -13,7 +13,7 @@ | |||
| [sub_resource type="ShaderMaterial" id=5] | |||
| resource_local_to_scene = true | |||
| 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/liquid_color_main = Color( 0.741176, 0.741176, 0.741176, 1 ) | |||
| shader_param/liquid_color_surface = Color( 1, 1, 1, 1 ) | |||
| @@ -25,7 +25,7 @@ shader_param/wave_scale = 1.0 | |||
| [sub_resource type="ShaderMaterial" id=3] | |||
| resource_local_to_scene = true | |||
| 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/liquid_color_main = Color( 0.305882, 0.129412, 0.745098, 1 ) | |||
| shader_param/liquid_color_surface = Color( 0.0156863, 0.658824, 0.745098, 1 ) | |||
| @@ -660,5 +660,5 @@ tile_data = PoolIntArray( -1048590, 1, 0, -1048589, 1, 65537, -1048588, 1, 32768 | |||
| [node name="ExitVortex" parent="." instance=ExtResource( 3 )] | |||
| 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"] | |||
| @@ -1,7 +1,8 @@ | |||
| [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/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/Objects/Pusher.tscn" type="PackedScene" id=9] | |||
| [ext_resource path="res://Data/Objects/BladeSaw.tscn" type="PackedScene" id=10] | |||
| @@ -93,3 +94,8 @@ tile_data = PoolIntArray( -393207, 1, 0, -393206, 1, 1, -393205, 1, 2, -262145, | |||
| [node name="Player_Start" type="Position2D" parent="."] | |||
| 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"] | |||
| @@ -0,0 +1,156 @@ | |||
| [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"] | |||
| @@ -1,20 +0,0 @@ | |||
| [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 ) | |||
| @@ -2,6 +2,9 @@ extends Node2D | |||
| signal exit_level | |||
| func is_main_menu(): | |||
| return false | |||
| func get_starting_position(): | |||
| return get_node("Player_Start").position | |||
| @@ -11,3 +14,8 @@ func get_level_music(): | |||
| func _on_Exit_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) | |||
| @@ -2,6 +2,9 @@ extends Node2D | |||
| signal exit_level | |||
| func is_main_menu(): | |||
| return false | |||
| func get_starting_position(): | |||
| return get_node("Player_Start").position | |||
| @@ -1,7 +1,15 @@ | |||
| extends Node2D | |||
| signal exit_level | |||
| func is_main_menu(): | |||
| return false | |||
| func get_starting_position(): | |||
| return get_node("Player_Start").position | |||
| 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) | |||
| @@ -0,0 +1,23 @@ | |||
| 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) | |||
| @@ -10,9 +10,10 @@ onready var _content_bar_tween = get_node("PlayerUI/MoodBars/Contentment/Bar/Pro | |||
| onready var _nrg_bar = get_node("PlayerUI/NRG/Bar/Progress") | |||
| onready var _nrg_bar_tween = get_node("PlayerUI/NRG/Bar/Progress/Tween") | |||
| # Called when the node enters the scene tree for the first time. | |||
| func _ready(): | |||
| set_process_input(true) | |||
| #set_process_input(true) | |||
| set_process(true) | |||
| _agg_bar.max_value = 100.0 | |||
| _agg_bar.value = 0.0 | |||
| @@ -25,6 +26,8 @@ func _ready(): | |||
| _nrg_bar.value = get_node("../Player").get_current_energy() | |||
| func _input(event): | |||
| if not $Timer.visible: | |||
| return | |||
| if event.is_action_pressed("ui_cancel"): | |||
| get_parent().pause(true) | |||
| $Menus/PauseMenu.show() | |||
| @@ -17,12 +17,14 @@ func get_seconds(): | |||
| 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): | |||
| $Music.stop() | |||
| _level_running = false | |||
| get_node("Player").hide() | |||
| var lvl = get_node("lvl") | |||
| @@ -38,7 +40,13 @@ func load_level(src): | |||
| _level_node.connect("exit_level", self, "_on_exit_level") | |||
| load_and_play_music(_level_node.get_level_music()) | |||
| 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(): | |||
| @@ -50,7 +58,11 @@ func reset(): | |||
| else: | |||
| p.position = Vector2.ZERO | |||
| 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 | |||
| get_tree().paused = false | |||
| @@ -62,7 +74,7 @@ func pause(enable = true): | |||
| func _ready(): | |||
| set_physics_process(true) | |||
| load_level("Level_002.tscn") | |||
| load_level("MainMenuLogo.tscn") | |||
| func _animate_level_exit(exit): | |||
| $Player.mode = RigidBody2D.MODE_KINEMATIC | |||
| @@ -80,7 +92,10 @@ func _on_PM_Quit_pressed(): | |||
| func _on_exit_level(exit, body, next_level): | |||
| if 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(): | |||