xiandie/scene/ground/script/c03/s09_closeup棺材特写.gd

74 lines
2.3 KiB
GDScript3
Raw Normal View History

extends CanvasLayer
@warning_ignore("unused_signal")
signal exit(arg)
2025-07-30 20:48:16 +00:00
@onready var hover_knife = %"Hover刀" as HoverLightClickArea
@onready var hover_note = %"Hover纸条" as HoverLightClickArea
# c03_coffin: 0:初始化 1:拿走刀 2:拿走纸条_棺材怪演出 3:演出完成
var coffin_stage := 0
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
2025-07-30 20:48:16 +00:00
coffin_stage = EventManager.get_stage("c03_coffin")
hover_knife.interacted.connect(_on_knife_interacted)
hover_note.interacted.connect(_on_note_interacted)
if coffin_stage == 0:
SceneManager.pop_center_notification("ui_center_notify_c03粘刀把")
elif coffin_stage == 1:
hover_knife.hide()
hover_note.freezing = false
elif coffin_stage == 2:
hover_knife.hide()
hover_note.hide()
2025-07-30 20:48:16 +00:00
func _on_knife_interacted() -> void:
hover_knife.hide()
hover_note.freezing = false
EventManager.set_stage("c03_coffin", 1)
SceneManager.enable_prop_item("prop_菜刀")
SceneManager.disable_prop_item("prop_浆糊")
SceneManager.disable_prop_item("prop_刀把")
### TODO 读纸条时,开始准备横版的呼吸声(呼吸声与棺材怪爬墙活动分在两个音频文件)
# 退出阅读马上进入横版,出现棺材怪爬墙活动的声音
2025-07-30 20:48:16 +00:00
func _on_note_interacted() -> void:
EventManager.set_stage("c03_coffin", 2)
hover_note.hide()
%"沾血的纸条".show()
displaying_bloody_note = true
var displaying_bloody_note := false
2025-07-30 20:48:16 +00:00
# 0: 刀柄 1: 浆糊 2: 刀把
var knife_state := 0
func _unhandled_input(event: InputEvent) -> void:
2025-07-30 20:48:16 +00:00
if event.is_action_pressed("cancel"):
get_viewport().set_input_as_handled()
SceneManager.reset_temp_disabled_props()
exit.emit(displaying_bloody_note)
if event.is_action_pressed("interact"):
get_viewport().set_input_as_handled()
2025-07-30 20:48:16 +00:00
var prop = SceneManager.get_current_prop()
var valid = false
if knife_state == 0:
valid = prop == "prop_浆糊"
if valid:
knife_state = 1
$"Sfx使用浆糊".play()
%"胶水".show()
SceneManager.disable_prop_item_temp("prop_浆糊")
elif knife_state == 1:
valid = prop == "prop_刀把"
if valid:
knife_state = 2
%"刀有柄".show()
SceneManager.disable_prop_item_temp("prop_刀把")
hover_knife.freezing = false
if not valid:
SceneManager.get_prop_hud().on_toggle_invalid_prop()