diff --git a/Content.Server/Chemistry/ReagentEffects/HealthChange.cs b/Content.Server/Chemistry/ReagentEffects/HealthChange.cs index 24880cfd37..6ca7c8cc44 100644 --- a/Content.Server/Chemistry/ReagentEffects/HealthChange.cs +++ b/Content.Server/Chemistry/ReagentEffects/HealthChange.cs @@ -2,7 +2,9 @@ using Content.Shared.Chemistry.Reagent; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; +using Content.Shared.Inventory; using Content.Shared.Localizations; +using Content.Shared.Tag; using JetBrains.Annotations; using Robust.Shared.Prototypes; using System.Linq; @@ -35,6 +37,14 @@ namespace Content.Server.Chemistry.ReagentEffects [JsonPropertyName("ignoreResistances")] public bool IgnoreResistances = true; + /// + /// WD. + /// Whether this will work through hardsuits or not. + /// + [DataField] + [JsonPropertyName("pierceHardsuit")] + public bool PierceHardsuit = true; + protected override string ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) { var damages = new List(); @@ -112,6 +122,11 @@ namespace Content.Server.Chemistry.ReagentEffects public override void Effect(ReagentEffectArgs args) { + if (!PierceHardsuit && + args.EntityManager.System().TryGetSlotEntity(args.SolutionEntity, "outerClothing", out var suit) && + args.EntityManager.System().HasTag(suit.Value, "Hardsuit")) + return; // WD + var scale = ScaleByQuantity ? args.Quantity : FixedPoint2.New(1); scale *= args.Scale; diff --git a/Resources/Locale/ru-RU/reagents/meta/medicine.ftl b/Resources/Locale/ru-RU/reagents/meta/medicine.ftl index be9cfc81a0..012dba5f0b 100644 --- a/Resources/Locale/ru-RU/reagents/meta/medicine.ftl +++ b/Resources/Locale/ru-RU/reagents/meta/medicine.ftl @@ -151,5 +151,5 @@ reagent-desc-psicodine = Подавляет тревогу и прочие фо reagent-name-potassium-iodide = йодистый калий reagent-desc-potassium-iodide = Снижает поражающее действие от радиации на 90%. Только профилактическое применение. -reagent-name-haloperidol = галоперидол -reagent-desc-haloperidol = Выводит из организма большую часть стимулирующих или галлюцигенных химикатов. Вызывает сонливость. \ No newline at end of file +reagent-name-haloperidol = галоперидол +reagent-desc-haloperidol = Выводит из организма большую часть стимулирующих или галлюцигенных химикатов. Вызывает сонливость. diff --git a/Resources/Prototypes/Reagents/medicine.yml b/Resources/Prototypes/Reagents/medicine.yml index 3dc8509c6e..11299d4d6c 100644 --- a/Resources/Prototypes/Reagents/medicine.yml +++ b/Resources/Prototypes/Reagents/medicine.yml @@ -1162,7 +1162,7 @@ conditions: - !type:ReagentThreshold min: 12 - + - type: reagent id: Opporozidone #Name based of an altered version of the startreck chem "Opporozine" name: reagent-name-opporozidone @@ -1249,6 +1249,7 @@ effects: - !type:HealthChange scaleByQuantity: true + pierceHardsuit: false damage: groups: Brute: -1.25 @@ -1280,6 +1281,7 @@ effects: - !type:HealthChange scaleByQuantity: true + pierceHardsuit: false damage: types: Heat: -2 @@ -1307,6 +1309,7 @@ effects: - !type:HealthChange scaleByQuantity: true + pierceHardsuit: false damage: groups: Brute: -2