2025-01-27 15:13:37 +00:00
|
|
|
|
extends CanvasLayer
|
2025-01-05 11:25:13 +00:00
|
|
|
|
|
2025-05-13 11:45:33 +00:00
|
|
|
|
signal exit(success: bool)
|
2025-01-14 10:20:31 +00:00
|
|
|
|
|
2025-05-14 20:43:55 +00:00
|
|
|
|
@onready var animated_sprite = $AnimatedSprite2D as AnimatedSprite2D
|
|
|
|
|
@onready var box = $Box as Sprite2D
|
2025-01-05 11:25:13 +00:00
|
|
|
|
|
2025-05-14 20:43:55 +00:00
|
|
|
|
# 小蝉人偶,? ? ?
|
|
|
|
|
var xiaochan_plugged := false:
|
2025-01-05 11:25:13 +00:00
|
|
|
|
set(value):
|
2025-05-14 20:43:55 +00:00
|
|
|
|
xiaochan_plugged = value
|
2025-05-21 20:16:27 +00:00
|
|
|
|
ArchiveManager.set_global_entry("c02_musicbox_xiaochan_plugged", value)
|
2025-01-06 11:13:48 +00:00
|
|
|
|
|
2025-01-05 11:25:13 +00:00
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
2025-05-14 20:43:55 +00:00
|
|
|
|
if Engine.is_editor_hint():
|
2025-01-05 11:25:13 +00:00
|
|
|
|
return
|
2025-05-21 20:16:27 +00:00
|
|
|
|
xiaochan_plugged = ArchiveManager.get_global_value("c02_musicbox_xiaochan_plugged", false)
|
2025-01-05 11:25:13 +00:00
|
|
|
|
|
2025-05-14 20:43:55 +00:00
|
|
|
|
# %"小蝉人偶".visible = xiaochan_plugged
|
2025-01-05 11:25:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _unhandled_input(event: InputEvent) -> void:
|
2025-05-14 20:43:55 +00:00
|
|
|
|
if event.is_action_pressed("interact"):
|
|
|
|
|
# 尝试使用道具
|
|
|
|
|
_try_use_prop()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _try_use_prop() -> void:
|
|
|
|
|
var hud = SceneManager.get_prop_hud() as PropHud
|
|
|
|
|
var inspector = SceneManager.get_inspector() as PropInspector
|
|
|
|
|
|
|
|
|
|
var key = SceneManager.get_current_prop(false)
|
|
|
|
|
if key == "prop_木头人偶" and not xiaochan_plugged:
|
|
|
|
|
SceneManager.disable_prop_item(key)
|
|
|
|
|
xiaochan_plugged = true
|
|
|
|
|
box.visible = false
|
|
|
|
|
animated_sprite.visible = true
|
|
|
|
|
animated_sprite.play("暗格抽屉动画")
|
|
|
|
|
await animated_sprite.animation_finished
|
|
|
|
|
await get_tree().create_timer(1.0).timeout
|
|
|
|
|
box.visible = true
|
|
|
|
|
animated_sprite.visible = false
|
|
|
|
|
|
|
|
|
|
# 先全部加载进去,再逐个展示,防止退出游戏时遗漏
|
|
|
|
|
hud.inventory.enable_item("prop_木头人偶")
|
|
|
|
|
hud.inventory.enable_item("prop_撕下的照片上")
|
|
|
|
|
hud.inventory.enable_item("prop_无头小猫玩具")
|
|
|
|
|
hud.inventory.enable_item("prop_弹珠")
|
|
|
|
|
|
|
|
|
|
SceneManager.enable_prop_item("prop_弹珠")
|
|
|
|
|
await inspector.quit_and_hidden
|
|
|
|
|
SceneManager.enable_prop_item("prop_无头小猫玩具")
|
|
|
|
|
await inspector.quit_and_hidden
|
|
|
|
|
SceneManager.enable_prop_item("prop_撕下的照片上")
|
|
|
|
|
await inspector.quit_and_hidden
|
|
|
|
|
SceneManager.enable_prop_item("prop_木头人偶")
|
2025-05-13 11:45:33 +00:00
|
|
|
|
return
|
2025-05-14 20:43:55 +00:00
|
|
|
|
|
|
|
|
|
# hud 无效shaking
|
|
|
|
|
hud.on_toggle_invalid_prop()
|