diff --git a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml
index 28872ef1d5..401f976862 100644
--- a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml
+++ b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml
@@ -32,6 +32,9 @@
+
diff --git a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
index 2f19cd0a05..1d8d415bab 100644
--- a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
+++ b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
@@ -86,6 +86,16 @@ namespace Content.Client.HealthAnalyzer.UI
("bloodLevel", float.IsNaN(msg.BloodLevel) ? "N/A" : $"{msg.BloodLevel * 100:F1} %")
);
+ if (msg.Bleeding == true)
+ {
+ Bleeding.Text = Loc.GetString("health-analyzer-window-entity-bleeding-text");
+ Bleeding.FontColorOverride = Color.Red;
+ }
+ else
+ {
+ Bleeding.Text = string.Empty; // Clear the text
+ }
+
patientDamageAmount.Text = Loc.GetString(
"health-analyzer-window-entity-damage-total-text",
("amount", damageable.TotalDamage)
diff --git a/Content.Server/Body/Components/BloodstreamComponent.cs b/Content.Server/Body/Components/BloodstreamComponent.cs
index 3ee8fe4d17..7041df4448 100644
--- a/Content.Server/Body/Components/BloodstreamComponent.cs
+++ b/Content.Server/Body/Components/BloodstreamComponent.cs
@@ -35,7 +35,7 @@ namespace Content.Server.Body.Components
/// How much should bleeding should be reduced every update interval?
///
[DataField]
- public float BleedReductionAmount = 1.0f;
+ public float BleedReductionAmount = 0.33f;
///
/// How high can go?
diff --git a/Content.Server/Medical/CryoPodSystem.cs b/Content.Server/Medical/CryoPodSystem.cs
index 97ae72bd11..4ab94c72b9 100644
--- a/Content.Server/Medical/CryoPodSystem.cs
+++ b/Content.Server/Medical/CryoPodSystem.cs
@@ -203,6 +203,7 @@ public sealed partial class CryoPodSystem : SharedCryoPodSystem
bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution))
? bloodSolution.FillFraction
: 0,
+ null,
null
));
}
diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs
index a8abc4752d..0e893c4114 100644
--- a/Content.Server/Medical/HealthAnalyzerSystem.cs
+++ b/Content.Server/Medical/HealthAnalyzerSystem.cs
@@ -179,16 +179,24 @@ public sealed class HealthAnalyzerSystem : EntitySystem
bodyTemperature = temp.CurrentTemperature;
var bloodAmount = float.NaN;
+ var bleeding = false;
if (TryComp(target, out var bloodstream) &&
- _solutionContainerSystem.ResolveSolution(target, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution))
+ _solutionContainerSystem.ResolveSolution(target, bloodstream.BloodSolutionName,
+ ref bloodstream.BloodSolution, out var bloodSolution))
+ {
bloodAmount = bloodSolution.FillFraction;
+ bleeding = bloodstream.BleedAmount > 0;
+ }
+
+
_uiSystem.SendUiMessage(ui, new HealthAnalyzerScannedUserMessage(
GetNetEntity(target),
bodyTemperature,
bloodAmount,
- scanMode
+ scanMode,
+ bleeding
));
}
}
diff --git a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs
index 1e2c2575d9..78f26ed5c0 100644
--- a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs
+++ b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs
@@ -12,13 +12,15 @@ public sealed class HealthAnalyzerScannedUserMessage : BoundUserInterfaceMessage
public float Temperature;
public float BloodLevel;
public bool? ScanMode;
+ public bool? Bleeding;
- public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode)
+ public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding)
{
TargetEntity = targetEntity;
Temperature = temperature;
BloodLevel = bloodLevel;
ScanMode = scanMode;
+ Bleeding = bleeding;
}
}
diff --git a/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl b/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl
index 9b0a8dd3ee..648db3f4eb 100644
--- a/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl
+++ b/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl
@@ -3,6 +3,7 @@ health-analyzer-window-entity-unknown-text = unknown
health-analyzer-window-entity-health-text = {$entityName}'s health:
health-analyzer-window-entity-temperature-text = Temperature: {$temperature}
health-analyzer-window-entity-blood-level-text = Blood Level: {$bloodLevel}
+health-analyzer-window-entity-bleeding-text = Patient is bleeding!
health-analyzer-window-entity-damage-total-text = Total Damage: {$amount}
health-analyzer-window-damage-group-text = {$damageGroup}: {$amount}
health-analyzer-window-damage-type-text = {$damageType}: {$amount}
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml
index 472daed59b..39e68b63a7 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml
@@ -23,7 +23,7 @@
bloodlossDamage:
types:
Bloodloss:
- 1
+ 0.5
bloodlossHealDamage:
types:
Bloodloss:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
index 41fb6a5eec..ca775ed35b 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
@@ -64,7 +64,7 @@
bloodlossDamage:
types:
Bloodloss:
- 1
+ 0.5
bloodlossHealDamage:
types:
Bloodloss:
diff --git a/Resources/Prototypes/Entities/Mobs/base.yml b/Resources/Prototypes/Entities/Mobs/base.yml
index 788b14f322..d4e9a561c5 100644
--- a/Resources/Prototypes/Entities/Mobs/base.yml
+++ b/Resources/Prototypes/Entities/Mobs/base.yml
@@ -207,7 +207,7 @@
- type: Bloodstream
bloodlossDamage:
types:
- Bloodloss: 1
+ Bloodloss: 0.5
bloodlossHealDamage:
types:
Bloodloss: -1
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
index de014c8912..52407aba29 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
@@ -229,6 +229,7 @@
components:
- type: Stack
lingering: true
+
- type: entity
parent: BaseHealingItem
id: Tourniquet