xiandie/scene/ground/script/c03/s04_closeup李氏纸人.gd

80 lines
2.5 KiB
GDScript

extends CanvasLayer
@warning_ignore("unused_signal")
signal exit(arg)
@onready var animation_player = $AnimationPlayer as AnimationPlayer
var current_stage := 0
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
# c03_li_paperwoman: 0:初始化隐藏 1:显示纸人 2:纸舌头完成 3:给药完成
current_stage = EventManager.get_stage("c03_li_paperwoman")
if current_stage == 1:
await Util.wait(1.0)
SceneManager.pop_center_notification("ui_center_notify_c03纸人浆糊舌头")
if current_stage == 2:
$"断舌头粘完整".show()
await Util.wait(1.0)
SceneManager.pop_center_notification("ui_center_notify_c03纸人求药")
var paste_used := false
var holding := false
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("interact"):
get_viewport().set_input_as_handled()
if holding:
return
var prop = SceneManager.get_current_prop()
var prop_hud = SceneManager.get_prop_hud()
if current_stage == 1:
if not paste_used:
if prop == "prop_一碗浆糊":
$"Sfx使用浆糊".play()
paste_used = true
var sprite = $"断舌头涂胶水"
sprite.show()
sprite.modulate.a = 0.0
create_tween().tween_property(sprite, "modulate:a", 1.0, 1.0)
return
else:
# 浆糊&纸舌头 -> 纸钱
if prop == "prop_纸舌头":
holding = true
$"Sfx使用纸舌头".play()
var sprite = $"断舌头粘完整"
sprite.show()
sprite.modulate.a = 0.0
create_tween().tween_property(sprite, "modulate:a", 1.0, 1.0)
animation_player.play("give_coin")
await animation_player.animation_finished
# 浆糊可以用两次
SceneManager.disable_prop_item("prop_纸舌头")
GlobalFunctor.c03_get_paper_coin()
EventManager.set_stage_if_greater("c03_li_paperwoman", 2)
current_stage = 2
animation_player.play("RESET")
holding = false
return
elif current_stage == 2:
if prop == "prop_药包":
holding = true
# 给药 -> 2013 钥匙 (prop_2013钥匙)
$"Sfx使用药包".play()
animation_player.play("give_key")
await animation_player.animation_finished
current_stage = 3
EventManager.set_stage_if_greater("c03_li_paperwoman", 3)
SceneManager.enable_prop_item("prop_2013钥匙")
animation_player.play("RESET")
# 交互完成,退出
exit.emit(true)
holding = false
return
if GlobalConfig.DEBUG:
print("无效的道具:%s" % prop)
$SfxInvalid.play()
prop_hud.on_toggle_invalid_prop()