80 lines
2.5 KiB
GDScript
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_胖子的钥匙)
|
|
$"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_胖子的钥匙")
|
|
animation_player.play("RESET")
|
|
# 交互完成,退出
|
|
exit.emit(true)
|
|
holding = false
|
|
return
|
|
if GlobalConfig.DEBUG:
|
|
print("无效的道具:%s" % prop)
|
|
$SfxInvalid.play()
|
|
prop_hud.on_toggle_invalid_prop()
|