private void game_TurnEnded(object sender, EventArgs args) { turnsSinceLastSaving++; if (turnsSinceLastSaving >= savingInterval) { saveGameTask?.Wait(); saveGameTask = saveService.SaveGameAsync(); turnsSinceLastSaving = 0; } if (CurrentGame.Player.Health <= 0) { saveGameTask?.Wait(); ((GameCore <Player>)CurrentGame.Game).TurnEnded -= game_TurnEnded; CurrentGame.Load(null); saveService.DeleteSave(); } }