From a91830d28b43a76643b5993626504ecd5e1fd25a Mon Sep 17 00:00:00 2001 From: Tiger Jove Date: Mon, 12 Jan 2026 21:43:48 +0100 Subject: [PATCH] fix: skip buttons (sorta) work via mouse now. --- .../luna/playables/story_playable.gd | 20 +++++++++++++------ src/ui/skip_control/skip_control.gd | 8 ++++---- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/logic-scenes/luna/playables/story_playable.gd b/src/logic-scenes/luna/playables/story_playable.gd index 7e8ab16..02de385 100644 --- a/src/logic-scenes/luna/playables/story_playable.gd +++ b/src/logic-scenes/luna/playables/story_playable.gd @@ -77,8 +77,7 @@ func _ready() -> void: if skip_control is SkipControl and not Engine.is_editor_hint(): skip_control.skip.connect(skip_text) - if get_tree().root.get_child(-1) == self: - play() + # Clunky rebuild... story_array = story_array progress = progress @@ -123,12 +122,14 @@ func try_scroll(): func play(): print_debug("StoryPlayable.gd: %s.play()" % self.name) - animation_player.play("RESET") + + # There's an ugly glitch here. + hide() + animation_player.play("RESET") await animation_player.animation_finished # Show ourselves before playing - get_parent().show() # Canvaslayer! - show() + get_parent().show() # Ensure visible Canvaslayer! scroll_target = 0 @@ -142,8 +143,15 @@ func play(): _: animation_player.queue("en") + # Wait and get ready. + await get_tree().process_frame + show() + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + + # Don't know how to do this. + #%StoryScroll.grab_focus() + if name == "draven": - await get_tree().process_frame await get_tree().process_frame $AnimationPlayer/Music.play() diff --git a/src/ui/skip_control/skip_control.gd b/src/ui/skip_control/skip_control.gd index 9c8ccd1..50b7155 100644 --- a/src/ui/skip_control/skip_control.gd +++ b/src/ui/skip_control/skip_control.gd @@ -54,7 +54,7 @@ var is_auto_proceeding: bool = false: action_prompt.action = "ui_cancel" button.text = "keep reading" is_auto_proceeding = value - + #resets progress bar on button time_pressed = 0 @@ -70,7 +70,7 @@ func _process(delta): text_revealed = true else: is_auto_proceeding = true - + elif is_auto_proceeding and text_revealed: time_pressed += delta progress.value = time_pressed / auto_continue_delay @@ -84,7 +84,7 @@ func _input(event: InputEvent) -> void: if unrevealed: $AnimationPlayer.play("reveal_skip") unrevealed = false - + if event.is_action_pressed("skip"): if not (is_auto_proceeding or aborted): pressed = true @@ -94,7 +94,7 @@ func _input(event: InputEvent) -> void: $AnimationPlayer.play("vanish_skip") await $AnimationPlayer.animation_finished reset() - + get_viewport().set_input_as_handled() elif event.is_action_released("skip"): if not is_auto_proceeding: