extends CharacterBody2D class_name Player @export var move_speed: float = 100 @export var hp: int = 10 @export var push_strength: int = 50 # Called when the node enters the scene tree for the first time. func _ready() -> void: update_scrolls() print("HP: ", SceneManager.player_hp) var damage: float = 2 if SceneManager.player_next_scene_spawn_pos != Vector2(0, 0): position = SceneManager.player_next_scene_spawn_pos # Called every frame. 'delta' is the elapsed time since the previous frame. func _physics_process(delta: float) -> void: move_player() push_blocks() update_scrolls() move_and_slide() func move_player(): var move_vector: Vector2 = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down") velocity = move_vector * move_speed if velocity.x > 0: $AnimatedSprite2D.play("move_right") $InteractArea2D.position = Vector2(5, 2) elif velocity.x < 0: $AnimatedSprite2D.play("move_left") $InteractArea2D.position = Vector2(-5, 2) elif velocity.y > 0: $AnimatedSprite2D.play("move_down") $InteractArea2D.position = Vector2(0, 8) elif velocity.y < 0: $AnimatedSprite2D.play("move_up") $InteractArea2D.position = Vector2(0, -4) else: $AnimatedSprite2D.stop() func push_blocks(): var collision: KinematicCollision2D = get_last_slide_collision() if collision: var collisision_node = collision.get_collider() if collisision_node.is_in_group("pushable"): var collision_normal: Vector2 = collision.get_normal() collisision_node.apply_central_force(-collision_normal * push_strength) func update_scrolls(): $CanvasLayer/Panel/Label.text = str(SceneManager.opened_chests.size()) func _on_area_2d_body_entered(body: Node2D) -> void: if body.is_in_group("interactable"): body.can_interact = true func _on_area_2d_body_exited(body: Node2D) -> void: if body.is_in_group("interactable"): body.can_interact = false func _on_hit_box_area_2d_body_entered(body: Node2D) -> void: SceneManager.player_hp -= 1 print("HP: ", SceneManager.player_hp) if SceneManager.player_hp <= 0: die() func die(): print("DED") get_tree().call_deferred("reload_current_scene") SceneManager.player_hp = 3