Files
GameJam2023/Levels/Scripts/AreaExit.cs
2023-09-06 19:55:00 -07:00

36 lines
839 B
C#

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<GameManager>("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();
}
}
}