diff --git a/Content.Server/StationRecords/Systems/StationRecordsSystem.cs b/Content.Server/StationRecords/Systems/StationRecordsSystem.cs index b3499fe29938..aa69384b098d 100644 --- a/Content.Server/StationRecords/Systems/StationRecordsSystem.cs +++ b/Content.Server/StationRecords/Systems/StationRecordsSystem.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using Content.Server._Starlight.Roles.Ranks; using Content.Server.Access.Systems; using Content.Server.Forensics; using Content.Shared.Access.Components; @@ -41,6 +42,7 @@ public sealed partial class StationRecordsSystem : SharedStationRecordsSystem [Dependency] private IPrototypeManager _prototypeManager = default!; [Dependency] private IdCardSystem _idCard = default!; [Dependency] private IRobustRandom _random = default!; + [Dependency] private RankSystem _rank = default!; public override void Initialize() { @@ -55,6 +57,13 @@ private void OnPlayerSpawn(PlayerSpawnCompleteEvent args) if (!TryComp(args.Station, out var stationRecords)) return; + #region Starlight + // This is kind of janky, but basically to make ranks show up properly in the manifest, I have to run CreateGeneralRecord + // somewhere else, which creates a duplicate manifest entry. This prevents that. + if (_rank.TryGetHighestEligibleRank(args.Player.UserId, null, args.JobId, out _)) + return; + #endregion + CreateGeneralRecord(args.Station, args.Mob, args.Profile, args.JobId, stationRecords); } diff --git a/Content.Server/_Starlight/Roles/Ranks/RankSystem.cs b/Content.Server/_Starlight/Roles/Ranks/RankSystem.cs new file mode 100644 index 000000000000..a6d8ea1299ec --- /dev/null +++ b/Content.Server/_Starlight/Roles/Ranks/RankSystem.cs @@ -0,0 +1,121 @@ +using Content.Server._NullLink.PlayerData; +using Content.Server.Access.Systems; +using Content.Server.StationRecords.Systems; +using Content.Shared._NullLink; +using Content.Shared._Starlight.Roles.Ranks; +using Content.Shared.Forensics.Components; +using Content.Shared.GameTicking; +using Content.Shared.Roles; +using Content.Shared.StationRecords; +using Robust.Shared.Prototypes; + +namespace Content.Server._Starlight.Roles.Ranks; + +public sealed partial class RankSystem : EntitySystem +{ + [Dependency] private readonly IdCardSystem _idCard = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly NullLinkPlayerManager _linkPlayerManager = default!; + [Dependency] private readonly StationRecordsSystem _record = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPlayerSpawn); + } + + private void OnPlayerSpawn(PlayerSpawnCompleteEvent ev) + { + if (!_idCard.TryFindIdCard(ev.Mob, out var idCard)) + return; + + if (ev.JobId == null) + return; + + if (!_prototype.TryIndex(ev.JobId, out JobPrototype? job)) + return; + + if (!TryGetHighestEligibleRank(ev.Player.UserId, job, null, out var highestRank)) + return; + + if (highestRank == null) + return; + + if (!_prototype.TryIndex(highestRank.Icon, out var jobIcon)) + return; + + var jobName = Loc.GetString(highestRank.Name); + + _idCard.TryChangeJobTitle(idCard, jobName, idCard.Comp, ev.Player.AttachedEntity); + _idCard.TryChangeJobIcon(idCard, jobIcon, idCard.Comp, ev.Player.AttachedEntity); + + if (!TryComp(ev.Station, out var stationRecords)) + return; + + TryComp(ev.Player.AttachedEntity, out var fingerprintComponent); + TryComp(ev.Player.AttachedEntity, out var dnaComponent); + + _record.CreateGeneralRecord( + ev.Station, + idCard, + ev.Profile.Name, + ev.Profile.Age, + ev.Profile.CustomSpecieName, + ev.Profile.Gender, + ev.JobId, + fingerprintComponent?.Fingerprint, + dnaComponent?.DNA, + ev.Profile, + stationRecords); + + if (!TryComp(idCard.Owner, out var keyStorage) + || keyStorage.Key is not { } key + || !_record.TryGetRecord(key, out var record)) + return; + + record.JobTitle = jobName; + record.JobIcon = idCard.Comp.JobIcon; + + _record.Synchronize(key); + } + + public bool TryGetHighestEligibleRank(Guid userId, JobPrototype? job, string? jobId, out RankPrototype? highestRank) + { + highestRank = null; + + if (!_linkPlayerManager.TryGetPlayerData(userId, out PlayerData? playerData)) + return false; + + if (jobId != null && _prototype.TryIndex(jobId, out JobPrototype? jobPrototype)) + job = jobPrototype; + + if (job == null) + return false; + + if (job.Ranks == null) + return false; + + foreach (var rankId in job.Ranks) + { + if (!_prototype.TryIndex(rankId, out RankPrototype? rank)) + continue; + + if (!_prototype.TryIndex(rank.Requirement, out RoleRequirementPrototype? roleRequirement)) + continue; + + if (!playerData.Roles.Overlaps(roleRequirement.Roles)) + continue; + + highestRank ??= rank; + + if (highestRank.Priority < rank.Priority) + highestRank = rank; + } + + if (highestRank != null) + return true; + + return false; + } +} diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs index b1926db5c5d6..ac211864c603 100644 --- a/Content.Shared/Roles/JobPrototype.cs +++ b/Content.Shared/Roles/JobPrototype.cs @@ -1,4 +1,5 @@ -using Content.Shared.Access; +using Content.Shared._Starlight.Roles.Ranks; +using Content.Shared.Access; using Content.Shared.Guidebook; using Content.Shared.Players.PlayTimeTracking; using Content.Shared.StatusIcon; @@ -166,6 +167,9 @@ public sealed partial class JobPrototype : IPrototype /// [DataField] public List>? Guides; + + [DataField] + public List>? Ranks; // Starlight } /// diff --git a/Content.Shared/_Starlight/Roles/Ranks/RankPrototype.cs b/Content.Shared/_Starlight/Roles/Ranks/RankPrototype.cs new file mode 100644 index 000000000000..f017cace6c8d --- /dev/null +++ b/Content.Shared/_Starlight/Roles/Ranks/RankPrototype.cs @@ -0,0 +1,35 @@ +using Content.Shared._NullLink; +using Content.Shared.StatusIcon; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Starlight.Roles.Ranks; + +[Prototype] +public sealed partial class RankPrototype : IPrototype +{ + [IdDataField] + public string ID { get; private set; } = default!; + + [DataField(required: true)] + public string Name { get; private set; } = string.Empty; + + [DataField(required: true)] + public ProtoId Requirement { get; private set; } = default!; + + [DataField] + public Priority Priority = Priority.VeryLow; + + [DataField(required: true)] + public ProtoId Icon { get; private set; } = default!; +} + +public enum Priority +{ + Top, + VeryHigh, + High, + Medium, + Low, + VeryLow, + Bottom +} diff --git a/Resources/Locale/en-US/_NullLink/requirements.ftl b/Resources/Locale/en-US/_NullLink/requirements.ftl index 49c20aea1786..1ec00a89a245 100644 --- a/Resources/Locale/en-US/_NullLink/requirements.ftl +++ b/Resources/Locale/en-US/_NullLink/requirements.ftl @@ -24,5 +24,15 @@ roles-req-first-writing-roles = First Writing Contest Winner roles-req-senior-developer = Senior Developer roles-req-developer = Developer +roles-req-sec-prestige = Chief of Security +roles-req-med-prestige = Surgeon General +roles-req-cargo-prestige = Quartermaster General +roles-req-sci-prestige = Master Researcher +roles-req-engi-prestige = Master Engineer +roles-req-service-prestige = Chief Steward +roles-req-cap-prestige = Admiral +roles-req-ntr-prestige = Protocol Commissar +roles-req-law-prestige = Grand Magistrate + triesteport-main = TRIESTEPORT overall = overall diff --git a/Resources/Locale/en-US/_Starlight/job/prestige-ranks.ftl b/Resources/Locale/en-US/_Starlight/job/prestige-ranks.ftl new file mode 100644 index 000000000000..114488e4a8f4 --- /dev/null +++ b/Resources/Locale/en-US/_Starlight/job/prestige-ranks.ftl @@ -0,0 +1,27 @@ +job-name-masterbartender = Master Bartender +job-name-masterbotanist = Master Botanist +job-name-brigmedicalspecialist = Brigmedical Specialist +job-name-admiral = Admiral +job-name-cargospecialist = Cargo Specialist +job-name-messofficer = Mess Officer +job-name-chemicalspecialist = Chemical Specialist +job-name-masterengineer = Master Engineer +job-name-chiefsteward = Chief Steward +job-name-chiefofsecurity = Chief of Security +job-name-internalaffairsofficer = Internal Affairs Officer +job-name-masterjanitor = Master Janitor +job-name-medicalspecialist = Medical Specialist +job-name-protocolcommissar = Protocol Commissar +job-name-quartermastergeneral = Quartermaster General +job-name-chiefofresearch = Chief of Research +job-name-modelsalvagelead = Model Salvage Lead +job-name-modelsalvager = Model Salvager +job-name-masterscientist = Master Scientist +job-name-modelofficer = Model Officer +job-name-engineeringspecialist = Engineering Specialist +job-name-specialistsurgeon = Specialist Surgeon +job-name-modelwarden = Model Warden +job-name-atmosphericspecialist = Atmospheric Specialist +job-name-dutyspecialist = Duty Specialist +job-name-surgeongeneral = Surgeon General +job-name-grandmagistrate = Grand Magistrate diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index 09998a5a84d2..082c92c2cea0 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -19,6 +19,10 @@ - !type:GiveItemOnHolidaySpecial holiday: BoxingDay prototype: BoxCardboard + # Starlight + ranks: + - CargoSpecialist + # StarlightEnd - type: startingGear id: CargoTechGear diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index ffdc27773bf5..1bbf673101e8 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -42,6 +42,10 @@ - !type:AddComponentSpecial components: - type: CommandStaff + # Starlight + ranks: + - QuartermasterGeneral + # StarlightEnd - type: startingGear id: QuartermasterGear diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml index 2436eed9ef53..383485da39fc 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml @@ -25,6 +25,10 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + # Starlight + ranks: + - ModelSalvager + # StarlightEnd - type: startingGear id: SalvageSpecialistGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml index 90378505fced..22ffa5239146 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml @@ -17,6 +17,10 @@ extendedAccess: - Kitchen - Hydroponics + # Starlight + ranks: + - MasterBartender + # StarlightEnd - type: startingGear id: BartenderGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml index 794181cc2065..e63fd7cc9517 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml @@ -17,6 +17,10 @@ - !type:GiveItemOnHolidaySpecial holiday: FourTwenty prototype: CannabisSeeds + # Starlight + ranks: + - MasterBotanist + # StarlightEnd - type: startingGear id: BotanistGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml index 530ead971123..c492a0a6b1ff 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -17,6 +17,10 @@ extendedAccess: - Hydroponics - Bar + # Starlight + ranks: + - MessOfficer + # StarlightEnd - type: startingGear id: ChefGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml index 168d91c3bf50..b0eb286c65a1 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml @@ -14,6 +14,10 @@ - !type:GiveItemOnHolidaySpecial holiday: GarbageDay prototype: WeaponRevolverInspector + # Starlight + ranks: + - MasterJanitor + # StarlightEnd - type: startingGear id: JanitorGear diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index 798a4b43484e..8d3c00a83e6a 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -34,6 +34,10 @@ - !type:AddComponentSpecial components: - type: CommandStaff + # Starlight + ranks: + - Admiral + # StarlightEnd - type: startingGear id: CaptainGear diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index 98843e90a180..0bb0e458a0db 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -68,6 +68,10 @@ - !type:AddComponentSpecial components: - type: CommandStaff + # Starlight + ranks: + - ChiefSteward + # StarlightEnd - type: startingGear id: HoPGear diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index 548370bb2d9c..e22ab52540d4 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -20,6 +20,10 @@ - !type:GiveItemOnHolidaySpecial holiday: FirefighterDay prototype: FireAxe + # Starlight + ranks: + - AtmosphericSpecialist + # StarlightEnd - type: startingGear id: AtmosphericTechnicianGear diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index 9f0db21a57eb..b3c0bfd4283f 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -41,6 +41,10 @@ - !type:AddComponentSpecial components: - type: CommandStaff + # Starlight + ranks: + - MasterEngineer + # StarlightEnd - type: startingGear id: ChiefEngineerGear diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml index c99140b09568..f3bdf56d410a 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml @@ -16,6 +16,10 @@ - External extendedAccess: - Atmospherics + # Starlight + ranks: + - EngineeringSpecialist + # StarlightEnd - type: startingGear id: StationEngineerGear diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index 4459880d2581..44b0da97533e 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -19,7 +19,10 @@ extendedAccess: - Paramedic - Surgery - # Starlight End + ranks: + - ChemicalSpecialist + # StarlightEnd + - type: startingGear id: ChemistGear diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index 9fc051778702..9e91a1e73f1e 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -42,6 +42,10 @@ - !type:AddComponentSpecial components: - type: CommandStaff + # Starlight + ranks: + - SurgeonGeneral + # StarlightEnd - type: startingGear id: CMOGear diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml index ffb1bcdd0a95..bc336101a564 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -24,6 +24,10 @@ - !type:GiveItemOnHolidaySpecial holiday: DoctorDay prototype: WehMedipen + # Starlight + ranks: + - MedicalSpecialist + # StarlightEnd - type: startingGear id: DoctorGear diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 006760193071..4eeb3a565eb9 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -38,6 +38,10 @@ - !type:AddComponentSpecial components: - type: CommandStaff + # Starlight + ranks: + - ChiefOfResearch + # StarlightEnd - type: startingGear id: ResearchDirectorGear diff --git a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml index 6c35948e5f4d..7b0ab545629b 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml @@ -17,6 +17,10 @@ extendedAccess: - Robotics #endregion + # Starlight + ranks: + - MasterScientist + # StarlightEnd - type: startingGear id: ScientistGear diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index 8f7470c08a0b..57c9fbeacd21 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -46,6 +46,10 @@ - !type:AddComponentSpecial components: - type: CommandStaff + # Starlight + ranks: + - ChiefOfSecurity + # StarlightEnd - type: startingGear id: HoSGear diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index 4af1a508485f..92e05f7018fd 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -19,6 +19,10 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + # Starlight + ranks: + - ModelOfficer + # StarlightEnd - type: startingGear id: SecurityOfficerGear diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index c702270a1fb1..6d36e6355700 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -32,6 +32,10 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + # Starlight + ranks: + - ModelWarden + # StarlightEnd - type: startingGear id: WardenGear diff --git a/Resources/Prototypes/_NullLink/RolesReq/prestige.yml b/Resources/Prototypes/_NullLink/RolesReq/prestige.yml new file mode 100644 index 000000000000..b0f5c16acbf7 --- /dev/null +++ b/Resources/Prototypes/_NullLink/RolesReq/prestige.yml @@ -0,0 +1,53 @@ +- type: roleRequirementPrototype + id: SecurityPrestigeReq + roles: 1512114803739590759 + discord: roles-req-discord-starlight + rolesLoc: roles-req-sec-prestige + +- type: roleRequirementPrototype + id: MedicalPrestigeReq + roles: 1512124034144534709 + discord: roles-req-discord-starlight + rolesLoc: roles-req-med-prestige + +- type: roleRequirementPrototype + id: CargoPrestigeReq + roles: 1512123865428660385 + discord: roles-req-discord-starlight + rolesLoc: roles-req-cargo-prestige + +- type: roleRequirementPrototype + id: SciencePrestigeReq + roles: 1512129560580325617 + discord: roles-req-discord-starlight + rolesLoc: roles-req-sci-prestige + +- type: roleRequirementPrototype + id: EngineeringPrestigeReq + roles: 1512120278304559245 + discord: roles-req-discord-starlight + rolesLoc: roles-req-engi-prestige + +- type: roleRequirementPrototype + id: ServicePrestigeReq + roles: 1512140713595375826 + discord: roles-req-discord-starlight + rolesLoc: roles-req-service-prestige + +- type: roleRequirementPrototype + id: CaptainPrestigeReq + roles: 1512136612631281664 + discord: roles-req-discord-starlight + rolesLoc: roles-req-cap-prestige + +- type: roleRequirementPrototype + id: NTRPrestigeReq + roles: 1512136452668919828 + discord: roles-req-discord-starlight + rolesLoc: roles-req-ntr-prestige + +- type: roleRequirementPrototype + id: LawPrestigeReq + roles: 1512115268736913519 + discord: roles-req-discord-starlight + rolesLoc: roles-req-law-prestige diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mail_technician.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mail_technician.yml index 90b9a995f6e9..3181a9dccad9 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mail_technician.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/mail_technician.yml @@ -18,6 +18,8 @@ - !type:GiveItemOnHolidaySpecial holiday: BoxingDay prototype: BoxCardboard + ranks: + - MailSpecialist - type: startingGear id: MailTechGear diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_lead.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_lead.yml index 7a85d657fdf7..981b5e48b734 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_lead.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Cargo/salvage_lead.yml @@ -24,6 +24,8 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + ranks: + - ModelSalvageLead - type: startingGear id: SalvageLeadGear diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Medical/surgeon.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Medical/surgeon.yml index 90bb007575db..2bd6025ff440 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Medical/surgeon.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Medical/surgeon.yml @@ -18,6 +18,8 @@ extendedAccess: - Paramedic - Chemistry + ranks: + - SpecialistSurgeon - type: startingGear id: SurgeonGear diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/iaa.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/iaa.yml index 17ab85d1074c..b9b2435c6416 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/iaa.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/iaa.yml @@ -30,6 +30,8 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + ranks: + - InternalAffairsOfficer - type: startingGear id: IAAGear diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/magistrate.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/magistrate.yml index 8275f3c10448..cd85d4e1e6f7 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/magistrate.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/magistrate.yml @@ -40,6 +40,8 @@ - !type:AddComponentSpecial components: - type: CommandStaff + ranks: + - GrandMagistrate - type: startingGear id: MagistrateGear diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml index 6f8949d2aef0..abc3c22903f2 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml @@ -58,6 +58,8 @@ - !type:AddComponentSpecial components: - type: CommandStaff + ranks: + - ProtocolCommissar - type: startingGear id: NanoTrasenRepresentativeGear diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Security/brigmedic.yml index ca933146668b..925b3741c29a 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Security/brigmedic.yml @@ -30,6 +30,8 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + ranks: + - BrigmedicalSpecialist - type: startingGear id: BrigmedicGear diff --git a/Resources/Prototypes/_Starlight/Roles/Jobs/Security/duty_officer.yml b/Resources/Prototypes/_Starlight/Roles/Jobs/Security/duty_officer.yml index b52b170738ab..940077012830 100644 --- a/Resources/Prototypes/_Starlight/Roles/Jobs/Security/duty_officer.yml +++ b/Resources/Prototypes/_Starlight/Roles/Jobs/Security/duty_officer.yml @@ -16,6 +16,8 @@ - Maintenance - External - Cryogenics # Officer gets this for some reason, so making it consistent. + ranks: + - DutySpecialist special: - !type:AddImplantSpecial diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/captainprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/captainprestigeranks.yml new file mode 100644 index 000000000000..3c6fe75f5a0d --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/captainprestigeranks.yml @@ -0,0 +1,6 @@ +- type: rank + id: Admiral + name: job-name-admiral + requirement: CaptainPrestigeReq + priority: High + icon: "JobIconAdmiral" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/cargoprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/cargoprestigeranks.yml new file mode 100644 index 000000000000..896d99155d74 --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/cargoprestigeranks.yml @@ -0,0 +1,34 @@ +- type: rank + id: CargoSpecialist + name: job-name-cargospecialist + requirement: CargoPrestigeReq + priority: High + icon: "JobIconCargoSpecialist" + +- type: rank + id: MailSpecialist + name: job-name-mailspecialist + requirement: CargoPrestigeReq + priority: High + icon: "JobIconMailSpecialist" + +- type: rank + id: ModelSalvager + name: job-name-modelsalvager + requirement: CargoPrestigeReq + priority: High + icon: "JobIconModelSalvager" + +- type: rank + id: ModelSalvageLead + name: job-name-modelsalvagelead + requirement: CargoPrestigeReq + priority: High + icon: "JobIconModelSalvageLead" + +- type: rank + id: QuartermasterGeneral + name: job-name-quartermastergeneral + requirement: CargoPrestigeReq + priority: High + icon: "JobIconQuartermasterGeneral" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/engineeringprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/engineeringprestigeranks.yml new file mode 100644 index 000000000000..ac07e0d4ff63 --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/engineeringprestigeranks.yml @@ -0,0 +1,20 @@ +- type: rank + id: MasterEngineer + name: job-name-masterengineer + requirement: EngineeringPrestigeReq + priority: High + icon: "JobIconMasterEngineer" + +- type: rank + id: AtmosphericSpecialist + name: job-name-atmosphericspecialist + requirement: EngineeringPrestigeReq + priority: High + icon: "JobIconAtmosphericSpecialist" + +- type: rank + id: EngineeringSpecialist + name: job-name-engineeringspecialist + requirement: EngineeringPrestigeReq + priority: High + icon: "JobIconEngineeringSpecialist" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/lawprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/lawprestigeranks.yml new file mode 100644 index 000000000000..8a2abddfc8d3 --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/lawprestigeranks.yml @@ -0,0 +1,13 @@ +- type: rank + id: InternalAffairsOfficer + name: job-name-internalaffairsofficer + requirement: LawPrestigeReq + priority: High + icon: "JobIconInternalAffairsOfficer" + +- type: rank + id: GrandMagistrate + name: job-name-grandmagistrate + requirement: LawPrestigeReq + priority: High + icon: "JobIconGrandMagistrate" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/medicalprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/medicalprestigeranks.yml new file mode 100644 index 000000000000..c9002543dc30 --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/medicalprestigeranks.yml @@ -0,0 +1,27 @@ +- type: rank + id: MedicalSpecialist + name: job-name-medicalspecialist + requirement: MedicalPrestigeReq + priority: High + icon: "JobIconMedicalSpecialist" + +- type: rank + id: SpecialistSurgeon + name: job-name-specialistsurgeon + requirement: MedicalPrestigeReq + priority: High + icon: "JobIconSpecialistSurgeon" + +- type: rank + id: ChemicalSpecialist + name: job-name-chemicalspecialist + requirement: MedicalPrestigeReq + priority: High + icon: "JobIconChemicalSpecialist" + +- type: rank + id: SurgeonGeneral + name: job-name-surgeongeneral + requirement: MedicalPrestigeReq + priority: High + icon: "JobIconSurgeonGeneral" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/nanotrasenprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/nanotrasenprestigeranks.yml new file mode 100644 index 000000000000..f4d1de9c2d75 --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/nanotrasenprestigeranks.yml @@ -0,0 +1,6 @@ +- type: rank + id: ProtocolCommissar + name: job-name-protocolcommissar + requirement: NTRPrestigeReq + priority: High + icon: "JobIconProtocolCommissar" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/scienceprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/scienceprestigeranks.yml new file mode 100644 index 000000000000..be9623252962 --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/scienceprestigeranks.yml @@ -0,0 +1,13 @@ +- type: rank + id: MasterScientist + name: job-name-masterscientist + requirement: SciencePrestigeReq + priority: High + icon: "JobIconMasterScientist" + +- type: rank + id: ChiefOfResearch + name: job-name-chiefofresearch + requirement: SciencePrestigeReq + priority: High + icon: "JobIconChiefOfResearch" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/securityprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/securityprestigeranks.yml new file mode 100644 index 000000000000..ce30cb1cee4c --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/securityprestigeranks.yml @@ -0,0 +1,34 @@ +- type: rank + id: ModelOfficer + name: job-name-modelofficer + requirement: SecurityPrestigeReq + priority: High + icon: "JobIconModelOfficer" + +- type: rank + id: DutySpecialist + name: job-name-dutyspecialist + requirement: SecurityPrestigeReq + priority: High + icon: "JobIconDutySpecialist" + +- type: rank + id: BrigmedicalSpecialist + name: job-name-brigmedicalspecialist + requirement: SecurityPrestigeReq + priority: High + icon: "JobIconBrigmedicalSpecialist" + +- type: rank + id: ModelWarden + name: job-name-modelwarden + requirement: SecurityPrestigeReq + priority: High + icon: "JobIconModelWarden" + +- type: rank + id: ChiefOfSecurity + name: job-name-chiefofsecurity + requirement: SecurityPrestigeReq + priority: High + icon: "JobIconChiefOfSecurity" diff --git a/Resources/Prototypes/_Starlight/Roles/Ranks/serviceprestigeranks.yml b/Resources/Prototypes/_Starlight/Roles/Ranks/serviceprestigeranks.yml new file mode 100644 index 000000000000..2e6307cd5abf --- /dev/null +++ b/Resources/Prototypes/_Starlight/Roles/Ranks/serviceprestigeranks.yml @@ -0,0 +1,34 @@ +- type: rank + id: MasterJanitor + name: job-name-masterjanitor + requirement: ServicePrestigeReq + priority: High + icon: "JobIconMasterJanitor" + +- type: rank + id: MasterBartender + name: job-name-masterbartender + requirement: ServicePrestigeReq + priority: High + icon: "JobIconMasterBartender" + +- type: rank + id: MessOfficer + name: job-name-messofficer + requirement: ServicePrestigeReq + priority: High + icon: "JobIconMessOfficer" + +- type: rank + id: MasterBotanist + name: job-name-masterbotanist + requirement: ServicePrestigeReq + priority: High + icon: "JobIconMasterBotanist" + +- type: rank + id: ChiefSteward + name: job-name-chiefsteward + requirement: ServicePrestigeReq + priority: High + icon: "JobIconChiefSteward" diff --git a/Resources/Prototypes/_Starlight/StatusIcon/prestigeranks.yml b/Resources/Prototypes/_Starlight/StatusIcon/prestigeranks.yml new file mode 100644 index 000000000000..09ceb4213bc3 --- /dev/null +++ b/Resources/Prototypes/_Starlight/StatusIcon/prestigeranks.yml @@ -0,0 +1,215 @@ +- type: jobIcon + parent: JobIcon + id: JobIconMasterBartender + icon: + sprite: &starlight-prestige-ranks-rsi /Textures/_Starlight/Interface/Misc/prestige_icons.rsi + state: MasterBartender + jobName: job-name-masterbartender + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconMasterBotanist + icon: + sprite: *starlight-prestige-ranks-rsi + state: MasterBotanist + jobName: job-name-masterbotanist + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconBrigmedicalSpecialist + icon: + sprite: *starlight-prestige-ranks-rsi + state: BrigmedicalSpecialist + jobName: job-name-brigmedicalspecialist + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconAdmiral + icon: + sprite: *starlight-prestige-ranks-rsi + state: Admiral + jobName: job-name-admiral + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconCargoSpecialist + icon: + sprite: *starlight-prestige-ranks-rsi + state: CargoSpecialist + jobName: job-name-cargospecialist + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconMessOfficer + icon: + sprite: *starlight-prestige-ranks-rsi + state: MessOfficer + jobName: job-name-messofficer + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconChemicalSpecialist + icon: + sprite: *starlight-prestige-ranks-rsi + state: ChemicalSpecialist + jobName: job-name-chemicalspecialist + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconMasterEngineer + icon: + sprite: *starlight-prestige-ranks-rsi + state: MasterEngineer + jobName: job-name-masterengineer + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconChiefSteward + icon: + sprite: *starlight-prestige-ranks-rsi + state: ChiefSteward + jobName: job-name-chiefsteward + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconChiefOfSecurity + icon: + sprite: *starlight-prestige-ranks-rsi + state: ChiefOfSecurity + jobName: job-name-chiefofsecurity + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconInternalAffairsOfficer + icon: + sprite: *starlight-prestige-ranks-rsi + state: InternalAffairsOfficer + jobName: job-name-internalaffairsofficer + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconMasterJanitor + icon: + sprite: *starlight-prestige-ranks-rsi + state: MasterJanitor + jobName: job-name-masterjanitor + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconMedicalSpecialist + icon: + sprite: *starlight-prestige-ranks-rsi + state: MedicalSpecialist + jobName: job-name-medicalspecialist + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconProtocolCommissar + icon: + sprite: *starlight-prestige-ranks-rsi + state: ProtocolCommissar + jobName: job-name-protocolcommissar + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconQuartermasterGeneral + icon: + sprite: *starlight-prestige-ranks-rsi + state: QuartermasterGeneral + jobName: job-name-quartermastergeneral + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconChiefOfResearch + icon: + sprite: *starlight-prestige-ranks-rsi + state: ChiefOfResearch + jobName: job-name-chiefofresearch + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconModelSalvageLead + icon: + sprite: *starlight-prestige-ranks-rsi + state: ModelSalvageLead + jobName: job-name-modelsalvagelead + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconModelSalvager + icon: + sprite: *starlight-prestige-ranks-rsi + state: ModelSalvager + jobName: job-name-modelsalvager + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconMasterScientist + icon: + sprite: *starlight-prestige-ranks-rsi + state: MasterScientist + jobName: job-name-masterscientist + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconModelOfficer + icon: + sprite: *starlight-prestige-ranks-rsi + state: ModelOfficer + jobName: job-name-modelofficer + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconEngineeringSpecialist + icon: + sprite: *starlight-prestige-ranks-rsi + state: EngineeringSpecialist + jobName: job-name-engineeringspecialist + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconSpecialistSurgeon + icon: + sprite: *starlight-prestige-ranks-rsi + state: SpecialistSurgeon + jobName: job-name-specialistsurgeon + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconModelWarden + icon: + sprite: *starlight-prestige-ranks-rsi + state: ModelWarden + jobName: job-name-modelwarden + allowSelection: false + +- type: jobIcon + parent: JobIcon + id: JobIconAtmosphericSpecialist + icon: + sprite: *starlight-prestige-ranks-rsi + state: ChiefOfResearch + jobName: job-name-atmosphericspecialist + allowSelection: false diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/Admiral.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/Admiral.png new file mode 100644 index 000000000000..c6f4d88b1f14 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/Admiral.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/AtmosphericSpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/AtmosphericSpecialist.png new file mode 100644 index 000000000000..c78a73580140 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/AtmosphericSpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/BrigmedicalSpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/BrigmedicalSpecialist.png new file mode 100644 index 000000000000..d3c527947b0b Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/BrigmedicalSpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/CargoSpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/CargoSpecialist.png new file mode 100644 index 000000000000..2462a45169a8 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/CargoSpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChemicalSpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChemicalSpecialist.png new file mode 100644 index 000000000000..7a96e8f985ca Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChemicalSpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefMedicalOfficer.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefMedicalOfficer.png new file mode 100644 index 000000000000..c6020daff0e0 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefMedicalOfficer.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefOfResearch.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefOfResearch.png new file mode 100644 index 000000000000..429c515e5f6e Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefOfResearch.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefOfSecurity.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefOfSecurity.png new file mode 100644 index 000000000000..3e4a5b72f9eb Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefOfSecurity.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefSteward.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefSteward.png new file mode 100644 index 000000000000..07cdf97b2dc1 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ChiefSteward.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/DutySpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/DutySpecialist.png new file mode 100644 index 000000000000..2f5e9ba0f7f6 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/DutySpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/EngineeringSpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/EngineeringSpecialist.png new file mode 100644 index 000000000000..381fd052a292 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/EngineeringSpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/InternalAffairsOfficer.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/InternalAffairsOfficer.png new file mode 100644 index 000000000000..578e912758e6 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/InternalAffairsOfficer.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/Magistrate.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/Magistrate.png new file mode 100644 index 000000000000..b933f4f6cb78 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/Magistrate.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MailSpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MailSpecialist.png new file mode 100644 index 000000000000..46e895320ec2 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MailSpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterBartender.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterBartender.png new file mode 100644 index 000000000000..e8971ece6dd1 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterBartender.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterBotanist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterBotanist.png new file mode 100644 index 000000000000..af24ce686dbb Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterBotanist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterEngineer.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterEngineer.png new file mode 100644 index 000000000000..4a3ef4b2a7c7 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterEngineer.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterJanitor.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterJanitor.png new file mode 100644 index 000000000000..0b66cc22e7c2 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterJanitor.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterScientist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterScientist.png new file mode 100644 index 000000000000..c03381ffdb38 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MasterScientist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MedicalSpecialist.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MedicalSpecialist.png new file mode 100644 index 000000000000..ad8654baf9e1 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MedicalSpecialist.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MessOfficer.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MessOfficer.png new file mode 100644 index 000000000000..4bf44746a0c9 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/MessOfficer.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelOfficer.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelOfficer.png new file mode 100644 index 000000000000..63d4e4997ed8 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelOfficer.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelSalvageLead.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelSalvageLead.png new file mode 100644 index 000000000000..54cb1d83043b Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelSalvageLead.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelSalvager.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelSalvager.png new file mode 100644 index 000000000000..7933d5140361 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelSalvager.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelWarden.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelWarden.png new file mode 100644 index 000000000000..27f25b3f0c28 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ModelWarden.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ProtocolCommissar.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ProtocolCommissar.png new file mode 100644 index 000000000000..6227a3065d38 Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/ProtocolCommissar.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/QuartermasterGeneral.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/QuartermasterGeneral.png new file mode 100644 index 000000000000..d30d8aaa32cc Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/QuartermasterGeneral.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/SpecialistSurgeon.png b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/SpecialistSurgeon.png new file mode 100644 index 000000000000..9ec18f5e456d Binary files /dev/null and b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/SpecialistSurgeon.png differ diff --git a/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/meta.json b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/meta.json new file mode 100644 index 000000000000..81d8b7a13b02 --- /dev/null +++ b/Resources/Textures/_Starlight/Interface/Misc/prestige_icons.rsi/meta.json @@ -0,0 +1,129 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "size": { + "x": 8, + "y": 8 + }, + "copyright": "Many, see individual entries", + "states": [ + { + "name": "MasterBartender", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "MasterBotanist", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "BrigmedicalSpecialist", + "copyright": "PuroSlavKing (Github)" + }, + { + "name": "Admiral", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "CargoSpecialist", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "MessOfficer", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ChemicalSpecialist", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "MasterEngineer", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ChiefSteward", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ChiefOfSecurity", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "InternalAffairsOfficer", + "copyright": "Chim" + }, + { + "name": "MasterJanitor", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "MedicalSpecialist", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ProtocolCommissar", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi, wonderfulnewworld" + }, + { + "name": "QuartermasterGeneral", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ChiefOfResearch", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ModelSalvageLead", + "copyright": "mikeysaurus" + }, + { + "name": "ModelSalvager", + "copyright": "mikeysaurus" + }, + { + "name": "MasterScientist", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ModelOfficer", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "EngineeringSpecialist", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "SpecialistSurgeon", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "ModelWarden", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "AtmosphericSpecialist", + "copyright": "/tg/station113, https://github.com/tgstation/tgstation/blob/ce6beb8a4d61235d9a597a7126c407160ed674ea/icons/mob/huds/hud.dmi" + }, + { + "name": "DutySpecialist", + "copyright": "BORT" + }, + { + "name": "MailSpecialist", + "delays": [ + [ + 10, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ], + "copyright": "Happyrobot33, fqqf" + } + ] +}