Health analyzer has tooltips now

This commit is contained in:
Janet Blackquill
2025-10-01 18:33:44 -04:00
parent 33eede4592
commit 6dafd77fe9
23 changed files with 471 additions and 1 deletions

View File

@@ -36,27 +36,37 @@
<PanelContainer StyleClasses="LowDivider" />
<GridContainer Margin="0 5 0 0" Columns="2">
<GridContainer Margin="0 5 0 0" Columns="3">
<Label Text="{Loc 'health-analyzer-window-entity-status-text'}" />
<RichTextLabel Name="StatusLabel" />
<TextureButton Name="StatusButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Name="BrainHealthText" Text="{Loc 'health-analyzer-window-entity-brain-health-text'}" />
<RichTextLabel Name="BrainHealthLabel" />
<TextureButton Name="BrainHealthButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Name="BloodPressureText" Text="{Loc 'health-analyzer-window-entity-blood-pressure-text'}" />
<RichTextLabel Name="BloodPressureLabel" />
<TextureButton Name="BloodPressureButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Name="BloodOxygenationText" Text="{Loc 'health-analyzer-window-entity-blood-oxygenation-text'}" />
<RichTextLabel Name="BloodOxygenationLabel" />
<TextureButton Name="BloodOxygenationButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Name="BloodFlowText" Text="{Loc 'health-analyzer-window-entity-blood-flow-text'}" />
<RichTextLabel Name="BloodFlowLabel" />
<TextureButton Name="BloodFlowButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Name="HeartRateText" Text="{Loc 'health-analyzer-window-entity-heart-rate-text'}" />
<RichTextLabel Name="HeartRateLabel" />
<TextureButton Name="HeartRateButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Name="HeartHealthText" Text="{Loc 'health-analyzer-window-entity-heart-health-text'}" />
<RichTextLabel Name="HeartHealthLabel" />
<TextureButton Name="HeartHealthButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Name="BloodText" Text="{Loc 'health-analyzer-window-entity-blood-level-text'}" />
<RichTextLabel Name="BloodLabel" />
<TextureButton Name="BloodButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Text="{Loc 'health-analyzer-window-entity-temperature-text'}" />
<RichTextLabel Name="TemperatureLabel" />
<TextureButton Name="TemperatureButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
<Label Text="{Loc 'health-analyzer-window-entity-damage-total-text'}" />
<RichTextLabel Name="DamageLabel" />
<TextureButton Name="DamageButton" StyleClasses="SpeciesInfoDefault" Scale="0.3 0.3" VerticalAlignment="Center" />
</GridContainer>
</BoxContainer>

View File

