Überholtes Management Level State und Signals
This commit is contained in:
parent
2062e84d09
commit
d5197ea39e
@ -1,10 +0,0 @@
|
|||||||
extends Area2D
|
|
||||||
|
|
||||||
onready var anim_player: AnimationPlayer = get_node("AnimationPlayer")
|
|
||||||
|
|
||||||
export var scoreValue: = 100
|
|
||||||
|
|
||||||
func _on_body_entered(body: Node) -> void:
|
|
||||||
GlobalState.score += scoreValue
|
|
||||||
anim_player.play("fade_out")
|
|
||||||
queue_free()
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
35
assets/contraption/FlyingLaserCutter.png.import
Normal file
35
assets/contraption/FlyingLaserCutter.png.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/FlyingLaserCutter.png-c86b91b5050518f7eae705da3712cbdc.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/contraption/FlyingLaserCutter.png"
|
||||||
|
dest_files=[ "res://.import/FlyingLaserCutter.png-c86b91b5050518f7eae705da3712cbdc.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/contraption/FlyingLaserCutterShaded.png
Normal file
BIN
assets/contraption/FlyingLaserCutterShaded.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
35
assets/contraption/FlyingLaserCutterShaded.png.import
Normal file
35
assets/contraption/FlyingLaserCutterShaded.png.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/FlyingLaserCutterShaded.png-bdace770643648214f1e8737a3432eb7.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/contraption/FlyingLaserCutterShaded.png"
|
||||||
|
dest_files=[ "res://.import/FlyingLaserCutterShaded.png-bdace770643648214f1e8737a3432eb7.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=false
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 370 B After Width: | Height: | Size: 425 B |
@ -10,9 +10,9 @@ config_version=4
|
|||||||
|
|
||||||
_global_script_classes=[ {
|
_global_script_classes=[ {
|
||||||
"base": "KinematicBody2D",
|
"base": "KinematicBody2D",
|
||||||
"class": "Player",
|
"class": "Actor",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://src/Actors/Player.gd"
|
"path": "res://src/Actors/Actor.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "Line2D",
|
"base": "Line2D",
|
||||||
"class": "RayCastDebugLines",
|
"class": "RayCastDebugLines",
|
||||||
@ -30,7 +30,7 @@ _global_script_classes=[ {
|
|||||||
"path": "res://src/StateMachines/StateMachine.gd"
|
"path": "res://src/StateMachines/StateMachine.gd"
|
||||||
} ]
|
} ]
|
||||||
_global_script_class_icons={
|
_global_script_class_icons={
|
||||||
"Player": "",
|
"Actor": "",
|
||||||
"RayCastDebugLines": "",
|
"RayCastDebugLines": "",
|
||||||
"RayCaster": "",
|
"RayCaster": "",
|
||||||
"StateMachine": ""
|
"StateMachine": ""
|
||||||
@ -42,10 +42,6 @@ config/name="Blobby"
|
|||||||
run/main_scene="res://src/UserInterface/Screens/MainScreen.tscn"
|
run/main_scene="res://src/UserInterface/Screens/MainScreen.tscn"
|
||||||
config/icon="res://icon.png"
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
[autoload]
|
|
||||||
|
|
||||||
GlobalState="*res://src/Autoload/GlobalState.tscn"
|
|
||||||
|
|
||||||
[debug]
|
[debug]
|
||||||
|
|
||||||
settings/fps/force_fps=144
|
settings/fps/force_fps=144
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
extends KinematicBody2D
|
extends KinematicBody2D
|
||||||
class_name Player
|
class_name Actor
|
||||||
|
|
||||||
|
onready var levelState := get_tree().root.get_child(0).get_node("%LevelState")
|
||||||
|
onready var signalManager := get_tree().root.get_child(0).get_node("%SignalManager")
|
||||||
|
|
||||||
const PhysicsConst = preload("res://src/Utilities/Physic/PhysicsConst.gd")
|
const PhysicsConst = preload("res://src/Utilities/Physic/PhysicsConst.gd")
|
||||||
|
|
||||||
const FLOOR_NORMAL := Vector2.UP
|
const FLOOR_NORMAL := Vector2.UP
|
||||||
@ -1,14 +1,16 @@
|
|||||||
|
extends Actor
|
||||||
extends Player
|
|
||||||
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
|
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
|
||||||
export var jump_buffer_filled := false
|
export var jump_buffer_filled := false
|
||||||
#TODO Switch to new unique node name method for referencing
|
#TODO Switch to new unique node name method for referencing
|
||||||
onready var left_wall_raycasts = $WallRaycasts/LeftWallRaycast
|
onready var left_wall_raycasts = $WallRaycasts/LeftWallRaycast
|
||||||
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
|
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
|
||||||
|
onready var effect_player = $BlobbyActionEffects/AnimationPlayer
|
||||||
|
|
||||||
onready var player_state_machine = $BlobbyStateMachine
|
onready var player_state_machine = $BlobbyStateMachine
|
||||||
onready var init_boost = player_state_machine.init_boost
|
onready var init_boost = player_state_machine.init_boost
|
||||||
onready var init_boost_type = player_state_machine.init_boost_type
|
onready var init_boost_type = player_state_machine.init_boost_type
|
||||||
onready var effect_player = $BlobbyActionEffects/AnimationPlayer
|
|
||||||
|
|
||||||
|
|
||||||
var wall_touch_direction = 1
|
var wall_touch_direction = 1
|
||||||
|
|
||||||
@ -356,7 +358,7 @@ func execute_airstrafe(
|
|||||||
return linear_velocity
|
return linear_velocity
|
||||||
|
|
||||||
func execute_movement() -> void:
|
func execute_movement() -> void:
|
||||||
if(GlobalState.is_dead):
|
if(levelState.is_dead):
|
||||||
return
|
return
|
||||||
var snap = Vector2.DOWN * 128
|
var snap = Vector2.DOWN * 128
|
||||||
var center_floor_rot = 0
|
var center_floor_rot = 0
|
||||||
@ -408,8 +410,8 @@ func calculate_slope_rotation(onfloor: bool) -> float:
|
|||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
z_index = 1
|
z_index = 1
|
||||||
GlobalState.is_dead = true
|
levelState.is_dead = true
|
||||||
GlobalState.deaths += 1
|
levelState.deaths += 1
|
||||||
$BlobbySprite/AnimationTree.active = false
|
$BlobbySprite/AnimationTree.active = false
|
||||||
$BlobbySprite/BlobbymationPlayer.play("dying3")
|
$BlobbySprite/BlobbymationPlayer.play("dying3")
|
||||||
|
|
||||||
@ -433,10 +435,6 @@ func _on_Blobby_got_grounded() -> void:
|
|||||||
air_strafe_charges = air_strafe_charges + 1 if max_air_strafe_charges > air_strafe_charges else 0
|
air_strafe_charges = air_strafe_charges + 1 if max_air_strafe_charges > air_strafe_charges else 0
|
||||||
|
|
||||||
|
|
||||||
func _on_GameplaySignalManager_getback_timer_up() -> void:
|
|
||||||
die()
|
|
||||||
|
|
||||||
|
|
||||||
func _on_BlobbySkin_body_exited(body:Node) -> void:
|
func _on_BlobbySkin_body_exited(body:Node) -> void:
|
||||||
# This is for drop through platforms
|
# This is for drop through platforms
|
||||||
if body.get_collision_mask_bit(7):
|
if body.get_collision_mask_bit(7):
|
||||||
|
|||||||
@ -4514,6 +4514,7 @@ size = Vector2( 128, 128 )
|
|||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
|
|
||||||
[node name="IridescenceBall" parent="BubbleShieldViewport" instance=ExtResource( 6 )]
|
[node name="IridescenceBall" parent="BubbleShieldViewport" instance=ExtResource( 6 )]
|
||||||
|
visible = false
|
||||||
|
|
||||||
[node name="BlobbySprite" type="Sprite" parent="."]
|
[node name="BlobbySprite" type="Sprite" parent="."]
|
||||||
position = Vector2( 0, -16 )
|
position = Vector2( 0, -16 )
|
||||||
@ -4609,7 +4610,6 @@ position = Vector2( 0.0392303, -10.002 )
|
|||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="WallRaycasts" type="Node2D" parent="."]
|
[node name="WallRaycasts" type="Node2D" parent="."]
|
||||||
visible = false
|
|
||||||
position = Vector2( 0, -1 )
|
position = Vector2( 0, -1 )
|
||||||
|
|
||||||
[node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"]
|
[node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"]
|
||||||
@ -4618,13 +4618,13 @@ position = Vector2( 0, -1 )
|
|||||||
position = Vector2( -11.9763, -5 )
|
position = Vector2( -11.9763, -5 )
|
||||||
enabled = true
|
enabled = true
|
||||||
cast_to = Vector2( -1.5, 0 )
|
cast_to = Vector2( -1.5, 0 )
|
||||||
collision_mask = 56
|
collision_mask = 40
|
||||||
|
|
||||||
[node name="Left_Wallcast2" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"]
|
[node name="Left_Wallcast2" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"]
|
||||||
position = Vector2( -11.9763, 5 )
|
position = Vector2( -11.9763, 5 )
|
||||||
enabled = true
|
enabled = true
|
||||||
cast_to = Vector2( -1.5, 0 )
|
cast_to = Vector2( -1.5, 0 )
|
||||||
collision_mask = 56
|
collision_mask = 40
|
||||||
|
|
||||||
[node name="RightWallRaycast" type="Node2D" parent="WallRaycasts"]
|
[node name="RightWallRaycast" type="Node2D" parent="WallRaycasts"]
|
||||||
|
|
||||||
@ -4633,14 +4633,14 @@ position = Vector2( 12.0551, -5 )
|
|||||||
enabled = true
|
enabled = true
|
||||||
exclude_parent = false
|
exclude_parent = false
|
||||||
cast_to = Vector2( 1.5, 0 )
|
cast_to = Vector2( 1.5, 0 )
|
||||||
collision_mask = 56
|
collision_mask = 40
|
||||||
|
|
||||||
[node name="Right_Wallcast2" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"]
|
[node name="Right_Wallcast2" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"]
|
||||||
position = Vector2( 12.0551, 5 )
|
position = Vector2( 12.0551, 5 )
|
||||||
enabled = true
|
enabled = true
|
||||||
exclude_parent = false
|
exclude_parent = false
|
||||||
cast_to = Vector2( 1.5, 0 )
|
cast_to = Vector2( 1.5, 0 )
|
||||||
collision_mask = 56
|
collision_mask = 40
|
||||||
|
|
||||||
[node name="SlopeRaycastLeft" type="RayCast2D" parent="."]
|
[node name="SlopeRaycastLeft" type="RayCast2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
|
|||||||
@ -18,6 +18,7 @@ var didTurn
|
|||||||
|
|
||||||
# Adds the intial states
|
# Adds the intial states
|
||||||
func _ready():
|
func _ready():
|
||||||
|
signalManager.connect("getback_timer_up", parent, "die")
|
||||||
add_state("idle")
|
add_state("idle")
|
||||||
add_state("duck")
|
add_state("duck")
|
||||||
add_state("run")
|
add_state("run")
|
||||||
@ -26,7 +27,7 @@ func _ready():
|
|||||||
add_state("fall")
|
add_state("fall")
|
||||||
add_state("wallslide")
|
add_state("wallslide")
|
||||||
state = states.idle
|
state = states.idle
|
||||||
GlobalState.is_dead = false
|
levelState.is_dead = false
|
||||||
set_state(states.idle)
|
set_state(states.idle)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,8 @@ export var camera_horizontal_shift = 60
|
|||||||
export var offset_reset_seconds := 1
|
export var offset_reset_seconds := 1
|
||||||
export var offset_adapt_seconds := 1
|
export var offset_adapt_seconds := 1
|
||||||
|
|
||||||
|
onready var levelState := $"%LevelState"
|
||||||
|
onready var signalManager := $"%SignalManager"
|
||||||
onready var shiftLeft = $CameraAnimationPlayer.get_animation("shiftingLeft")
|
onready var shiftLeft = $CameraAnimationPlayer.get_animation("shiftingLeft")
|
||||||
onready var shiftRight = $CameraAnimationPlayer.get_animation("shiftingRight")
|
onready var shiftRight = $CameraAnimationPlayer.get_animation("shiftingRight")
|
||||||
onready var shiftCenter = $CameraAnimationPlayer.get_animation("shiftingCenter")
|
onready var shiftCenter = $CameraAnimationPlayer.get_animation("shiftingCenter")
|
||||||
@ -42,7 +44,12 @@ func _ready():
|
|||||||
# get_node("LightAnimationPlayer").play("Pulsing")
|
# get_node("LightAnimationPlayer").play("Pulsing")
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
if(!GlobalState.is_dead):
|
if(!levelState.is_dead):
|
||||||
|
if(anim_player.is_playing()):
|
||||||
|
position = blobby.position
|
||||||
|
prev_pos = position
|
||||||
|
_update_lighting_shader()
|
||||||
|
return
|
||||||
var player_vel = (blobby.position - prev_pos)/delta
|
var player_vel = (blobby.position - prev_pos)/delta
|
||||||
# TODO Take average of velocity here
|
# TODO Take average of velocity here
|
||||||
if(abs(player_vel.x) >= blobby.max_velocity["walk"] * 0.97
|
if(abs(player_vel.x) >= blobby.max_velocity["walk"] * 0.97
|
||||||
@ -61,7 +68,6 @@ func _physics_process(delta: float) -> void:
|
|||||||
left_move_time = max(0, left_move_time - delta)
|
left_move_time = max(0, left_move_time - delta)
|
||||||
right_move_time = max(0, right_move_time - delta)
|
right_move_time = max(0, right_move_time - delta)
|
||||||
|
|
||||||
if(!anim_player.is_playing()):
|
|
||||||
_adapt_to_movement(player_vel)
|
_adapt_to_movement(player_vel)
|
||||||
position = blobby.position
|
position = blobby.position
|
||||||
prev_pos = position
|
prev_pos = position
|
||||||
@ -104,8 +110,6 @@ func _adapt_to_movement(velocity: Vector2) -> void:
|
|||||||
var center = get_camera_screen_center()
|
var center = get_camera_screen_center()
|
||||||
var left_edge_pos = center.x - screen_rect.x/2 + camera_horizontal_shift
|
var left_edge_pos = center.x - screen_rect.x/2 + camera_horizontal_shift
|
||||||
var right_edge_pos = center.x + screen_rect.x/2 - camera_horizontal_shift
|
var right_edge_pos = center.x + screen_rect.x/2 - camera_horizontal_shift
|
||||||
# TODO: Blobby can go off screen, when shifting camera at level edge and returning i
|
|
||||||
# n the opposite direction slowly
|
|
||||||
if(left_move_time >= offset_adapt_seconds && !anim_player.is_playing()):
|
if(left_move_time >= offset_adapt_seconds && !anim_player.is_playing()):
|
||||||
left_move_time = 0
|
left_move_time = 0
|
||||||
target_offset.x = -camera_horizontal_shift
|
target_offset.x = -camera_horizontal_shift
|
||||||
|
|||||||
@ -366,6 +366,30 @@ tracks/4/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ 10000000, 10000000 ]
|
"values": [ 10000000, 10000000 ]
|
||||||
}
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/path = NodePath(".:drag_margin_left")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
|
"transitions": PoolRealArray( 1, 0.5 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.2, 0.05 ]
|
||||||
|
}
|
||||||
|
tracks/6/type = "value"
|
||||||
|
tracks/6/path = NodePath(".:drag_margin_right")
|
||||||
|
tracks/6/interp = 1
|
||||||
|
tracks/6/loop_wrap = true
|
||||||
|
tracks/6/imported = false
|
||||||
|
tracks/6/enabled = true
|
||||||
|
tracks/6/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
|
"transitions": PoolRealArray( 1, 0.5 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.2, 0.05 ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=12]
|
[sub_resource type="Animation" id=12]
|
||||||
resource_name = "shiftingLeft"
|
resource_name = "shiftingLeft"
|
||||||
@ -394,6 +418,18 @@ tracks/1/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ -10000000, -10000000 ]
|
"values": [ -10000000, -10000000 ]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath(".:drag_margin_left")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = false
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.2, 0.05 ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=13]
|
[sub_resource type="Animation" id=13]
|
||||||
resource_name = "shiftingRight"
|
resource_name = "shiftingRight"
|
||||||
@ -422,6 +458,18 @@ tracks/1/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ 10000000, 10000000 ]
|
"values": [ 10000000, 10000000 ]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath(".:drag_margin_right")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = false
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.2, 0.05 ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=9]
|
[sub_resource type="Animation" id=9]
|
||||||
resource_name = "Pulsing"
|
resource_name = "Pulsing"
|
||||||
@ -529,9 +577,7 @@ zoom = Vector2( 0.75, 0.75 )
|
|||||||
limit_smoothed = true
|
limit_smoothed = true
|
||||||
drag_margin_h_enabled = true
|
drag_margin_h_enabled = true
|
||||||
drag_margin_v_enabled = true
|
drag_margin_v_enabled = true
|
||||||
drag_margin_left = 0.05
|
|
||||||
drag_margin_top = 0.0
|
drag_margin_top = 0.0
|
||||||
drag_margin_right = 0.05
|
|
||||||
drag_margin_bottom = 0.0
|
drag_margin_bottom = 0.0
|
||||||
editor_draw_drag_margin = true
|
editor_draw_drag_margin = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
@ -633,10 +679,10 @@ texture = ExtResource( 8 )
|
|||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
visible = false
|
visible = false
|
||||||
frames = SubResource( 7 )
|
frames = SubResource( 7 )
|
||||||
frame = 4
|
frame = 13
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
frames = SubResource( 8 )
|
frames = SubResource( 8 )
|
||||||
frame = 9
|
frame = 4
|
||||||
playing = true
|
playing = true
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
extends Player
|
extends Actor
|
||||||
|
|
||||||
export var score := 100
|
|
||||||
|
|
||||||
onready var left_src = $SlopeRaycastLeft
|
onready var left_src = $SlopeRaycastLeft
|
||||||
onready var right_src = $SlopeRaycastRight
|
onready var right_src = $SlopeRaycastRight
|
||||||
@ -39,7 +37,7 @@ func _physics_process(delta: float) -> void:
|
|||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
GlobalState.score += score
|
levelState.kills += 1
|
||||||
|
|
||||||
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
||||||
if area.is_in_group("harmful"):
|
if area.is_in_group("harmful"):
|
||||||
|
|||||||
@ -1,12 +1,8 @@
|
|||||||
extends Player
|
extends Actor
|
||||||
|
|
||||||
export var score := 100
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
set_physics_process(false)
|
set_physics_process(false)
|
||||||
|
|
||||||
|
|
||||||
# TODO adapt to groups
|
# TODO adapt to groups
|
||||||
func _on_StompDetector_body_entered(body: Node) -> void:
|
func _on_StompDetector_body_entered(body: Node) -> void:
|
||||||
if body.global_position.y > get_node("StompDetector").global_position.y:
|
if body.global_position.y > get_node("StompDetector").global_position.y:
|
||||||
@ -30,7 +26,7 @@ func player_on_floor_direction():
|
|||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
GlobalState.score += score
|
levelState.kills += 1
|
||||||
|
|
||||||
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
||||||
if area.is_in_group("harmful"):
|
if area.is_in_group("harmful"):
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
extends Player
|
extends Actor
|
||||||
|
|
||||||
export var score := 100
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -26,7 +24,7 @@ func _physics_process(delta: float) -> void:
|
|||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
GlobalState.score += score
|
levelState.kills += 1
|
||||||
|
|
||||||
|
|
||||||
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
extends Player
|
extends Actor
|
||||||
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
|
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
|
||||||
|
|
||||||
onready var players = get_tree().get_nodes_in_group("player")
|
onready var players = get_tree().get_nodes_in_group("player")
|
||||||
@ -12,7 +12,6 @@ onready var target_lost_timer: Timer
|
|||||||
onready var update_navigation_timer: Timer
|
onready var update_navigation_timer: Timer
|
||||||
onready var rng = RandomNumberGenerator.new()
|
onready var rng = RandomNumberGenerator.new()
|
||||||
|
|
||||||
export var score := 100
|
|
||||||
# Is given in blocks
|
# Is given in blocks
|
||||||
export var vision_distance := 6.0
|
export var vision_distance := 6.0
|
||||||
export var blindspot_angle := 20
|
export var blindspot_angle := 20
|
||||||
@ -155,7 +154,7 @@ func update_navigation() -> void:
|
|||||||
nav_agent.set_target_location(next_waypoint)
|
nav_agent.set_target_location(next_waypoint)
|
||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
GlobalState.score += score
|
levelState.kills += 1
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
func get_facing_direction() -> float:
|
func get_facing_direction() -> float:
|
||||||
|
|||||||
@ -219,6 +219,7 @@ valign = 1
|
|||||||
|
|
||||||
[node name="FlyerSprite" type="Sprite" parent="."]
|
[node name="FlyerSprite" type="Sprite" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
scale = Vector2( -1, 1 )
|
||||||
texture = ExtResource( 4 )
|
texture = ExtResource( 4 )
|
||||||
hframes = 2
|
hframes = 2
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
extends Player
|
extends Actor
|
||||||
|
|
||||||
export var score := 100
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -30,7 +28,7 @@ func is_at_ledge():
|
|||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
GlobalState.score += score
|
levelState.kills += 1
|
||||||
|
|
||||||
|
|
||||||
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
extends Player
|
extends Actor
|
||||||
|
|
||||||
export var score := 100
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -31,7 +29,7 @@ func is_safe_drop():
|
|||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
GlobalState.score += score
|
levelState.kills += 1
|
||||||
|
|
||||||
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
func _on_EnemySkin_area_entered(area:Area2D) -> void:
|
||||||
if area.is_in_group("harmful"):
|
if area.is_in_group("harmful"):
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
extends Player
|
extends Actor
|
||||||
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
|
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
|
||||||
|
|
||||||
onready var players = get_tree().get_nodes_in_group("player")
|
onready var players = get_tree().get_nodes_in_group("player")
|
||||||
@ -13,7 +13,6 @@ onready var jump_timer: Timer
|
|||||||
onready var target_lost_timer: Timer
|
onready var target_lost_timer: Timer
|
||||||
onready var rng = RandomNumberGenerator.new()
|
onready var rng = RandomNumberGenerator.new()
|
||||||
|
|
||||||
export var score := 100
|
|
||||||
# Is given in blocks
|
# Is given in blocks
|
||||||
export var vision_distance := 6.0
|
export var vision_distance := 6.0
|
||||||
export var attack_jump_range := 6.0
|
export var attack_jump_range := 6.0
|
||||||
@ -98,7 +97,7 @@ func execute_movement(delta: float) -> void:
|
|||||||
|
|
||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
GlobalState.score += score
|
levelState.kills += 1
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -350,7 +350,7 @@ extents = Vector2( 18.2143, 13.5955 )
|
|||||||
|
|
||||||
[node name="WhatAreFrog" type="KinematicBody2D" groups=["harmful"]]
|
[node name="WhatAreFrog" type="KinematicBody2D" groups=["harmful"]]
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 9
|
collision_mask = 57
|
||||||
collision/safe_margin = 0.001
|
collision/safe_margin = 0.001
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
extends Node
|
|
||||||
|
|
||||||
signal score_updated
|
|
||||||
signal player_died
|
|
||||||
|
|
||||||
#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
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://src/Autoload/GlobalState.gd" type="Script" id=1]
|
|
||||||
|
|
||||||
[node name="GlobalState" type="Node"]
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
@ -1,9 +1,7 @@
|
|||||||
[gd_scene load_steps=6 format=2]
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Contraptions/Platform/FlyingLaserCutter.gd" type="Script" id=1]
|
[ext_resource path="res://src/Contraptions/Platform/FlyingLaserCutter.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://assets/contraption/FlyingLaserCutterShaded.png" type="Texture" id=2]
|
||||||
[sub_resource type="StreamTexture" id=5]
|
|
||||||
load_path = "res://.import/FlyingLaserCutter.png-9cf80385a79c58041216f8c2509a5bab.stex"
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
[sub_resource type="Animation" id=2]
|
||||||
length = 2.4
|
length = 2.4
|
||||||
@ -25,7 +23,7 @@ tracks/0/keys = {
|
|||||||
extents = Vector2( 11.4921, 11.9129 )
|
extents = Vector2( 11.4921, 11.9129 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=4]
|
[sub_resource type="RectangleShape2D" id=4]
|
||||||
extents = Vector2( 3.06672, 10.9923 )
|
extents = Vector2( 3.067, 10.5 )
|
||||||
|
|
||||||
[node name="FlyingLaserCutter" type="Node2D"]
|
[node name="FlyingLaserCutter" type="Node2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
@ -36,7 +34,7 @@ collision_mask = 57
|
|||||||
collision/safe_margin = 0.001
|
collision/safe_margin = 0.001
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="FlyingLaserCutterBody"]
|
[node name="Sprite" type="Sprite" parent="FlyingLaserCutterBody"]
|
||||||
texture = SubResource( 5 )
|
texture = ExtResource( 2 )
|
||||||
hframes = 5
|
hframes = 5
|
||||||
vframes = 5
|
vframes = 5
|
||||||
frame = 21
|
frame = 21
|
||||||
@ -48,20 +46,17 @@ __meta__ = {
|
|||||||
anims/default = SubResource( 2 )
|
anims/default = SubResource( 2 )
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="FlyingLaserCutterBody"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="FlyingLaserCutterBody"]
|
||||||
visible = false
|
|
||||||
position = Vector2( -0.461, 0 )
|
position = Vector2( -0.461, 0 )
|
||||||
shape = SubResource( 3 )
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
[node name="LaserArea" type="Area2D" parent="FlyingLaserCutterBody" groups=["harmful"]]
|
[node name="LaserArea" type="Area2D" parent="FlyingLaserCutterBody" groups=["harmful"]]
|
||||||
process_priority = -1
|
process_priority = -1
|
||||||
visible = false
|
|
||||||
collision_layer = 32
|
collision_layer = 32
|
||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
|
|
||||||
[node name="PainZone" type="CollisionShape2D" parent="FlyingLaserCutterBody/LaserArea" groups=["harmful"]]
|
[node name="PainZone" type="CollisionShape2D" parent="FlyingLaserCutterBody/LaserArea" groups=["harmful"]]
|
||||||
process_priority = -1
|
process_priority = -1
|
||||||
visible = false
|
position = Vector2( 9.647, 0 )
|
||||||
position = Vector2( 9.64728, 0.0077219 )
|
|
||||||
shape = SubResource( 4 )
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
[node name="Triggers" type="Node2D" parent="FlyingLaserCutterBody"]
|
[node name="Triggers" type="Node2D" parent="FlyingLaserCutterBody"]
|
||||||
|
|||||||
@ -27,7 +27,7 @@ tracks/0/keys = {
|
|||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
||||||
collision_layer = 8
|
collision_layer = 16
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
motion/sync_to_physics = true
|
motion/sync_to_physics = true
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ tracks/0/keys = {
|
|||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
||||||
collision_layer = 8
|
collision_layer = 16
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
motion/sync_to_physics = true
|
motion/sync_to_physics = true
|
||||||
|
|
||||||
|
|||||||
@ -50,5 +50,5 @@ animations = [ {
|
|||||||
position = Vector2( 0, 1.5 )
|
position = Vector2( 0, 1.5 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
frames = SubResource( 1 )
|
frames = SubResource( 1 )
|
||||||
frame = 19
|
frame = 11
|
||||||
playing = true
|
playing = true
|
||||||
|
|||||||
@ -4,7 +4,7 @@ onready var buttonPlayer = $"%ButtonPlayer"
|
|||||||
onready var activatorArea = $"%ActivatorArea"
|
onready var activatorArea = $"%ActivatorArea"
|
||||||
onready var indicatorPlayer = $"%IndicatorPlayer"
|
onready var indicatorPlayer = $"%IndicatorPlayer"
|
||||||
onready var elevator = get_node("./Portal")
|
onready var elevator = get_node("./Portal")
|
||||||
onready var signalManager = get_node("../GameplaySignalManager")
|
onready var signalManager = $"%SignalManager"
|
||||||
|
|
||||||
|
|
||||||
func selfActivate():
|
func selfActivate():
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.gd" type="Script" id=1]
|
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.gd" type="Script" id=1]
|
||||||
|
|
||||||
[sub_resource type="StreamTexture" id=1]
|
[sub_resource type="StreamTexture" id=1]
|
||||||
load_path = "res://.import/button.png-6b06252879983e2da39a6ce37483d567.stex"
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
[sub_resource type="Animation" id=2]
|
||||||
resource_name = "pushing"
|
resource_name = "pushing"
|
||||||
@ -22,7 +21,6 @@ tracks/0/keys = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="StreamTexture" id=17]
|
[sub_resource type="StreamTexture" id=17]
|
||||||
load_path = "res://.import/buttonStateIndicator.png-4ad4dfff1d6add183d62f1b602452b7a.stex"
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id=10]
|
[sub_resource type="Animation" id=10]
|
||||||
length = 0.1
|
length = 0.1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=2]
|
[gd_scene load_steps=14 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2]
|
||||||
@ -7,7 +7,9 @@
|
|||||||
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=10]
|
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=8]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=9]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.gd" type="Script" id=10]
|
||||||
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=12]
|
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=12]
|
||||||
[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=13]
|
[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=13]
|
||||||
|
|
||||||
@ -19,6 +21,12 @@ __meta__ = {
|
|||||||
"_edit_vertical_guides_": [ 2880.0 ]
|
"_edit_vertical_guides_": [ 2880.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="SignalManager" parent="." instance=ExtResource( 8 )]
|
||||||
|
|
||||||
|
[node name="LevelState" parent="." instance=ExtResource( 9 )]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource( 10 )
|
||||||
|
|
||||||
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
|
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
|
||||||
|
|
||||||
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
|
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
|
||||||
@ -28,10 +36,10 @@ wait_time = 20.0
|
|||||||
drag_margin_bottom = 0.3
|
drag_margin_bottom = 0.3
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
||||||
frame = 4
|
frame = 1
|
||||||
|
|
||||||
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
||||||
frame = 12
|
frame = 5
|
||||||
|
|
||||||
[node name="Blobby" parent="." instance=ExtResource( 2 )]
|
[node name="Blobby" parent="." instance=ExtResource( 2 )]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@ -131,17 +139,11 @@ rotation = 1.57079
|
|||||||
position = Vector2( 684, 12 )
|
position = Vector2( 684, 12 )
|
||||||
rotation = 1.57079
|
rotation = 1.57079
|
||||||
|
|
||||||
[node name="GameplaySignalManager" type="Node2D" parent="."]
|
|
||||||
script = ExtResource( 10 )
|
|
||||||
|
|
||||||
[node name="Portal" parent="." instance=ExtResource( 5 )]
|
[node name="Portal" parent="." instance=ExtResource( 5 )]
|
||||||
position = Vector2( 1488, -120 )
|
position = Vector2( 1488, -120 )
|
||||||
next_scene = ExtResource( 4 )
|
next_scene = ExtResource( 4 )
|
||||||
|
|
||||||
[connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"]
|
|
||||||
[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"]
|
[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"]
|
||||||
[connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"]
|
|
||||||
[connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"]
|
|
||||||
|
|
||||||
[editable path="UserInterface"]
|
[editable path="UserInterface"]
|
||||||
[editable path="UserInterface/HUD"]
|
[editable path="UserInterface/HUD"]
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=16 format=2]
|
[gd_scene load_steps=18 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2]
|
||||||
@ -7,8 +7,10 @@
|
|||||||
[ext_resource path="res://src/Contraptions/Platform/FlyingPlatform.gd" type="Script" id=5]
|
[ext_resource path="res://src/Contraptions/Platform/FlyingPlatform.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=7]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.gd" type="Script" id=8]
|
||||||
[ext_resource path="res://assets/contraption/FlyingPlatformClean.png" type="Texture" id=9]
|
[ext_resource path="res://assets/contraption/FlyingPlatformClean.png" type="Texture" id=9]
|
||||||
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=10]
|
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=10]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=11]
|
||||||
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=12]
|
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=12]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
|
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
|
||||||
@ -73,6 +75,12 @@ __meta__ = {
|
|||||||
"_edit_vertical_guides_": [ 2880.0 ]
|
"_edit_vertical_guides_": [ 2880.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="SignalManager" parent="." instance=ExtResource( 10 )]
|
||||||
|
|
||||||
|
[node name="LevelState" parent="." instance=ExtResource( 11 )]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource( 8 )
|
||||||
|
|
||||||
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
|
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
|
||||||
|
|
||||||
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
|
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
|
||||||
@ -81,10 +89,10 @@ wait_time = 20.0
|
|||||||
[node name="BlobbyCam" parent="." instance=ExtResource( 12 )]
|
[node name="BlobbyCam" parent="." instance=ExtResource( 12 )]
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
||||||
frame = 1
|
frame = 0
|
||||||
|
|
||||||
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
||||||
frame = 6
|
frame = 5
|
||||||
|
|
||||||
[node name="Blobby" parent="." instance=ExtResource( 2 )]
|
[node name="Blobby" parent="." instance=ExtResource( 2 )]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@ -193,13 +201,7 @@ position = Vector2( 492, -156 )
|
|||||||
[node name="Spikes4" parent="TileMap" instance=ExtResource( 3 )]
|
[node name="Spikes4" parent="TileMap" instance=ExtResource( 3 )]
|
||||||
position = Vector2( 468, -156 )
|
position = Vector2( 468, -156 )
|
||||||
|
|
||||||
[node name="GameplaySignalManager" type="Node2D" parent="."]
|
|
||||||
script = ExtResource( 10 )
|
|
||||||
|
|
||||||
[connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"]
|
|
||||||
[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"]
|
[connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"]
|
||||||
[connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"]
|
|
||||||
[connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"]
|
|
||||||
|
|
||||||
[editable path="UserInterface"]
|
[editable path="UserInterface"]
|
||||||
[editable path="UserInterface/HUD"]
|
[editable path="UserInterface/HUD"]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=2]
|
[gd_scene load_steps=15 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://assets/environment/blocks/legacy/24BlockBasic.png" type="Texture" id=2]
|
[ext_resource path="res://assets/environment/blocks/legacy/24BlockBasic.png" type="Texture" id=2]
|
||||||
@ -9,6 +9,9 @@
|
|||||||
[ext_resource path="res://src/Actors/Enemies/Beings/SmortEnemy.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://src/Actors/Enemies/Beings/SmortEnemy.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://src/Actors/Enemies/Beings/DartingEnemy.tscn" type="PackedScene" id=8]
|
[ext_resource path="res://src/Actors/Enemies/Beings/DartingEnemy.tscn" type="PackedScene" id=8]
|
||||||
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9]
|
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.gd" type="Script" id=10]
|
||||||
|
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=11]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=12]
|
||||||
|
|
||||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||||
points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 )
|
points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 )
|
||||||
@ -42,6 +45,12 @@ __meta__ = {
|
|||||||
"_edit_vertical_guides_": [ 2880.0 ]
|
"_edit_vertical_guides_": [ 2880.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="SignalManager" parent="." instance=ExtResource( 11 )]
|
||||||
|
|
||||||
|
[node name="LevelState" parent="." instance=ExtResource( 12 )]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource( 10 )
|
||||||
|
|
||||||
[node name="UserInterface" parent="." instance=ExtResource( 3 )]
|
[node name="UserInterface" parent="." instance=ExtResource( 3 )]
|
||||||
|
|
||||||
[node name="BlobbyCam" parent="." instance=ExtResource( 9 )]
|
[node name="BlobbyCam" parent="." instance=ExtResource( 9 )]
|
||||||
|
|||||||
@ -1,16 +1,20 @@
|
|||||||
[gd_scene load_steps=12 format=2]
|
[gd_scene load_steps=15 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
||||||
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=2]
|
[ext_resource path="res://src/Utilities/LevelState.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=8]
|
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=8]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=9]
|
||||||
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=10]
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=12]
|
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=12]
|
||||||
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=13]
|
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=13]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeStateMachinePlayback" id=5]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
|
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
|
||||||
|
|
||||||
[node name="LevelTemplate" type="Node2D"]
|
[node name="LevelTemplate" type="Node2D"]
|
||||||
@ -19,6 +23,12 @@ __meta__ = {
|
|||||||
"_edit_vertical_guides_": [ 2880.0 ]
|
"_edit_vertical_guides_": [ 2880.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="SignalManager" parent="." instance=ExtResource( 5 )]
|
||||||
|
|
||||||
|
[node name="LevelState" parent="." instance=ExtResource( 9 )]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="TileMap" type="TileMap" parent="."]
|
[node name="TileMap" type="TileMap" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
tile_set = ExtResource( 1 )
|
tile_set = ExtResource( 1 )
|
||||||
@ -42,6 +52,9 @@ rect_pivot_offset = Vector2( 389, 267 )
|
|||||||
position = Vector2( 72, 301 )
|
position = Vector2( 72, 301 )
|
||||||
patrolling_slowdown = 0.4
|
patrolling_slowdown = 0.4
|
||||||
|
|
||||||
|
[node name="AnimationTree" parent="Flyer/FlyerSprite" index="1"]
|
||||||
|
parameters/playback = SubResource( 5 )
|
||||||
|
|
||||||
[node name="NavigationAgent2D" parent="Flyer" index="6"]
|
[node name="NavigationAgent2D" parent="Flyer" index="6"]
|
||||||
path_max_distance = 10.0
|
path_max_distance = 10.0
|
||||||
|
|
||||||
@ -87,13 +100,6 @@ position = Vector2( -1464, 84 )
|
|||||||
monitoring = false
|
monitoring = false
|
||||||
next_scene = ExtResource( 7 )
|
next_scene = ExtResource( 7 )
|
||||||
|
|
||||||
[node name="GameplaySignalManager" type="Node2D" parent="."]
|
|
||||||
script = ExtResource( 2 )
|
|
||||||
|
|
||||||
[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"]
|
||||||
[editable path="UserInterface/HUD"]
|
[editable path="UserInterface/HUD"]
|
||||||
[editable path="Flyer"]
|
[editable path="Flyer"]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1,7 +1,9 @@
|
|||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=10 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
||||||
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=2]
|
[ext_resource path="res://src/Utilities/LevelState.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=3]
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=10]
|
||||||
@ -16,6 +18,12 @@ __meta__ = {
|
|||||||
"_edit_vertical_guides_": [ 2880.0 ]
|
"_edit_vertical_guides_": [ 2880.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="SignalManager" parent="." instance=ExtResource( 3 )]
|
||||||
|
|
||||||
|
[node name="LevelState" parent="." instance=ExtResource( 4 )]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="UserInterface" parent="." instance=ExtResource( 6 )]
|
[node name="UserInterface" parent="." instance=ExtResource( 6 )]
|
||||||
|
|
||||||
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
|
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
|
||||||
@ -213,10 +221,10 @@ position = Vector2( 210, -15 )
|
|||||||
[node name="BlobbyCam" parent="." instance=ExtResource( 11 )]
|
[node name="BlobbyCam" parent="." instance=ExtResource( 11 )]
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
||||||
frame = 0
|
frame = 9
|
||||||
|
|
||||||
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
||||||
frame = 5
|
frame = 0
|
||||||
|
|
||||||
[node name="Blobby" parent="." instance=ExtResource( 10 )]
|
[node name="Blobby" parent="." instance=ExtResource( 10 )]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@ -226,13 +234,6 @@ scale = Vector2( 0.878906, 0.936025 )
|
|||||||
[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"]
|
[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"]
|
||||||
parameters/playback = SubResource( 4 )
|
parameters/playback = SubResource( 4 )
|
||||||
|
|
||||||
[node name="GameplaySignalManager" type="Node2D" parent="."]
|
|
||||||
script = ExtResource( 2 )
|
|
||||||
|
|
||||||
[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"]
|
||||||
[editable path="UserInterface/HUD"]
|
[editable path="UserInterface/HUD"]
|
||||||
[editable path="BlobbyCam"]
|
[editable path="BlobbyCam"]
|
||||||
|
|||||||
103
src/Levels/LevelTemplate.tscn
Normal file
103
src/Levels/LevelTemplate.tscn
Normal file
File diff suppressed because one or more lines are too long
11
src/NeutralObjects/Coin.gd
Normal file
11
src/NeutralObjects/Coin.gd
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
extends Area2D
|
||||||
|
|
||||||
|
onready var anim_player: AnimationPlayer = get_node("AnimationPlayer")
|
||||||
|
onready var levelState := $"%LevelState"
|
||||||
|
|
||||||
|
export var currencyValue: = 1
|
||||||
|
|
||||||
|
func _on_body_entered(_body: Node) -> void:
|
||||||
|
levelState.currency += currencyValue
|
||||||
|
anim_player.play("fade_out")
|
||||||
|
queue_free()
|
||||||
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=320 format=2]
|
[gd_scene load_steps=320 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://assets/neutral object/whitegold orbicle/0020 (Klein)-fs8.png" type="Texture" id=1]
|
[ext_resource path="res://assets/neutral object/whitegold orbicle/0020 (Klein)-fs8.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://assets/contraption/Coin.gd" type="Script" id=2]
|
[ext_resource path="res://src/NeutralObjects/Coin.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://assets/neutral object/whitegold orbicle/0021 (Klein)-fs8.png" type="Texture" id=3]
|
[ext_resource path="res://assets/neutral object/whitegold orbicle/0021 (Klein)-fs8.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://assets/neutral object/whitegold orbicle/0023 (Klein)-fs8.png" type="Texture" id=4]
|
[ext_resource path="res://assets/neutral object/whitegold orbicle/0023 (Klein)-fs8.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://assets/neutral object/whitegold orbicle/0025 (Klein)-fs8.png" type="Texture" id=5]
|
[ext_resource path="res://assets/neutral object/whitegold orbicle/0025 (Klein)-fs8.png" type="Texture" id=5]
|
||||||
@ -407,7 +407,7 @@ position = Vector2( 0, -2.52127 )
|
|||||||
scale = Vector2( 0.149428, 0.151196 )
|
scale = Vector2( 0.149428, 0.151196 )
|
||||||
frames = SubResource( 4 )
|
frames = SubResource( 4 )
|
||||||
animation = "rotate"
|
animation = "rotate"
|
||||||
frame = 243
|
frame = 301
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
||||||
|
|||||||
@ -8,6 +8,10 @@ var states = {}
|
|||||||
# Parent Node that uses these states
|
# Parent Node that uses these states
|
||||||
onready var parent = get_parent()
|
onready var parent = get_parent()
|
||||||
|
|
||||||
|
# Scene Singletons
|
||||||
|
onready var levelState := get_tree().root.get_child(0).get_node("%LevelState")
|
||||||
|
onready var signalManager := get_tree().root.get_child(0).get_node("%SignalManager")
|
||||||
|
|
||||||
|
|
||||||
# Basic process flow for every SM
|
# Basic process flow for every SM
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
extends Button
|
extends Button
|
||||||
|
|
||||||
|
onready var levelState := $"../%LevelState"
|
||||||
|
|
||||||
func _on_button_up() -> void:
|
func _on_button_up() -> void:
|
||||||
GlobalState.score = 0
|
levelState.kills = 0
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
get_tree().reload_current_scene()
|
get_tree().reload_current_scene()
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
extends Label
|
extends Label
|
||||||
|
|
||||||
|
onready var levelState = $"%LevelState"
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
self.text = self.text % [GlobalState.score, GlobalState.deaths]
|
self.text = self.text % [levelState.currency, levelState.kills, levelState.frees]
|
||||||
|
|||||||
@ -18,5 +18,5 @@ margin_top = -46.5
|
|||||||
margin_right = 206.5
|
margin_right = 206.5
|
||||||
margin_bottom = 46.5
|
margin_bottom = 46.5
|
||||||
custom_fonts/font = SubResource( 1 )
|
custom_fonts/font = SubResource( 1 )
|
||||||
text = "Your final score is %s.
|
text = "You collected %s orbicles.
|
||||||
Your died %s times."
|
You died %s times, destroyed %s and freed %s beings."
|
||||||
|
|||||||
@ -4,12 +4,19 @@ extends Control
|
|||||||
onready var current_scene := get_tree().get_current_scene()
|
onready var current_scene := get_tree().get_current_scene()
|
||||||
onready var pause_overlay: ColorRect = $HUDOverlay
|
onready var pause_overlay: ColorRect = $HUDOverlay
|
||||||
onready var timer: Label = $HUDOverlay/GetBackTimer
|
onready var timer: Label = $HUDOverlay/GetBackTimer
|
||||||
onready var score: Label = $HUDOverlay/Score
|
onready var currency: Label = $HUDOverlay/Currency
|
||||||
|
onready var kills: Label = $HUDOverlay/Kills
|
||||||
|
onready var frees: Label = $HUDOverlay/Frees
|
||||||
|
onready var levelState := get_tree().root.get_child(0).get_node("%LevelState")
|
||||||
|
onready var signalManager := get_tree().root.get_child(0).get_node("%SignalManager")
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
#TODO Connect what HOW?
|
#TODO Connect what HOW?
|
||||||
GlobalState.connect("score_updated", self, "update_interface")
|
signalManager.connect("currency_updated", self, "update_interface")
|
||||||
|
signalManager.connect("kills_updated", self, "update_interface")
|
||||||
|
signalManager.connect("frees_updated", self, "update_interface")
|
||||||
|
signalManager.connect("termial_activated", self, "_on_SignalManager_terminal_activated")
|
||||||
update_interface()
|
update_interface()
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
@ -29,7 +36,9 @@ func _zoom_timer() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func update_interface() -> void:
|
func update_interface() -> void:
|
||||||
score.text = "Score: %s" % GlobalState.score
|
currency.text = "Wallet: %s Orbicles" % levelState.currency
|
||||||
|
kills.text = "Kills: %s" % levelState.kills
|
||||||
|
frees.text = "Freed: %s" % levelState.frees
|
||||||
|
|
||||||
|
|
||||||
func _on_SignalManager_terminal_activated() -> void:
|
func _on_SignalManager_terminal_activated() -> void:
|
||||||
|
|||||||
@ -45,31 +45,45 @@ script = ExtResource( 5 )
|
|||||||
|
|
||||||
[node name="HUDOverlay" type="ColorRect" parent="."]
|
[node name="HUDOverlay" type="ColorRect" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
anchor_left = 0.5
|
margin_right = 480.0
|
||||||
anchor_right = 0.5
|
margin_bottom = 270.0
|
||||||
margin_left = -320.0
|
|
||||||
margin_right = 320.0
|
|
||||||
margin_bottom = 360.0
|
|
||||||
color = Color( 0, 0, 0, 0 )
|
color = Color( 0, 0, 0, 0 )
|
||||||
|
|
||||||
[node name="Score" type="Label" parent="HUDOverlay"]
|
[node name="Currency" type="Label" parent="HUDOverlay"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
margin_left = 3.0
|
||||||
anchor_left = 1.0
|
margin_top = 291.0
|
||||||
anchor_right = 1.0
|
margin_right = 174.0
|
||||||
margin_left = -96.0001
|
margin_bottom = 304.0
|
||||||
rect_scale = Vector2( 0.590909, 0.627907 )
|
rect_scale = Vector2( 0.590909, 0.627907 )
|
||||||
text = "Score: 100000000000000000"
|
text = "Orbicles: 100000000000000000"
|
||||||
align = 2
|
|
||||||
|
[node name="Kills" type="Label" parent="HUDOverlay"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
margin_left = 3.0
|
||||||
|
margin_top = 315.0
|
||||||
|
margin_right = 224.0
|
||||||
|
margin_bottom = 328.0
|
||||||
|
rect_scale = Vector2( 0.590909, 0.627907 )
|
||||||
|
text = "Destroyed Beings: 100000000000000000"
|
||||||
|
|
||||||
|
[node name="Frees" type="Label" parent="HUDOverlay"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
margin_left = 3.0
|
||||||
|
margin_top = 339.0
|
||||||
|
margin_right = 200.0
|
||||||
|
margin_bottom = 352.0
|
||||||
|
rect_scale = Vector2( 0.590909, 0.627907 )
|
||||||
|
text = "Freed Beings: 100000000000000000"
|
||||||
|
|
||||||
[node name="GetBackTimer" type="Label" parent="HUDOverlay"]
|
[node name="GetBackTimer" type="Label" parent="HUDOverlay"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
anchor_right = 0.5
|
anchor_right = 0.5
|
||||||
margin_left = -9.0
|
margin_left = 45.0
|
||||||
margin_right = 9.0
|
margin_right = 63.0
|
||||||
margin_bottom = 14.0
|
margin_bottom = 13.0
|
||||||
rect_scale = Vector2( 5, 5 )
|
rect_scale = Vector2( 5, 5 )
|
||||||
text = "100"
|
text = "100"
|
||||||
align = 2
|
align = 2
|
||||||
|
|||||||
@ -4,11 +4,13 @@ extends Control
|
|||||||
onready var current_scene := get_tree().get_current_scene()
|
onready var current_scene := get_tree().get_current_scene()
|
||||||
onready var pause_overlay: ColorRect = get_node("PauseOverlay")
|
onready var pause_overlay: ColorRect = get_node("PauseOverlay")
|
||||||
onready var pause_title: Label = get_node("PauseOverlay/Title")
|
onready var pause_title: Label = get_node("PauseOverlay/Title")
|
||||||
|
onready var levelState := $"../%LevelState"
|
||||||
|
onready var signalManager := $"../%SignalManager"
|
||||||
|
|
||||||
var paused := false setget set_paused
|
var paused := false setget set_paused
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
GlobalState.connect("player_died", self, "_on_GlobalState_player_died")
|
signalManager.connect("player_died", self, "_on_GlobalState_player_died")
|
||||||
|
|
||||||
|
|
||||||
func _on_GlobalState_player_died() -> void:
|
func _on_GlobalState_player_died() -> void:
|
||||||
|
|||||||
@ -1,31 +0,0 @@
|
|||||||
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
|
|
||||||
34
src/Utilities/LevelState.gd
Normal file
34
src/Utilities/LevelState.gd
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
onready var signalManager := get_tree().root.get_child(0).get_node("%SignalManager")
|
||||||
|
|
||||||
|
#TODO Easteregg pls
|
||||||
|
var currency: = 0 setget set_currency
|
||||||
|
var deaths: = 0 setget set_deaths
|
||||||
|
var kills: = 0 setget set_kills
|
||||||
|
var frees: = 0 setget set_frees
|
||||||
|
# TODO Rename probs
|
||||||
|
var is_dead: = false setget set_dead
|
||||||
|
|
||||||
|
func reset() -> void:
|
||||||
|
deaths = 0
|
||||||
|
kills = 0
|
||||||
|
currency = 0
|
||||||
|
|
||||||
|
func set_currency(value: int) -> void:
|
||||||
|
currency = value
|
||||||
|
signalManager.emit_signal("currency_updated")
|
||||||
|
|
||||||
|
func set_deaths(value: int) -> void:
|
||||||
|
deaths = value
|
||||||
|
|
||||||
|
func set_kills(value: int) -> void:
|
||||||
|
kills = value
|
||||||
|
signalManager.emit_signal("kills_updated")
|
||||||
|
|
||||||
|
func set_frees(value: int) -> void:
|
||||||
|
frees = value
|
||||||
|
signalManager.emit_signal("frees_updated")
|
||||||
|
|
||||||
|
func set_dead(value: bool) -> void:
|
||||||
|
is_dead = value
|
||||||
6
src/Utilities/LevelState.tscn
Normal file
6
src/Utilities/LevelState.tscn
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://src/Utilities/LevelState.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="LevelState" type="Node"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
11
src/Utilities/SignalManager.gd
Normal file
11
src/Utilities/SignalManager.gd
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
signal terminal_activated()
|
||||||
|
signal getback_timer_up()
|
||||||
|
signal currency_updated()
|
||||||
|
signal kills_updated()
|
||||||
|
signal frees_updated()
|
||||||
|
signal player_died()
|
||||||
|
|
||||||
|
func _on_Timer_timeout() -> void:
|
||||||
|
emit_signal("getback_timer_up")
|
||||||
7
src/Utilities/SignalManager.tscn
Normal file
7
src/Utilities/SignalManager.tscn
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://src/Utilities/SignalManager.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="SignalManager" type="Node"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource( 1 )
|
||||||
Loading…
Reference in New Issue
Block a user