first background, new grass asset, player-detached camera

This commit is contained in:
Jakob Feldmann 2022-10-17 21:15:19 +02:00
parent f04dfdbdfe
commit ce838b0602
32 changed files with 907 additions and 291 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/blobby/blobby-spritesheet.png"
dest_files=[ "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.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,6 +5,6 @@ onready var anim_player: AnimationPlayer = get_node("AnimationPlayer")
export var scoreValue: = 100
func _on_body_entered(body: Node) -> void:
PlayerData.score += scoreValue
GlobalData.score += scoreValue
anim_player.play("fade_out")
queue_free()

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

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

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/space.png-2bc3b8e0798271df8499baa94973b7e7.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/background/space.png"
dest_files=[ "res://.import/space.png-2bc3b8e0798271df8499baa94973b7e7.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/Beispiel-Busch.aseprite-e4b7724fea18978e42f11f3729f9d1a8.res"
[deps]
source_file="res://assets/environment/decor/Beispiel-Busch.aseprite"
dest_files=[ "res://.import/Beispiel-Busch.aseprite-e4b7724fea18978e42f11f3729f9d1a8.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/bent_straw_2.aseprite-533c943446b43f78ec49a9f7e64d2cbb.res"
[deps]
source_file="res://assets/environment/decor/bent_straw_2.aseprite"
dest_files=[ "res://.import/bent_straw_2.aseprite-533c943446b43f78ec49a9f7e64d2cbb.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

@ -38,13 +38,13 @@ _global_script_class_icons={
[application]
config/name="Wumper"
config/name="Blobby"
run/main_scene="res://src/UserInterface/Screens/MainScreen.tscn"
config/icon="res://icon.png"
[autoload]
PlayerData="*res://src/Autoload/PlayerData.tscn"
GlobalData="*res://src/Autoload/GlobalData.tscn"
[debug]
@ -68,6 +68,7 @@ enabled=PoolStringArray( "res://addons/AsepriteWizard/plugin.cfg" )
window=false
grav=false
layer=false
viewport=true
[importer_defaults]

View File

@ -1,16 +1,20 @@
extends Player
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
export var jump_buffer_filled := false
#TODO Switch to new unique node name method for referencing
onready var left_wall_raycasts = $WallRaycasts/LeftWallRaycast
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
onready var ground_raycasts = $GroundRaycasts
onready var player_state_machine = $BlobbyStateMachine
onready var init_boost = player_state_machine.init_boost
onready var init_boost_type = player_state_machine.init_boost_type
onready var effect_player = $BlobbyActionEffects/AnimationPlayer
var wall_touch_direction = 1
var stomping = false
var floor_angle = Vector2(0,0)
# When the Enemy stomp AREA enters the enemy collision area -> stomp
func _on_BlobbySkin_area_entered(area: Area2D) -> void:
@ -351,33 +355,17 @@ func execute_airstrafe(
air_strafe_charges -= 1
return linear_velocity
func execute_movement() -> void:
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)
velocity = move_and_slide(velocity, FLOOR_NORMAL,true, 4, 0.785398,false)
#TODO Limit movement
func die() -> void:
z_index = 1
$BlobbyCam.position = position
$BlobbyCam/AnimationPlayer.play("deathCam")
GlobalData.is_dead = true
GlobalData.deaths += 1
$BlobbySprite/AnimationTree.active = false
$BlobbySprite/BlobbymationPlayer.play("dying")
PlayerData.is_dead = true
PlayerData.deaths += 1
$BlobbySprite/BlobbymationPlayer.play("dying3")
func respawn() -> void:
get_tree().reload_current_scene()

View File

@ -1,7 +1,6 @@
[gd_scene load_steps=115 format=2]
[gd_scene load_steps=114 format=2]
[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/BlobbyStateMachine.gd" type="Script" id=3]
[ext_resource path="res://src/Actors/Blobby/Blobby.gd" type="Script" id=4]
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5]
@ -10,7 +9,7 @@
extents = Vector2( 14.9127, 5.98593 )
[sub_resource type="StreamTexture" id=62]
load_path = "res://.import/blobby-spritesheett.png-31ad471e3ad73a5f4a303e582c829ff7.stex"
load_path = "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex"
[sub_resource type="AnimationNodeAnimation" id=126]
animation = "duckTurn"
@ -284,7 +283,7 @@ states/wallsliding/node = SubResource( 96 )
states/wallsliding/position = Vector2( 1795.54, 493.009 )
transitions = [ "falling", "wallsliding", SubResource( 138 ), "wallsliding", "idling", SubResource( 139 ), "wallsliding", "wallslideToJump", SubResource( 140 ), "wallslideToJump", "jumping", SubResource( 141 ), "idling", "jumping", SubResource( 147 ), "runToJump", "jumping", SubResource( 148 ), "ducking", "jumping", SubResource( 149 ), "jumping", "jumpToFall", SubResource( 150 ), "jumpToFall", "falling", SubResource( 151 ), "ducking", "duckTurn", SubResource( 152 ), "duckTurn", "ducking", SubResource( 153 ), "falling", "ducking", SubResource( 154 ), "ducking", "falling", SubResource( 155 ), "ducking", "walking", SubResource( 156 ), "walking", "ducking", SubResource( 157 ), "idling", "ducking", SubResource( 158 ), "ducking", "idling", SubResource( 159 ), "ducking", "running", SubResource( 160 ), "running", "ducking", SubResource( 161 ), "running", "falling", SubResource( 162 ), "falling", "running", SubResource( 163 ), "walking", "falling", SubResource( 164 ), "falling", "walking", SubResource( 165 ), "falling", "idling", SubResource( 166 ), "idling", "walking", SubResource( 167 ), "walking", "idling", SubResource( 168 ), "walking", "turnToRun", SubResource( 169 ), "turnToRun", "walking", SubResource( 170 ), "running", "turnToRun", SubResource( 171 ), "turnToRun", "running", SubResource( 172 ), "idling", "idleTurn", SubResource( 173 ), "walking", "idleTurn", SubResource( 174 ), "idleTurn", "walking", SubResource( 175 ), "idling", "turnToRun", SubResource( 176 ), "turnToRun", "idling", SubResource( 177 ), "running", "runToJump", SubResource( 178 ), "wallsliding", "falling", SubResource( 137 ) ]
start_node = "idling"
graph_offset = Vector2( 1113.54, -70.991 )
graph_offset = Vector2( 1041.54, -349.991 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=48]
@ -1094,6 +1093,36 @@ tracks/0/keys = {
"values": [ 30 ]
}
[sub_resource type="Animation" id=187]
resource_name = "dying2"
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": [ 31 ]
}
[sub_resource type="Animation" id=188]
resource_name = "dying3"
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": [ 32 ]
}
[sub_resource type="Animation" id=6]
length = 0.1
loop = true
@ -4408,207 +4437,6 @@ tracks/2/keys = {
"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"]]
collision_mask = 248
collision/safe_margin = 0.001
@ -4664,6 +4492,8 @@ anims/duckTurn = SubResource( 68 )
anims/ducking = SubResource( 69 )
anims/duckingLeft = SubResource( 107 )
anims/dying = SubResource( 184 )
anims/dying2 = SubResource( 187 )
anims/dying3 = SubResource( 188 )
anims/falling = SubResource( 6 )
anims/fallingLeft = SubResource( 106 )
anims/idleTurn = SubResource( 70 )
@ -4711,27 +4541,11 @@ frame = 8
position = Vector2( 0.0392303, -10.002 )
shape = SubResource( 1 )
[node name="BlobbyCam" type="Camera2D" parent="."]
rotating = true
current = true
zoom = Vector2( 0.75, 0.75 )
drag_margin_h_enabled = true
drag_margin_v_enabled = true
drag_margin_left = 0.05
drag_margin_top = 0.05
drag_margin_right = 0.05
drag_margin_bottom = 0.05
editor_draw_screen = false
script = ExtResource( 2 )
[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="."]
script = ExtResource( 3 )
coyote_hanging = null
init_boost = null
init_boost_type = null
[node name="JumpBufferTimer" type="Timer" parent="BlobbyStateMachine"]
wait_time = 0.067
@ -4747,7 +4561,8 @@ margin_left = -37.0
margin_top = -44.0
margin_right = 36.0
margin_bottom = -30.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
custom_colors/font_color = Color( 1, 1, 1, 1 )
custom_colors/font_outline_modulate = Color( 0, 0, 0, 1 )
custom_fonts/font = ExtResource( 5 )
text = "Ihre Werbung"
align = 1
@ -4786,6 +4601,21 @@ exclude_parent = false
cast_to = Vector2( 1.5, 0 )
collision_mask = 56
[node name="GroundRaycasts" type="Node2D" parent="."]
position = Vector2( 0, -1 )
[node name="Groundcast2" type="RayCast2D" parent="GroundRaycasts"]
position = Vector2( 14, 0 )
enabled = true
cast_to = Vector2( 0, 10 )
collision_mask = 56
[node name="Groundcast3" type="RayCast2D" parent="GroundRaycasts"]
position = Vector2( -12, 0 )
enabled = true
cast_to = Vector2( 0, 10 )
collision_mask = 56
[connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"]
[connection signal="body_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_body_entered"]
[connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"]

View File

@ -5,33 +5,41 @@ var vertical_facing = 0
var camera_horizontal_shift = 70
var camera_vertical_shift = 90
onready var prev_camera_pos = get_camera_position()
onready var tween = $ShiftTween
onready var original_x_zoom = zoom.x
onready var original_y_zoom = zoom.y
onready var blobby = get_node("%Blobby")
onready var prev_camera_pos
# Gets the camera limits from the tilemap of the level
# Requires "TileMap" to be a sibling of blobby
func _ready():
_set_boundaries()
self.position = blobby.global_position
prev_camera_pos = get_camera_screen_center()
func _physics_process(_delta: float) -> void:
if(!PlayerData.is_dead):
if(!GlobalData.is_dead):
_adapt_to_movement()
prev_camera_pos = get_camera_position()
#TODO Do this via a event
else:
self.position = blobby.global_position
_death_cam()
prev_camera_pos = get_camera_screen_center()
func _set_boundaries():
# This is ok, because it only happens on initialization
# But it is also quite fickle
var tilemap = get_node("../../TileMap")
var tilemap = get_node("../TileMap")
# TODO This goes wrong when overwriting old tiles with new sprites
# New pngs -> completely new tiles and rebuild map
var rect = tilemap.get_used_rect()
var cell_size = tilemap.cell_size
limit_right = rect.end.x * cell_size.x
limit_left = rect.position.x * cell_size.x
limit_top = rect.position.y * cell_size.y
limit_bottom = rect.end.y * cell_size.y
limit_right = rect.end.x * cell_size.x - camera_horizontal_shift
limit_left = rect.position.x * cell_size.x + camera_horizontal_shift
# TODO When vertical scrolling is fixed
limit_top = rect.position.y * cell_size.y #+ camera_vertical_shift
limit_bottom = rect.end.y * cell_size.y #- camera_vertical_shift
var screen_size = get_viewport_rect()
var h_pixels = limit_right - limit_left
var v_pixels = limit_bottom - limit_top
@ -49,7 +57,7 @@ func _adapt_to_movement():
var target_offset: Vector2 = Vector2(0,0)
var tween_v = false
var tween_h = false
var new_h_facing = sign(get_camera_position().x - prev_camera_pos.x)
var new_h_facing = sign(get_camera_screen_center().x - prev_camera_pos.x)
if new_h_facing != 0 && horizontal_facing != new_h_facing:
horizontal_facing = new_h_facing
target_offset.x = camera_horizontal_shift * horizontal_facing
@ -66,14 +74,16 @@ func _adapt_to_movement():
#TODO Motion may be too complex
tween.interpolate_property(
self,
"transform:origin",
self.transform.origin,
"offset",
offset,
target_offset,
1.2,
Tween.TRANS_SINE,
Tween.EASE_OUT
)
tween.start()
self.position = blobby.global_position
func _death_cam():
pass
$AnimationPlayer.play("deathCam")
#TODO Animation not always centered

View File

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

View File

@ -30,7 +30,7 @@ func player_on_floor_direction():
func die() -> void:
queue_free()
PlayerData.score += score
GlobalData.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:
if area.is_in_group("harmful"):

View File

@ -25,7 +25,7 @@ func _physics_process(delta: float) -> void:
func die() -> void:
queue_free()
PlayerData.score += score
GlobalData.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:

View File

@ -30,7 +30,7 @@ func is_at_ledge():
func die() -> void:
queue_free()
PlayerData.score += score
GlobalData.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:

View File

@ -31,7 +31,7 @@ func is_safe_drop():
func die() -> void:
queue_free()
PlayerData.score += score
GlobalData.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:
if area.is_in_group("harmful"):

View File

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/Autoload/GlobalData.gd" type="Script" id=1]
[node name="GlobalData" type="Node"]
script = ExtResource( 1 )

View File

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/Autoload/PlayerData.gd" type="Script" id=1]
[node name="PlayerData" type="Node"]
script = ExtResource( 1 )

View File

@ -6,7 +6,7 @@ const PhysicsConst = preload("res://src/Utilities/Physic/PhysicsConst.gd")
var mass = 1
var coupled_mass = mass
var spring_k = -1000
var spring_k = -400
var start_y = 0
var y_velocity = 0
var friction = 0.91

View File

@ -7,7 +7,7 @@
extents = Vector2( 11.4863, 2.10568 )
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 11.918, 1.57982 )
extents = Vector2( 11.925, 0.0109166 )
[sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 11.9158, 2.06284 )
@ -32,7 +32,7 @@ collision_layer = 32
collision_mask = 41
[node name="CollisionShape2D" type="CollisionShape2D" parent="SpringBody"]
position = Vector2( 0.00390673, 0 )
position = Vector2( 0.0109062, -1.5689 )
shape = SubResource( 1 )
one_way_collision = true

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,339 @@
[gd_scene load_steps=12 format=2]
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=1]
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=2]
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=10]
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
[node name="LevelTemplate" type="Node2D"]
__meta__ = {
"_edit_horizontal_guides_": [ 464.0 ],
"_edit_vertical_guides_": [ 2880.0 ]
}
[node name="UserInterface" parent="." instance=ExtResource( 9 )]
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
wait_time = 20.0
[node name="PauseScreen" parent="UserInterface" index="1"]
margin_left = 3.15372
margin_top = 0.456848
margin_right = 3.15375
margin_bottom = 0.456848
[node name="Blobby" parent="." instance=ExtResource( 4 )]
position = Vector2( 71.0069, 335.293 )
scale = Vector2( 0.878906, 0.936025 )
[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 4 )
[node name="Collectibles" type="Node2D" parent="."]
visible = false
[node name="Coin" parent="Collectibles" instance=ExtResource( 5 )]
position = Vector2( 336, -60 )
scale = Vector2( 0.133, 0.133 )
scoreValue = null
[node name="Coin2" parent="Collectibles" instance=ExtResource( 5 )]
position = Vector2( 324, -11 )
scale = Vector2( 0.133, 0.133 )
scoreValue = null
[node name="Coin3" parent="Collectibles" instance=ExtResource( 5 )]
position = Vector2( 1188, -84 )
scale = Vector2( 0.133, 0.133 )
scoreValue = null
[node name="Coin4" parent="Collectibles" instance=ExtResource( 5 )]
position = Vector2( 1236, -108 )
scale = Vector2( 0.133, 0.133 )
scoreValue = null
[node name="Coin5" parent="Collectibles" instance=ExtResource( 5 )]
position = Vector2( 1140, -108 )
scale = Vector2( 0.133, 0.133 )
scoreValue = null
[node name="Coin6" parent="Collectibles" instance=ExtResource( 5 )]
position = Vector2( 696, -48 )
scale = Vector2( 0.133, 0.133 )
scoreValue = null
[node name="TileMap" type="TileMap" parent="."]
tile_set = ExtResource( 2 )
cell_size = Vector2( 24, 24 )
cell_quadrant_size = 3
cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 )
collision_layer = 8
collision_mask = 8
format = 1
tile_data = PoolIntArray( 0, 4, 0, 260, 4, 0, 65536, 4, 0, 65796, 4, 0, 131072, 4, 0, 131332, 4, 0, 196608, 4, 0, 196868, 4, 0, 262144, 4, 0, 262404, 4, 0, 327680, 4, 0, 327940, 4, 0, 393216, 4, 0, 393476, 4, 0, 458752, 4, 0, 459012, 4, 0, 524288, 4, 0, 524548, 4, 0, 589824, 4, 0, 590084, 4, 0, 655360, 4, 0, 655620, 4, 0, 720896, 4, 0, 721156, 4, 0, 786432, 4, 0, 786692, 4, 0, 851968, 4, 0, 852228, 4, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0, 917513, 4, 0, 917514, 4, 0, 917515, 4, 0, 917516, 4, 0, 917517, 4, 0, 917518, 4, 0, 917519, 4, 0, 917520, 4, 0, 917521, 4, 0, 917522, 4, 0, 917523, 4, 0, 917524, 4, 0, 917525, 4, 0, 917526, 4, 0, 917527, 4, 0, 917528, 4, 0, 917529, 4, 0, 917530, 4, 0, 917531, 4, 0, 917532, 4, 0, 917533, 4, 0, 917534, 4, 0, 917535, 4, 0, 917536, 4, 0, 917537, 4, 0, 917538, 4, 0, 917539, 4, 0, 917540, 4, 0, 917541, 4, 0, 917542, 4, 0, 917543, 4, 0, 917544, 4, 0, 917545, 4, 0, 917546, 4, 0, 917547, 4, 0, 917548, 4, 0, 917549, 4, 0, 917550, 4, 0, 917551, 4, 0, 917552, 4, 0, 917553, 4, 0, 917554, 4, 0, 917555, 4, 0, 917556, 4, 0, 917557, 4, 0, 917558, 4, 0, 917559, 4, 0, 917560, 4, 0, 917561, 4, 0, 917562, 4, 0, 917563, 4, 0, 917564, 4, 0, 917565, 4, 0, 917566, 4, 0, 917567, 4, 0, 917568, 4, 0, 917569, 4, 0, 917570, 4, 0, 917571, 4, 0, 917572, 4, 0, 917573, 4, 0, 917574, 4, 0, 917575, 4, 0, 917576, 4, 0, 917577, 4, 0, 917578, 4, 0, 917579, 4, 0, 917580, 4, 0, 917581, 4, 0, 917582, 4, 0, 917583, 4, 0, 917584, 4, 0, 917585, 4, 0, 917586, 4, 0, 917587, 4, 0, 917588, 4, 0, 917589, 4, 0, 917590, 4, 0, 917591, 4, 0, 917592, 4, 0, 917593, 4, 0, 917594, 4, 0, 917595, 4, 0, 917596, 4, 0, 917597, 4, 0, 917598, 4, 0, 917599, 4, 0, 917600, 4, 0, 917601, 4, 0, 917602, 4, 0, 917603, 4, 0, 917604, 4, 0, 917605, 4, 0, 917606, 4, 0, 917607, 4, 0, 917608, 4, 0, 917609, 4, 0, 917610, 4, 0, 917611, 4, 0, 917612, 4, 0, 917613, 4, 0, 917614, 4, 0, 917615, 4, 0, 917616, 4, 0, 917617, 4, 0, 917618, 4, 0, 917619, 4, 0, 917620, 4, 0, 917621, 4, 0, 917622, 4, 0, 917623, 4, 0, 917624, 4, 0, 917625, 4, 0, 917626, 4, 0, 917627, 4, 0, 917628, 4, 0, 917629, 4, 0, 917630, 4, 0, 917631, 4, 0, 917632, 4, 0, 917633, 4, 0, 917634, 4, 0, 917635, 4, 0, 917636, 4, 0, 917637, 4, 0, 917638, 4, 0, 917639, 4, 0, 917640, 4, 0, 917641, 4, 0, 917642, 4, 0, 917643, 4, 0, 917644, 4, 0, 917645, 4, 0, 917646, 4, 0, 917647, 4, 0, 917648, 4, 0, 917649, 4, 0, 917650, 4, 0, 917651, 4, 0, 917652, 4, 0, 917653, 4, 0, 917654, 4, 0, 917655, 4, 0, 917656, 4, 0, 917657, 4, 0, 917658, 4, 0, 917659, 4, 0, 917660, 4, 0, 917661, 4, 0, 917662, 4, 0, 917663, 4, 0, 917664, 4, 0, 917665, 4, 0, 917666, 4, 0, 917667, 4, 0, 917668, 4, 0, 917669, 4, 0, 917670, 4, 0, 917671, 4, 0, 917672, 4, 0, 917673, 4, 0, 917674, 4, 0, 917675, 4, 0, 917676, 4, 0, 917677, 4, 0, 917678, 4, 0, 917679, 4, 0, 917680, 4, 0, 917681, 4, 0, 917682, 4, 0, 917683, 4, 0, 917684, 4, 0, 917685, 4, 0, 917686, 4, 0, 917687, 4, 0, 917688, 4, 0, 917689, 4, 0, 917690, 4, 0, 917691, 4, 0, 917692, 4, 0, 917693, 4, 0, 917694, 4, 0, 917695, 4, 0, 917696, 4, 0, 917697, 4, 0, 917698, 4, 0, 917699, 4, 0, 917700, 4, 0, 917701, 4, 0, 917702, 4, 0, 917703, 4, 0, 917704, 4, 0, 917705, 4, 0, 917706, 4, 0, 917707, 4, 0, 917708, 4, 0, 917709, 4, 0, 917710, 4, 0, 917711, 4, 0, 917712, 4, 0, 917713, 4, 0, 917714, 4, 0, 917715, 4, 0, 917716, 4, 0, 917717, 4, 0, 917718, 4, 0, 917719, 4, 0, 917720, 4, 0, 917721, 4, 0, 917722, 4, 0, 917723, 4, 0, 917724, 4, 0, 917725, 4, 0, 917726, 4, 0, 917727, 4, 0, 917728, 4, 0, 917729, 4, 0, 917730, 4, 0, 917731, 4, 0, 917732, 4, 0, 917733, 4, 0, 917734, 4, 0, 917735, 4, 0, 917736, 4, 0, 917737, 4, 0, 917738, 4, 0, 917739, 4, 0, 917740, 4, 0, 917741, 4, 0, 917742, 4, 0, 917743, 4, 0, 917744, 4, 0, 917745, 4, 0, 917746, 4, 0, 917747, 4, 0, 917748, 4, 0, 917749, 4, 0, 917750, 4, 0, 917751, 4, 0, 917752, 4, 0, 917753, 4, 0, 917754, 4, 0, 917755, 4, 0, 917756, 4, 0, 917757, 4, 0, 917758, 4, 0, 917759, 4, 0, 917760, 4, 0, 917761, 4, 0, 917762, 4, 0, 917763, 4, 0, 917764, 4, 0 )
[node name="TreeWhyButtons" parent="." instance=ExtResource( 8 )]
visible = false
position = Vector2( -108, -7 )
[node name="WhyButton1" parent="TreeWhyButtons" index="0"]
position = Vector2( -12, -49 )
rotation = 1.5708
[node name="WhyButton2" parent="TreeWhyButtons" index="1"]
position = Vector2( 444, -17 )
rotation = 3.14159
[node name="WhyButton3" parent="TreeWhyButtons" index="2"]
position = Vector2( 1452, -77 )
rotation = -1.5708
[node name="ElevatorButton" parent="." instance=ExtResource( 3 )]
visible = false
position = Vector2( 1452, -96 )
[node name="Portal" parent="ElevatorButton" instance=ExtResource( 10 )]
visible = false
position = Vector2( -1464, 84 )
monitoring = false
next_scene = ExtResource( 6 )
[node name="GameplaySignalManager" type="Node2D" parent="."]
script = ExtResource( 1 )
[node name="ShaderGrass" parent="." instance=ExtResource( 7 )]
position = Vector2( 94.3273, 323.897 )
z_index = -1
[node name="ShaderGrass2" parent="." instance=ExtResource( 7 )]
position = Vector2( 97.7583, 323.726 )
[node name="ShaderGrass3" parent="." instance=ExtResource( 7 )]
position = Vector2( 103.443, 323.813 )
[node name="ShaderGrass4" parent="." instance=ExtResource( 7 )]
position = Vector2( 99.556, 322.393 )
z_index = -1
[node name="ShaderGrass5" parent="." instance=ExtResource( 7 )]
position = Vector2( 107.485, 323.87 )
[node name="ShaderGrass6" parent="." instance=ExtResource( 7 )]
position = Vector2( 104.781, 322.084 )
z_index = -1
[node name="ShaderGrass7" parent="." instance=ExtResource( 7 )]
position = Vector2( 118.829, 323.704 )
[node name="ShaderGrass8" parent="." instance=ExtResource( 7 )]
position = Vector2( 112.732, 323.918 )
[node name="ShaderGrass9" parent="." instance=ExtResource( 7 )]
position = Vector2( 110.33, 321.607 )
z_index = -1
[node name="ShaderGrass10" parent="." instance=ExtResource( 7 )]
position = Vector2( 122.514, 323.848 )
z_index = -1
[node name="ShaderGrass11" parent="." instance=ExtResource( 7 )]
position = Vector2( 125.945, 323.677 )
[node name="ShaderGrass12" parent="." instance=ExtResource( 7 )]
position = Vector2( 131.629, 323.764 )
[node name="ShaderGrass13" parent="." instance=ExtResource( 7 )]
position = Vector2( 127.742, 322.345 )
z_index = -1
[node name="ShaderGrass14" parent="." instance=ExtResource( 7 )]
position = Vector2( 135.671, 323.821 )
[node name="ShaderGrass15" parent="." instance=ExtResource( 7 )]
position = Vector2( 132.967, 322.035 )
z_index = -1
[node name="ShaderGrass16" parent="." instance=ExtResource( 7 )]
position = Vector2( 147.015, 323.655 )
[node name="ShaderGrass17" parent="." instance=ExtResource( 7 )]
position = Vector2( 140.918, 323.869 )
[node name="ShaderGrass18" parent="." instance=ExtResource( 7 )]
position = Vector2( 138.516, 321.559 )
z_index = -1
[node name="ShaderGrass19" parent="." instance=ExtResource( 7 )]
position = Vector2( 149.723, 323.897 )
z_index = -1
[node name="ShaderGrass20" parent="." instance=ExtResource( 7 )]
position = Vector2( 153.154, 323.726 )
[node name="ShaderGrass21" parent="." instance=ExtResource( 7 )]
position = Vector2( 158.839, 323.813 )
[node name="ShaderGrass22" parent="." instance=ExtResource( 7 )]
position = Vector2( 154.952, 322.393 )
z_index = -1
[node name="ShaderGrass23" parent="." instance=ExtResource( 7 )]
position = Vector2( 162.881, 323.87 )
[node name="ShaderGrass24" parent="." instance=ExtResource( 7 )]
position = Vector2( 160.177, 322.084 )
z_index = -1
[node name="ShaderGrass25" parent="." instance=ExtResource( 7 )]
position = Vector2( 174.225, 323.704 )
[node name="ShaderGrass26" parent="." instance=ExtResource( 7 )]
position = Vector2( 168.128, 323.918 )
[node name="ShaderGrass27" parent="." instance=ExtResource( 7 )]
position = Vector2( 165.726, 321.607 )
z_index = -1
[node name="ShaderGrass28" parent="." instance=ExtResource( 7 )]
position = Vector2( 64.794, 323.73 )
z_index = -1
[node name="ShaderGrass29" parent="." instance=ExtResource( 7 )]
position = Vector2( 68.225, 323.559 )
[node name="ShaderGrass30" parent="." instance=ExtResource( 7 )]
position = Vector2( 73.9096, 323.646 )
[node name="ShaderGrass31" parent="." instance=ExtResource( 7 )]
position = Vector2( 70.0227, 322.227 )
z_index = -1
[node name="ShaderGrass32" parent="." instance=ExtResource( 7 )]
position = Vector2( 77.9516, 323.703 )
[node name="ShaderGrass33" parent="." instance=ExtResource( 7 )]
position = Vector2( 75.2476, 321.917 )
z_index = -1
[node name="ShaderGrass34" parent="." instance=ExtResource( 7 )]
position = Vector2( 89.2956, 323.538 )
[node name="ShaderGrass35" parent="." instance=ExtResource( 7 )]
position = Vector2( 83.1986, 323.751 )
[node name="ShaderGrass36" parent="." instance=ExtResource( 7 )]
position = Vector2( 80.7966, 321.441 )
z_index = -1
[node name="ShaderGrass37" parent="." instance=ExtResource( 7 )]
position = Vector2( 39.2652, 323.564 )
z_index = -1
[node name="ShaderGrass38" parent="." instance=ExtResource( 7 )]
position = Vector2( 42.6962, 323.393 )
[node name="ShaderGrass39" parent="." instance=ExtResource( 7 )]
position = Vector2( 48.3808, 323.48 )
[node name="ShaderGrass40" parent="." instance=ExtResource( 7 )]
position = Vector2( 44.4939, 322.06 )
z_index = -1
[node name="ShaderGrass41" parent="." instance=ExtResource( 7 )]
position = Vector2( 52.4228, 323.537 )
[node name="ShaderGrass42" parent="." instance=ExtResource( 7 )]
position = Vector2( 49.7188, 321.751 )
z_index = -1
[node name="ShaderGrass43" parent="." instance=ExtResource( 7 )]
position = Vector2( 63.7668, 323.371 )
[node name="ShaderGrass44" parent="." instance=ExtResource( 7 )]
position = Vector2( 57.6698, 323.585 )
[node name="ShaderGrass45" parent="." instance=ExtResource( 7 )]
position = Vector2( 55.2678, 321.274 )
z_index = -1
[node name="ShaderGrass46" parent="." instance=ExtResource( 7 )]
position = Vector2( 17.2403, 323.73 )
z_index = -1
[node name="ShaderGrass47" parent="." instance=ExtResource( 7 )]
position = Vector2( 20.6713, 323.559 )
[node name="ShaderGrass48" parent="." instance=ExtResource( 7 )]
position = Vector2( 26.3559, 323.646 )
[node name="ShaderGrass49" parent="." instance=ExtResource( 7 )]
position = Vector2( 22.469, 322.227 )
z_index = -1
[node name="ShaderGrass50" parent="." instance=ExtResource( 7 )]
position = Vector2( 30.3979, 323.703 )
[node name="ShaderGrass51" parent="." instance=ExtResource( 7 )]
position = Vector2( 27.6939, 321.917 )
z_index = -1
[node name="ShaderGrass52" parent="." instance=ExtResource( 7 )]
position = Vector2( 41.7419, 323.538 )
[node name="ShaderGrass53" parent="." instance=ExtResource( 7 )]
position = Vector2( 35.6449, 323.751 )
[node name="ShaderGrass54" parent="." instance=ExtResource( 7 )]
position = Vector2( 33.2429, 321.441 )
z_index = -1
[node name="ShaderGrass55" parent="." instance=ExtResource( 7 )]
position = Vector2( 166.242, 323.73 )
z_index = -1
[node name="ShaderGrass56" parent="." instance=ExtResource( 7 )]
position = Vector2( 169.673, 323.559 )
[node name="ShaderGrass57" parent="." instance=ExtResource( 7 )]
position = Vector2( 175.357, 323.646 )
[node name="ShaderGrass58" parent="." instance=ExtResource( 7 )]
position = Vector2( 171.471, 322.227 )
z_index = -1
[node name="ShaderGrass59" parent="." instance=ExtResource( 7 )]
position = Vector2( 179.399, 323.703 )
[node name="ShaderGrass60" parent="." instance=ExtResource( 7 )]
position = Vector2( 176.695, 321.917 )
z_index = -1
[node name="ShaderGrass61" parent="." instance=ExtResource( 7 )]
position = Vector2( 190.743, 323.538 )
[node name="ShaderGrass62" parent="." instance=ExtResource( 7 )]
position = Vector2( 184.646, 323.751 )
[node name="ShaderGrass63" parent="." instance=ExtResource( 7 )]
position = Vector2( 182.244, 321.441 )
z_index = -1
[connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"]
[connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"]
[connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"]
[editable path="UserInterface"]
[editable path="UserInterface/HUD"]
[editable path="Blobby"]
[editable path="TreeWhyButtons"]
[editable path="TreeWhyButtons/WhyButton1"]
[editable path="TreeWhyButtons/WhyButton2"]
[editable path="TreeWhyButtons/WhyButton3"]

View File

@ -2,6 +2,6 @@ extends Button
func _on_button_up() -> void:
PlayerData.score = 0
GlobalData.score = 0
get_tree().paused = false
get_tree().reload_current_scene()

View File

@ -1,4 +1,4 @@
extends Label
func _ready():
self.text = self.text % [PlayerData.score, PlayerData.deaths]
self.text = self.text % [GlobalData.score, GlobalData.deaths]

View File

@ -9,7 +9,7 @@ onready var score: Label = $HUDOverlay/Score
func _ready():
#TODO Connect what HOW?
PlayerData.connect("score_updated", self, "update_interface")
GlobalData.connect("score_updated", self, "update_interface")
update_interface()
func _process(delta):
@ -29,7 +29,7 @@ func _zoom_timer() -> void:
func update_interface() -> void:
score.text = "Score: %s" % PlayerData.score
score.text = "Score: %s" % GlobalData.score
func _on_SignalManager_terminal_activated() -> void:

View File

@ -8,10 +8,10 @@ onready var pause_title: Label = get_node("PauseOverlay/Title")
var paused := false setget set_paused
func _ready():
PlayerData.connect("player_died", self, "_on_PlayerData_player_died")
GlobalData.connect("player_died", self, "_on_GlobalData_player_died")
func _on_PlayerData_player_died() -> void:
func _on_GlobalData_player_died() -> void:
self.paused = true
pause_title.text = "You lost"

View File

@ -2,8 +2,30 @@ extends Node2D
signal terminal_activated()
signal getback_timer_up()
signal score_updated
signal player_died
func _on_Timer_timeout() -> void:
emit_signal("getback_timer_up")
#TODO Easteregg pls
var score: = 0 setget set_score
var deaths: = 0 setget set_deaths
var is_dead: = false setget set_dead
func reset() -> void:
score = 0
deaths = 0
#TODO Remove score
func set_score(value: int) -> void:
score = value
emit_signal("score_updated")
func set_deaths(value: int) -> void:
deaths = value
#emit_signal("player_died")
func set_dead(value: bool) -> void:
is_dead = value