import { round } from 'common/math'; import { Fragment } from 'inferno'; import { useBackend } from '../backend'; import { Window } from '../layouts'; import { Box, Button, Flex, Icon, Knob, LabeledList, Section, Tabs, ProgressBar } from '../components'; const stats = [ ['good', 'Conscious'], ['average', 'Unconscious'], ['bad', 'DEAD'], ]; const damages = [ ['Resp.', 'oxyLoss'], ['Toxin', 'toxLoss'], ['Brute', 'bruteLoss'], ['Burn', 'fireLoss'], ]; const damageRange = { average: [0.25, 0.5], bad: [0.5, Infinity], }; const tempColors = ['bad', 'average', 'average', 'good', 'average', 'average', 'bad']; export const OperatingComputer = (props, context) => { const { act, data } = useBackend(context); const { hasOccupant, choice } = data; let body; if (!choice) { body = hasOccupant ? : ; } else { body = ; } return ( act('choiceOff')}> Patient act('choiceOn')}> Options
{body}
); }; const OperatingComputerPatient = (props, context) => { const { data } = useBackend(context); const { occupant } = data; return (
{occupant.name} {stats[occupant.stat][1]} {damages.map((d, i) => ( {round(occupant[d[1]])} ))} {round(occupant.btCelsius)}°C, {round(occupant.btFaren)}°F {!!occupant.hasBlood && ( {occupant.bloodPercent}%, {occupant.bloodLevel}cl {occupant.pulse} BPM )}
{occupant.surgery && occupant.surgery.length ? ( {occupant.surgery.map((limb) => ( {limb.currentStage} {limb.nextSteps.map((step) => (
{step}
))}
))}
) : ( No procedure ongoing. )}
); }; const OperatingComputerUnoccupied = () => { return (
No patient detected.
); }; const OperatingComputerOptions = (props, context) => { const { act, data } = useBackend(context); const { verbose, health, healthAlarm, oxy, oxyAlarm, crit } = data; return (