72 lines
2.2 KiB
GDScript
72 lines
2.2 KiB
GDScript
extends CanvasLayer
|
|
|
|
@onready var bg = $BG as TextureRect
|
|
|
|
signal exit(success: bool)
|
|
|
|
|
|
func _ready() -> void:
|
|
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
|
# 两张纸钱点击事件
|
|
%"Draggable纸钱1".picked.connect(_on_paper_coin_picked, CONNECT_ONE_SHOT)
|
|
%"Draggable纸钱2".picked.connect(_on_paper_coin_picked, CONNECT_ONE_SHOT)
|
|
%"HoverBraid".interacted.connect(_on_braid_interacted, CONNECT_ONE_SHOT)
|
|
|
|
_check_if_notify_to_use_prop()
|
|
# 如果用过剪刀,则直接展示后脑勺
|
|
# 0:初始化 1:已使用剪刀 2:已剪下
|
|
if EventManager.get_stage("c03_laizi_braid") > 0:
|
|
$"头".hide()
|
|
$"头受伤".hide()
|
|
$"后脑勺".show()
|
|
|
|
func _on_paper_coin_picked(_node = null) -> void:
|
|
if GlobalFunctor.c03_get_paper_coin():
|
|
await SceneManager.get_inspector().quit_and_hidden
|
|
_check_if_notify_to_use_prop()
|
|
|
|
func _on_braid_interacted() -> void:
|
|
SceneManager.enable_prop_item("prop_剪下的辫子")
|
|
await SceneManager.get_inspector().quit_and_hidden
|
|
# 退出,播放剪辫子演出
|
|
exit.emit(true)
|
|
|
|
|
|
func _check_if_notify_to_use_prop() -> void:
|
|
if EventManager.get_stage("c03_papercoin1") > 0 and EventManager.get_stage("c03_papercoin2") > 0:
|
|
if EventManager.get_stage("c03_laizi_braid") > 0:
|
|
return
|
|
elif SceneManager.has_prop("prop_剪刀"):
|
|
SceneManager.pop_center_notification("ui_center_notify_use_prop")
|
|
else:
|
|
SceneManager.pop_center_notification("ui_center_notify_lack_of_prop")
|
|
|
|
|
|
func _unhandled_input(event: InputEvent) -> void:
|
|
if event.is_action_pressed("interact"):
|
|
get_viewport().set_input_as_handled()
|
|
_try_interact()
|
|
|
|
var using_scissors = false
|
|
|
|
# 尝试使用剪刀进行互动
|
|
func _try_interact() -> void:
|
|
# 纸钱还没拿完
|
|
if EventManager.get_stage("c03_papercoin1") == 0 or EventManager.get_stage("c03_papercoin2") == 0:
|
|
return
|
|
if SceneManager.get_current_prop() != "prop_剪刀":
|
|
SceneManager.get_prop_hud().on_toggle_invalid_prop()
|
|
return
|
|
if using_scissors:
|
|
return
|
|
using_scissors = true
|
|
# $"头".hide()
|
|
# TODO
|
|
SceneManager.pop_debug_dialog_info("音效", "使用剪刀(惊悚)")
|
|
$"头".hide()
|
|
await Util.wait(1.5)
|
|
$"头受伤".hide()
|
|
$"后脑勺".show()
|
|
SceneManager.disable_prop_item("prop_剪刀")
|
|
EventManager.set_stage("c03_laizi_braid", 1)
|