feat: endstation

This commit is contained in:
tiger tiger tiger 2026-01-21 01:54:01 +01:00
parent 28186aaf6a
commit cef278dced
10 changed files with 97 additions and 242 deletions

View File

@ -48,7 +48,7 @@ func _unseat_player_if_inside() -> void:
State.player.reparent(get_parent()) State.player.reparent(get_parent())
func arrive() -> void: func arrive(endstation : bool = false) -> void:
%SubwayTrainAudio.play(0) %SubwayTrainAudio.play(0)
%SubwayTrainAudioIntense.play(0) %SubwayTrainAudioIntense.play(0)
await get_tree().create_timer(pre_arrival_time).timeout await get_tree().create_timer(pre_arrival_time).timeout
@ -58,6 +58,10 @@ func arrive() -> void:
await tween.finished await tween.finished
subway.door_open = true subway.door_open = true
_unseat_player_if_inside() _unseat_player_if_inside()
if endstation:
%SubwayTrainAudio.stop()
%SubwayTrainAudioIntense.stop()
func leave() -> void: func leave() -> void:
@ -73,4 +77,4 @@ func leave() -> void:
# Player was on board and has left the station # Player was on board and has left the station
if seated: departure.emit(index) if seated: departure.emit(index)
# Reset is called by Fahrplan reset()

View File

@ -16,7 +16,7 @@ class_name Fahrplan extends Node3D
@onready var tracks : Array[Dolly] = [%Track0Dolly, %Track1Dolly] @onready var tracks : Array[Dolly] = [%Track0Dolly, %Track1Dolly]
@export var random_wait : Vector2 = Vector2(1.0, 5.0) @export var random_wait : Vector2 = Vector2(1.0, 10.0)
func _set_signage_texts(group: StringName, message: String) -> void: func _set_signage_texts(group: StringName, message: String) -> void:
get_tree().call_group(group, "set_text", "") get_tree().call_group(group, "set_text", "")
@ -42,7 +42,7 @@ var destinations : Array[Node3D] = [null, null]
func train_traffic_loop(track: Dolly, cancel: Array) -> void: func train_traffic_loop(track: Dolly, cancel: Array) -> void:
if fahrplan[current_station][track.index] == null: # empty array (just no routes) would be falsy if fahrplan[current_station][track.index] == null: # empty array (just no routes) would be falsy
track.arrive() track.arrive(true)
_set_signage_texts(track.signage_group, "Endstation") _set_signage_texts(track.signage_group, "Endstation")
return return
@ -52,15 +52,18 @@ func train_traffic_loop(track: Dolly, cancel: Array) -> void:
return return
while true: while true:
if cancel.is_empty(): return # abort the loop
var next : Node = routes.pop_front() var next : Node = routes.pop_front()
routes.append(next) # It's a ring buffer routes.append(next) # It's a ring buffer
destinations[track.index] = next destinations[track.index] = next
_set_signage_texts(track.signage_group, next.name) # TODO: load nice string _set_signage_texts(track.signage_group, next.name) # TODO: load nice string
await get_tree().create_timer(randf_range(random_wait.x, random_wait.y)).timeout await get_tree().create_timer(randf_range(random_wait.x, random_wait.y)).timeout
if cancel.is_empty(): return # abort the loop if cancel.is_empty(): return # abort the loop
await track.cycle() await track.cycle() # arrive and depart
var cancellation_token : Array var cancellation_token : Array
@ -77,6 +80,4 @@ func enter_station(station: Node):
func player_departed(track_index : int) -> void: func player_departed(track_index : int) -> void:
cancellation_token.clear() cancellation_token.clear()
for track in tracks:
track.reset() # Warps the player to the entry point for that track, too
enter_station(destinations[track_index]) enter_station(destinations[track_index])

View File

