extends Area2D # Tarik file scene Stage 3 atau Map berikutnya ke slot ini di Inspector @export_file("*.tscn") var scene_tujuan: String = "res://Stage2_2.tscn" # KUNCI UTAMA: Tarik node LokerPeta kamu ke dalam slot ini di Inspector @export var node_loker: Area2D var player_didalam_area: Node2D = null func _ready() -> void: pass func _on_body_entered(body: Node2D) -> void: if body.is_in_group("pemain"): player_didalam_area = body # Cek apakah player sudah ambil peta di loker atau belum if node_loker and node_loker.sudah_diambil: print("🚪 Pintu keluar terbuka! Tekan interaksi untuk kabur dan selesaikan Stage 2!") else: print("🔒 Pintu terkunci! Kamu harus mengambil Peta Artileri di loker dulu sebelum kabur!") func _on_body_exited(body: Node2D) -> void: if body == player_didalam_area: player_didalam_area = null print("Player menjauh dari pintu keluar.") func _input(event: InputEvent) -> void: if not event.is_action_pressed("interact"): return if player_didalam_area == null: return # Validasi keamanan: Cek apakah node_loker sudah dipasang di Inspector if node_loker == null: print("⚠️ Peringatan: Kamu belum memasukkan node LokerPeta ke Inspector PintuKeluar!") return # Jika tombol ditekan TAPI peta belum diambil, abaikan perpindahan scene if not node_loker.sudah_diambil: print("❌ Tidak bisa keluar! Peta Artileri Dinding Atlantik belum diamankan!") return # --- JIKA SYARAT TERPENUHI, PROSES TRANSISI DIMULAI --- print("🏃‍♂️ Misi Stage 2 Sukses! Menyiapkan pelarian...") # Panggil target AnimationPlayer absolut seperti di pintu ruangan jaga kemarin if get_node_or_null("/root/Node2D/TransitionLayer/fade_to_black"): var anim_player = get_node("/root/Node2D/TransitionLayer/fade_to_black") anim_player.play("fadeout") print("🎬 Memutar animasi fadeout...") # Tunggu dengan sabar sampai layar benar-benar hitam pekat await anim_player.animation_finished else: print("⚠️ Peringatan: Jalur /root/Node2D/TransitionLayer/fade_to_black tidak ditemukan di stage ini!") # Setelah layar gelap murni, baru pindah ke map berikutnya! print("🚪 Melarikan diri ke area berikutnya: ", scene_tujuan) var error_code = get_tree().change_scene_to_file(scene_tujuan) if error_code != OK: print("❌ Gagal pindah scene! Periksa apakah path file sudah benar: ", scene_tujuan)