diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index d64e5d1bfde0..fded3d5e3f77 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -41,7 +41,7 @@ handle_chemicals_in_body(delta_time) //Organs and blood - handle_organs() + handle_organs(delta_time) handle_blood() //Random events (vomiting etc) diff --git a/code/modules/mob/living/carbon/human/life/handle_organs.dm b/code/modules/mob/living/carbon/human/life/handle_organs.dm index 8d0a0dbc3e15..2c978f2295ed 100644 --- a/code/modules/mob/living/carbon/human/life/handle_organs.dm +++ b/code/modules/mob/living/carbon/human/life/handle_organs.dm @@ -1,11 +1,11 @@ // Takes care of organ & limb related updates, such as broken and missing limbs -/mob/living/carbon/human/proc/handle_organs() +/mob/living/carbon/human/proc/handle_organs(delta_time) last_dam = getBruteLoss() + getFireLoss() + getToxLoss() // Processing internal organs is pretty cheap, do that first. for(var/datum/internal_organ/I as anything in internal_organs) - I.process() + I.process(delta_time) for(var/obj/limb/E as anything in limbs_to_process) if(!E) diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index 1038f2a86e8a..5325e89910ba 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -247,6 +247,20 @@ robotic_type = /obj/item/organ/brain/prosthetic vital = 1 +/datum/internal_organ/brain/process(delta_time) + ..() + + if(organ_status >= ORGAN_BRUISED && prob(5 * delta_time)) + var/dir_choice = pick(list(NORTH, SOUTH, EAST, WEST)) + owner.drop_held_items() + owner.Move(get_step(get_turf(owner), dir_choice)) + to_chat(owner, SPAN_DANGER("Your mind wanders and goes blank for a moment...")) + + if(organ_status >= ORGAN_BROKEN && prob(5 * delta_time)) + owner.apply_effect(1, PARALYZE) + owner.make_jittery(50) + to_chat(owner, SPAN_DANGER("Your body seizes up!")) + /datum/internal_organ/brain/prosthetic //used by synthetic species robotic = ORGAN_ROBOT removed_type = /obj/item/organ/brain/prosthetic