Beispiel #1
0
        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));
Beispiel #2
0
    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);
        }
    }
Beispiel #3
0
        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);
        }
Beispiel #4
0
    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;
                }
            }
        }
    }
Beispiel #5
0
 /// <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();
    }
Beispiel #7
0
        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));
            });
        }
Beispiel #8
0
        /// <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());
        }
Beispiel #9
0
 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();
        }
    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();
    }
Beispiel #17
0
    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);
    }