generated from SGDA/GodotExampleProject
172 lines
4.4 KiB
GDScript
172 lines
4.4 KiB
GDScript
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 interact: AudioStreamPlayer2D = $Player/Interact
|
|
@onready var vo_interjection: AudioStreamPlayer2D = $RightDoor/VOInterjection
|
|
|
|
var is_interjection_next = false
|
|
var current_info = 0
|
|
@onready var vo_player_1: AudioStreamPlayer2D = $RightDoor/VOPlayer1
|
|
@onready var vo_player_2: AudioStreamPlayer2D = $RightDoor/VOPlayer2
|
|
@onready var vo_player_3: AudioStreamPlayer2D = $RightDoor/VOPlayer3
|
|
@onready var vo_player_4: AudioStreamPlayer2D = $RightDoor/VOPlayer4
|
|
@onready var vo_player_5: AudioStreamPlayer2D = $RightDoor/VOPlayer5
|
|
@onready var vo_player_6: AudioStreamPlayer2D = $RightDoor/VOPlayer6
|
|
@onready var vo_player_7: AudioStreamPlayer2D = $RightDoor/VOPlayer7
|
|
@onready var vo_player_8: AudioStreamPlayer2D = $RightDoor/VOPlayer8
|
|
@onready var vo_player_9: AudioStreamPlayer2D = $RightDoor/VOPlayer9
|
|
@onready var vo_player_10: AudioStreamPlayer2D = $RightDoor/VOPlayer10
|
|
@onready var vo_player_11: AudioStreamPlayer2D = $RightDoor/VOPlayer11
|
|
@onready var vo_player_12: AudioStreamPlayer2D = $RightDoor/VOPlayer12
|
|
var vo_players: Array[AudioStreamPlayer2D] = []
|
|
|
|
var currently_playing: AudioStreamPlayer2D
|
|
var already_played_batch_1 = false
|
|
var already_played_batch_2 = false
|
|
var already_played_batch_3 = false
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
GUIDE.enable_mapping_context(base_mode)
|
|
|
|
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)
|
|
vo_players.append(vo_player_11)
|
|
vo_players.append(vo_player_12)
|
|
|
|
func _on_interactible_triggered(event_id: String) -> void:
|
|
interact.play()
|
|
vies -= 1
|
|
if vies == 0:
|
|
SceneLoader.load_scene(golé)
|
|
|
|
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)
|
|
|
|
|
|
func _on_timer_between_vo_timeout() -> void:
|
|
if currently_playing == null or not currently_playing.playing:
|
|
currently_playing = vo_interjection
|
|
vo_interjection.play()
|
|
return
|
|
|
|
|
|
func _on_door_event_triggered(event_id: String) -> void:
|
|
interact.play()
|
|
|
|
|
|
func _on_first_batch_trigger_body_entered(body: Node2D) -> void:
|
|
if body.name != "Player":
|
|
return
|
|
if already_played_batch_1:
|
|
return
|
|
already_played_batch_1 = true
|
|
|
|
if currently_playing != null:
|
|
currently_playing.stop()
|
|
|
|
currently_playing = vo_player_1
|
|
vo_player_1.play()
|
|
|
|
|
|
func _on_vo_player_1_finished() -> void:
|
|
currently_playing = vo_player_2
|
|
vo_player_2.play()
|
|
|
|
func _on_vo_player_2_finished() -> void:
|
|
currently_playing = vo_player_3
|
|
vo_player_3.play()
|
|
|
|
|
|
func _on_vo_player_3_finished() -> void:
|
|
currently_playing.stop()
|
|
|
|
|
|
func _on_first_batch_trigger_2_body_entered(body: Node2D) -> void:
|
|
if body.name != "Player":
|
|
return
|
|
if already_played_batch_2:
|
|
return
|
|
already_played_batch_2 = true
|
|
|
|
currently_playing.stop()
|
|
currently_playing = vo_player_4
|
|
vo_player_4.play()
|
|
|
|
func _on_vo_player_4_finished() -> void:
|
|
currently_playing = vo_player_5
|
|
vo_player_5.play()
|
|
|
|
|
|
func _on_vo_player_5_finished() -> void:
|
|
currently_playing = vo_player_6
|
|
vo_player_6.play()
|
|
|
|
|
|
func _on_vo_player_6_finished() -> void:
|
|
currently_playing = vo_player_7
|
|
vo_player_7.play()
|
|
|
|
|
|
func _on_vo_player_7_finished() -> void:
|
|
currently_playing.stop()
|
|
|
|
|
|
func _on_first_batch_trigger_3_body_entered(body: Node2D) -> void:
|
|
if body.name != "Player":
|
|
return
|
|
if already_played_batch_3:
|
|
return
|
|
already_played_batch_3 = true
|
|
|
|
currently_playing.stop()
|
|
currently_playing = vo_player_8
|
|
vo_player_8.play()
|
|
|
|
func _on_vo_player_8_finished() -> void:
|
|
currently_playing = vo_player_9
|
|
vo_player_9.play()
|
|
|
|
|
|
func _on_vo_player_9_finished() -> void:
|
|
currently_playing = vo_player_10
|
|
vo_player_10.play()
|
|
|
|
|
|
func _on_vo_player_10_finished() -> void:
|
|
currently_playing = vo_player_11
|
|
vo_player_11.play()
|
|
|
|
|
|
func _on_vo_player_11_finished() -> void:
|
|
currently_playing = vo_player_12
|
|
vo_player_12.play()
|
|
|
|
|
|
func _on_vo_player_12_finished() -> void:
|
|
currently_playing.stop()
|
|
|
|
|
|
func _on_vo_interjection_finished() -> void:
|
|
currently_playing.stop()
|