/// <inheritdoc />
        /// <summary>
        /// </summary>
        /// <param name="screen"></param>
        public GameplayScreenView(Screen screen) : base(screen)
        {
            Screen          = (GameplayScreen)screen;
            RatingProcessor = new RatingProcessorKeys(MapManager.Selected.Value.DifficultyFromMods(Screen.Ruleset.ScoreProcessor.Mods));

            CreateBackground();

            if (OnlineManager.CurrentGame != null && OnlineManager.CurrentGame.Ruleset == MultiplayerGameRuleset.Battle_Royale &&
                ConfigManager.EnableBattleRoyaleBackgroundFlashing.Value)
            {
                BattleRoyaleBackgroundAlerter = new BattleRoyaleBackgroundAlerter(this);
            }

            if (!Screen.IsPlayTesting && !Screen.IsCalibratingOffset)
            {
                CreateScoreboards();
            }

            CreateProgressBar();
            CreateScoreDisplay();
            CreateRatingDisplay();
            CreateAccuracyDisplay();

            if (ConfigManager.DisplayComboAlerts.Value)
            {
                ComboAlert = new ComboAlert(Screen.Ruleset.ScoreProcessor)
                {
                    Parent = Container
                }
            }
            ;

            // Create judgement status display
            if (ConfigManager.DisplayJudgementCounter.Value)
            {
                if (OnlineManager.CurrentGame == null || OnlineManager.CurrentGame.Ruleset != MultiplayerGameRuleset.Team)
                {
                    JudgementCounter = new JudgementCounter(Screen)
                    {
                        Parent = Container
                    }
                }
                ;
            }

            CreateKeysPerSecondDisplay();
            CreateGradeDisplay();

            SkipDisplay = new SkipDisplay(Screen, SkinManager.Skin.Skip)
            {
                Parent = Container
            };

            if (Screen.IsMultiplayerGame)
            {
                MultiplayerEndTime = new MultiplayerEndGameWaitTime
                {
                    Parent    = Container,
                    Alignment = Alignment.MidCenter
                };
            }

            // Create screen transitioner to perform any animations.
            Transitioner = new Sprite()
            {
                Parent     = Container,
                Size       = new ScalableVector2(WindowManager.Width, WindowManager.Height),
                Tint       = Color.Black,
                Alpha      = 1,
                Animations =
                {
                    // Fade in from black.
                    new Animation(AnimationProperty.Alpha, Easing.Linear, 1, 0, 1500)
                }
            };

            // Create pause screen last.
            PauseScreen = new PauseScreen(Screen)
            {
                Parent = Container
            };

            // Notify the user if their local offset is actually set for this map.
            if (MapManager.Selected.Value.LocalOffset != 0)
            {
                NotificationManager.Show(NotificationLevel.Info, $"The local audio offset for this map is: {MapManager.Selected.Value.LocalOffset}ms");
            }

            if (Screen.IsCalibratingOffset)
            {
                Tip = new OffsetCalibratorTip
                {
                    Parent    = Container,
                    Alignment = Alignment.MidCenter
                };
            }

            if (OnlineManager.Client != null)
            {
                OnlineManager.Client.OnGameEnded += OnGameEnded;
            }
        }
Exemple #2
0
        /// <inheritdoc />
        /// <summary>
        /// </summary>
        /// <param name="screen"></param>
        public GameplayScreenView(Screen screen) : base(screen)
        {
            Screen = (GameplayScreen)screen;

            CreateBackground();
            CreateProgressBar();
            CreateScoreDisplay();
            CreateAccuracyDisplay();

            if (ConfigManager.DisplayComboAlerts.Value)
            {
                ComboAlert = new ComboAlert(Screen.Ruleset.ScoreProcessor)
                {
                    Parent = Container
                }
            }
            ;

            // Create judgement status display
            if (ConfigManager.DisplayJudgementCounter.Value)
            {
                JudgementCounter = new JudgementCounter(Screen)
                {
                    Parent = Container
                }
            }
            ;

            CreateKeysPerSecondDisplay();
            CreateGradeDisplay();

            if (!Screen.IsPlayTesting && !Screen.IsCalibratingOffset)
            {
                CreateScoreboard();
            }

            SkipDisplay = new SkipDisplay(Screen, SkinManager.Skin.Skip)
            {
                Parent = Container
            };

            // Create screen transitioner to perform any animations.
            Transitioner = new Sprite()
            {
                Parent     = Container,
                Size       = new ScalableVector2(WindowManager.Width, WindowManager.Height),
                Tint       = Color.Black,
                Alpha      = 1,
                Animations =
                {
                    // Fade in from black.
                    new Animation(AnimationProperty.Alpha, Easing.Linear, 1, 0, 1500)
                }
            };

            // Create pause screen last.
            PauseScreen = new PauseScreen(Screen)
            {
                Parent = Container
            };

            // Notify the user if their local offset is actually set for this map.
            if (MapManager.Selected.Value.LocalOffset != 0)
            {
                NotificationManager.Show(NotificationLevel.Info, $"The local audio offset for this map is: {MapManager.Selected.Value.LocalOffset}ms");
            }

            if (Screen.IsCalibratingOffset)
            {
                Tip = new OffsetCalibratorTip
                {
                    Parent    = Container,
                    Alignment = Alignment.MidCenter
                };
            }
        }