-using Content.Server.StationEvents.Events;
+using Content.Server.StationEvents.Events;
+using Content.Shared.Roles;
+using Robust.Shared.Prototypes;
namespace Content.Server.StationEvents.Components;
[RegisterComponent, Access(typeof(BureaucraticErrorRule))]
public sealed partial class BureaucraticErrorRuleComponent : Component
{
-
+ /// <summary>
+ /// The jobs that are ignored by this rule and won't have their slots changed.
+ /// </summary>
+ [DataField]
+ public List<ProtoId<JobPrototype>> IgnoredJobs = new();
}
using System.Linq;
-using Content.Server.GameTicking.Rules.Components;
using Content.Server.Station.Components;
using Content.Server.Station.Systems;
using Content.Server.StationEvents.Components;
using Content.Shared.GameTicking.Components;
+using Content.Shared.Roles;
using JetBrains.Annotations;
using Robust.Shared.Random;
var jobList = _stationJobs.GetJobs(chosenStation.Value).Keys.ToList();
+ foreach(var job in component.IgnoredJobs)
+ jobList.Remove(job);
+
if (jobList.Count == 0)
return;