@@ -3,6 +3,7 @@ using System.Numerics;
using Content.Client.Message;
using Content.Shared.Atmos;
using Content.Client.UserInterface.Controls;
using Content.Shared._Offbrand.Wounds; // Offbrand
using Content.Shared.Alert;
using Content.Shared.Damage;
using Content.Shared.Damage.Prototypes;
@@ -36,6 +37,19 @@ namespace Content.Client.HealthAnalyzer.UI
private readonly IPrototypeManager _prototypes;
private readonly IResourceCache _cache;
// Begin Offbrand
private readonly Tooltips.StatusTooltip _statusTooltip = new();
private readonly Tooltips.BrainHealthTooltip _brainHealthTooltip = new();
private readonly Tooltips.BloodPressureTooltip _bloodPressureTooltip = new();
private readonly Tooltips.BloodOxygenationTooltip _bloodOxygenationTooltip = new();
private readonly Tooltips.HeartRateTooltip _heartRateTooltip = new();
private readonly Tooltips.HeartHealthTooltip _heartHealthTooltip = new();
private readonly Tooltips.BloodFlowTooltip _bloodFlowTooltip = new();
private readonly Tooltips.BloodTooltip _bloodTooltip = new();
private readonly Tooltips.TemperatureTooltip _temperatureTooltip = new();
private readonly Tooltips.DamageTooltip _damageTooltip = new();
// End Offbrand
public HealthAnalyzerWindow()
{
RobustXamlLoader.Load(this);
@@ -45,6 +59,19 @@ namespace Content.Client.HealthAnalyzer.UI
_spriteSystem = _entityManager.System<SpriteSystem>();
_prototypes = dependencies.Resolve<IPrototypeManager>();
_cache = dependencies.Resolve<IResourceCache>();
// Begin Offbrand
StatusButton.TooltipSupplier = _ => _statusTooltip;
BrainHealthButton.TooltipSupplier = _ => _brainHealthTooltip;
BloodPressureButton.TooltipSupplier = _ => _bloodPressureTooltip;
BloodOxygenationButton.TooltipSupplier = _ => _bloodOxygenationTooltip;
HeartRateButton.TooltipSupplier = _ => _heartRateTooltip;
BloodFlowButton.TooltipSupplier = _ => _bloodFlowTooltip;
HeartHealthButton.TooltipSupplier = _ => _heartHealthTooltip;
TemperatureButton.TooltipSupplier = _ => _temperatureTooltip;
DamageButton.TooltipSupplier = _ => _damageTooltip;
BloodButton.TooltipSupplier = _ => _bloodTooltip;
// End Offbrand
}
public void Populate(HealthAnalyzerScannedUserMessage msg)
@@ -60,6 +87,16 @@ namespace Content.Client.HealthAnalyzer.UI
NoPatientDataText.Visible = false;
// Begin Offbrand Tooltips
_brainHealthTooltip.Update(msg);
_bloodPressureTooltip.Update(msg);
_bloodOxygenationTooltip.Update(msg, (target.Value, damageable));
_heartRateTooltip.Update(msg, (target.Value, damageable));
_bloodFlowTooltip.Update(msg);
_heartHealthTooltip.Update(msg);
_temperatureTooltip.Update(msg, (target.Value, _entityManager.GetComponentOrNull<CryostasisFactorComponent>(target)));
// End Offbrand Tooltips
// Scan Mode
ScanModeLabel.Text = msg.ScanMode.HasValue
@@ -198,30 +235,37 @@ namespace Content.Client.HealthAnalyzer.UI
BrainHealthText.Visible = true;
BrainHealthLabel.Visible = true;
BrainHealthLabel.Text = Loc.GetString("health-analyzer-window-entity-brain-health-value", ("value", $"{woundable.BrainHealth * 100:F1}"), ("rating", woundable.BrainHealthRating));
BrainHealthButton.Visible = true;
HeartHealthText.Visible = true;
HeartHealthLabel.Visible = true;
HeartHealthLabel.Text = Loc.GetString("health-analyzer-window-entity-heart-health-value", ("value", $"{woundable.HeartHealth * 100:F1}"), ("rating", woundable.HeartHealthRating));
HeartHealthButton.Visible = true;
HeartRateText.Visible = true;
HeartRateLabel.Visible = true;
HeartRateLabel.Text = Loc.GetString("health-analyzer-window-entity-heart-rate-value", ("value", woundable.HeartRate), ("rating", woundable.HeartRateRating));
HeartRateButton.Visible = true;
BloodOxygenationText.Visible = true;
BloodOxygenationLabel.Visible = true;
BloodOxygenationLabel.Text = Loc.GetString("health-analyzer-window-entity-blood-oxygenation-value", ("value", $"{woundable.BloodOxygenation * 100:F1}"), ("rating", woundable.BloodOxygenationRating));
BloodOxygenationButton.Visible = true;
BloodFlowText.Visible = true;
BloodFlowLabel.Visible = true;
BloodFlowLabel.Text = Loc.GetString("health-analyzer-window-entity-blood-flow-value", ("value", $"{woundable.BloodFlow * 100:F1}"), ("rating", woundable.BloodFlowRating));
BloodFlowButton.Visible = true;
var (systolic, diastolic) = woundable.BloodPressure;
BloodPressureText.Visible = true;
BloodPressureLabel.Visible = true;
BloodPressureLabel.Text = Loc.GetString("health-analyzer-window-entity-blood-pressure-value", ("systolic", systolic), ("diastolic", diastolic), ("rating", woundable.BloodPressureRating));
BloodPressureButton.Visible = true;
BloodLabel.Visible = false;
BloodText.Visible = false;
BloodButton.Visible = false;
}
else
{
@@ -237,9 +281,16 @@ namespace Content.Client.HealthAnalyzer.UI
BloodFlowText.Visible = false;
HeartRateText.Visible = false;
HeartHealthText.Visible = false;
BrainHealthButton.Visible = false;
BloodPressureButton.Visible = false;
BloodOxygenationButton.Visible = false;
BloodFlowButton.Visible = false;
HeartRateButton.Visible = false;
HeartHealthButton.Visible = false;
BloodLabel.Visible = true;
BloodText.Visible = true;
BloodButton.Visible = true;
}
// End Offbrand

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox" MaxWidth="450">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Name="Label" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,24 @@
using Content.Shared.MedicalScanner;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class BloodFlowTooltip : PanelContainer
{
public BloodFlowTooltip()
{
RobustXamlLoader.Load(this);
}
public void Update(HealthAnalyzerScannedUserMessage msg)
{
if (msg.WoundableData is not { } woundable)
return;
Label.Text = Loc.GetString("health-analyzer-blood-flow-tooltip", ("heartrate", woundable.HeartRate), ("health", $"{woundable.HeartHealth * 100:F1}"));
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox" MaxWidth="450">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Name="Label" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,30 @@
using Content.Shared.Damage;
using Content.Shared.FixedPoint;
using Content.Shared.MedicalScanner;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class BloodOxygenationTooltip : PanelContainer
{
public BloodOxygenationTooltip()
{
RobustXamlLoader.Load(this);
}
public void Update(HealthAnalyzerScannedUserMessage msg, Entity<DamageableComponent> ent)
{
if (msg.WoundableData is not { } woundable)
return;
var asphyxiation = FixedPoint2.Zero;
ent.Comp.Damage.DamageDict.TryGetValue("Asphyxiation", out asphyxiation);
var (systolic, diastolic) = woundable.BloodPressure;
Label.Text = Loc.GetString("health-analyzer-blood-saturation-tooltip", ("rating", woundable.BloodOxygenationRating), ("systolic", systolic), ("diastolic", diastolic), ("asphyxiation", asphyxiation));
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox" MaxWidth="450">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Name="Label" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,24 @@
using Content.Shared.MedicalScanner;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class BloodPressureTooltip : PanelContainer
{
public BloodPressureTooltip()
{
RobustXamlLoader.Load(this);
}
public void Update(HealthAnalyzerScannedUserMessage msg)
{
if (msg.WoundableData is not { } woundable)
return;
Label.Text = Loc.GetString("health-analyzer-blood-pressure-tooltip", ("flow", $"{woundable.BloodFlow * 100:F1}"));
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Text="{Loc 'health-analyzer-blood-tooltip'}" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,15 @@
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class BloodTooltip : PanelContainer
{
public BloodTooltip()
{
RobustXamlLoader.Load(this);
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox" MaxWidth="450">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Name="Label" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,24 @@
using Content.Shared.MedicalScanner;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class BrainHealthTooltip : PanelContainer
{
public BrainHealthTooltip()
{
RobustXamlLoader.Load(this);
}
public void Update(HealthAnalyzerScannedUserMessage msg)
{
if (msg.WoundableData is not { } woundable)
return;
Label.Text = Loc.GetString("health-analyzer-brain-health-tooltip", ("dead", woundable.BrainHealth <= 0), ("rating", woundable.BrainHealthRating), ("saturation", $"{woundable.BloodOxygenation * 100:F1}"));
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Text="{Loc 'health-analyzer-damage-tooltip'}" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,15 @@
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class DamageTooltip : PanelContainer
{
public DamageTooltip()
{
RobustXamlLoader.Load(this);
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox" MaxWidth="450">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Name="Label" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,24 @@
using Content.Shared.MedicalScanner;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class HeartHealthTooltip : PanelContainer
{
public HeartHealthTooltip()
{
RobustXamlLoader.Load(this);
}
public void Update(HealthAnalyzerScannedUserMessage msg)
{
if (msg.WoundableData is not { } woundable)
return;
Label.Text = Loc.GetString("health-analyzer-heart-health-tooltip", ("heartrate", woundable.HeartRate));
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox" MaxWidth="450">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Name="Label" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,29 @@
using Content.Shared.Damage;
using Content.Shared.FixedPoint;
using Content.Shared.MedicalScanner;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class HeartRateTooltip : PanelContainer
{
public HeartRateTooltip()
{
RobustXamlLoader.Load(this);
}
public void Update(HealthAnalyzerScannedUserMessage msg, Entity<DamageableComponent> ent)
{
if (msg.WoundableData is not { } woundable)
return;
var asphyxiation = FixedPoint2.Zero;
ent.Comp.Damage.DamageDict.TryGetValue("Asphyxiation", out asphyxiation);
Label.Text = Loc.GetString("health-analyzer-heart-rate-tooltip", ("asphyxiation", asphyxiation));
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Text="{Loc 'health-analyzer-status-tooltip'}" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,15 @@
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class StatusTooltip : PanelContainer
{
public StatusTooltip()
{
RobustXamlLoader.Load(this);
}
}

View File

@@ -0,0 +1,8 @@
<PanelContainer xmlns="https://spacestation14.io" StyleClasses="tooltipBox">
<BoxContainer
Orientation="Vertical"
RectClipContent="True"
Margin="4">
<RichTextLabel Name="Label" HorizontalExpand="True" />
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,31 @@
using Content.Shared._Offbrand.Wounds;
using Content.Shared.FixedPoint;
using Content.Shared.MedicalScanner;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
namespace Content.Client.HealthAnalyzer.UI.Tooltips;
[GenerateTypedNameReferences]
public sealed partial class TemperatureTooltip : PanelContainer
{
public TemperatureTooltip()
{
RobustXamlLoader.Load(this);
}
public void Update(HealthAnalyzerScannedUserMessage msg, Entity<CryostasisFactorComponent?> ent)
{
if (ent.Comp is null)
{
Label.Text = Loc.GetString("health-analyzer-plain-temperature-tooltip");
}
else
{
var factor = Math.Max(ent.Comp.TemperatureCoefficient * msg.Temperature + ent.Comp.TemperatureConstant, 1);
Label.Text = Loc.GetString("health-analyzer-cryostasis-temperature-tooltip", ("factor", $"{factor * 100:F1}"));
}
}
}

View File

@@ -32,3 +32,101 @@ wound-ribcage-open = [color=red]Patient has open ribcage.[/color]
wound-arterial-bleeding = [color=red]Patient has arterial bleeding.[/color]
health-analyzer-window-no-patient-damages = Patient has no injuries.
health-analyzer-status-tooltip =
{"[bold]"}Alive[/bold]: The patient is alive and conscious.
{"[bold]"}Critical[/bold]: The patient is unconscious and will die without intervention.
{"[bold]"}Dead[/bold]: The patient is dead and will rot without intervention.
health-analyzer-blood-saturation-tooltip =
A measure of how much oxygen (or nitrogen, etc.) the patient's brain is getting.
{ $rating ->
[good] Your patient's brain is not at risk.
[okay] Your patient's brain may be damaged slightly.
[poor] Your patient's brain may be damaged.
[bad] Your patient's brain may be damaged substantially.
[awful] Your patient's brain is at [color=red]severe risk[/color] for fatal injury.
[dangerous] Your patient's brain is at [color=red]life-threatening risk[/color] for fatal injury.
*[other] Your patient is an enigma. Report this to developers if you see this message.
}
Relevant metrics:
{"[color=#7af396]"}Blood Pressure[/color]: {$systolic}/{$diastolic}
{"[color=#7af396]"}Asphyxiation[/color]: {$asphyxiation}
health-analyzer-blood-pressure-tooltip =
A measure of how much blood is in use by the body.
If [color=#7af396]Blood Flow[/color] is high but [color=#7af396]Blood Pressure[/color] is not, ensure your patient has adequate [color=#7af396]Blood Volume[/color].
Relevant metrics:
{"[color=#7af396]"}Blood Flow[/color]: {$flow}%
health-analyzer-blood-flow-tooltip =
A measure of how much the patient's body can circulate available blood.
This primarily depends on your patient's heart having a pulse and being in good condition.
CPR can be administered if the heart is not providing enough blood flow.
Relevant metrics:
{"[color=#7af396]"}Heart Rate[/color]: {$heartrate}bpm
{"[color=#7af396]"}Heart Health[/color]: {$health}%
health-analyzer-heart-rate-tooltip =
A measure of how fast the patient's heart is beating.
It will raise due to pain and asphyxiation.
It can stop due to severe pain, lack of blood, or severe brain damage.
{"[color=#731024]"}Inaprovaline[/color] can be administered to reduce the patient's heartrate.
Relevant metrics:
{"[color=#7af396]"}Asphyxiation[/color]: {$asphyxiation}
health-analyzer-heart-health-tooltip =
A measure of the heart's integrity.
It will decrease due to excessively high heartrate.
Relevant metrics:
{"[color=#7af396]"}Heart Rate[/color]: {$heartrate}bpm
health-analyzer-plain-temperature-tooltip =
The patient's body temperature.
health-analyzer-cryostasis-temperature-tooltip =
The patient's body temperature.
This temperature has a cryostasis factor of {$factor}%.
health-analyzer-blood-tooltip =
The patient's blood volume.
health-analyzer-damage-tooltip =
The patient's total accumulated injuries.
health-analyzer-brain-health-tooltip = { $dead ->
[true] {-health-analyzer-brain-health-tooltip-dead}
*[false] {-health-analyzer-brain-health-tooltip-alive(rating: $rating, saturation: $saturation)}
}
-health-analyzer-brain-health-tooltip-alive =
{ $rating ->
[good] Your patient is fine, and does not need any intervention.
[okay] Your patient has slight brain damage, but can likely heal it over time.
[poor] Your patient has brain damage.
[bad] Your patient has a large amount of brain damage. Administer [color=#731024]Inaprovaline[/color] to stabilize the brain before proceeding with treatment.
[awful] Your patient has a severe amount of brain damage. [bold]Administer [color=#731024]Inaprovaline[/color] to stabilize the brain immediately.[/bold] Consider moving to a cryopod or stasis bed if you do not have a treatment plan.
[dangerous] Your patient is at [color=red]severe risk of death[/color]. [bold]Administer [color=#731024]Inaprovaline[/color], and move the patient to a cryopod or stasis bed if you do not have a treatment plan.[/bold]
*[other] Your patient is an enigma. Report this to developers if you see this message.
}
{"[color=#fedb79]"}Mannitol[/color] can be administered to heal brain damage if the [color=#7af396]Blood Saturation[/color] permits.
Relevant metrics:
{"[color=#7af396]"}Blood Saturation[/color]: {$saturation}%
-health-analyzer-brain-health-tooltip-dead =
The patient has 0% brain activity and is dead.