extends CanvasLayer @warning_ignore("unused_signal") signal exit(arg) @onready var hover_knife = %"Hover刀" as HoverLightClickArea @onready var hover_note = %"Hover纸条" as HoverLightClickArea func _ready() -> void: layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME # c03_coffin: 0:初始化 1:拿走刀 2:拿走纸条_棺材怪演出 3:演出完成 var coffin_stage = EventManager.get_stage("c03_coffin") hover_knife.interacted.connect(_on_knife_interacted) hover_note.interacted.connect(_on_note_interacted) $"Sfx打开棺材".play() #TODO SceneManager.pop_debug_dialog_info("音效", "Sfx打开棺材") 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) var node = get_parent() as Closeup2D if node: node.hold_cancel_before_exit() SceneManager.enable_important_item("prop_沾血的纸条") # 遮住棺材怪 var color_rect = $"ColorRect" create_tween().tween_property(color_rect, "modulate:a", 1.0, 0.5) await SceneManager.get_inspector().quit_and_hidden SceneManager.black_transition(0.7, 0.5) await Util.wait(0.8) exit.emit(true) # 0: 需要浆糊 1: 需要刀把 2: 已完成 var knife_state := 0 func _unhandled_input(event: InputEvent) -> void: var coffin_stage = EventManager.get_stage("c03_coffin") 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()