diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index 05a0a7f1883..349a6732e7b 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -2820,5 +2820,18 @@ public static readonly CVarDef /// public static readonly CVarDef UseDynamicHostname = CVarDef.Create("game.use_dynamic_hostname", false, CVar.SERVERONLY); + + /// + /// Whether the RestrictedGear trait can be used on the server. + /// + public static readonly CVarDef RestrictedGearEnabled = + CVarDef.Create("trait.restrictedgear_enabled", true, CVar.SERVERONLY); + + /// + /// Whether the RestrictedGear trait can allow guns for any job. + /// + + public static readonly CVarDef RestrictedGearAllowsFirearms = + CVarDef.Create("trait.restrictedgear_allowsfirearms", true, CVar.SERVERONLY); } } diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 97a8150c495..0d45c1d04ed 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -439,6 +439,12 @@ trait-description-CyberEyesOmni = trait-name-ShadowkinBlackeye = Blackeye trait-description-ShadowkinBlackeye = You lose your special Shadowkin powers, in return for some points. +trait-name-RestrictedGear = Restricted Gear +trait-description-RestrictedGear = + Either through personal ownership or theft, you have access to equipment that isn't particularly standard issue. + Note that starting with an item [color=red]doesn't certify its legality[/color]. Conceal it or justify it. + (You equip other jobs' items in the loadouts menu) + trait-name-DispelPower = Normality Projection trait-description-DispelPower = Your Mentalic abilities include the power to enforce normality upon Noospheric phenomena. diff --git a/Resources/Prototypes/Loadouts/Jobs/Engineering/traitRestrictedGear.yml b/Resources/Prototypes/Loadouts/Jobs/Engineering/traitRestrictedGear.yml new file mode 100644 index 00000000000..9db2670c2ee --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Engineering/traitRestrictedGear.yml @@ -0,0 +1,226 @@ +### All Engineers +## Mesons +- type: loadout + id: LoadoutEngineeringRestrictedGearEyesMeson + category: JobsEngineeringAAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutEyesEngineering + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - ClothingEyesGlassesMeson + +## Tools +# Wirecutter +- type: loadout + id: LoadoutEngineeringRestrictedGearEquipmentWirecutter + category: JobsEngineeringAAUncategorized + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - Wirecutter + +# Screwdriver +- type: loadout + id: LoadoutEngineeringRestrictedGearEquipmentScrewdriver + category: JobsEngineeringAAUncategorized + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - Screwdriver + +# Wrench +- type: loadout + id: LoadoutEngineeringRestrictedGearEquipmentWrench + category: JobsEngineeringAAUncategorized + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - Wrench + +# White Crowbar +- type: loadout + id: LoadoutEngineeringRestrictedGearEquipmentCrowbar + category: JobsEngineeringAAUncategorized + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - Crowbar + +# Multitool +- type: loadout + id: LoadoutEngineeringRestrictedGearEquipmentMultitool + category: JobsEngineeringAAUncategorized + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - Multitool + +# Power Drill +- type: loadout + id: LoadoutEngineeringRestrictedGearPowerDrill + category: JobsEngineeringAAUncategorized + cost: 3 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - PowerDrill + +## Insulated Gloves Variations +# Yellow +- type: loadout + id: LoadoutEngineeringRestrictedGearGlovesInsulated + category: JobsEngineeringAAUncategorized + cost: 3 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringGloves + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - ClothingHandsGlovesColorYellow + +# Black +- type: loadout + id: LoadoutEngineeringRestrictedGearGlovesCombat + category: JobsEngineeringAAUncategorized + cost: 3 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringGloves + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - ClothingHandsGlovesCombat + +# Merc +- type: loadout + id: LoadoutEngineeringRestrictedGearGlovesMerc + category: JobsEngineeringAAUncategorized + cost: 3 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringGloves + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Engineering + items: + - ClothingHandsMercGlovesCombat + + +### Atmos +## Utility belt +- type: loadout + id: LoadoutEngineeringRestrictedGearBeltUtilityAtmos + category: JobsEngineeringAtmosphericTechnician + cost: 5 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterJobRequirement + inverted: true + jobs: + - AtmosphericTechnician + items: + - ClothingBeltUtilityAtmos + +- type: loadout + id: LoadoutEngineeringRestrictedGearEquipmentHolofanProjector + category: JobsEngineeringAtmosphericTechnician + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterJobRequirement + inverted: true + jobs: + - AtmosphericTechnician + items: + - HolofanProjector + +### SE +## Utility belt +- type: loadout + id: LoadoutEngineeringRestrictedGearBeltUtilityEngineering + category: JobsEngineeringStationEngineer + cost: 4 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterJobRequirement + inverted: true + jobs: + - StationEngineer + items: + - ClothingBeltUtilityEngineering \ No newline at end of file diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/traitRestrictedGear.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/traitRestrictedGear.yml new file mode 100644 index 00000000000..3166db8181d --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/traitRestrictedGear.yml @@ -0,0 +1,39 @@ +### All Epistemiologists +## Eyes +# Hud +- type: loadout + id: LoadoutScienceRestrictedGearEyesHudDiagnostic + category: JobsEpistemicsAAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsEyes + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Epistemics + items: + - ClothingEyesHudDiagnostic + +# Eyepatch +- type: loadout + id: LoadoutScienceRestrictedGearEyesEyepatchHudDiag + category: JobsEpistemicsAAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsEyes + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Epistemics + items: + - ClothingEyesEyepatchHudDiag \ No newline at end of file diff --git a/Resources/Prototypes/Loadouts/Jobs/Logistics/traitRestrictedGear.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/traitRestrictedGear.yml new file mode 100644 index 00000000000..9a7c83a33f4 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/traitRestrictedGear.yml @@ -0,0 +1,271 @@ +### Salvage Specialist +## Belts +# Merc webbing +- type: loadout + id: LoadoutCargoRestrictedGearBeltMercWebbing + category: JobsLogisticsSalvageSpecialist + cost: 5 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBelt + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - ClothingBeltMercWebbing + +# Salvage rig +- type: loadout + id: LoadoutCargoRestrictedGearBeltSalvageWebbing + category: JobsLogisticsSalvageSpecialist + cost: 5 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBelt + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - ClothingBeltSalvageWebbing + +# Chest rig +- type: loadout + id: LoadoutCargoRestrictedGearBeltMilitaryWebbing + category: JobsLogisticsSalvageSpecialist + cost: 5 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBelt + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - ClothingBeltMilitaryWebbing + + +## Weapons +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsCrusherDagger + category: JobsLogisticsSalvageSpecialist + cost: 5 + canBeHeirloom: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - WeaponCrusherDagger + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsCombatKnife + category: JobsLogisticsSalvageSpecialist + cost: 4 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - CombatKnife + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsKitchenKnife + category: JobsLogisticsSalvageSpecialist + cost: 4 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - KitchenKnife + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsSurvivalKnife + category: JobsLogisticsSalvageSpecialist + cost: 4 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - SurvivalKnife + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsKukriKnife + category: JobsLogisticsSalvageSpecialist + cost: 4 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - KukriKnife + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsCleaver + category: JobsLogisticsSalvageSpecialist + cost: 5 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - ButchCleaver + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsThrowingKnife + category: JobsLogisticsSalvageSpecialist + cost: 3 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - ThrowingKnife + - ThrowingKnife + - ThrowingKnife + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsMachete + category: JobsLogisticsSalvageSpecialist + cost: 4 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - Machete + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsCutlass + category: JobsLogisticsSalvageSpecialist + cost: 5 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - Cutlass + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsKatana + category: JobsLogisticsSalvageSpecialist + cost: 5 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - Katana + +- type: loadout + id: LoadoutCargoRestrictedGearWeaponsWakizashi + category: JobsLogisticsSalvageSpecialist + cost: 4 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + inverted: true + jobs: + - SalvageSpecialist + items: + - Wakizashi \ No newline at end of file diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/traitRestrictedGear.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/traitRestrictedGear.yml new file mode 100644 index 00000000000..dce6cabfbbc --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/traitRestrictedGear.yml @@ -0,0 +1,445 @@ +### All Medical + +## Surgery +## Note - Would it be more intuitive to move Surgery related items to Medical Doctor? +## Also, individual surgical tools are also made available as it mightn't always viable to equip the surgical duffel bag +## Getting the surgical duffel is cheaper than getting all the tools individually +## However, Scalpel + Hemostat + Retractors + Cautery is only 4 points + +# Surgical Duffel +- type: loadout + id: LoadoutMedicalRestrictedGearDuffelSurgeryFilled + category: JobsMedicalAUncategorized + cost: 5 + items: + - ClothingBackpackDuffelSurgeryFilled + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Cautery +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentCautery + category: JobsMedicalAUncategorized + cost: 1 + items: + - Cautery + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Drill +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentDrill + category: JobsMedicalAUncategorized + cost: 1 + items: + - Drill + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Scalpel +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentScalpel + category: JobsMedicalAUncategorized + cost: 1 + items: + - Scalpel + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Retractor +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentRetractor + category: JobsMedicalAUncategorized + cost: 1 + items: + - Retractor + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Hemostat +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentHemostat + category: JobsMedicalAUncategorized + cost: 1 + items: + - Hemostat + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Bonesetter +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentBonesetter + category: JobsMedicalAUncategorized + cost: 1 + items: + - Bonesetter + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Bonegel +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentBoneGel + category: JobsMedicalAUncategorized + cost: 1 + items: + - BoneGel + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + +# Metal Saw +- type: loadout + id: LoadoutMedicalRestrictedGearEquipmentSaw + category: JobsMedicalAUncategorized + cost: 1 + items: + - Saw + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + + +## Eyes +# Medhud +- type: loadout + id: LoadoutMedicalRestrictedGearEyesHudMedical + category: JobsMedicalAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalEyes + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + items: + - ClothingEyesHudMedical + +# Eyepatch Medhud +- type: loadout + id: LoadoutMedicalRestrictedGearEyepatchHudMedical + category: JobsMedicalAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalEyes + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + items: + - ClothingEyesEyepatchHudMedical + +# Medhud Prescription +- type: loadout + id: LoadoutMedicalRestrictedGearHudMedicalPrescription + category: JobsMedicalAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - Nearsighted + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalEyes + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + items: + - ClothingEyesPrescriptionMedHud + +## Gloves +# Nitrile +- type: loadout + id: LoadoutMedicalRestrictedGearGlovesNitrile + category: JobsMedicalAUncategorized + cost: 1 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalGloves + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + items: + - ClothingHandsGlovesNitrile + +# Latex +- type: loadout + id: LoadoutMedicalRestrictedGearGlovesLatex + category: JobsMedicalAUncategorized + cost: 1 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalGloves + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + items: + - ClothingHandsGlovesLatex + +## Stethoscope +- type: loadout + id: LoadoutMedicalRestrictedGearNeckStethoscope + category: JobsMedicalAUncategorized + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Medical + items: + - ClothingNeckStethoscope + + +### Chemist +## Drugs +# Kelotane +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterKelotane + category: JobsMedicalChemist + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterKelotane + +# Tricordrazine +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterTricordrazine + category: JobsMedicalChemist + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterTricordrazine + +# Hyronalin +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterHyronalin + category: JobsMedicalChemist + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterHyronalin + +# Bicaridine +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterBicaridine + category: JobsMedicalChemist + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterBicaridine + +# Dermaline +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterDermaline + category: JobsMedicalChemist + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterDermaline + +# Dylovene +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterDylovene + category: JobsMedicalChemist + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterDylovene + +# Dexalin +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterDexalin + category: JobsMedicalChemist + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterDexalin + +# LSD +- type: loadout + id: LoadoutMedicalRestrictedGearPillCanisterSpaceDrugs + category: JobsMedicalChemist + cost: 1 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - PillCanisterSpaceDrugs + +## Chemical Analysis Goggles +- type: loadout + id: LoadoutMedicalRestrictedGearEyesGlassesChemical + category: JobsMedicalChemist + cost: 4 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterJobRequirement + inverted: true + jobs: + - Chemist + items: + - ClothingEyesGlassesChemical + +### Medical Doctor +- type: loadout + id: LoadoutMedicalRestrictedGearBeltMedicalFilled + category: JobsMedicalMedicalDoctor + cost: 4 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterJobRequirement + inverted: true + jobs: + - MedicalDoctor + items: + - ClothingBeltMedicalFilled \ No newline at end of file diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/traitRestrictedGear.yml b/Resources/Prototypes/Loadouts/Jobs/Security/traitRestrictedGear.yml new file mode 100644 index 00000000000..22c2eab4860 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Security/traitRestrictedGear.yml @@ -0,0 +1,681 @@ +### All Security +## Holster +- type: loadout + id: LoadoutSecurityRestrictedGearBeltHolster + category: JobsSecurityAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - ClothingBeltHolster + +## Outer +- type: loadout + id: LoadoutSecurityRestrictedGearOuterArmorPlateCarrier + category: JobsSecurityAUncategorized + cost: 7 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityOuter + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - ClothingOuterArmorPlateCarrier + +- type: loadout + id: LoadoutSecurityRestrictedGearOuterArmorDuraVest + category: JobsSecurityAUncategorized + cost: 7 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityOuter + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - ClothingOuterArmorDuraVest + +- type: loadout + id: LoadoutSecurityRestrictedGearOuterArmorBasic + category: JobsSecurityAUncategorized + cost: 7 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityOuter + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - ClothingOuterArmorBasic + +- type: loadout + id: LoadoutSecurityRestrictedGearOuterArmorSlim + category: JobsSecurityAUncategorized + cost: 7 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityOuter + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - ClothingOuterArmorBasicSlim + + +## Equipment +# Flash +- type: loadout + id: LoadoutSecurityRestrictedGearFlash + category: JobsSecurityAUncategorized + cost: 2 + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityEquipment + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - Flash + +# .35 Magazine +- type: loadout + id: LoadoutSecurityRestrictedGearMagazinePistol + category: JobsSecurityAUncategorized + cost: 2 + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityEquipment + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - MagazinePistol + +# .35 Magazine Rubber +- type: loadout + id: LoadoutSecurityRestrictedGearMagazinePistolRubber + category: JobsSecurityAUncategorized + cost: 2 + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityEquipment + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - MagazinePistolRubber + +# .45 Speedloader +- type: loadout + id: LoadoutSecurityRestrictedGearSpeedLoaderMagnum + category: JobsSecurityAUncategorized + cost: 4 + exclusive: true + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityEquipment + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - SpeedLoaderMagnum + +# .45 Speedloader Rubber +- type: loadout + id: LoadoutSecurityRestrictedGearSpeedLoaderMagnumRubber + category: JobsSecurityAUncategorized + cost: 4 + exclusive: true + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityEquipment + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - SpeedLoaderMagnumRubber + +# .45 Magazine +- type: loadout + id: LoadoutSecurityRestrictedGearMagazineMagnum + category: JobsSecurityAUncategorized + cost: 4 + exclusive: true + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityEquipment + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - MagazineMagnum + +# .45 Magazine Rubber +- type: loadout + id: LoadoutSecurityRestrictedGearMagazineMagnumRubber + category: JobsSecurityAUncategorized + cost: 4 + exclusive: true + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityEquipment + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - MagazineMagnumRubber + +## Weapon +# the truncheon is not a gun, +# ignores the 'allowsfirearms' cvar in case an oni wants to specialise into blunt +# (like how swashbucklers can take salvager's blades) +- type: loadout + id: LoadoutSecurityRestrictedGearEquipmentTruncheon + category: JobsSecurityAUncategorized + cost: 4 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - !type:CharacterSpeciesRequirement + species: + - Oni + items: + - Truncheon + +## Guns +# Disabler +- type: loadout + id: LoadoutSecurityRestrictedGearDisabler + category: JobsSecurityAUncategorized + cost: 4 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponDisabler + +# MK58 +- type: loadout + id: LoadoutSecurityRestrictedGearMk58 + category: JobsSecurityAUncategorized + cost: 4 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponPistolMk58 + +# Inspector +- type: loadout + id: LoadoutSecurityRestrictedGearRevolver + category: JobsSecurityAUncategorized + cost: 4 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponRevolverInspector + +# Deckard +- type: loadout + id: LoadoutSecurityRestrictedGearRevolverDeckard + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponRevolverDeckard + +# N1984 +- type: loadout + id: LoadoutSecurityRestrictedGearPistolN1984 + category: JobsSecurityAUncategorized + cost: 6 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponPistolN1984 + +# Viper +- type: loadout + id: LoadoutSecurityRestrictedGearPistolViper + category: JobsSecurityAUncategorized + cost: 4 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponPistolViper + +# Viper Wood +- type: loadout + id: LoadoutSecurityRestrictedGearPistolViperWood + category: JobsSecurityAUncategorized + cost: 4 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 108000 # 30 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponPistolViperWood + +# Svalin +- type: loadout + id: LoadoutSecurityRestrictedGearPistolSvalin + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponLaserSvalinn + +# Miniature Energy Gun +- type: loadout + id: LoadoutSecurityRestrictedGearEnergyGunMini + category: JobsSecurityAUncategorized + cost: 4 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponEnergyGunMini + +# Energy Pistol +- type: loadout + id: LoadoutSecurityRestrictedGearEnergyGunPistol + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponEnergyGunPistol + +# Pollock +- type: loadout + id: LoadoutSecurityRestrictedGearPistolPollock + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponPistolPollock + +# Snub-nose +- type: loadout + id: LoadoutSecurityRestrictedGearRevolverSnub + category: JobsSecurityAUncategorized + cost: 6 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponRevolverSnub + +# K38 +- type: loadout + id: LoadoutSecurityRestrictedGearRevolverK38Master + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponRevolverK38Master + +# Fitz +- type: loadout + id: LoadoutSecurityRestrictedGearRevolverFitz + category: JobsSecurityAUncategorized + cost: 7 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponRevolverFitz + +# Python +- type: loadout + id: LoadoutSecurityRestrictedGearRevolverPython + category: JobsSecurityAUncategorized + cost: 9 + canBeHeirloom: true + guideEntry: SecurityWeapons + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_allowsfirearms + requiredValue: true + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + items: + - WeaponRevolverPython diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/traitRestrictedGear.yml b/Resources/Prototypes/Loadouts/Jobs/Service/traitRestrictedGear.yml new file mode 100644 index 00000000000..88d8c72bdbc --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/traitRestrictedGear.yml @@ -0,0 +1,90 @@ +### Bartender +## Equipment +- type: loadout + id: LoadoutServiceRestrictedGearBartenderBoxBeanbags + category: JobsServiceBartender + cost: 4 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderAmmo + - !type:CharacterJobRequirement + inverted: true + jobs: + - Bartender + items: + - BoxBeanbag + +- type: loadout + id: LoadoutServiceRestrictedGearBoxLightRifleRubber + category: JobsServiceBartender + cost: 4 + exclusive: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderAmmo + - !type:CharacterJobRequirement + inverted: true + jobs: + - Bartender + items: + - MagazineBoxLightRifleRubber + +- type: loadout + id: LoadoutServiceRestrictedGearBartenderShotgunDoubleBarreledRubber + category: JobsServiceBartender + cost: 6 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderWeapon + - !type:CharacterJobRequirement + inverted: true + jobs: + - Bartender + items: + - WeaponShotgunDoubleBarreledRubber + +- type: loadout + id: LoadoutServiceRestrictedGearBartenderShotgunDoubleBarreledSawed + category: JobsServiceBartender + cost: 7 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderWeapon + items: + - WeaponShotgunSawn + +- type: loadout + id: LoadoutServiceRestrictedGearBartenderMosinRubber + category: JobsServiceBartender + cost: 6 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterTraitRequirement + traits: + - RestrictedGear + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderWeapon + - !type:CharacterJobRequirement + inverted: true + jobs: + - Bartender + items: + - WeaponSniperMosinRubber \ No newline at end of file diff --git a/Resources/Prototypes/Traits/physical.yml b/Resources/Prototypes/Traits/physical.yml index d8139800e1f..f2447390064 100644 --- a/Resources/Prototypes/Traits/physical.yml +++ b/Resources/Prototypes/Traits/physical.yml @@ -670,6 +670,19 @@ - Inorganic - Silicon +- type: trait + id: RestrictedGear + category: Physical + points: -10 + requirements: + - !type:CVarRequirement + cvar: trait.restrictedgear_enabled + requiredValue: true + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Smuggling for prisoners = immediate jailbreak. + - type: trait id: Redshirt category: Physical