Files
frog/scripts/characters/corinne.gd
T
E250429F 3e857fa9f3 credit
2026-09-17 23:19:43 +02:00

90 lines
2.4 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 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