diff --git a/Content.Server/Chemistry/TileReactions/SpillTileReaction.cs b/Content.Server/Chemistry/TileReactions/SpillTileReaction.cs index e04ea30cb6..78457386d5 100644 --- a/Content.Server/Chemistry/TileReactions/SpillTileReaction.cs +++ b/Content.Server/Chemistry/TileReactions/SpillTileReaction.cs @@ -3,8 +3,8 @@ using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Reaction; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; +using Content.Shared.Movement.Components; using Content.Shared.Slippery; -using Content.Shared.StepTrigger; using Content.Shared.StepTrigger.Components; using Content.Shared.StepTrigger.Systems; using JetBrains.Annotations; @@ -37,6 +37,12 @@ namespace Content.Server.Chemistry.TileReactions var step = entityManager.EnsureComponent(puddleUid); entityManager.EntitySysManager.GetEntitySystem().SetRequiredTriggerSpeed(puddleUid, _requiredSlipSpeed, step); + var slow = entityManager.EnsureComponent(puddleUid); + var speedModifier = 1 - reagent.Viscosity; + slow.WalkSpeedModifier = speedModifier; + slow.SprintSpeedModifier = speedModifier; + entityManager.Dirty(slow); + return reactVolume; } diff --git a/Content.Server/StationEvents/Components/VentClogRuleComponent.cs b/Content.Server/StationEvents/Components/VentClogRuleComponent.cs index b18687f9ed..eb016a5a83 100644 --- a/Content.Server/StationEvents/Components/VentClogRuleComponent.cs +++ b/Content.Server/StationEvents/Components/VentClogRuleComponent.cs @@ -15,7 +15,7 @@ public sealed class VentClogRuleComponent : Component [DataField("safeishVentChemicals", customTypeSerializer: typeof(PrototypeIdListSerializer))] public readonly IReadOnlyList SafeishVentChemicals = new[] { - "Water", "Blood", "Slime", "SpaceDrugs", "SpaceCleaner", "Nutriment", "Sugar", "SpaceLube", "Ephedrine", "Ale", "Beer" + "Water", "Blood", "Slime", "SpaceDrugs", "SpaceCleaner", "Nutriment", "Sugar", "SpaceLube", "Ephedrine", "Ale", "Beer", "SpaceGlue" }; /// diff --git a/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs b/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs index 09bdb41bef..25e56608c2 100644 --- a/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs +++ b/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs @@ -80,6 +80,13 @@ namespace Content.Shared.Chemistry.Reagent [DataField("slippery")] public bool Slippery = false; + /// + /// How much reagent slows entities down if it's part of a puddle. + /// 0 - no slowdown; 1 - can't move. + /// + [DataField("viscosity")] + public float Viscosity = 0; + [DataField("metabolisms", serverOnly: true, customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] public Dictionary? Metabolisms = null; diff --git a/Resources/Locale/en-US/reagents/meta/cleaning.ftl b/Resources/Locale/en-US/reagents/meta/cleaning.ftl index 8e14fe64a6..4c1ec87ddd 100644 --- a/Resources/Locale/en-US/reagents/meta/cleaning.ftl +++ b/Resources/Locale/en-US/reagents/meta/cleaning.ftl @@ -6,3 +6,6 @@ reagent-desc-space-cleaner = This is able to clean almost all surfaces of almost reagent-name-space-lube = space lube reagent-desc-space-lube = Space Lube is a high performance lubricant intended for maintenance of extremely complex mechanical equipment (and certainly not used to make people slip). + +reagent-name-space-glue = space glue +reagent-desc-space-glue = Space Glue is a high performance glue intended for maintenance of extremely complex mechanical equipment (and certainly not used to make people stick to the floor). diff --git a/Resources/Prototypes/Reagents/cleaning.yml b/Resources/Prototypes/Reagents/cleaning.yml index a7f01b5c1a..19e1346da3 100644 --- a/Resources/Prototypes/Reagents/cleaning.yml +++ b/Resources/Prototypes/Reagents/cleaning.yml @@ -48,3 +48,31 @@ paralyzeTime: 3 launchForwardsMultiplier: 2 requiredSlipSpeed: 1 + +- type: reagent + id: SpaceGlue + name: reagent-name-space-glue + desc: reagent-desc-space-glue + physicalDesc: reagent-physical-desc-sticky + flavor: funny + color: "#ffffff" + boilingPoint: 250.0 + meltingPoint: 380.0 + viscosity: 0.5 + tileReactions: + - !type:SpillTileReaction + metabolisms: + Narcotic: + effects: + - !type:GenericStatusEffect + key: SeeingRainbows + component: SeeingRainbows + type: Add + time: 5 + refresh: false + - !type:GenericStatusEffect + key: Muted + component: Muted + type: Add + time: 5 + refresh: false