extends Area2D @export var speed = 1500.0 var direction = Vector2.RIGHT func _physics_process(delta): # Gerak peluru position += direction * speed * delta # --- LOGIKA PENGHANCURAN PELURU --- # Fungsi ini harus disambungkan (connect) ke sinyal body_entered func _on_body_entered(body): # 🟦 KUNCI UTAMA: Jika yang tertabrak adalah Player (diri sendiri), abaikan total! if body is Player: return # 1. Cek apakah benda yang ditabrak punya fungsi terima_damage (untuk CharacterBody/StaticBody langsung) if body.has_method("terima_damage"): body.terima_damage(5) # 2. ATAU cek apakah bapaknya punya fungsi kurangi_nyawa (untuk struktur Node2D > StaticBody2D) elif body.get_parent().has_method("kurangi_nyawa"): body.get_parent().kurangi_nyawa(2) # 3. Peluru hancur jika menabrak apapun (karena pengecekan Player sudah di-return di atas) # Kamu bisa tambah efek suara atau partikel ledakan kecil di sini nanti queue_free() # Gunakan ini supaya peluru tidak terbang selamanya di memori func _on_visible_on_screen_notifier_2d_screen_exited(): queue_free()