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