From 7f55ddfc22cc483736919e8a498b6b26d5c89038 Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Sun, 25 Sep 2022 17:46:57 +0200 Subject: [PATCH] Drop through one way platform --- ...lien-ship1-Edge-DropThrough-Unanimated.png | Bin 0 -> 598 bytes ...ip1-Edge-DropThrough-Unanimated.png.import | 35 ++++ .../blocks/DropThrough-Vine-Block.aseprite | Bin 0 -> 2106 bytes .../DropThrough-Vine-Block.aseprite.import | 26 +++ .../blocks/DropThrough-Vine-Block.png | Bin 0 -> 442 bytes .../blocks/DropThrough-Vine-Block.png.import | 35 ++++ project.godot | 3 +- src/Actors/Blobby/Blobby.gd | 22 ++- src/Actors/Blobby/Blobby.tscn | 24 +-- .../Platform/DropThroughPlatform.tscn | 42 +++++ src/Environment/AlienShipTileSet.tres | 27 ++- src/Levels/01 Level.tscn | 32 +++- src/Levels/Grass Test Level.tscn | 166 +++++++++--------- 13 files changed, 312 insertions(+), 100 deletions(-) create mode 100644 assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png create mode 100644 assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png.import create mode 100644 assets/environment/blocks/DropThrough-Vine-Block.aseprite create mode 100644 assets/environment/blocks/DropThrough-Vine-Block.aseprite.import create mode 100644 assets/environment/blocks/DropThrough-Vine-Block.png create mode 100644 assets/environment/blocks/DropThrough-Vine-Block.png.import create mode 100644 src/Contraptions/Platform/DropThroughPlatform.tscn 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 0000000000000000000000000000000000000000..9ed4fa26f5a84e9b01fc2aa507732e8498c6fc6d GIT binary patch literal 598 zcmV-c0;&CpP)Px%5J^NqR7i=nRZVN#KolGc8%Yo!oFA|UgQXxrT_i!0#tr^GO@C%fFP6ZEmfC?F z_6IaaNx|SA%52`Q*7-Q}oy=&ontAi~d35*X>ktk7&X==#>eo9)Jk z^6`lWQW0N}4qn22j$M9G7UjS}S(G47EDGa+QWo*9Z><(7r7&jiWcjeJZ@ucNlp?ym zwfMn%dnz-NN@XW32d=8FZ?V7M8AU#&6eMvujeKSt&=wC(7AbD7SJvUa41A7V{#a{m zde>|>h{E{AX`xHHAm1%^B6y1;;&Qqq?q*OdD@0+8o9oqc2C}E8GVo0oo%vkUO>H~i zp~)gevPeza+$rLR-!fgJ)u+!#0LU(K0Kl)`KMjGs=441mKE8a1Vqe`w#5oA=yt_Nf z&2n%L06PPzGzw#H4*UC^)wYwnh!2b%707*qoM6N<$g3b39OaK4? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a3ee090f8bd4b4cfcb2917c3ae7a804fed5000a2 GIT binary patch literal 2106 zcmd6oeN5D40LLE!hJO&bRtQmWEf&qtt{1&VyyOzemKZM+1QR&eI3n2fdAPRt!+-q4t>5iF``z!3=lT7f z=ll7xYJm_vbvD99I0}WZ5kjQ!{_oHW8+lPI$h3#;S;V#S`l{AgZXKCr2g+GH08UJikaTwLXOpd2lFvm8I=;9*#FgGt{-fgV`l8VWSHA`^p^; z@>&X0*UEdSOxM6~OV7Ygy&ewt$k9yqZuP}# zht-_I$9QzdbwtN< z6vuDm#%#34X@tgRRK{Z@#$fctUBty&l*LzM#Z)xKQ3S=S%aPvob_`%phgC+1|FfRk>bJ(sNqfcz3(mY3Md%vvmL4N)bh z+#&l#Jjvz*{_@dW@?cmyh3&k-r4|liU2=Y^TH*H_AM6#@Z!Lt&ddPpbdAf>E{G7gj zWufgvMR`VjwdNN^UGEb!?}v}w(G*|ss(jJtd88~Mw`sB=_hehi#J=0xj!x%=9mrqs z+3cxj`a;Y>ReP%6F)MSPx$bV)=(R5*>5Qn6~oFc5twQYa0c+o?41l*LfGG=s?!2nCNF`xRaDHHCaa#xBN# zhms|WCfO!a(p4m6vN|LuOHKmmf${0?-FtUB(d6^h;ApGG29GcIC;oqOZ4;}-#)7V~ zOZc0go%b(g^DS z^K3~#WSB&Wp7mMWb|@Ub0AzNUlJNl0al2ANW4{}l+q-W{;>gUZwe2o1wnuSbFgl2G z*RyJUB=pIrUpbv9&Z@O{k4z2#^K41`-Pk<8DTH<4P1W8Xb9T58X!gKjs?r`9h|K%s z7aPx#07*qoM6N<$f>d$A`2YX_ literal 0 HcmV?d00001 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