diff --git a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml
index 1846a96a07..16aded522b 100644
--- a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml
+++ b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml
@@ -36,27 +36,37 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
index 179b367326..5644f19f32 100644
--- a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
+++ b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
@@ -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();
_prototypes = dependencies.Resolve();
_cache = dependencies.Resolve();
+
+ // 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(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
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodFlowTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodFlowTooltip.xaml
new file mode 100644
index 0000000000..29945b5e4c
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodFlowTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodFlowTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodFlowTooltip.xaml.cs
new file mode 100644
index 0000000000..6d5a7463e6
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodFlowTooltip.xaml.cs
@@ -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}"));
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodOxygenationTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodOxygenationTooltip.xaml
new file mode 100644
index 0000000000..29945b5e4c
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodOxygenationTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodOxygenationTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodOxygenationTooltip.xaml.cs
new file mode 100644
index 0000000000..58584484c6
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodOxygenationTooltip.xaml.cs
@@ -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 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));
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodPressureTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodPressureTooltip.xaml
new file mode 100644
index 0000000000..29945b5e4c
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodPressureTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodPressureTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodPressureTooltip.xaml.cs
new file mode 100644
index 0000000000..a0cc4e7a44
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodPressureTooltip.xaml.cs
@@ -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}"));
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodTooltip.xaml
new file mode 100644
index 0000000000..c56a6bf390
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BloodTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodTooltip.xaml.cs
new file mode 100644
index 0000000000..4db8005446
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BloodTooltip.xaml.cs
@@ -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);
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BrainHealthTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/BrainHealthTooltip.xaml
new file mode 100644
index 0000000000..29945b5e4c
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BrainHealthTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/BrainHealthTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/BrainHealthTooltip.xaml.cs
new file mode 100644
index 0000000000..9ad93b05ce
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/BrainHealthTooltip.xaml.cs
@@ -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}"));
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/DamageTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/DamageTooltip.xaml
new file mode 100644
index 0000000000..2cb2ce3f6b
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/DamageTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/DamageTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/DamageTooltip.xaml.cs
new file mode 100644
index 0000000000..21a299d81a
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/DamageTooltip.xaml.cs
@@ -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);
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/HeartHealthTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartHealthTooltip.xaml
new file mode 100644
index 0000000000..29945b5e4c
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartHealthTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/HeartHealthTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartHealthTooltip.xaml.cs
new file mode 100644
index 0000000000..dc60197631
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartHealthTooltip.xaml.cs
@@ -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));
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/HeartRateTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartRateTooltip.xaml
new file mode 100644
index 0000000000..29945b5e4c
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartRateTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/HeartRateTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartRateTooltip.xaml.cs
new file mode 100644
index 0000000000..88520910bd
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/HeartRateTooltip.xaml.cs
@@ -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 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));
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/StatusTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/StatusTooltip.xaml
new file mode 100644
index 0000000000..6457a79174
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/StatusTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/StatusTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/StatusTooltip.xaml.cs
new file mode 100644
index 0000000000..58ef9b7be5
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/StatusTooltip.xaml.cs
@@ -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);
+ }
+}
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/TemperatureTooltip.xaml b/Content.Client/HealthAnalyzer/UI/Tooltips/TemperatureTooltip.xaml
new file mode 100644
index 0000000000..b149172dc4
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/TemperatureTooltip.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Content.Client/HealthAnalyzer/UI/Tooltips/TemperatureTooltip.xaml.cs b/Content.Client/HealthAnalyzer/UI/Tooltips/TemperatureTooltip.xaml.cs
new file mode 100644
index 0000000000..bbd32c3b50
--- /dev/null
+++ b/Content.Client/HealthAnalyzer/UI/Tooltips/TemperatureTooltip.xaml.cs
@@ -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 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}"));
+ }
+ }
+}
diff --git a/Resources/Locale/en-US/_Offbrand/health-analyzer.ftl b/Resources/Locale/en-US/_Offbrand/health-analyzer.ftl
index 0b31dc81d9..c07c54431f 100644
--- a/Resources/Locale/en-US/_Offbrand/health-analyzer.ftl
+++ b/Resources/Locale/en-US/_Offbrand/health-analyzer.ftl
@@ -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.