Liquid anomaly (#20626)

Co-authored-by: Kara <lunarautomaton6@gmail.com>
This commit is contained in:
Ed
2023-10-07 03:26:34 +03:00
committed by GitHub
parent 15fee3f944
commit b5e8c57978
17 changed files with 847 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
using Content.Server.Anomaly.Effects;
using Robust.Shared.Prototypes;
namespace Content.Server.Anomaly.Components;
/// <summary>
/// This component allows the anomaly to inject liquid from the SolutionContainer
/// into the surrounding entities with the InjectionSolution component
/// </summary>
[RegisterComponent, Access(typeof(InjectionAnomalySystem))]
public sealed partial class InjectionAnomalyComponent : Component
{
/// <summary>
/// the maximum amount of injection of a substance into an entity per pulsation
/// scales with Severity
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float MaxSolutionInjection = 15;
/// <summary>
/// the maximum amount of injection of a substance into an entity in the supercritical phase
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float SuperCriticalSolutionInjection = 50;
/// <summary>
/// The maximum radius in which the anomaly injects reagents into the surrounding containers.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float InjectRadius = 3;
/// <summary>
/// The maximum radius in which the anomaly injects reagents into the surrounding containers.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float SuperCriticalInjectRadius = 15;
/// <summary>
/// The name of the prototype of the special effect that appears above the entities into which the injection was carried out
/// </summary>
[DataField, ViewVariables(VVAccess.ReadOnly)]
public EntProtoId VisualEffectPrototype = "PuddleSparkle";
/// <summary>
/// Solution name that can be drained.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public string Solution { get; set; } = "default";
}