extends Area2D # 📣 Sinyal baru untuk memberi tahu Stage kalau item ini baru saja diambil signal diambil @export var jumlah_heal: int = 50 @onready var anim_player: AnimationPlayer = $AnimationPlayer @onready var collision: CollisionShape2D = $CollisionShape2D func _ready() -> void: if anim_player and anim_player.has_animation("gerak"): anim_player.play("gerak") func _on_body_entered(body: Node2D) -> void: if body is Player: if body.has_method("tambah_hp"): body.tambah_hp(jumlah_heal) print("✨ Item Heal Up diambil oleh Player!") # PENTING: Picu sinyal diambil agar Stage tahu harus mulai menghitung 20 detik emit_signal("diambil") # Sembunyikan item dan matikan collision-nya (Failsafe agar tidak bisa diambil dua kali) set_responsif(false) # Fungsi pembantu untuk memunculkan / menyembunyikan item dengan aman func set_responsif(status: bool) -> void: visible = status if collision: collision.set_deferred("disabled", !status) # Jalankan kembali animasi jika item dimunculkan lagi if status and anim_player and anim_player.has_animation("gerak"): anim_player.play("gerak")