示例#1
0
        /// <summary>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <exception cref="NotImplementedException"></exception>
        private void OnGameJudgements(object sender, GameJudgementsEventArgs e)
        {
            ScoreboardUser user = null;

            foreach (var u in Users)
            {
                if (u.LocalScore == null)
                {
                    continue;
                }

                if (u.LocalScore.PlayerId == e.UserId)
                {
                    user = u;
                    break;
                }
            }

            if (user == null)
            {
                return;
            }

            foreach (var t in e.Judgements)
            {
                user.Judgements.Add(t);
                user.CalculateScoreForNextObject(t == e.Judgements.Last());
            }

            SetTargetYPositions();
        }
示例#2
0
        /// <summary>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <exception cref="NotImplementedException"></exception>
        private void OnPlayerBattleRoyaleEliminated(object sender, PlayerBattleRoyaleEliminatedEventArgs e)
        {
            ScoreboardUser user = null;

            foreach (var u in Users)
            {
                if (u.Type == ScoreboardUserType.Self && e.UserId == OnlineManager.Self.OnlineUser.Id)
                {
                    user = u;
                    SkinManager.Skin.SoundFailure.CreateChannel().Play();
                    break;
                }

                if (u.LocalScore != null && u.LocalScore.PlayerId == e.UserId)
                {
                    user = u;
                    break;
                }
            }

            if (user == null)
            {
                return;
            }

            user.Processor.MultiplayerProcessor.IsBattleRoyaleEliminated = true;
            BattleRoyalePlayersLeft.Value--;

            user.Rank = e.Rank;
            user.SetTintBasedOnHealth();
            SetTargetYPositions();

            var game = (QuaverGame)GameBase.Game;

            if (game.CurrentScreen is GameplayScreen screen)
            {
                screen.SetRichPresence();
            }
        }