2025-07-27 17:37:38 +00:00
|
|
|
|
extends Node2D
|
2025-07-27 06:53:36 +00:00
|
|
|
|
|
|
|
|
|
@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:
|
2025-07-28 14:15:57 +00:00
|
|
|
|
%"小蝉特写branch".show()
|
|
|
|
|
%"二楼外侧回忆branch".hide()
|
2025-07-27 06:53:36 +00:00
|
|
|
|
facing_sprite.hide()
|
2025-07-27 17:37:38 +00:00
|
|
|
|
sitting_sprite.hide()
|
2025-07-27 06:53:36 +00:00
|
|
|
|
holding_balls_sprite.show()
|
|
|
|
|
serious_sprite.show()
|
|
|
|
|
blink_sprite.hide()
|
2025-07-27 17:37:38 +00:00
|
|
|
|
light.hide()
|
2025-07-27 06:53:36 +00:00
|
|
|
|
# 更新光
|
|
|
|
|
light_sprite.frame_changed.connect(_on_light_frame_changed)
|
|
|
|
|
|
|
|
|
|
|
2025-07-27 17:37:38 +00:00
|
|
|
|
func start_show() -> void:
|
2025-07-28 14:15:57 +00:00
|
|
|
|
# 场景中的 sfx 静音
|
|
|
|
|
get_tree().call_group(GlobalConfig.GROUP_GROUND_SFX, "change_volumn_db", -20)
|
|
|
|
|
$"Sfx二章结尾氛围".play()
|
|
|
|
|
|
|
|
|
|
# 第一段:小蝉特写branch
|
2025-07-27 17:37:38 +00:00
|
|
|
|
DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵2")
|
|
|
|
|
await DialogueManager.dialogue_ended
|
|
|
|
|
sitting_sprite.show()
|
|
|
|
|
light.show()
|
2025-07-27 06:53:36 +00:00
|
|
|
|
var tween = create_tween()
|
|
|
|
|
tween.tween_property(holding_balls_sprite, "modulate:a", 0.0, 1.0)
|
2025-07-27 17:37:38 +00:00
|
|
|
|
await tween.finished
|
|
|
|
|
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
|
2025-07-28 14:15:57 +00:00
|
|
|
|
await Util.wait(2.0)
|
|
|
|
|
|
|
|
|
|
# 第二段:二楼外侧回忆branch
|
|
|
|
|
# 从 小蝉特写branch 过渡到 第二段:二楼外侧回忆branch
|
|
|
|
|
%"二楼外侧回忆branch".show()
|
|
|
|
|
var xchan_branch = %"小蝉特写branch"
|
|
|
|
|
tween = create_tween()
|
|
|
|
|
tween.tween_property(xchan_branch, "modulate:a", 0.0, 3.0)
|
|
|
|
|
await tween.finished
|
|
|
|
|
|
|
|
|
|
var xdie = %"蝶晃腿" as ProAnimatedSprite2D
|
|
|
|
|
xdie.play("小蝶爬墙")
|
|
|
|
|
await xdie.animation_finished
|
|
|
|
|
%"灰姑".play("灰姑呼实体吸帧_前进")
|
|
|
|
|
# 6秒走完
|
|
|
|
|
await Util.wait(5.5)
|
|
|
|
|
xdie.play("小蝶爬墙")
|
|
|
|
|
%"蝉晃腿".play("小蝉看向灰姑呼吸")
|
|
|
|
|
xdie.play("小蝶看向灰姑呼吸")
|
|
|
|
|
await Util.wait(1.0)
|
|
|
|
|
DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵6")
|
|
|
|
|
await DialogueManager.dialogue_ended
|
|
|
|
|
await Util.wait(1.5)
|
|
|
|
|
|
2025-07-27 17:37:38 +00:00
|
|
|
|
# c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束
|
|
|
|
|
EventManager.set_stage_if_greater("c03_meat_grinder", 3)
|
|
|
|
|
EventManager.set_stage_if_greater("c03_well_show", 1)
|
|
|
|
|
# 李氏癞子房间离井边演出比较近,所以选择 5 号门
|
|
|
|
|
SceneManager.get_ground_loader().transition_to_scene("c02_s03", "5")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
2025-07-27 06:53:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
2025-07-27 17:37:38 +00:00
|
|
|
|
await tween.finished
|
2025-07-27 06:53:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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()
|