refactor: scene IDs now closer to StoryPlayable names.

This commit is contained in:
tiger tiger tiger 2026-01-19 14:46:46 +01:00
parent 54e844c84d
commit bfe974927c
8 changed files with 38 additions and 44 deletions

View File

@ -10,13 +10,13 @@ extends Node2D
%AnimationPlayer.play("hirschfeld") %AnimationPlayer.play("hirschfeld")
Scenes.id.ADULT_VOLUNTARY: Scenes.id.ADULT_VOLUNTARY:
%AnimationPlayer.play("parity") %AnimationPlayer.play("parity")
Scenes.id.ADULT_CHRISTMAS: Scenes.id.ADULT_AUTISM:
%AnimationPlayer.play("saint-exupery") %AnimationPlayer.play("saint-exupery")
Scenes.id.ADULT_EATING: Scenes.id.ADULT_EATING:
%AnimationPlayer.play("refectory") %AnimationPlayer.play("refectory")
Scenes.id.ADULT_UNI: Scenes.id.ADULT_SELF_ADVOCACY:
%AnimationPlayer.play("university") %AnimationPlayer.play("university")
Scenes.id.ADULT_THERAPY: Scenes.id.ADULT_THERAPY_VOLUNTEER:
%AnimationPlayer.play("rosenthal") %AnimationPlayer.play("rosenthal")
Scenes.id.ADULT_BURNOUT: Scenes.id.ADULT_BURNOUT:
%AnimationPlayer.play() %AnimationPlayer.play()

View File

@ -78,8 +78,8 @@ func on_left_train_enter(_body) -> void:
%SubwayMap.current_station = Scenes.id.ADULT_VOLUNTARY %SubwayMap.current_station = Scenes.id.ADULT_VOLUNTARY
%RightLabel.text = "U3 Gesundquell \n via Rosenthal Hospital" %RightLabel.text = "U3 Gesundquell \n via Rosenthal Hospital"
await get_tree().create_timer(5.0).timeout await get_tree().create_timer(5.0).timeout
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_CHRISTMAS Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
%SubwayMap.current_station = Scenes.id.ADULT_CHRISTMAS %SubwayMap.current_station = Scenes.id.ADULT_AUTISM
await get_tree().create_timer(5.0).timeout await get_tree().create_timer(5.0).timeout
%Train2.get_child(0).door_open = true %Train2.get_child(0).door_open = true
@ -88,8 +88,8 @@ func on_left_train_enter(_body) -> void:
%Train2.get_child(0).door_open = false %Train2.get_child(0).door_open = false
on_second_transition() on_second_transition()
await get_tree().create_timer(5.0).timeout await get_tree().create_timer(5.0).timeout
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_UNI Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
%SubwayMap.current_station = Scenes.id.ADULT_UNI %SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
%RightLabel.text = "do not board" %RightLabel.text = "do not board"
%LeftLabel.text = "do not board" %LeftLabel.text = "do not board"
on_final = true on_final = true
@ -132,8 +132,8 @@ func on_right_train_enter(_body) -> void:
%SubwayMap.current_station = Scenes.id.ADULT_EATING %SubwayMap.current_station = Scenes.id.ADULT_EATING
%LeftLabel.text = "U8 Gesundquell \n via Rosenthal Hospital" %LeftLabel.text = "U8 Gesundquell \n via Rosenthal Hospital"
await get_tree().create_timer(5.0).timeout await get_tree().create_timer(5.0).timeout
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_UNI Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
%SubwayMap.current_station = Scenes.id.ADULT_UNI %SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
await get_tree().create_timer(5.0).timeout await get_tree().create_timer(5.0).timeout
%Train.get_child(0).door_open = true %Train.get_child(0).door_open = true
@ -158,8 +158,8 @@ func on_right_train_enter(_body) -> void:
on_second_transition() on_second_transition()
if on_direct_path: %ShedulePlayer_L.play("train_leaving") if on_direct_path: %ShedulePlayer_L.play("train_leaving")
await get_tree().create_timer(5.0).timeout await get_tree().create_timer(5.0).timeout
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_CHRISTMAS Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
%SubwayMap.current_station = Scenes.id.ADULT_CHRISTMAS %SubwayMap.current_station = Scenes.id.ADULT_AUTISM
await get_tree().create_timer(2.0).timeout await get_tree().create_timer(2.0).timeout
%Train2.get_child(0).door_open = false %Train2.get_child(0).door_open = false
%RightLabel.text = "do not board" %RightLabel.text = "do not board"

