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;
}