1
0

SalvageAirMod.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Content.Shared.Atmos;
  2. using Robust.Shared.Prototypes;
  3. using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
  4. namespace Content.Shared.Salvage.Expeditions.Modifiers;
  5. /// <summary>
  6. /// Prototype for a planet's air gas mixture.
  7. /// Used when creating the planet for a salvage expedition.
  8. /// Which one is selected depends on the mission difficulty, different weightedRandoms are picked from.
  9. /// </summary>
  10. [Prototype("salvageAirMod")]
  11. public sealed partial class SalvageAirMod : IPrototype, IBiomeSpecificMod
  12. {
  13. [IdDataField]
  14. public string ID { get; private set; } = default!;
  15. /// <inheritdoc/>
  16. [DataField("desc")]
  17. public LocId Description { get; private set; } = string.Empty;
  18. /// <inheritdoc/>
  19. [DataField("cost")]
  20. public float Cost { get; private set; } = 0f;
  21. /// <inheritdoc/>
  22. [DataField("biomes", customTypeSerializer: typeof(PrototypeIdListSerializer<SalvageBiomeModPrototype>))]
  23. public List<string>? Biomes { get; private set; } = null;
  24. /// <summary>
  25. /// Set to true if this planet will have no atmosphere.
  26. /// </summary>
  27. [DataField("space")]
  28. public bool Space;
  29. /// <summary>
  30. /// Number of moles of each gas in the mixture.
  31. /// </summary>
  32. [DataField("gases")]
  33. public float[] Gases = new float[Atmospherics.AdjustedNumberOfGases];
  34. }