@ -7,16 +7,14 @@ func _ready() -> void:
super._ready() super._ready()
id = State.rooms.TRANSITION id = State.rooms.TRANSITION
func start_room(): func start_room():
super.start_room() super.start_room()
%station_ministry.leave_room.connect(func():
proceed.emit(Main.adulthood_room_path))
# Give player control immediately, then open
Scenes.player_enable.emit(true) Scenes.player_enable.emit(true)
await Main.curtain.open() await Main.curtain.open()
var next_room : String = await proceed # emitted by burnout_station.gd and therapy_station.gd
await Main.curtain.black()
Main._load_room(next_room)
func pull_save_state(save: SaveGame) -> void: func pull_save_state(save: SaveGame) -> void:
@ -27,152 +25,3 @@ func pull_save_state(save: SaveGame) -> void:
# Call parent to restore player position # Call parent to restore player position
super.pull_save_state(save) super.pull_save_state(save)
## left here for reference... the ~35 lines of code above should be enoough
#var left_first_station: bool = false
#func on_first_station() -> void:
# return
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_DND
# await get_tree().create_timer(5.0).timeout
# %ShedulePlayer_R.play("train_arriving")
# await get_tree().create_timer(12.0).timeout
# if left_first_station: return
# %ShedulePlayer_R.play("train_leaving")
# await get_tree().create_timer(3.0).timeout
# %RightLabel.text = "do not board"
# await get_tree().create_timer(6.0).timeout
# %ShedulePlayer_L.play("train_arriving")
#
#var on_second_platform: bool = false
#func on_first_transition(_is_left: bool = false):
# %StationPlayer.play("first_transition")
# await get_tree().create_timer(1.0).timeout
# on_second_platform = true
#
#func on_second_transition():
# %StationPlayer.play("second_transition")
#
#func on_third_transition():
# %StationPlayer.play("third_transition")
#
#func on_left_train_enter(_body) -> void:
# if not left_first_station:
# left_first_station = true
# await get_tree().create_timer(2.0).timeout
# %Train2.get_child(0).door_open = false
# on_first_transition(true)
# await get_tree().create_timer(5.0).timeout
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_VOLUNTARY
# %SubwayMap.current_station = Scenes.id.ADULT_VOLUNTARY
# %RightLabel.text = "U3 Gesundquell \n via Rosenthal Hospital"
# await get_tree().create_timer(5.0).timeout
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
# %SubwayMap.current_station = Scenes.id.ADULT_AUTISM
# await get_tree().create_timer(5.0).timeout
# %Train2.get_child(0).door_open = true
#
# await get_tree().create_timer(5.0).timeout
# if not changeover:
# %Train2.get_child(0).door_open = false
# on_second_transition()
# await get_tree().create_timer(5.0).timeout
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
# %SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
# %RightLabel.text = "do not board"
# %LeftLabel.text = "do not board"
# on_final = true
# await get_tree().create_timer(5.0).timeout
# %Train2.get_child(0).door_open = true
# else:
# %ShedulePlayer_L.play("train_leaving")
# %LeftLabel.text = "do not board"
# return
# if changeover:
# %ShedulePlayer_R.play("train_leaving")
# await get_tree().create_timer(2.0).timeout
# %Train2.get_child(0).door_open = false
# on_second_transition()
# await get_tree().create_timer(5.0).timeout
# save_game.seen.append(str(Scenes.id.ADULT_THERAPY_UNI))
# %SubwayMap.current_station = Scenes.id.ADULT_THERAPY_UNI
# %RightLabel.text = "do not board"
# %LeftLabel.text = "do not board"
# on_final = true
# await get_tree().create_timer(5.0).timeout
# %Train2.get_child(0).door_open = true
#
#var on_final: bool = false:
# set(final):
# #FIXME: this needs to be a proper sequence!
# on_final = final
# await get_tree().create_timer(0.5).timeout
# if final: prepare_transition()
#var on_direct_path: bool = false
#func on_right_train_enter(_body) -> void:
# if not left_first_station:
# on_direct_path = true
# %Train.get_child(0).door_open = false
# await get_tree().create_timer(2.0).timeout
# left_first_station = true
# on_first_transition(false)
# await get_tree().create_timer(5.0).timeout
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_EATING
# %SubwayMap.current_station = Scenes.id.ADULT_EATING
# %LeftLabel.text = "U8 Gesundquell \n via Rosenthal Hospital"
# await get_tree().create_timer(5.0).timeout
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
# %SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
# await get_tree().create_timer(5.0).timeout
# %Train.get_child(0).door_open = true
#
# await get_tree().create_timer(5.0).timeout
#
# if not changeover:
# %Train.get_child(0).door_open = false
# on_second_transition()
# await get_tree().create_timer(5.0).timeout
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_BURNOUT
# %SubwayMap.current_station = Scenes.id.ADULT_BURNOUT
# %RightLabel.text = "do not board"
# %LeftLabel.text = "do not board"
# on_final = true
# await get_tree().create_timer(5.0).timeout
# %Train.get_child(0).door_open = true
# else:
# %ShedulePlayer_R.play("train_leaving")
# %RightLabel.text = "do not board"
# return
# if changeover:
# on_second_transition()
# if on_direct_path: %ShedulePlayer_L.play("train_leaving")
# await get_tree().create_timer(5.0).timeout
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
# %SubwayMap.current_station = Scenes.id.ADULT_AUTISM
# await get_tree().create_timer(2.0).timeout
# %Train2.get_child(0).door_open = false
# %RightLabel.text = "do not board"
# %LeftLabel.text = "do not board"
# on_final = true
# await get_tree().create_timer(5.0).timeout
# %Train.get_child(0).door_open = true
#
#var changeover: bool = false
#func on_left_train_exit(_body):
# if on_second_platform and not on_final:
# changeover = true
# %ShedulePlayer_R.play("train_arriving")
#
#func on_right_train_exit(_body):
# if on_second_platform and not on_final:
# changeover = true
# %ShedulePlayer_L.play("train_arriving")
# await get_tree().create_timer(10).timeout
# %RightLabel.text = "U1 weissnicht \n via Saint-Exupery Sq."
# await get_tree().create_timer(5).timeout
# %ShedulePlayer_R.play("train_arriving")

