public void TestRetryFromResults() { Player player = null; ResultsScreen results = null; WorkingBeatmap beatmap() => Game.Beatmap.Value; PushAndConfirm(() => new TestPlaySongSelect()); AddStep("import beatmap", () => ImportBeatmapTest.LoadQuickOszIntoOsu(Game).Wait()); AddUntilStep("wait for selected", () => !Game.Beatmap.IsDefault); AddStep("set mods", () => Game.SelectedMods.Value = new Mod[] { new OsuModNoFail(), new OsuModDoubleTime { SpeedChange = { Value = 2 } } }); AddStep("press enter", () => InputManager.Key(Key.Enter)); AddUntilStep("wait for player", () => { // dismiss any notifications that may appear (ie. muted notification). clickMouseInCentre(); return((player = Game.ScreenStack.CurrentScreen as Player) != null); }); AddUntilStep("wait for track playing", () => beatmap().Track.IsRunning); AddStep("seek to near end", () => player.ChildrenOfType <GameplayClockContainer>().First().Seek(beatmap().Beatmap.HitObjects[^ 1].StartTime - 1000));
private IEnumerator EndGameSlowDown() { yield return(new WaitForSeconds(1)); if (frameDelay < 5) { frameDelay++; StartCoroutine(EndGameSlowDown()); } else { Debug.Log("Game End"); frameDelay = 1; UpdateOnFrame = false; //Go to the results screen GameObject resultsObject = new GameObject("Results Screen"); DontDestroyOnLoad(resultsObject); ResultsScreen results = resultsObject.AddComponent <ResultsScreen>(); for (int i = 0; i < 3; i++) { if (resultsDict.ContainsKey(i)) { results.AddFighterResult(resultsDict[i]); } else { results.AddFighterResult(null); } } SceneManager.LoadScene("Results", LoadSceneMode.Single); } }
private void LoadGui() { _guiCamera = new Camera2D(); _resultsScreen = new ResultsScreen(teamsSelected); _guiFrame = new MenuFrame(new Rectangle(0, 0, (int)GameSettings.ScreenWidth - 6, (int)GameSettings.ScreenHeight), "Menu", new Rectangle(0, 0, 16, 16)); _guiFrame.AddHorizontalLine(16, (int)GameSettings.ScreenWidth - 22, (int)(2 * 32)); _guiFrame.AddSplit(0, (int)(2 * 32), MenuFrame.SplitType.Right); _guiFrame.AddSplit((int)GameSettings.ScreenWidth - 22, (int)(2 * 32), MenuFrame.SplitType.Left); for (int i = 1; i <= 2; i++) { _guiFrame.AddSplit((i * 290), 0, MenuFrame.SplitType.Down); _guiFrame.AddSplit((i * 290), (int)(2 * 32), MenuFrame.SplitType.Up); _guiFrame.AddVerticalLine((i * 290), 16, 2 * 32); } for (int i = 3; i <= 4; i++) { _guiFrame.AddSplit((i * 290) - 90, 0, MenuFrame.SplitType.Down); _guiFrame.AddSplit((i * 290) - 90, (int)(2 * 32), MenuFrame.SplitType.Up); _guiFrame.AddVerticalLine((i * 290) - 90, 16, 2 * 32); } _guiFrame.LoadContent(_contentManager); _wonText = new SpriteText("BigFont", "Player won", new Vector2(300, 300)); _wonText.Depth = 1f; _wonText.color = Color.White; _wonText.LoadContent(_contentManager); _wonText.CenterText(new Rectangle((int)camera.Position.X, (int)camera.Position.Y, (int)GameSettings.ScreenWidth, (int)GameSettings.ScreenHeight), true, true); _wonText.Hide(); _timerFont = new SpriteText("HealthFont", "Time: ", new Vector2(0, 0)); _timerFont.LoadContent(_contentManager, _spriteBatch); _timerFont.CenterText(new Rectangle(0, 16, (int)GameSettings.ScreenWidth, 16 * 3), true, true); }
void Update() { UpdatePlayers(); if ((victoryConditions != null) && (players.Length > 1) && (Time.fixedTime > 1)) { foreach (VictoryCondition victoryCondition in victoryConditions) { if (victoryCondition.GameFinished()) { PauseMenu pauseMenu = hud.GetComponent <PauseMenu>(); if (pauseMenu) { pauseMenu.enabled = false; } ResultsScreen resultsScreen = hud.GetComponent <ResultsScreen>(); resultsScreen.SetMetVictoryCondition(victoryCondition); resultsScreen.enabled = true; Time.timeScale = 0.0f; Cursor.visible = true; ResourceManager.MenuOpen = true; hud.enabled = false; } } } }
/// <summary> /// A function to get the singleton instance of the class, or create it if id doesnt /// exist. /// </summary> /// <returns>ResultsScreen</returns> public static ResultsScreen ResultsScreenInstance() { if (resultsScreen == null) { resultsScreen = new ResultsScreen(); } return(resultsScreen); }
public void Awake() { currentPlayer = new CurrenPlayerScreen(transform.FindChild("CurrentPlayer").gameObject, currentPlayerNext); endMove = new EndMoveScreen(transform.FindChild("EndMove").gameObject, endMoveNext); resultsScreen = new ResultsScreen(transform.FindChild("MoveResults").gameObject, сloseMoveResults); winnersScreen = new WinnersScreen(transform.FindChild("Winners").gameObject, finishGame); endMove.hide(); currentPlayer.hide(); resultsScreen.hide(); winnersScreen.hide(); }
private void loadResultsScreen(Func <ResultsScreen> createResults) { ResultsScreen results = null; AddStep("load results", () => Child = new TestResultsContainer(results = createResults())); // expanded panel should be centered the moment results screen is loaded // but can potentially be scrolled away on certain specific load scenarios. // see: https://github.com/ppy/osu/issues/18226 AddUntilStep("expanded panel in centre of screen", () => { var expandedPanel = this.ChildrenOfType <ScorePanel>().Single(p => p.State == PanelState.Expanded); return(Precision.AlmostEquals(expandedPanel.ScreenSpaceDrawQuad.Centre.X, results.ScreenSpaceDrawQuad.Centre.X, 1)); }); }
/// <summary> /// Asynchronously processes all documents in the project in a comprehensive manner. /// </summary> /// <returns>A System.Threading.Tasks.Task representing the asynchronous processing operation.</returns> public async Task ParseDocuments() { var resourceLoadingNotifier = new ResourceNotifier(); var analysisOrchestrator = new AnalysisOrchestrator(FileManager.TxtFiles); var loadingEvents = ConfigureLoadingEvents(resourceLoadingNotifier); var loadedEvents = ConfigureLoadedEventStream(resourceLoadingNotifier); var analysisUpdateEvents = ConfigureAnalysisUpdateEvents(analysisOrchestrator); Observable.Merge( loadingEvents.Select(pattern => pattern.EventArgs), loadedEvents.Select(pattern => pattern.EventArgs), analysisUpdateEvents.Select(pattern => pattern.EventArgs) ) .Select(pattern => new { pattern.Message, Progress = pattern.PercentWorkRepresented }) .SubscribeOn(System.Threading.SynchronizationContext.Current) .Subscribe(onNext: async e => { progressLabel.Content = e.Message; progressBar.ToolTip = e.Message; var animateStep = 0.028 * e.Progress; for (var i = 0; i < 33; ++i) { progressBar.Value += animateStep; await Task.Yield(); } }); var timer = System.Diagnostics.Stopwatch.StartNew(); ResultsScreen.Documents = await analysisOrchestrator.ProcessAsync(); progressBar.Value = 100; var completetionMessage = $"Processing Complete. Time: {timer.ElapsedMilliseconds / 1000f} seconds"; progressLabel.Content = completetionMessage; progressBar.ToolTip = completetionMessage; proceedtoResultsButton.Visibility = Visibility.Visible; NativeMethods.StartFlashing(this); await Task.WhenAll(ResultsScreen.CreateWeightViewsForAllDocumentsAsync(), ResultsScreen.BuildTextViewsForAllDocumentsAsync()); ProcessingCompleted(this, new EventArgs()); }
void Update() { if (victoryConditions != null) { foreach (VictoryCondition victoryCondition in victoryConditions) { if (victoryCondition.GameFinished()) { ResultsScreen resultsScreen = hud.GetComponent <ResultsScreen>(); resultsScreen.SetMetVictoryCondition(victoryCondition); resultsScreen.enabled = true; Time.timeScale = 0.0f; Cursor.visible = true; ResourceManager.MenuOpen = true; hud.enabled = false; } } } }
public void TestRetryFromResults() { Player player = null; ResultsScreen results = null; WorkingBeatmap beatmap() => Game.Beatmap.Value; PushAndConfirm(() => new TestSongSelect()); AddStep("import beatmap", () => ImportBeatmapTest.LoadQuickOszIntoOsu(Game).Wait()); AddUntilStep("wait for selected", () => !Game.Beatmap.IsDefault); AddStep("set autoplay", () => Game.SelectedMods.Value = new[] { new OsuModAutoplay() }); AddStep("press enter", () => InputManager.Key(Key.Enter)); AddUntilStep("wait for player", () => (player = Game.ScreenStack.CurrentScreen as Player) != null); AddStep("seek to end", () => player.ChildrenOfType <GameplayClockContainer>().First().Seek(beatmap().Track.Length)); AddUntilStep("wait for pass", () => (results = Game.ScreenStack.CurrentScreen as ResultsScreen) != null && results.IsLoaded); AddStep("attempt to retry", () => results.ChildrenOfType <HotkeyRetryOverlay>().First().Action()); AddUntilStep("wait for player", () => Game.ScreenStack.CurrentScreen != player && Game.ScreenStack.CurrentScreen is Player); }
void Start() { ResultsScreen resultsScreen = GameObject.FindObjectOfType <ResultsScreen>(); bool valid = false; if (resultsScreen != null) { if (resultsScreen.results.Count >= (playerNum + 1)) { results = resultsScreen.results[playerNum]; if (results.fighterName != "") { nameLabel.text = results.fighterName; valid = true; } } } if (!valid) { gameObject.SetActive(false); } }
protected virtual void endLevel() { MediaSystem.StopSiren(); MediaSystem.PlaySoundEffect(SFXOptions.Win); overlay = new OpeningOverlay(true); results = new ResultsScreen(time, BoxesDestroyed, score, levelNumber, CompletionData); ending = true; color = new Color(0, 0, 0, 0); timer = new Timer(2500, onTimerFired, false); timer.Start(); TemporarilyMuteVoice = false; screenSpace = new Rectangle(0, 0, (int)RenderingDevice.Width, (int)RenderingDevice.Height); }
public virtual void AddToGame(Space s) { TemporarilyMuteVoice = false; MediaSystem.PlayTrack(levelTheme.Song); overlay = new OpeningOverlay(levelNumber < 12 ? levelNumber : levelNumber - 11, levelNumber > 11, levelName); time = new TimeSpan(); RebuildTiming(); foreach(OperationalMachine m in MachineList.Keys) s.Add(m); s.Add(levelModel); foreach(Tube t in tubeList) s.Add(t); foreach(BaseModel m in glassModels) if(m.Ent.Space == null) s.Add(m); s.Add(dispenser); if(levelTheme.Fluid != null) s.Add(levelTheme.Fluid); addModelsToRenderer(); results = null; ending = badEnding = false; }
protected override void endLevel() { if(!moved) { moved = true; MediaSystem.StopSiren(); BoxSpawnPoint = spawnTheSecond; GameManager.Space.DuringForcesUpdateables.Starting += updateCamera; MediaSystem.LevelReset(); MediaSystem.PlayVoiceActing(11); boxesMax = boxesMaxTwo; boxesNeeded = boxesNeedTwo; scoreboard = new Scoreboard(levelTheme.TextColor, boxesNeedTwo, boxesMaxTwo, spawnTime); scoreAtCheckpoint = score; timeAtCheckpoint = time; lostAtCheckpoint = BoxesDestroyed; BoxesDestroyed = 0; boxesSaved = 0; BoxesRemaining = boxesMaxTwo; RenderingDevice.Add(baseTheSecond); GameManager.Space.Add(baseTheSecond); while(boxesOnscreen.Count > 0) { RenderingDevice.RemovePermanent(boxesOnscreen[0]); GameManager.Space.Remove(boxesOnscreen[0]); boxesOnscreen.RemoveAt(0); } TemporarilyMuteVoice = false; catcherTheSecond.AddToGame(GameManager.Space); int i = 0; foreach(OperationalMachine m in MachineList.Keys) { i++; if(i < 12) continue; else { RenderingDevice.Add(m); GameManager.Space.Add(m); } } i = 0; foreach(Tube m in tubeList) { i++; if(i < 111) continue; else { RenderingDevice.Add(m); GameManager.Space.Add(m); } } i = 0; foreach(BaseModel m in glassModels) { i++; if(i < 6) continue; else { RenderingDevice.Add(m); //GameManager.Space.Add(m); } } } else { base.endLevel(); results = new ResultsScreen(time, BoxesDestroyed + lostAtCheckpoint, score, levelNumber, CompletionData); } }
private void buttonResults_Click(object sender, EventArgs e) { ResultsScreen resultsScreen = new ResultsScreen(); resultsScreen.Show(); }
void Start() { playerOne = GameObject.Find("playerOne"); playerTwo = GameObject.Find("playerTwo"); puck = GameObject.Find("puck"); playerTwo.GetComponent<PlayerController>().isAIControlled = !isMultiplayerGame; scoreManager = GameObject.Find("score").GetComponent<ScoreManager>(); scoreManager.gameObject.SetActive(false); resultsScreen = GameObject.Find("Canvas").GetComponent<ResultsScreen>(); resultsScreen.gameObject.SetActive(false); respawnDelay = DelayManager.CreateDelay(respawnTimeMS); Debug.Assert(respawnDelay != null); }