From 81cc6f1d22677dd4a60aa9377c91b291bf10e523 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Sat, 27 Apr 2024 20:06:49 +0200 Subject: update --- Scenes/Entities/Enemies/Components/Health.gd | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Scenes/Entities/Enemies/Components/Health.gd (limited to 'Scenes/Entities/Enemies/Components/Health.gd') diff --git a/Scenes/Entities/Enemies/Components/Health.gd b/Scenes/Entities/Enemies/Components/Health.gd new file mode 100644 index 0000000..f5e231e --- /dev/null +++ b/Scenes/Entities/Enemies/Components/Health.gd @@ -0,0 +1,39 @@ +extends Node + +class_name Component_Health + + +@export_node_path("CharacterBody2D") var entityPath: NodePath +@onready var entity: CharacterBody2D = get_node(entityPath) + +@export_node_path("AnimatedSprite2D") var spritePath: NodePath +@onready var sprite: AnimatedSprite2D = get_node(spritePath) + +@export var health: int + + +func take_damage(): + health -= 1 + + if health <= 0: + death() + + +func death(): + entity.set_physics_process(false) + + sprite.play("death") + await sprite.animation_finished + + sprite.play("death_post") + + var tween: Tween = get_tree().create_tween() + tween.tween_property( + entity, + "scale", + Vector2(0, 0), + 1 / sprite.sprite_frames.get_animation_speed("death_post") + ) + tween.tween_callback(func(): + entity.queue_free() + ) -- cgit v1.2.3