feat: new platform&deco tiles, fix bounce super jump, frog anim fix, blobby anim fix

This commit is contained in:
Jakob Feldmann 2023-07-04 12:56:42 +02:00
parent 93578d4896
commit f46808740c
34 changed files with 1526 additions and 1331 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

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

@ -5,3 +5,4 @@
[resource]
background_mode = 2
background_sky = SubResource( 1 )
tonemap_mode = 2

View File

@ -96,6 +96,10 @@ config/name="Blobby"
run/main_scene="res://src/UserInterface/Screens/MainMenu/MainScreen.tscn"
config/icon="res://icon.png"
[audio]
default_bus_layout="res://src/Sounds/default_bus_layout.tres"
[autoload]
GlobalState="*res://src/Autoload/GlobalState.tscn"

View File

@ -10,14 +10,15 @@ const PhysicsConst = preload("res://src/Utilities/Physic/PhysicsConst.gd")
const FLOOR_NORMAL := Vector2.UP
var stomp_feedback := 1400
var reset_stomp_time := 0.108
var stomp_time := 0.108
var stomp_feedback := 1400 * 60
var stomp_time := 0.2
var init_stomp_time := 0.2
var inair_velocity := 21
var wallslide_threshold := 1000
var base_floor_friction := 0.5
var initial_velocity_dependence := 0.7
var floor_friction := base_floor_friction
# TODO Mixing Vectors and ints is questionable
var max_velocity := {
"walk": 120, "run": 160, "jump": Vector2(120, 420), "fall": Vector2(120, 420), "walljump": 200, "idle": 12000, "duck": 160
}
@ -30,7 +31,7 @@ var init_acceleration_force := {
# newtonmeters is the unit
var acceleration_force := {
"walk": Vector2(1800, 1350),
"fall": Vector2(1800, 0),
"fall": Vector2(1800, 1050),
"jump": Vector2(1800, 0),
"idle": Vector2(1800, 1233),
"duck": Vector2(500, 1300),

View File

@ -260,11 +260,13 @@ func calculate_jump_velocity(
#TODO Single out stomping and make betta
#TODO too much force intially and too high with frog jump
if stomping:
additive_jump_force += stomp_feedback / delta
# additive_jump_force += stomp_feedback
stomp_time -= delta
# print(stomp_time)
if stomp_time <= 0:
stomp_time = reset_stomp_time
# print("stomping over")
stomping = false
stomp_time = init_stomp_time
if state != "jump":
linear_velocity.y = PhysicsFunc.two_step_euler(
@ -273,6 +275,8 @@ func calculate_jump_velocity(
mass,
delta
)
# print(acceleration_force[state].y)
# print(linear_velocity.y)
if !Input.is_action_pressed("jump") && !stomping:
# Smooth transition from jumping to falling
@ -301,6 +305,7 @@ func calculate_jump_velocity(
if is_correct_airstrafe_input():
linear_velocity = execute_airstrafe(linear_velocity, delta, direction)
# print(linear_velocity.y)
return linear_velocity
@ -412,6 +417,7 @@ func calculate_slope_rotation(onfloor: bool) -> float:
# TODO could be expanded with a parameter about what got stomped
func stomp() -> void:
# print("stomping")
stomping = true
# TOD lose_power_up function

View File

@ -1173,7 +1173,7 @@ tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 12.5424, 10.5016 ) ]
"values": [ Vector2( 12, 10.502 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("../BlobbySkin/CollisionPolygon2D:position")
@ -1197,7 +1197,7 @@ tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 11, 10.525 ) ]
"values": [ Vector2( 12, 10.525 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("../BlobbyBody:position")
@ -1209,7 +1209,7 @@ tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0.5, -10.481 ) ]
"values": [ Vector2( 0, -10.481 ) ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast1:position")
@ -1221,7 +1221,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -10.5, -13 ) ]
"values": [ Vector2( -12, -13 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast2:position")
@ -1233,7 +1233,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -10.5, -5 ) ]
"values": [ Vector2( -12, -5 ) ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast1:position")
@ -1245,7 +1245,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 11.5, -13 ) ]
"values": [ Vector2( 12, -13 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast2:position")
@ -1257,7 +1257,7 @@ tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 11.5, -5 ) ]
"values": [ Vector2( 12, -5 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath(".:offset")
@ -1310,7 +1310,7 @@ tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 12.5424, 10.5016 ) ]
"values": [ Vector2( 12, 10.502 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("../BlobbySkin/CollisionPolygon2D:position")
@ -1334,7 +1334,7 @@ tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 11, 10.525 ) ]
"values": [ Vector2( 12, 10.525 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("../BlobbyBody:position")
@ -1346,7 +1346,7 @@ tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -0.5, -10.481 ) ]
"values": [ Vector2( 0, -10.481 ) ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast1:position")
@ -1358,7 +1358,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -11, -13 ) ]
"values": [ Vector2( -12, -13 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast2:position")
@ -1370,7 +1370,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -11.5, -5 ) ]
"values": [ Vector2( -12, -5 ) ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast1:position")
@ -1382,7 +1382,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 10.5, -13 ) ]
"values": [ Vector2( 12, -13 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast2:position")
@ -1394,7 +1394,7 @@ tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 10.5, -5 ) ]
"values": [ Vector2( 12, -5 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath(".:offset")
@ -1494,7 +1494,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -13.0423, -10.6856 ) ]
"values": [ Vector2( -13, -10.686 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast2:position")
@ -1506,7 +1506,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -13.0423, -1.94163 ) ]
"values": [ Vector2( -13, -1.942 ) ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast2:position")
@ -1518,7 +1518,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 13.0235, -1.94163 ) ]
"values": [ Vector2( 13, -1.942 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast1:position")
@ -1530,7 +1530,7 @@ tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 13.0235, -10.6856 ) ]
"values": [ Vector2( 13, -10.686 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath(".:offset")
@ -1855,7 +1855,7 @@ tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 13.0235, -10.6856 ) ]
"values": [ Vector2( 12, -10.686 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast2:position")
@ -1867,7 +1867,7 @@ tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 13.0235, -1.94163 ) ]
"values": [ Vector2( 12, -1.942 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast2:position")
@ -1891,7 +1891,7 @@ tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -13.0423, -10.6856 ) ]
"values": [ Vector2( -12, -10.686 ) ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("../BlobbySkin/CollisionPolygon2D:shape:extents")
@ -1903,7 +1903,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 12.9698, 8.9748 ) ]
"values": [ Vector2( 12, 8.975 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("../BlobbySkin/CollisionPolygon2D:position")
@ -1927,7 +1927,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 12.971, 8.99662 ) ]
"values": [ Vector2( 12, 8.997 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("../BlobbyBody:position")
@ -1992,7 +1992,7 @@ tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 13.0235, -10.6856 ) ]
"values": [ Vector2( 12, -10.686 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast2:position")
@ -2004,7 +2004,7 @@ tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 13.0235, -1.94163 ) ]
"values": [ Vector2( 12, -1.942 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast2:position")
@ -2016,7 +2016,7 @@ tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -13.0423, -1.94163 ) ]
"values": [ Vector2( -12, -1.942 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast1:position")
@ -2028,7 +2028,7 @@ tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -13.0423, -10.6856 ) ]
"values": [ Vector2( -12, -10.686 ) ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("../BlobbySkin/CollisionPolygon2D:shape:extents")
@ -2040,7 +2040,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 12.9698, 8.9748 ) ]
"values": [ Vector2( 12, 8.975 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("../BlobbySkin/CollisionPolygon2D:position")
@ -2064,7 +2064,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 12.971, 8.99662 ) ]
"values": [ Vector2( 12, 8.997 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("../BlobbyBody:position")
@ -2140,7 +2140,7 @@ tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 11.9889, 9.98094 ) ]
"values": [ Vector2( 12, 9.981 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("../BlobbyBody:position")
@ -2277,7 +2277,7 @@ tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 11.9889, 9.98094 ) ]
"values": [ Vector2( 12, 9.981 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("../BlobbyBody:position")
@ -2425,7 +2425,7 @@ tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 10.0201, 10.5337 ) ]
"values": [ Vector2( 11, 10.534 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("../BlobbyBody:position")
@ -2449,7 +2449,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -10.012, -12.8494 ) ]
"values": [ Vector2( -11, -12.849 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast2:position")
@ -2461,7 +2461,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -10.012, -5.91313 ) ]
"values": [ Vector2( -11, -5.913 ) ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast1:position")
@ -2562,7 +2562,7 @@ tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 10.0201, 10.5337 ) ]
"values": [ Vector2( 11, 10.534 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("../BlobbyBody:position")
@ -2586,7 +2586,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -10.012, -12.8494 ) ]
"values": [ Vector2( -11, -12.849 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("../WallRaycasts/LeftWallRaycast/Left_Wallcast2:position")
@ -2598,7 +2598,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -10.012, -5.91313 ) ]
"values": [ Vector2( -11, -5.913 ) ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast1:position")
@ -2610,7 +2610,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 10.0805, -12.8494 ) ]
"values": [ Vector2( 11, -12.849 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("../WallRaycasts/RightWallRaycast/Right_Wallcast2:position")
@ -2622,7 +2622,7 @@ tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 10.0805, -5.91313 ) ]
"values": [ Vector2( 11, -5.913 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath(".:offset")
@ -4362,21 +4362,18 @@ collision_mask = 40
[node name="SlopeRaycastLeft" type="RayCast2D" parent="."]
visible = false
position = Vector2( -9, 0 )
enabled = true
cast_to = Vector2( 0, 24 )
collision_mask = 8
[node name="SlopeRaycast" type="RayCast2D" parent="."]
unique_name_in_owner = true
visible = false
enabled = true
cast_to = Vector2( 0, 16 )
collision_mask = 8
[node name="SlopeRaycastRight" type="RayCast2D" parent="."]
visible = false
position = Vector2( 10, 0 )
enabled = true
cast_to = Vector2( 0, 24 )
collision_mask = 8

View File

@ -154,7 +154,7 @@ func search_next_target():
if(target != null && !weakref(target).get_ref()):
return
detect_food()
if(food_target == null):
if(food_target == null && is_bound):
detect_player()
@ -246,7 +246,7 @@ func detect_player() -> void:
func sleeping() -> Vector2:
jump_timer.stop()
detect_player()
# detect_player()
return velocity
@ -356,24 +356,25 @@ func consider_jump_landing_space(v: Vector2) -> Vector2:
collider = check_feeler(Vector2(jump_distance * get_facing_direction(), - jump_height/2))
if((!is_jump_path_safe(v, global_position) || collider != null) && can_reverse_facing_direction()):
# Can be printed when frog would jump into a wall too
print("no safe landing space found")
print("at wall or no safe landing spot")
return Vector2(0,0)
return v
func consider_jumping_on_top() -> Vector2:
var collider = check_feeler(Vector2(42 * get_facing_direction(),0))
# 0 just for tile coordinate calculation
var facing = 0 if get_facing_direction() >= 0 else - 1
if (collider == null):
return Vector2(0,0)
var local_position = tilemap.to_local(feeler_raycast.get_collision_point())
var map_position = tilemap.world_to_map(local_position)
var tile_position = Vector2(map_position.x + facing, map_position.y)
var tile_position = Vector2(map_position.x + facing, map_position.y - 1)
# TODO Here the climb height of frog is limited to one constantly
var cell_id = tilemap.get_cell(tile_position.x, tile_position.y - 2)
var cell_id = tilemap.get_cell(tile_position.x, tile_position.y - 1)
if (cell_id != -1 &&
#TODO 9 is the navigation tile, but thats subject to change!
cell_id != 8):
#TODO 0 is the navigation tile, but thats subject to change!
cell_id != 7):
return Vector2(0,0)
var tile_upper_left_corner = tilemap.to_global(tilemap.map_to_world(tile_position))
var tile_upper_right_corner = Vector2(tile_upper_left_corner.x + tilemap.cell_size.x, tile_upper_left_corner.y)
@ -391,7 +392,8 @@ func consider_jumping_on_top() -> Vector2:
if(abs(rad2deg(jump_angle)) < 78):
return correct_jump_direction(velocity_for_jump_distance(default_jump_distance/2, abs(deg2rad(80))))
else:
return velocity_for_jump_distance(10, abs(deg2rad(45))) * -1 * facing
var v = velocity_for_jump_distance(block_size/1.5, abs(deg2rad(45)))
return Vector2(v.x * -1 * get_facing_direction(), v.y)
# Tries to shorten the jump, so that it lands in a tiles center

View File

@ -108,7 +108,7 @@ tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"update": 1,
"values": [ Vector2( 1, 1 ) ]
}
@ -138,7 +138,7 @@ tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"update": 1,
"values": [ Vector2( -1, 1 ) ]
}
@ -280,7 +280,7 @@ tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"update": 1,
"values": [ Vector2( 1, 1 ) ]
}
@ -310,7 +310,7 @@ tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"update": 1,
"values": [ Vector2( -1, 1 ) ]
}
@ -412,14 +412,14 @@ states/idleHappy/position = Vector2( -58.7619, 98.0433 )
states/idleMean/node = SubResource( 20 )
states/idleMean/position = Vector2( 451.952, 98.0432 )
states/liftOff/node = SubResource( 23 )
states/liftOff/position = Vector2( 184, -12 )
states/liftOff/position = Vector2( 184.223, -12 )
states/midJumping/node = SubResource( 26 )
states/midJumping/position = Vector2( 184.091, -141 )
states/sleeping/node = SubResource( 54 )
states/sleeping/position = Vector2( 176.896, 205.619 )
states/sleeping/position = Vector2( 177.848, 205.619 )
transitions = [ "idleHappy", "liftOff", SubResource( 27 ), "liftOff", "midJumping", SubResource( 28 ), "idleMean", "liftOff", SubResource( 29 ), "midJumping", "liftOff", SubResource( 30 ), "liftOff", "idleMean", SubResource( 31 ), "liftOff", "idleHappy", SubResource( 32 ), "idleHappy", "sleeping", SubResource( 55 ), "idleMean", "sleeping", SubResource( 56 ), "sleeping", "idleHappy", SubResource( 57 ), "sleeping", "idleMean", SubResource( 58 ) ]
start_node = "idleHappy"
graph_offset = Vector2( -375, -158 )
graph_offset = Vector2( -379, -204 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=11]
@ -427,15 +427,15 @@ graph_offset = Vector2( -375, -158 )
extents = Vector2( 12, 9 )
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 12, 1.5 )
extents = Vector2( 11, 1.875 )
[sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 18.2143, 13.5955 )
[node name="WhatAreFrog" type="KinematicBody2D"]
collision_layer = 2
collision_mask = 57
collision/safe_margin = 0.001
collision_mask = 185
collision/safe_margin = 0.002
script = ExtResource( 2 )
[node name="Statemachine" type="Node2D" parent="."]
@ -494,10 +494,10 @@ active = true
root_motion_track = NodePath(".:frame")
parameters/playback = SubResource( 11 )
parameters/idleHappy/blend_position = 1.0
parameters/idleMean/blend_position = 1.0
parameters/idleMean/blend_position = 1.2434
parameters/liftOff/blend_position = 1.0
parameters/midJumping/blend_position = 1.0
parameters/sleeping/blend_position = 1.0
parameters/sleeping/blend_position = -0.00214911
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
position = Vector2( 954, 0 )
@ -509,7 +509,7 @@ physics_process_parent = true
[node name="FeelerRayCast" type="RayCast2D" parent="."]
enabled = true
cast_to = Vector2( 0, -1 )
collision_mask = 280
collision_mask = 281
collide_with_areas = true
[node name="Orientation" type="RayCast2D" parent="."]
@ -521,14 +521,14 @@ collide_with_bodies = false
position = Vector2( -10, 6 )
enabled = true
cast_to = Vector2( -5, 0 )
collision_mask = 40
collision_mask = 41
collide_with_areas = true
[node name="Right_Wallcast" type="RayCast2D" parent="."]
position = Vector2( 10, 6 )
enabled = true
cast_to = Vector2( 5, 0 )
collision_mask = 40
collision_mask = 41
collide_with_areas = true
[node name="VisionRayCast" type="RayCast2D" parent="."]
@ -556,7 +556,7 @@ input_pickable = false
monitorable = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="StompDetector"]
position = Vector2( 0, -1 )
position = Vector2( 0, -0.875 )
shape = SubResource( 2 )
[node name="EnemySkin" type="Area2D" parent="."]

