From ef0f21bd1a76f70c0bc0ad303f42a1be56d8e246 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 18 May 2015 07:41:19 +0300 Subject: [PATCH] Ghetto MD part 2 Examining people with grab-exmaine move now can tell you if they have toxins in blood, or are short of breath. Stethoscopes now actually give real info about severe oxyloss/internal organs damage. --- .../clothing/under/accessories/accessory.dm | 34 ++++++++++++++----- code/modules/mob/mob_grab.dm | 18 ++++++++-- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index ce4ff8306b4..feef7d06b1a 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -91,24 +91,42 @@ if(MALE) their = "his" if(FEMALE) their = "her" - var/sound = "pulse" - var/sound_strength - + var/sound = "heartbeat" + var/sound_strength = "cannot hear" + var/heartbeat = 0 + if(M.species && M.species.has_organ["heart"]) + var/obj/item/organ/heart/heart = M.internal_organs_by_name["heart"] + if(heart && !heart.robotic) + heartbeat = 1 if(M.stat == DEAD || (M.status_flags&FAKEDEATH)) sound_strength = "cannot hear" sound = "anything" else - sound_strength = "hear a weak" switch(body_part) if("chest") - if(M.oxyloss < 50) - sound_strength = "hear a healthy" - sound = "pulse and respiration" + sound_strength = "hear" + sound = "no heartbeat" + if(heartbeat) + var/obj/item/organ/heart/heart = M.internal_organs_by_name["heart"] + if(heart.is_bruised() || M.getOxyLoss() > 50) + sound = "[pick("odd noises in","weak")] heartbeat" + else + sound = "healthy heartbeat" + + var/obj/item/organ/heart/L = M.internal_organs_by_name["lungs"] + if(!L || M.losebreath) + sound += " and no respiration" + else if(M.is_lung_ruptured() || M.getOxyLoss() > 50) + sound += " and [pick("wheezing","gurgling")] sounds" + else + sound += " and healthy respiration" if("eyes","mouth") sound_strength = "cannot hear" sound = "anything" else - sound_strength = "hear a weak" + if(heartbeat) + sound_strength = "hear a weak" + sound = "pulse" user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].") return diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 8a77b5cd25e..fb02287db6b 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -301,18 +301,30 @@ var/obj/item/organ/external/E = H.get_organ(hit_zone) if(E && !(E.status & ORGAN_DESTROYED)) assailant.visible_message("[assailant] starts inspecting [affecting]'s [E.name] carefully.") - if(do_after(assailant, 10) && affecting && E) + if(do_after(assailant, 10) && H && E) if(E.wounds.len) assailant << "You find [E.get_wounds_desc()]" else assailant << "You find no visible wounds." assailant << "Checking bones now..." - if(do_after(assailant, 15) && affecting && E) + if(do_after(assailant, 20) && H && E) if(E.status & ORGAN_BROKEN) - assailant << "The [E.encased ? E.encased : "bone in the [E.name]"] is fractured!" + assailant << "The [E.encased ? E.encased : "bone in the [E.name]"] moves slightly when you poke it!" H.custom_pain("Your [E.name] hurts where it's poked.") else assailant << "The [E.encased ? E.encased : "bones in the [E.name]"] seem to be fine." + assailant << "Checking skin now..." + if(do_after(assailant, 10) && H && E) + var/bad = 0 + if(H.getToxLoss() >= 40) + assailant << "[H] has an unhealthy skin discoloration." + bad = 1 + if(H.getOxyLoss() >= 20) + assailant << "[H]'s skin is unusaly pale." + bad = 1 + if(!bad) + assailant << "[H]'s skin is normal." + if(I_GRAB) if(state < GRAB_AGGRESSIVE) assailant << "You require a better grab to do this."