Files
OldThink/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/GasArtifactComponent.cs
Kara 7a553781cc Frezon (#9980)
* stuff i'll have to fix anyway when n2o gets merged

* everything except the finished reactions

* freon coolant reaction but with bad curve

* miasmic subsumation

* freon production

* nitrogen and diff temp scaling

* uhh meant to change that

* #

* hitting that frezon boof
2022-07-27 04:55:28 -05:00

64 lines
1.9 KiB
C#

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