Files
frog/scripts/characters/corinne.gd
T
2026-09-03 09:43:13 +02:00

68 lines
1.8 KiB
GDScript

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()