@tool extends Event2D # var prev_stage := 0 # var stage := 0 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) @onready var ambush := $"Ambush第三章开幕" as Ambush2D func _on_ground_ready(_ground: Ground2D) -> void: ambush.triggered.connect(intro_c04) func _on_pre_stage_updated() -> void: pass func _on_stage_updated() -> void: pass func intro_c04() -> void: var monster = $"Pro棺材怪" var player = SceneManager.get_player() var camera = SceneManager.get_camera_marker() as CameraFocusMarker var default_limit: Rect2i = camera.default_camera_rect var limit := default_limit limit.position.y -= 1000 limit.size.y += 1000 camera.apply_limits(limit) SceneManager.lock_player() $"Pro花盆掉落".play() Util.timer(0.3, $"Sfx花盆碎裂".play) await Util.wait(1.5) var pivot = $"CameraPivot" camera.focus_node(pivot, 3.0) await Util.wait(2.7) var animation_player = $"AnimationPlayer" as AnimationPlayer animation_player.play("intro_c04") Util.timer(2.0, $"Pro花盆掉落".hide) await Util.wait(0.5) create_tween().tween_property(monster, "position:y", -800, 8.0) await animation_player.animation_finished camera.focus_node(player, 3.0) await Util.wait(3.0) camera.apply_limits(default_limit) SceneManager.unlock_player() EventManager.set_stage("c03_intro_c04", 1) # ArchiveManager.set_chapter_if_greater(4) func start_conversation() -> void: SceneManager.pop_debug_dialog_info("音效", "对话") func pop_chapter_notification() -> void: SceneManager.pop_chapter_notification(4)