View File

@ -17,6 +17,7 @@ func _ready() -> void:
else:
printerr("StateMachine -> State: " + state + " has no matching method in parent.")
push_error("StateMachine -> State: " + state + " has no matching method in parent.")
# _animation_logic()
# Game logic consequences of state
@ -28,6 +29,7 @@ func _state_logic(delta):
func _get_transition(_delta):
parent.get_node("StateLabel").text = self.state
_set_blendspaces_direction()
_animation_logic()
var new_state
if parent.target == null:
@ -49,16 +51,21 @@ func _exit_state(_previous_state, _new_state):
pass
func _animation_logic():
_set_blendspaces_direction()
var animation = "sleeping"
if parent.is_on_floor():
if(parent.is_hurt):
anim_state_playback.travel("sleeping")
animation = "sleeping"
elif (parent.is_bound):
anim_state_playback.travel("idleMean")
animation = "idleMean"
else:
anim_state_playback.travel("idleHappy")
else:
anim_state_playback.travel("midJumping")
animation = "idleHappy"
# The frog is lifted from the ground slightly when blobby stands on him for whatever reason
elif state != "sleeping":
animation = "midJumping"
if anim_state_playback.get_current_node() != animation:
print(anim_state_playback.get_current_node())
print(animation)
anim_state_playback.travel(animation)
func _set_blendspaces_direction():
@ -69,3 +76,4 @@ func _set_blendspaces_direction():
anim_tree.set("parameters/idleMean/blend_position", value)
anim_tree.set("parameters/liftOff/blend_position", value)
anim_tree.set("parameters/midJumping/blend_position", value)
anim_tree.set("parameters/sleeping/blend_position", value)

