Add death effect and sound to PlayerDeathComponent; reset player state on death
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
class_name PlayerDeathComponent
|
||||
extends Node
|
||||
extends Node2D
|
||||
|
||||
@export var death_sfx: AudioStreamPlayer2D
|
||||
@export var death_effect: PackedScene
|
||||
|
||||
@onready var gm: GM = $"/root/GameManager"
|
||||
|
||||
@@ -9,6 +12,17 @@ func reset_scene() -> void:
|
||||
|
||||
|
||||
func _on_health_component_on_death() -> void:
|
||||
# todo: play audio on death
|
||||
gm.remove_lives(1)
|
||||
if death_sfx:
|
||||
death_sfx.play()
|
||||
if death_effect:
|
||||
var effect: Node2D = death_effect.instantiate()
|
||||
get_parent().add_child(effect)
|
||||
effect.global_position = global_position
|
||||
effect.scale = Vector2(1.5, 1.5)
|
||||
|
||||
if gm.get_lives() == 1:
|
||||
gm.reset_player_state()
|
||||
else:
|
||||
gm.remove_lives(1)
|
||||
|
||||
call_deferred("reset_scene")
|
||||
|
@@ -51,4 +51,12 @@ func unlock_skill(skill_name: String) -> void:
|
||||
|
||||
func unlock_skills(skill_names: Array[String]) -> void:
|
||||
for skill_name in skill_names:
|
||||
unlock_skill(skill_name)
|
||||
unlock_skill(skill_name)
|
||||
|
||||
|
||||
func reset_player_state() -> void:
|
||||
player_state = {
|
||||
"coins": 0,
|
||||
"lives": 3,
|
||||
"unlocked_skills": [],
|
||||
}
|
Reference in New Issue
Block a user