first background, new grass asset, player-detached camera
This commit is contained in:
parent
f04dfdbdfe
commit
ce838b0602
BIN
assets/blobby/blobby-spritesheet.png
Normal file
BIN
assets/blobby/blobby-spritesheet.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
35
assets/blobby/blobby-spritesheet.png.import
Normal file
35
assets/blobby/blobby-spritesheet.png.import
Normal 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
|
||||
Binary file not shown.
@ -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()
|
||||
|
||||
BIN
assets/environment/background/asteroids.png
Normal file
BIN
assets/environment/background/asteroids.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
35
assets/environment/background/asteroids.png.import
Normal file
35
assets/environment/background/asteroids.png.import
Normal 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
|
||||
BIN
assets/environment/background/space.aseprite
Normal file
BIN
assets/environment/background/space.aseprite
Normal file
Binary file not shown.
BIN
assets/environment/background/space.png
Normal file
BIN
assets/environment/background/space.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.0 KiB |
35
assets/environment/background/space.png.import
Normal file
35
assets/environment/background/space.png.import
Normal 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
|
||||
26
assets/environment/decor/Beispiel-Busch.aseprite.import
Normal file
26
assets/environment/decor/Beispiel-Busch.aseprite.import
Normal 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}"
|
||||
26
assets/environment/decor/bent_straw_2.aseprite.import
Normal file
26
assets/environment/decor/bent_straw_2.aseprite.import
Normal 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}"
|
||||
@ -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]
|
||||
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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"]
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
|
||||
@ -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"):
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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"):
|
||||
|
||||
6
src/Autoload/GlobalData.tscn
Normal file
6
src/Autoload/GlobalData.tscn
Normal 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 )
|
||||
@ -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 )
|
||||
@ -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
|
||||
|
||||
@ -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
339
src/Levels/The Line Level.tscn
Normal file
339
src/Levels/The Line Level.tscn
Normal 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"]
|
||||
@ -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()
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
extends Label
|
||||
|
||||
func _ready():
|
||||
self.text = self.text % [PlayerData.score, PlayerData.deaths]
|
||||
self.text = self.text % [GlobalData.score, GlobalData.deaths]
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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"
|
||||
|
||||
|
||||
@ -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
|
||||
Loading…
Reference in New Issue
Block a user