xiandie/scene/ground/script/c03/s06_closeup柜子后的洞.gd

55 lines
1.9 KiB
GDScript3
Raw Normal View History

2025-07-14 16:35:04 +00:00
extends CanvasLayer
@warning_ignore("unused_signal")
signal exit(arg)
2025-07-24 06:41:25 +00:00
@onready var sfx_newspaper = $"Sfx折起报纸" as Sfx
@onready var hover_key = %"HoverLight钥匙" as HoverLightClickArea
@onready var hover_handle = %"HoverLight刀柄" as HoverLightClickArea
@onready var drag_newspaper = %"报纸展开" as Draggable2D
@onready var drag_wizardpaper = %"符纸" as Draggable2D
2025-07-14 16:35:04 +00:00
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
2025-07-24 06:41:25 +00:00
drag_wizardpaper.picked.connect(func(_a):
2025-07-30 21:24:11 +00:00
SceneManager.enable_important_item("prop_符纸")
2025-07-24 06:41:25 +00:00
)
drag_newspaper.picked.connect(func(_a):
sfx_newspaper.play()
drag_newspaper.hide()
)
# 使用 event binder 控制道具状态
hover_key.interacted.connect(func():
2025-08-05 09:38:56 +00:00
_on_prop_picked("prop_3012钥匙")
2025-07-24 06:41:25 +00:00
)
hover_handle.interacted.connect(func():
_on_prop_picked("prop_刀把")
)
2025-07-14 16:35:04 +00:00
func _on_prop_picked(prop_key: String) -> void:
SceneManager.enable_prop_item(prop_key)
2025-07-24 06:41:25 +00:00
# 当两个道具都拿到时,触发被胖子打晕演出
2025-07-14 16:35:04 +00:00
if (
2025-08-05 09:38:56 +00:00
(prop_key == "prop_3012钥匙" and EventManager.get_stage(&"c03_s06_hole_knife_handle") > 0)
2025-07-14 16:35:04 +00:00
or (prop_key == "prop_刀把" and EventManager.get_stage(&"c03_s06_hole_key") > 0)
):
await SceneManager.get_inspector().quit_and_hidden
# TODO
2025-07-24 06:41:25 +00:00
SceneManager.pop_debug_dialog_info("美术&音效", "背后响起画外音「偷东西?」; 被胖子打晕演出")
await Util.wait(0.5)
Util.shake_layer(self, 2.0, 0.5, 4.0)
2025-08-13 08:42:21 +00:00
await Util.wait(2.0)
$"Sfx胖子靠近".play()
2025-07-14 16:35:04 +00:00
# 画面抖动变红,玩家被打晕,画面变黑
2025-07-24 06:41:25 +00:00
$AnimationPlayer.play("bleeding_red")
Util.shake_layer(self, 1.0)
2025-08-05 09:38:56 +00:00
# 拉长黑幕时长
SceneManager.black_transition(2.0, 3.0)
2025-08-05 13:14:04 +00:00
await Util.wait(2.0)
DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_s06_被胖子打晕")
await Util.wait(3.0)
2025-08-13 08:42:21 +00:00
$"Sfx被击中耳鸣".global_play()
2025-07-24 06:41:25 +00:00
SceneManager.get_ground_loader().transition_to_scene("c03_s08", "1")