Beispiel #1
0
        public bool IsRank(string levelID, BeatmapDifficulty beatmapDifficulty, BeatDataCharacteristics beatDataCharacteristics)
        {
            var prevMap = SongCore.Loader.GetLevelById(levelID);

            if (prevMap == null)
            {
                return(false);
            }
            if (prevMap is CustomPreviewBeatmapLevel custom)
            {
                return(this.IsRank(custom, beatmapDifficulty, beatDataCharacteristics));
            }
            else
            {
                return(false);
            }
        }
Beispiel #2
0
 public BeatSongDataDifficultyStats GetBeatStarSongDiffculityStats(BeatSongData song, BeatmapDifficulty difficulty, BeatDataCharacteristics beatDataCharacteristics)
 {
     if (!song.Characteristics.TryGetValue(beatDataCharacteristics, out var dic))
     {
         return(null);
     }
     if (!dic.TryGetValue(BeatMapCoreConverter.ConvertToBeatMapDifficulity(difficulty), out var result))
     {
         return(null);
     }
     return(result);
 }
Beispiel #3
0
        public bool IsRank(CustomPreviewBeatmapLevel beatmapLevel, BeatmapDifficulty beatmapDifficulty, BeatDataCharacteristics beatDataCharacteristics)
        {
            var song = this.GetBeatStarSong(beatmapLevel);

            return(this.GetBeatStarSongDiffculityStats(song, beatmapDifficulty, beatDataCharacteristics).Ranked);
        }
Beispiel #4
0
        public double GetPP(CustomPreviewBeatmapLevel beatmapLevel, BeatmapDifficulty difficulty, BeatDataCharacteristics beatDataCharacteristics)
        {
            if (beatDataCharacteristics == BeatDataCharacteristics.Standard && this._downloader.Init && this._downloader.RowPPs.TryGetValue(beatmapLevel.GetHashOrLevelID().ToUpper(), out var pp))
            {
                // PP counterと同じ処理
                switch (difficulty)
                {
                case BeatmapDifficulty.Easy:
                    return(pp.EasySoloStandard);

                case BeatmapDifficulty.Normal:
                    return(pp.NormalSoloStandard);

                case BeatmapDifficulty.Hard:
                    return(pp.HardSoloStandard);

                case BeatmapDifficulty.Expert:
                    return(pp.ExpertSoloStandard);

                case BeatmapDifficulty.ExpertPlus:
                    return(pp.ExpertPlusSoloStandard);

                default:
                    break;
                }
            }
            var song = this.GetBeatStarSongDiffculityStats(beatmapLevel, difficulty, beatDataCharacteristics);

            if (song != null)
            {
                return(song.PP);
            }
            return(0);
        }
Beispiel #5
0
        public BeatSongDataDifficultyStats GetBeatStarSongDiffculityStats(CustomPreviewBeatmapLevel beatmapLevel, BeatmapDifficulty difficulty, BeatDataCharacteristics beatDataCharacteristics)
        {
            var song = this.GetBeatStarSong(beatmapLevel);

            if (song == null)
            {
                return(null);
            }
            return(this.GetBeatStarSongDiffculityStats(song, difficulty, beatDataCharacteristics));
        }
        private void SetCustomLabel(CustomPreviewBeatmapLevel beatmap, BeatmapDifficulty diff, BeatDataCharacteristics beatDataCharacteristics)
        {
            if (beatmap == null)
            {
                return;
            }
            var songData         = Collections.RetrieveExtraSongData(SongCore.Utilities.Hashing.GetCustomLevelHash(beatmap));
            var diffData         = songData._difficulties?.FirstOrDefault(x => x._beatmapCharacteristicName == beatDataCharacteristics.GetDescription() && x._difficulty == diff);
            var currentDiffLabel = diffData?._difficultyLabel;

            if (string.IsNullOrEmpty(currentDiffLabel))
            {
                return;
            }
            if (this._statusManager.StatusJSON["beatmap"] == null)
            {
                this._statusManager.StatusJSON["beatmap"] = new JSONObject();
            }
            var beatmapJson = this._statusManager.StatusJSON["beatmap"].AsObject;

            beatmapJson["customLabel"] = currentDiffLabel;
        }