View File

@ -1,7 +1,6 @@
extends AnimationPlayer extends AnimationPlayer
var has_stage var is_repeating := false
var is_repeating = false
func _ready() -> void: func _ready() -> void:
Scenes.scene_finished.connect(scene_finished) Scenes.scene_finished.connect(scene_finished)
@ -13,14 +12,11 @@ func play_scene(id: int, repeat = false):
match id: match id:
Scenes.id.ADULT_DND: $trans.play() Scenes.id.ADULT_DND: $trans.play()
Scenes.id.ADULT_VOLUNTARY: $trauma.play() Scenes.id.ADULT_VOLUNTARY: $trauma.play()
Scenes.id.ADULT_CHRISTMAS: $autism.play() Scenes.id.ADULT_AUTISM: $autism.play()
Scenes.id.ADULT_EATING: $university_eating.play() Scenes.id.ADULT_EATING: $university_eating.play()
Scenes.id.ADULT_UNI: $university_advocacy.play() Scenes.id.ADULT_SELF_ADVOCACY: $university_advocacy.play()
Scenes.id.ADULT_THERAPY: Scenes.id.ADULT_THERAPY_UNI: $therapy_uni.play()
if Scenes.is_sequence_unlocked(Scenes.id.ADULT_UNI): Scenes.id.ADULT_THERAPY_UNI: $therapy_volunteer.play()
$therapy_uni.play()
else:
$therapy_volunteer.play()
Scenes.id.ADULT_BURNOUT: $burnout.play() Scenes.id.ADULT_BURNOUT: $burnout.play()
func _on_ini_room(): func _on_ini_room():

View File

@ -23,9 +23,10 @@ const _story_captions : Dictionary[Scenes.id, StringName] = {
Scenes.id.TRANSITION: "Move on", Scenes.id.TRANSITION: "Move on",
Scenes.id.ADULT_DND: "colorful Dice", Scenes.id.ADULT_DND: "colorful Dice",
Scenes.id.ADULT_VOLUNTARY: "Gemstone Art", Scenes.id.ADULT_VOLUNTARY: "Gemstone Art",
Scenes.id.ADULT_CHRISTMAS: "Chat Messages", Scenes.id.ADULT_AUTISM: "Chat Messages",
Scenes.id.ADULT_EATING: "Dishes", Scenes.id.ADULT_EATING: "Dishes",
Scenes.id.ADULT_UNI: "Science Poster", Scenes.id.ADULT_SELF_ADVOCACY: "Science Poster",
Scenes.id.ADULT_THERAPY: "Doctors Note", Scenes.id.ADULT_THERAPY_VOLUNTEER: "Doctors Note",
Scenes.id.ADULT_THERAPY_UNI: "Doctors Note",
Scenes.id.ADULT_BURNOUT: "Paperwork", Scenes.id.ADULT_BURNOUT: "Paperwork",
} }

View File

@ -21,10 +21,11 @@ func get_playback_id_from_scene(scene: int) -> int:
match scene: match scene:
Scenes.id.ADULT_DND: return 1 Scenes.id.ADULT_DND: return 1
Scenes.id.ADULT_VOLUNTARY: return 2 Scenes.id.ADULT_VOLUNTARY: return 2
Scenes.id.ADULT_CHRISTMAS: return 3 Scenes.id.ADULT_AUTISM: return 3
Scenes.id.ADULT_EATING: return 4 Scenes.id.ADULT_EATING: return 4
Scenes.id.ADULT_UNI: return 5 Scenes.id.ADULT_SELF_ADVOCACY: return 5
Scenes.id.ADULT_THERAPY: return 6 Scenes.id.ADULT_THERAPY_UNI: return 6
Scenes.id.ADULT_THERAPY_VOLUNTEER: return 6
Scenes.id.ADULT_BURNOUT: return 7 Scenes.id.ADULT_BURNOUT: return 7
_: return 0 _: return 0

View File

