diff --git a/code/game/objects/items/devices/scanners/guide.dm b/code/game/objects/items/devices/scanners/guide.dm new file mode 100644 index 00000000000..0daaafb58e1 --- /dev/null +++ b/code/game/objects/items/devices/scanners/guide.dm @@ -0,0 +1,99 @@ +/obj/item/device/healthanalyzer + var/guide = FALSE + +/obj/item/device/healthanalyzer/verb/toggle_guide() + guide = !guide + to_chat(usr, "You toggle \the [src]'s guidance system.") + + +/obj/item/device/healthanalyzer/guide + name = "Instructional health analyzer" + desc = "It shows extra information to medical personel!" + guide = TRUE + +/obj/item/device/healthanalyzer/proc/guide(var/mob/living/carbon/human/M, mob/living/user) + + var/obj/item/weapon/card/id/ourid = user?.GetIdCard() + if(!ourid) + return + if(access_change_ids in ourid.access) + playsound(src, 'sound/machines/defib_failed.ogg', 50, 0) + return + if(access_medical in ourid.access) + playsound(src, 'sound/effects/pop.ogg', 50, FALSE) + else + playsound(src, 'sound/machines/defib_failed.ogg', 50, 0) + + if(!ishuman(M)) + return + + var/dat = "" + + var/bleeding_external = FALSE + var/bleeding_internal = FALSE + var/infection = FALSE + var/organ = FALSE + var/bone = FALSE + var/bloodloss = FALSE + var/robotparts = FALSE + + for(var/obj/item/organ/org in M.organs) + if(org.robotic >= ORGAN_ROBOT) + robotparts = TRUE + continue + if(istype(org,/obj/item/organ/external)) + var/obj/item/organ/external/e = org + if(e.status & ORGAN_BLEEDING) + bleeding_external = TRUE + if(e.status & ORGAN_BROKEN && (!e.splinted)) + bone = TRUE + if(istype(org,/obj/item/organ/internal)) + if(org.status & ORGAN_BLEEDING) + bleeding_internal = TRUE + if(org.damage) + organ = TRUE + if(org.germ_level > INFECTION_LEVEL_ONE) + infection = TRUE + + var/blood_volume = M.vessel.get_reagent_amount("blood") + if(blood_volume <= M.species.blood_volume*M.species.blood_level_safe) + bloodloss = TRUE + + if(bleeding_external) + dat += "Surface bleeding - Bandage immediately or apply brute-damage fixing chemicals (i.e. Bicaridine) if no bandages available.
" + if(bleeding_internal && (advscan >= 1 && showadvscan == 1)) + dat += "Internal bleeding - Commence internal vein repair surgery or apply clotting chemicals (i.e. Myelamine).
" + if(M.getOxyLoss()) + dat += "Suffociation - Give Dexalin or Dexaline Plus. Check for heart or lung damage.
" + if(infection) + dat += "Infection - Give Spaceacilin. If severe, overdose on Spaceacilin and monitor until well.
" + if((M.getBrainLoss() >= 1 && advscan >= 2 && showadvscan == 1) || M.getBrainLoss() >= 10) + dat += "Brain damage - Commence brain repair surgery, apply Alkysine, or universal organ-repair chemicals. (i.e. Peridaxon)
" + if(M.radiation || M.accumulated_rads) + dat += "Radiation - Give Hyroanlin or Arithazine. Monitor for genetic damage.
" + if(organ && (advscan >= 1 && showadvscan == 1)) + dat += "Organ damage - Give Peridaxon. Perform full body scan for targetted organ repair surgery.
" + if(bloodloss) + dat += "Low blood volume - Commence blood transfusion via IV drip or provide blood-restorative chemicals (i.e. Iron)." + if(M.getToxLoss()) + dat += "Toxins - Give Dylovene or Cartholine. Vomitting is normal and helpful. Tends to be a symptom of larger issues, such as infection.
" + if(M.getBruteLoss()) + dat += "Brute Trauma - Bandage wounded body part. Give Bicaridine or Vermicetol.
" + if(M.getFireLoss()) + dat += "Surface burn - Salve wounded body part in ointment. Give Kelotane or Dermaline. Check for infections.
" + if(M.getCloneLoss()) + dat += "Genetic damage - Utilize cryogenic pod with appropriate chemicals (i.e. Cryoxadone) and below 70 K, or give Rezadone.
" + if(bone) + dat += "Bone fracture - Splint damaged area. Treat with bone repair surgery or Osteodaxon after treating brute damage.
" + if(M.virus2.len) + dat += "Viral infection - Proceed with virology pathogen curing procedures or apply antiviral chemicals (i.e. Corophizine)
" + if(robotparts) + dat += "Robotic body parts - Should not be repaired by medical personnel, refer to robotics if damaged." + + var/peeb + if(dat) + peeb +="GUIDANCE SYSTEM BEGIN
" + peeb += dat + + + user.show_message(peeb, 1) diff --git a/vorestation.dme b/vorestation.dme index 5f44917615f..f503be6f860 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1248,6 +1248,7 @@ #include "code\game\objects\items\devices\radio\radio_vr.dm" #include "code\game\objects\items\devices\radio\radiopack.dm" #include "code\game\objects\items\devices\scanners\gas.dm" +#include "code\game\objects\items\devices\scanners\guide.dm" #include "code\game\objects\items\devices\scanners\halogen.dm" #include "code\game\objects\items\devices\scanners\health.dm" #include "code\game\objects\items\devices\scanners\mass_spectrometer.dm"