xiandie/scene/ground/script/c03/二章结尾回忆.gd

108 lines
3.6 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()
# 第一段小蝉特写branch
DialogueManager.show_dialogue_balloon(GlobalConfig.DIALOG_C03, "c03_绞肉机回忆小蝶和小婵2")
await DialogueManager.dialogue_ended
sitting_sprite.show()
light.show()
var tween = create_tween()
tween.tween_property(holding_balls_sprite, "modulate:a", 0.0, 1.0)
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
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)
# 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)
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()