Фикс открытия ролей, повышение пенсионного возраста... Ой, требований возраста для командования.
This commit is contained in:
parent
d74a6abb31
commit
afe7f25a2b
26 changed files with 84 additions and 43 deletions
|
|
@ -13,7 +13,6 @@ using Robust.Shared.Network;
|
|||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Sunrise.Interfaces.Shared; // Sunrise-Sponsors
|
||||
|
||||
namespace Content.Client.Players.PlayTimeTracking;
|
||||
|
|
@ -115,11 +114,6 @@ public sealed class JobRequirementsManager : ISharedPlaytimeManager
|
|||
if (player == null)
|
||||
return true;
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
if (_sponsorsMgr != null && _sponsorsMgr.GetClientPrototypes().Contains(job.ID))
|
||||
return true;
|
||||
// Sunrise-Sponsors-End
|
||||
|
||||
// Sunrise-Start
|
||||
if (profile != null)
|
||||
{
|
||||
|
|
@ -137,10 +131,10 @@ public sealed class JobRequirementsManager : ISharedPlaytimeManager
|
|||
public bool CheckRoleRequirements(JobPrototype job, HumanoidCharacterProfile? profile, [NotNullWhen(false)] out FormattedMessage? reason)
|
||||
{
|
||||
var reqs = _entManager.System<SharedRoleSystem>().GetJobRequirement(job);
|
||||
return CheckRoleRequirements(reqs, profile, out reason);
|
||||
return CheckRoleRequirements(reqs, job.ID, profile, out reason); // Sunrise-Edit
|
||||
}
|
||||
|
||||
public bool CheckRoleRequirements(HashSet<JobRequirement>? requirements, HumanoidCharacterProfile? profile, [NotNullWhen(false)] out FormattedMessage? reason)
|
||||
public bool CheckRoleRequirements(HashSet<JobRequirement>? requirements, string protoId, HumanoidCharacterProfile? profile, [NotNullWhen(false)] out FormattedMessage? reason) // Sunrise-Edit
|
||||
{
|
||||
reason = null;
|
||||
|
||||
|
|
@ -150,7 +144,7 @@ public sealed class JobRequirementsManager : ISharedPlaytimeManager
|
|||
var reasons = new List<string>();
|
||||
foreach (var requirement in requirements)
|
||||
{
|
||||
if (requirement.Check(_entManager, _prototypes, profile, _roles, out var jobReason))
|
||||
if (requirement.Check(_entManager, _prototypes, _sponsorsMgr, protoId, profile, _roles, out var jobReason)) // Sunrise-Edit
|
||||
continue;
|
||||
|
||||
reasons.Add(jobReason.ToMarkup());
|
||||
|
|
|
|||
|
|
@ -98,16 +98,11 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
|
|||
bool hasAccess = true;
|
||||
FormattedMessage? reason;
|
||||
|
||||
if (!requirementsManager.CheckRoleRequirements(group.Key.Requirements, null, out reason))
|
||||
if (!requirementsManager.CheckRoleRequirements(group.Key.Requirements, group.Key.PrototypeId, null, out reason)) // Sunrise-Edit
|
||||
{
|
||||
hasAccess = false;
|
||||
}
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
if (_sponsorsManager != null && _sponsorsManager.GetClientPrototypes().Contains(group.Key.PrototypeId))
|
||||
hasAccess = true;
|
||||
// Sunrise-Sponsors-End
|
||||
|
||||
_window.AddEntry(name, description, hasAccess, reason, group, spriteSystem);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -213,15 +213,7 @@ public sealed class PlayTimeTrackingSystem : EntitySystem
|
|||
playTimes = new Dictionary<string, TimeSpan>();
|
||||
}
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
if (_sponsorsManager != null && _sponsorsManager.TryGetPrototypes(player.UserId, out var prototypes))
|
||||
{
|
||||
if (prototypes.Contains(role))
|
||||
return true;
|
||||
}
|
||||
// Sunrise-Sponsors-End
|
||||
|
||||
return JobRequirements.TryRequirementsMet(job, playTimes, out _, EntityManager, _prototypes, (HumanoidCharacterProfile?) _preferencesManager.GetPreferences(player.UserId).SelectedCharacter);
|
||||
return JobRequirements.TryRequirementsMet(job, playTimes, out _, EntityManager, _prototypes, (HumanoidCharacterProfile?) _preferencesManager.GetPreferences(player.UserId).SelectedCharacter, _sponsorsManager);
|
||||
}
|
||||
|
||||
public HashSet<ProtoId<JobPrototype>> GetDisallowedJobs(ICommonSession player)
|
||||
|
|
@ -238,7 +230,7 @@ public sealed class PlayTimeTrackingSystem : EntitySystem
|
|||
|
||||
foreach (var job in _prototypes.EnumeratePrototypes<JobPrototype>())
|
||||
{
|
||||
if (JobRequirements.TryRequirementsMet(job, playTimes, out _, EntityManager, _prototypes, (HumanoidCharacterProfile?) _preferencesManager.GetPreferences(player.UserId).SelectedCharacter))
|
||||
if (JobRequirements.TryRequirementsMet(job, playTimes, out _, EntityManager, _prototypes, (HumanoidCharacterProfile?) _preferencesManager.GetPreferences(player.UserId).SelectedCharacter, _sponsorsManager)) // Sunrise-Edit
|
||||
roles.Add(job.ID);
|
||||
}
|
||||
|
||||
|
|
@ -262,19 +254,11 @@ public sealed class PlayTimeTrackingSystem : EntitySystem
|
|||
{
|
||||
|
||||
if (_prototypes.TryIndex(jobs[i], out var job)
|
||||
&& JobRequirements.TryRequirementsMet(job, playTimes, out _, EntityManager, _prototypes, (HumanoidCharacterProfile?) _preferencesManager.GetPreferences(userId).SelectedCharacter))
|
||||
&& JobRequirements.TryRequirementsMet(job, playTimes, out _, EntityManager, _prototypes, (HumanoidCharacterProfile?) _preferencesManager.GetPreferences(userId).SelectedCharacter, _sponsorsManager)) // Sunrise-Edit
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
if (_sponsorsManager != null && _sponsorsManager.TryGetPrototypes(player.UserId, out var prototypes))
|
||||
{
|
||||
if (prototypes.Contains(jobs[i]))
|
||||
continue;
|
||||
}
|
||||
// Sunrise-Sponsors-End
|
||||
|
||||
jobs.RemoveSwap(i);
|
||||
i--;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Players.PlayTimeTracking;
|
||||
using Content.Shared.Roles;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -27,6 +28,8 @@ public sealed partial class JobRequirementLoadoutEffect : LoadoutEffect
|
|||
var playtimes = manager.GetPlayTimes(session);
|
||||
return Requirement.Check(collection.Resolve<IEntityManager>(),
|
||||
collection.Resolve<IPrototypeManager>(),
|
||||
null,
|
||||
null,
|
||||
profile,
|
||||
playtimes,
|
||||
out reason);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
|
@ -19,6 +20,8 @@ public sealed partial class AgeRequirement : JobRequirement
|
|||
|
||||
public override bool Check(IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
ISharedSponsorsManager? sponsorsManager, // Sunrise-Edit
|
||||
string? protoId, // Sunrise-Edit
|
||||
HumanoidCharacterProfile? profile,
|
||||
IReadOnlyDictionary<string, TimeSpan> playTimes,
|
||||
[NotNullWhen(false)] out FormattedMessage? reason)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
|
@ -25,11 +26,19 @@ public sealed partial class DepartmentTimeRequirement : JobRequirement
|
|||
|
||||
public override bool Check(IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
ISharedSponsorsManager? sponsorsManager, // Sunrise-Edit
|
||||
string? protoId, // Sunrise-Edit
|
||||
HumanoidCharacterProfile? profile,
|
||||
IReadOnlyDictionary<string, TimeSpan> playTimes,
|
||||
[NotNullWhen(false)] out FormattedMessage? reason)
|
||||
{
|
||||
reason = new FormattedMessage();
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
if (sponsorsManager != null && protoId != null && sponsorsManager.GetClientPrototypes().Contains(protoId))
|
||||
return true;
|
||||
// Sunrise-Sponsors-End
|
||||
|
||||
var playtime = TimeSpan.Zero;
|
||||
|
||||
// Check all jobs' departments
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Players.PlayTimeTracking;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
|
@ -18,12 +19,19 @@ public sealed partial class OverallPlaytimeRequirement : JobRequirement
|
|||
|
||||
public override bool Check(IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
ISharedSponsorsManager? sponsorsManager, // Sunrise-Edit
|
||||
string? protoId, // Sunrise-Edit
|
||||
HumanoidCharacterProfile? profile,
|
||||
IReadOnlyDictionary<string, TimeSpan> playTimes,
|
||||
[NotNullWhen(false)] out FormattedMessage? reason)
|
||||
{
|
||||
reason = new FormattedMessage();
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
if (sponsorsManager != null && protoId != null && sponsorsManager.GetClientPrototypes().Contains(protoId))
|
||||
return true;
|
||||
// Sunrise-Sponsors-End
|
||||
|
||||
var overallTime = playTimes.GetValueOrDefault(PlayTimeTrackingShared.TrackerOverall);
|
||||
var overallDiff = Time.TotalMinutes - overallTime.TotalMinutes;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis;
|
|||
using Content.Shared.Players.PlayTimeTracking;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Shared.Roles.Jobs;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
|
@ -25,12 +26,19 @@ public sealed partial class RoleTimeRequirement : JobRequirement
|
|||
|
||||
public override bool Check(IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
ISharedSponsorsManager? sponsorsManager, // Sunrise-Edit
|
||||
string? protoId, // Sunrise-Edit
|
||||
HumanoidCharacterProfile? profile,
|
||||
IReadOnlyDictionary<string, TimeSpan> playTimes,
|
||||
[NotNullWhen(false)] out FormattedMessage? reason)
|
||||
{
|
||||
reason = new FormattedMessage();
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
if (sponsorsManager != null && protoId != null && sponsorsManager.GetClientPrototypes().Contains(protoId))
|
||||
return true;
|
||||
// Sunrise-Sponsors-End
|
||||
|
||||
string proto = Role;
|
||||
|
||||
playTimes.TryGetValue(proto, out var roleTime);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis;
|
|||
using System.Text;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
|
@ -21,6 +22,8 @@ public sealed partial class SpeciesRequirement : JobRequirement
|
|||
|
||||
public override bool Check(IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
ISharedSponsorsManager? sponsorsManager, // Sunrise-Edit
|
||||
string? protoId, // Sunrise-Edit
|
||||
HumanoidCharacterProfile? profile,
|
||||
IReadOnlyDictionary<string, TimeSpan> playTimes,
|
||||
[NotNullWhen(false)] out FormattedMessage? reason)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -14,7 +15,8 @@ public static class JobRequirements
|
|||
[NotNullWhen(false)] out FormattedMessage? reason,
|
||||
IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
HumanoidCharacterProfile? profile)
|
||||
HumanoidCharacterProfile? profile,
|
||||
ISharedSponsorsManager? sponsorsManager) // Sunrise-Edit
|
||||
{
|
||||
var sys = entManager.System<SharedRoleSystem>();
|
||||
var requirements = sys.GetJobRequirement(job);
|
||||
|
|
@ -24,7 +26,7 @@ public static class JobRequirements
|
|||
|
||||
foreach (var requirement in requirements)
|
||||
{
|
||||
if (!requirement.Check(entManager, protoManager, profile, playTimes, out reason))
|
||||
if (!requirement.Check(entManager, protoManager, sponsorsManager, job.ID, profile, playTimes, out reason)) // Sunrise-Edit
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -45,6 +47,8 @@ public abstract partial class JobRequirement
|
|||
public abstract bool Check(
|
||||
IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
ISharedSponsorsManager? sponsorsManager, // Sunrise-Edit
|
||||
string? protoId, // Sunrise-Edit
|
||||
HumanoidCharacterProfile? profile,
|
||||
IReadOnlyDictionary<string, TimeSpan> playTimes,
|
||||
[NotNullWhen(false)] out FormattedMessage? reason);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Shared.Roles;
|
||||
using Content.Sunrise.Interfaces.Shared;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
|
@ -15,6 +16,8 @@ public sealed partial class DiscordRoleRequirement : JobRequirement
|
|||
{
|
||||
public override bool Check(IEntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
ISharedSponsorsManager? sponsorsManager, // Sunrise-Edit
|
||||
string? protoId, // Sunrise-Edit
|
||||
HumanoidCharacterProfile? profile,
|
||||
IReadOnlyDictionary<string, TimeSpan> playTimes,
|
||||
[NotNullWhen(false)] out FormattedMessage? reason)
|
||||
|
|
|
|||
|
|
@ -2508,3 +2508,16 @@
|
|||
id: 183
|
||||
time: '2024-08-14T19:29:19.0000000+00:00'
|
||||
url: https://github.com/space-sunrise/space-station-14/pull/284
|
||||
- author: VigersRay
|
||||
changes:
|
||||
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0432\u043E\
|
||||
\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C \u043E\u0431\u0445\u043E\
|
||||
\u0434\u0438\u0442\u044C \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\
|
||||
\u0438\u044F \u0440\u0430\u0441 \u0438 \u0432\u043E\u0437\u0440\u0430\u0441\u0442\
|
||||
\u0430 \u0434\u043B\u044F \u0434\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u0435\
|
||||
\u0439 \u0438\u043C\u0435\u044F \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0435\
|
||||
\ \u0440\u043E\u043B\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u0434\u0438\
|
||||
\u0441\u043A\u043E\u0440\u0434."
|
||||
type: Fix
|
||||
id: 184
|
||||
time: '2024-08-14T21:26:14.019969+00:00'
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
- !type:OverallPlaytimeRequirement
|
||||
time: 144000 #40 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 21
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
weight: 10
|
||||
startingGear: QuartermasterGear
|
||||
icon: "JobIconQuarterMaster"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
department: Command
|
||||
time: 54000 # 15 hours
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 21
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
weight: 20
|
||||
startingGear: CaptainGear
|
||||
icon: "JobIconCaptain"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
department: Command
|
||||
time: 36000 # 10 hours
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 21
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
weight: 20
|
||||
startingGear: HoPGear
|
||||
icon: "JobIconHeadOfPersonnel"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
- !type:OverallPlaytimeRequirement
|
||||
time: 144000 #40 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 21
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
weight: 10
|
||||
startingGear: ChiefEngineerGear
|
||||
icon: "JobIconChiefEngineer"
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
- !type:OverallPlaytimeRequirement
|
||||
time: 144000 #40 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 21
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
weight: 10
|
||||
startingGear: CMOGear
|
||||
icon: "JobIconChiefMedicalOfficer"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
- !type:OverallPlaytimeRequirement
|
||||
time: 144000 #40 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 21
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
weight: 10
|
||||
startingGear: ResearchDirectorGear
|
||||
icon: "JobIconResearchDirector"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
- !type:OverallPlaytimeRequirement
|
||||
time: 144000 #40 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 21
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
weight: 10
|
||||
startingGear: HoSGear
|
||||
icon: "JobIconHeadOfSecurity"
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
- !type:DepartmentTimeRequirement
|
||||
department: Command
|
||||
time: 62000 # 20 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 30 # Sunrise-Edit
|
||||
startingGear: BlueShieldGear
|
||||
icon: JobIconBlueShield
|
||||
supervisors: job-supervisors-centcom
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
playTimeTracker: JobCentCommOfficial
|
||||
requirements:
|
||||
- !type:DiscordRoleRequirement
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 40 # Sunrise-Edit
|
||||
weight: 30
|
||||
setPreference: false
|
||||
startingGear: CentCommOfficialGear
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
playTimeTracker: JobCentCommOperator
|
||||
requirements:
|
||||
- !type:DiscordRoleRequirement
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 40 # Sunrise-Edit
|
||||
weight: 30
|
||||
setPreference: true
|
||||
startingGear: CentCommOperatorGear
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
- !type:DepartmentTimeRequirement
|
||||
department: Command
|
||||
time: 62000 # 20 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 40 # Sunrise-Edit
|
||||
startingGear: NanoTrasenRepresentativeGear
|
||||
icon: JobIconNanotrasen
|
||||
supervisors: job-supervisors-centcom
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
- !type:DepartmentTimeRequirement
|
||||
department: Command
|
||||
time: 108000 #30 hrs
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 40 # Sunrise-Edit
|
||||
startingGear: MagistratGear
|
||||
icon: "JobIconMagistrat"
|
||||
supervisors: job-supervisors-service
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
- !type:DepartmentTimeRequirement
|
||||
department: Security
|
||||
time: 18000 # 5h Sunrise-RoleTime
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 35 # Sunrise-Edit
|
||||
startingGear: IAAGear
|
||||
icon: "JobIconIAA"
|
||||
supervisors: job-supervisors-magistrate
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
- !type:DepartmentTimeRequirement
|
||||
department: Security
|
||||
time: 108000 #30 hrs # Sunrise-RoleTime
|
||||
- !type:AgeRequirement
|
||||
requiredAge: 40 # Sunrise-Edit
|
||||
weight: 10
|
||||
startingGear: HeadOfPrisonGear
|
||||
icon: "JobIconHeadOfPrison"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue