Add new level, collapsable component, knockback component

This commit is contained in:
2024-12-31 02:51:07 +01:00
parent 529dc0f5dc
commit 366c269817
17 changed files with 647 additions and 31 deletions

View File

@@ -0,0 +1,32 @@
class_name KnockbackComponent
extends Node
@export var character_body: CharacterBody2D
@export var knockback_force: float = 25.0
var knockback_mode: bool = false
var knockback_frames: int = 0
func apply_knockback(force: float, delta: float) -> void:
var velocity = character_body.velocity.normalized()
var knockback_dir = Vector2(sign(velocity.x) * 1.0, 0.4)
var knockback_vector = -knockback_dir * force * delta
character_body.velocity += knockback_vector
func _on_health_component_on_health_change(delta: float, total_health: float) -> void:
if total_health <= 0.0 and delta < 0.0:
return
knockback_mode = true
func _process(_delta: float) -> void:
if knockback_mode:
knockback_frames += 1
if knockback_frames > 1:
knockback_mode = false
knockback_frames = 0
func _physics_process(delta: float) -> void:
if knockback_mode:
apply_knockback(knockback_force, delta)