View File

@ -1,6 +1,5 @@
extends Node3D extends Node3D
signal leave_room
func _ready() -> void: func _ready() -> void:
%PlayerDetect.body_entered.connect(func(body): if body is PlayerController: leave_room.emit()) State.room.save_game.burnout = true
%PlayerDetect.body_entered.connect(func(body): if visible and body is PlayerController: State.room.proceed.emit(Main.adulthood_room_path))

View File

@ -1,4 +1,4 @@
[gd_scene format=3 uid="uid://inavuxjmq6hi"] [gd_scene load_steps=14 format=3 uid="uid://inavuxjmq6hi"]
[ext_resource type="PackedScene" uid="uid://bbml6p0ytrhv1" path="res://base-environments/transition/import/burnout_station.glb" id="1_x3aag"] [ext_resource type="PackedScene" uid="uid://bbml6p0ytrhv1" path="res://base-environments/transition/import/burnout_station.glb" id="1_x3aag"]
[ext_resource type="Shader" uid="uid://cw6d1rnwk7825" path="res://base-environments/transition/shaders/station_caustics.gdshader" id="2_2s0i8"] [ext_resource type="Shader" uid="uid://cw6d1rnwk7825" path="res://base-environments/transition/shaders/station_caustics.gdshader" id="2_2s0i8"]
@ -38,21 +38,21 @@ emission_energy_multiplier = 2.0
[sub_resource type="BoxShape3D" id="BoxShape3D_2s0i8"] [sub_resource type="BoxShape3D" id="BoxShape3D_2s0i8"]
size = Vector3(2.5820465, 2.4377441, 1) size = Vector3(2.5820465, 2.4377441, 1)
[node name="burnout_station" unique_id=716378896 instance=ExtResource("1_x3aag")] [node name="burnout_station" instance=ExtResource("1_x3aag")]
script = ExtResource("2_7ss6j") script = ExtResource("2_7ss6j")
[node name="curved_station_walls_002" parent="." index="1"] [node name="curved_station_walls_002" parent="." index="1"]
surface_material_override/0 = SubResource("ShaderMaterial_eo2ru") surface_material_override/0 = SubResource("ShaderMaterial_eo2ru")
[node name="meta_station" parent="." index="2" unique_id=1269685408 instance=ExtResource("8_51arf")] [node name="meta_station" parent="." index="2" instance=ExtResource("8_51arf")]
[node name="Lighting" type="Node3D" parent="." index="3" unique_id=109561549] [node name="Lighting" type="Node3D" parent="." index="3"]
visible = false visible = false
[node name="Left" type="Node3D" parent="Lighting" index="0" unique_id=210876730] [node name="Left" type="Node3D" parent="Lighting" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1015987, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1015987, 0, 0)
[node name="OmniLight3D" type="SpotLight3D" parent="Lighting/Left" index="0" unique_id=932973937] [node name="OmniLight3D" type="SpotLight3D" parent="Lighting/Left" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -10.1989) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -10.1989)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -63,7 +63,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D13" type="SpotLight3D" parent="Lighting/Left" index="1" unique_id=697027978] [node name="OmniLight3D13" type="SpotLight3D" parent="Lighting/Left" index="1"]
transform = Transform3D(1, 0, 0, 0, -0.50000024, 0.8660253, 0, -0.8660253, -0.50000024, -0.42258057, 2.0402927, -5.2949142) transform = Transform3D(1, 0, 0, 0, -0.50000024, 0.8660253, 0, -0.8660253, -0.50000024, -0.42258057, 2.0402927, -5.2949142)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -74,7 +74,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D2" type="SpotLight3D" parent="Lighting/Left" index="2" unique_id=856205887] [node name="OmniLight3D2" type="SpotLight3D" parent="Lighting/Left" index="2"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -15.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -15.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -85,7 +85,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D3" type="SpotLight3D" parent="Lighting/Left" index="3" unique_id=943996044] [node name="OmniLight3D3" type="SpotLight3D" parent="Lighting/Left" index="3"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -20.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -20.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -96,7 +96,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D4" type="SpotLight3D" parent="Lighting/Left" index="4" unique_id=569528792] [node name="OmniLight3D4" type="SpotLight3D" parent="Lighting/Left" index="4"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -25.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -25.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -107,7 +107,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D5" type="SpotLight3D" parent="Lighting/Left" index="5" unique_id=2084580450] [node name="OmniLight3D5" type="SpotLight3D" parent="Lighting/Left" index="5"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -30.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -30.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -118,7 +118,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D6" type="SpotLight3D" parent="Lighting/Left" index="6" unique_id=812374101] [node name="OmniLight3D6" type="SpotLight3D" parent="Lighting/Left" index="6"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -35.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -35.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -129,7 +129,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D7" type="SpotLight3D" parent="Lighting/Left" index="7" unique_id=1771459650] [node name="OmniLight3D7" type="SpotLight3D" parent="Lighting/Left" index="7"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -40.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -40.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -140,7 +140,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D8" type="SpotLight3D" parent="Lighting/Left" index="8" unique_id=530836629] [node name="OmniLight3D8" type="SpotLight3D" parent="Lighting/Left" index="8"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -45.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -45.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -151,7 +151,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D9" type="SpotLight3D" parent="Lighting/Left" index="9" unique_id=290483580] [node name="OmniLight3D9" type="SpotLight3D" parent="Lighting/Left" index="9"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -50.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -50.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -162,7 +162,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D10" type="SpotLight3D" parent="Lighting/Left" index="10" unique_id=1040247940] [node name="OmniLight3D10" type="SpotLight3D" parent="Lighting/Left" index="10"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -55.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -55.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -173,7 +173,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D11" type="SpotLight3D" parent="Lighting/Left" index="11" unique_id=544898048] [node name="OmniLight3D11" type="SpotLight3D" parent="Lighting/Left" index="11"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -60.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -60.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -184,7 +184,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D12" type="SpotLight3D" parent="Lighting/Left" index="12" unique_id=517974044] [node name="OmniLight3D12" type="SpotLight3D" parent="Lighting/Left" index="12"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -65.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -65.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -195,10 +195,10 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="Right" type="Node3D" parent="Lighting" index="1" unique_id=1610754251] [node name="Right" type="Node3D" parent="Lighting" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8136845, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8136845, 0, 0)
[node name="OmniLight3D" type="SpotLight3D" parent="Lighting/Right" index="0" unique_id=721780292] [node name="OmniLight3D" type="SpotLight3D" parent="Lighting/Right" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -10.1989) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -10.1989)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -209,7 +209,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D13" type="SpotLight3D" parent="Lighting/Right" index="1" unique_id=1843343712] [node name="OmniLight3D13" type="SpotLight3D" parent="Lighting/Right" index="1"]
transform = Transform3D(1, 0, 0, 0, -0.50000024, 0.8660253, 0, -0.8660253, -0.50000024, -0.42258057, 2.0402927, -5.2949142) transform = Transform3D(1, 0, 0, 0, -0.50000024, 0.8660253, 0, -0.8660253, -0.50000024, -0.42258057, 2.0402927, -5.2949142)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -220,7 +220,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D2" type="SpotLight3D" parent="Lighting/Right" index="2" unique_id=1443385661] [node name="OmniLight3D2" type="SpotLight3D" parent="Lighting/Right" index="2"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -15.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -15.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -231,7 +231,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D3" type="SpotLight3D" parent="Lighting/Right" index="3" unique_id=1407984194] [node name="OmniLight3D3" type="SpotLight3D" parent="Lighting/Right" index="3"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -20.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -20.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -242,7 +242,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D4" type="SpotLight3D" parent="Lighting/Right" index="4" unique_id=1797455111] [node name="OmniLight3D4" type="SpotLight3D" parent="Lighting/Right" index="4"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -25.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -25.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -253,7 +253,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D5" type="SpotLight3D" parent="Lighting/Right" index="5" unique_id=1063950576] [node name="OmniLight3D5" type="SpotLight3D" parent="Lighting/Right" index="5"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -30.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -30.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -264,7 +264,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D6" type="SpotLight3D" parent="Lighting/Right" index="6" unique_id=1687484216] [node name="OmniLight3D6" type="SpotLight3D" parent="Lighting/Right" index="6"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -35.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -35.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -275,7 +275,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D7" type="SpotLight3D" parent="Lighting/Right" index="7" unique_id=288532473] [node name="OmniLight3D7" type="SpotLight3D" parent="Lighting/Right" index="7"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -40.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -40.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -286,7 +286,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D8" type="SpotLight3D" parent="Lighting/Right" index="8" unique_id=1104811047] [node name="OmniLight3D8" type="SpotLight3D" parent="Lighting/Right" index="8"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -45.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -45.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -297,7 +297,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D9" type="SpotLight3D" parent="Lighting/Right" index="9" unique_id=138848697] [node name="OmniLight3D9" type="SpotLight3D" parent="Lighting/Right" index="9"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -50.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -50.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -308,7 +308,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D10" type="SpotLight3D" parent="Lighting/Right" index="10" unique_id=682698372] [node name="OmniLight3D10" type="SpotLight3D" parent="Lighting/Right" index="10"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -55.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -55.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -319,7 +319,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D11" type="SpotLight3D" parent="Lighting/Right" index="11" unique_id=1526453382] [node name="OmniLight3D11" type="SpotLight3D" parent="Lighting/Right" index="11"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -60.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -60.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -330,7 +330,7 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="OmniLight3D12" type="SpotLight3D" parent="Lighting/Right" index="12" unique_id=2066015338] [node name="OmniLight3D12" type="SpotLight3D" parent="Lighting/Right" index="12"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -65.2744) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.42258057, 2.022126, -65.2744)
light_color = Color(0.978917, 0.789534, 0.685226, 1) light_color = Color(0.978917, 0.789534, 0.685226, 1)
light_size = 0.6 light_size = 0.6
@ -341,33 +341,33 @@ spot_range = 6.5
spot_angle = 80.0 spot_angle = 80.0
spot_angle_attenuation = 0.517633 spot_angle_attenuation = 0.517633
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="4" unique_id=1375855864] [node name="MeshInstance3D" type="MeshInstance3D" parent="." index="4"]
transform = Transform3D(0.15469092, 0, 0, 0, 2.117065, 0, 0, 0, 1.0789163, 0.6513369, 1.0746006, -23.02815) transform = Transform3D(0.15469092, 0, 0, 0, 2.117065, 0, 0, 0, 1.0789163, 0.6513369, 1.0746006, -23.02815)
visibility_range_end = 10.0 visibility_range_end = 10.0
mesh = SubResource("BoxMesh_x3aag") mesh = SubResource("BoxMesh_x3aag")
surface_material_override/0 = SubResource("StandardMaterial3D_2s0i8") surface_material_override/0 = SubResource("StandardMaterial3D_2s0i8")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." index="5" unique_id=486610789] [node name="MeshInstance3D2" type="MeshInstance3D" parent="." index="5"]
transform = Transform3D(0.15469092, 0, 0, 0, 2.117065, 0, 0, 0, 1.0789163, -0.5311044, 1.0746006, -23.02815) transform = Transform3D(0.15469092, 0, 0, 0, 2.117065, 0, 0, 0, 1.0789163, -0.5311044, 1.0746006, -23.02815)
visibility_range_end = 10.0 visibility_range_end = 10.0
mesh = SubResource("BoxMesh_x3aag") mesh = SubResource("BoxMesh_x3aag")
surface_material_override/0 = SubResource("StandardMaterial3D_2s0i8") surface_material_override/0 = SubResource("StandardMaterial3D_2s0i8")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." index="6" unique_id=114262173] [node name="MeshInstance3D3" type="MeshInstance3D" parent="." index="6"]
transform = Transform3D(0.15469092, 0, 0, 0, 2.117065, 0, 0, 0, 1.0789163, 0.051607847, 1.0746006, -42.95659) transform = Transform3D(0.15469092, 0, 0, 0, 2.117065, 0, 0, 0, 1.0789163, 0.051607847, 1.0746006, -42.95659)
visibility_range_end = 10.0 visibility_range_end = 10.0
mesh = SubResource("BoxMesh_x3aag") mesh = SubResource("BoxMesh_x3aag")
surface_material_override/0 = SubResource("StandardMaterial3D_2s0i8") surface_material_override/0 = SubResource("StandardMaterial3D_2s0i8")
[node name="PlayerDetect" type="Area3D" parent="." index="7" unique_id=797124786] [node name="PlayerDetect" type="Area3D" parent="." index="7"]
unique_name_in_owner = true unique_name_in_owner = true
collision_layer = 2 collision_layer = 2
collision_mask = 2 collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetect" index="0" unique_id=252225658] [node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetect" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0318985, 0.94488645, -23.077662) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0318985, 0.94488645, -23.077662)
shape = SubResource("BoxShape3D_2s0i8") shape = SubResource("BoxShape3D_2s0i8")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="PlayerDetect" index="1" unique_id=173158003] [node name="CollisionShape3D2" type="CollisionShape3D" parent="PlayerDetect" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0318985, 0.94488645, -43.07766) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0318985, 0.94488645, -43.07766)
shape = SubResource("BoxShape3D_2s0i8") shape = SubResource("BoxShape3D_2s0i8")

