using Content.Shared.Atmos; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; /// /// Spawn a random gas with random temperature when artifact activated. /// [RegisterComponent] public sealed partial class GasArtifactComponent : Component { /// /// Gas that will be spawned when artifact activated. /// If null it will be picked on startup from . /// [ViewVariables(VVAccess.ReadWrite)] [DataField("spawnGas")] public Gas? SpawnGas; /// /// List of possible activation gases to pick on startup. /// [DataField("possibleGas")] public List PossibleGases = new() { Gas.Oxygen, Gas.Plasma, Gas.Nitrogen, Gas.CarbonDioxide, Gas.Tritium, Gas.Ammonia, Gas.NitrousOxide, Gas.Frezon }; /// /// Temperature of spawned gas. If null it will be picked on startup from range from /// to . /// [ViewVariables(VVAccess.ReadWrite)] [DataField("spawnTemperature")] public float? SpawnTemperature; [DataField("minRandomTemp")] public float MinRandomTemperature = 100; [DataField("maxRandomTemp")] public float MaxRandomTemperature = 400; /// /// Max allowed external atmospheric pressure. /// Artifact will stop spawn gas. /// [ViewVariables(VVAccess.ReadWrite)] [DataField("maxExternalPressure")] public float MaxExternalPressure = Atmospherics.GasMinerDefaultMaxExternalPressure; /// /// Moles of gas to spawn each time when artifact activated. /// [ViewVariables(VVAccess.ReadWrite)] [DataField("spawnAmount")] public float SpawnAmount = Atmospherics.MolesCellStandard * 3; }