extends Node2D @onready var light = %"PointLight2D" as PointLight2D @onready var light_sprite = %"光线" as AnimatedSprite2D @onready var sitting_sprite = %"小蝉坐着" as Sprite2D @onready var facing_sprite = %"小蝉特写" as AnimatedSprite2D @onready var serious_sprite = %"嘴不笑" as Sprite2D @onready var blink_sprite = %"眨眼" as AnimatedSprite2D @onready var holding_balls_sprite = %"手拿弹珠" as AnimatedSprite2D func _ready() -> void: %"小蝉特写branch".show() %"二楼外侧回忆branch".hide() facing_sprite.hide() sitting_sprite.hide() holding_balls_sprite.show() serious_sprite.show() blink_sprite.hide() light.hide() # 更新光 light_sprite.frame_changed.connect(_on_light_frame_changed) func start_show() -> void: # 场景中的 sfx 静音 get_tree().call_group(GlobalConfig.GROUP_GROUND_SFX, "change_volumn_db", -20) $"Sfx二章结尾氛围".play() var tween: Tween # 第一段:小蝉特写branch await Util.wait(2.0) light.show() tween = create_tween() tween.tween_property(holding_balls_sprite, "modulate:a", 0.0, 1.0) sitting_sprite.show() DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵2") await DialogueManager.dialogue_ended DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵3") await DialogueManager.dialogue_ended await _watch_back() DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵4") await DialogueManager.dialogue_ended DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵5") _smile() await DialogueManager.dialogue_ended await Util.wait(2.0) # 第二段:二楼外侧回忆branch # 从 小蝉特写branch 过渡到 第二段:二楼外侧回忆branch var f2_branch = %"二楼外侧回忆branch" f2_branch.show() f2_branch.modulate.a = 0.0 var xchan_branch = %"小蝉特写branch" tween = create_tween() tween.tween_property(xchan_branch, "modulate:a", 0.0, 2.0) tween.parallel().tween_property(f2_branch, "modulate:a", 1.0, 1.5) await tween.finished var xdie = %"蝶晃腿" as ProAnimatedSprite2D xdie.play("小蝶爬墙") %"灰姑".play("灰姑呼实体吸帧_前进") # 6秒走完, 4秒后可先开启对话 await Util.wait(4.0) DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵6", [GlobalConfig.DIALOG_IGNORE_INPUT]) await DialogueManager.dialogue_ended %"蝉晃腿".play("小蝉看向灰姑呼吸") xdie.play("小蝶看向灰姑呼吸") DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵7") await DialogueManager.dialogue_ended await Util.wait(1.5) # c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束 EventManager.set_stage("c03_meat_grinder", 3) EventManager.set_stage("c03_well_show", 1) # 覆盖转场效果 SceneManager.white_transition(1.5, 2.0) await Util.wait(1.5) # 李氏癞子房间离井边演出比较近,所以选择 5 号门 SceneManager.get_ground_loader().transition_to_scene("c02_s03", "5", 0.5, Color.WHITE) var dialog_was_ended = false func _on_dialogue_ended(_res) -> void: if _res == GlobalConfig.DIALOG_C03: dialog_was_ended = true DialogueManager.dialogue_ended.disconnect(_on_dialogue_ended) func _on_light_frame_changed() -> void: light.texture = light_sprite.sprite_frames.get_frame_texture(light_sprite.animation, light_sprite.frame) func _watch_back() -> void: facing_sprite.show() facing_sprite.modulate.a = 0 var tween = create_tween() tween.tween_property(sitting_sprite, "modulate:a", 0.0, 0.3) tween.parallel().tween_property(facing_sprite, "modulate:a", 1.0, 0.3) await tween.finished func _smile() -> void: var tween = create_tween() tween.tween_property(serious_sprite, "modulate:a", 0.0, 0.3) # editor created func _on_timer_blink_timeout() -> void: blink_sprite.show() blink_sprite.play() await blink_sprite.animation_finished blink_sprite.hide()