Species info in Guidebook and at chargen (#25844)
* guidebook pages defined * species info button in character profile editor * if current species has no guidebook page then open the parent page * skrek * destroying evidence of secret vox plot * icon size adjustment, no icon if guidebook page for species does not exist * finished pages * additional info * weh
This commit is contained in:
@@ -15,7 +15,7 @@ public sealed partial class SpeciesPrototype : IPrototype
|
||||
/// <summary>
|
||||
/// User visible name of the species.
|
||||
/// </summary>
|
||||
[DataField("name", required: true)]
|
||||
[DataField(required: true)]
|
||||
public string Name { get; private set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
@@ -23,13 +23,13 @@ public sealed partial class SpeciesPrototype : IPrototype
|
||||
/// for an eventual integration into IdentitySystem
|
||||
/// (i.e., young human person, young lizard person, etc.)
|
||||
/// </summary>
|
||||
[DataField("descriptor")]
|
||||
[DataField]
|
||||
public string Descriptor { get; private set; } = "humanoid";
|
||||
|
||||
/// <summary>
|
||||
/// Whether the species is available "at round start" (In the character editor)
|
||||
/// </summary>
|
||||
[DataField("roundStart", required: true)]
|
||||
[DataField(required: true)]
|
||||
public bool RoundStart { get; private set; } = false;
|
||||
|
||||
// The below two are to avoid fetching information about the species from the entity
|
||||
@@ -47,14 +47,14 @@ public sealed partial class SpeciesPrototype : IPrototype
|
||||
/// <summary>
|
||||
/// Default skin tone for this species. This applies for non-human skin tones.
|
||||
/// </summary>
|
||||
[DataField("defaultSkinTone")]
|
||||
[DataField]
|
||||
public Color DefaultSkinTone { get; private set; } = Color.White;
|
||||
|
||||
/// <summary>
|
||||
/// Default human skin tone for this species. This applies for human skin tones.
|
||||
/// See <see cref="SkinColor.HumanSkinTone"/> for the valid range of skin tones.
|
||||
/// </summary>
|
||||
[DataField("defaultHumanSkinTone")]
|
||||
[DataField]
|
||||
public int DefaultHumanSkinTone { get; private set; } = 20;
|
||||
|
||||
/// <summary>
|
||||
@@ -66,60 +66,66 @@ public sealed partial class SpeciesPrototype : IPrototype
|
||||
/// <summary>
|
||||
/// Humanoid species variant used by this entity.
|
||||
/// </summary>
|
||||
[DataField("prototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
[DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string Prototype { get; private set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Prototype used by the species for the dress-up doll in various menus.
|
||||
/// </summary>
|
||||
[DataField("dollPrototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
[DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string DollPrototype { get; private set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Method of skin coloration used by the species.
|
||||
/// </summary>
|
||||
[DataField("skinColoration", required: true)]
|
||||
[DataField(required: true)]
|
||||
public HumanoidSkinColor SkinColoration { get; private set; }
|
||||
|
||||
[DataField("maleFirstNames")]
|
||||
[DataField]
|
||||
public string MaleFirstNames { get; private set; } = "names_first_male";
|
||||
|
||||
[DataField("femaleFirstNames")]
|
||||
[DataField]
|
||||
public string FemaleFirstNames { get; private set; } = "names_first_female";
|
||||
|
||||
[DataField("lastNames")]
|
||||
[DataField]
|
||||
public string LastNames { get; private set; } = "names_last";
|
||||
|
||||
[DataField("naming")]
|
||||
[DataField]
|
||||
public SpeciesNaming Naming { get; private set; } = SpeciesNaming.FirstLast;
|
||||
|
||||
[DataField("sexes")]
|
||||
[DataField]
|
||||
public List<Sex> Sexes { get; private set; } = new() { Sex.Male, Sex.Female };
|
||||
|
||||
/// <summary>
|
||||
/// Characters younger than this are too young to be hired by Nanotrasen.
|
||||
/// </summary>
|
||||
[DataField("minAge")]
|
||||
[DataField]
|
||||
public int MinAge = 18;
|
||||
|
||||
/// <summary>
|
||||
/// Characters younger than this appear young.
|
||||
/// </summary>
|
||||
[DataField("youngAge")]
|
||||
[DataField]
|
||||
public int YoungAge = 30;
|
||||
|
||||
/// <summary>
|
||||
/// Characters older than this appear old. Characters in between young and old age appear middle aged.
|
||||
/// </summary>
|
||||
[DataField("oldAge")]
|
||||
[DataField]
|
||||
public int OldAge = 60;
|
||||
|
||||
/// <summary>
|
||||
/// Characters cannot be older than this. Only used for restrictions...
|
||||
/// although imagine if ghosts could age people WYCI...
|
||||
/// </summary>
|
||||
[DataField("maxAge")]
|
||||
[DataField]
|
||||
public int MaxAge = 120;
|
||||
|
||||
/// <summary>
|
||||
/// The Style used for the guidebook info link in the character profile editor
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string GuideBookIcon = "SpeciesInfoDefault";
|
||||
}
|
||||
|
||||
public enum SpeciesNaming : byte
|
||||
|
||||
Reference in New Issue
Block a user