mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
burn wounds, for real this time (#20542)
* burn wounds * user feedback * ready for review * sean review * Apply suggestions from code review Co-authored-by: Farie82 <farie82@users.noreply.github.com> * surgery fix * other repair methods * GDN review * health scanner feedback * Update code/game/objects/items/devices/scanners.dm Co-authored-by: Nathan Winters <100448493+CinnamonSnowball@users.noreply.github.com> * bodyscanner print out * Update code/game/machinery/adv_med.dm --------- Co-authored-by: Farie82 <farie82@users.noreply.github.com> Co-authored-by: Nathan Winters <100448493+CinnamonSnowball@users.noreply.github.com>
This commit is contained in:
@@ -207,7 +207,9 @@ REAGENT SCANNER
|
||||
to_chat(user, "<span class='warning'>Significant brain damage detected. Subject may have had a concussion.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Subject has no brain.</span>")
|
||||
|
||||
var/broken_bone = FALSE
|
||||
var/internal_bleed = FALSE
|
||||
var/burn_wound = FALSE
|
||||
for(var/name in H.bodyparts_by_name)
|
||||
var/obj/item/organ/external/e = H.bodyparts_by_name[name]
|
||||
if(!e)
|
||||
@@ -216,20 +218,18 @@ REAGENT SCANNER
|
||||
if(e.status & ORGAN_BROKEN)
|
||||
if((e.limb_name in list("l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot")) && !(e.status & ORGAN_SPLINTED))
|
||||
to_chat(user, "<span class='warning'>Unsecured fracture in subject [limb]. Splinting recommended for transport.</span>")
|
||||
broken_bone = TRUE
|
||||
if(e.has_infected_wound())
|
||||
to_chat(user, "<span class='warning'>Infected wound detected in subject [limb]. Disinfection recommended.</span>")
|
||||
burn_wound = burn_wound || (e.status & ORGAN_BURNT)
|
||||
internal_bleed = internal_bleed || (e.status & ORGAN_INT_BLEEDING)
|
||||
if(broken_bone)
|
||||
to_chat(user, "<span class='warning'>Bone fractures detected. Advanced scanner required for location.</span>")
|
||||
if(internal_bleed)
|
||||
to_chat(user, "<span class='warning'>Internal bleeding detected. Advanced scanner required for location.</span>")
|
||||
if(burn_wound)
|
||||
to_chat(user, "<span class='warning'>Critical burn detected. Examine patient's body for location.</span>")
|
||||
|
||||
for(var/name in H.bodyparts_by_name)
|
||||
var/obj/item/organ/external/e = H.bodyparts_by_name[name]
|
||||
if(!e)
|
||||
continue
|
||||
if(e.status & ORGAN_BROKEN)
|
||||
to_chat(user, "<span class='warning'>Bone fractures detected. Advanced scanner required for location.</span>")
|
||||
break
|
||||
for(var/obj/item/organ/external/e in H.bodyparts)
|
||||
if(e.status & ORGAN_INT_BLEEDING)
|
||||
to_chat(user, "<span class='warning'>Internal bleeding detected. Advanced scanner required for location.</span>")
|
||||
break
|
||||
var/blood_id = H.get_blood_id()
|
||||
if(blood_id)
|
||||
if(H.bleed_rate)
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
remburn = nremburn
|
||||
user.visible_message("<span class='green'>[user] [healverb]s the wounds on [H]'s [E.name] with the remaining medication.</span>", \
|
||||
"<span class='green'>You [healverb] the wounds on [H]'s [E.name] with the remaining medication.</span>" )
|
||||
return affecting
|
||||
|
||||
//Bruise Packs//
|
||||
|
||||
@@ -220,6 +221,19 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[affecting] is cut open, you'll need more than some ointment!</span>")
|
||||
|
||||
/obj/item/stack/medical/ointment/heal(mob/living/M, mob/user)
|
||||
var/obj/item/organ/external/affecting = ..()
|
||||
if((affecting.status & ORGAN_BURNT) && !(affecting.status & ORGAN_SALVED))
|
||||
affecting.status |= ORGAN_SALVED
|
||||
addtimer(CALLBACK(affecting, TYPE_PROC_REF(/obj/item/organ/external, remove_ointment), heal_burn), 3 MINUTES)
|
||||
|
||||
/obj/item/organ/external/proc/remove_ointment(heal_amount) //de-ointmenterized D:
|
||||
status &= ~ORGAN_SALVED
|
||||
perma_injury = max(perma_injury - heal_amount, 0)
|
||||
if(owner)
|
||||
owner.updatehealth("permanent injury removal")
|
||||
if(!perma_injury)
|
||||
fix_burn_wound(update_health = FALSE)
|
||||
|
||||
/obj/item/stack/medical/ointment/advanced
|
||||
name = "advanced burn kit"
|
||||
|
||||
Reference in New Issue
Block a user