From 9228ea67b8070d83085e406c5f8a827170214b11 Mon Sep 17 00:00:00 2001 From: morrowwolf Date: Sun, 30 Jul 2023 13:30:01 -0400 Subject: [PATCH] Brain nerf (#4052) # About the pull request Brain damage is now important again. If you have 10 or more brain damage you drop items and walk in one tile randomly. If you have 30 or more brain damage you do the above and also get paralyzed randomly and jitter. # Explain why it's good for the game Organ damage should be important and emergent. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: Morrow add: Brain damage now causes random wandering, dropping of items, paralysis, and jittering /:cl: --- code/modules/mob/living/carbon/human/life.dm | 2 +- .../mob/living/carbon/human/life/handle_organs.dm | 4 ++-- code/modules/organs/organ_internal.dm | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) 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