diff --git a/assets/Main Ship - Base - Very damaged.png b/assets/Main Ship - Base - Very damaged.png new file mode 100644 index 0000000..bb59a0e Binary files /dev/null and b/assets/Main Ship - Base - Very damaged.png differ diff --git a/assets/Main Ship - Base - Very damaged.png.import b/assets/Main Ship - Base - Very damaged.png.import new file mode 100644 index 0000000..791c7a9 --- /dev/null +++ b/assets/Main Ship - Base - Very damaged.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Main Ship - Base - Very damaged.png-926168939abe4d38178928ec91f12a7c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/Main Ship - Base - Very damaged.png" +dest_files=[ "res://.import/Main Ship - Base - Very damaged.png-926168939abe4d38178928ec91f12a7c.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=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/contraption/FlyingLaserCutter.aseprite b/assets/contraption/FlyingLaserCutter.aseprite index 17c51b0..b535a53 100644 Binary files a/assets/contraption/FlyingLaserCutter.aseprite and b/assets/contraption/FlyingLaserCutter.aseprite differ diff --git a/assets/contraption/FlyingLaserCutterShaded.png b/assets/contraption/FlyingLaserCutterShaded.png index a51625e..a0d07d2 100644 Binary files a/assets/contraption/FlyingLaserCutterShaded.png and b/assets/contraption/FlyingLaserCutterShaded.png differ diff --git a/assets/contraption/PixelPortal.aseprite b/assets/contraption/PixelPortal.aseprite new file mode 100644 index 0000000..0e9ba9e Binary files /dev/null and b/assets/contraption/PixelPortal.aseprite differ diff --git a/assets/contraption/PixelPortal.png b/assets/contraption/PixelPortal.png new file mode 100644 index 0000000..a2854b5 Binary files /dev/null and b/assets/contraption/PixelPortal.png differ diff --git a/assets/contraption/PixelPortal.png.import b/assets/contraption/PixelPortal.png.import new file mode 100644 index 0000000..1f376b0 --- /dev/null +++ b/assets/contraption/PixelPortal.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/PixelPortal.png-6516e8317c3e4aff451056cc71fdb2fa.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/contraption/PixelPortal.png" +dest_files=[ "res://.import/PixelPortal.png-6516e8317c3e4aff451056cc71fdb2fa.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=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/environment/background/asset-test-background.png b/assets/environment/background/asset-test-background.png new file mode 100644 index 0000000..2d39b39 Binary files /dev/null and b/assets/environment/background/asset-test-background.png differ diff --git a/assets/environment/background/asset-test-background.png.import b/assets/environment/background/asset-test-background.png.import new file mode 100644 index 0000000..72ada28 --- /dev/null +++ b/assets/environment/background/asset-test-background.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/asset-test-background.png-bd588dd8a6fda7f7a728a8204d88f193.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environment/background/asset-test-background.png" +dest_files=[ "res://.import/asset-test-background.png-bd588dd8a6fda7f7a728a8204d88f193.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=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Actors/Actor.gd b/src/Actors/Actor.gd index b2f3c64..74a574d 100644 --- a/src/Actors/Actor.gd +++ b/src/Actors/Actor.gd @@ -30,7 +30,7 @@ var max_velocity := { "duck_walk": 165 } # x is applied directly to velocity and y is multiplied with acceleration -var duck_boost = Vector2(2.5, 0.75) +var duck_boost = Vector2(2, 0.75) var velocity_jump_boost_ratio := 10 # This is added to the acceleration force initially var init_acceleration_force := {"": 0, "idle_walk": 4181, "idle_run": 5765, "walk_run": 1000} diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index d1c490d..7cb669c 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -4343,6 +4343,7 @@ __meta__ = { } [node name="StateLabel" type="Label" parent="."] +visible = false show_behind_parent = true margin_left = -37.0 margin_top = -44.0 diff --git a/src/Actors/Friendlies/WhatAreFrog.tscn b/src/Actors/Friendlies/WhatAreFrog.tscn index 48de187..930a021 100644 --- a/src/Actors/Friendlies/WhatAreFrog.tscn +++ b/src/Actors/Friendlies/WhatAreFrog.tscn @@ -484,7 +484,6 @@ position = Vector2( 0, -7 ) texture = ExtResource( 1 ) hframes = 2 vframes = 4 -frame = 1 [node name="AnimationPlayer" type="AnimationPlayer" parent="FrogSprite"] anims/RESET = SubResource( 5 ) diff --git a/src/Autoload/GlobalAudio.gd b/src/Autoload/GlobalAudio.gd index bd52ac3..e0c27c5 100644 --- a/src/Autoload/GlobalAudio.gd +++ b/src/Autoload/GlobalAudio.gd @@ -6,8 +6,10 @@ func play_scene_independent(sound_name: String, bus: String = "Master", attenuat singleton = false, start_time = 0.0, random_pitch = false, pitch = 1.0) -> void: if singleton && players.has(sound_name): return - var disposable_player = AudioStreamPlayer.new() + var disposable_player + disposable_player = AudioStreamPlayer.new() add_child(disposable_player) + disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)]) var stream = GlobalState.sound_library[sound_name] if random_pitch: stream = AudioStreamRandomPitch.new() @@ -17,12 +19,19 @@ func play_scene_independent(sound_name: String, bus: String = "Master", attenuat disposable_player.bus = bus disposable_player.pitch_scale = pitch disposable_player.play(start_time) - disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)]) players[sound_name] = weakref(disposable_player) func dispose_player(player: WeakRef) -> void: if !player.get_ref(): return - player.get_ref().queue_free() + var p = player.get_ref() + var sound_name + if("audio_stream" in p.stream): + sound_name = p.stream.audio_stream.resource_path + else: + sound_name = p.stream.resource_path + if players.has(sound_name): + players.erase(sound_name) + p.queue_free() func pause_scene_independent(sound_name: String): if players.has(sound_name) && players[sound_name].get_ref(): diff --git a/src/Contraptions/Portal/Portal.gd b/src/Contraptions/Portal/Portal.gd index 51b18c7..4b0d4db 100644 --- a/src/Contraptions/Portal/Portal.gd +++ b/src/Contraptions/Portal/Portal.gd @@ -7,7 +7,14 @@ onready var signal_manager := get_tree().root.get_child(4).get_node("%SignalMana onready var levelName := get_tree().get_current_scene().get_name() export(String, FILE, "*.tscn") var next_scene +export(bool) var is_active +func _ready() -> void: + if(!is_active): + monitoring = false + signal_manager.connect("terminal_activated", self, "activate_portal") + else: + $portal.frame = 0 func _get_configuration_warning() -> String: return "The next scene property can't be empty" if not next_scene else "" @@ -15,7 +22,10 @@ func _get_configuration_warning() -> String: func level_completion() -> void: GlobalState.remove_savepoint(levelName) signal_manager.emit_signal("level_completed") - + +func activate_portal(_time: float) -> void: + $AnimationPlayer.play("activatePortal") + monitoring = true func teleport() -> void: GlobalAudio.play_scene_independent("res://assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_stereo.wav", "Music", -15) diff --git a/src/Contraptions/Portal/Portal.tscn b/src/Contraptions/Portal/Portal.tscn index 0b9c703..2279508 100644 --- a/src/Contraptions/Portal/Portal.tscn +++ b/src/Contraptions/Portal/Portal.tscn @@ -1,11 +1,10 @@ [gd_scene load_steps=7 format=2] -[ext_resource path="res://assets/contraption/portal.png" type="Texture" id=1] +[ext_resource path="res://assets/contraption/PixelPortal.png" type="Texture" id=1] [ext_resource path="res://src/Contraptions/Portal/Portal.gd" type="Script" id=2] -[ext_resource path="res://src/UserInterface/Screens/InGameMenu/LevelEndScreen.tscn" type="PackedScene" id=3] [sub_resource type="CapsuleShape2D" id=1] -radius = 22.1169 +radius = 40.0 height = 22.4675 [sub_resource type="Animation" id=2] @@ -35,6 +34,22 @@ tracks/1/keys = { "values": [ false ] } +[sub_resource type="Animation" id=4] +resource_name = "activatePortal" +length = 2.0 +tracks/0/type = "value" +tracks/0/path = NodePath("portal:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.7, 1.3, 1.8 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 1, +"values": [ 3, 2, 1, 0 ] +} + [sub_resource type="Animation" id=3] resource_name = "fade_in" tracks/0/type = "value" @@ -64,15 +79,18 @@ tracks/1/keys = { [node name="Portal" type="Area2D"] pause_mode = 2 +z_index = -1 +z_as_relative = false collision_layer = 0 monitorable = false script = ExtResource( 2 ) -next_scene = ExtResource( 3 ) +next_scene = "res://src/Levels/Level 1.tscn" [node name="portal" type="Sprite" parent="."] -scale = Vector2( 0.1, 0.1 ) texture = ExtResource( 1 ) hframes = 2 +vframes = 2 +frame = 3 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] scale = Vector2( 0.3, 0.3 ) @@ -86,13 +104,11 @@ visible = false margin_right = 1024.0 margin_bottom = 600.0 color = Color( 0, 0, 0, 0 ) -__meta__ = { -"_edit_use_anchors_": false -} [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "Start" anims/Start = SubResource( 2 ) +anims/activatePortal = SubResource( 4 ) anims/fade_in = SubResource( 3 ) [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/src/Contraptions/Triggers/ElevatorButton.gd b/src/Contraptions/Triggers/ElevatorButton.gd index 961e0d6..85b1c38 100644 --- a/src/Contraptions/Triggers/ElevatorButton.gd +++ b/src/Contraptions/Triggers/ElevatorButton.gd @@ -13,8 +13,6 @@ var activatable = false func _ready() -> void: get_back_timer.wait_time = elevator_time - elevator.get_node("./portal").frame = 1 - elevator.monitoring = false func _input(event: InputEvent) -> void: if activatable && Input.is_action_just_released("interact"): @@ -26,8 +24,6 @@ func _input(event: InputEvent) -> void: func selfActivate(): indicatorPlayer.play("onning") buttonPlayer.play("pushing") - elevator.get_node("./portal").frame = 0 - elevator.monitoring = true #TODO dis importante activatorArea.set_deferred("monitoring", false) $GetBackMusic.play() diff --git a/src/Environment/Grass/ShaderGrass.gd b/src/Environment/Grass/ShaderGrass.gd index 8bc49f7..94f4997 100644 --- a/src/Environment/Grass/ShaderGrass.gd +++ b/src/Environment/Grass/ShaderGrass.gd @@ -19,6 +19,9 @@ var is_idle_swinging var start_swing_time := 0.0 var begin_idle var time_since_last_exec := 0.0 + +var grass_sounds := ["res://assets/sounds/grass swish 1.ogg","res://assets/sounds/grass swish 2.ogg", +"res://assets/sounds/grass swish 3.ogg","res://assets/sounds/grass swish 4.ogg"] # var thread : Thread var saved_coeff:= 0.0 @@ -107,4 +110,8 @@ func grass_wave_update(delta: float) -> void: func _on_Area2D_body_entered(body: Node) -> void: - $AudioStreamPlayer2D.play() + var sound_index = round(rand_range(0,grass_sounds.size())) - 1 + if(body.is_in_group("player")): + GlobalAudio.play_scene_independent(grass_sounds[sound_index], "Effects", -22, true, 0, true, 1) + else: + $AudioStreamPlayer2D.play() diff --git a/src/Environment/Grass/ShaderGrass.tscn b/src/Environment/Grass/ShaderGrass.tscn index 7b4d996..c5fbfa0 100644 --- a/src/Environment/Grass/ShaderGrass.tscn +++ b/src/Environment/Grass/ShaderGrass.tscn @@ -78,6 +78,7 @@ uv = PoolVector2Array( 4.9375, 11.875, 5, 8.8125, 2.8125, 7, -0.375, 4.0625, 2.2 polygons = [ PoolIntArray( 0, 6, 7 ), PoolIntArray( 0, 1, 6 ), PoolIntArray( 1, 5, 6 ), PoolIntArray( 1, 2, 5 ), PoolIntArray( 2, 4, 5 ), PoolIntArray( 2, 3, 4 ) ] [node name="Sprite" type="Sprite" parent="."] +visible = false position = Vector2( 5.00909, 19.9567 ) z_index = -1 texture = ExtResource( 10 ) diff --git a/src/Levels/Level 0.1.tscn b/src/Levels/Level 0.1.tscn index 4ee1244..c92902e 100644 --- a/src/Levels/Level 0.1.tscn +++ b/src/Levels/Level 0.1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=29 format=2] +[gd_scene load_steps=86 format=2] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=2] @@ -8,15 +8,55 @@ [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=6] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=7] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=8] -[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/Actors/Emitter.gd" type="Script" id=9] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=10] [ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=11] [ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=12] +[ext_resource path="res://assets/Main Ship - Base - Very damaged.png" type="Texture" id=13] [ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=14] [ext_resource path="res://src/UserInterface/TutorialThingy.tscn" type="PackedScene" id=15] [ext_resource path="res://assets/effects/pixelDissolve.gdshader" type="Shader" id=16] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=17] [ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=18] +[ext_resource path="res://src/Actors/BlobbyCam.gd" type="Script" id=19] +[ext_resource path="res://assets/environment/decor/screen/Screen10.png" type="Texture" id=20] +[ext_resource path="res://assets/environment/decor/screen/Screen9.png" type="Texture" id=21] +[ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=22] +[ext_resource path="res://assets/environment/decor/screen/Screen12.png" type="Texture" id=23] +[ext_resource path="res://src/Environment/LightingShaderMaterial.tres" type="Material" id=24] +[ext_resource path="res://assets/environment/decor/longductor/Longductor2.png" type="Texture" id=25] +[ext_resource path="res://assets/environment/decor/screen/Screen5.png" type="Texture" id=26] +[ext_resource path="res://assets/environment/decor/screen/Screen8.png" type="Texture" id=27] +[ext_resource path="res://assets/environment/decor/screen/Screen4.png" type="Texture" id=28] +[ext_resource path="res://assets/environment/decor/screen/Screen11.png" type="Texture" id=29] +[ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=30] +[ext_resource path="res://assets/environment/decor/screen/Screen7.png" type="Texture" id=31] +[ext_resource path="res://assets/environment/decor/longductor/Longductor4.png" type="Texture" id=32] +[ext_resource path="res://assets/environment/decor/longductor/Longductor8.png" type="Texture" id=33] +[ext_resource path="res://assets/environment/background/Spaceship-Wall-Lampsl.png" type="Texture" id=34] +[ext_resource path="res://assets/environment/decor/Robbit-Left.png" type="Texture" id=35] +[ext_resource path="res://assets/blobby/idle/blobby1.png" type="Texture" id=36] +[ext_resource path="res://assets/environment/decor/longductor/Longductor5.png" type="Texture" id=37] +[ext_resource path="res://assets/environment/decor/longductor/Longductor13.png" type="Texture" id=38] +[ext_resource path="res://assets/environment/decor/longductor/Longductor1.png" type="Texture" id=39] +[ext_resource path="res://assets/environment/decor/screen/Screen2.png" type="Texture" id=40] +[ext_resource path="res://assets/environment/decor/longductor/Longductor3.png" type="Texture" id=41] +[ext_resource path="res://assets/environment/decor/longductor/Longductor11.png" type="Texture" id=42] +[ext_resource path="res://assets/environment/background/starry-space-far.png" type="Texture" id=43] +[ext_resource path="res://assets/environment/decor/longductor/Longductor7.png" type="Texture" id=44] +[ext_resource path="res://assets/environment/decor/longductor/Longductor12.png" type="Texture" id=45] +[ext_resource path="res://assets/environment/decor/longductor/Longductor10.png" type="Texture" id=46] +[ext_resource path="res://assets/environment/decor/Robbit-Right.png" type="Texture" id=47] +[ext_resource path="res://assets/environment/decor/screen/Screen13.png" type="Texture" id=48] +[ext_resource path="res://assets/environment/background/starry-space-middle.png" type="Texture" id=49] +[ext_resource path="res://assets/environment/decor/screen/Screen14.png" type="Texture" id=50] +[ext_resource path="res://assets/environment/decor/longductor/Longductor14.png" type="Texture" id=51] +[ext_resource path="res://assets/environment/decor/screen/Screen6.png" type="Texture" id=52] +[ext_resource path="res://assets/environment/background/starry-space-near.png" type="Texture" id=53] +[ext_resource path="res://assets/environment/decor/longductor/Longductor6.png" type="Texture" id=54] +[ext_resource path="res://assets/environment/decor/longductor/Longductor9.png" type="Texture" id=55] +[ext_resource path="res://assets/environment/decor/screen/Screen1.png" type="Texture" id=56] +[ext_resource path="res://assets/environment/decor/Ceiling-Struct.png" type="Texture" id=57] [sub_resource type="Shader" id=15] code = "shader_type canvas_item; @@ -175,9 +215,859 @@ tracks/1/keys = { } ] } -[sub_resource type="AnimationNodeStateMachinePlayback" id=14] +[sub_resource type="Animation" id=5] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:zoom") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0.75, 0.75 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:limit_top") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10000000 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:limit_right") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 10000000 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath(".:limit_bottom") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 10000000 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:rotating") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} +tracks/6/type = "value" +tracks/6/path = NodePath(".:rotation_degrees") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/7/type = "value" +tracks/7/path = NodePath(".:position") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} +tracks/8/type = "value" +tracks/8/path = NodePath(".:offset") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} +tracks/9/type = "value" +tracks/9/path = NodePath(".:drag_margin_h_enabled") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/10/type = "value" +tracks/10/path = NodePath(".:drag_margin_v_enabled") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="AnimationNodeStateMachinePlayback" id=5] +[sub_resource type="Animation" id=6] +resource_name = "deathCam" +length = 2.3 +step = 0.01 +tracks/0/type = "value" +tracks/0/path = NodePath(".:zoom") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.6 ), +"transitions": PoolRealArray( 1, 3.24901 ), +"update": 0, +"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.001, 0.001 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.01 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:limit_top") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.02 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:limit_right") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath(".:limit_bottom") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.59 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0.6, 1.6 ), +"transitions": PoolRealArray( 1, 0.120742 ), +"update": 0, +"values": [ 0.0, 360.0 ] +} +tracks/6/type = "method" +tracks/6/path = NodePath("../Blobby") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 2.3 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "respawn" +} ] +} +tracks/7/type = "value" +tracks/7/path = NodePath(".:offset") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -6 ) ] +} +tracks/8/type = "value" +tracks/8/path = NodePath(".:drag_margin_h_enabled") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/9/type = "value" +tracks/9/path = NodePath(".:drag_margin_v_enabled") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=24] +resource_name = "deathCamJustZoom" +length = 2.3 +step = 0.01 +tracks/0/type = "value" +tracks/0/path = NodePath(".:zoom") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.16 ), +"transitions": PoolRealArray( 1, 3.24901 ), +"update": 0, +"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.2, 0.2 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:limit_top") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:limit_right") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath(".:limit_bottom") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = false +tracks/5/keys = { +"times": PoolRealArray( 0.06, 1.61 ), +"transitions": PoolRealArray( 1, 0.120742 ), +"update": 0, +"values": [ 0.0, 360.0 ] +} +tracks/6/type = "method" +tracks/6/path = NodePath("../Blobby") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 1.1 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "respawn" +} ] +} +tracks/7/type = "value" +tracks/7/path = NodePath(".:offset") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -6 ) ] +} +tracks/8/type = "value" +tracks/8/path = NodePath(".:drag_margin_h_enabled") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/9/type = "value" +tracks/9/path = NodePath(".:drag_margin_v_enabled") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=14] +resource_name = "deathCamLateRotation" +length = 2.3 +step = 0.01 +tracks/0/type = "value" +tracks/0/path = NodePath(".:zoom") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.6 ), +"transitions": PoolRealArray( 1, 3.24901 ), +"update": 0, +"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.001, 0.001 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:limit_top") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:limit_right") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath(".:limit_bottom") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 1, 1.61 ), +"transitions": PoolRealArray( 1, 0.120742 ), +"update": 0, +"values": [ 0.0, 360.0 ] +} +tracks/6/type = "method" +tracks/6/path = NodePath("../Blobby") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 2.3 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "respawn" +} ] +} +tracks/7/type = "value" +tracks/7/path = NodePath(".:offset") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -6 ) ] +} +tracks/8/type = "value" +tracks/8/path = NodePath(".:drag_margin_h_enabled") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/9/type = "value" +tracks/9/path = NodePath(".:drag_margin_v_enabled") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=23] +resource_name = "justRespawn" + +[sub_resource type="Animation" id=25] +resource_name = "shiftingCenter" +length = 0.6 +tracks/0/type = "value" +tracks/0/path = NodePath(".:offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = false +tracks/1/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -10000000, -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:limit_top") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = false +tracks/2/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -10000000, -10000000 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:limit_right") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = false +tracks/3/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 10000000, 10000000 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath(".:limit_bottom") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = false +tracks/4/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 10000000, 10000000 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:drag_margin_left") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = false +tracks/5/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 0.5 ), +"update": 0, +"values": [ 0.2, 0.05 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath(".:drag_margin_right") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = false +tracks/6/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 0.5 ), +"update": 0, +"values": [ 0.2, 0.05 ] +} + +[sub_resource type="Animation" id=26] +resource_name = "shiftingLeft" +length = 0.6 +tracks/0/type = "value" +tracks/0/path = NodePath(".:offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = false +tracks/1/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -10000000, -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:drag_margin_left") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = false +tracks/2/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.2, 0.05 ] +} + +[sub_resource type="Animation" id=27] +resource_name = "shiftingRight" +length = 0.6 +tracks/0/type = "value" +tracks/0/path = NodePath(".:offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_right") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = false +tracks/1/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 10000000, 10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:drag_margin_right") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = false +tracks/2/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.2, 0.05 ] +} + +[sub_resource type="Animation" id=28] +resource_name = "shiftingUp" +length = 0.6 +tracks/0/type = "value" +tracks/0/path = NodePath(".:offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_right") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = false +tracks/1/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 10000000, 10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:drag_margin_right") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = false +tracks/2/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.2, 0.05 ] +} + +[sub_resource type="Animation" id=29] +resource_name = "Pulsing" +length = 3.33 +loop = true +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("Emitter3:radius") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.65 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 128, 256 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Emitter4:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.65 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 128, 256 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Emitter5:radius") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1.65 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 128, 256 ] +} + +[sub_resource type="Animation" id=30] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Emitter3:radius") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 128 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Emitter4:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 128 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Emitter5:radius") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 128 ] +} + +[sub_resource type="Gradient" id=20] +interpolation_mode = 2 +offsets = PoolRealArray( 0, 0.797721 ) +colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.4 ) + +[sub_resource type="GradientTexture2D" id=19] +gradient = SubResource( 20 ) +width = 640 +height = 360 +fill = 1 +fill_from = Vector2( 0.51066, 0.231548 ) +fill_to = Vector2( 1, 1 ) + +[sub_resource type="Gradient" id=21] +interpolation_mode = 2 +offsets = PoolRealArray( 0, 0.797721 ) +colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.4 ) + +[sub_resource type="GradientTexture2D" id=22] +gradient = SubResource( 21 ) +width = 1280 +height = 360 +fill = 1 +fill_from = Vector2( 0.507438, 0.866468 ) +fill_to = Vector2( 1, 0.994443 ) + +[sub_resource type="SpriteFrames" id=31] +animations = [ { +"frames": [ ExtResource( 39 ), ExtResource( 25 ), ExtResource( 41 ), ExtResource( 32 ), ExtResource( 37 ), ExtResource( 54 ), ExtResource( 44 ), ExtResource( 33 ), ExtResource( 55 ), ExtResource( 46 ), ExtResource( 42 ), ExtResource( 45 ), ExtResource( 38 ), ExtResource( 51 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="SpriteFrames" id=32] +animations = [ { +"frames": [ ExtResource( 56 ), ExtResource( 40 ), ExtResource( 22 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 52 ), ExtResource( 31 ), ExtResource( 27 ), ExtResource( 21 ), ExtResource( 20 ), ExtResource( 29 ), ExtResource( 23 ), ExtResource( 48 ), ExtResource( 50 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=33] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=34] [node name="1 Tutorial Level" type="Node2D"] physics_interpolation_mode = 2 @@ -267,9 +1157,169 @@ position = Vector2( -114, 43 ) [node name="CollisionShape2D" parent="Tutorials/RightTut/StartTutorialArea" index="0"] position = Vector2( -24.5, 0 ) -[node name="BlobbyCam" parent="." instance=ExtResource( 9 )] +[node name="BlobbyCam" type="Camera2D" parent="."] +physics_interpolation_mode = 2 unique_name_in_owner = true -process_mode = 1 +material = ExtResource( 24 ) +z_index = 3 +rotating = true +current = true +zoom = Vector2( 0.75, 0.75 ) +drag_margin_h_enabled = true +drag_margin_v_enabled = true +drag_margin_left = 0.08 +drag_margin_top = 0.16 +drag_margin_right = 0.08 +drag_margin_bottom = 0.16 +editor_draw_drag_margin = true +script = ExtResource( 19 ) + +[node name="CameraAnimationPlayer" type="AnimationPlayer" parent="BlobbyCam"] +anims/RESET = SubResource( 5 ) +anims/deathCam = SubResource( 6 ) +anims/deathCamJustZoom = SubResource( 24 ) +anims/deathCamLateRotation = SubResource( 14 ) +anims/justRespawn = SubResource( 23 ) +anims/shiftingCenter = SubResource( 25 ) +anims/shiftingLeft = SubResource( 26 ) +anims/shiftingRight = SubResource( 27 ) +anims/shiftingUp = SubResource( 28 ) + +[node name="LightAnimationPlayer" type="AnimationPlayer" parent="BlobbyCam"] +root_node = NodePath("../ParallaxBackground/ParallaxLayer4") +anims/Pulsing = SubResource( 29 ) +anims/RESET = SubResource( 30 ) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="BlobbyCam"] +layer = -2 + +[node name="ParallaxLayer" type="ParallaxLayer" parent="BlobbyCam/ParallaxBackground"] +z_index = -1 +motion_scale = Vector2( 0, 0 ) + +[node name="Sprite3" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer"] +texture = ExtResource( 43 ) + +[node name="ParallaxLayer2" type="ParallaxLayer" parent="BlobbyCam/ParallaxBackground"] +z_index = -1 +motion_scale = Vector2( 0.001, 0.001 ) + +[node name="Sprite" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer2"] +texture = ExtResource( 49 ) + +[node name="ParallaxLayer3" type="ParallaxLayer" parent="BlobbyCam/ParallaxBackground"] +z_index = -1 +motion_scale = Vector2( 0.002, 0.002 ) + +[node name="Sprite" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer3"] +texture = ExtResource( 53 ) + +[node name="ParallaxLayer4" type="ParallaxLayer" parent="BlobbyCam/ParallaxBackground"] +motion_scale = Vector2( 0.01, 0.01 ) + +[node name="Sprite" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4"] +material = ExtResource( 24 ) +z_index = -1 +texture = ExtResource( 30 ) + +[node name="Emitter3" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4" groups=["light"]] +visible = false +position = Vector2( -154, 14 ) +texture = ExtResource( 36 ) +script = ExtResource( 9 ) +color = Color( 1, 0, 0, 0.615686 ) + +[node name="Emitter4" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4" groups=["light"]] +visible = false +position = Vector2( 1, 14 ) +texture = ExtResource( 36 ) +script = ExtResource( 9 ) +color = Color( 1, 0, 0, 0.615686 ) + +[node name="Emitter5" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4" groups=["light"]] +visible = false +position = Vector2( 154, 14 ) +texture = ExtResource( 36 ) +script = ExtResource( 9 ) +color = Color( 1, 0, 0, 0.615686 ) + +[node name="Sprite2" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4"] +material = ExtResource( 24 ) +texture = ExtResource( 34 ) + +[node name="Sprite3" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4"] +position = Vector2( -148, -60 ) +rotation = 3.00895 +scale = Vector2( 1.3, 1.3 ) +z_index = 3 +texture = ExtResource( 13 ) + +[node name="ColorRect" type="ColorRect" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4/Sprite3"] +margin_left = -17.0 +margin_top = -15.0 +margin_right = 19.0 +margin_bottom = 15.0 +color = Color( 0, 0, 0, 0.235294 ) + +[node name="TextureRect" type="TextureRect" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -583.0 +margin_top = -35.0 +margin_right = 567.0 +margin_bottom = 291.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = SubResource( 19 ) +expand = true +stretch_mode = 1 + +[node name="TextureRect2" type="TextureRect" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -583.0 +margin_top = -412.0 +margin_right = 567.0 +margin_bottom = -86.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = SubResource( 22 ) +expand = true +stretch_mode = 1 + +[node name="ParallaxLayer5" type="ParallaxLayer" parent="BlobbyCam/ParallaxBackground"] +visible = false +motion_scale = Vector2( 0.05, 0.05 ) + +[node name="Sprite" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5"] +z_index = -1 +texture = ExtResource( 57 ) + +[node name="Sprite2" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5"] +z_index = -1 +texture = ExtResource( 35 ) + +[node name="Sprite3" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5"] +z_index = -1 +texture = ExtResource( 47 ) + +[node name="Sprite4" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5"] +z_index = -1 +texture = ExtResource( 47 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5"] +frames = SubResource( 31 ) +playing = true + +[node name="AnimatedSprite2" type="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5"] +frames = SubResource( 32 ) +playing = true [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true @@ -277,10 +1327,10 @@ position = Vector2( -70, 1 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 10 +frame = 6 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 14 ) +parameters/playback = SubResource( 33 ) parameters/jumpStretching/blend_position = 1 parameters/landStretching/blend_position = 1 @@ -289,7 +1339,7 @@ position = Vector2( 926, -25 ) [node name="AnimationTree" parent="WhatAreFrog/FrogSprite" index="1"] root_motion_track = NodePath(".") -parameters/playback = SubResource( 5 ) +parameters/playback = SubResource( 34 ) [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true @@ -319,6 +1369,7 @@ format = 1 [node name="Portal" parent="." instance=ExtResource( 8 )] position = Vector2( 952, -32 ) next_scene = "res://src/Levels/Level 0.2.tscn" +is_active = true [node name="Decor" type="Node2D" parent="."] @@ -644,6 +1695,5 @@ position = Vector2( 24, -104 ) [editable path="Tutorials/JumpTut"] [editable path="Tutorials/LeftTut"] [editable path="Tutorials/RightTut"] -[editable path="BlobbyCam"] [editable path="Blobby"] [editable path="WhatAreFrog"] diff --git a/src/Levels/Level 0.2.tscn b/src/Levels/Level 0.2.tscn index be7def6..138ff90 100644 --- a/src/Levels/Level 0.2.tscn +++ b/src/Levels/Level 0.2.tscn @@ -1150,6 +1150,9 @@ unique_name_in_owner = true position = Vector2( -156, -51 ) scale = Vector2( 0.878906, 0.936025 ) +[node name="BlobbySprite" parent="Blobby" index="5"] +frame = 6 + [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) parameters/jumpStretching/blend_position = 1 diff --git a/src/Levels/Level 4.tscn b/src/Levels/Level 4.tscn index 1b10694..6ae0851 100644 --- a/src/Levels/Level 4.tscn +++ b/src/Levels/Level 4.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=2] +[gd_scene load_steps=19 format=2] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2] @@ -13,6 +13,7 @@ [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=11] [ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=12] [ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=13] +[ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=14] [sub_resource type="Shader" id=15] code = "shader_type canvas_item; @@ -117,15 +118,19 @@ drag_margin_bottom = 0.3 [node name="Blobby" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true -position = Vector2( -70, -1.90735e-06 ) +position = Vector2( -180, 64 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 7 +frame = 5 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) +[node name="Mine" parent="." instance=ExtResource( 14 )] +position = Vector2( -128, 72 ) +is_armed = true + [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true tile_set = ExtResource( 1 ) @@ -136,7 +141,7 @@ collision_layer = 8 collision_mask = 8 bake_navigation = true format = 1 -tile_data = PoolIntArray( -393230, 5, 65540, -393229, 5, 10, -393228, 5, 10, -393227, 5, 10, -393226, 5, 10, -393225, 5, 10, -393224, 5, 10, -393223, 5, 10, -393222, 5, 10, -393221, 5, 10, -393220, 5, 10, -393219, 5, 10, -393218, 5, 10, -393217, 5, 10, -458752, 5, 10, -458751, 5, 10, -458750, 5, 10, -458749, 5, 10, -458748, 5, 10, -458747, 5, 10, -458746, 5, 10, -458745, 5, 10, -458744, 5, 10, -458743, 5, 10, -458742, 5, 10, -458741, 5, 10, -458740, 5, 10, -458739, 5, 10, -458738, 5, 10, -458737, 5, 10, -458736, 5, 10, -458735, 5, 10, -458734, 5, 10, -458733, 5, 10, -458732, 5, 10, -458731, 5, 10, -458730, 5, 10, -458729, 5, 10, -458728, 5, 10, -458727, 5, 10, -458726, 5, 10, -458725, 5, 10, -458724, 5, 10, -458723, 5, 10, -458722, 5, 10, -458721, 5, 10, -458720, 5, 10, -458719, 5, 10, -458718, 5, 10, -458717, 5, 10, -458716, 5, 10, -458715, 5, 10, -458714, 5, 10, -458713, 5, 10, -458712, 5, 10, -458711, 5, 10, -458710, 5, 10, -458709, 5, 10, -458708, 5, 10, -458707, 5, 65541, -327694, 5, 7, -327693, 7, 0, -327692, 7, 0, -327691, 7, 0, -327690, 7, 0, -327689, 7, 0, -327688, 7, 0, -327687, 7, 0, -327686, 7, 0, -327685, 7, 0, -327684, 7, 0, -327683, 7, 0, -327682, 7, 0, -327681, 7, 0, -393216, 7, 0, -393215, 7, 0, -393214, 7, 0, -393213, 7, 0, -393212, 7, 0, -393211, 7, 0, -393210, 7, 0, -393209, 7, 0, -393208, 7, 0, -393207, 7, 0, -393206, 7, 0, -393205, 7, 0, -393204, 7, 0, -393203, 7, 0, -393202, 7, 0, -393201, 7, 0, -393200, 7, 0, -393199, 7, 0, -393198, 7, 0, -393171, 5, 6, -262158, 5, 7, -262157, 7, 0, -262156, 7, 0, -262155, 7, 0, -262154, 7, 0, -262153, 7, 0, -262152, 7, 0, -262151, 7, 0, -262150, 7, 0, -262149, 7, 0, -262148, 7, 0, -262147, 7, 0, -262146, 7, 0, -262145, 7, 0, -327680, 7, 0, -327679, 7, 0, -327678, 7, 0, -327677, 7, 0, -327676, 7, 0, -327675, 7, 0, -327674, 7, 0, -327673, 7, 0, -327672, 7, 0, -327671, 7, 0, -327670, 7, 0, -327669, 7, 0, -327668, 7, 0, -327667, 7, 0, -327666, 7, 0, -327665, 7, 0, -327664, 7, 0, -327663, 7, 0, -327662, 7, 0, -327635, 5, 6, -196622, 5, 7, -196621, 7, 0, -196620, 7, 0, -196619, 7, 0, -196618, 7, 0, -196617, 7, 0, -196616, 7, 0, -196615, 7, 0, -196614, 7, 0, -196613, 7, 0, -196612, 7, 0, -196611, 7, 0, -196610, 7, 0, -196609, 7, 0, -262144, 7, 0, -262143, 7, 0, -262142, 7, 0, -262141, 7, 0, -262140, 7, 0, -262139, 7, 0, -262138, 7, 0, -262137, 7, 0, -262136, 7, 0, -262135, 7, 0, -262134, 7, 0, -262133, 7, 0, -262132, 7, 0, -262131, 7, 0, -262130, 7, 0, -262129, 7, 0, -262128, 7, 0, -262127, 7, 0, -262126, 7, 0, -262099, 5, 6, -131086, 5, 7, -131085, 7, 0, -131084, 7, 0, -131083, 7, 0, -131082, 7, 0, -131081, 7, 0, -131080, 7, 0, -131079, 7, 0, -131078, 7, 0, -131077, 7, 0, -131076, 7, 0, -131075, 7, 0, -131074, 7, 0, -131073, 7, 0, -196608, 7, 0, -196607, 7, 0, -196606, 7, 0, -196605, 7, 0, -196604, 7, 0, -196603, 7, 0, -196602, 7, 0, -196601, 7, 0, -196600, 7, 0, -196599, 7, 0, -196598, 7, 0, -196597, 7, 0, -196596, 7, 0, -196595, 7, 0, -196594, 7, 0, -196593, 7, 0, -196592, 7, 0, -196591, 7, 0, -196590, 7, 0, -196563, 5, 6, -65550, 5, 7, -65549, 7, 0, -65548, 7, 0, -65547, 7, 0, -65546, 7, 0, -65545, 7, 0, -65544, 7, 0, -65543, 7, 0, -65542, 7, 0, -65541, 7, 0, -65540, 7, 0, -65539, 7, 0, -65538, 7, 0, -65537, 7, 0, -131072, 7, 0, -131071, 7, 0, -131070, 7, 0, -131069, 7, 0, -131068, 7, 0, -131067, 7, 0, -131066, 7, 0, -131065, 7, 0, -131064, 7, 0, -131063, 7, 0, -131062, 7, 0, -131061, 7, 0, -131060, 7, 0, -131059, 7, 0, -131058, 7, 0, -131057, 7, 0, -131056, 7, 0, -131055, 7, 0, -131054, 7, 0, -131027, 5, 6, -14, 5, 7, -13, 7, 0, -12, 7, 0, -11, 7, 0, -10, 7, 0, -9, 7, 0, -8, 7, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 7, 0, -65533, 7, 0, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 7, 0, -65521, 7, 0, -65520, 7, 0, -65519, 7, 0, -65518, 7, 0, -65491, 5, 6, 65522, 5, 7, 65523, 7, 0, 65524, 7, 0, 65525, 7, 0, 65526, 7, 0, 65527, 7, 0, 65528, 7, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 7, 0, 3, 7, 0, 4, 7, 0, 5, 7, 0, 6, 7, 0, 7, 7, 0, 8, 7, 0, 9, 7, 0, 10, 7, 0, 11, 7, 0, 12, 7, 0, 13, 7, 0, 14, 7, 0, 15, 7, 0, 16, 7, 0, 17, 7, 0, 18, 7, 0, 45, 5, 6, 131058, 5, 7, 131059, 7, 0, 131060, 7, 0, 131061, 7, 0, 131062, 7, 0, 131063, 7, 0, 131064, 7, 0, 131065, 7, 0, 131066, 7, 0, 131067, 7, 0, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 7, 0, 65536, 7, 0, 65537, 7, 0, 65538, 7, 0, 65539, 7, 0, 65540, 7, 0, 65541, 7, 0, 65542, 7, 0, 65543, 7, 0, 65544, 7, 0, 65545, 7, 0, 65546, 7, 0, 65547, 7, 0, 65548, 7, 0, 65549, 7, 0, 65550, 7, 0, 65551, 7, 0, 65552, 7, 0, 65553, 7, 0, 65554, 7, 0, 65581, 5, 6, 196594, 5, 7, 196595, 7, 0, 196596, 7, 0, 196597, 7, 0, 196598, 7, 0, 196599, 7, 0, 196600, 7, 0, 196601, 7, 0, 196602, 7, 0, 196603, 7, 0, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 7, 0, 131072, 7, 0, 131073, 7, 0, 131074, 7, 0, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 7, 0, 131079, 7, 0, 131080, 7, 0, 131081, 7, 0, 131082, 7, 0, 131083, 7, 0, 131084, 7, 0, 131085, 7, 0, 131086, 7, 0, 131087, 7, 0, 131088, 7, 0, 131089, 7, 0, 131090, 7, 0, 131117, 5, 6, 262130, 5, 7, 262131, 7, 0, 262132, 7, 0, 262133, 7, 0, 262134, 7, 0, 262135, 7, 0, 262136, 7, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 7, 0, 196615, 7, 0, 196616, 7, 0, 196617, 7, 0, 196618, 7, 0, 196619, 7, 0, 196620, 7, 0, 196621, 7, 0, 196622, 7, 0, 196623, 7, 0, 196624, 7, 0, 196625, 7, 0, 196626, 7, 0, 196653, 5, 6, 327666, 5, 7, 327667, 7, 0, 327668, 7, 0, 327669, 7, 0, 327670, 7, 0, 327671, 7, 0, 327672, 7, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 7, 0, 262151, 7, 0, 262152, 7, 0, 262153, 7, 0, 262154, 7, 0, 262155, 7, 0, 262156, 7, 0, 262157, 7, 0, 262158, 7, 0, 262159, 7, 0, 262160, 7, 0, 262161, 7, 0, 262162, 7, 0, 262189, 5, 6, 393202, 5, 7, 393203, 7, 0, 393204, 7, 0, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 7, 0, 327687, 7, 0, 327688, 7, 0, 327689, 7, 0, 327690, 7, 0, 327691, 7, 0, 327692, 7, 0, 327693, 7, 0, 327694, 7, 0, 327695, 7, 0, 327696, 7, 0, 327697, 7, 0, 327698, 7, 0, 327725, 5, 6, 458738, 5, 7, 458739, 7, 0, 458740, 7, 0, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 7, 0, 393223, 7, 0, 393224, 7, 0, 393225, 7, 0, 393226, 7, 0, 393227, 7, 0, 393228, 7, 0, 393229, 7, 0, 393230, 7, 0, 393231, 7, 0, 393232, 7, 0, 393233, 7, 0, 393234, 7, 0, 393261, 5, 6, 524274, 5, 65538, 524275, 5, 2, 524276, 5, 2, 524277, 5, 2, 524278, 5, 2, 524279, 5, 2, 524280, 5, 2, 524281, 5, 2, 524282, 5, 2, 524283, 5, 2, 524284, 5, 2, 524285, 5, 2, 524286, 5, 2, 524287, 5, 2, 458752, 5, 2, 458753, 5, 2, 458754, 5, 2, 458755, 5, 2, 458756, 5, 2, 458757, 5, 2, 458758, 5, 2, 458759, 5, 2, 458760, 5, 2, 458761, 5, 2, 458762, 5, 2, 458763, 5, 2, 458764, 5, 2, 458765, 5, 2, 458766, 5, 2, 458767, 5, 2, 458768, 5, 2, 458769, 5, 2, 458770, 5, 2, 458771, 5, 2, 458772, 5, 2, 458773, 5, 2, 458774, 5, 2, 458775, 5, 2, 458776, 5, 2, 458777, 5, 2, 458778, 5, 2, 458779, 5, 2, 458780, 5, 2, 458781, 5, 2, 458782, 5, 2, 458783, 5, 2, 458784, 5, 2, 458785, 5, 2, 458786, 5, 2, 458787, 5, 2, 458788, 5, 2, 458789, 5, 2, 458790, 5, 2, 458791, 5, 2, 458792, 5, 2, 458793, 5, 2, 458794, 5, 2, 458795, 5, 2, 458796, 5, 2, 458797, 5, 65539 ) +tile_data = PoolIntArray( -393230, 5, 65540, -393229, 5, 10, -393228, 5, 10, -393227, 5, 10, -393226, 5, 10, -393225, 5, 10, -393224, 5, 10, -393223, 5, 10, -393222, 5, 10, -393221, 5, 10, -393220, 5, 10, -393219, 5, 10, -393218, 5, 10, -393217, 5, 10, -458752, 5, 10, -458751, 5, 10, -458750, 5, 10, -458749, 5, 10, -458748, 5, 10, -458747, 5, 10, -458746, 5, 10, -458745, 5, 10, -458744, 5, 10, -458743, 5, 10, -458742, 5, 10, -458741, 5, 10, -458740, 5, 10, -458739, 5, 10, -458738, 5, 10, -458737, 5, 10, -458736, 5, 10, -458735, 5, 10, -458734, 5, 10, -458733, 5, 10, -458732, 5, 10, -458731, 5, 10, -458730, 5, 10, -458729, 5, 10, -458728, 5, 10, -458727, 5, 10, -458726, 5, 10, -458725, 5, 10, -458724, 5, 10, -458723, 5, 10, -458722, 5, 10, -458721, 5, 10, -458720, 5, 10, -458719, 5, 10, -458718, 5, 10, -458717, 5, 10, -458716, 5, 10, -458715, 5, 10, -458714, 5, 10, -458713, 5, 10, -458712, 5, 10, -458711, 5, 10, -458710, 5, 10, -458709, 5, 10, -458708, 5, 10, -458707, 5, 65541, -327694, 5, 7, -327693, 7, 0, -327692, 7, 0, -327691, 7, 0, -327690, 7, 0, -327689, 7, 0, -327688, 7, 0, -327687, 7, 0, -327686, 7, 0, -327685, 7, 0, -327684, 7, 0, -327683, 7, 0, -327682, 7, 0, -327681, 7, 0, -393216, 7, 0, -393215, 7, 0, -393214, 7, 0, -393213, 7, 0, -393212, 7, 0, -393211, 7, 0, -393210, 7, 0, -393209, 7, 0, -393208, 7, 0, -393207, 7, 0, -393206, 7, 0, -393205, 7, 0, -393204, 7, 0, -393203, 7, 0, -393202, 7, 0, -393201, 7, 0, -393200, 7, 0, -393199, 7, 0, -393198, 7, 0, -393184, 5, 3, -393183, 5, 3, -393171, 5, 6, -262158, 5, 7, -262157, 7, 0, -262156, 7, 0, -262155, 7, 0, -262154, 7, 0, -262153, 7, 0, -262152, 7, 0, -262151, 7, 0, -262150, 7, 0, -262149, 7, 0, -262148, 7, 0, -262147, 7, 0, -262146, 7, 0, -262145, 7, 0, -327680, 7, 0, -327679, 7, 0, -327678, 7, 0, -327677, 7, 0, -327676, 7, 0, -327675, 7, 0, -327674, 7, 0, -327673, 7, 0, -327672, 7, 0, -327671, 7, 0, -327670, 7, 0, -327669, 7, 0, -327668, 7, 0, -327667, 7, 0, -327666, 7, 0, -327665, 7, 0, -327664, 7, 0, -327663, 7, 0, -327662, 7, 0, -327648, 5, 3, -327647, 5, 3, -327635, 5, 6, -196622, 5, 7, -196621, 7, 0, -196620, 7, 0, -196619, 7, 0, -196618, 7, 0, -196617, 7, 0, -196616, 7, 0, -196615, 7, 0, -196614, 7, 0, -196613, 7, 0, -196612, 7, 0, -196611, 7, 0, -196610, 7, 0, -196609, 7, 0, -262144, 7, 0, -262143, 7, 0, -262142, 7, 0, -262141, 7, 0, -262140, 7, 0, -262139, 7, 0, -262138, 7, 0, -262137, 7, 0, -262136, 7, 0, -262135, 7, 0, -262134, 7, 0, -262133, 7, 0, -262132, 7, 0, -262131, 7, 0, -262130, 7, 0, -262129, 7, 0, -262128, 7, 0, -262127, 7, 0, -262126, 7, 0, -262112, 5, 3, -262111, 5, 3, -262099, 5, 6, -131086, 5, 7, -131085, 7, 0, -131084, 7, 0, -131083, 7, 0, -131082, 7, 0, -131081, 7, 0, -131080, 7, 0, -131079, 7, 0, -131078, 7, 0, -131077, 7, 0, -131076, 7, 0, -131075, 7, 0, -131074, 7, 0, -131073, 7, 0, -196608, 7, 0, -196607, 7, 0, -196606, 7, 0, -196605, 7, 0, -196604, 7, 0, -196603, 7, 0, -196602, 7, 0, -196601, 7, 0, -196600, 7, 0, -196599, 7, 0, -196598, 7, 0, -196597, 7, 0, -196596, 7, 0, -196595, 7, 0, -196594, 7, 0, -196593, 7, 0, -196592, 7, 0, -196591, 7, 0, -196590, 7, 0, -196576, 5, 3, -196575, 5, 3, -196563, 5, 6, -65550, 5, 7, -65549, 7, 0, -65548, 7, 0, -65547, 7, 0, -65546, 7, 0, -65545, 7, 0, -65544, 7, 0, -65543, 7, 0, -65542, 7, 0, -65541, 7, 0, -65540, 7, 0, -65539, 7, 0, -65538, 7, 0, -65537, 7, 0, -131072, 7, 0, -131071, 7, 0, -131070, 7, 0, -131069, 7, 0, -131068, 7, 0, -131067, 7, 0, -131066, 7, 0, -131065, 7, 0, -131064, 7, 0, -131063, 7, 0, -131062, 7, 0, -131061, 7, 0, -131060, 7, 0, -131059, 7, 0, -131058, 7, 0, -131057, 7, 0, -131056, 7, 0, -131055, 7, 0, -131054, 7, 0, -131040, 5, 3, -131039, 5, 3, -131027, 5, 6, -14, 5, 7, -13, 7, 0, -12, 7, 0, -11, 7, 0, -10, 7, 0, -9, 7, 0, -8, 7, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 7, 0, -65533, 7, 0, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 7, 0, -65521, 7, 0, -65520, 7, 0, -65519, 7, 0, -65518, 7, 0, -65504, 5, 3, -65503, 5, 3, -65491, 5, 6, 65520, 5, 7, 65521, 5, 10, 65522, 5, 10, 2, 7, 0, 3, 7, 0, 4, 7, 0, 5, 7, 0, 6, 7, 0, 7, 7, 0, 8, 7, 0, 9, 7, 0, 10, 7, 0, 11, 7, 0, 12, 7, 0, 13, 7, 0, 14, 7, 0, 15, 7, 0, 16, 7, 0, 17, 7, 0, 18, 7, 0, 26, 5, 1, 27, 5, 1, 28, 5, 1, 32, 5, 3, 33, 5, 3, 34, 5, 3, 37, 5, 3, 38, 5, 3, 39, 5, 3, 40, 5, 3, 41, 5, 3, 42, 5, 3, 43, 5, 3, 44, 5, 3, 45, 5, 6, 131056, 5, 7, 131059, 7, 0, 131060, 7, 0, 131061, 7, 0, 131062, 7, 0, 131063, 7, 0, 131064, 7, 0, 131065, 7, 0, 131066, 7, 0, 131067, 7, 0, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 7, 0, 65536, 7, 0, 65537, 7, 0, 65538, 7, 0, 65539, 7, 0, 65540, 7, 0, 65541, 7, 0, 65542, 7, 0, 65543, 7, 0, 65544, 7, 0, 65545, 7, 0, 65546, 7, 0, 65547, 7, 0, 65548, 7, 0, 65549, 7, 0, 65550, 7, 0, 65551, 7, 0, 65552, 7, 0, 65553, 7, 0, 65554, 7, 0, 65562, 5, 1, 65563, 5, 1, 65564, 5, 1, 65568, 5, 3, 65569, 5, 3, 65570, 5, 3, 65573, 5, 3, 65574, 5, 3, 65575, 5, 3, 65576, 5, 3, 65577, 5, 3, 65578, 5, 3, 65579, 5, 3, 65580, 5, 3, 65581, 5, 6, 196592, 5, 7, 196595, 7, 0, 196596, 7, 0, 196597, 7, 0, 196598, 7, 0, 196599, 7, 0, 196600, 7, 0, 196601, 7, 0, 196602, 7, 0, 196603, 7, 0, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 7, 0, 131072, 7, 0, 131073, 7, 0, 131074, 7, 0, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 7, 0, 131079, 7, 0, 131080, 7, 0, 131081, 7, 0, 131082, 7, 0, 131083, 7, 0, 131084, 7, 0, 131085, 7, 0, 131086, 7, 0, 131087, 7, 0, 131088, 7, 0, 131089, 7, 0, 131090, 7, 0, 131098, 5, 1, 131099, 5, 1, 131100, 5, 1, 131117, 5, 6, 262128, 5, 7, 262131, 7, 0, 262132, 7, 0, 262133, 7, 0, 262134, 7, 0, 262135, 7, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 7, 0, 196615, 7, 0, 196616, 7, 0, 196617, 7, 0, 196618, 7, 0, 196619, 7, 0, 196620, 7, 0, 196621, 7, 0, 196622, 7, 0, 196623, 7, 0, 196624, 7, 0, 196625, 7, 0, 196626, 7, 0, 196634, 5, 1, 196635, 5, 1, 196636, 5, 1, 196653, 5, 6, 327664, 5, 7, 327667, 5, 65542, 327668, 5, 65543, 327669, 5, 65543, 327670, 5, 65544, 327671, 7, 0, 327672, 7, 0, 327673, 5, 65542, 327674, 5, 65544, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 7, 0, 262151, 7, 0, 262152, 7, 0, 262153, 7, 0, 262154, 7, 0, 262155, 7, 0, 262156, 7, 0, 262157, 7, 0, 262158, 7, 0, 262159, 7, 0, 262160, 7, 0, 262161, 7, 0, 262162, 7, 0, 262170, 5, 1, 262171, 5, 1, 262172, 5, 1, 262173, 5, 3, 262174, 5, 3, 262175, 5, 3, 262176, 5, 3, 262177, 5, 3, 262178, 5, 3, 262179, 5, 3, 262180, 5, 3, 262181, 5, 3, 262182, 5, 3, 262183, 5, 3, 262184, 5, 3, 262185, 5, 3, 262186, 5, 3, 262187, 5, 3, 262188, 5, 3, 262189, 5, 6, 393200, 5, 7, 393203, 7, 0, 393204, 7, 0, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 7, 0, 327687, 7, 0, 327688, 7, 0, 327689, 7, 0, 327690, 7, 0, 327691, 7, 0, 327692, 7, 0, 327693, 7, 0, 327694, 5, 1, 327695, 7, 0, 327696, 7, 0, 327697, 7, 0, 327698, 7, 0, 327706, 5, 1, 327707, 5, 1, 327708, 5, 1, 327709, 5, 3, 327710, 5, 3, 327711, 5, 3, 327712, 5, 3, 327713, 5, 3, 327714, 5, 3, 327715, 5, 3, 327716, 5, 3, 327717, 5, 3, 327718, 5, 3, 327719, 5, 3, 327720, 5, 3, 327721, 5, 3, 327722, 5, 3, 327723, 5, 3, 327724, 5, 3, 327725, 5, 6, 458736, 5, 7, 458739, 7, 0, 458740, 7, 0, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 7, 0, 393223, 7, 0, 393224, 7, 0, 393225, 7, 0, 393226, 7, 0, 393227, 7, 0, 393228, 7, 0, 393229, 7, 0, 393230, 5, 1, 393231, 7, 0, 393232, 7, 0, 393233, 7, 0, 393234, 7, 0, 393242, 5, 1, 393243, 5, 1, 393244, 5, 1, 393245, 5, 3, 393246, 5, 3, 393247, 5, 3, 393248, 5, 3, 393249, 5, 3, 393250, 5, 3, 393251, 5, 3, 393252, 5, 3, 393253, 5, 3, 393254, 5, 3, 393255, 5, 3, 393256, 5, 3, 393257, 5, 3, 393258, 5, 3, 393259, 5, 3, 393260, 5, 3, 393261, 5, 6, 524272, 5, 3, 524273, 5, 3, 524274, 5, 3, 524275, 5, 2, 524276, 5, 2, 524277, 5, 2, 524278, 5, 2, 524279, 5, 2, 524280, 5, 2, 524281, 5, 2, 524282, 5, 2, 524283, 5, 2, 524284, 5, 2, 524285, 5, 2, 524286, 5, 2, 524287, 5, 2, 458752, 5, 2, 458753, 5, 2, 458754, 5, 2, 458755, 5, 2, 458756, 5, 2, 458757, 5, 2, 458758, 5, 2, 458759, 5, 2, 458760, 5, 2, 458761, 5, 2, 458762, 5, 2, 458763, 5, 2, 458764, 5, 2, 458765, 5, 2, 458766, 5, 2, 458767, 5, 2, 458768, 5, 2, 458769, 5, 2, 458770, 5, 2, 458771, 5, 2, 458772, 5, 2, 458773, 5, 2, 458774, 5, 2, 458775, 5, 2, 458776, 5, 2, 458777, 5, 2, 458778, 5, 2, 458779, 5, 2, 458780, 5, 2, 458781, 5, 2, 458782, 5, 2, 458783, 5, 2, 458784, 5, 2, 458785, 5, 2, 458786, 5, 2, 458787, 5, 2, 458788, 5, 2, 458789, 5, 2, 458790, 5, 2, 458791, 5, 2, 458792, 5, 2, 458793, 5, 2, 458794, 5, 2, 458795, 5, 2, 458796, 5, 2, 458797, 5, 65539 ) [node name="DropThroughPlatforms" type="TileMap" parent="."] tile_set = ExtResource( 5 ) @@ -151,7 +156,7 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 7 )] -position = Vector2( 158, -124 ) +position = Vector2( -32, 108 ) elevator_time = 10 [node name="Portal" parent="ElevatorButton" instance=ExtResource( 11 )] @@ -160,10 +165,30 @@ scale = Vector2( 0.5, 0.5 ) next_scene = "res://src/Levels/Actual Level 1.tscn" [node name="FlyingLaserCutter" parent="." instance=ExtResource( 13 )] -position = Vector2( 80, 47 ) +position = Vector2( -128, 96 ) +rotation = -1.57079 +scale = Vector2( 1, 1.00162 ) +avoid_crushing = true + +[node name="FlyingLaserCutter2" parent="." instance=ExtResource( 13 )] +position = Vector2( 32, 41 ) rotation = 1.57079 scale = Vector2( 1, 1.00162 ) +[node name="FlyingLaserCutter3" parent="." instance=ExtResource( 13 )] +position = Vector2( 108, 99 ) +scale = Vector2( 1, 1.00162 ) + +[node name="FlyingLaserCutter4" parent="." instance=ExtResource( 13 )] +position = Vector2( 384, 48 ) +rotation = 1.57079 +scale = Vector2( 1, 1.00162 ) + +[node name="FlyingLaserCutter5" parent="." instance=ExtResource( 13 )] +position = Vector2( 704, 48 ) +rotation = 3.14159 +scale = Vector2( 1, 1.00162 ) + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] diff --git a/src/ObstacleObjects/Mine.gd b/src/ObstacleObjects/Mine.gd index 3e5f4dc..b23fc32 100644 --- a/src/ObstacleObjects/Mine.gd +++ b/src/ObstacleObjects/Mine.gd @@ -4,20 +4,23 @@ extends Node2D # Declare member variables here. Examples: # var a: int = 2 # var b: String = "text" -export var is_locked = true +export var is_armed = false func _ready() -> void: - $Area2D.remove_from_group("harmful") - $Sprite/AnimationPlayer.play("unarmed") - + if(!is_armed): + $Area2D.remove_from_group("harmful") + $Sprite/AnimationPlayer.play("unarmed") + else: + $Area2D.add_to_group("harmful") + $Sprite/AnimationPlayer.play("armed") func _on_Area2D_area_exited(area: Area2D) -> void: $Timer.start() func _on_Timer_timeout() -> void: - is_locked = true + is_armed = true $Area2D.add_to_group("harmful") $Sprite/AnimationPlayer.play("arming") diff --git a/src/Platforms/FlyingLaserCutter.gd b/src/Platforms/FlyingLaserCutter.gd index 9da431a..8f1ba9d 100644 --- a/src/Platforms/FlyingLaserCutter.gd +++ b/src/Platforms/FlyingLaserCutter.gd @@ -10,10 +10,13 @@ onready var slide_friction = 1.5 var flyoff_triggered = false var has_hit_player = false -var velocity = 1 -var max_velocity = 200 -var acceleration_force = 1200 -var mass = 10 +var halted = false +export(float) var velocity = 1 +export(float) var max_velocity = 200 +export(float) var acceleration_force = 1200 +export(float) var mass = 10 +export(bool) var avoid_crushing = false +export(bool) var fast_retrigger = false # TODO Returing Laser cutter has broken collision and infinite inertia # Maybe keep returning paths free and crush player when in the way @@ -23,18 +26,21 @@ func _ready() -> void: func _physics_process(delta: float) -> void: + if !flyoff_triggered: for ray in trigger_rays: # When player has been hit on the way if (has_hit_player && body.position.x > 0): break - if ray.is_colliding(): + if ray.is_colliding() && (body.position.x < 1 || fast_retrigger): var collider = ray.get_collider() if collider.is_in_group("player"): flyoff_triggered = true body.set("motion/sync_to_physics", false) break if body.position.x > 0: + if halted && avoid_crushing: + return velocity=1 body.position.x += (max_velocity/3)*-1*delta elif body.position.x == 0: @@ -51,3 +57,13 @@ func _physics_process(delta: float) -> void: else: has_hit_player = true flyoff_triggered = false + + +func _on_BackArea_body_entered(body: Node) -> void: + if(body.is_in_group("player")): + halted = true + + +func _on_BackArea_body_exited(body: Node) -> void: + if(body.is_in_group("player")): + halted = false diff --git a/src/Platforms/FlyingLaserCutter.tscn b/src/Platforms/FlyingLaserCutter.tscn index eb30c7e..010cca4 100644 --- a/src/Platforms/FlyingLaserCutter.tscn +++ b/src/Platforms/FlyingLaserCutter.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://assets/contraption/FlyingLaserCutterShaded.png" type="Texture" id=1] [ext_resource path="res://src/Platforms/FlyingLaserCutter.gd" type="Script" id=2] @@ -25,6 +25,9 @@ extents = Vector2( 11.4921, 11.9129 ) [sub_resource type="RectangleShape2D" id=4] extents = Vector2( 3.067, 10 ) +[sub_resource type="RectangleShape2D" id=5] +extents = Vector2( 0.5, 11 ) + [node name="FlyingLaserCutter" type="Node2D"] script = ExtResource( 2 ) @@ -32,6 +35,7 @@ script = ExtResource( 2 ) collision_layer = 32 collision_mask = 57 collision/safe_margin = 0.001 +motion/sync_to_physics = true [node name="Sprite" type="Sprite" parent="FlyingLaserCutterBody"] texture = ExtResource( 1 ) @@ -51,14 +55,25 @@ shape = SubResource( 3 ) [node name="LaserArea" type="Area2D" parent="FlyingLaserCutterBody" groups=["harmful"]] process_priority = -1 +position = Vector2( 10, 0 ) collision_layer = 32 collision_mask = 3 [node name="PainZone" type="CollisionShape2D" parent="FlyingLaserCutterBody/LaserArea" groups=["harmful"]] process_priority = -1 -position = Vector2( 9.647, 0 ) +position = Vector2( -9.53674e-07, 0 ) shape = SubResource( 4 ) +[node name="BackArea" type="Area2D" parent="FlyingLaserCutterBody"] +position = Vector2( -11.5, 0 ) +collision_layer = 16 +collision_mask = 3 +monitorable = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FlyingLaserCutterBody/BackArea"] +position = Vector2( -1, 0 ) +shape = SubResource( 5 ) + [node name="Triggers" type="Node2D" parent="FlyingLaserCutterBody"] visible = false position = Vector2( 0, 0.0077219 ) @@ -78,3 +93,6 @@ scale = Vector2( 1, 1000 ) enabled = true cast_to = Vector2( 0, 1 ) collision_mask = 9 + +[connection signal="body_entered" from="FlyingLaserCutterBody/BackArea" to="." method="_on_BackArea_body_entered"] +[connection signal="body_exited" from="FlyingLaserCutterBody/BackArea" to="." method="_on_BackArea_body_exited"] diff --git a/src/Sounds/default_bus_layout.tres b/src/Sounds/default_bus_layout.tres index dcc1b97..9b97794 100644 --- a/src/Sounds/default_bus_layout.tres +++ b/src/Sounds/default_bus_layout.tres @@ -41,12 +41,12 @@ resource_name = "LowPassFilter" cutoff_hz = 3000.0 [resource] -bus/0/volume_db = inf_neg +bus/0/volume_db = -6.0206 bus/1/name = "Music" bus/1/solo = false bus/1/mute = false bus/1/bypass_fx = false -bus/1/volume_db = 0.0 +bus/1/volume_db = -6.0206 bus/1/send = "Master" bus/1/effect/0/effect = SubResource( 1 ) bus/1/effect/0/enabled = false diff --git a/src/ThirdParty/Demo/meshinstance.gd b/src/ThirdParty/Demo/meshinstance.gd index 52a139e..66a79a1 100644 --- a/src/ThirdParty/Demo/meshinstance.gd +++ b/src/ThirdParty/Demo/meshinstance.gd @@ -2,5 +2,5 @@ extends MeshInstance func _process(delta): - if(get_parent().visible): - rotate_y(PI / 4.0 * delta) + if(get_parent().visible): + rotate_y(PI / 4.0 * delta)