diff --git a/code/modules/surgery/bones.dm b/code/modules/surgery/bones.dm index fff50be4376..b822552bd5c 100644 --- a/code/modules/surgery/bones.dm +++ b/code/modules/surgery/bones.dm @@ -7,14 +7,12 @@ name = "bone repair" steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders,/datum/surgery_step/generic/retract_skin, /datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize) possible_locs = list("chest","l_arm", "l_hand","r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","groin") - disallowed_mob = list(/mob/living/carbon/human/machine,/mob/living/carbon/human/diona,/mob/living/carbon/human/slime) /datum/surgery/bone_repair/skull name = "bone repair" steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/glue_bone, /datum/surgery_step/mend_skull,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize) possible_locs = list("head") - disallowed_mob = list(/mob/living/carbon/human/machine,/mob/living/carbon/human/diona,/mob/living/carbon/human/slime) /datum/surgery/bonerepair/can_start(mob/user, mob/living/carbon/target) if(istype(target,/mob/living/carbon/human)) diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index 33bc4bda768..b5aeb2a61e2 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -3,14 +3,12 @@ var/mob/living/carbon/human/H var/obj/item/organ/external/affecting var/selected_zone = user.zone_sel.selecting + if(istype(M, /mob/living/carbon/human)) H = M affecting = H.get_organ(check_zone(selected_zone)) - else if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime)) - H = M - affecting = selected_zone - if(can_operate(H)) //if they're prone or a slime + if(can_operate(H) || isslime(M) ||isalien(M)) //if they're prone or a slime var/datum/surgery/current_surgery for(var/datum/surgery/S in M.surgeries) diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index 29cc6a28f2c..797c4172fa6 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -17,6 +17,8 @@ return 0 if(affected && (affected.status && ORGAN_DESTROYED)) return 0 + if(affected.is_stump()) + return 0 return 1 @@ -35,6 +37,8 @@ return 1 if(affected && (affected.status && ORGAN_DESTROYED)) return 1 + if(affected.is_stump()) + return 1 return 0 @@ -53,6 +57,8 @@ return 1 if(affected && (affected.status && ORGAN_DESTROYED)) return 1 + if(affected.is_stump()) + return 1 return 0 diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 389f47dd65e..4786b62c377 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -4,7 +4,6 @@ /datum/surgery_step/open_encased/retract, /datum/surgery_step/internal/manipulate_organs, /datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize) possible_locs = list("chest","head") requires_organic_bodypart = 0 - disallowed_mob = list(/mob/living/carbon/human/machine,/mob/living/carbon/human/diona,/mob/living/carbon/human/slime) /datum/surgery/organ_manipulation/soft possible_locs = list("groin", "eyes", "mouth") diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index ba22b72ae18..7854f45daff 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -20,7 +20,7 @@ var/obj/item/organ/organ_ref //Operable body part var/current_organ = "organ" var/list/allowed_mob = list(/mob/living/carbon/human) - var/list/disallowed_mob = list(/mob/living/carbon/human/machine) + var/list/disallowed_mob = null /datum/surgery/proc/can_start(mob/user, mob/living/carbon/target) // if 0 surgery wont show up in list