@ -15,12 +15,14 @@ class_name SaveGame extends Resource
@export var board_positions: Dictionary[StringName, Vector2] = {} # Position of all cards and stickies @export var board_positions: Dictionary[StringName, Vector2] = {} # Position of all cards and stickies
@export var board_attachments: Dictionary[StringName, StringName] = {} # Sticky name → Card name (if attached) @export var board_attachments: Dictionary[StringName, StringName] = {} # Sticky name → Card name (if attached)
## Scenes / Items / IDs that were seen
@export var seen : Array[StringName] = []
@export var is_childhood_board_complete: bool = false @export var is_childhood_board_complete: 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
@export var player_pitch: float = 0.0 @export var player_pitch: float = 0.0
@export var last_saved: int = 0 @export var last_saved: int = 0
@export var is_demo: bool = false
# === Computed Properties === # === Computed Properties ===
var is_valid: bool: var is_valid: bool:
@ -65,7 +67,6 @@ static func create_new() -> SaveGame:
var save := SaveGame.new() var save := SaveGame.new()
save.file_name = generate_save_path() save.file_name = generate_save_path()
save.unique_save_name = save.file_name.get_file().get_basename() save.unique_save_name = save.file_name.get_file().get_basename()
save.is_demo = OS.has_feature("Demo")
save.last_saved = int(Time.get_unix_time_from_system()) save.last_saved = int(Time.get_unix_time_from_system())
# Ensure save directory exists # Ensure save directory exists

View File

@ -45,16 +45,19 @@ var interaction_ui: Control
Scenes.id.ADULT_VOLUNTARY: Scenes.id.ADULT_VOLUNTARY:
if title_override == "": title_label.text = TranslationServer.translate("Gemstone Art") if title_override == "": title_label.text = TranslationServer.translate("Gemstone Art")
if subtitle_override == "": cn_label.text = "" if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_CHRISTMAS: Scenes.id.ADULT_AUTISM:
if title_override == "": title_label.text = TranslationServer.translate("Chat Messages") if title_override == "": title_label.text = TranslationServer.translate("Chat Messages")
if subtitle_override == "": cn_label.text = "" if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_EATING: Scenes.id.ADULT_EATING:
if title_override == "": title_label.text = TranslationServer.translate("Dishes") if title_override == "": title_label.text = TranslationServer.translate("Dishes")
if subtitle_override == "": cn_label.text = "" if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_UNI: Scenes.id.ADULT_SELF_ADVOCACY:
if title_override == "": title_label.text = TranslationServer.translate("Science Poster") if title_override == "": title_label.text = TranslationServer.translate("Science Poster")
if subtitle_override == "": cn_label.text = "" if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_THERAPY: Scenes.id.ADULT_THERAPY_UNI:
if title_override == "": title_label.text = TranslationServer.translate("Doctors Note")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_THERAPY_VOLUNTEER:
if title_override == "": title_label.text = TranslationServer.translate("Doctors Note") if title_override == "": title_label.text = TranslationServer.translate("Doctors Note")
if subtitle_override == "": cn_label.text = "" if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_BURNOUT: Scenes.id.ADULT_BURNOUT:

View File

@ -21,12 +21,12 @@ enum id {
TRANSITION, TRANSITION,
ADULT_DND, ADULT_DND,
ADULT_VOLUNTARY, ADULT_VOLUNTARY,
ADULT_CHRISTMAS, ADULT_AUTISM,
ADULT_EATING, ADULT_EATING,
ADULT_UNI, ADULT_SELF_ADVOCACY,
ADULT_THERAPY, ADULT_THERAPY_VOLUNTEER,
ADULT_BURNOUT, ADULT_BURNOUT,
ADULT_UNKNOWN ADULT_THERAPY_UNI
} }
signal scene_starting(scene_id: id, is_repeating: bool) signal scene_starting(scene_id: id, is_repeating: bool)
@ -66,15 +66,7 @@ func end_sequence(scene_id: id, repeat: bool) -> void:
# Re-enable player movement after cutscene # Re-enable player movement after cutscene
player_enable.emit(true) player_enable.emit(true)
# Legacy support - no longer needed # TODO: put this in savegame into a "seen" array.
func continue_sequence(_former_actor: Object) -> void:
push_warning("continue_sequence is deprecated and does nothing.")
# Legacy support - no longer needed
func sign_up_for_sequence(_callable: Callable, _sequence_id: id, _index: int = 0) -> void:
push_warning("sign_up_for_sequence is deprecated. CollectableUi now manages playback directly.")
func is_sequence_repeating(index: int) -> bool: func is_sequence_repeating(index: int) -> bool:
return completed_sequences & (1 << index) > 0 return completed_sequences & (1 << index) > 0