diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 95b2e67811..648000bee6 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -190,6 +190,12 @@ else if(jitteriness >= 100) msg += "[t_He] [t_is] twitching ever so slightly.\n" + //splints + for(var/organ in list("l_leg","r_leg","l_arm","r_arm")) + var/datum/organ/external/o = get_organ(organ) + if(o && o.status & ORGAN_SPLINTED) + msg += "[t_He] [t_has] a splint on his [o.display_name]!\n" + if(suiciding) msg += "[t_He] appears to have commited suicide... there is no hope of recovery.\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d9cd07e05c..2027ca6746 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -379,6 +379,7 @@
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(legcuffed ? text("Legcuffed") : text(""))]
[(internal ? text("Remove Internal") : "")] +
Remove Splints
Empty Pockets
Refresh
Close diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 894ea1ff04..22ea3b9400 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -25,6 +25,8 @@ var/datum/organ/external/E = get_organ(organ_name) if(!E || (E.status & ORGAN_DESTROYED)) tally += 4 + if(E.status & ORGAN_SPLINTED) + tally += 0.5 else if(E.status & ORGAN_BROKEN) tally += 1.5 diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 3bdf798a6b..0aa332dc1b 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -340,6 +340,16 @@ if("id") if ((!( target.wear_id ) || !( target.w_uniform ))) del(src) + if("splints") + var/count = 0 + for(var/organ in list("l_leg","r_leg","l_arm","r_arm")) + var/datum/organ/external/o = target.organs_by_name[organ] + if(o.status & ORGAN_SPLINTED) + count = 1 + break + if(count == 0) + del(src) + return if("internal") if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && istype(target.back, /obj/item/weapon/tank) && !( target.internal )) ) && !( target.internal ))) del(src) @@ -443,6 +453,9 @@ message = "\red [source] is trying to remove [target]'s internals" else message = "\red [source] is trying to set on [target]'s internals." + if("splints") + message = text("\red [] is trying to remove []'s splints!", source, target) + for(var/mob/M in viewers(target, null)) M.show_message(message, 1) spawn( HUMAN_STRIP_DELAY ) @@ -541,6 +554,16 @@ It can still be worn/put on as normal. slot_to_process = slot_legcuffed if (target.legcuffed) strip_item = target.legcuffed + if("splints") + for(var/organ in list("l_leg","r_leg","l_arm","r_arm")) + var/datum/organ/external/o = target.get_organ(organ) + if (o && o.status & ORGAN_SPLINTED) + var/obj/item/W = new /obj/item/stack/medical/splint/single() + o.status &= ~ORGAN_SPLINTED + if (W) + W.loc = target.loc + W.layer = initial(W.layer) + W.add_fingerprint(source) if("CPR") if ((target.health > config.health_threshold_dead && target.health < config.health_threshold_crit)) var/suff = min(target.getOxyLoss(), 7) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index dc16e55bd0..8cf63f673c 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -80,7 +80,7 @@ //Broken limbs hurt too var/broken = 0 - if(E.status & ORGAN_BROKEN && !(E.status & ORGAN_SPLINTED && prob(10)) ) + if(E.status & ORGAN_BROKEN && !(E.status & ORGAN_SPLINTED) ) broken = 1 //Moving around with fractured ribs won't do you any good diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 5bf1ae808b..3ecb07ea6a 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index e53127bd93..ec08cf37e7 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