View File

@ -0,0 +1,135 @@
[gd_resource type="TileSet" load_steps=14 format=2]
[ext_resource path="res://assets/contraption/drop-through-platform.png" type="Texture" id=1]
[sub_resource type="ConvexPolygonShape2D" id=1]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=2]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=3]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=4]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=5]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=6]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=7]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=8]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=9]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=10]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=11]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[sub_resource type="ConvexPolygonShape2D" id=12]
points = PoolVector2Array( 0, 0, 16, 0, 16, 0, 0, 0 )
[resource]
2/name = "drop-through-platform.png 2"
2/texture = ExtResource( 1 )
2/tex_offset = Vector2( 0, 0 )
2/modulate = Color( 1, 1, 1, 1 )
2/region = Rect2( 16, 0, 192, 16 )
2/tile_mode = 2
2/autotile/icon_coordinate = Vector2( 0, 0 )
2/autotile/tile_size = Vector2( 16, 16 )
2/autotile/spacing = 0
2/autotile/occluder_map = [ ]
2/autotile/navpoly_map = [ ]
2/autotile/priority_map = [ ]
2/autotile/z_index_map = [ ]
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( 1 )
2/shape_one_way = true
2/shape_one_way_margin = 1.0
2/shapes = [ {
"autotile_coord": Vector2( 2, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 1 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 1, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 2 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 3 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 3, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 4 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 4, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 5 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 5, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 6 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 7 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 8 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 8, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 9 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 9, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 10 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 10, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 11 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 11, 0 ),
"one_way": true,
"one_way_margin": 1.0,
"shape": SubResource( 12 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
2/z_index = 0

View File

@ -1,332 +0,0 @@
[gd_resource type="TileSet" load_steps=32 format=2]
[ext_resource path="res://assets/environment/blocks/basic_tileset_blobb-jakob-remix.png" type="Texture" id=1]
[sub_resource type="ConvexPolygonShape2D" id=6]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=7]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=8]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=9]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=10]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=11]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=12]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=13]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=14]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=15]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=16]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=17]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=18]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=19]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=20]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=21]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=22]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=23]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=24]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=25]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=26]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=27]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=28]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=29]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=30]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=31]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=32]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=33]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=34]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="NavigationPolygon" id=35]
vertices = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
polygons = [ PoolIntArray( 0, 1, 2, 3 ) ]
outlines = [ PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) ]
[resource]
0/name = "basic_tileset_blobb-jakob-remix.png 0"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 0, 0, 128, 128 )
0/tile_mode = 1
0/autotile/bitmask_mode = 0
0/autotile/bitmask_flags = [ Vector2( 0, 1 ), 1, Vector2( 0, 6 ), 321, Vector2( 1, 0 ), 256, Vector2( 1, 6 ), 320, Vector2( 2, 0 ), 320, Vector2( 3, 0 ), 64, Vector2( 4, 0 ), 260, Vector2( 5, 0 ), 65, Vector2( 5, 4 ), 324, Vector2( 5, 5 ), 321, Vector2( 6, 0 ), 4, Vector2( 6, 5 ), 64, Vector2( 7, 0 ), 5, Vector2( 7, 5 ), 65 ]
0/autotile/icon_coordinate = Vector2( 6, 5 )
0/autotile/tile_size = Vector2( 16, 16 )
0/autotile/spacing = 0
0/autotile/occluder_map = [ ]
0/autotile/navpoly_map = [ ]
0/autotile/priority_map = [ ]
0/autotile/z_index_map = [ ]
0/occluder_offset = Vector2( 0, 0 )
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( 6 )
0/shape_one_way = false
0/shape_one_way_margin = 1.0
0/shapes = [ {
"autotile_coord": Vector2( 1, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 6 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 7 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 8 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 9 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 3, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 10 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 3, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 11 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 4, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 12 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 5, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 13 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 5, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 14 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 5 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 15 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 16 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 17 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 5 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 18 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 1, 6 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 19 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
0/z_index = 0
1/name = "basic_tileset_blobb-jakob-remix.png 1"
1/texture = ExtResource( 1 )
1/tex_offset = Vector2( 0, 0 )
1/modulate = Color( 1, 1, 1, 1 )
1/region = Rect2( 0, 0, 128, 128 )
1/tile_mode = 2
1/autotile/icon_coordinate = Vector2( 5, 3 )
1/autotile/tile_size = Vector2( 16, 16 )
1/autotile/spacing = 0
1/autotile/occluder_map = [ ]
1/autotile/navpoly_map = [ ]
1/autotile/priority_map = [ ]
1/autotile/z_index_map = [ ]
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( 20 )
1/shape_one_way = false
1/shape_one_way_margin = 1.0
1/shapes = [ {
"autotile_coord": Vector2( 1, 6 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 20 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 1, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 21 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 22 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 3, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 23 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 4, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 24 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 5, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 25 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 5 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 26 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 5 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 27 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 28 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 29 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 30 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 31 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 32 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 33 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 5 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 34 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
1/z_index = 0
2/name = "basic_tileset_blobb-jakob-remix.png 2"
2/texture = ExtResource( 1 )
2/tex_offset = Vector2( 0, 0 )
2/modulate = Color( 1, 1, 1, 1 )
2/region = Rect2( 0, 0, 16, 16 )
2/tile_mode = 0
2/occluder_offset = Vector2( 0, 0 )
2/navigation_offset = Vector2( 0, 0 )
2/navigation = SubResource( 35 )
2/shape_offset = Vector2( 0, 0 )
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
2/shape_one_way = false
2/shape_one_way_margin = 0.0
2/shapes = [ ]
2/z_index = 0

View File

@ -1,12 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://assets/environment/background/background.png" type="Texture" id=1]
[node name="Simple Background" type="CanvasLayer"]
[node name="background" type="TextureRect" parent="."]
margin_right = 426.667
margin_bottom = 240.0
texture = ExtResource( 1 )
expand = true
stretch_mode = 1

View File

@ -1,30 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://assets/environment/decor/straight_straw.png" type="Texture" id=1]
[node name="GrassWithBones" type="Node2D"]
[node name="Polygon2D" type="Polygon2D" parent="."]
offset = Vector2( -6.5, -12.5 )
texture = ExtResource( 1 )
skeleton = NodePath("../Skeleton2D")
polygon = PoolVector2Array( 4.166, 12.5, 4.166, 7.25, 4.166, 1.5, 9.103, 1.5, 9.10325, 7.25, 9.103, 12.5 )
uv = PoolVector2Array( 4.166, 12.5, 4.166, 7.25, 4.166, 1.5, 9.103, 1.5, 9.10325, 7.25, 9.103, 12.5 )
polygons = [ PoolIntArray( 5, 0, 1, 2, 3, 4 ) ]
bones = [ "Base", PoolRealArray( 1, 0.34, 0, 0, 0, 1 ), "Base/Mid", PoolRealArray( 0.66, 1, 0, 0.5, 1, 0.83 ), "Base/Mid/Top", PoolRealArray( 0.49, 0.32, 1, 1, 0.49, 0.49 ) ]
[node name="Skeleton2D" type="Skeleton2D" parent="."]
[node name="Base" type="Bone2D" parent="Skeleton2D"]
rest = Transform2D( 1, 0, 0, 1, 0, 0 )
default_length = 7.0
[node name="Mid" type="Bone2D" parent="Skeleton2D/Base"]
rest = Transform2D( 1, 0, 0, 1, 0, 0 )
default_length = 7.0
[node name="Top" type="Bone2D" parent="Skeleton2D/Base/Mid"]
position = Vector2( 0, -5 )
rotation = -1.5708
rest = Transform2D( 2.22127e-06, -1, 1, 2.22127e-06, 0, -5 )
default_length = 4.0

View File

@ -0,0 +1,178 @@
[gd_resource type="TileSet" load_steps=18 format=2]
[ext_resource path="res://assets/environment/blocks/BasicTileSet.png" type="Texture" id=2]
[sub_resource type="NavigationPolygon" id=21]
vertices = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
polygons = [ PoolIntArray( 0, 1, 2, 3 ) ]
outlines = [ PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) ]
[sub_resource type="ConvexPolygonShape2D" id=1]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=2]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=3]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=4]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=5]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=6]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=7]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=8]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=9]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=26]
points = PoolVector2Array( 0, 0, 0, 0, 16, 0, 16, 11.0125, 2.92126, 8.9875 )
[sub_resource type="ConvexPolygonShape2D" id=27]
points = PoolVector2Array( 0, 0.03125, 0, 0, 16, 0, 16, 10.9094, 0, 10.9688 )
[sub_resource type="ConvexPolygonShape2D" id=28]
points = PoolVector2Array( 0, 0, 16, 0, 12.9719, 8.84687, 0, 10.9719 )
[sub_resource type="ConvexPolygonShape2D" id=29]
points = PoolVector2Array( 1.97188, 14.1594, 0, 0, 15.9719, 0, 16, 16 )
[sub_resource type="ConvexPolygonShape2D" id=30]
points = PoolVector2Array( 0, 0, 16, 0, 14.0969, 14.1469, 0, 16 )
[sub_resource type="NavigationPolygon" id=31]
vertices = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
polygons = [ PoolIntArray( 0, 1, 2, 3 ) ]
outlines = [ PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) ]
[resource]
5/name = "Green House Tiles"
5/texture = ExtResource( 2 )
5/tex_offset = Vector2( 0, 0 )
5/modulate = Color( 1, 1, 1, 1 )
5/region = Rect2( 0, 0, 176, 160 )
5/tile_mode = 2
5/autotile/icon_coordinate = Vector2( 5, 6 )
5/autotile/tile_size = Vector2( 16, 16 )
5/autotile/spacing = 0
5/autotile/occluder_map = [ ]
5/autotile/navpoly_map = [ Vector2( 0, 0 ), SubResource( 21 ) ]
5/autotile/priority_map = [ ]
5/autotile/z_index_map = [ ]
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( 1 )
5/shape_one_way = false
5/shape_one_way_margin = 1.0
5/shapes = [ {
"autotile_coord": Vector2( 1, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 1 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 2 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 3, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 3 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 4, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 4 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 5, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 5 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 6 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 7 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 8, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 8 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 10, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 9 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 6, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 26 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 7, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 27 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 8, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 28 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 9, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 29 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 30 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
5/z_index = 0
7/name = "Navigation Tile"
7/texture = ExtResource( 2 )
7/tex_offset = Vector2( 0, 0 )
7/modulate = Color( 1, 1, 1, 1 )
7/region = Rect2( 0, 0, 16, 16 )
7/tile_mode = 0
7/occluder_offset = Vector2( 0, 0 )
7/navigation_offset = Vector2( 0, 0 )
7/navigation = SubResource( 31 )
7/shape_offset = Vector2( 0, 0 )
7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
7/shape_one_way = false
7/shape_one_way_margin = 0.0
7/shapes = [ ]
7/z_index = 0

View File

@ -0,0 +1,26 @@
[gd_resource type="TileSet" load_steps=2 format=2]
[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=1]
[resource]
0/name = "platform-plants.png 0"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 16, 0, 256, 16 )
0/tile_mode = 2
0/autotile/icon_coordinate = Vector2( 5, 0 )
0/autotile/tile_size = Vector2( 16, 16 )
0/autotile/spacing = 0
0/autotile/occluder_map = [ ]
0/autotile/navpoly_map = [ ]
0/autotile/priority_map = [ ]
0/autotile/z_index_map = [ ]
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape_one_way = false
0/shape_one_way_margin = 0.0
0/shapes = [ ]
0/z_index = 0

File diff suppressed because one or more lines are too long

View File

@ -44,10 +44,10 @@ unique_name_in_owner = true
drag_margin_bottom = 0.3
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 5
frame = 8
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 10
frame = 13
[node name="Blobby" parent="." instance=ExtResource( 9 )]
unique_name_in_owner = true
@ -228,19 +228,19 @@ position = Vector2( 756, -15 )
z_index = -1
[node name="AnimatedSprite" parent="Coin" index="2"]
frame = 5
frame = 154
[node name="Coin2" parent="." instance=ExtResource( 11 )]
position = Vector2( 744, -120 )
[node name="AnimatedSprite" parent="Coin2" index="2"]
frame = 250
frame = 85
[node name="Coin3" parent="." instance=ExtResource( 11 )]
position = Vector2( 1320, -282 )
[node name="AnimatedSprite" parent="Coin3" index="2"]
frame = 250
frame = 85
[node name="Coin4" parent="." instance=ExtResource( 11 )]
position = Vector2( 2340, -156 )

View File

@ -44,10 +44,10 @@ wait_time = 20.0
unique_name_in_owner = true
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 9
frame = 2
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 13
frame = 6
[node name="Blobby" parent="." instance=ExtResource( 15 )]
unique_name_in_owner = true

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,16 +1,41 @@
[gd_scene load_steps=10 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/Environment/GreenHouseTiles.tres" type="TileSet" id=1]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Contraptions/DropThroughPlatforms.tres" type="TileSet" id=6]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=9]
[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=10]
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
[sub_resource type="TileSet" id=5]
0/name = "platform-plants.png 0"
0/texture = ExtResource( 10 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 16, 0, 256, 16 )
0/tile_mode = 2
0/autotile/icon_coordinate = Vector2( 5, 0 )
0/autotile/tile_size = Vector2( 16, 16 )
0/autotile/spacing = 0
0/autotile/occluder_map = [ ]
0/autotile/navpoly_map = [ ]
0/autotile/priority_map = [ ]
0/autotile/z_index_map = [ ]
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape_one_way = false
0/shape_one_way_margin = 0.0
0/shapes = [ ]
0/z_index = 0
[node name="LevelTemplate" type="Node2D"]
script = ExtResource( 9 )
__meta__ = {
@ -34,10 +59,10 @@ unique_name_in_owner = true
drag_margin_bottom = 0.3
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 2
frame = 3
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 1
frame = 2
[node name="Blobby" parent="." instance=ExtResource( 7 )]
unique_name_in_owner = true
@ -50,17 +75,27 @@ parameters/playback = SubResource( 4 )
[node name="TileMap" type="TileMap" parent="."]
unique_name_in_owner = true
tile_set = ExtResource( 1 )
cell_size = Vector2( 24, 24 )
cell_size = Vector2( 16, 16 )
cell_quadrant_size = 3
cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 )
collision_layer = 8
collision_mask = 8
bake_navigation = true
format = 1
tile_data = PoolIntArray( -458761, 1610612738, 0, -458760, 1610612738, 0, -458759, 1610612738, 0, -458758, 1610612738, 0, -458757, 1610612738, 0, -458756, 1610612738, 0, -458755, 1610612738, 0, -458754, 1610612738, 0, -458753, 1610612738, 0, -524288, 1610612738, 0, -524287, 1610612738, 0, -524286, 1610612738, 0, -524285, 1610612738, 0, -524284, 1610612738, 0, -524283, 1610612738, 0, -524282, 1610612738, 0, -524281, 1610612738, 0, -524280, 1610612738, 0, -524279, 1610612738, 0, -524278, 1610612738, 0, -524277, 1610612738, 0, -524276, 1610612738, 0, -393226, -1610612734, 0, -458739, -1073741822, 0, -327690, -1610612734, 0, -393203, -1073741822, 0, -262154, -1610612734, 0, -327667, -1073741822, 0, -196618, -1610612734, 0, -262131, -1073741822, 0, -131082, -1610612734, 0, -196595, -1073741822, 0, -65546, -1610612734, 0, -131059, -1073741822, 0, -10, -1610612734, 0, -65523, -1073741822, 0, 65526, -1610612734, 0, 13, -1073741822, 0, 131062, -1610612734, 0, 65549, -1073741822, 0, 196598, -1610612734, 0, 131085, -1073741822, 0, 262134, -1610612734, 0, 196621, -1073741822, 0, 327670, -1610612734, 0, 262157, -1073741822, 0, 393206, -1610612734, 0, 327693, -1073741822, 0, 458743, 2, 0, 458744, 2, 0, 458745, 2, 0, 458746, 2, 0, 458747, 2, 0, 458748, 2, 0, 458749, 2, 0, 458750, 2, 0, 458751, 2, 0, 393216, 2, 0, 393217, 2, 0, 393218, 2, 0, 393219, 2, 0, 393220, 2, 0, 393221, 2, 0, 393222, 2, 0, 393223, 2, 0, 393224, 2, 0, 393225, 2, 0, 393226, 2, 0, 393227, 2, 0, 393228, 2, 0 )
tile_data = PoolIntArray( -393230, 1610612741, 65539, -393229, 1610612741, 3, -393228, 1610612741, 3, -393227, 1610612741, 3, -393226, 1610612741, 3, -393225, 1610612741, 3, -393224, 1610612741, 3, -393223, 1610612741, 3, -393222, 1610612741, 3, -393221, 1610612741, 3, -393220, 1610612741, 3, -393219, 1610612741, 3, -393218, 1610612741, 3, -393217, 1610612741, 3, -458752, 1610612741, 3, -458751, 1610612741, 3, -458750, 1610612741, 3, -458749, 1610612741, 3, -458748, 1610612741, 3, -458747, 1610612741, 3, -458746, 1610612741, 3, -458745, 1610612741, 3, -458744, 1610612741, 3, -458743, 1610612741, 3, -458742, 1610612741, 3, -458741, 1610612741, 3, -458740, 1610612741, 3, -458739, 1610612741, 3, -458738, 1610612741, 3, -458737, 1610612741, 3, -458736, 1610612741, 3, -458735, 1610612741, 3, -458734, 1610612741, 3, -458733, 1610612741, 65538, -327694, 5, 7, -393197, 5, 6, -262158, 5, 7, -327661, 5, 6, -196622, 5, 7, -262125, 5, 6, -131086, 5, 7, -196589, 5, 6, -65550, 5, 7, -131053, 5, 6, -14, 5, 7, -65517, 5, 6, 65522, 5, 7, 19, 5, 6, 131058, 5, 7, 65555, 5, 6, 196594, 5, 7, 131091, 5, 6, 262130, 5, 7, 196627, 5, 6, 327666, 5, 7, 262163, 5, 6, 393202, 5, 7, 327699, 5, 6, 458738, 5, 7, 393235, 5, 6, 524274, 5, 65538, 524275, 5, 2, 524276, 5, 2, 524277, 5, 2, 524278, 5, 2, 524279, 5, 2, 524280, 5, 2, 524281, 5, 2, 524282, 5, 2, 524283, 5, 2, 524284, 5, 2, 524285, 5, 2, 524286, 5, 2, 524287, 5, 2, 458752, 5, 2, 458753, 5, 2, 458754, 5, 2, 458755, 5, 2, 458756, 5, 2, 458757, 5, 2, 458758, 5, 2, 458759, 5, 2, 458760, 5, 2, 458761, 5, 2, 458762, 5, 2, 458763, 5, 2, 458764, 5, 2, 458765, 5, 2, 458766, 5, 2, 458767, 5, 2, 458768, 5, 2, 458769, 5, 2, 458770, 5, 2, 458771, 5, 65539 )
[node name="DropThroughPlatforms" type="TileMap" parent="."]
tile_set = ExtResource( 6 )
cell_size = Vector2( 16, 16 )
format = 1
[node name="PlatformPlants" type="TileMap" parent="."]
tile_set = SubResource( 5 )
cell_size = Vector2( 16, 16 )
format = 1
[node name="Portal" parent="." instance=ExtResource( 5 )]
position = Vector2( 288, 120 )
position = Vector2( 288, 96 )
next_scene = "res://src/Levels/Actual Level 1.tscn"
[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"]

View File

@ -5,7 +5,7 @@
[ext_resource path="res://src/UserInterface/Buttons/RetryButton.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/UserInterface/Screens/InGameMenu/PauseScreen.gd" type="Script" id=5]
[ext_resource path="res://src/UserInterface/Screens/InGameMenu/Continue.gd" type="Script" id=6]
[ext_resource path="res://src/transparency.gdshader" type="Shader" id=7]
[ext_resource path="res://assets/effects/transparency.gdshader" type="Shader" id=7]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ReallyQuitMenu.gd" type="Script" id=8]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ActionKeyList.gd" type="Script" id=9]
[ext_resource path="res://src/UserInterface/Screens/InGameMenu/ControlsMenuIngame.gd" type="Script" id=10]

View File

@ -16,7 +16,7 @@
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ActionKeyList.gd" type="Script" id=14]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/InputMapper.gd" type="Script" id=15]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/Reset.gd" type="Script" id=16]
[ext_resource path="res://src/transparency.gdshader" type="Shader" id=17]
[ext_resource path="res://assets/effects/transparency.gdshader" type="Shader" id=17]
[ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=18]
[ext_resource path="res://src/UserInterface/Buttons/MenuNavigationButton.gd" type="Script" id=19]