Exemplo n.º 1
0
        /// <summary>
        /// Check if User has Obtained an achievement on this Score Submission
        /// </summary>
        /// <param name="factory">Context Factory</param>
        /// <param name="user">Who tries to Obtain</param>
        /// <param name="score">Submitted Score</param>
        /// <param name="map">Beatmap</param>
        /// <param name="set">Beatmap Set</param>
        /// <param name="oldLb">Old LeaderBoard</param>
        /// <param name="newLb">New LeaderBoard</param>
        /// <returns>Obtained Achievements</returns>
        public static string ProcessAchievements(SoraDbContext ctx,
                                                 DbUser user,
                                                 DbScore score,
                                                 Beatmap map,
                                                 BeatmapSet set,
                                                 DbLeaderboard oldLb,
                                                 DbLeaderboard newLb
                                                 )
        {
            var l = new List <Achievement>();

            /*
             * if ((int) newLB.PerformancePointsOsu == 4914)
             * {
             *  var ach = DBAchievement.GetAchievement(factory, "oog");
             *  if (!user.AlreadyOptainedAchievement(ach))
             *      _l.Add(ach);
             * }
             */

            // Insert custom achievements here. I'll implement a Plugin System later! but this will work for now.


            // END OF CUSTOM ACHIEVEMENTS

            var retVal = l.Aggregate("", (current, ach) => current + ach.ToOsuString() + "/");

            retVal.TrimEnd('/');

            return(retVal);
        }
Exemplo n.º 2
0
 public static DbBeatmap FromBeatmap(Beatmap beatmap, BeatmapSet parent) => new DbBeatmap
 {
     Id           = beatmap.BeatmapID,
     SetId        = parent.SetID,
     RankedStatus = parent.RankedStatus,
     FileMd5      = beatmap.FileMD5,
     PlayMode     = beatmap.Mode,
     Artist       = parent.Artist,
     Title        = parent.Title,
     DiffName     = beatmap.DiffName,
     FileName     = $"{parent.Artist} - {parent.Title} ({parent.Creator}) [{beatmap.DiffName}].osu",
     Flags        = DbBeatmapFlags.None,
 };