extends CanvasLayer @warning_ignore("unused_signal") signal exit(arg) @onready var animation_player = $AnimationPlayer as AnimationPlayer @onready var hover_key = %"Hover钥匙" as HoverLightClickArea @onready var hover_scissor = %"Hover剪刀" as HoverLightClickArea func _ready() -> void: layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME # c03_li_paperwoman: 0:初始化隐藏 1:显示纸人 2:纸舌头完成 3:已拿剪刀 4:给药完成 5:已拿钥匙 var current_stage = EventManager.get_stage("c03_li_paperwoman") if current_stage >= 2: $"断舌头粘完整".show() match current_stage: 1: await Util.wait(0.5) _display_label(0) 2: holding = true animation_player.play("give_scissor") await animation_player.animation_finished holding = false 3: await Util.wait(0.5) _display_label(1) 4: holding = true animation_player.play("give_key") await animation_player.animation_finished holding = false # 0: 舌头; 1: 药 func _display_label(_id: int) -> void: # var label # if id == 0: # label = $"求舌头/RichTextLabel" # elif id == 1: # label = $"求药/RichTextLabel" # $"Sfx诡异的哑巴音效".play(4.0) # label.show() # label.modulate.a = 0.0 # var tween = create_tween() # tween.tween_property(label, "modulate:a", 1.0, 0.7) # tween.tween_interval(3.5) # tween.tween_property(label, "modulate:a", 0.0, 0.7) # tween.tween_callback(label.hide) SceneManager.pop_center_notification("ui_center_notify_use_prop") 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 current_stage = EventManager.get_stage("c03_li_paperwoman") 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 # 浆糊可以用两次 SceneManager.disable_prop_item("prop_纸舌头") EventManager.set_stage_if_greater("c03_li_paperwoman", 2) create_tween().tween_property(sprite, "modulate:a", 1.0, 1.0) animation_player.play("give_scissor") await animation_player.animation_finished holding = false return elif current_stage == 3: if prop == "prop_药包": holding = true # 给药 -> 2013 钥匙 (prop_2013钥匙) $"Sfx使用药包".play() EventManager.set_stage_if_greater("handnote_c03_prop_drug", 2) SceneManager.disable_prop_item("prop_药包") EventManager.set_stage_if_greater("c03_li_paperwoman", 4) animation_player.play("give_key") await animation_player.animation_finished holding = false return if GlobalConfig.DEBUG: print("无效的道具:%s" % prop) prop_hud.on_toggle_invalid_prop() # Editor Node connnect func _on_hover_scissor_interacted() -> void: hover_scissor.hide() EventManager.set_stage_if_greater("c03_li_paperwoman", 3) SceneManager.enable_prop_item("prop_剪刀") SceneManager.get_inspector().quit_and_hidden.connect(_display_label.bind(1), CONNECT_ONE_SHOT) holding = true animation_player.play("after_give_scissor") await animation_player.animation_finished holding = false # Editor Node connnect func _on_hover_key_interacted() -> void: hover_key.hide() EventManager.set_stage_if_greater("c03_li_paperwoman", 5) EventManager.set_stage_if_greater("c03_pangzi_pull_xchan", 1) SceneManager.enable_prop_item("prop_2013钥匙") holding = true animation_player.play("after_give_key") await animation_player.animation_finished holding = false await Util.wait(1.0) # 交互完成,退出 exit.emit(true)