From 5e8fa9de8484c9f971e66216fbe5487490f9318d Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Thu, 11 Feb 2016 14:36:16 -0500 Subject: [PATCH] commiting before fixing merge conflicts and stumps cuase i think i got a fix from of all places bay --- code/modules/surgery/bones.dm | 6 ++++-- code/modules/surgery/face.dm | 13 +++++++++++++ code/modules/surgery/limb_reattach.dm | 10 ++++++---- code/modules/surgery/organs_internal.dm | 4 ++++ 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/code/modules/surgery/bones.dm b/code/modules/surgery/bones.dm index a6b47e90a1a..4a3848a483a 100644 --- a/code/modules/surgery/bones.dm +++ b/code/modules/surgery/bones.dm @@ -18,9 +18,11 @@ if(istype(target,/mob/living/carbon/human)) var/mob/living/carbon/human/H = target var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) - if((affected.status & ORGAN_ROBOT)) + if((target.get_species() == "Machine")) return 0 - if(target.get_species() == "Machine") + if((target.get_species() == "Diona")) + return 0 + if(affected && (affected.status & ORGAN_ROBOT)) return 0 if(!(affected.encased)) return 0 diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm index 6e53e4dbee5..c2af503c62c 100644 --- a/code/modules/surgery/face.dm +++ b/code/modules/surgery/face.dm @@ -7,6 +7,19 @@ steps = list(/datum/surgery_step/generic/cut_face, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/face/mend_vocal, /datum/surgery_step/face/fix_face,/datum/surgery_step/face/cauterize) possible_locs = list("head") + +/datum/surgery/plastic_surgery/can_start(mob/user, mob/living/carbon/target) + if(istype(target,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = target + var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) + if(affected && (affected.status & ORGAN_ROBOT)) + return 0 + if((target.get_species() == "Machine")) + return 0 + if(!(affected.encased)) + return 0 + return 1 + /datum/surgery_step/face priority = 2 can_infect = 0 diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index 88585afeaa2..d132eb60a78 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -29,6 +29,8 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) + if((target.get_species() == "Machine")) + return 0 if(!affected) return 1 @@ -134,8 +136,8 @@ user.visible_message("[user] has connected tendons and muscles in [target]'s [E.amputation_point] with [tool].", \ "You have connected tendons and muscles in [target]'s [E.amputation_point] with [tool].") E.status &= ~ORGAN_DESTROYED - var/obj/item/organ/external/stump = target.get_organ(target_zone) - if(stump.is_stump()) + var/obj/item/organ/external/stump = target.organs_by_name["limb stump"] + if(stump) stump.removed(target) if(E.children) for(var/obj/item/organ/external/C in E.children) @@ -182,8 +184,8 @@ var/list/organ_data = target.species.has_limbs["[part_name]"] if(!organ_data) continue - var/obj/item/organ/external/stump = target.get_organ(target_zone) - if(stump.is_stump()) + var/obj/item/organ/external/stump = target.organs_by_name["limb stump"] + if(stump) stump.removed(target) var/new_limb_type = organ_data["path"] var/obj/item/organ/external/new_limb = new new_limb_type(target) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 4a6f84e9b2f..6eb755c82ee 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -8,11 +8,13 @@ /datum/surgery/organ_manipulation/soft possible_locs = list("groin", "eyes", "mouth") steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/internal/manipulate_organs,/datum/surgery_step/generic/cauterize) + requires_organic_bodypart = 1 /datum/surgery/organ_manipulation/boneless possible_locs = list("chest","head","groin", "eyes", "mouth") steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/internal/manipulate_organs,/datum/surgery_step/generic/cauterize) allowed_mob = list(/mob/living/carbon/human/diona) + requires_organic_bodypart = 1 /datum/surgery/organ_manipulation/alien name = "alien organ manipulation" @@ -28,6 +30,8 @@ var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) if(affected && (affected.status & ORGAN_ROBOT)) return 0 + if((target.get_species() == "Machine")) + return 0 return 1 // Internal surgeries.