74 lines
2.3 KiB
GDScript
74 lines
2.3 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:
|
|
EventManager.set_stage("c03_coffin", 2)
|
|
hover_note.hide()
|
|
%"沾血的纸条".show()
|
|
displaying_bloody_note = true
|
|
|
|
|
|
var displaying_bloody_note := false
|
|
# 0: 刀柄 1: 浆糊 2: 刀把
|
|
var knife_state := 0
|
|
|
|
func _unhandled_input(event: InputEvent) -> void:
|
|
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()
|
|
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()
|