From b9b6a6d5be1b3e8b15e45ae71b2076ff24f65100 Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 31 Jan 2014 00:31:41 +0300 Subject: [PATCH] Check for verb removal. --- code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/mob/mob.dm | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index e675c836ff..68d178c640 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1103,7 +1103,7 @@ del(feet_blood_DNA) return 1 -/mob/living/carbon/human/proc/get_visible_implants(var/class = 0) +/mob/living/carbon/human/get_visible_implants(var/class = 0) var/list/visible_implants = list() for(var/datum/organ/external/organ in src.organs) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index df2f719262..d569cf24f1 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -895,6 +895,13 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/flash_weak_pain() flick("weak_pain",pain) +/mob/proc/get_visible_implants(var/class = 0) + var/list/visible_implants = list() + for(var/obj/item/O in embedded) + if(O.w_class > class) + visible_implants += O + return visible_implants + mob/proc/yank_out_object() set category = "Object" set name = "Yank out object" @@ -921,14 +928,7 @@ mob/proc/yank_out_object() if(S == U) self = 1 // Removing object from yourself. - if(istype(src,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = src - valid_objects = H.get_visible_implants(1) - else - for(var/obj/item/weapon/W in embedded) - if(W.w_class >= 2) - valid_objects += W - + valid_objects = get_visible_implants(1) if(!valid_objects.len) if(self) src << "You have nothing stuck in your body that is large enough to remove." @@ -952,7 +952,9 @@ mob/proc/yank_out_object() visible_message("[src] rips [selection] out of their body.","You rip [selection] out of your body.") else visible_message("[usr] rips [selection] out of [src]'s body.","[usr] rips [selection] out of your body.") - src.verbs -= /mob/proc/yank_out_object + valid_objects = get_visible_implants(0) + if(valid_objects.len == 1) //Yanking out last object - removing verb. + src.verbs -= /mob/proc/yank_out_object if(istype(src,/mob/living/carbon/human))