using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems; using Content.Shared.Chemistry.Reagent; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; /// /// Generates foam from the artifact when activated /// [RegisterComponent, Access(typeof(FoamArtifactSystem))] public sealed partial class FoamArtifactComponent : Component { /// /// The list of reagents that will randomly be picked from /// to choose the foam reagent /// [DataField("reagents", required: true, customTypeSerializer: typeof(PrototypeIdListSerializer))] public List Reagents = new(); /// /// The foam reagent /// [DataField("selectedReagent"), ViewVariables(VVAccess.ReadWrite)] public string? SelectedReagent; /// /// How long does the foam last? /// [DataField("duration"), ViewVariables(VVAccess.ReadWrite)] public float Duration = 10; /// /// How much reagent is in the foam? /// [DataField("reagentAmount"), ViewVariables(VVAccess.ReadWrite)] public float ReagentAmount = 100; /// /// Minimum radius of foam spawned /// [DataField("minFoamAmount"), ViewVariables(VVAccess.ReadWrite)] public int MinFoamAmount = 15; /// /// Maximum radius of foam spawned /// [DataField("maxFoamAmount"), ViewVariables(VVAccess.ReadWrite)] public int MaxFoamAmount = 20; }