diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 53e49224c6c..2b5366c8eac 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -93,7 +93,7 @@ qdel(G) -/obj/machinery/bodyscanner/MouseDrop_T(mob/living/carbon/O, mob/user as mob) +/obj/machinery/bodyscanner/MouseDrop_T(mob/living/carbon/human/O, mob/user as mob) if(!istype(O)) return 0 //not a mob if(user.incapacitated()) @@ -310,11 +310,12 @@ data["occupied"] = connected.occupant ? 1 : 0 var/occupantData[0] - if(connected.occupant && ishuman(connected.occupant)) + if(connected.occupant) var/mob/living/carbon/human/H = connected.occupant occupantData["name"] = H.name occupantData["stat"] = H.stat occupantData["health"] = H.health + occupantData["maxHealth"] = H.maxHealth occupantData["hasVirus"] = H.virus2.len @@ -334,23 +335,17 @@ occupantData["hasBorer"] = H.has_brain_worms() var/bloodData[0] - if(H.vessel) + bloodData["hasBlood"] = 0 + if(ishuman(H) && H.vessel && !(H.species && H.species.flags & NO_BLOOD)) var/blood_volume = round(H.vessel.get_reagent_amount("blood")) + bloodData["hasBlood"] = 1 bloodData["volume"] = blood_volume bloodData["percent"] = round(((blood_volume / 560)*100)) - + bloodData["pulse"] = H.get_pulse(GETPULSE_TOOL) + bloodData["bloodLevel"] = round(H.vessel.get_reagent_amount("blood")) + bloodData["bloodMax"] = H.max_blood occupantData["blood"] = bloodData - var/reagentData[0] - if(H.reagents) - reagentData["epinephrine"] = H.reagents.get_reagent_amount("Epinephrine") - reagentData["ether"] = H.reagents.get_reagent_amount("ether") - reagentData["silver_sulfadiazine"] = H.reagents.get_reagent_amount("silver_sulfadiazine") - reagentData["styptic_powder"] = H.reagents.get_reagent_amount("styptic_powder") - reagentData["salbutamol"] = H.reagents.get_reagent_amount("salbutamol") - - occupantData["reagents"] = reagentData - var/extOrganData[0] for(var/obj/item/organ/external/E in H.organs) var/organData[0] @@ -359,6 +354,10 @@ organData["germ_level"] = E.germ_level organData["bruteLoss"] = E.brute_dam organData["fireLoss"] = E.burn_dam + organData["totalLoss"] = E.brute_dam + E.burn_dam + organData["maxHealth"] = E.max_damage + organData["bruised"] = E.min_bruised_damage + organData["broken"] = E.min_broken_damage var/implantData[0] for(var/obj/I in E.implants) @@ -405,6 +404,9 @@ organData["desc"] = I.desc organData["germ_level"] = I.germ_level organData["damage"] = I.damage + organData["maxHealth"] = I.max_damage + organData["bruised"] = I.min_broken_damage + organData["broken"] = I.min_bruised_damage intOrganData.Add(list(organData)) @@ -427,6 +429,9 @@ if(..()) return 1 + if (href_list["ejectify"]) + src.connected.eject() + if (href_list["print_p"]) generate_printing_text() @@ -609,4 +614,4 @@ else dat = " Error: No Body Scanner connected." - printing_text = dat \ No newline at end of file + printing_text = dat diff --git a/nano/css/shared.css b/nano/css/shared.css index 8aaf9c4f257..67d726f5ebd 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -371,6 +371,11 @@ div.notice { background: #4f7529; } +.displayBarFill.notgood { + color: #ffffff; + background: #ffb400; +} + .displayBarFill.average { color: #ffffff; background: #cd6500; @@ -560,6 +565,11 @@ th.misc { color: #ffffff; } +/* Table styling for Med Scanner */ +.striped tr:nth-child(even) { + background-color: #404040 +} + /* Damage colors for crew monitoring computer */ .burn { color: orange; @@ -637,4 +647,4 @@ th.misc { .hot3 { color: #FF6600; -} \ No newline at end of file +} diff --git a/nano/templates/adv_med.tmpl b/nano/templates/adv_med.tmpl index 6e0e0d98752..a8790d09310 100644 --- a/nano/templates/adv_med.tmpl +++ b/nano/templates/adv_med.tmpl @@ -1,14 +1,15 @@ - + {{if !data.occupied}}
| Brute Damage: | +Brain Damage: | +
| {{:helper.displayBar(data.occupant.bruteLoss, 0, data.occupant.maxHealth+100, (data.occupant.bruteLoss < 15) ? 'notgood' : (data.occupant.bruteLoss < 40) ? 'average' : 'bad', data.occupant.bruteLoss) }} | +{{:helper.displayBar(data.occupant.brainLoss, 0, data.occupant.maxHealth+100, (data.occupant.brainLoss < 15) ? 'notgood' : (data.occupant.brainLoss < 40) ? 'average' : 'bad', data.occupant.brainLoss)}} | +
| Resp. Damage: | +Radiation Level: | +
| {{:helper.displayBar(data.occupant.oxyLoss, 0, data.occupant.maxHealth+100, (data.occupant.oxyLoss < 15) ? 'notgood' : (data.occupant.oxyLoss < 40) ? 'average' : 'bad', data.occupant.oxyLoss)}} | +{{:helper.displayBar(data.occupant.radLoss, 0, data.occupant.maxHealth+100, (data.occupant.radLoss < 15) ? 'notgood' : (data.occupant.radLoss < 40) ? 'average' : 'bad', data.occupant.radLoss)}} | +
| Toxin Damage: | +Genetic Damage: | +
| {{:helper.displayBar(data.occupant.toxLoss, 0, data.occupant.maxHealth+100, (data.occupant.toxLoss < 15) ? 'notgood' : (data.occupant.toxLoss < 40) ? 'average' : 'bad', data.occupant.toxLoss)}} | +{{:helper.displayBar(data.occupant.cloneLoss, 0, data.occupant.maxHealth+100, (data.occupant.cloneLoss < 15) ? 'notgood' : (data.occupant.cloneLoss < 40) ? 'average' : 'bad', data.occupant.cloneLoss)}} | +
| Burn Severity: | +Paralysis %: ({{:data.occupant.paralysisSeconds}} seconds left) | +
| {{:helper.displayBar(data.occupant.fireLoss, 0, data.occupant.maxHealth+100, (data.occupant.fireLoss < 15) ? 'notgood' : (data.occupant.fireLoss < 40) ? 'average' : 'bad', data.occupant.fireLoss)}} | +{{:helper.displayBar(data.occupant.paralysis, 0, 100, (data.occupant.paralysis < 25) ? 'notgood' : (data.occupant.paralysis < 50) ? 'average' : 'bad', data.occupant.paralysis)}} | +
| Name | +Total damage | +Brute damage | +Burn damage | +Injuries | +
|---|---|---|---|---|
| {{:value.name}} | +{{:helper.displayBar(value.totalLoss, 0, value.maxHealth, (value.totalLoss < value.bruised) ? 'notgood' : (value.totalLoss < value.broken) ? 'average' : 'bad', value.totalLoss) }} | +{{if value.bruteLoss> 0}} {{else}} {{/if}} {{:value.bruteLoss}} | +{{if value.fireLoss> 0}} {{else}} {{/if}} {{:value.fireLoss}} | +
+
+ {{if value.status.destroyed}} DESTROYED {{/if}} + {{if value.status.bleeding}} external bleeding {{/if}} + {{if value.internalBleeding}} internal bleeding {{/if}} + {{if value.lungRuptured}} lung ruptured {{/if}} + {{if value.status.broken}} {{:value.status.broken}} {{/if}} + {{if value.germ_level > 100}} + {{if value.germ_level < 300}} + mild infection + {{else value.germ_level < 400}} + mild infection+ + {{else value.germ_level < 500}} + mild infection++ + {{else value.germ_level < 700}} + acute infection + {{else value.germ_level < 800}} + acute infection+ + {{else value.germ_level < 900}} + acute infection++ + {{else value.germ_level >= 900}} + septic + {{/if}} {{/if}} - {{else}} - {{if value.status.internalBleeding}} - Internal Bleeding Detected. External Bleeding Detected.
- {{else}}
- External Bleeding Detected
+ {{if value.open}} open incision {{/if}} + + {{if value.status.splinted}} splinted {{/if}} + {{if value.status.robotic}} robotic {{/if}} + {{if value.implants_len}} + {{for value.implants : impValue:impindex}} + {{:impValue.known ? impValue.name : "unknown object"}} + {{/for}} {{/if}} - {{/if}} - - - {{if value.germ_level > 100}} -
-
- {{/if}}
- {{if value.open}}
-
- Infection
-
-
- {{if value.germ_level < 300}}
- Mild Infection
- {{else value.germ_level < 400}}
- Mild Infection+
- {{else value.germ_level < 500}}
- Mild Infection++
- {{else value.germ_level < 700}}
- Acute Infection
- {{else value.germ_level < 800}}
- Acute Infection+
- {{else value.germ_level < 900}}
- Acute Infection++
- {{else value.germ_level >= 900}}
- Septic
- {{/if}}
-
-
-
- {{/if}}
- {{if value.implants_len}}
-
- Operation Status
-
-
- Open Incision
-
-
-
- {{/if}}
- {{/if}}
+
- Implants
- - {{for value.implants :impValue:impindex}} -
- {{:impValue.known ? impValue.name : "Unknown"}}
- - {{/for}} - |
+
| Name | +Brute damage | +Injuries | +
|---|---|---|
| {{:value.name}} |
+ {{:helper.displayBar(value.damage, 0, value.maxHealth, (value.damage < value.bruised) ? 'notgood' : (value.damage < value.broken) ? 'average' : 'bad', value.damage) }} | +
+ {{if value.germ_level > 100}}
+ {{if value.germ_level < 300}}
+ mild infection + {{else value.germ_level < 400}} + mild infection+ + {{else value.germ_level < 500}} + mild infection++ + {{else value.germ_level < 700}} + acute Infection + {{else value.germ_level < 800}} + acute Infection+ + {{else value.germ_level < 900}} + acute Infection++ + {{else value.germ_level >= 900}} + septic + {{/if}} + {{/if}} + |
+