diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index b7a525e21b1..6617f5daa4d 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -46,7 +46,7 @@ obj/item/proc/get_clamped_volume() //var/messagesource = M if (can_operate(M)) //Checks if mob is lying down on table for surgery if (do_surgery(M,user,src)) - return + return 1 //if (istype(M,/mob/living/carbon/brain)) // messagesource = M:container if (hitsound) diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index abc684d4816..eefae8a3a19 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -295,6 +295,8 @@ LOOK FOR SURGERY.DM*/ suicide_act(mob/user) viewers(user) << "\red [user] is burning \his eyes out with the [src.name]! It looks like \he's trying to commit suicide!" return (BRUTELOSS) + is_hot() + return 1 /* /obj/item/weapon/cautery/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 639d297483e..76d2caafbbe 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -531,6 +531,9 @@ /obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob) if(hasorgans(M)) + if(can_operate(M)) + if(do_surgery(M, user, tool)) + return var/datum/organ/external/S = M:organs_by_name[user.zone_sel.selecting] if (!S) return if(!(S.status & ORGAN_ROBOT) || user.a_intent != I_HELP) diff --git a/code/modules/surgery/butt.dm b/code/modules/surgery/butt.dm index fe4765387fb..5e6d1295ebe 100644 --- a/code/modules/surgery/butt.dm +++ b/code/modules/surgery/butt.dm @@ -115,6 +115,12 @@ ///////CAUTERIZE BUTT///////// +/datum/surgery_step/butt/cauterize_butt/tool_quality(obj/item/tool) + if(tool.is_hot()) + for (var/T in allowed_tools) + if (istype(tool,T)) + return allowed_tools[T] + return 0 /datum/surgery_step/butt/cauterize_butt allowed_tools = list( /obj/item/weapon/cautery = 100, diff --git a/code/modules/surgery/eye.dm b/code/modules/surgery/eye.dm index d4515d99453..0e35502826f 100644 --- a/code/modules/surgery/eye.dm +++ b/code/modules/surgery/eye.dm @@ -122,6 +122,12 @@ //////CAUTERIZE/////// +/datum/surgery_step/eye/cauterize/tool_quality(obj/item/tool) + if(tool.is_hot()) + for (var/T in allowed_tools) + if (istype(tool,T)) + return allowed_tools[T] + return 0 /datum/surgery_step/eye/cauterize allowed_tools = list( /obj/item/weapon/cautery = 100, diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm index 24cee776c7d..a6251cc0554 100644 --- a/code/modules/surgery/face.dm +++ b/code/modules/surgery/face.dm @@ -112,6 +112,12 @@ ////////CAUTERIZE//////// +/datum/surgery_step/face/cauterize/tool_quality(obj/item/tool) + if(tool.is_hot()) + for (var/T in allowed_tools) + if (istype(tool,T)) + return allowed_tools[T] + return 0 /datum/surgery_step/face/cauterize allowed_tools = list( /obj/item/weapon/cautery = 100, diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index d75242bac28..265a7df8020 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -275,6 +275,12 @@ /////////CAUTERIZE/////// +/datum/surgery_step/generic/cauterize/tool_quality(obj/item/tool) + if(tool.is_hot()) + for (var/T in allowed_tools) + if (istype(tool,T)) + return allowed_tools[T] + return 0 /datum/surgery_step/generic/cauterize allowed_tools = list( /obj/item/weapon/cautery = 100, diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm index a06321d12bb..22e651ed476 100644 --- a/code/modules/surgery/headreattach.dm +++ b/code/modules/surgery/headreattach.dm @@ -125,6 +125,12 @@ //////PREPARE/////// +/datum/surgery_step/head/prepare/tool_quality(obj/item/tool) + if(tool.is_hot()) + for (var/T in allowed_tools) + if (istype(tool,T)) + return allowed_tools[T] + return 0 /datum/surgery_step/head/prepare allowed_tools = list( /obj/item/weapon/cautery = 100, diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm index 521dbefb375..54fefb77212 100644 --- a/code/modules/surgery/implant.dm +++ b/code/modules/surgery/implant.dm @@ -71,6 +71,12 @@ ///////CLOSE SPACE///// +/datum/surgery_step/cavity/close_space/tool_quality(obj/item/tool) + if(tool.is_hot()) + for (var/T in allowed_tools) + if (istype(tool,T)) + return allowed_tools[T] + return 0 /datum/surgery_step/cavity/close_space priority = 2 allowed_tools = list( diff --git a/code/modules/surgery/robolimbs.dm b/code/modules/surgery/robolimbs.dm index c91caf946d1..3d0c0960cdb 100644 --- a/code/modules/surgery/robolimbs.dm +++ b/code/modules/surgery/robolimbs.dm @@ -90,6 +90,12 @@ //////PREPARE/////// +/datum/surgery_step/limb/prepare/tool_quality(obj/item/tool) + if(tool.is_hot()) + for (var/T in allowed_tools) + if (istype(tool,T)) + return allowed_tools[T] + return 0 /datum/surgery_step/limb/prepare allowed_tools = list( /obj/item/weapon/cautery = 100,