expedition air mod (#17369)

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2023-06-16 05:25:25 +00:00
committed by GitHub
parent f0896685ff
commit 41fae6e9cd
6 changed files with 181 additions and 11 deletions

View File

@@ -0,0 +1,43 @@
using Content.Shared.Atmos;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
namespace Content.Shared.Salvage.Expeditions.Modifiers;
/// <summary>
/// Prototype for a planet's air gas mixture.
/// Used when creating the planet for a salvage expedition.
/// Which one is selected depends on the mission difficulty, different weightedRandoms are picked from.
/// </summary>
[Prototype("salvageAirMod")]
public sealed class SalvageAirMod : IPrototype, ISalvageMod
{
[IdDataField]
public string ID { get; } = default!;
/// <inheritdoc/>
[DataField("desc")]
public string Description { get; } = string.Empty;
/// <inheritdoc/>
[DataField("cost")]
public float Cost { get; } = 0f;
/// <summary>
/// Set to true if this planet will have no atmosphere.
/// </summary>
[DataField("space")]
public bool Space;
/// <summary>
/// Number of moles of each gas in the mixture.
/// </summary>
[DataField("gases")]
public float[] Gases = new float[Atmospherics.AdjustedNumberOfGases];
/// <summary>
/// Biomes this air mixture is allowed to occur in.
/// </summary>
[DataField("biomes", customTypeSerializer: typeof(PrototypeIdListSerializer<SalvageBiomeMod>))]
public List<string>? Biomes;
}