From 9cd2e223db2abf937ff1069f7833f375ceb2fa1b Mon Sep 17 00:00:00 2001 From: neuPanda Date: Sun, 7 Jul 2024 09:15:38 -0400 Subject: [PATCH] NFSD Access Overhaul (#1459) * NFSD Access Overhaul Fixed ship console refresh on id insert or removal Added Access to VesselPrototype Added Filtration to Ship List based off of Access Added Bailiff and Sergeant Access levels Added Access levels to all NFSD ship Added appropriate access groups to NFSD roles * removed: Atmospherics and Engineering from ID console * Update IdCardConsoleComponent.cs Fixing issue where re-sharper removed un-used using statements per request. * NFSD Access Overhaul Fixed ship console refresh on id insert or removal Added Access to VesselPrototype Added Filtration to Ship List based off of Access Added Bailiff and Sergeant Access levels Added Access levels to all NFSD ship Added appropriate access groups to NFSD roles * removed: Atmospherics and Engineering from ID console * Update IdCardConsoleComponent.cs Fixing issue where re-sharper removed un-used using statements per request. * Updating Access per request, fixing SR access to include Srg and Bailiff * fixing mirge issue that VS so politly decided to fuck up and then hide the fact that the code would not compile by compiling old code like the little shit that it is. thank god i dont have to be proffessional with my code comments here like i do at work because i ant shit talk VS or Git when i am working so i shall unleach all my rage in this commnet for the 2 of them (git and VS) for being dicks and wasting everybody's time * ShipyardSystem cleanup, LINQ removal, vessel proto * Access: prefer NFSD accesses outright to groups * Shipyard console: fix condition, check accessgroup * ShipyardSystem: comment skipping for no access --------- Co-authored-by: neuPanda Co-authored-by: Whatstone --- .../Systems/ShipyardSystem.Consoles.cs | 77 +++++++++++++------ .../Components/IdCardConsoleComponent.cs | 4 + .../Shipyard/Prototypes/VesselPrototype.cs | 8 ++ .../en-US/_NF/prototypes/access/accesses.ftl | 4 +- Resources/Prototypes/Access/misc.yml | 2 + Resources/Prototypes/_NF/Access/security.yml | 17 +++- .../_NF/Roles/Jobs/Nfsd/bailiff.yml | 11 +-- .../Prototypes/_NF/Roles/Jobs/Nfsd/cadet.yml | 2 +- .../_NF/Roles/Jobs/Nfsd/detectivenf.yml | 9 +-- .../_NF/Roles/Jobs/Nfsd/senior_officer.yml | 2 + .../_NF/Shipyard/Nfsd/broadhead.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/cleric.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/empress.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/enforcer.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/fighter.yml | 1 + .../_NF/Shipyard/Nfsd/hospitaller.yml | 1 + .../_NF/Shipyard/Nfsd/inquisitor.yml | 1 + .../_NF/Shipyard/Nfsd/interceptor.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/marauder.yml | 1 + .../_NF/Shipyard/Nfsd/opportunity.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/prowler.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/rogue.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/templar.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/trident.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/wasp.yml | 1 + .../Prototypes/_NF/Shipyard/Nfsd/whiskey.yml | 1 + 26 files changed, 112 insertions(+), 40 deletions(-) diff --git a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs index dc141963498..8fddc87f695 100644 --- a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs +++ b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs @@ -12,7 +12,6 @@ using Content.Shared.Shipyard; using Robust.Server.GameObjects; using Robust.Shared.Containers; -using Robust.Shared.Player; using Robust.Shared.Prototypes; using Content.Shared.Radio; using System.Linq; @@ -21,7 +20,6 @@ using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Server.Maps; -using Content.Server.UserInterface; using Content.Shared.StationRecords; using Content.Server.Chat.Systems; using Content.Server.Forensics; @@ -39,6 +37,7 @@ using Content.Shared.UserInterface; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; +using Content.Shared.Access; namespace Content.Server.Shipyard.Systems; @@ -106,7 +105,7 @@ private void OnPurchaseMessage(EntityUid uid, ShipyardConsoleComponent component return; } - if (!GetAvailableShuttles(uid).Contains(vessel.ID)) + if (!GetAvailableShuttles(uid, targetId: targetId).Contains(vessel.ID)) { PlayDenySound(uid, component); _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(player):player} tried to purchase a vessel that was never available."); @@ -239,7 +238,7 @@ private void OnPurchaseMessage(EntityUid uid, ShipyardConsoleComponent component PlayConfirmSound(uid, component); _adminLogger.Add(LogType.ShipYardUsage, LogImpact.Low, $"{ToPrettyString(player):actor} purchased shuttle {ToPrettyString(shuttle.Owner)} for {vessel.Price} credits via {ToPrettyString(component.Owner)}"); - RefreshState(uid, bank.Balance, true, name, sellValue, true, (ShipyardConsoleUiKey) args.UiKey); + RefreshState(uid, bank.Balance, true, name, sellValue, targetId, (ShipyardConsoleUiKey) args.UiKey); } private void TryParseShuttleName(ShuttleDeedComponent deed, string name) @@ -353,7 +352,7 @@ public void OnSellMessage(EntityUid uid, ShipyardConsoleComponent component, Shi SendSellMessage(uid, deed.ShuttleOwner!, name, secretChannel, player, secret: true); _adminLogger.Add(LogType.ShipYardUsage, LogImpact.Low, $"{ToPrettyString(player):actor} sold {shuttleName} for {bill} credits via {ToPrettyString(component.Owner)}"); - RefreshState(uid, bank.Balance, true, null, 0, true, (ShipyardConsoleUiKey) args.UiKey); + RefreshState(uid, bank.Balance, true, null, 0, targetId, (ShipyardConsoleUiKey) args.UiKey); } private void OnConsoleUIOpened(EntityUid uid, ShipyardConsoleComponent component, BoundUIOpenedEvent args) @@ -392,7 +391,7 @@ private void OnConsoleUIOpened(EntityUid uid, ShipyardConsoleComponent component sellValue -= CalculateSalesTax(component, sellValue); var fullName = deed != null ? GetFullName(deed) : null; - RefreshState(uid, bank.Balance, true, fullName, sellValue, targetId.HasValue, (ShipyardConsoleUiKey) args.UiKey); + RefreshState(uid, bank.Balance, true, fullName, sellValue, targetId, (ShipyardConsoleUiKey) args.UiKey); } private void ConsolePopup(EntityUid uid, string text) @@ -482,7 +481,14 @@ private void OnItemSlotChanged(EntityUid uid, ShipyardConsoleComponent component sellValue -= CalculateSalesTax(component, sellValue); var fullName = deed != null ? GetFullName(deed) : null; - RefreshState(uid, bank.Balance, true, fullName, sellValue, targetId.HasValue, (ShipyardConsoleUiKey) uiComp.Key); + RefreshState(uid, + bank.Balance, + true, + fullName, + sellValue, + targetId, + (ShipyardConsoleUiKey) uiComp.Key); + } } @@ -519,7 +525,8 @@ private void OnItemSlotChanged(EntityUid uid, ShipyardConsoleComponent component /// /// Returns all shuttle prototype IDs the given shipyard console can offer. /// - public List GetAvailableShuttles(EntityUid uid, ShipyardConsoleUiKey? key = null, ShipyardListingComponent? listing = null) + public List GetAvailableShuttles(EntityUid uid, ShipyardConsoleUiKey? key = null, + ShipyardListingComponent? listing = null, EntityUid? targetId = null) { var availableShuttles = new List(); @@ -536,30 +543,54 @@ public List GetAvailableShuttles(EntityUid uid, ShipyardConsoleUiKey? ke } } - // Add all prototypes matching the ui key - if (key != null && key != ShipyardConsoleUiKey.Custom && ShipyardGroupMapping.TryGetValue(key.Value, out var group)) + TryComp(targetId, out var accessComponent); + foreach (var vessel in _prototypeManager.EnumeratePrototypes()) { - var protos = _prototypeManager.EnumeratePrototypes(); - foreach (var proto in protos) + // If the vessel needs access to be bought, check the user's access. + if (!string.IsNullOrEmpty(vessel.Access)) { - if (proto.Group == group) - availableShuttles.Add(proto.ID); + bool hasAccess = false; + // Check tags + if (accessComponent?.Tags.Contains(vessel.Access) ?? false) + hasAccess = true; + + // Check each group if we haven't found access already. + if (!hasAccess) + { + var groupIds = accessComponent?.Groups ?? new HashSet>(); + foreach (var groupId in groupIds) + { + var groupProto = _prototypeManager.Index(groupId); + if (groupProto?.Tags.Contains(vessel.Access) ?? false) + { + hasAccess = true; + break; + } + } + } + + // No access to this vessel, skip to the next one. + if (!hasAccess) + continue; } - } - // Add all prototypes specified in ShipyardListing - if (listing != null || TryComp(uid, out listing)) - { - foreach (var shuttle in listing.Shuttles) + // Check that the listing contains the shuttle or that the shuttle is in the group that the console is looking for + if ((listing?.Shuttles.Contains(vessel.ID) ?? false) || + // if the listing contains the shuttle, add it to the list or + + // if the shuttle is in the group that the console is looking for + (key != null && key != ShipyardConsoleUiKey.Custom && + ShipyardGroupMapping.TryGetValue(key.Value, out var group) && vessel.Group == group)) { - availableShuttles.Add(shuttle); + availableShuttles.Add(vessel.ID); } + } return availableShuttles; } - private void RefreshState(EntityUid uid, int balance, bool access, string? shipDeed, int shipSellValue, bool isTargetIdPresent, ShipyardConsoleUiKey uiKey) + private void RefreshState(EntityUid uid, int balance, bool access, string? shipDeed, int shipSellValue, EntityUid? targetId, ShipyardConsoleUiKey uiKey) { var listing = TryComp(uid, out var comp) ? comp : null; @@ -568,9 +599,9 @@ private void RefreshState(EntityUid uid, int balance, bool access, string? shipD access, shipDeed, shipSellValue, - isTargetIdPresent, + targetId.HasValue, ((byte)uiKey), - GetAvailableShuttles(uid, uiKey, listing), + GetAvailableShuttles(uid, uiKey, listing, targetId), uiKey.ToString()); _ui.SetUiState(uid, uiKey, newState); diff --git a/Content.Shared/Access/Components/IdCardConsoleComponent.cs b/Content.Shared/Access/Components/IdCardConsoleComponent.cs index 7b06122670d..9376457f075 100644 --- a/Content.Shared/Access/Components/IdCardConsoleComponent.cs +++ b/Content.Shared/Access/Components/IdCardConsoleComponent.cs @@ -3,6 +3,8 @@ using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; +using Robust.Shared.Prototypes; namespace Content.Shared.Access.Components; @@ -46,6 +48,7 @@ public WriteToTargetIdMessage(string fullName, string jobTitle, List + /// The access required to buy the product. (e.g. Command, Mail, Bailiff, etc.) + /// + [DataField("access")] + public string Access = string.Empty; + /// Frontier - Add this field for the MapChecker script. /// /// The MapChecker override group for this vessel. @@ -51,4 +58,5 @@ public sealed class VesselPrototype : IPrototype /// [DataField("shuttlePath", required: true)] public ResPath ShuttlePath = default!; + } diff --git a/Resources/Locale/en-US/_NF/prototypes/access/accesses.ftl b/Resources/Locale/en-US/_NF/prototypes/access/accesses.ftl index e8ca0666f4d..5a35988329d 100644 --- a/Resources/Locale/en-US/_NF/prototypes/access/accesses.ftl +++ b/Resources/Locale/en-US/_NF/prototypes/access/accesses.ftl @@ -2,4 +2,6 @@ id-card-access-level-frontier = Frontier id-card-access-level-pilot = Pilot id-card-access-level-mail = Mail id-card-access-level-mercenary = Mercenary -id-card-access-level-stc = Station Traffic Controller \ No newline at end of file +id-card-access-level-stc = Station Traffic Controller +id-card-access-level-sergeant = Sergeant +id-card-access-level-bailiff = Bailiff diff --git a/Resources/Prototypes/Access/misc.yml b/Resources/Prototypes/Access/misc.yml index db359351e79..0400f602117 100644 --- a/Resources/Prototypes/Access/misc.yml +++ b/Resources/Prototypes/Access/misc.yml @@ -26,6 +26,8 @@ - Research - Service - StationTrafficController # Frontier + - Sergeant # Frontier + - Bailiff # Frontier - Maintenance - External - Janitor diff --git a/Resources/Prototypes/_NF/Access/security.yml b/Resources/Prototypes/_NF/Access/security.yml index d6fa4f60a31..41a15a2b340 100644 --- a/Resources/Prototypes/_NF/Access/security.yml +++ b/Resources/Prototypes/_NF/Access/security.yml @@ -1,7 +1,22 @@ - type: accessLevel id: Mercenary - name: id-card-access-level-mercenary + name: id-card-access-level-mercenary +- type: accessLevel + id: Sergeant + name: id-card-access-level-sergeant + +- type: accessLevel + id: Bailiff + name: id-card-access-level-bailiff + +- type: accessGroup + id: CadetNfsdAccess + tags: + - Maintenance + - External + - Security + - type: accessGroup id: GeneralNfsdAccess tags: diff --git a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/bailiff.yml b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/bailiff.yml index c80618ab4eb..48c23950ec0 100644 --- a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/bailiff.yml +++ b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/bailiff.yml @@ -17,14 +17,11 @@ supervisors: job-supervisors-sheriff canBeAntag: false access: - - Maintenance - - External - - Command - - Brig - - Security - - Mercenary # Frontier - - Captain # Frontier - Armory + - Sergeant # Frontier + - Bailiff # Frontier + accessGroups: # Frontier + - GeneralNfsdAccess # Frontier special: - !type:AddImplantSpecial implants: [ MindShieldImplant, TrackingImplant ] # Frontier diff --git a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/cadet.yml b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/cadet.yml index 371aec388a5..4242d8419a9 100644 --- a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/cadet.yml +++ b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/cadet.yml @@ -15,7 +15,7 @@ supervisors: job-supervisors-cadet canBeAntag: false accessGroups: # Frontier - - GeneralNfsdAccess # Frontier + - CadetNfsdAccess # Frontier special: - !type:AddImplantSpecial implants: [ MindShieldImplant, TrackingImplant ] diff --git a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/detectivenf.yml b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/detectivenf.yml index 81bc81d085d..5b768e345a0 100644 --- a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/detectivenf.yml +++ b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/detectivenf.yml @@ -14,14 +14,9 @@ supervisors: job-supervisors-bailiff canBeAntag: false access: - - Maintenance - - External - - Command - - Brig - - Security - - Mercenary # Frontier - - Captain # Frontier - Detective + accessGroups: # Frontier + - GeneralNfsdAccess # Frontier special: - !type:AddImplantSpecial implants: [ MindShieldImplant, TrackingImplant ] diff --git a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/senior_officer.yml b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/senior_officer.yml index 657a142d21d..e6354dd97ae 100644 --- a/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/senior_officer.yml +++ b/Resources/Prototypes/_NF/Roles/Jobs/Nfsd/senior_officer.yml @@ -16,6 +16,8 @@ icon: "JobIconSeniorOfficer" # Frontier supervisors: job-supervisors-bailiff canBeAntag: false + access: + - Sergeant # Frontier accessGroups: # Frontier - GeneralNfsdAccess # Frontier special: diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml index abd86bfbe68..778620f0e77 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml @@ -5,6 +5,7 @@ price: 50000 category: Medium group: Security + access: Detective shuttlePath: /Maps/_NF/Shuttles/Nfsd/broadhead.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/cleric.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/cleric.yml index 84f228eab0b..361b2f2cb84 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/cleric.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/cleric.yml @@ -5,6 +5,7 @@ price: 11800 #Appraisal is 10500 category: Small group: None + access: Security mapchecker_group_override: Security # Treat this as a security vessel for mapchecker purposes shuttlePath: /Maps/_NF/Shuttles/Nfsd/cleric.yml diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/empress.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/empress.yml index 0f1bdf07f76..9959398dcd8 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/empress.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/empress.yml @@ -5,6 +5,7 @@ price: 170000 #Appraisal value is 150000 category: Large group: Security + access: Bailiff shuttlePath: /Maps/_NF/Shuttles/Nfsd/empress.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/enforcer.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/enforcer.yml index 71a94cad095..395dcb1cc2b 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/enforcer.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/enforcer.yml @@ -5,6 +5,7 @@ # price: 21350 # category: Small # group: Security + # access: Bailiff # shuttlePath: /Maps/_NF/Shuttles/Nfsd/enforcer.yml # - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/fighter.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/fighter.yml index 4501e21cde5..6f9874d146c 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/fighter.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/fighter.yml @@ -5,6 +5,7 @@ price: 9000 #not sure how much mark up % to add but the appraisal is 7150$ now category: Small group: None + access: Security mapchecker_group_override: Security # Treat this as a security vessel for mapchecker purposes shuttlePath: /Maps/_NF/Shuttles/Nfsd/fighter.yml diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/hospitaller.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/hospitaller.yml index 4c67789e8d5..b1fa5df291a 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/hospitaller.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/hospitaller.yml @@ -5,6 +5,7 @@ price: 28220 category: Small group: Security + access: Security shuttlePath: /Maps/_NF/Shuttles/Nfsd/hospitaller.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml index aabf99b7a76..e107f2dfeea 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml @@ -5,6 +5,7 @@ price: 29000 category: Small group: Security + access: Detective shuttlePath: /Maps/_NF/Shuttles/Nfsd/inquisitor.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/interceptor.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/interceptor.yml index c6b0dda3dd0..35c1603abe3 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/interceptor.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/interceptor.yml @@ -5,6 +5,7 @@ price: 21350 category: Small group: Security + access: Detective shuttlePath: /Maps/_NF/Shuttles/Nfsd/interceptor.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/marauder.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/marauder.yml index f5916f74f60..9515160762c 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/marauder.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/marauder.yml @@ -5,6 +5,7 @@ price: 80000 category: Large group: Security + access: Bailiff shuttlePath: /Maps/_NF/Shuttles/Nfsd/marauder.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/opportunity.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/opportunity.yml index 6af64f897ee..f2a6bb3fe8c 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/opportunity.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/opportunity.yml @@ -5,6 +5,7 @@ # price: 70000 # category: Medium # group: Security + # access: Bailiff # shuttlePath: /Maps/_NF/Shuttles/Nfsd/opportunity.yml # - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/prowler.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/prowler.yml index 1c738257d01..292521fe9c8 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/prowler.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/prowler.yml @@ -5,6 +5,7 @@ price: 49220 category: Medium group: Security + access: Sergeant shuttlePath: /Maps/_NF/Shuttles/Nfsd/prowler.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/rogue.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/rogue.yml index a31be56360c..9a2ee71ce88 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/rogue.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/rogue.yml @@ -5,6 +5,7 @@ price: 12200 #the appraisal is 9100$ category: Small group: None + access: Security mapchecker_group_override: Security # Treat this as a security vessel for mapchecker purposes shuttlePath: /Maps/_NF/Shuttles/Nfsd/rogue.yml diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/templar.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/templar.yml index 9598f598c7a..4a9a3afd7ae 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/templar.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/templar.yml @@ -5,6 +5,7 @@ price: 24220 category: Small group: Security + access: Security shuttlePath: /Maps/_NF/Shuttles/Nfsd/templar.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/trident.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/trident.yml index b859e737074..6332fa22426 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/trident.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/trident.yml @@ -5,6 +5,7 @@ # price: 49300 # category: Medium # group: Security + # access: Bailiff # shuttlePath: /Maps/_NF/Shuttles/Nfsd/trident.yml # - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/wasp.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/wasp.yml index 3b3001b44cb..a3e0d71f6c1 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/wasp.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/wasp.yml @@ -5,6 +5,7 @@ price: 135000 category: Large group: Security + access: Bailiff shuttlePath: /Maps/_NF/Shuttles/Nfsd/wasp.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/whiskey.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/whiskey.yml index 778ddddf2ea..7199b14c43a 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/whiskey.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/whiskey.yml @@ -5,6 +5,7 @@ # price: 55000 # category: Medium # group: Security +# access: Bailiff # shuttlePath: /Maps/_NF/Shuttles/Nfsd/whiskey.yml # - type: gameMap