public async Task Unload() { await gameLoader.Unload(); currentGame = null; gameModeSwitchHandler = null; }
public async Task PlayGame(CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { return; } var gameUI = (IGameView)(await windowNavigation.Show <IGameView>(cancellationToken)); gameModeSwitchHandler = new GameModeSwitchHandler(gameUI); _ = currentGame.Init(cancellationToken); gameModeSwitchHandler.Init(true); await Task.WhenAny(gameEndConditions.Select(gec => gec.WaitForGameEndCondition(cancellationToken))); gameModeSwitchHandler.Stop(); await Task.WhenAll(windowNavigation.Hide <IGameView>(cancellationToken), currentGame.End(cancellationToken)); }