extends CharacterBody3D @onready var sprite_label: Sprite3D = $Sprite3D @onready var label: Label = $Sprite3D/SubViewport/Label @onready var area_3d: Area3D = $Area3D @onready var anim_player: AnimationPlayer = $character/AnimationPlayer @onready var camera_zoom: Camera3D = $CameraZoom @onready var player: CharacterBody3D = $"../../Player" @onready var area_3d_zoom: Area3D = $Area3DZoom @onready var indicateur_tarte: CSGTorus3D = $"../indicateur_tarte" @onready var client_spawner: Node3D = $"../client_spawner" var zoom_active : bool = false func zoom_dialog(): label.text = Sauvegarde.get_text("coco" + str( 0 ) ) camera_zoom.make_current() zoom_active = true anim_player.play("RootAction") func _process(delta: float) -> void: if zoom_active: camera_zoom.position.z += 25 * delta if camera_zoom.position.z > -4: zoom_active = false await get_tree().create_timer( 6 ).timeout player.camera.make_current() player.can_play = true anim_player.stop() func dialog(): rotation.y = deg_to_rad( 180 ) anim_player.play("RootAction") for i in range(1,3): label.text = Sauvegarde.get_text("coco" + str( i ) ) await get_tree().create_timer( 1 ).timeout rotation.y = deg_to_rad( -90 ) anim_player.stop() sprite_label.visible = false player.set_dialog_mode() indicateur_tarte.visible = true client_spawner.start_timer() await get_tree().create_timer( 10 ).timeout indicateur_tarte.visible = false func _on_area_3d_body_entered(body: Node3D) -> void: if body.is_in_group("player"): sprite_label.visible = true player.set_dialog_mode( global_position, 0) dialog() area_3d.queue_free() func _on_area_3d_zoom_body_entered(body: Node3D) -> void: if body.is_in_group("player"): player.can_play = false area_3d_zoom.queue_free() zoom_dialog()