コード例 #1
0
        double GetMultiplier(BasePlayer attacker, BaseCombatEntity victim, string weapon)
        {
            double multiplier = 1;

            if (options.DistanceMultiplier_Enabled)
            {
                multiplier *= multipliers.GetDistanceM(victim.Distance2D(attacker));
            }

            if (options.WeaponMultiplier_Enabled)
            {
                multiplier *= multipliers.GetWeaponM(weapon);
            }

            if (HappyHourActive)
            {
                multiplier *= multipliers.HappyHourMultiplier;
            }

            if (options.Permission_Multiplier_Enabled)
            {
                var permissions = multipliers.Permissions.Where(x => permission.UserHasPermission(attacker.UserIDString, x.Key)).ToArray();
                multiplier *= (permissions.Any()
                        ? permissions.OrderByDescending(x => x.Value).First().Value
                        : 1);
            }

            return(multiplier);
        }