From ee276f7bd27afc7c254c2d2fb734302dd2eed518 Mon Sep 17 00:00:00 2001 From: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> Date: Fri, 22 Mar 2024 19:09:54 -0700 Subject: [PATCH] Species Information in Guidebooks and Shortcut in Character Editor (#7) # Description Wouldn't it be great if we had Species info in the Guidebook? Wouldn't it be even better if this was available in the character editor? Now there will be an info button next to the species selection dropdown, complete with hover tooltip. Pressing the button opens the relevant Guidebook page and also loads the other species pages, so the player can click check them all without having to change species in the character editor. ---

Media

![1](https://private-user-images.githubusercontent.com/35878406/310249378-5ef5a892-2290-445e-b347-7d81265a261d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTA3MDI4MzMsIm5iZiI6MTcxMDcwMjUzMywicGF0aCI6Ii8zNTg3ODQwNi8zMTAyNDkzNzgtNWVmNWE4OTItMjI5MC00NDVlLWIzNDctN2Q4MTI2NWEyNjFkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAzMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMzE3VDE5MDg1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk3NDdhMDZjMzU2YjI0YWVmZjc3MjEwMmI4ODJiOGUzZTljNmU5ZGE1ODIxYjZkNjFkYjgxNDU5ZGY2ZTdhZGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.A05R1DRjL1uDD3-XL0ztRR2zG2MDCHNoW5Pjs8nmW1w) ![2](https://private-user-images.githubusercontent.com/35878406/309905910-90953fbc-d264-4908-ad20-ace690a296c0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTA3MDI4MzMsIm5iZiI6MTcxMDcwMjUzMywicGF0aCI6Ii8zNTg3ODQwNi8zMDk5MDU5MTAtOTA5NTNmYmMtZDI2NC00OTA4LWFkMjAtYWNlNjkwYTI5NmMwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAzMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMzE3VDE5MDg1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQxY2Y2NGYwZTdhZmQ0NWRhOWFiOWMwMDc0YTVmOGJjNzU0N2ZkMGM5NzY4NTZkNzJiYzk1ZjViNTc4ODYzNDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.t1gTj4gzm6Kon5N2Dlg-H4uOwIrDMSre3gnKhM4qU7A) ![3](https://private-user-images.githubusercontent.com/35878406/309905952-b52e9c05-141c-4078-9ec6-d34318c5d35b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTA3MDI4MzMsIm5iZiI6MTcxMDcwMjUzMywicGF0aCI6Ii8zNTg3ODQwNi8zMDk5MDU5NTItYjUyZTljMDUtMTQxYy00MDc4LTllYzYtZDM0MzE4YzVkMzViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAzMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMzE3VDE5MDg1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmNGZlMGU1Y2Q4Mjc3YWEyNjIxNjQ1YTg4MzQ3MzVhZTg3YTkzMjBmZDE1NzcwM2NlYjc1MTAyNWI3OGJlNTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.XkaMdUDpi2uZxRqb4NtVf9JX45yE1sn2xRrsEELCDA8)

# Changelog :cl: Errant - add: Added guidebooks for species - add: Species in the character editor have a shortcut to their guidebook entry Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com> --- .../Preferences/UI/HumanoidProfileEditor.xaml | 1 + .../UI/HumanoidProfileEditor.xaml.cs | 44 +++++++++++++++++ Content.Client/Stylesheets/StyleNano.cs | 8 ++++ .../Humanoid/Prototypes/SpeciesPrototype.cs | 40 +++++++++------- Resources/Locale/en-US/guidebook/guides.ftl | 1 + .../ui/humanoid-profile-editor.ftl | 1 + Resources/Prototypes/Guidebook/species.yml | 47 +++++++++++++++++++ Resources/Prototypes/Guidebook/ss14.yml | 1 + .../ServerInfo/Guidebook/Mobs/Arachnid.xml | 25 ++++++++++ Resources/ServerInfo/Guidebook/Mobs/Diona.xml | 38 +++++++++++++++ Resources/ServerInfo/Guidebook/Mobs/Dwarf.xml | 11 +++++ Resources/ServerInfo/Guidebook/Mobs/Human.xml | 11 +++++ Resources/ServerInfo/Guidebook/Mobs/Moth.xml | 15 ++++++ .../ServerInfo/Guidebook/Mobs/Reptilian.xml | 16 +++++++ .../ServerInfo/Guidebook/Mobs/SlimePerson.xml | 19 ++++++++ .../ServerInfo/Guidebook/Mobs/Species.xml | 18 +++++++ 16 files changed, 279 insertions(+), 17 deletions(-) create mode 100644 Resources/Prototypes/Guidebook/species.yml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Arachnid.xml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Diona.xml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Dwarf.xml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Human.xml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Moth.xml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Species.xml diff --git a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml index eb553de8e1..d0dd02a58a 100644 --- a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml +++ b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml @@ -58,6 +58,7 @@ diff --git a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs index fe18b2d10c..3e2e379328 100644 --- a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs +++ b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs @@ -1,11 +1,13 @@ using System.Linq; using System.Numerics; +using Content.Client.Guidebook; using Content.Client.Humanoid; using Content.Client.Lobby.UI; using Content.Client.Message; using Content.Client.Players.PlayTimeTracking; using Content.Client.Stylesheets; using Content.Client.UserInterface.Controls; +using Content.Client.UserInterface.Systems.Guidebook; using Content.Shared.CCVar; using Content.Shared.GameTicking; using Content.Shared.Humanoid; @@ -116,6 +118,8 @@ public HumanoidProfileEditor(IClientPreferencesManager preferencesManager, IProt _configurationManager = configurationManager; _markingManager = IoCManager.Resolve(); + SpeciesInfoButton.ToolTip = Loc.GetString("humanoid-profile-editor-guidebook-button-tooltip"); + #region Left #region Randomize @@ -523,10 +527,30 @@ public HumanoidProfileEditor(IClientPreferencesManager preferencesManager, IProt preferencesManager.OnServerDataLoaded += LoadServerData; + SpeciesInfoButton.OnPressed += OnSpeciesInfoButtonPressed; + + UpdateSpeciesGuidebookIcon(); IsDirty = false; } + private void OnSpeciesInfoButtonPressed(BaseButton.ButtonEventArgs args) + { + var guidebookController = UserInterfaceManager.GetUIController(); + var species = Profile?.Species ?? SharedHumanoidAppearanceSystem.DefaultSpecies; + var page = "Species"; + if (_prototypeManager.HasIndex(species)) + page = species; + + if (_prototypeManager.TryIndex("Species", out var guideRoot)) + { + var dict = new Dictionary(); + dict.Add("Species", guideRoot); + //TODO: Don't close the guidebook if its already open, just go to the correct page + guidebookController.ToggleGuidebook(dict, includeChildren:true, selected: page); + } + } + private void ToggleClothes(BaseButton.ButtonEventArgs obj) { RebuildSpriteView(); @@ -822,6 +846,7 @@ private void SetSpecies(string newSpecies) CMarkings.SetSpecies(newSpecies); // Repopulate the markings tab as well. UpdateSexControls(); // update sex for new species RebuildSpriteView(); // they might have different inv so we need a new dummy + UpdateSpeciesGuidebookIcon(); IsDirty = true; _needUpdatePreview = true; } @@ -973,6 +998,25 @@ private void UpdateSkinColor() } + public void UpdateSpeciesGuidebookIcon() + { + SpeciesInfoButton.StyleClasses.Clear(); + + var species = Profile?.Species; + if (species is null) + return; + + if (!_prototypeManager.TryIndex(species, out var speciesProto)) + return; + + // Don't display the info button if no guide entry is found + if (!_prototypeManager.HasIndex(species)) + return; + + var style = speciesProto.GuideBookIcon; + SpeciesInfoButton.StyleClasses.Add(style); + } + private void UpdateMarkings() { if (Profile == null) diff --git a/Content.Client/Stylesheets/StyleNano.cs b/Content.Client/Stylesheets/StyleNano.cs index fb6f28750b..e1f32a9e5e 100644 --- a/Content.Client/Stylesheets/StyleNano.cs +++ b/Content.Client/Stylesheets/StyleNano.cs @@ -1392,6 +1392,14 @@ public StyleNano(IResourceCache resCache) : base(resCache) .Prop(Control.StylePropertyModulateSelf, Color.FromHex("#753131")), // --- + // Profile Editor + Element().Class("SpeciesInfoDefault") + .Prop(TextureButton.StylePropertyTexture, resCache.GetTexture("/Textures/Interface/VerbIcons/information.svg.192dpi.png")), + + Element().Class("SpeciesInfoWarning") + .Prop(TextureButton.StylePropertyTexture, resCache.GetTexture("/Textures/Interface/info.svg.192dpi.png")) + .Prop(Control.StylePropertyModulateSelf, Color.FromHex("#eeee11")), + // The default look of paper in UIs. Pages can have components which override this Element().Class("PaperDefaultBorder") .Prop(PanelContainer.StylePropertyPanel, paperBackground), diff --git a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs index 909b618d59..8564ebe8e1 100644 --- a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs +++ b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs @@ -15,7 +15,7 @@ public sealed partial class SpeciesPrototype : IPrototype /// /// User visible name of the species. /// - [DataField("name", required: true)] + [DataField(required: true)] public string Name { get; private set; } = default!; /// @@ -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.) /// - [DataField("descriptor")] + [DataField] public string Descriptor { get; private set; } = "humanoid"; /// /// Whether the species is available "at round start" (In the character editor) /// - [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 /// /// Default skin tone for this species. This applies for non-human skin tones. /// - [DataField("defaultSkinTone")] + [DataField] public Color DefaultSkinTone { get; private set; } = Color.White; /// /// Default human skin tone for this species. This applies for human skin tones. /// See for the valid range of skin tones. /// - [DataField("defaultHumanSkinTone")] + [DataField] public int DefaultHumanSkinTone { get; private set; } = 20; /// @@ -66,60 +66,66 @@ public sealed partial class SpeciesPrototype : IPrototype /// /// Humanoid species variant used by this entity. /// - [DataField("prototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] + [DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] public string Prototype { get; private set; } = default!; /// /// Prototype used by the species for the dress-up doll in various menus. /// - [DataField("dollPrototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] + [DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] public string DollPrototype { get; private set; } = default!; /// /// Method of skin coloration used by the species. /// - [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 Sexes { get; private set; } = new() { Sex.Male, Sex.Female }; /// /// Characters younger than this are too young to be hired by Nanotrasen. /// - [DataField("minAge")] + [DataField] public int MinAge = 18; /// /// Characters younger than this appear young. /// - [DataField("youngAge")] + [DataField] public int YoungAge = 30; /// /// Characters older than this appear old. Characters in between young and old age appear middle aged. /// - [DataField("oldAge")] + [DataField] public int OldAge = 60; /// /// Characters cannot be older than this. Only used for restrictions... /// although imagine if ghosts could age people WYCI... /// - [DataField("maxAge")] + [DataField] public int MaxAge = 120; + + /// + /// The Style used for the guidebook info link in the character profile editor + /// + [DataField] + public string GuideBookIcon = "SpeciesInfoDefault"; } public enum SpeciesNaming : byte diff --git a/Resources/Locale/en-US/guidebook/guides.ftl b/Resources/Locale/en-US/guidebook/guides.ftl index 6d343c5dc8..e8a404e1ce 100644 --- a/Resources/Locale/en-US/guidebook/guides.ftl +++ b/Resources/Locale/en-US/guidebook/guides.ftl @@ -50,6 +50,7 @@ guide-entry-security = Security guide-entry-forensics = Forensics guide-entry-defusal = Large Bomb Defusal guide-entry-criminal-records = Criminal Records +guide-entry-species = Species guide-entry-antagonists = Antagonists guide-entry-nuclear-operatives = Nuclear Operatives diff --git a/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl b/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl index bc506e20bb..b1a695dbed 100644 --- a/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl +++ b/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl @@ -31,6 +31,7 @@ humanoid-profile-editor-preference-jumpskirt = Jumpskirt humanoid-profile-editor-preference-backpack = Backpack humanoid-profile-editor-preference-satchel = Satchel humanoid-profile-editor-preference-duffelbag = Duffelbag +humanoid-profile-editor-guidebook-button-tooltip = Click for more info # Spawn priority humanoid-profile-editor-preference-spawn-priority-none = None diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml new file mode 100644 index 0000000000..5b9efd0366 --- /dev/null +++ b/Resources/Prototypes/Guidebook/species.yml @@ -0,0 +1,47 @@ +- type: guideEntry + id: Species + name: guide-entry-species + text: "/ServerInfo/Guidebook/Mobs/Species.xml" + children: + - Arachnid + - Diona + - Dwarf + - Human + - Moth + - Reptilian + - SlimePerson + +- type: guideEntry + id: Arachnid + name: species-name-arachnid + text: "/ServerInfo/Guidebook/Mobs/Arachnid.xml" + +- type: guideEntry + id: Diona + name: species-name-diona + text: "/ServerInfo/Guidebook/Mobs/Diona.xml" + +- type: guideEntry + id: Dwarf + name: species-name-dwarf + text: "/ServerInfo/Guidebook/Mobs/Dwarf.xml" + +- type: guideEntry + id: Human + name: species-name-human + text: "/ServerInfo/Guidebook/Mobs/Human.xml" + +- type: guideEntry + id: Moth + name: species-name-moth + text: "/ServerInfo/Guidebook/Mobs/Moth.xml" + +- type: guideEntry + id: Reptilian + name: species-name-reptilian + text: "/ServerInfo/Guidebook/Mobs/Reptilian.xml" + +- type: guideEntry + id: SlimePerson + name: species-name-slime + text: "/ServerInfo/Guidebook/Mobs/SlimePerson.xml" diff --git a/Resources/Prototypes/Guidebook/ss14.yml b/Resources/Prototypes/Guidebook/ss14.yml index dfe072b3e0..c1017fefca 100644 --- a/Resources/Prototypes/Guidebook/ss14.yml +++ b/Resources/Prototypes/Guidebook/ss14.yml @@ -8,6 +8,7 @@ - Survival - Chemicals - Antagonists + - Species - Writing - Glossary diff --git a/Resources/ServerInfo/Guidebook/Mobs/Arachnid.xml b/Resources/ServerInfo/Guidebook/Mobs/Arachnid.xml new file mode 100644 index 0000000000..a6fbf8d97a --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Arachnid.xml @@ -0,0 +1,25 @@ + + # Arachnids + + + + + + They have two additional Pocket slots in their inventory. They can eat raw meat without any ill effects, but some foods like chocolate and onion poisons them. + They suffocate 50% faster, and their Blue Blood can't be metabolised from Iron, being based on Copper instead. + + Their unarmed attacks deal Piercing damage instead of Blunt. + + ## Sericulture + + + + + + + + + Arachnids can create Websilk at the cost of getting more hungry. They (and only they) can craft bundles of websilk into various items from clothing and shields to entire walls. + + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Diona.xml b/Resources/ServerInfo/Guidebook/Mobs/Diona.xml new file mode 100644 index 0000000000..575fae561a --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Diona.xml @@ -0,0 +1,38 @@ + + # Diona + + + + + + They can't wear shoes, but are not slowed by Kudzu. + They get hungry and thirsty slower. + Their "blood" is normal water and can't be metabolised from Iron. + Being plants, Weed Killer poisons them, while Robust Harvest heals them (but not without risk when overused!) + + They take [color=#1e90ff]30% less Blunt damage and 20% less Slash damage[/color]; + but [color=#ffa500]50% more Heat damage, 20% more Shock damage, and they can easily + catch on fire when receiving enough Heat damage from *any* source.[/color] + + ## Make Like A Tree And Leave + + + + Being exposed to too much Robust Harvest will cause a Diona to grow out of control, turning into an immobile tree (dropping all their equipment). + Cutting down the tree will "restore" the Diona to their mobile state. + + ## Diona Nymphs + + + + + + After death, a Diona can voluntarily destroy their own body, releasing their "internal organs" as three Nymphs, + with the player taking control of the Brain Nymph. + It can talk but has no hands or inventory, and can't do much. + + After 10 minutes, a Nymph can reform into a whole Diona. This will be a new randomised body with a random name, + and there will be little to no evidence beyond their word about who they were before. + + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Dwarf.xml b/Resources/ServerInfo/Guidebook/Mobs/Dwarf.xml new file mode 100644 index 0000000000..e5ac42c820 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Dwarf.xml @@ -0,0 +1,11 @@ + + # Dwarves + + + + + + Dwarves are similar to humans in most respect, but tolerate alcohol better and are healed by it. + + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Human.xml b/Resources/ServerInfo/Guidebook/Mobs/Human.xml new file mode 100644 index 0000000000..7e0d989e55 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Human.xml @@ -0,0 +1,11 @@ + + # Humans + + + + + + Depending on who you ask, humans are either unremarkable or the universal standard to which everything else is compared. + They have no special mechanics or notable attributes. + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Moth.xml b/Resources/ServerInfo/Guidebook/Mobs/Moth.xml new file mode 100644 index 0000000000..d407d7abc7 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Moth.xml @@ -0,0 +1,15 @@ + + # Moth People + + + + + + They can eat cotton, fabrics and clothing, but virtually none of the food that others would consider "edible". They prefer a somewhat lower temperature range than humans. + Their Insect Blood can't be metabolised from Iron like normal blood. + + Their wings give them better acceleration if there is no gravity on the station, but they still can't move without equipment when floating out in space. + + They take [color=#1e90ff]30% less Cold damage[/color] but [color=#ffa500]30% more Heat damage, and catch on fire more easily[/color]. + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml b/Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml new file mode 100644 index 0000000000..936cd9f5e2 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml @@ -0,0 +1,16 @@ + + # Reptilians + + + + + + They can ONLY eat fruits and meat, but can eat raw meat and drink blood without any ill effects. + They prefer a somewhat higher temperature range than humans. + They can drag objects with their tail, keeping both their hands free. + + Their unarmed claw attacks deal Slash damage instead of Blunt. + + They take [color=#ffa500]30% more Cold damage.[/color] + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml b/Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml new file mode 100644 index 0000000000..fc72c60dbf --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml @@ -0,0 +1,19 @@ + + # Slime People + + + + + + They breathe nitrogen instead of oxygen, which is abundant in the station air, but harder to find compressed into gas tanks. They take significant damage if they are sprayed or splashed with water, but can + (and like other species, need to) drink it safely to stay hydrated. + They exhale nitrous oxide and are unaffected by it. + Their body can process 6 reagents at the same time instead of just 2. + + Their Slime "blood" can not be regenerated from Iron. Slime Blood is technically a source of + moderately filling food for other species, although drinking the blood of your coworkers is usually frowned upon. + They suffocate 80% slower, but take pressure damage 9% faster. This makes them by far the species most capable to survive in hard vacuum. For a while. + + They take [color=#1e90ff]80% less Cellular damage, 40% less Blunt damage and 20% less Poison damage[/color], but [color=#ffa500]50% more Cold damage, 20% more Slash damage and 20% more Piercing damage[/color]. + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Species.xml b/Resources/ServerInfo/Guidebook/Mobs/Species.xml new file mode 100644 index 0000000000..5fb4ca741e --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Species.xml @@ -0,0 +1,18 @@ + + # Species + + Nanotrasen employs a variety of sapient species. + + + + + + + + + + + + + +