using Godot; using System; using System.Collections.Generic; using System.Linq; public partial class Main : Node { public PlayArea _playArea; public PlayerController _playerController; public EnemyController _enemyController; public TurnController _turnController; public Random _rng = new(); public override void _Ready() { base._Ready(); _playArea = GetNode("PlayArea"); _playerController = GetNode("PlayerController"); _enemyController = GetNode("EnemyController"); _playerController._enemyController = _enemyController; _enemyController._playerController = _playerController; _playerController._playArea = _playArea; _enemyController._playArea = _playArea; _playerController.TurnDone += ChangeTurn; _playerController.Death += EndGame; _enemyController.TurnDone += ChangeTurn; _enemyController.Initiate(); _playerController.SetUpTowers(); ChangeTurn(); } public override void _Process(double delta) { base._Process(delta); if (Input.IsActionJustPressed("escape")) { EndGame(_playerController); } if (Input.IsActionJustPressed("changeTurn")) { if(_turnController == _playerController) { _playerController.EndTurn(); } } } public void ChangeTurn() { _turnController = _turnController == _playerController ? _enemyController : _playerController; _turnController.StartTurn(); } public void EndGame(PlayerController PLAYER) { GetTree().Quit(); } }