Roundstart antag role restrictions revival (#20108)
Co-authored-by: Ray <vigersray@gmail.com> Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
@@ -97,21 +97,29 @@ public sealed class JobRequirementsManager
|
||||
}
|
||||
|
||||
var player = _playerManager.LocalPlayer?.Session;
|
||||
|
||||
if (player == null)
|
||||
return true;
|
||||
|
||||
var reasonBuilder = new StringBuilder();
|
||||
return CheckRoleTime(job.Requirements, out reason);
|
||||
}
|
||||
|
||||
foreach (var requirement in job.Requirements)
|
||||
public bool CheckRoleTime(HashSet<JobRequirement>? requirements, [NotNullWhen(false)] out FormattedMessage? reason)
|
||||
{
|
||||
reason = null;
|
||||
|
||||
if (requirements == null)
|
||||
return true;
|
||||
|
||||
var reasons = new List<string>();
|
||||
foreach (var requirement in requirements)
|
||||
{
|
||||
if (JobRequirements.TryRequirementMet(requirement, _roles, out var jobReason, _entManager, _prototypes))
|
||||
continue;
|
||||
|
||||
reasonBuilder.AppendLine(jobReason.ToMarkup());
|
||||
reasons.Add(jobReason.ToMarkup());
|
||||
}
|
||||
|
||||
reason = reasonBuilder.Length == 0 ? null : FormattedMessage.FromMarkup(reasonBuilder.ToString().Trim());
|
||||
reason = reasons.Count == 0 ? null : FormattedMessage.FromMarkup(string.Join('\n', reasons));
|
||||
return reason == null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user