From a6d6cf78254760d9febccd36ff472479a07a4b41 Mon Sep 17 00:00:00 2001 From: Heroman Date: Wed, 19 Feb 2020 08:35:37 +1000 Subject: [PATCH] More fixes for broken medical --- code/_onclick/item_attack.dm | 7 ++----- code/modules/surgery/surgery.dm | 16 +++++++--------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 9bb70214ba..ad904e46ff 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -44,11 +44,8 @@ avoid code duplication. This includes items that may sometimes act as a standard /mob/living/attackby(obj/item/I, mob/user, var/attack_modifier) if(!ismob(user)) return 0 - if(can_operate(src) && I.can_do_surgery(src,user)) - if(I.do_surgery(src,user)) - return 1 - else - return 0 + if(can_operate(src) && I.do_surgery(src,user)) + return 1 if(attempt_vr(src,"vore_attackby",args)) return //VOREStation Add - The vore, of course. return I.attack(src, user, user.zone_sel.selecting, attack_modifier) diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index a288ec7129..03fb7ad40f 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -71,6 +71,9 @@ // TODO: make it based on area coverage rather than just forbid spacesuits? // Returns true if target organ is covered /datum/surgery_step/proc/coverage_check(mob/living/user, mob/living/carbon/human/target, obj/item/organ/external/affected, obj/item/tool) + if(!affected) + return FALSE + if(affected.organ_tag == BP_HEAD) if(target.head && istype(target.head,/obj/item/clothing/head/helmet/space)) return TRUE @@ -122,17 +125,12 @@ return 0 if(!ishuman(M)) return 1 - var/mob/living/carbon/human/H = M - var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) - if(affected) - for(var/datum/surgery_step/S in surgery_steps) - if(!affected.open && S.req_open) - continue - else - return 1 - return 0 + + return 1 /obj/item/proc/do_surgery(mob/living/carbon/M, mob/living/user) + if(!can_do_surgery(M, user)) + return 0 if(!istype(M)) return 0 if (user.a_intent == I_HURT) //check for Hippocratic Oath