public ResultWindow OpenResult(bool clear) { bool existsNextLevel = LevelLoader.ExistsNextLevel(); var resultWindow = Open <ResultWindow, Tuple <bool, int> >(new Tuple <bool, int>(clear && existsNextLevel, 0)); resultWindow.OnTitleAsObservable() .Subscribe(_ => { Close <ResultWindow>(); OpenTitle(); }) .AddTo(this); resultWindow.OnRetryAsObservable() .Subscribe(_ => { Close <ResultWindow>(); LevelLoader.ReloadLevel(); }); resultWindow.OnNextAsObservable() .Subscribe(_ => { Close <ResultWindow>(); LevelLoader.LoadNextLevel(); }) .AddTo(this); return(resultWindow); }