extends CharacterBody3D @onready var sprite_label: Sprite3D = $Sprite3D @onready var label: Label = $Sprite3D/SubViewport/Label @onready var area_3d: Area3D = $Area3D @onready var collision_shape_3d: CollisionShape3D = $Area3D/CollisionShape3D @onready var anim_player: AnimationPlayer = $character/AnimationPlayer @onready var camera_zoom: Camera3D = $CameraZoom @onready var player: CharacterBody3D = $"../../Player" @onready var frog: CharacterBody3D = $"../../frog" @onready var area_3d_zoom: Area3D = $Area3DZoom @onready var indicateur_tarte: CSGTorus3D = $"../indicateur_tarte" @onready var client_spawner: Node3D = $"../client_spawner" @onready var fox: CharacterBody3D = $"../../Animals/Foxes/fox" @onready var fox_2: CharacterBody3D = $"../../Animals/Foxes/fox2" 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("talking") 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.play("Idling") func dialog(): if !player.is_client_game_launched: rotation.y = deg_to_rad( 180 ) anim_player.play("talking") var p if player.is_client_game_launched: p = range(4, 8) else: p = range(1, 4) for i in p: label.text = Sauvegarde.get_text("coco" + str( i ) ) await get_tree().create_timer( 6 ).timeout anim_player.play("Idling") if !player.is_client_game_launched: rotation.y = deg_to_rad( -90 ) anim_player.stop() sprite_label.visible = false player.set_dialog_mode() player.is_client_game_launched = true 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() collision_shape_3d.disabled = true 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() func reactivate_area3D(): collision_shape_3d.disabled = false anim_player.stop() fox.flee_enabled = true fox_2.flee_enabled = true player.can_run = true