fix: accidentally made story playable appear before awaiting prepare_scene
This commit is contained in:
parent
e108250bf1
commit
b9525ce3b0
|
|
@ -22,7 +22,8 @@ func get_ready() -> void:
|
|||
#card_board.initialise_from_save(save_game)
|
||||
card_board.board_completed.connect(func():
|
||||
#TODO: hook in ending
|
||||
save_room())
|
||||
save_room()
|
||||
)
|
||||
|
||||
|
||||
func start_room():
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ func start_room():
|
|||
|
||||
await Main.curtain.open()
|
||||
|
||||
# Skip intro if already loaded.
|
||||
if not Scenes.is_sequence_repeating(Scenes.id.YOUTH_DRAVEN):
|
||||
# Play intro scene directly (not triggered by CollectableUi)
|
||||
await _play_intro_scene()
|
||||
|
|
@ -31,9 +32,6 @@ func _play_intro_scene() -> void:
|
|||
var intro: Interactable = $logic/CeilingInteractable
|
||||
await intro.play_story()
|
||||
|
||||
Scenes.end_sequence(Scenes.id.YOUTH_DRAVEN)
|
||||
|
||||
|
||||
|
||||
func get_ready():
|
||||
super.get_ready()
|
||||
|
|
@ -89,12 +87,6 @@ func save_room():
|
|||
save_game.mementos_complete = Scenes.completed_sequences
|
||||
super.save_room()
|
||||
|
||||
func prepare_transition():
|
||||
save_room()
|
||||
$visuals/AnimationPlayer.play("conserve_performance")
|
||||
await $visuals/AnimationPlayer.animation_finished
|
||||
unload()
|
||||
|
||||
|
||||
## Override to handle scene-specific preparation (chest reveal animation)
|
||||
func prepare_scene_start(scene_id: Scenes.id, is_repeating: bool) -> void:
|
||||
|
|
@ -106,8 +98,4 @@ func prepare_scene_start(scene_id: Scenes.id, is_repeating: bool) -> void:
|
|||
func play_chest_reveal() -> void:
|
||||
$visuals/AnimationPlayer.play("chest_reveal")
|
||||
$visuals/SecondaryAnimation.play("chest_reveal")
|
||||
await $visuals/SecondaryAnimation.animation_finished
|
||||
|
||||
|
||||
func unload():
|
||||
$visuals.queue_free()
|
||||
await $visuals/AnimationPlayer.animation_finished
|
||||
|
|
|
|||
|
|
@ -1,24 +1,10 @@
|
|||
[gd_resource type="Resource" script_class="SaveGame" load_steps=3 format=3 uid="uid://bgplfqxa852wo"]
|
||||
[gd_resource type="Resource" script_class="SaveGame" load_steps=2 format=3 uid="uid://bgplfqxa852wo"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d06gpwuxmkxkt" path="res://dev-util/savegame.gd" id="1_jr18u"]
|
||||
[ext_resource type="Texture2D" uid="uid://bk5ja14r7r6i4" path="res://import/interface-elements/empty_save_slot.png" id="2_b2tdf"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_jr18u")
|
||||
filepath = "DEBUG"
|
||||
unique_save_name = "DEBUG"
|
||||
current_room = 0
|
||||
mementos_complete = 1
|
||||
board_state = {
|
||||
"cards": {},
|
||||
"randoms": [],
|
||||
"stickies": {}
|
||||
}
|
||||
is_childhood_board_complete = false
|
||||
thumbnail = ExtResource("2_b2tdf")
|
||||
last_saved = 1756993270
|
||||
is_valid = true
|
||||
is_demo = false
|
||||
is_empty = true
|
||||
save_manually = false
|
||||
metadata/_custom_type_script = "uid://d06gpwuxmkxkt"
|
||||
|
|
|
|||
|
|
@ -73,4 +73,5 @@ func unload():
|
|||
## Called before a scene starts to allow room-specific preparation (e.g., animations)
|
||||
## Override in subclasses to add custom scene preparation logic
|
||||
func prepare_scene_start(_scene_id: Scenes.id, _is_repeating: bool) -> void:
|
||||
prints("PREPARE SCENE", _scene_id, _is_repeating)
|
||||
await get_tree().process_frame # Dummy wait for LSP warning otherwise
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ func collect_memento() -> void:
|
|||
is_collected = true
|
||||
|
||||
# Signal that a scene is starting (for music, etc.)
|
||||
Scenes.begin_sequence(scene)
|
||||
Scenes.begin_sequence(scene, false)
|
||||
|
||||
# Hide mouse and collapse other interactables BEFORE showing canvas
|
||||
get_tree().call_group("interactables", "collapse")
|
||||
|
|
@ -196,7 +196,7 @@ func collect_memento() -> void:
|
|||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
|
||||
# Signal that the scene is finished
|
||||
Scenes.end_sequence(scene)
|
||||
Scenes.end_sequence(scene, false)
|
||||
|
||||
if was_skipped:
|
||||
scene_skipped.emit(-1)
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ func _ready() -> void:
|
|||
view.scale = Vector3.ZERO
|
||||
frame.modulate.a = 0.0
|
||||
Scenes.player_enable.connect(_player_active) # TODO: do I have to clean this up?
|
||||
_load_interaction.call_deferred()
|
||||
_pull_save_state.call_deferred()
|
||||
|
||||
|
||||
func _load_interaction() -> void:
|
||||
func _pull_save_state() -> void:
|
||||
if interaction:
|
||||
playable = interaction.instantiate() as Control
|
||||
canvas_layer.add_child(playable)
|
||||
|
|
@ -107,13 +107,13 @@ func play_story() -> void:
|
|||
var repeat := collected
|
||||
collected = true
|
||||
|
||||
canvas_layer.show()
|
||||
await playable.appear()
|
||||
Scenes.begin_sequence(playable.scene_id, repeat)
|
||||
|
||||
# Allow room to prepare for scene (e.g., play animations)
|
||||
await State.room.prepare_scene_start(playable.scene_id, repeat)
|
||||
|
||||
Scenes.begin_sequence(playable.scene_id)
|
||||
canvas_layer.show()
|
||||
await playable.appear()
|
||||
|
||||
# Play the story
|
||||
await playable.play()
|
||||
|
|
@ -123,13 +123,12 @@ func play_story() -> void:
|
|||
var picker := State.room.get_node("%Picker") as CardPicker
|
||||
await picker.pick_cards(playable.scene_id)
|
||||
|
||||
Scenes.end_sequence(playable.scene_id) # todo: maybe later?
|
||||
|
||||
# Hide the CanvasLayer when done
|
||||
await playable.vanish()
|
||||
playable.vanish()
|
||||
canvas_layer.hide()
|
||||
|
||||
Scenes.player_enable.emit(true)
|
||||
Scenes.end_sequence(playable.scene_id, repeat) # todo: maybe later?
|
||||
expand()
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ func _ready() -> void:
|
|||
pass
|
||||
|
||||
# Called by CollectableUi when it starts playing a scene
|
||||
func begin_sequence(scene_id: id) -> void:
|
||||
print_debug(">>> Scenes.begin_sequence(%s)" % id.keys()[scene_id])
|
||||
func begin_sequence(scene_id: id, repeat: bool) -> void:
|
||||
print_debug(">>> Scenes.begin_sequence(%s)" % str(id))
|
||||
|
||||
# Disable player movement during cutscenes
|
||||
player_enable.emit(false)
|
||||
|
|
@ -46,14 +46,14 @@ func begin_sequence(scene_id: id) -> void:
|
|||
started_sequences = started_sequences | (1 << scene_id)
|
||||
|
||||
# Emit signal for other systems (music, animations, etc.)
|
||||
scene_starting.emit(scene_id, is_sequence_repeating(scene_id))
|
||||
scene_starting.emit(scene_id, repeat)
|
||||
|
||||
# Called by CollectableUi when it finishes playing a scene
|
||||
func end_sequence(scene_id: id) -> void:
|
||||
print_debug(">>> Scenes.end_sequence(%s)" % id.keys()[scene_id])
|
||||
func end_sequence(scene_id: id, repeat: bool) -> void:
|
||||
print_debug(">>> Scenes.end_sequence(%s)" % str(id))
|
||||
|
||||
# Emit signal before clearing state
|
||||
scene_finished.emit(scene_id, is_sequence_repeating(scene_id))
|
||||
scene_finished.emit(scene_id, repeat)
|
||||
|
||||
# Mark as completed
|
||||
completed_sequences = completed_sequences | (1 << scene_id)
|
||||
|
|
|
|||
Loading…
Reference in New Issue