using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Shared.Species;
[Prototype("species")]
public sealed class SpeciesPrototype : IPrototype
{
///
/// Prototype ID of the species.
///
[IdDataFieldAttribute]
public string ID { get; } = default!;
///
/// User visible name of the species.
///
[DataField("name", required: true)]
public string Name { get; } = default!;
///
/// Whether the species is available "at round start" (In the character editor)
///
[DataField("roundStart", required: true)]
public bool RoundStart { get; } = false;
///
/// Prototype used by the species as a body.
///
[DataField("prototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))]
public string Prototype { get; } = default!;
///
/// Prototype used by the species for the dress-up doll in various menus.
///
[DataField("dollPrototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))]
public string DollPrototype { get; } = default!;
///
/// Method of skin coloration used by the species.
///
[DataField("skinColoration", required: true)]
public SpeciesSkinColor SkinColoration { get; }
[DataField("maleFirstNames")]
public string MaleFirstNames { get; } = "names_first_male";
[DataField("femaleFirstNames")]
public string FemaleFirstNames { get; } = "names_first_female";
[DataField("lastNames")]
public string LastNames { get; } = "names_last";
[DataField("naming")]
public SpeciesNaming Naming { get; } = SpeciesNaming.FirstLast;
}
public enum SpeciesSkinColor : byte
{
HumanToned,
Hues,
TintedHues, //This gives a color tint to a humanoid's skin (10% saturation with full hue range).
}
public enum SpeciesNaming : byte
{
FirstLast,
FirstDashFirst,
}