using Godot; using System; // Designed by Jojackman1 public partial class LevelManager : Node { Node2D StartNode; Node2D EndNode; Node2D Player; string EndType = "nothing"; public override void _Ready() { StartNode = GetParent().GetNode("StartNode"); EndNode = GetParent().GetNode("EndNode"); Player = GetParent().GetNode("Player"); // Play into animation GetParent().GetNode("ScreenAnimations").GetNode("LevelStartAssets").GetNode("LevelStart").CurrentAnimation = "default"; GetParent().GetNode("ScreenAnimations").GetNode("LevelStartAssets").Reparent(GetTree().Root.GetNode("Camera").GetNode("Camera2D")); GetTree().Root.GetNode("Camera").GetNode("Camera2D").GetNode("LevelStartAssets").GlobalPosition = GetTree().Root.GetNode("Camera").GetNode("Camera2D").GlobalPosition; GetTree().Root.GetNode("Camera").GetNode("Camera2D").GetNode("LevelStartAssets").Visible = true; } public override void _Process(double delta) { // Manage conditions to end the level if (EndType == "nothing") { // Death if () { EndManager("Death"); EndType = "Death"; } // Success if (GetParent().HasNode("Player") && Player.GlobalPosition.DistanceTo(EndNode.GlobalPosition) <= 16) { EndManager("Success"); EndType = "Success"; } } } public void EndManager(string EndType) { switch (EndType) { case "Death": // Player Dies break; case "Success": // Successfully make it to the end of the levels break; default: break; } } }