@tool extends Event2D # var prev_stage := 0 # var stage := 0 @onready var light = $"PointLight2D" as PointLight2D 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 _fatty_game_finished_show.call_deferred() func _fatty_game_finished_show() -> void: var player = SceneManager.get_player() var camera = SceneManager.get_camera_marker() player.set_facing_direction(Vector2.LEFT) SceneManager.lock_player(0, 21, true) var monster = $"../棺材怪切肉" as AnimatedSprite2D monster.show() monster.play("砍桌子") var sfx_monster = $"../棺材怪切肉/Sfx棺材怪切肉" as Sfx2D # 剁肉_诡异 sfx_monster.stream = preload("uid://b5cjl0a4iw1kd") # 小孩笑声 var sfx_laugh = $"Sfx2D小蝉笑声" var tween = create_tween() 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) await tween.finished await Util.wait(0.5) monster.play("地下呼吸帧_准备走路") Util.timer(1.0, $"Sfx棺材怪移动amb".play) # 切肉声消失 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() await Util.wait(2.0) 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) await Util.wait(1.0) 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_胖子游戏结束") SceneManager.unlock_player() EventManager.set_stage_if_greater("c03_meat_grinder", 3) func _on_pre_stage_updated() -> void: pass func _on_stage_updated() -> void: pass