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

74 lines
2.4 KiB
GDScript

extends CanvasLayer
@warning_ignore("unused_signal")
signal exit(arg)
@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
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()
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 读纸条时,开始准备横版的呼吸声(呼吸声与棺材怪爬墙活动分在两个音频文件)
# 退出阅读马上进入横版,出现棺材怪爬墙活动的声音
func _on_note_interacted() -> void:
hover_note.hide()
EventManager.set_stage("c03_coffin", 2)
SceneManager.enable_important_item("prop_沾血的纸条")
await SceneManager.get_inspector().quit_and_hidden
exit.emit(true)
# 0: 需要浆糊 1: 需要刀把 2: 已完成
var knife_state := 0
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("cancel") and coffin_stage == 0:
get_viewport().set_input_as_handled()
SceneManager.reset_temp_disabled_props()
exit.emit(false)
if event.is_action_pressed("interact") and coffin_stage == 0:
var prop = SceneManager.get_current_prop()
if knife_state == 0:
get_viewport().set_input_as_handled()
if prop == "prop_浆糊":
knife_state = 1
$"Sfx使用浆糊".play()
%"胶水".show()
SceneManager.disable_prop_item_temp("prop_浆糊")
else:
SceneManager.get_prop_hud().on_toggle_invalid_prop()
elif knife_state == 1:
get_viewport().set_input_as_handled()
if prop == "prop_刀把":
knife_state = 2
%"刀有柄".show()
SceneManager.disable_prop_item_temp("prop_刀把")
hover_knife.freezing = false
else:
SceneManager.get_prop_hud().on_toggle_invalid_prop()