diff --git a/assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png b/assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png new file mode 100644 index 0000000..9ed4fa2 Binary files /dev/null and b/assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png differ diff --git a/assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png.import b/assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png.import new file mode 100644 index 0000000..781e05b --- /dev/null +++ b/assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Alien-ship1-Edge-DropThrough-Unanimated.png-14c276aa64fbfdb5be932b2be5eb4f06.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png" +dest_files=[ "res://.import/Alien-ship1-Edge-DropThrough-Unanimated.png-14c276aa64fbfdb5be932b2be5eb4f06.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/blocks/DropThrough-Vine-Block.aseprite b/assets/environment/blocks/DropThrough-Vine-Block.aseprite new file mode 100644 index 0000000..a3ee090 Binary files /dev/null and b/assets/environment/blocks/DropThrough-Vine-Block.aseprite differ diff --git a/assets/environment/blocks/DropThrough-Vine-Block.aseprite.import b/assets/environment/blocks/DropThrough-Vine-Block.aseprite.import new file mode 100644 index 0000000..e29e596 --- /dev/null +++ b/assets/environment/blocks/DropThrough-Vine-Block.aseprite.import @@ -0,0 +1,26 @@ +[remap] + +importer="aseprite.wizard.plugin" +type="SpriteFrames" +path="res://.import/DropThrough-Vine-Block.aseprite-501c19e4cacf40654b823472d785b695.res" + +[deps] + +source_file="res://assets/environment/blocks/DropThrough-Vine-Block.aseprite" +dest_files=[ "res://.import/DropThrough-Vine-Block.aseprite-501c19e4cacf40654b823472d785b695.res" ] + +[params] + +split_layers=false +exclude_layers_pattern="" +only_visible_layers=false +sheet_type="Packed" +sprite_filename_pattern="{basename}.{layer}.{extension}" +texture_strip/import_texture_strip=false +texture_strip/filename_pattern="{basename}.{layer}.Strip.{extension}" +texture_atlas/import_texture_atlas=false +texture_atlas/filename_pattern="{basename}.{layer}.Atlas.{extension}" +texture_atlas/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Atlas.{extension}" +animated_texture/import_animated_texture=false +animated_texture/filename_pattern="{basename}.{layer}.{animation}.Texture.{extension}" +animated_texture/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Texture.{extension}" diff --git a/assets/environment/blocks/DropThrough-Vine-Block.png b/assets/environment/blocks/DropThrough-Vine-Block.png new file mode 100644 index 0000000..82ab23e Binary files /dev/null and b/assets/environment/blocks/DropThrough-Vine-Block.png differ diff --git a/assets/environment/blocks/DropThrough-Vine-Block.png.import b/assets/environment/blocks/DropThrough-Vine-Block.png.import new file mode 100644 index 0000000..eed6a55 --- /dev/null +++ b/assets/environment/blocks/DropThrough-Vine-Block.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/DropThrough-Vine-Block.png-89f1857a9725545575556b519548ae44.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environment/blocks/DropThrough-Vine-Block.png" +dest_files=[ "res://.import/DropThrough-Vine-Block.png-89f1857a9725545575556b519548ae44.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/project.godot b/project.godot index d363533..fe407cd 100644 --- a/project.godot +++ b/project.godot @@ -67,6 +67,7 @@ enabled=PoolStringArray( "res://addons/AsepriteWizard/plugin.cfg" ) window=false grav=false +layer=false [importer_defaults] @@ -151,11 +152,11 @@ duck={ 2d_physics/layer_5="platforms" 2d_physics/layer_6="contraption" 2d_physics/layer_7="finnemajig" +2d_physics/layer_8="dropThrough" [physics] common/physics_fps=120 -common/physics_jitter_fix=0.3 2d/cell_size=100 common/enable_object_picking=false diff --git a/src/Actors/Blobby/Blobby.gd b/src/Actors/Blobby/Blobby.gd index adc49d2..0b090f2 100644 --- a/src/Actors/Blobby/Blobby.gd +++ b/src/Actors/Blobby/Blobby.gd @@ -57,7 +57,7 @@ func calculate_duck_velocity( if velocity.x < 0: velocity_direction = -1.0 - # TODO Improve this to separate crawling(slow) and sliding + # TODO Improve this to separate crawling(slow) and sliding var deceleration_force = calculate_deceleration_force(_gravity, mass)*0.333 # Slowing down movement when not controlling direction @@ -95,6 +95,10 @@ func calculate_duck_velocity( ) elif !reverse_move: out_vel.x = max_velocity[state] * direction.x + # TODO is_on_dropThrough does the action, is that ok? yEs, MaAsTeR-ChAn + # TODO Drop Through coyote time? + if (Input.is_action_just_pressed("jump") && is_on_dropThrough()): + return Vector2(out_vel.x, _gravity*delta) # Jumping when grounded or jump is buffered if ( Input.is_action_just_pressed("jump") @@ -110,6 +114,14 @@ func calculate_duck_velocity( return out_vel +func is_on_dropThrough(): + var bodies: Array = $BlobbySkin.get_overlapping_bodies() + for i in range(0, bodies.size()): + if bodies[i].get_collision_mask_bit(7): + set_collision_mask_bit(7, false) + return true + return false + func calculate_grounded_velocity( linear_velocity: Vector2, delta: float, direction: Vector2 ) -> Vector2: @@ -353,6 +365,7 @@ func die() -> void: func _on_Blobby_got_grounded() -> void: velocity.x -= get_floor_velocity().x var floor_object = get_last_slide_collision().collider.get_parent() + #TODO There is already a friction property in engine if "slide_friction" in floor_object: floor_friction = floor_object.slide_friction else: @@ -361,4 +374,9 @@ func _on_Blobby_got_grounded() -> void: func _on_GameplaySignalManager_getback_timer_up() -> void: - die() \ No newline at end of file + die() + + +func _on_BlobbySkin_body_exited(body:Node) -> void: + if body.get_collision_mask_bit(7): + set_collision_mask_bit(7, true) diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 0643a44..c5da85b 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -7,7 +7,7 @@ [ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5] [sub_resource type="RectangleShape2D" id=2] -extents = Vector2( 14.9127, 5.98593 ) +extents = Vector2( 12.9698, 8.9748 ) [sub_resource type="StreamTexture" id=62] load_path = "res://.import/Blobby.png-42eed5028ccb56a7415a0793b79ec61e.stex" @@ -284,7 +284,7 @@ states/wallsliding/node = SubResource( 96 ) states/wallsliding/position = Vector2( 1795.54, 493.009 ) transitions = [ "falling", "wallsliding", SubResource( 138 ), "wallsliding", "idling", SubResource( 139 ), "wallsliding", "wallslideToJump", SubResource( 140 ), "wallslideToJump", "jumping", SubResource( 141 ), "idling", "jumping", SubResource( 147 ), "runToJump", "jumping", SubResource( 148 ), "ducking", "jumping", SubResource( 149 ), "jumping", "jumpToFall", SubResource( 150 ), "jumpToFall", "falling", SubResource( 151 ), "ducking", "duckTurn", SubResource( 152 ), "duckTurn", "ducking", SubResource( 153 ), "falling", "ducking", SubResource( 154 ), "ducking", "falling", SubResource( 155 ), "ducking", "walking", SubResource( 156 ), "walking", "ducking", SubResource( 157 ), "idling", "ducking", SubResource( 158 ), "ducking", "idling", SubResource( 159 ), "ducking", "running", SubResource( 160 ), "running", "ducking", SubResource( 161 ), "running", "falling", SubResource( 162 ), "falling", "running", SubResource( 163 ), "walking", "falling", SubResource( 164 ), "falling", "walking", SubResource( 165 ), "falling", "idling", SubResource( 166 ), "idling", "walking", SubResource( 167 ), "walking", "idling", SubResource( 168 ), "walking", "turnToRun", SubResource( 169 ), "turnToRun", "walking", SubResource( 170 ), "running", "turnToRun", SubResource( 171 ), "turnToRun", "running", SubResource( 172 ), "idling", "idleTurn", SubResource( 173 ), "walking", "idleTurn", SubResource( 174 ), "idleTurn", "walking", SubResource( 175 ), "idling", "turnToRun", SubResource( 176 ), "turnToRun", "idling", SubResource( 177 ), "running", "runToJump", SubResource( 178 ), "wallsliding", "falling", SubResource( 137 ) ] start_node = "idling" -graph_offset = Vector2( 984.54, -229.991 ) +graph_offset = Vector2( 1113.54, -70.991 ) [sub_resource type="AnimationNodeStateMachinePlayback" id=48] @@ -4394,7 +4394,7 @@ tracks/2/keys = { } [node name="Blobby" type="KinematicBody2D" groups=["player"]] -collision_mask = 120 +collision_mask = 248 collision/safe_margin = 0.001 script = ExtResource( 4 ) __meta__ = { @@ -4403,21 +4403,20 @@ __meta__ = { [node name="BlobbySkin" type="Area2D" parent="." groups=["player"]] process_priority = -1 -collision_mask = 126 +collision_mask = 254 [node name="CollisionPolygon2D" type="CollisionShape2D" parent="BlobbySkin"] -position = Vector2( 0.0286326, -10.0053 ) +position = Vector2( 1, -8.975 ) scale = Vector2( 1.03, 1.04 ) shape = SubResource( 2 ) [node name="BlobbySprite" type="Sprite" parent="."] position = Vector2( 0, -16 ) -scale = Vector2( -1, 1 ) texture = SubResource( 62 ) offset = Vector2( 1, 0 ) hframes = 6 vframes = 5 -frame = 5 +frame = 6 __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUJsb2JieVNwcml0ZS9CbG9iYnltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvYmxvYmJ5L2Jsb2JieS1zcHJpdGVzaGVldHQuYXNlcHJpdGUKbGF5ZXJ8PUJsb2JieQpvcF9leHB8PUZhbHNlCm9fZm9sZGVyfD0Kb19uYW1lfD0Kb25seV92aXNpYmxlfD1GYWxzZQpvX2V4X3B8PQo=" } @@ -4483,6 +4482,7 @@ anims/airstrafing = SubResource( 182 ) anims/airstrafingLeft = SubResource( 183 ) [node name="BlobbyStateEffects" type="Sprite" parent="."] +visible = false position = Vector2( 3.07106, -16.064 ) scale = Vector2( -1, 1 ) texture = ExtResource( 1 ) @@ -4491,7 +4491,7 @@ hframes = 10 frame = 8 [node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]] -position = Vector2( 0.0392303, -10.002 ) +position = Vector2( 1, -8.975 ) shape = SubResource( 1 ) [node name="BlobbyCam" type="Camera2D" parent="."] @@ -4542,13 +4542,13 @@ position = Vector2( 0, -1 ) [node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="Left_Wallcast1" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] -position = Vector2( -11.9763, -5 ) +position = Vector2( -12, -10.686 ) enabled = true cast_to = Vector2( -1.5, 0 ) collision_mask = 56 [node name="Left_Wallcast2" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] -position = Vector2( -11.9763, 5 ) +position = Vector2( -12, -1.942 ) enabled = true cast_to = Vector2( -1.5, 0 ) collision_mask = 56 @@ -4556,14 +4556,14 @@ collision_mask = 56 [node name="RightWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="Right_Wallcast1" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] -position = Vector2( 12.0551, -5 ) +position = Vector2( 14, -10.686 ) enabled = true exclude_parent = false cast_to = Vector2( 1.5, 0 ) collision_mask = 56 [node name="Right_Wallcast2" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] -position = Vector2( 12.0551, 5 ) +position = Vector2( 14, -1.942 ) enabled = true exclude_parent = false cast_to = Vector2( 1.5, 0 ) diff --git a/src/Contraptions/Platform/DropThroughPlatform.tscn b/src/Contraptions/Platform/DropThroughPlatform.tscn new file mode 100644 index 0000000..7d813d9 --- /dev/null +++ b/src/Contraptions/Platform/DropThroughPlatform.tscn @@ -0,0 +1,42 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-Block.png" type="Texture" id=1] + +[sub_resource type="OccluderPolygon2D" id=3] +polygon = PoolVector2Array( 0, 0, 24, 0, 24, 12, 0, 12 ) + +[sub_resource type="ConvexPolygonShape2D" id=4] +points = PoolVector2Array( 0, 0, 24, 0, 24, 0, 0, 0 ) + +[sub_resource type="TileSet" id=2] +0/name = "DropThrough-Vine-Block.png 0" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 24, 12 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/occluder = SubResource( 3 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape = SubResource( 4 ) +0/shape_one_way = true +0/shape_one_way_margin = 1.0 +0/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": true, +"one_way_margin": 1.0, +"shape": SubResource( 4 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +0/z_index = 0 + +[node name="DropThroughPlatform" type="TileMap"] +tile_set = SubResource( 2 ) +cell_size = Vector2( 24, 24 ) +cell_quadrant_size = 8 +cell_custom_transform = Transform2D( 0, 0, 0, 0, 0, 0 ) +collision_layer = 128 +collision_mask = 128 +format = 1 diff --git a/src/Environment/AlienShipTileSet.tres b/src/Environment/AlienShipTileSet.tres index c7852ef..b7f70fb 100644 --- a/src/Environment/AlienShipTileSet.tres +++ b/src/Environment/AlienShipTileSet.tres @@ -1,9 +1,10 @@ -[gd_resource type="TileSet" load_steps=8 format=2] +[gd_resource type="TileSet" load_steps=10 format=2] [ext_resource path="res://assets/environment/blocks/Alien-ship1-Edge-Unanimated.png" type="Texture" id=1] [ext_resource path="res://assets/environment/blocks/Alien-ship1-innerPart-Unanimated.png" type="Texture" id=2] [ext_resource path="res://assets/environment/blocks/alienShip1EdgePartTile/alienShip1EdgePartTile.tres" type="Texture" id=3] [ext_resource path="res://assets/environment/blocks/alienShip1innerPartTile/alienShip1InnerPart.tres" type="Texture" id=4] +[ext_resource path="res://assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png" type="Texture" id=5] [sub_resource type="ConvexPolygonShape2D" id=7] points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 ) @@ -14,6 +15,9 @@ points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 ) [sub_resource type="ConvexPolygonShape2D" id=9] points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 ) +[sub_resource type="ConvexPolygonShape2D" id=10] +points = PoolVector2Array( 0, 0, 24, 0, 24, 0, 0, 0 ) + [resource] 0/name = "alienShip1EdgePartTile.tres 0" 0/texture = ExtResource( 3 ) @@ -92,3 +96,24 @@ points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 ) "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) } ] 3/z_index = 0 +4/name = "Alien-ship1-Edge-DropThrough-Unanimated.png 4" +4/texture = ExtResource( 5 ) +4/tex_offset = Vector2( 0, 0 ) +4/modulate = Color( 1, 1, 1, 1 ) +4/region = Rect2( 0, 0, 24, 24 ) +4/tile_mode = 0 +4/occluder_offset = Vector2( 0, 0 ) +4/navigation_offset = Vector2( 0, 0 ) +4/shape_offset = Vector2( 0, 0 ) +4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +4/shape = SubResource( 10 ) +4/shape_one_way = true +4/shape_one_way_margin = 1.0 +4/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": true, +"one_way_margin": 1.0, +"shape": SubResource( 10 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +4/z_index = 0 diff --git a/src/Levels/01 Level.tscn b/src/Levels/01 Level.tscn index 6d86500..b73f51d 100644 --- a/src/Levels/01 Level.tscn +++ b/src/Levels/01 Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2] @@ -10,6 +10,7 @@ [ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=8] [ext_resource path="res://src/Levels/Grass Test Level.tscn" type="PackedScene" id=9] [ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=10] +[ext_resource path="res://src/Contraptions/Platform/DropThroughPlatform.tscn" type="PackedScene" id=11] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] @@ -28,9 +29,34 @@ wait_time = 20.0 position = Vector2( -60, -3.8147e-06 ) scale = Vector2( 0.878906, 0.936025 ) +[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] +position = Vector2( 0.0286326, -10.0053 ) + +[node name="BlobbySprite" parent="Blobby" index="1"] +scale = Vector2( -1, 1 ) +frame = 5 + [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 4 ) +[node name="BlobbyStateEffects" parent="Blobby" index="3"] +visible = true + +[node name="BlobbyBody" parent="Blobby" index="4"] +position = Vector2( 0.0392303, -10.002 ) + +[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] +position = Vector2( -11.9763, -5 ) + +[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] +position = Vector2( -11.9763, 5 ) + +[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] +position = Vector2( 12.0551, -5 ) + +[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] +position = Vector2( 12.0551, 5 ) + [node name="Collectibles" type="Node2D" parent="."] [node name="Coin" parent="Collectibles" instance=ExtResource( 6 )] @@ -88,6 +114,9 @@ position = Vector2( 1236, -36 ) [node name="Spikes3" parent="TileMap" instance=ExtResource( 3 )] position = Vector2( 684, 12 ) +[node name="DropThroughPlatform" parent="." instance=ExtResource( 11 )] +tile_data = PoolIntArray( -131072, 0, 0, -65512, 0, 0, -65511, 0, 0 ) + [node name="TreeWhyButtons" parent="." instance=ExtResource( 8 )] position = Vector2( -108, -7 ) @@ -116,6 +145,7 @@ next_scene = ExtResource( 9 ) script = ExtResource( 10 ) [connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"] +[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"] [connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"] diff --git a/src/Levels/Grass Test Level.tscn b/src/Levels/Grass Test Level.tscn index 2ba8cf7..ed3b157 100644 --- a/src/Levels/Grass Test Level.tscn +++ b/src/Levels/Grass Test Level.tscn @@ -1,15 +1,15 @@ [gd_scene load_steps=12 format=2] [ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1] -[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2] -[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=3] -[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=4] -[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=5] -[ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=6] -[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=7] -[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=8] +[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=2] +[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=3] +[ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=4] +[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=8] [ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=9] -[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=10] +[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=10] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] @@ -19,7 +19,7 @@ __meta__ = { "_edit_vertical_guides_": [ 2880.0 ] } -[node name="UserInterface" parent="." instance=ExtResource( 7 )] +[node name="UserInterface" parent="." instance=ExtResource( 6 )] [node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] wait_time = 20.0 @@ -30,7 +30,7 @@ margin_top = 0.456848 margin_right = 3.15375 margin_bottom = 0.456848 -[node name="Blobby" parent="." instance=ExtResource( 2 )] +[node name="Blobby" parent="." instance=ExtResource( 10 )] position = Vector2( 71.0069, 335.293 ) scale = Vector2( 0.878906, 0.936025 ) @@ -40,27 +40,27 @@ parameters/playback = SubResource( 4 ) [node name="Collectibles" type="Node2D" parent="."] visible = false -[node name="Coin" parent="Collectibles" instance=ExtResource( 6 )] +[node name="Coin" parent="Collectibles" instance=ExtResource( 4 )] position = Vector2( 336, -60 ) scale = Vector2( 0.133, 0.133 ) -[node name="Coin2" parent="Collectibles" instance=ExtResource( 6 )] +[node name="Coin2" parent="Collectibles" instance=ExtResource( 4 )] position = Vector2( 324, -11 ) scale = Vector2( 0.133, 0.133 ) -[node name="Coin3" parent="Collectibles" instance=ExtResource( 6 )] +[node name="Coin3" parent="Collectibles" instance=ExtResource( 4 )] position = Vector2( 1188, -84 ) scale = Vector2( 0.133, 0.133 ) -[node name="Coin4" parent="Collectibles" instance=ExtResource( 6 )] +[node name="Coin4" parent="Collectibles" instance=ExtResource( 4 )] position = Vector2( 1236, -108 ) scale = Vector2( 0.133, 0.133 ) -[node name="Coin5" parent="Collectibles" instance=ExtResource( 6 )] +[node name="Coin5" parent="Collectibles" instance=ExtResource( 4 )] position = Vector2( 1140, -108 ) scale = Vector2( 0.133, 0.133 ) -[node name="Coin6" parent="Collectibles" instance=ExtResource( 6 )] +[node name="Coin6" parent="Collectibles" instance=ExtResource( 4 )] position = Vector2( 696, -48 ) scale = Vector2( 0.133, 0.133 ) @@ -74,7 +74,7 @@ collision_mask = 8 format = 1 tile_data = PoolIntArray( 655360, 2, 0, 655361, 2, 0, 655362, 2, 0, 655363, 2, 0, 655364, 2, 0, 655365, 2, 0, 655366, 2, 0, 655367, 2, 0, 655368, 2, 0, 720896, 2, 0, 720904, 2, 0, 786432, 2, 0, 786440, 2, 0, 851968, 2, 0, 851976, 2, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0 ) -[node name="TreeWhyButtons" parent="." instance=ExtResource( 8 )] +[node name="TreeWhyButtons" parent="." instance=ExtResource( 3 )] visible = false position = Vector2( -108, -7 ) @@ -90,233 +90,233 @@ rotation = 3.14159 position = Vector2( 1452, -77 ) rotation = -1.5708 -[node name="ElevatorButton" parent="." instance=ExtResource( 4 )] +[node name="ElevatorButton" parent="." instance=ExtResource( 8 )] visible = false position = Vector2( 1452, -96 ) -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 5 )] +[node name="Portal" parent="ElevatorButton" instance=ExtResource( 7 )] visible = false position = Vector2( -1464, 84 ) monitoring = false next_scene = ExtResource( 9 ) [node name="GameplaySignalManager" type="Node2D" parent="."] -script = ExtResource( 10 ) +script = ExtResource( 2 ) -[node name="ShaderGrass" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass" parent="." instance=ExtResource( 5 )] position = Vector2( 94.3273, 323.897 ) z_index = -1 -[node name="ShaderGrass2" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass2" parent="." instance=ExtResource( 5 )] position = Vector2( 97.7583, 323.726 ) -[node name="ShaderGrass3" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass3" parent="." instance=ExtResource( 5 )] position = Vector2( 103.443, 323.813 ) -[node name="ShaderGrass4" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass4" parent="." instance=ExtResource( 5 )] position = Vector2( 99.556, 322.393 ) z_index = -1 -[node name="ShaderGrass5" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass5" parent="." instance=ExtResource( 5 )] position = Vector2( 107.485, 323.87 ) -[node name="ShaderGrass6" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass6" parent="." instance=ExtResource( 5 )] position = Vector2( 104.781, 322.084 ) z_index = -1 -[node name="ShaderGrass7" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass7" parent="." instance=ExtResource( 5 )] position = Vector2( 118.829, 323.704 ) -[node name="ShaderGrass8" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass8" parent="." instance=ExtResource( 5 )] position = Vector2( 112.732, 323.918 ) -[node name="ShaderGrass9" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass9" parent="." instance=ExtResource( 5 )] position = Vector2( 110.33, 321.607 ) z_index = -1 -[node name="ShaderGrass10" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass10" parent="." instance=ExtResource( 5 )] position = Vector2( 122.514, 323.848 ) z_index = -1 -[node name="ShaderGrass11" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass11" parent="." instance=ExtResource( 5 )] position = Vector2( 125.945, 323.677 ) -[node name="ShaderGrass12" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass12" parent="." instance=ExtResource( 5 )] position = Vector2( 131.629, 323.764 ) -[node name="ShaderGrass13" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass13" parent="." instance=ExtResource( 5 )] position = Vector2( 127.742, 322.345 ) z_index = -1 -[node name="ShaderGrass14" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass14" parent="." instance=ExtResource( 5 )] position = Vector2( 135.671, 323.821 ) -[node name="ShaderGrass15" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass15" parent="." instance=ExtResource( 5 )] position = Vector2( 132.967, 322.035 ) z_index = -1 -[node name="ShaderGrass16" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass16" parent="." instance=ExtResource( 5 )] position = Vector2( 147.015, 323.655 ) -[node name="ShaderGrass17" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass17" parent="." instance=ExtResource( 5 )] position = Vector2( 140.918, 323.869 ) -[node name="ShaderGrass18" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass18" parent="." instance=ExtResource( 5 )] position = Vector2( 138.516, 321.559 ) z_index = -1 -[node name="ShaderGrass19" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass19" parent="." instance=ExtResource( 5 )] position = Vector2( 149.723, 323.897 ) z_index = -1 -[node name="ShaderGrass20" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass20" parent="." instance=ExtResource( 5 )] position = Vector2( 153.154, 323.726 ) -[node name="ShaderGrass21" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass21" parent="." instance=ExtResource( 5 )] position = Vector2( 158.839, 323.813 ) -[node name="ShaderGrass22" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass22" parent="." instance=ExtResource( 5 )] position = Vector2( 154.952, 322.393 ) z_index = -1 -[node name="ShaderGrass23" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass23" parent="." instance=ExtResource( 5 )] position = Vector2( 162.881, 323.87 ) -[node name="ShaderGrass24" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass24" parent="." instance=ExtResource( 5 )] position = Vector2( 160.177, 322.084 ) z_index = -1 -[node name="ShaderGrass25" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass25" parent="." instance=ExtResource( 5 )] position = Vector2( 174.225, 323.704 ) -[node name="ShaderGrass26" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass26" parent="." instance=ExtResource( 5 )] position = Vector2( 168.128, 323.918 ) -[node name="ShaderGrass27" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass27" parent="." instance=ExtResource( 5 )] position = Vector2( 165.726, 321.607 ) z_index = -1 -[node name="ShaderGrass28" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass28" parent="." instance=ExtResource( 5 )] position = Vector2( 64.794, 323.73 ) z_index = -1 -[node name="ShaderGrass29" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass29" parent="." instance=ExtResource( 5 )] position = Vector2( 68.225, 323.559 ) -[node name="ShaderGrass30" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass30" parent="." instance=ExtResource( 5 )] position = Vector2( 73.9096, 323.646 ) -[node name="ShaderGrass31" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass31" parent="." instance=ExtResource( 5 )] position = Vector2( 70.0227, 322.227 ) z_index = -1 -[node name="ShaderGrass32" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass32" parent="." instance=ExtResource( 5 )] position = Vector2( 77.9516, 323.703 ) -[node name="ShaderGrass33" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass33" parent="." instance=ExtResource( 5 )] position = Vector2( 75.2476, 321.917 ) z_index = -1 -[node name="ShaderGrass34" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass34" parent="." instance=ExtResource( 5 )] position = Vector2( 89.2956, 323.538 ) -[node name="ShaderGrass35" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass35" parent="." instance=ExtResource( 5 )] position = Vector2( 83.1986, 323.751 ) -[node name="ShaderGrass36" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass36" parent="." instance=ExtResource( 5 )] position = Vector2( 80.7966, 321.441 ) z_index = -1 -[node name="ShaderGrass37" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass37" parent="." instance=ExtResource( 5 )] position = Vector2( 39.2652, 323.564 ) z_index = -1 -[node name="ShaderGrass38" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass38" parent="." instance=ExtResource( 5 )] position = Vector2( 42.6962, 323.393 ) -[node name="ShaderGrass39" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass39" parent="." instance=ExtResource( 5 )] position = Vector2( 48.3808, 323.48 ) -[node name="ShaderGrass40" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass40" parent="." instance=ExtResource( 5 )] position = Vector2( 44.4939, 322.06 ) z_index = -1 -[node name="ShaderGrass41" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass41" parent="." instance=ExtResource( 5 )] position = Vector2( 52.4228, 323.537 ) -[node name="ShaderGrass42" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass42" parent="." instance=ExtResource( 5 )] position = Vector2( 49.7188, 321.751 ) z_index = -1 -[node name="ShaderGrass43" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass43" parent="." instance=ExtResource( 5 )] position = Vector2( 63.7668, 323.371 ) -[node name="ShaderGrass44" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass44" parent="." instance=ExtResource( 5 )] position = Vector2( 57.6698, 323.585 ) -[node name="ShaderGrass45" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass45" parent="." instance=ExtResource( 5 )] position = Vector2( 55.2678, 321.274 ) z_index = -1 -[node name="ShaderGrass46" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass46" parent="." instance=ExtResource( 5 )] position = Vector2( 17.2403, 323.73 ) z_index = -1 -[node name="ShaderGrass47" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass47" parent="." instance=ExtResource( 5 )] position = Vector2( 20.6713, 323.559 ) -[node name="ShaderGrass48" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass48" parent="." instance=ExtResource( 5 )] position = Vector2( 26.3559, 323.646 ) -[node name="ShaderGrass49" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass49" parent="." instance=ExtResource( 5 )] position = Vector2( 22.469, 322.227 ) z_index = -1 -[node name="ShaderGrass50" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass50" parent="." instance=ExtResource( 5 )] position = Vector2( 30.3979, 323.703 ) -[node name="ShaderGrass51" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass51" parent="." instance=ExtResource( 5 )] position = Vector2( 27.6939, 321.917 ) z_index = -1 -[node name="ShaderGrass52" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass52" parent="." instance=ExtResource( 5 )] position = Vector2( 41.7419, 323.538 ) -[node name="ShaderGrass53" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass53" parent="." instance=ExtResource( 5 )] position = Vector2( 35.6449, 323.751 ) -[node name="ShaderGrass54" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass54" parent="." instance=ExtResource( 5 )] position = Vector2( 33.2429, 321.441 ) z_index = -1 -[node name="ShaderGrass55" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass55" parent="." instance=ExtResource( 5 )] position = Vector2( 166.242, 323.73 ) z_index = -1 -[node name="ShaderGrass56" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass56" parent="." instance=ExtResource( 5 )] position = Vector2( 169.673, 323.559 ) -[node name="ShaderGrass57" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass57" parent="." instance=ExtResource( 5 )] position = Vector2( 175.357, 323.646 ) -[node name="ShaderGrass58" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass58" parent="." instance=ExtResource( 5 )] position = Vector2( 171.471, 322.227 ) z_index = -1 -[node name="ShaderGrass59" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass59" parent="." instance=ExtResource( 5 )] position = Vector2( 179.399, 323.703 ) -[node name="ShaderGrass60" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass60" parent="." instance=ExtResource( 5 )] position = Vector2( 176.695, 321.917 ) z_index = -1 -[node name="ShaderGrass61" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass61" parent="." instance=ExtResource( 5 )] position = Vector2( 190.743, 323.538 ) -[node name="ShaderGrass62" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass62" parent="." instance=ExtResource( 5 )] position = Vector2( 184.646, 323.751 ) -[node name="ShaderGrass63" parent="." instance=ExtResource( 3 )] +[node name="ShaderGrass63" parent="." instance=ExtResource( 5 )] position = Vector2( 182.244, 321.441 ) z_index = -1