示例#1
0
        public static void UpdatePlayerKarma(Player player, PostFlairsParsed newFlairs, PostFlairsParsed oldFlairs, bool allowNegative)
        {
            sbyte?newKarmaBalance = newFlairs is null ? null : PostFlairsUtils.CountBalance(newFlairs);
            sbyte?oldKarmaBalance = oldFlairs is null ? null : PostFlairsUtils.CountBalance(oldFlairs);

            // Revert Old Karma change
            if (oldKarmaBalance is not null and not 0)
            {
                if (oldKarmaBalance > 0)
                {
                    player.SiteKarma--;
                }
                else
                {
                    player.SiteKarma++;
                }
            }

            // Apply new Karma
            if (newKarmaBalance is not null and not 0)
            {
                if (newKarmaBalance > 0)
                {
                    player.SiteKarma++;
                }
                else if (newKarmaBalance < 0 && allowNegative)
                {
                    player.SiteKarma--;
                }
            }
        }
示例#2
0
 public static void UpdatePlayerRatings(Player player, PostFlairsParsed postFlairs, PostFlairsParsed oldFlairs)
 {
     player.PerformanceRating = UpdateRating(player.PerformanceRating, postFlairs?.Performance, oldFlairs?.Performance);
     player.TeamplayRating    = UpdateRating(player.TeamplayRating, postFlairs?.Teamplay, oldFlairs?.Teamplay);
     player.CourtesyRating    = UpdateRating(player.CourtesyRating, postFlairs?.Courtesy, oldFlairs?.Courtesy);
 }