View File

@ -0,0 +1,4 @@
extends Node3D
func _ready() -> void:
%PlayerDetect.body_entered.connect(func(body): if visible and body is PlayerController: State.room.proceed.emit(Main.adulthood_room_path))

View File

@ -0,0 +1 @@
uid://c3wiasfotoy5

File diff suppressed because one or more lines are too long

View File

@ -108,6 +108,14 @@ size = Vector3(31.194, 0.8, 3.8)
[node name="TrainDolly" type="Node3D"] [node name="TrainDolly" type="Node3D"]
script = ExtResource("1_5jpg8") script = ExtResource("1_5jpg8")
index = null
signage_group = null
pre_arrival_time = null
arrival_time = null
pre_leave_time = null
door_close_time = null
leave_time = null
post_leave_time = null
metadata/_custom_type_script = "uid://dgfje4druu3sw" metadata/_custom_type_script = "uid://dgfje4druu3sw"
[node name="Destination" type="Node3D" parent="."] [node name="Destination" type="Node3D" parent="."]

View File

@ -19,6 +19,7 @@ class_name SaveGame extends Resource
@export var seen : Array[StringName] = [] @export var seen : Array[StringName] = []
@export var is_childhood_board_complete: bool = false @export var is_childhood_board_complete: bool = false
@export var burnout : bool = false
@export var player_position : Vector3 = Vector3.ZERO @export var player_position : Vector3 = Vector3.ZERO
@export var player_yaw : float = 0.0 @export var player_yaw : float = 0.0