74 lines
2.4 KiB
GDScript
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()
|