using Content.Shared._Offbrand.Wounds; 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; if (ent.Comp2?.AsphyxiationDamage is not { } damageType) return; var asphyxiation = FixedPoint2.Zero; ent.Comp1.Damage.DamageDict.TryGetValue(damageType, 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)); } }