2025-08-05 13:14:04 +00:00
|
|
|
@tool
|
|
|
|
extends Event2D
|
|
|
|
|
|
|
|
# var prev_stage := 0
|
|
|
|
# var stage := 0
|
|
|
|
|
2025-08-06 15:54:49 +00:00
|
|
|
@onready var light = $"PointLight2D" as PointLight2D
|
2025-08-05 13:14:04 +00:00
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
super._ready()
|
|
|
|
if Engine.is_editor_hint():
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
func _on_global_stage_updated(e: StringName, s: int) -> void:
|
|
|
|
super._on_global_stage_updated(e, s)
|
|
|
|
|
|
|
|
|
|
|
|
func _on_ground_ready(_ground: Ground2D) -> void:
|
|
|
|
if stage == 2:
|
|
|
|
# 进入演出
|
|
|
|
var portal_2_x = $"../portal_2".global_position.x
|
|
|
|
SceneManager.get_player().global_position.x = portal_2_x
|
2025-08-07 10:28:19 +00:00
|
|
|
_fatty_game_finished_show.call_deferred()
|
2025-08-05 13:14:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
func _fatty_game_finished_show() -> void:
|
|
|
|
var player = SceneManager.get_player()
|
2025-08-05 14:33:14 +00:00
|
|
|
var camera = SceneManager.get_camera_marker()
|
2025-08-06 12:53:49 +00:00
|
|
|
player.set_facing_direction(Vector2.LEFT)
|
2025-08-07 10:28:19 +00:00
|
|
|
SceneManager.lock_player(0, 21, true)
|
2025-08-05 14:33:14 +00:00
|
|
|
var monster = $"../棺材怪切肉" as AnimatedSprite2D
|
2025-08-05 13:14:04 +00:00
|
|
|
monster.show()
|
2025-08-05 14:33:14 +00:00
|
|
|
monster.play("砍桌子")
|
|
|
|
var sfx_monster = $"../棺材怪切肉/Sfx棺材怪切肉" as Sfx2D
|
2025-08-13 17:15:39 +00:00
|
|
|
# 剁肉_诡异
|
|
|
|
sfx_monster.stream = preload("uid://b5cjl0a4iw1kd")
|
2025-08-06 15:54:49 +00:00
|
|
|
# 小孩笑声
|
|
|
|
var sfx_laugh = $"Sfx2D小蝉笑声"
|
2025-08-05 14:33:14 +00:00
|
|
|
var tween = create_tween()
|
2025-08-14 08:57:51 +00:00
|
|
|
tween.tween_interval(2.0)
|
|
|
|
tween.tween_property(camera, "force_offset:x", -300.0, 3.0).as_relative()
|
|
|
|
Util.timer(4.0, camera.tween_zoom.bind(1.1, 2.0))
|
|
|
|
Util.timer(4.5, sfx_laugh.play)
|
2025-08-05 14:33:14 +00:00
|
|
|
await tween.finished
|
2025-08-14 08:57:51 +00:00
|
|
|
await Util.wait(0.5)
|
2025-08-05 14:33:14 +00:00
|
|
|
monster.play("地下呼吸帧_准备走路")
|
2025-08-14 15:01:06 +00:00
|
|
|
Util.timer(1.0, $"Sfx棺材怪移动amb".play)
|
2025-08-06 15:54:49 +00:00
|
|
|
# 切肉声消失
|
|
|
|
create_tween().tween_property(sfx_monster, "volume_db", -100.0, 1.0)
|
|
|
|
create_tween().tween_property(sfx_laugh, "position:x", -500.0, 3.0).as_relative()
|
2025-08-14 08:57:51 +00:00
|
|
|
await Util.wait(2.0)
|
2025-08-06 15:54:49 +00:00
|
|
|
var ambush_xchan = $"../Ambush小蝉消失" as Ambush2D
|
|
|
|
ambush_xchan.visible = true
|
|
|
|
ambush_xchan.modulate.a = 0.0
|
|
|
|
ambush_xchan.triggered.connect(
|
|
|
|
func(): create_tween().tween_property(ambush_xchan, "modulate:a", 0.0, 1.0)
|
|
|
|
)
|
|
|
|
create_tween().tween_property(ambush_xchan, "modulate:a", 1.0, 1.0)
|
2025-08-14 08:57:51 +00:00
|
|
|
await Util.wait(1.0)
|
2025-08-06 15:54:49 +00:00
|
|
|
camera.tween_zoom(1.0, 3.0)
|
|
|
|
create_tween().tween_property(camera, "force_offset:x", 0.0, 3.0)
|
|
|
|
create_tween().tween_property(light, "energy", 0.0, 2.0)
|
|
|
|
await Util.wait(3.0)
|
|
|
|
SceneManager.pop_os_with_str("c03_s07_胖子游戏结束")
|
2025-08-05 13:14:04 +00:00
|
|
|
SceneManager.unlock_player()
|
2025-08-06 15:54:49 +00:00
|
|
|
EventManager.set_stage_if_greater("c03_meat_grinder", 3)
|
2025-08-05 13:14:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
func _on_pre_stage_updated() -> void:
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
func _on_stage_updated() -> void:
|
|
|
|
pass
|