forked from Vault-Overseers/nuclear-14
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New Trait: Blood Deficiency (Vault-Overseers#686)
# Description **Blood Deficiency** is a +2 points negative Physical trait that makes you slowly lose blood over time. When left untreated you will die from blood loss. Inspired by the SS13 trait of the same name. Slash/Piercing weapons and bleeding are much more lethal against you. The moment you start taking **any** blood loss damage, you start dying because you can't regenerate blood. Even just two consecutive kitchen knife stabs will make you bleed enough to die slowly unless you immediately apply gauze. Blood packs, iron pills (or copper for Arachnids), and gauze to stop bleeding will help you survive with this trait. Here's how the timeline looks for untreated blood deficiency: - ~0-21 minutes: losing blood slowly - ~21-31 minutes: blood level below 90%, start taking bloodloss damage - ~31-33 minutes: critical - ~34 minutes: death ## Media <details><summary>Expand</summary> **Trait entry** ![image](https://github.com/user-attachments/assets/ea4a0c3c-7c05-45fc-8a32-48957701a246) ![image](https://github.com/user-attachments/assets/37398779-90a4-4f4f-a183-38d806184394) As shown above, even just reducing the blood volume to less than 90% means you will die a slow and painful death. </details> </p> </details> # Changelog :cl: Skubman - add: Add the Blood Deficiency trait, a new negative trait that makes you slowly lose blood over time. You must routinely receive blood loss treatment to live, and even normally non-lethal bleeding can make you start dying slowly.
- Loading branch information
1 parent
b7d3080
commit 6ab1797
Showing
6 changed files
with
90 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
namespace Content.Server.Traits.Assorted; | ||
|
||
/// <summary> | ||
/// This is used for the Blood Deficiency trait. | ||
/// </summary> | ||
[RegisterComponent] | ||
public sealed partial class BloodDeficiencyComponent : Component | ||
{ | ||
// <summary> | ||
// How much reagent of blood should be removed in each update interval? | ||
// </summary> | ||
[DataField(required: true)] | ||
public float BloodLossAmount; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
using Content.Server.Body.Systems; | ||
using Content.Server.Body.Components; | ||
using Content.Shared.Damage; | ||
|
||
namespace Content.Server.Traits.Assorted; | ||
|
||
public sealed class BloodDeficiencySystem : EntitySystem | ||
{ | ||
public override void Initialize() | ||
{ | ||
base.Initialize(); | ||
SubscribeLocalEvent<BloodDeficiencyComponent, ComponentStartup>(OnStartup); | ||
} | ||
|
||
private void OnStartup(EntityUid uid, BloodDeficiencyComponent component, ComponentStartup args) | ||
{ | ||
if (!TryComp<BloodstreamComponent>(uid, out var bloodstream)) | ||
return; | ||
|
||
bloodstream.HasBloodDeficiency = true; | ||
bloodstream.BloodDeficiencyLossAmount = component.BloodLossAmount; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters