private bool IsRankDispersal(PlayerModel player)
{
if (player == null) return false;
if (player.Role != ROLE_PLAYER) return false;
PerModeSettings perMode = GetPerModeSettings();
if (perMode.DisperseEvenlyByRank == 0) return false;
if (SameClanTagsForRankDispersal && CountMatchingTags(player, Scope.SameTeam) >= 2) {
if (player.Rank >= perMode.DisperseEvenlyByRank) DebugWrite("^9Exempting player from rank dispersal, due to SameClanTagsForRankDispersal: ^b" + "^b" + player.FullName + "^n", 6);
return false;
}
if (OnWhitelist && CheckWhitelist(player, WL_RANK)) return false; // special case for whitelist options
return (player.Rank >= perMode.DisperseEvenlyByRank);
}