Add space glue (#16355)
This commit is contained in:
@@ -3,8 +3,8 @@ using Content.Shared.Chemistry.Components;
|
|||||||
using Content.Shared.Chemistry.Reaction;
|
using Content.Shared.Chemistry.Reaction;
|
||||||
using Content.Shared.Chemistry.Reagent;
|
using Content.Shared.Chemistry.Reagent;
|
||||||
using Content.Shared.FixedPoint;
|
using Content.Shared.FixedPoint;
|
||||||
|
using Content.Shared.Movement.Components;
|
||||||
using Content.Shared.Slippery;
|
using Content.Shared.Slippery;
|
||||||
using Content.Shared.StepTrigger;
|
|
||||||
using Content.Shared.StepTrigger.Components;
|
using Content.Shared.StepTrigger.Components;
|
||||||
using Content.Shared.StepTrigger.Systems;
|
using Content.Shared.StepTrigger.Systems;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
@@ -37,6 +37,12 @@ namespace Content.Server.Chemistry.TileReactions
|
|||||||
var step = entityManager.EnsureComponent<StepTriggerComponent>(puddleUid);
|
var step = entityManager.EnsureComponent<StepTriggerComponent>(puddleUid);
|
||||||
entityManager.EntitySysManager.GetEntitySystem<StepTriggerSystem>().SetRequiredTriggerSpeed(puddleUid, _requiredSlipSpeed, step);
|
entityManager.EntitySysManager.GetEntitySystem<StepTriggerSystem>().SetRequiredTriggerSpeed(puddleUid, _requiredSlipSpeed, step);
|
||||||
|
|
||||||
|
var slow = entityManager.EnsureComponent<SlowContactsComponent>(puddleUid);
|
||||||
|
var speedModifier = 1 - reagent.Viscosity;
|
||||||
|
slow.WalkSpeedModifier = speedModifier;
|
||||||
|
slow.SprintSpeedModifier = speedModifier;
|
||||||
|
entityManager.Dirty(slow);
|
||||||
|
|
||||||
return reactVolume;
|
return reactVolume;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public sealed class VentClogRuleComponent : Component
|
|||||||
[DataField("safeishVentChemicals", customTypeSerializer: typeof(PrototypeIdListSerializer<ReagentPrototype>))]
|
[DataField("safeishVentChemicals", customTypeSerializer: typeof(PrototypeIdListSerializer<ReagentPrototype>))]
|
||||||
public readonly IReadOnlyList<string> SafeishVentChemicals = new[]
|
public readonly IReadOnlyList<string> 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"
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -80,6 +80,13 @@ namespace Content.Shared.Chemistry.Reagent
|
|||||||
[DataField("slippery")]
|
[DataField("slippery")]
|
||||||
public bool Slippery = false;
|
public bool Slippery = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How much reagent slows entities down if it's part of a puddle.
|
||||||
|
/// 0 - no slowdown; 1 - can't move.
|
||||||
|
/// </summary>
|
||||||
|
[DataField("viscosity")]
|
||||||
|
public float Viscosity = 0;
|
||||||
|
|
||||||
[DataField("metabolisms", serverOnly: true, customTypeSerializer: typeof(PrototypeIdDictionarySerializer<ReagentEffectsEntry, MetabolismGroupPrototype>))]
|
[DataField("metabolisms", serverOnly: true, customTypeSerializer: typeof(PrototypeIdDictionarySerializer<ReagentEffectsEntry, MetabolismGroupPrototype>))]
|
||||||
public Dictionary<string, ReagentEffectsEntry>? Metabolisms = null;
|
public Dictionary<string, ReagentEffectsEntry>? Metabolisms = null;
|
||||||
|
|
||||||
|
|||||||
@@ -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-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-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).
|
||||||
|
|||||||
@@ -48,3 +48,31 @@
|
|||||||
paralyzeTime: 3
|
paralyzeTime: 3
|
||||||
launchForwardsMultiplier: 2
|
launchForwardsMultiplier: 2
|
||||||
requiredSlipSpeed: 1
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user