68 lines
1.8 KiB
GDScript
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()
|