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