npc对话气泡延长后不消失问题修复(将main的fix应用到demo)

This commit is contained in:
cakipaul 2025-07-11 22:54:26 +08:00
parent 3ffe9fdd98
commit 8d0ee06247

View File

@ -69,6 +69,7 @@ var speaking_sign_mode := 0:
speaking_sign_tween = create_tween() speaking_sign_tween = create_tween()
if val == 0: if val == 0:
speaking_sign_tween.tween_property(speaking_sign, "modulate:a", 0.0, 0.3) speaking_sign_tween.tween_property(speaking_sign, "modulate:a", 0.0, 0.3)
speaking_animation.stop()
elif val == 1: elif val == 1:
speaking_sign_tween.tween_property(speaking_sign, "modulate", base_mod, 0.3) speaking_sign_tween.tween_property(speaking_sign, "modulate", base_mod, 0.3)
speaking_sign_tween.parallel().tween_property( speaking_sign_tween.parallel().tween_property(
@ -133,10 +134,10 @@ func _align_signs_status():
func _on_toggle_active(activated: bool) -> void: func _on_toggle_active(activated: bool) -> void:
if activated and speaking_sign_mode == 0: if not activated:
speaking_sign_mode = 1
elif not activated and speaking_sign_mode > 0:
speaking_sign_mode = 0 speaking_sign_mode = 0
elif speaking_sign_mode == 0:
speaking_sign_mode = 1
func _on_interacted() -> void: func _on_interacted() -> void:
@ -147,9 +148,10 @@ func _on_interacted() -> void:
ground_archive.set_pair(name, "icount", icount) ground_archive.set_pair(name, "icount", icount)
DialogueManager.show_dialogue_balloon(dialogue_res, dialogue_title) DialogueManager.show_dialogue_balloon(dialogue_res, dialogue_title)
interacted.emit() interacted.emit()
var out_of_range = speaking_sign_mode == 0
speaking_sign_mode = 2 speaking_sign_mode = 2
await DialogueManager.dialogue_ended await DialogueManager.dialogue_ended
speaking_sign_mode = 1 speaking_sign_mode = 0 if out_of_range else 1
# 在 unlock 之前发射 # 在 unlock 之前发射
talk_finished.emit() talk_finished.emit()
SceneManager.unlock_player() SceneManager.unlock_player()