extends Node2D @export_file("*.tscn") var golé: String @export_file("*.tscn") var next_level: String @export var base_mode: GUIDEMappingContext @export var vies = 3 @onready var lights: Node2D = $Lights @onready var wrong_hack: Interactible = %WrongHack @onready var right_hack: Interactible = %RightHack @onready var wrong_door: Interactible = $GetOutDoors/WrongDoor @onready var right_door: Interactible = $GetOutDoors/RightDoor @onready var timer_between_vo: Timer = $TimerBetweenVO var is_interjection_next = false var current_info: int = 0 var is_over = false var currently_playing: AudioStreamPlayer2D @onready var vo_prise_tiree: AudioStreamPlayer2D = $Hack/VOPriseTiree @onready var vo_interjection: AudioStreamPlayer2D = $Hack/VOInterjection @onready var interact: AudioStreamPlayer2D = $Player/Interact @onready var vo_trop_proche: AudioStreamPlayer2D = $Hack/VOTropProche @onready var vo_player_1: AudioStreamPlayer2D = $Hack/VOPlayer1 @onready var vo_player_2: AudioStreamPlayer2D = $Hack/VOPlayer2 @onready var vo_player_3: AudioStreamPlayer2D = $Hack/VOPlayer3 @onready var vo_player_4: AudioStreamPlayer2D = $Hack/VOPlayer4 @onready var vo_player_5: AudioStreamPlayer2D = $Hack/VOPlayer5 @onready var vo_player_6: AudioStreamPlayer2D = $Hack/VOPlayer6 @onready var vo_player_7: AudioStreamPlayer2D = $Hack/VOPlayer7 @onready var vo_player_8: AudioStreamPlayer2D = $Hack/VOPlayer8 @onready var vo_player_9: AudioStreamPlayer2D = $Hack/VOPlayer9 @onready var vo_player_10: AudioStreamPlayer2D = $Hack/VOPlayer10 var vo_players: Array[AudioStreamPlayer2D] = [] # Called when the node enters the scene tree for the first time. func _ready() -> void: GUIDE.enable_mapping_context(base_mode) wrong_hack.activate() right_hack.deactivate() wrong_door.activate() right_door.deactivate() vo_players.append(vo_player_1) vo_players.append(vo_player_2) vo_players.append(vo_player_3) vo_players.append(vo_player_4) vo_players.append(vo_player_5) vo_players.append(vo_player_6) vo_players.append(vo_player_7) vo_players.append(vo_player_8) vo_players.append(vo_player_9) vo_players.append(vo_player_10) currently_playing = vo_players[current_info] vo_players[current_info].play() current_info += 1 func _on_prise_interacted(event_id: String) -> void: wrong_hack.deactivate() right_hack.activate() for light in lights.get_children(): light.visible = false func made_mistake() -> void: vies -= 1 if vies == 0: SceneLoader.load_scene(golé) func _on_failed_hack(event_id: String) -> void: if currently_playing != null and currently_playing.playing: currently_playing.stop() made_mistake() interact.play() vo_trop_proche.play() currently_playing = vo_trop_proche func _on_successful_hack(event_id: String) -> void: if currently_playing != null and currently_playing.playing: currently_playing.stop() right_door.activate() wrong_door.deactivate() interact.play() vo_prise_tiree.play() currently_playing = vo_prise_tiree right_door.visible = true func _on_interactible_triggered(event_id: String) -> void: made_mistake() interact.play() func _on_wrong_door_event_triggered(event_id: String) -> void: SceneLoader.load_scene(golé) func _on_right_door_event_triggered(event_id: String) -> void: SceneLoader.load_scene(next_level) # Replace with function body. func _on_timer_between_vo_timeout() -> void: if currently_playing != null and currently_playing.playing: return if is_over: vo_interjection.play() if current_info >= len(vo_players): is_over = true return currently_playing = vo_players[current_info] vo_players[current_info].play() current_info += 1 func _on_vo_trop_proche_finished() -> void: pass