diff --git a/tgui/packages/tgui/interfaces/HealthScan.jsx b/tgui/packages/tgui/interfaces/HealthScan.jsx index e1f020e6bafa..de42c3ee617f 100644 --- a/tgui/packages/tgui/interfaces/HealthScan.jsx +++ b/tgui/packages/tgui/interfaces/HealthScan.jsx @@ -13,7 +13,46 @@ import { } from '../components'; import { Window } from '../layouts'; +const sectionWidth = 35; + export const HealthScan = (props) => { + const { act, data } = useBackend(); + const { + detail_level, + species, + has_chemicals, + diseases, + advice, + limbs_damaged, + damaged_organs, + } = data; + + const bodyscanner = detail_level >= 1; + const Synthetic = species === 'Synthetic'; + const theme = Synthetic ? 'hackerman' : bodyscanner ? 'ntos' : 'default'; + + return ( + + + + + + {has_chemicals ? : null} + + {diseases ? : null} + {advice ? : null} + + + {limbs_damaged ? : null} + {damaged_organs?.length && bodyscanner ? : null} + + + + + ); +}; + +const Patient = (props) => { const { act, data } = useBackend(); const { patient_mob, @@ -51,16 +90,6 @@ export const HealthScan = (props) => { holocard, } = data; - const bloodpct = blood_amount / 560; - - const healthanalyser = detail_level < 1; - const bodyscanner = detail_level >= 1; - const ghostscan = detail_level >= 2; - - const Synthetic = species === 'Synthetic'; - - const theme = Synthetic ? 'hackerman' : bodyscanner ? 'ntos' : 'default'; - let holocard_message; if (holocard === 'red') { holocard_message = 'Patient needs life-saving treatment.'; @@ -73,216 +102,240 @@ export const HealthScan = (props) => { } else { holocard_message = 'Patient has no active holocard.'; } + + const ghostscan = detail_level >= 2; + return ( - - -
- {hugged && ghostscan ? ( - - Patient has been implanted with an alien embryo! - - ) : null} - {dead ? Patient is deceased! : null} - {ssd ? ( - - {ssd} - - ) : null} - - - {health >= 0 ? ( - - {health}% healthy - - ) : ( - - {health}% healthy - - )} - - {dead ? ( - - - {permadead - ? heart_broken - ? 'Myocardial rupture, surgical intervention required' - : 'Permanently deceased' - : Synthetic - ? 'Central power system shutdown, reboot with a reset key possible' - : 'Cardiac arrest, defibrillation possible'} - - - ) : null} - - - - Brute:{' '} - - {total_brute} - - +
+ {hugged && ghostscan ? ( + + Patient has been implanted with an alien embryo! + + ) : null} + {dead ? Patient is deceased! : null} + {ssd ? ( + + {ssd} + + ) : null} + + + {health >= 0 ? ( + + {health}% healthy + + ) : ( + + {health}% healthy + + )} + + {dead ? ( + + + {permadead + ? heart_broken + ? 'Myocardial rupture, surgical intervention required' + : 'Permanently deceased' + : Synthetic + ? 'Central power system shutdown, reboot with a reset key possible' + : 'Cardiac arrest, defibrillation possible'} + + + ) : null} + + + + Brute:{' '} + + {total_brute} - - - - Burn:{' '} - - {total_burn} - - + + + + + + Burn:{' '} + + {total_burn} - - - - Toxin:{' '} - - {toxin} - - + + + + + + Toxin:{' '} + + {toxin} - - - - Oxygen:{' '} - - {oxy} - - + + + + + + Oxygen:{' '} + + {oxy} - - {!!clone && ( - - - Clone:{' '} - - {clone} - - + + + + {!!clone && ( + + + Clone:{' '} + + {clone} - )} - - - - {holocard_message} - + + + )} + + + + {holocard_message} + - - - -
- {limbs_damaged ? : null} - {has_chemicals ? : null} - {damaged_organs?.length && bodyscanner ? : null} - {diseases ? ( -
- - {diseases.map((disease) => ( - - - Type : {disease.type}, possible cure : {disease.cure} - - - - - Stage:{disease.stage}/{disease.max_stage} - - - - ))} - -
- ) : null} -
- - {has_blood ? ( - - 0.9 ? 'green' : bloodpct > 0.7 ? 'orange' : 'red' - } - > - {Math.round(blood_amount / 5.6)}%, {blood_amount}cl - - - ) : null} - - {body_temperature} - - {pulse} - - {implants || - hugged || - core_fracture || - (lung_ruptured && bodyscanner) ? ( - - ) : null} - {implants && detail_level !== 1 ? ( - - {implants} embedded object{implants > 1 ? 's' : ''} detected! - {healthanalyser ? ' Advanced scanner required for location.' : ''} - - ) : null} - {(implants || hugged) && detail_level === 1 ? ( - - {implants + (hugged ? 1 : 0)} unknown bod - {implants + (hugged ? 1 : 0) > 1 ? 'ies' : 'y'} detected! - - ) : null} - {lung_ruptured && bodyscanner ? ( - Ruptured lung detected! - ) : null} - {core_fracture && healthanalyser ? ( - - Bone fractures detected! Advanced scanner required for location. - - ) : null} -
- {advice ? ( -
- - {advice.map((advice) => ( - - - - - {advice.advice} - - - ))} - -
+ +
+
+
+ ); +}; + +const Misc = (props) => { + const { data } = useBackend(); + const { + blood_type, + blood_amount, + has_blood, + body_temperature, + pulse, + implants, + core_fracture, + lung_ruptured, + hugged, + detail_level, + } = data; + const bloodpct = blood_amount / 560; + const healthanalyser = detail_level < 1; + const bodyscanner = detail_level >= 1; + return ( +
+ + {has_blood ? ( + + 0.9 ? 'green' : bloodpct > 0.7 ? 'orange' : 'red' + } + > + {Math.round(blood_amount / 5.6)}%, {blood_amount}cl + + ) : null} - - + + {body_temperature} + + {pulse} + + {implants || hugged || core_fracture || (lung_ruptured && bodyscanner) ? ( + + ) : null} + {implants && detail_level !== 1 ? ( + + {implants} embedded object{implants > 1 ? 's' : ''} detected! + {healthanalyser ? ' Advanced scanner required for location.' : ''} + + ) : null} + {(implants || hugged) && detail_level === 1 ? ( + + {implants + (hugged ? 1 : 0)} unknown bod + {implants + (hugged ? 1 : 0) > 1 ? 'ies' : 'y'} detected! + + ) : null} + {lung_ruptured && bodyscanner ? ( + Ruptured lung detected! + ) : null} + {core_fracture && healthanalyser ? ( + + Bone fractures detected! Advanced scanner required for location. + + ) : null} +
+ ); +}; + +const Diseases = (props) => { + const { data } = useBackend(); + const { diseases } = data; + return ( +
+ + {diseases.map((disease) => ( + + + Type : {disease.type}, possible cure : {disease.cure} + + + + + Stage:{disease.stage}/{disease.max_stage} + + + + ))} + +
+ ); +}; + +const MedicalAdvice = (props) => { + const { data } = useBackend(); + const { advice } = data; + return ( +
+ + {advice.map((advice) => ( + + + + + {advice.advice} + + + ))} + +
); }; @@ -340,7 +393,7 @@ const ScannerLimbs = (props) => { }); return ( -
+
@@ -461,7 +514,7 @@ const ScannerOrgans = (props) => { const { damaged_organs } = data; return ( -
+
{damaged_organs.map((organ) => (