public GameState Run() { gameState = GameState.NewGame; while (true) { // Draw world event if (Render != null) { this.OnRender(); } // Player's turn (take action event) if (UserInput != null) { this.OnUserInput(); } // NPC's turn // TODO: NPC AI class TryAttack(); // Modify world currentLocation.RemoveDestroyedCharacters(); // If game is ended if (this.Player.IsDestroyed) { return(GameState.GameOver); } } }