using Godot; using System.Linq; public partial class AreaExit : Node3D { [Export] private int _levelIndex; private GameManager _gameManager; public override void _Ready() { _gameManager = GetTree().Root.GetNode("Main/GameManager"); } private void OnExitEntered(Node3D node) { Character incoming = null; if (node is Character nodeCharacter) incoming = nodeCharacter; else if (node.GetParent().GetParent() is Character parentedNode) incoming = parentedNode; if (incoming != null) { _gameManager.RemoveCharacterAndAddToExit(incoming.OwnerPlayer); GD.Print($"Exit reached by {incoming.Name}"); if (!_gameManager.Players.Any(x => x.CharactersLeftOnStage.Any())) _gameManager.OnLevelClear(); } } }