Death animation and refined drop through platform

This commit is contained in:
Jakob Feldmann 2022-10-03 16:34:06 +02:00
parent 7f55ddfc22
commit 54c3421aea
32 changed files with 704 additions and 62 deletions

BIN
assets/blobby/Blobby.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/Blobby.png-554d4a075b6d3934353e2891595fdca2.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/blobby/Blobby.png"
dest_files=[ "res://.import/Blobby.png-554d4a075b6d3934353e2891595fdca2.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/blobby-spritesheett.png-31ad471e3ad73a5f4a303e582c829ff7.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/blobby/blobby-spritesheett.png"
dest_files=[ "res://.import/blobby-spritesheett.png-31ad471e3ad73a5f4a303e582c829ff7.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 450 B

View File

@ -0,0 +1,26 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/DropThrough-Vine-BlockEnd.aseprite-93f6ee58c7f451fae0c1132a634751f7.res"
[deps]
source_file="res://assets/environment/blocks/DropThrough-Vine-BlockEnd.aseprite"
dest_files=[ "res://.import/DropThrough-Vine-BlockEnd.aseprite-93f6ee58c7f451fae0c1132a634751f7.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}"

View File

@ -0,0 +1,26 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/DropThrough-Vine-BlockEnd1.aseprite-ca24350706a9cf20e6b0769c8ac7d79f.res"
[deps]
source_file="res://assets/environment/blocks/DropThrough-Vine-BlockEnd1.aseprite"
dest_files=[ "res://.import/DropThrough-Vine-BlockEnd1.aseprite-ca24350706a9cf20e6b0769c8ac7d79f.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}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/DropThrough-Vine-BlockEnd1.png-fb22d99cf41d10135054918fe1f77691.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/blocks/DropThrough-Vine-BlockEnd1.png"
dest_files=[ "res://.import/DropThrough-Vine-BlockEnd1.png-fb22d99cf41d10135054918fe1f77691.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

View File

@ -0,0 +1,26 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/DropThrough-Vine-BlockEnd2.aseprite-58b0f49126d8fed5bbcaa4fd67ae3fdb.res"
[deps]
source_file="res://assets/environment/blocks/DropThrough-Vine-BlockEnd2.aseprite"
dest_files=[ "res://.import/DropThrough-Vine-BlockEnd2.aseprite-58b0f49126d8fed5bbcaa4fd67ae3fdb.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}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/DropThrough-Vine-BlockEnd2.png-dc687a6cab3a2739c0f2c2c547d35834.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/blocks/DropThrough-Vine-BlockEnd2.png"
dest_files=[ "res://.import/DropThrough-Vine-BlockEnd2.png-dc687a6cab3a2739c0f2c2c547d35834.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

Binary file not shown.

View File

@ -0,0 +1,26 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/SlopeTest.aseprite-d38739e50682bab3c7429708bcd3bdda.res"
[deps]
source_file="res://assets/environment/blocks/SlopeTest.aseprite"
dest_files=[ "res://.import/SlopeTest.aseprite-d38739e50682bab3c7429708bcd3bdda.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}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/SlopeTest.png-0a30cb72614a53dfafdb14a98f113800.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/blocks/SlopeTest.png"
dest_files=[ "res://.import/SlopeTest.png-0a30cb72614a53dfafdb14a98f113800.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/SlopeTestSlow.png-f5852254004bb48d1e232c23e25713c3.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/blocks/SlopeTestSlow.png"
dest_files=[ "res://.import/SlopeTestSlow.png-f5852254004bb48d1e232c23e25713c3.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

View File

@ -48,6 +48,7 @@ func handle_fall_movement(delta: float, direction: Vector2) -> Vector2:
func handle_wallslide_movement(delta: float, direction: Vector2) -> Vector2: func handle_wallslide_movement(delta: float, direction: Vector2) -> Vector2:
return calculate_wallslide_velocity(velocity, delta, direction) return calculate_wallslide_velocity(velocity, delta, direction)
func calculate_duck_velocity( func calculate_duck_velocity(
linear_velocity: Vector2, delta: float, direction: Vector2 linear_velocity: Vector2, delta: float, direction: Vector2
) -> Vector2: ) -> Vector2:
@ -114,6 +115,7 @@ func calculate_duck_velocity(
return out_vel return out_vel
func is_on_dropThrough(): func is_on_dropThrough():
var bodies: Array = $BlobbySkin.get_overlapping_bodies() var bodies: Array = $BlobbySkin.get_overlapping_bodies()
for i in range(0, bodies.size()): for i in range(0, bodies.size()):
@ -122,6 +124,7 @@ func is_on_dropThrough():
return true return true
return false return false
func calculate_grounded_velocity( func calculate_grounded_velocity(
linear_velocity: Vector2, delta: float, direction: Vector2 linear_velocity: Vector2, delta: float, direction: Vector2
) -> Vector2: ) -> Vector2:
@ -350,13 +353,34 @@ func execute_airstrafe(
func execute_movement() -> void: func execute_movement() -> void:
velocity = move_and_slide(velocity, FLOOR_NORMAL,false, 4, 0.785398,false) print(get_floor_angle())
if is_equal_approx(get_floor_angle(), 0):
print("slide")
velocity = move_and_slide(velocity, FLOOR_NORMAL,true, 4, 0.785398,false)
else:
print("snap")
velocity = move_and_slide_with_snap(velocity, Vector2.DOWN, FLOOR_NORMAL)
if is_on_floor():
pass
#rotate_to_ground()
func rotate_to_ground() -> void:
rotation = -get_floor_angle(FLOOR_NORMAL)
func die() -> void: func die() -> void:
queue_free() z_index = 1
$BlobbyCam.position = position
$BlobbyCam/AnimationPlayer.play("deathCam")
$BlobbySprite/AnimationTree.active = false
$BlobbySprite/BlobbymationPlayer.play("dying")
PlayerData.is_dead = true
PlayerData.deaths += 1 PlayerData.deaths += 1
func respawn() -> void:
get_tree().reload_current_scene()
# This problem stems from trying to decelerate a walk # This problem stems from trying to decelerate a walk
# that was caused by the moving environment and not by input # that was caused by the moving environment and not by input

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=112 format=2] [gd_scene load_steps=115 format=2]
[ext_resource path="res://assets/blobby/blobby-effects-spritesheet.png" type="Texture" id=1] [ext_resource path="res://assets/blobby/blobby-effects-spritesheet.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=2] [ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=2]
@ -7,10 +7,10 @@
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5] [ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5]
[sub_resource type="RectangleShape2D" id=2] [sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 12.9698, 8.9748 ) extents = Vector2( 14.9127, 5.98593 )
[sub_resource type="StreamTexture" id=62] [sub_resource type="StreamTexture" id=62]
load_path = "res://.import/Blobby.png-42eed5028ccb56a7415a0793b79ec61e.stex" load_path = "res://.import/blobby-spritesheett.png-31ad471e3ad73a5f4a303e582c829ff7.stex"
[sub_resource type="AnimationNodeAnimation" id=126] [sub_resource type="AnimationNodeAnimation" id=126]
animation = "duckTurn" animation = "duckTurn"
@ -1079,6 +1079,21 @@ tracks/11/keys = {
"values": [ false ] "values": [ false ]
} }
[sub_resource type="Animation" id=184]
resource_name = "dying"
tracks/0/type = "value"
tracks/0/path = NodePath(".:frame")
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": 1,
"values": [ 30 ]
}
[sub_resource type="Animation" id=6] [sub_resource type="Animation" id=6]
length = 0.1 length = 0.1
loop = true loop = true
@ -4393,6 +4408,207 @@ tracks/2/keys = {
"values": [ Vector2( -1, 1 ) ] "values": [ Vector2( -1, 1 ) ]
} }
[sub_resource type="Animation" id=185]
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 ) ]
}
[sub_resource type="Animation" id=186]
resource_name = "deathCam"
length = 3.0
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, 2.5 ),
"transitions": PoolRealArray( 1, 0.5 ),
"update": 0,
"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.002, 0.002 ) ]
}
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 = true
tracks/5/keys = {
"times": PoolRealArray( 0, 2.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ 0.0, 360.0 ]
}
tracks/6/type = "value"
tracks/6/path = NodePath(".:position")
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": [ Vector2( 0, -4 ) ]
}
tracks/7/type = "method"
tracks/7/path = NodePath("..")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 3 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "respawn"
} ]
}
[node name="Blobby" type="KinematicBody2D" groups=["player"]] [node name="Blobby" type="KinematicBody2D" groups=["player"]]
collision_mask = 248 collision_mask = 248
collision/safe_margin = 0.001 collision/safe_margin = 0.001
@ -4406,17 +4622,18 @@ process_priority = -1
collision_mask = 254 collision_mask = 254
[node name="CollisionPolygon2D" type="CollisionShape2D" parent="BlobbySkin"] [node name="CollisionPolygon2D" type="CollisionShape2D" parent="BlobbySkin"]
position = Vector2( 1, -8.975 ) position = Vector2( 0.0286326, -10.0053 )
scale = Vector2( 1.03, 1.04 ) scale = Vector2( 1.03, 1.04 )
shape = SubResource( 2 ) shape = SubResource( 2 )
[node name="BlobbySprite" type="Sprite" parent="."] [node name="BlobbySprite" type="Sprite" parent="."]
position = Vector2( 0, -16 ) position = Vector2( 0, -16 )
scale = Vector2( -1, 1 )
texture = SubResource( 62 ) texture = SubResource( 62 )
offset = Vector2( 1, 0 ) offset = Vector2( 1, 0 )
hframes = 6 hframes = 6
vframes = 5 vframes = 6
frame = 6 frame = 5
__meta__ = { __meta__ = {
"_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUJsb2JieVNwcml0ZS9CbG9iYnltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvYmxvYmJ5L2Jsb2JieS1zcHJpdGVzaGVldHQuYXNlcHJpdGUKbGF5ZXJ8PUJsb2JieQpvcF9leHB8PUZhbHNlCm9fZm9sZGVyfD0Kb19uYW1lfD0Kb25seV92aXNpYmxlfD1GYWxzZQpvX2V4X3B8PQo=" "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUJsb2JieVNwcml0ZS9CbG9iYnltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvYmxvYmJ5L2Jsb2JieS1zcHJpdGVzaGVldHQuYXNlcHJpdGUKbGF5ZXJ8PUJsb2JieQpvcF9leHB8PUZhbHNlCm9fZm9sZGVyfD0Kb19uYW1lfD0Kb25seV92aXNpYmxlfD1GYWxzZQpvX2V4X3B8PQo="
} }
@ -4446,6 +4663,7 @@ anims/duckRun = SubResource( 67 )
anims/duckTurn = SubResource( 68 ) anims/duckTurn = SubResource( 68 )
anims/ducking = SubResource( 69 ) anims/ducking = SubResource( 69 )
anims/duckingLeft = SubResource( 107 ) anims/duckingLeft = SubResource( 107 )
anims/dying = SubResource( 184 )
anims/falling = SubResource( 6 ) anims/falling = SubResource( 6 )
anims/fallingLeft = SubResource( 106 ) anims/fallingLeft = SubResource( 106 )
anims/idleTurn = SubResource( 70 ) anims/idleTurn = SubResource( 70 )
@ -4482,7 +4700,6 @@ anims/airstrafing = SubResource( 182 )
anims/airstrafingLeft = SubResource( 183 ) anims/airstrafingLeft = SubResource( 183 )
[node name="BlobbyStateEffects" type="Sprite" parent="."] [node name="BlobbyStateEffects" type="Sprite" parent="."]
visible = false
position = Vector2( 3.07106, -16.064 ) position = Vector2( 3.07106, -16.064 )
scale = Vector2( -1, 1 ) scale = Vector2( -1, 1 )
texture = ExtResource( 1 ) texture = ExtResource( 1 )
@ -4491,17 +4708,13 @@ hframes = 10
frame = 8 frame = 8
[node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]] [node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]]
position = Vector2( 1, -8.975 ) position = Vector2( 0.0392303, -10.002 )
shape = SubResource( 1 ) shape = SubResource( 1 )
[node name="BlobbyCam" type="Camera2D" parent="."] [node name="BlobbyCam" type="Camera2D" parent="."]
position = Vector2( 70, 0 ) rotating = true
current = true current = true
zoom = Vector2( 0.75, 0.75 ) zoom = Vector2( 0.75, 0.75 )
limit_left = 0
limit_top = 0
limit_right = 0
limit_bottom = 0
drag_margin_h_enabled = true drag_margin_h_enabled = true
drag_margin_v_enabled = true drag_margin_v_enabled = true
drag_margin_left = 0.05 drag_margin_left = 0.05
@ -4513,6 +4726,10 @@ script = ExtResource( 2 )
[node name="ShiftTween" type="Tween" parent="BlobbyCam"] [node name="ShiftTween" type="Tween" parent="BlobbyCam"]
[node name="AnimationPlayer" type="AnimationPlayer" parent="BlobbyCam"]
anims/RESET = SubResource( 185 )
anims/deathCam = SubResource( 186 )
[node name="BlobbyStateMachine" type="Node" parent="."] [node name="BlobbyStateMachine" type="Node" parent="."]
script = ExtResource( 3 ) script = ExtResource( 3 )
@ -4542,13 +4759,13 @@ position = Vector2( 0, -1 )
[node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"]
[node name="Left_Wallcast1" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] [node name="Left_Wallcast1" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"]
position = Vector2( -12, -10.686 ) position = Vector2( -11.9763, -5 )
enabled = true enabled = true
cast_to = Vector2( -1.5, 0 ) cast_to = Vector2( -1.5, 0 )
collision_mask = 56 collision_mask = 56
[node name="Left_Wallcast2" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] [node name="Left_Wallcast2" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"]
position = Vector2( -12, -1.942 ) position = Vector2( -11.9763, 5 )
enabled = true enabled = true
cast_to = Vector2( -1.5, 0 ) cast_to = Vector2( -1.5, 0 )
collision_mask = 56 collision_mask = 56
@ -4556,14 +4773,14 @@ collision_mask = 56
[node name="RightWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="RightWallRaycast" type="Node2D" parent="WallRaycasts"]
[node name="Right_Wallcast1" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] [node name="Right_Wallcast1" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"]
position = Vector2( 14, -10.686 ) position = Vector2( 12.0551, -5 )
enabled = true enabled = true
exclude_parent = false exclude_parent = false
cast_to = Vector2( 1.5, 0 ) cast_to = Vector2( 1.5, 0 )
collision_mask = 56 collision_mask = 56
[node name="Right_Wallcast2" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] [node name="Right_Wallcast2" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"]
position = Vector2( 14, -1.942 ) position = Vector2( 12.0551, 5 )
enabled = true enabled = true
exclude_parent = false exclude_parent = false
cast_to = Vector2( 1.5, 0 ) cast_to = Vector2( 1.5, 0 )

View File

@ -15,7 +15,8 @@ onready var original_y_zoom = zoom.y
func _ready(): func _ready():
_set_boundaries() _set_boundaries()
func _process(_delta: float) -> void: func _physics_process(_delta: float) -> void:
if(!PlayerData.is_dead):
_adapt_to_movement() _adapt_to_movement()
prev_camera_pos = get_camera_position() prev_camera_pos = get_camera_position()
@ -73,3 +74,6 @@ func _adapt_to_movement():
Tween.EASE_OUT Tween.EASE_OUT
) )
tween.start() tween.start()
func _death_cam():
pass

View File

@ -25,6 +25,7 @@ func _ready():
add_state("fall") add_state("fall")
add_state("wallslide") add_state("wallslide")
state = states.idle state = states.idle
PlayerData.is_dead = false
set_state(states.idle) set_state(states.idle)

View File

@ -6,6 +6,8 @@ signal player_died
#TODO Easteregg pls #TODO Easteregg pls
var score: = 0 setget set_score var score: = 0 setget set_score
var deaths: = 0 setget set_deaths var deaths: = 0 setget set_deaths
var is_dead: = false setget set_dead
func reset() -> void: func reset() -> void:
score = 0 score = 0
@ -18,4 +20,7 @@ func set_score(value: int) -> void:
func set_deaths(value: int) -> void: func set_deaths(value: int) -> void:
deaths = value deaths = value
emit_signal("player_died") #emit_signal("player_died")
func set_dead(value: bool) -> void:
is_dead = value

View File

@ -1,12 +1,17 @@
[gd_scene load_steps=5 format=2] [gd_scene load_steps=8 format=2]
[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-Block.png" type="Texture" id=1] [ext_resource path="res://assets/environment/blocks/DropThrough-Vine-Block.png" type="Texture" id=1]
[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-BlockEnd1.png" type="Texture" id=2]
[ext_resource path="res://assets/environment/blocks/DropThrough-Vine-BlockEnd2.png" type="Texture" id=3]
[sub_resource type="OccluderPolygon2D" id=3] [sub_resource type="ConvexPolygonShape2D" id=3]
polygon = PoolVector2Array( 0, 0, 24, 0, 24, 12, 0, 12 ) points = PoolVector2Array( 24, 0, 0, 0, 0, 0, 24, 0 )
[sub_resource type="ConvexPolygonShape2D" id=4] [sub_resource type="ConvexPolygonShape2D" id=6]
points = PoolVector2Array( 0, 0, 24, 0, 24, 0, 0, 0 ) points = PoolVector2Array( 12, 0, 8, 0, 8, 0, 12, 0 )
[sub_resource type="ConvexPolygonShape2D" id=5]
points = PoolVector2Array( 0, 0, 5, 0, 0, 0, 0, 0 )
[sub_resource type="TileSet" id=2] [sub_resource type="TileSet" id=2]
0/name = "DropThrough-Vine-Block.png 0" 0/name = "DropThrough-Vine-Block.png 0"
@ -16,27 +21,69 @@ points = PoolVector2Array( 0, 0, 24, 0, 24, 0, 0, 0 )
0/region = Rect2( 0, 0, 24, 12 ) 0/region = Rect2( 0, 0, 24, 12 )
0/tile_mode = 0 0/tile_mode = 0
0/occluder_offset = Vector2( 0, 0 ) 0/occluder_offset = Vector2( 0, 0 )
0/occluder = SubResource( 3 )
0/navigation_offset = Vector2( 0, 0 ) 0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 ) 0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) 0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape = SubResource( 4 ) 0/shape = SubResource( 3 )
0/shape_one_way = true 0/shape_one_way = true
0/shape_one_way_margin = 1.0 0/shape_one_way_margin = 1.0
0/shapes = [ { 0/shapes = [ {
"autotile_coord": Vector2( 0, 0 ), "autotile_coord": Vector2( 0, 0 ),
"one_way": true, "one_way": true,
"one_way_margin": 1.0, "one_way_margin": 1.0,
"shape": SubResource( 4 ), "shape": SubResource( 3 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ] } ]
0/z_index = 0 0/z_index = 0
1/name = "DropThrough-Vine-BlockEnd1.png 1"
1/texture = ExtResource( 2 )
1/tex_offset = Vector2( 0, 0 )
1/modulate = Color( 1, 1, 1, 1 )
1/region = Rect2( 0, 0, 12, 12 )
1/tile_mode = 0
1/occluder_offset = Vector2( 0, 0 )
1/navigation_offset = Vector2( 0, 0 )
1/shape_offset = Vector2( 0, 0 )
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
1/shape = SubResource( 6 )
1/shape_one_way = true
1/shape_one_way_margin = 1.0
1/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 6 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
1/z_index = 0
2/name = "DropThrough-Vine-BlockEnd2.png 2"
2/texture = ExtResource( 3 )
2/tex_offset = Vector2( 0, 0 )
2/modulate = Color( 1, 1, 1, 1 )
2/region = Rect2( 0, 0, 12, 12 )
2/tile_mode = 0
2/occluder_offset = Vector2( 0, 0 )
2/navigation_offset = Vector2( 0, 0 )
2/shape_offset = Vector2( 0, 0 )
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
2/shape = SubResource( 5 )
2/shape_one_way = true
2/shape_one_way_margin = 1.0
2/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 5 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
2/z_index = 0
[node name="DropThroughPlatform" type="TileMap"] [node name="DropThroughPlatform" type="TileMap"]
tile_set = SubResource( 2 ) tile_set = SubResource( 2 )
cell_size = Vector2( 24, 24 ) cell_size = Vector2( 12, 12 )
cell_quadrant_size = 8 cell_quadrant_size = 8
cell_custom_transform = Transform2D( 0, 0, 0, 0, 0, 0 ) cell_custom_transform = Transform2D( 0, 0, 0, 0, 0, 0 )
collision_layer = 128 collision_layer = 128
collision_mask = 128 collision_mask = 128
format = 1 format = 1
tile_data = PoolIntArray( -65510, 1, 0, -65509, 0, 0, -65507, 2, 0 )

View File

@ -34,6 +34,7 @@ collision_mask = 41
[node name="CollisionShape2D" type="CollisionShape2D" parent="SpringBody"] [node name="CollisionShape2D" type="CollisionShape2D" parent="SpringBody"]
position = Vector2( 0.00390673, 0 ) position = Vector2( 0.00390673, 0 )
shape = SubResource( 1 ) shape = SubResource( 1 )
one_way_collision = true
[node name="EnteringVelocityDetector" type="Area2D" parent="."] [node name="EnteringVelocityDetector" type="Area2D" parent="."]
position = Vector2( 0, -3.04889 ) position = Vector2( 0, -3.04889 )

View File

@ -1,10 +1,12 @@
[gd_resource type="TileSet" load_steps=10 format=2] [gd_resource type="TileSet" load_steps=14 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-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/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/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/alienShip1innerPartTile/alienShip1InnerPart.tres" type="Texture" id=4]
[ext_resource path="res://assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png" type="Texture" id=5] [ext_resource path="res://assets/environment/blocks/Alien-ship1-Edge-DropThrough-Unanimated.png" type="Texture" id=5]
[ext_resource path="res://assets/environment/blocks/SlopeTest.png" type="Texture" id=6]
[ext_resource path="res://assets/environment/blocks/SlopeTestSlow.png" type="Texture" id=7]
[sub_resource type="ConvexPolygonShape2D" id=7] [sub_resource type="ConvexPolygonShape2D" id=7]
points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 ) points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 )
@ -18,6 +20,12 @@ points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 )
[sub_resource type="ConvexPolygonShape2D" id=10] [sub_resource type="ConvexPolygonShape2D" id=10]
points = PoolVector2Array( 0, 0, 24, 0, 24, 0, 0, 0 ) points = PoolVector2Array( 0, 0, 24, 0, 24, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=11]
points = PoolVector2Array( 24, 0, 24, 0, 24, 24, 0, 24 )
[sub_resource type="ConvexPolygonShape2D" id=12]
points = PoolVector2Array( 24, 12, 48, 0, 48, 24, 0, 24 )
[resource] [resource]
0/name = "alienShip1EdgePartTile.tres 0" 0/name = "alienShip1EdgePartTile.tres 0"
0/texture = ExtResource( 3 ) 0/texture = ExtResource( 3 )
@ -117,3 +125,45 @@ points = PoolVector2Array( 0, 0, 24, 0, 24, 0, 0, 0 )
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ] } ]
4/z_index = 0 4/z_index = 0
5/name = "SlopeTest.png 5"
5/texture = ExtResource( 6 )
5/tex_offset = Vector2( 0, 0 )
5/modulate = Color( 1, 1, 1, 1 )
5/region = Rect2( 0, 0, 24, 24 )
5/tile_mode = 0
5/occluder_offset = Vector2( 0, 0 )
5/navigation_offset = Vector2( 0, 0 )
5/shape_offset = Vector2( 0, 0 )
5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
5/shape = SubResource( 11 )
5/shape_one_way = false
5/shape_one_way_margin = 1.0
5/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 11 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
5/z_index = 0
6/name = "SlopeTestSlow.png 6"
6/texture = ExtResource( 7 )
6/tex_offset = Vector2( 0, 0 )
6/modulate = Color( 1, 1, 1, 1 )
6/region = Rect2( 0, 0, 48, 24 )
6/tile_mode = 0
6/occluder_offset = Vector2( 0, 0 )
6/navigation_offset = Vector2( 0, 0 )
6/shape_offset = Vector2( 0, 0 )
6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
6/shape = SubResource( 12 )
6/shape_one_way = false
6/shape_one_way_margin = 1.0
6/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 12 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
6/z_index = 0

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=2] [gd_scene load_steps=14 format=2]
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1] [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/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2]
@ -11,6 +11,7 @@
[ext_resource path="res://src/Levels/Grass Test Level.tscn" type="PackedScene" id=9] [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/Utilities/GameplaySignalManager.gd" type="Script" id=10]
[ext_resource path="res://src/Contraptions/Platform/DropThroughPlatform.tscn" type="PackedScene" id=11] [ext_resource path="res://src/Contraptions/Platform/DropThroughPlatform.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Contraptions/Platform/Spring.tscn" type="PackedScene" id=12]
[sub_resource type="AnimationNodeStateMachinePlayback" id=4] [sub_resource type="AnimationNodeStateMachinePlayback" id=4]
@ -29,34 +30,9 @@ wait_time = 20.0
position = Vector2( -60, -3.8147e-06 ) position = Vector2( -60, -3.8147e-06 )
scale = Vector2( 0.878906, 0.936025 ) 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"] [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 4 ) 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="Collectibles" type="Node2D" parent="."]
[node name="Coin" parent="Collectibles" instance=ExtResource( 6 )] [node name="Coin" parent="Collectibles" instance=ExtResource( 6 )]
@ -91,7 +67,7 @@ cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 )
collision_layer = 8 collision_layer = 8
collision_mask = 8 collision_mask = 8
format = 1 format = 1
tile_data = PoolIntArray( -786438, -1610612735, 0, -786437, 1610612738, 0, -786436, 1610612738, 0, -786435, 1610612736, 0, -786434, 1610612738, 0, -786433, 1610612738, 0, -851968, 1610612736, 0, -851967, 1610612738, 0, -851966, 1610612738, 0, -851965, 1610612736, 0, -851964, 1610612738, 0, -851963, 1610612738, 0, -851962, 1610612736, 0, -851961, 1610612738, 0, -851960, 1610612738, 0, -851959, 1610612736, 0, -851958, 1610612738, 0, -851957, 1610612738, 0, -851956, 1610612736, 0, -851955, 1610612738, 0, -851954, 1610612738, 0, -851953, 1610612736, 0, -851952, 1610612738, 0, -851951, 1610612738, 0, -851950, 1610612736, 0, -851949, 1610612738, 0, -851948, 1610612738, 0, -851947, 1610612736, 0, -851946, 1610612738, 0, -851945, 1610612738, 0, -851944, 1610612736, 0, -851943, 1610612738, 0, -851942, 1610612738, 0, -851941, 1610612736, 0, -851940, 1610612738, 0, -851939, 1610612738, 0, -851938, 1610612736, 0, -851937, 1610612738, 0, -851936, 1610612738, 0, -851935, 1610612736, 0, -851934, 1610612738, 0, -851933, 1610612738, 0, -851932, 1610612736, 0, -851931, 1610612738, 0, -851930, 1610612738, 0, -851929, 1610612736, 0, -851928, 1610612738, 0, -851927, 1610612738, 0, -851926, 1610612736, 0, -851925, 1610612738, 0, -851924, 1610612738, 0, -851923, 1610612736, 0, -851922, 1610612738, 0, -851921, 1610612738, 0, -851920, 1610612736, 0, -851919, 1610612738, 0, -851918, 1610612738, 0, -851917, 1610612736, 0, -851916, 1610612738, 0, -851915, 1610612738, 0, -851914, 1610612736, 0, -851913, 1610612738, 0, -851912, 1610612738, 0, -851911, 1610612736, 0, -851910, 1610612738, 0, -851909, 1610612738, 0, -851908, 1610612736, 0, -851907, 3, 0, -720902, -1610612734, 0, -786371, -1073741822, 0, -655366, -1610612734, 0, -720835, -1073741824, 0, -589830, -1610612736, 0, -655299, -1073741822, 0, -524294, -1610612734, 0, -589763, -1073741822, 0, -458758, -1610612734, 0, -524227, -1073741824, 0, -393222, -1610612736, 0, -458691, -1073741822, 0, -327686, -1610612734, 0, -393155, -1073741822, 0, -262150, -1610612734, 0, -327619, -1073741824, 0, -196614, -1610612736, 0, -262088, 0, 0, -262087, 2, 0, -262086, 2, 0, -262085, 0, 0, -262084, 2, 0, -262083, 1610612739, 0, -131078, -1610612734, 0, -196568, 0, 0, -196567, 2, 0, -196566, 2, 0, -196565, 0, 0, -196564, 2, 0, -196563, 2, 0, -196562, 0, 0, -196559, 2, 0, -196556, 2, 0, -196555, 0, 0, -196554, 2, 0, -196553, 2, 0, -196552, 1610612739, 0, -196551, 1610612739, 0, -196550, 1610612739, 0, -196549, 1610612739, 0, -196548, 1610612739, 0, -196547, 1610612739, 0, -65542, -1610612734, 0, -131064, 0, 0, -131063, 2, 0, -131059, -1073741822, 0, -131058, -1610612734, 0, -131054, 2, 0, -131053, 2, 0, -131052, 0, 0, -131051, 2, 0, -131032, 1610612739, 0, -131031, 1610612739, 0, -131030, 1610612739, 0, -131029, 1610612739, 0, -131028, 1610612739, 0, -131027, 1610612739, 0, -131026, 1610612739, 0, -131020, 1610612739, 0, -131019, 1610612739, 0, -131018, 1610612739, 0, -131017, 1610612739, 0, -131016, 1, 0, -131015, 1610612739, 0, -131014, 1610612739, 0, -131013, 1, 0, -131012, 1610612739, 0, -131011, 1610612739, 0, -6, -1610612736, 0, -65532, 2, 0, -65531, 0, 0, -65530, 2, 0, -65529, 2, 0, -65528, 1610612739, 0, -65527, 1610612739, 0, -65526, 2, 0, -65519, 0, 0, -65518, 1610612739, 0, -65517, 1610612739, 0, -65516, 1610612739, 0, -65515, 1610612739, 0, -65514, 2, 0, -65501, 2, 0, -65500, 2, 0, -65499, 0, 0, -65498, 2, 0, -65497, 2, 0, -65496, 1, 0, -65495, 1610612739, 0, -65494, 1610612739, 0, -65493, 1, 0, -65492, 1610612739, 0, -65491, 1610612739, 0, -65490, 1, 0, -65489, 2, 0, -65488, 2, 0, -65487, 2, 0, -65486, 2, 0, -65485, 2, 0, -65484, 1610612739, 0, -65483, 1, 0, -65482, 1610612739, 0, -65481, 1610612739, 0, -65480, 1610612739, 0, -65479, 1610612739, 0, -65478, 1610612739, 0, -65477, 1610612739, 0, -65476, 1610612739, 0, -65475, 1610612739, 0, 65530, 3, 0, 65531, 2, 0, 65532, 0, 0, 65533, 2, 0, 65534, 2, 0, 65535, 0, 0, 0, 2, 0, 1, 2, 0, 2, 0, 0, 3, 2, 0, 4, 1610612739, 0, 5, 1610612739, 0, 6, 1610612739, 0, 7, 1610612739, 0, 8, 1610612739, 0, 9, 1610612739, 0, 10, 1610612739, 0, 11, 0, 0, 12, 2, 0, 13, 2, 0, 14, 0, 0, 15, 2, 0, 16, 2, 0, 17, 1610612739, 0, 18, 1610612739, 0, 19, 1610612739, 0, 20, 1610612739, 0, 21, 1610612739, 0, 22, 1610612739, 0, 23, 0, 0, 24, 2, 0, 25, 2, 0, 26, 0, 0, 27, 2, 0, 30, 2, 0, 31, 0, 0, 32, 2, 0, 33, 2, 0, 34, 0, 0, 35, 1610612739, 0, 36, 1610612739, 0, 37, 1610612739, 0, 38, 1610612739, 0, 39, 1610612739, 0, 40, 1610612739, 0, 41, 1610612739, 0, 42, 1610612739, 0, 43, 1610612739, 0, 44, 1610612739, 0, 45, 1610612739, 0, 46, 1610612739, 0, 47, 1610612739, 0, 48, 1610612739, 0, 49, 1610612739, 0, 50, 1610612739, 0, 51, 1610612739, 0, 52, 1610612739, 0, 53, 1610612739, 0, 54, 1610612739, 0, 55, 1610612739, 0, 56, 1, 0, 57, 1610612739, 0, 58, 1610612739, 0, 59, 1, 0, 60, 1610612739, 0, 61, 1610612739, 0 ) tile_data = PoolIntArray( -786438, -1610612735, 0, -786437, 1610612738, 0, -786436, 1610612738, 0, -786435, 1610612736, 0, -786434, 1610612738, 0, -786433, 1610612738, 0, -851968, 1610612736, 0, -851967, 1610612738, 0, -851966, 1610612738, 0, -851965, 1610612736, 0, -851964, 1610612738, 0, -851963, 1610612738, 0, -851962, 1610612736, 0, -851961, 1610612738, 0, -851960, 1610612738, 0, -851959, 1610612736, 0, -851958, 1610612738, 0, -851957, 1610612738, 0, -851956, 1610612736, 0, -851955, 1610612738, 0, -851954, 1610612738, 0, -851953, 1610612736, 0, -851952, 1610612738, 0, -851951, 1610612738, 0, -851950, 1610612736, 0, -851949, 1610612738, 0, -851948, 1610612738, 0, -851947, 1610612736, 0, -851946, 1610612738, 0, -851945, 1610612738, 0, -851944, 1610612736, 0, -851943, 1610612738, 0, -851942, 1610612738, 0, -851941, 1610612736, 0, -851940, 1610612738, 0, -851939, 1610612738, 0, -851938, 1610612736, 0, -851937, 1610612738, 0, -851936, 1610612738, 0, -851935, 1610612736, 0, -851934, 1610612738, 0, -851933, 1610612738, 0, -851932, 1610612736, 0, -851931, 1610612738, 0, -851930, 1610612738, 0, -851929, 1610612736, 0, -851928, 1610612738, 0, -851927, 1610612738, 0, -851926, 1610612736, 0, -851925, 1610612738, 0, -851924, 1610612738, 0, -851923, 1610612736, 0, -851922, 1610612738, 0, -851921, 1610612738, 0, -851920, 1610612736, 0, -851919, 1610612738, 0, -851918, 1610612738, 0, -851917, 1610612736, 0, -851916, 1610612738, 0, -851915, 1610612738, 0, -851914, 1610612736, 0, -851913, 1610612738, 0, -851912, 1610612738, 0, -851911, 1610612736, 0, -851910, 1610612738, 0, -851909, 1610612738, 0, -851908, 1610612736, 0, -851907, 3, 0, -720902, -1610612734, 0, -786371, -1073741822, 0, -655366, -1610612734, 0, -720835, -1073741824, 0, -589830, -1610612736, 0, -655299, -1073741822, 0, -524294, -1610612734, 0, -589763, -1073741822, 0, -458758, -1610612734, 0, -524227, -1073741824, 0, -393222, -1610612736, 0, -458691, -1073741822, 0, -327686, -1610612734, 0, -393155, -1073741822, 0, -262150, -1610612734, 0, -327619, -1073741824, 0, -196614, -1610612736, 0, -262088, 0, 0, -262087, 2, 0, -262086, 2, 0, -262085, 0, 0, -262084, 2, 0, -262083, 1610612739, 0, -131078, -1610612734, 0, -196568, 0, 0, -196567, 2, 0, -196566, 2, 0, -196565, 0, 0, -196564, 2, 0, -196563, 2, 0, -196562, 0, 0, -196559, 2, 0, -196556, 2, 0, -196555, 0, 0, -196554, 2, 0, -196553, 2, 0, -196552, 1610612739, 0, -196551, 1610612739, 0, -196550, 1610612739, 0, -196549, 1610612739, 0, -196548, 1610612739, 0, -196547, 1610612739, 0, -65542, -1610612734, 0, -131066, 6, 0, -131064, 0, 0, -131063, 2, 0, -131059, -1073741822, 0, -131058, -1610612734, 0, -131054, 2, 0, -131053, 2, 0, -131052, 0, 0, -131051, 2, 0, -131032, 1610612739, 0, -131031, 1610612739, 0, -131030, 1610612739, 0, -131029, 1610612739, 0, -131028, 1610612739, 0, -131027, 1610612739, 0, -131026, 1610612739, 0, -131020, 1610612739, 0, -131019, 1610612739, 0, -131018, 1610612739, 0, -131017, 1610612739, 0, -131016, 1, 0, -131015, 1610612739, 0, -131014, 1610612739, 0, -131013, 1, 0, -131012, 1610612739, 0, -131011, 1610612739, 0, -6, -1610612736, 0, -65533, 5, 0, -65532, 2, 0, -65531, 0, 0, -65530, 2, 0, -65529, 2, 0, -65528, 1610612739, 0, -65527, 1610612739, 0, -65526, 2, 0, -65519, 0, 0, -65518, 1610612739, 0, -65517, 1610612739, 0, -65516, 1610612739, 0, -65515, 1610612739, 0, -65514, 2, 0, -65501, 2, 0, -65500, 2, 0, -65499, 0, 0, -65498, 2, 0, -65497, 2, 0, -65496, 1, 0, -65495, 1610612739, 0, -65494, 1610612739, 0, -65493, 1, 0, -65492, 1610612739, 0, -65491, 1610612739, 0, -65490, 1, 0, -65489, 2, 0, -65488, 2, 0, -65487, 2, 0, -65486, 2, 0, -65485, 2, 0, -65484, 1610612739, 0, -65483, 1, 0, -65482, 1610612739, 0, -65481, 1610612739, 0, -65480, 1610612739, 0, -65479, 1610612739, 0, -65478, 1610612739, 0, -65477, 1610612739, 0, -65476, 1610612739, 0, -65475, 1610612739, 0, 65530, 3, 0, 65531, 2, 0, 65532, 0, 0, 65533, 2, 0, 65534, 2, 0, 65535, 0, 0, 0, 2, 0, 1, 2, 0, 2, 0, 0, 3, 2, 0, 4, 1610612739, 0, 5, 1610612739, 0, 6, 1610612739, 0, 7, 1610612739, 0, 8, 1610612739, 0, 9, 1610612739, 0, 10, 1610612739, 0, 11, 0, 0, 12, 2, 0, 13, 2, 0, 14, 0, 0, 15, 2, 0, 16, 2, 0, 17, 1610612739, 0, 18, 1610612739, 0, 19, 1610612739, 0, 20, 1610612739, 0, 21, 1610612739, 0, 22, 1610612739, 0, 23, 0, 0, 24, 2, 0, 25, 2, 0, 26, 0, 0, 27, 2, 0, 30, 2, 0, 31, 0, 0, 32, 2, 0, 33, 2, 0, 34, 0, 0, 35, 1610612739, 0, 36, 1610612739, 0, 37, 1610612739, 0, 38, 1610612739, 0, 39, 1610612739, 0, 40, 1610612739, 0, 41, 1610612739, 0, 42, 1610612739, 0, 43, 1610612739, 0, 44, 1610612739, 0, 45, 1610612739, 0, 46, 1610612739, 0, 47, 1610612739, 0, 48, 1610612739, 0, 49, 1610612739, 0, 50, 1610612739, 0, 51, 1610612739, 0, 52, 1610612739, 0, 53, 1610612739, 0, 54, 1610612739, 0, 55, 1610612739, 0, 56, 1, 0, 57, 1610612739, 0, 58, 1610612739, 0, 59, 1, 0, 60, 1610612739, 0, 61, 1610612739, 0 )
[node name="Spikes" parent="TileMap" instance=ExtResource( 3 )] [node name="Spikes" parent="TileMap" instance=ExtResource( 3 )]
position = Vector2( 708, 12 ) position = Vector2( 708, 12 )
@ -112,10 +88,10 @@ position = Vector2( 1212, -36 )
position = Vector2( 1236, -36 ) position = Vector2( 1236, -36 )
[node name="Spikes3" parent="TileMap" instance=ExtResource( 3 )] [node name="Spikes3" parent="TileMap" instance=ExtResource( 3 )]
position = Vector2( 684, 12 ) position = Vector2( 8, -16 )
[node name="DropThroughPlatform" parent="." instance=ExtResource( 11 )] [node name="DropThroughPlatform" parent="." instance=ExtResource( 11 )]
tile_data = PoolIntArray( -131072, 0, 0, -65512, 0, 0, -65511, 0, 0 ) tile_data = PoolIntArray( )
[node name="TreeWhyButtons" parent="." instance=ExtResource( 8 )] [node name="TreeWhyButtons" parent="." instance=ExtResource( 8 )]
position = Vector2( -108, -7 ) position = Vector2( -108, -7 )
@ -144,6 +120,9 @@ next_scene = ExtResource( 9 )
[node name="GameplaySignalManager" type="Node2D" parent="."] [node name="GameplaySignalManager" type="Node2D" parent="."]
script = ExtResource( 10 ) script = ExtResource( 10 )
[node name="Spring" parent="." instance=ExtResource( 12 )]
position = Vector2( 272, -72 )
[connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"] [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="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="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"]