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) { ChangeTurn(); } } } public async void ChangeTurn() { if (_turnController != _playerController) { _turnController = _playerController; await _playerController.StartTurn(); } else { _turnController = _enemyController; await _enemyController.StartTurn(); } } public void EndGame(PlayerController PLAYER) { GetTree().Quit(); } }