Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d56aab8
Part 1: Surgery preop sounds
Puckaboo2 Sep 1, 2026
08a69b8
Yeah, no, we're not trying to burn them away.
Puckaboo2 Sep 1, 2026
5f98610
Whoops.
Puckaboo2 Sep 1, 2026
ce77352
More sounds. MOAR.
Puckaboo2 Sep 2, 2026
5622805
Ohhh shit, this would have been an issue.
Puckaboo2 Sep 2, 2026
c1bda23
debug before you push you dumb bitch *sigh*
Puckaboo2 Sep 2, 2026
74f5b7e
Uhh this didn't export properly. Fixed it.
Puckaboo2 Sep 3, 2026
6c1760e
Update cigarettelighter.ogg
Puckaboo2 Sep 3, 2026
f949132
New sounds
Puckaboo2 Sep 3, 2026
af5a235
fine, merge pls
Puckaboo2 Sep 3, 2026
65d4719
whoops
Puckaboo2 Sep 3, 2026
9d54c62
Merge branch 'surgerysoundupd8' into surgerysoundupd8_1
Puckaboo2 Sep 3, 2026
85c53a2
Update surgery_steps.dm
Puckaboo2 Sep 3, 2026
0d846c5
Don't ask me where success is. It's custom.
Puckaboo2 Sep 3, 2026
3f818e7
Finishing touches, hopefully
Puckaboo2 Sep 3, 2026
321db15
Merge branch 'surgerysoundupd8' into surgerysoundupd8_1
Puckaboo2 Sep 3, 2026
14a570a
Don't ask me where success is. It's custom.
Puckaboo2 Sep 3, 2026
e526d43
Finishing touches, hopefully
Puckaboo2 Sep 3, 2026
c817f1e
Forgot some things.
Puckaboo2 Sep 3, 2026
f660e4d
final touches....
Puckaboo2 Sep 3, 2026
d10ba51
Nope, forgot to fix this
Puckaboo2 Sep 3, 2026
1833cae
Overlapping surgical sounds is bad. This helps, a little bit.
Puckaboo2 Sep 3, 2026
98f1bda
I think everything is working now?
Puckaboo2 Sep 4, 2026
1be1deb
Fine, I'll reverse the synth change
Puckaboo2 Sep 4, 2026
f8823e6
Yeah, I'm reversing that change.
Puckaboo2 Sep 5, 2026
cbfa7de
Merge branch 'master' into surgery_sound_upd8_2
Puckaboo2 Sep 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions code/__DEFINES/surgery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ unless the surgical tool is completely unsuited to what it's being used for.*/
// SURGICAL TOOLS //
/////////////////////////////

//Lists of tools and surgery time multipliers when using them. These are shared lists - a number of steps have their own individual lists.
//Lists of tools and surgery time multipliers when using them. These are shared lists - a number of steps have their own individual lists. Some individual lists were turned into defines for sound applications.

///Tools routinely used to hit people, which wouldn't make sense to give 'you can't open an incision with xyz' messages.
#define SURGERY_TOOLS_NO_INIT_MSG list(\
Expand Down Expand Up @@ -123,7 +123,20 @@ See also /datum/surgery_step/cut_larval_pseudoroots, /datum/surgery_step/retract
/obj/item/tool/kitchen/utensil/fork = SURGERY_TOOL_MULT_AWFUL\
)

//Generic 'SURGERY_TOOLS_PRY' is only used by /datum/surgery_step/peel_skin at present. /datum/surgery_step/retract_skin also has that list, with incision tools added.
///Tools used to pry open specifically incisions. Contains INCISION tools at lengthy delays, mainly so surgeons can dramatically slash open incisions with them.
#define SURGERY_TOOLS_PRY list(\
/obj/item/tool/surgery/retractor = SURGERY_TOOL_MULT_IDEAL,\
/obj/item/tool/surgery/hemostat = SURGERY_TOOL_MULT_SUBOPTIMAL,\
/obj/item/tool/crowbar = SURGERY_TOOL_MULT_SUBSTITUTE,\

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Retracting skin requires fine manipulation and a small tool head. That is to say, I don't think a crowbar would be anything more than SURGERY_TOOL_MULT_AWFUL at that task.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was literally copied from the list of tools that the retract skin step had. That would be a balance change that would need to be approved, but I get what you are saying.

/obj/item/tool/wirecutters = SURGERY_TOOL_MULT_BAD_SUBSTITUTE,\
/obj/item/maintenance_jack = SURGERY_TOOL_MULT_BAD_SUBSTITUTE,\
/obj/item/tool/kitchen/utensil/fork = SURGERY_TOOL_MULT_AWFUL,\
/obj/item/attachable/bayonet = SURGERY_TOOL_MULT_AWFUL,\
/obj/item/tool/surgery/scalpel = SURGERY_TOOL_MULT_AWFUL,\
/obj/item/tool/kitchen/knife = SURGERY_TOOL_MULT_AWFUL,\
/obj/item/weapon/throwing_knife = SURGERY_TOOL_MULT_AWFUL,\
/obj/item/shard = SURGERY_TOOL_MULT_AWFUL\
)

///Tools used to pry things very finely. No crowbar, fork works decently; it can't pinch, but it's easier to maneuver precisely than wirecutters.
#define SURGERY_TOOLS_PRY_DELICATE list(\
Expand Down Expand Up @@ -153,6 +166,13 @@ See also /datum/surgery_step/cut_larval_pseudoroots, /datum/surgery_step/retract
/obj/item/clothing/head/headband = SURGERY_TOOL_MULT_AWFUL\
)

///Tools used to apply a skin graft after Eschar removal surgery.
#define SURGERY_TOOLS_APPLY_GRAFT list(\

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might I also suggest adding bandages to this list as an SURGERY_TOOL_MULT_BAD_SUBSTITUTE substitute? Typically burns are dressed with gauze when skin grafts aren't available/possible.

@Puckaboo2 Puckaboo2 Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd argue gauze should be considered 'awful' because this is the 2100s and technology has advanced much further than gauze. Gauze should be a last-ditch option.

Honestly, though, that's out of scope for this PR. The only reason I'm making new datums to lists is to make it easier to group tools for sound applications. As I copy-pasted them, they remained unchanged from the original list the surgical steps had.

/obj/item/stack/medical/advanced/ointment = SURGERY_TOOL_MULT_IDEAL,\
/obj/item/tool/surgery/synthgraft = SURGERY_TOOL_MULT_IDEAL,\
/obj/item/stack/medical/advanced/ointment/predator = SURGERY_TOOL_MULT_SUBSTITUTE,\
/obj/item/stack/medical/ointment = SURGERY_TOOL_MULT_AWFUL,\
)
/////////////////////////////
// BONES SHATTER //
/////////////////////////////
Expand Down
24 changes: 12 additions & 12 deletions code/modules/surgery/amputation.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
desc = "sever the muscular tissue's connections from the bone"
tools = SURGERY_TOOLS_INCISION
time = 5 SECONDS
preop_sound = 'sound/surgery/scalpel1.ogg'
//preop sound is handled in preop step code
success_sound = 'sound/surgery/scalpel2.ogg'
failure_sound = 'sound/surgery/organ2.ogg'

Expand All @@ -69,7 +69,7 @@
target.custom_pain("It feels as if your [surgery.affected_limb.display_name] is being ripped apart!", 1)

if(tool.hitsound)
playsound(target.loc, tool.hitsound, 25, TRUE)
playsound(get_turf(target), tool.hitsound, 25, TRUE)
log_interact(user, target, "[key_name(user)] attempted an amputation on [key_name(target)]'s [surgery.affected_limb.display_name] with [tool ? "[tool]" : "their hands"].")

/datum/surgery_step/cut_muscle/success(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery)
Expand Down Expand Up @@ -107,8 +107,8 @@
desc = "reconnect the muscles and abort the amputation"
tools = SURGERY_TOOLS_SUTURE
time = 3 SECONDS
preop_sound = 'sound/surgery/suture1.ogg'
success_sound = 'sound/surgery/suture2.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
//success_sound is handled in surgery_step/proc/use_custom_success_sound in surgery_steps.dm
failure_sound = 'sound/surgery/retractor1.ogg'

/datum/surgery_step/abort_amputation/skip_step_criteria(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
Expand Down Expand Up @@ -160,8 +160,8 @@
/obj/item/tool/hatchet,
/obj/item/attachable/bayonet
)
preop_sound = 'sound/surgery/saw.ogg'
success_sound = 'sound/effects/bone_break4.ogg'
//preop sound is handled in preop step code
//success_sound is handled in surgery_step/proc/use_custom_success_sound in surgery_steps.dm
failure_sound = 'sound/effects/circsawfail1.ogg'

/datum/surgery_step/saw_off_limb/preop(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery)
Expand All @@ -180,7 +180,7 @@
target.emote("scream") //MY! ARRRRRRMMMM! - Scout from Team Fortress 2

if(tool.hitsound)
playsound(target.loc, tool.hitsound, 25, TRUE)
playsound(get_turf(target), tool.hitsound, 25, TRUE)

log_interact(user, target, "[key_name(user)] attempted to continue an amputation on [key_name(target)]'s [surgery.affected_limb.display_name] with [tool].")

Expand Down Expand Up @@ -275,7 +275,7 @@
desc = "mend the torn blood vessels in the stump"
tools = SURGERY_TOOLS_MEND_BLOODVESSEL
time = 4 SECONDS
preop_sound = 'sound/handling/clothingrustle1.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
success_sound = 'sound/surgery/hemostat2.ogg'
failure_sound = 'sound/surgery/organ2.ogg'

Expand Down Expand Up @@ -323,8 +323,8 @@
desc = "stitch the stump closed"
tools = SURGERY_TOOLS_SUTURE
time = 3 SECONDS
preop_sound = 'sound/surgery/suture1.ogg'
success_sound = 'sound/surgery/suture2.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
//success_sound is handled in surgery_step/proc/use_custom_success_sound in surgery_steps.dm
failure_sound = 'sound/surgery/retractor1.ogg'

/datum/surgery_step/close_amputation/preop(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery)
Expand Down Expand Up @@ -365,8 +365,8 @@
desc = "cut through the jammed clamps on the prosthesis"
tools = SURGERY_TOOLS_SEVER_BONE
time = 5 SECONDS
preop_sound = 'sound/surgery/saw.ogg'
success_sound = 'sound/effects/buckle.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
//success_sound is handled in surgery_step/proc/use_custom_success_sound in surgery_steps.dm
failure_sound = 'sound/effects/circsawfail3.ogg'

/datum/surgery_step/sever_prosthetic_clamps/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery)
Expand Down
5 changes: 2 additions & 3 deletions code/modules/surgery/bones.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
desc = "repair the fractured bones"
tools = SURGERY_TOOLS_BONE_MEND
time = 3 SECONDS
preop_sound = 'sound/handling/clothingrustle1.ogg'
success_sound = 'sound/handling/bandage.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
//success_sound is handled in surgery_step/proc/use_custom_success_sound in surgery_steps.dm
failure_sound = 'sound/surgery/organ2.ogg'

//Use materials to repair bones, same as /datum/surgery_step/mend_encased
Expand Down Expand Up @@ -75,7 +75,6 @@
SPAN_NOTICE("[user] begins to drive reinforcing pins into [target]'s [surgery.affected_bone] with [tool]."))

target.custom_pain("You can feel something grinding in your [surgery.affected_bone]!", 1)
playsound(target.loc, 'sound/items/Screwdriver.ogg', 25, TRUE)
else
if(tool_type == /obj/item/tool/surgery/bonegel)
user.affected_message(target,
Expand Down
3 changes: 1 addition & 2 deletions code/modules/surgery/brainrepair.dm
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,7 @@
desc = "mend the hematoma"
tools = SURGERY_TOOLS_MEND_BLOODVESSEL
time = 5 SECONDS

preop_sound = 'sound/handling/clothingrustle1.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
success_sound = 'sound/surgery/hemostat2.ogg'
failure_sound = 'sound/surgery/organ2.ogg'

Expand Down
4 changes: 2 additions & 2 deletions code/modules/surgery/chestburster.dm
Original file line number Diff line number Diff line change
Expand Up @@ -210,14 +210,14 @@
user.count_niche_stat(STATISTICS_NICHE_SURGERY_LARVA)
var/mob/living/carbon/xenomorph/larva/larba = locate() in target //the larva was fully grown, ready to burst.
if(larba)
larba.forceMove(target.loc)
larba.forceMove(get_turf(target))
qdel(embryo)
user.affected_message(target,
SPAN_HIGHDANGER("You removed the larva just in time, but it is fully grown and alive!"),
SPAN_HIGHDANGER("[user] removed the larva just in time, but it is fully grown and alive!"),
SPAN_HIGHDANGER("[user] removed the larva just in time, but it is fully grown and alive!"))
else
embryo.forceMove(target.loc)
embryo.forceMove(get_turf(target))
target.status_flags &= ~XENO_HOST

SEND_SIGNAL(user, COMSIG_HUMAN_REMOVED_A_LARVA)
Expand Down
11 changes: 3 additions & 8 deletions code/modules/surgery/eschar.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,10 @@
/datum/surgery_step/graft_exposed_flesh
name = "Apply a Graft"
desc = "graft and seal the exposed flesh"
tools = list(
/obj/item/stack/medical/advanced/ointment = SURGERY_TOOL_MULT_IDEAL,
/obj/item/tool/surgery/synthgraft = SURGERY_TOOL_MULT_IDEAL,
/obj/item/stack/medical/advanced/ointment/predator = SURGERY_TOOL_MULT_SUBSTITUTE,
/obj/item/stack/medical/ointment = SURGERY_TOOL_MULT_AWFUL,
)
tools = SURGERY_TOOLS_APPLY_GRAFT
time = 3 SECONDS
preop_sound = 'sound/handling/clothingrustle1.ogg'
success_sound = 'sound/handling/bandage.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
//success_sound is handled in surgery_step/proc/use_custom_success_sound in surgery_steps.dm
failure_sound = 'sound/surgery/organ2.ogg'
var/use_stack = 1 //uses one stack of burn heal stuff.

Expand Down
3 changes: 1 addition & 2 deletions code/modules/surgery/eye.dm
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,7 @@
desc = "mend the damage inside the eyeballs"
tools = SURGERY_TOOLS_MEND_BLOODVESSEL
time = 5 SECONDS

preop_sound = 'sound/handling/clothingrustle1.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
success_sound = 'sound/surgery/organ2.ogg'
failure_sound = 'sound/surgery/organ1.ogg'

Expand Down
59 changes: 23 additions & 36 deletions code/modules/surgery/generic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,18 @@
desc = "make an incision"
tools = SURGERY_TOOLS_INCISION
time = 2 SECONDS
preop_sound = 'sound/surgery/scalpel1.ogg'
success_sound = 'sound/surgery/scalpel2.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
//success_sound is handled uniquely in surgery_step/incision/success
failure_sound = 'sound/surgery/organ2.ogg'

/datum/surgery_step/incision/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery)
if(tool_type == /obj/item/tool/surgery/scalpel/manager)
user.affected_message(target,
SPAN_NOTICE("You start to construct a prepared incision in [target]'s [surgery.affected_limb.display_name] with [tool]."),
SPAN_NOTICE("[user] starts to construct a prepared incision in your [surgery.affected_limb.display_name] with [tool]."),
SPAN_NOTICE("[user] starts to construct a prepared incision in [target]'s [surgery.affected_limb.display_name] with [tool]."))
SPAN_NOTICE("You start to simultaneously construct a prepared, bloodless, and widened surgical site in [target]'s [surgery.affected_limb.display_name] with [tool]."),
SPAN_NOTICE("[user] starts to simultaneously construct a prepared, bloodless, and widened surgical site in your [surgery.affected_limb.display_name] with [tool]."),
SPAN_NOTICE("[user] to simultaneously construct a prepared, bloodless, and widened surgical site in [target]'s [surgery.affected_limb.display_name] with [tool]."))

target.custom_pain("You feel a horrible, searing pain in your [surgery.affected_limb.display_name] as the flesh is pushed apart!", 1)
target.custom_pain("You feel a horrible, searing pain in your [surgery.affected_limb.display_name] as your flesh is sliced, clamped, and pushed apart!", 1)
else
user.affected_message(target,
SPAN_NOTICE("You start to make an incision on [target]'s [surgery.affected_limb.display_name] with [tool]."),
Expand All @@ -57,10 +57,10 @@

if(tool_type == /obj/item/tool/surgery/scalpel/manager)
user.affected_message(target,
SPAN_NOTICE("You have constructed a prepared incision in [target]'s [surgery.affected_limb.display_name] that is now bleeding."),
SPAN_NOTICE("[user] has constructed a prepared incision in your [surgery.affected_limb.display_name] that is now bleeding."),
SPAN_NOTICE("[user] has constructed a prepared incision in [target]'s [surgery.affected_limb.display_name] that is now bleeding."))

SPAN_NOTICE("You finish simultaneously constructing a prepared, bloodless, and widened surgical site in [target]'s [surgery.affected_limb.display_name]."),
SPAN_NOTICE("[user] finishes simultaneously constructing a prepared, bloodless, and widened surgical site in [surgery.affected_limb.display_name]."),
SPAN_NOTICE("[user] has constructed a prepared, bloodless, and widened surgical site in [target]'s [surgery.affected_limb.display_name]."))
playsound(get_turf(target), 'sound/surgery/retractor2.ogg', vol = 40, sound_range = 1)
surgery.status += 6 //IMS completes all steps.

switch(target_zone) //forces application of overlays
Expand All @@ -74,13 +74,14 @@
SPAN_NOTICE("You finish making a bloodless incision on [target]'s [surgery.affected_limb.display_name] with [tool]."),
SPAN_NOTICE("[user] finishes making a bloodless incision on your [surgery.affected_limb.display_name] with [tool]."),
SPAN_NOTICE("[user] finishes making a bloodless incision on [target]'s [surgery.affected_limb.display_name] with [tool]."))

playsound(get_turf(target), 'sound/surgery/laserscalpel2.ogg', vol = 40, sound_range = 1) //good laser scalpels get the true success noise.
surgery.status += 3 //A laser scalpel may cauterise as it cuts.
else
user.affected_message(target,
SPAN_NOTICE("You finish the incision on [target]'s [surgery.affected_limb.display_name]."),
SPAN_NOTICE("[user] finishes the incision on your [surgery.affected_limb.display_name]."),
SPAN_NOTICE("[user] finishes the incision on [target]'s [surgery.affected_limb.display_name]."))
playsound(get_turf(target), 'sound/surgery/scalpel2.ogg', vol = 40, sound_range = 1) //naughty laser scalpels get the normal scalpel sound if they fail to make bloodless incisions.

if(!(surgery.affected_limb.status & LIMB_SYNTHSKIN))
var/datum/effects/bleeding/external/incision_bleed = new(target, surgery.affected_limb, 10)
Expand Down Expand Up @@ -145,11 +146,8 @@
name = "Clamp Bleeders"
desc = "clamp bleeders on the bleeding vessels"
//Tools used to clamp bleeders by either clamping them shut or tying them shut. Fixovein is a substitute but also a real surgery tool.
tools = list(
/obj/item/tool/surgery/hemostat = SURGERY_TOOL_MULT_IDEAL,
/obj/item/tool/wirecutters = SURGERY_TOOL_MULT_SUBSTITUTE,
/obj/item/stack/cable_coil = SURGERY_TOOL_MULT_BAD_SUBSTITUTE,
)
tools = SURGERY_TOOLS_PINCH

///Tools used to stem bleeders by specifically tying them up. List used for specific messaging as there's two of these.
var/ligation_tools = list(/obj/item/stack/cable_coil)
time = 2 SECONDS
Expand Down Expand Up @@ -234,19 +232,7 @@
desc = "widen the incision"
time = 2 SECONDS
//Tools used to pry open specifically incisions. Contains INCISION tools at lengthy delays, mainly so surgeons can dramatically slash open incisions with them.
tools = list(\
/obj/item/tool/surgery/retractor = SURGERY_TOOL_MULT_IDEAL,
/obj/item/tool/surgery/hemostat = SURGERY_TOOL_MULT_SUBOPTIMAL,
/obj/item/tool/crowbar = SURGERY_TOOL_MULT_SUBSTITUTE,
/obj/item/tool/wirecutters = SURGERY_TOOL_MULT_BAD_SUBSTITUTE,
/obj/item/maintenance_jack = SURGERY_TOOL_MULT_BAD_SUBSTITUTE,
/obj/item/tool/kitchen/utensil/fork = SURGERY_TOOL_MULT_AWFUL,
/obj/item/attachable/bayonet = SURGERY_TOOL_MULT_AWFUL,
/obj/item/tool/surgery/scalpel = SURGERY_TOOL_MULT_AWFUL,
/obj/item/tool/kitchen/knife = SURGERY_TOOL_MULT_AWFUL,
/obj/item/weapon/throwing_knife = SURGERY_TOOL_MULT_AWFUL,
/obj/item/shard = SURGERY_TOOL_MULT_AWFUL
)
tools = SURGERY_TOOLS_PRY
preop_sound = 'sound/surgery/retractor1.ogg'
success_sound = 'sound/surgery/retractor2.ogg'
failure_sound = 'sound/surgery/organ1.ogg'
Expand Down Expand Up @@ -343,6 +329,8 @@
if(target.pain.reduction_pain < surgery.pain_reduction_required) //if patient is not under the proper anesthesia
target.emote("pain")

if(tool.hitsound)
playsound(get_turf(target), tool.hitsound, 25, TRUE)
target.apply_damage(15, BRUTE, target_zone)
log_interact(user, target, "[key_name(user)] violently retracted skin in [key_name(target)]'s [surgery.affected_limb.display_name], ending [surgery].")
return TRUE //Failing to finish this step doesn't fail it, it just means you do it a lot more violently.
Expand Down Expand Up @@ -371,7 +359,7 @@
/obj/item/clothing/mask/cigarette,
/obj/item/tool/weldingtool,
)
preop_sound = 'sound/surgery/cautery1.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
success_sound = 'sound/surgery/cautery2.ogg'
failure_sound = 'sound/items/welder.ogg'

Expand Down Expand Up @@ -476,9 +464,9 @@
/obj/item/tool/kitchen/knife/butcher = SURGERY_TOOL_MULT_BAD_SUBSTITUTE,
)
time = 4 SECONDS
preop_sound = 'sound/surgery/saw.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
success_sound = 'sound/surgery/hemostat2.ogg'
failure_sound = 'sound/effects/circsawfail1.ogg'
failure_sound = 'sound/effects/bone_break4.ogg'


/datum/surgery_step/saw_encased/skip_step_criteria(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
Expand Down Expand Up @@ -534,7 +522,7 @@

user.animation_attack_on(target)
if(tool.hitsound)
playsound(target.loc, tool.hitsound, 25, TRUE)
playsound(get_turf(target), tool.hitsound, 25, TRUE)
target.apply_damage(20, BRUTE, target_zone)
log_interact(user, target, "[key_name(user)] violently cut through [key_name(target)]'s [surgery.affected_limb.encased], beginning [surgery].")
return TRUE
Expand Down Expand Up @@ -696,8 +684,8 @@
desc = "repair the damaged bones"
tools = SURGERY_TOOLS_BONE_MEND
time = 3 SECONDS
preop_sound = 'sound/handling/clothingrustle1.ogg'
success_sound = 'sound/handling/bandage.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
//success_sound is handled in surgery_step/proc/use_custom_success_sound in surgery_steps.dm
failure_sound = 'sound/surgery/organ2.ogg'

//Use materials to mend bones, same as /datum/surgery_step/mend_bones
Expand Down Expand Up @@ -733,7 +721,6 @@
SPAN_NOTICE("[user] begins to screw a reinforcing plate to [target]'s [surgery.affected_limb.encased] with [tool]."))

target.custom_pain("You can feel something grinding in your [surgery.affected_limb.encased]!", 1)
playsound(target.loc, 'sound/items/Screwdriver.ogg', 25, TRUE)

log_interact(user, target, "[key_name(user)] began mending [key_name(target)]'s [surgery.affected_limb.encased].")

Expand Down
3 changes: 1 addition & 2 deletions code/modules/surgery/headreattach.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,7 @@
desc = "reconstruct the throat"
tools = SURGERY_TOOLS_MEND_BLOODVESSEL
time = 4 SECONDS

preop_sound = 'sound/handling/clothingrustle1.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
success_sound = 'sound/surgery/hemostat2.ogg'
failure_sound = 'sound/surgery/organ2.ogg'

Expand Down
2 changes: 1 addition & 1 deletion code/modules/surgery/implant.dm
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@
SPAN_NOTICE("[user] extracts the shrapnel from your [surgery.affected_limb.display_name]."),
SPAN_NOTICE("[user] extracts the shrapnel from [target]'s [surgery.affected_limb.display_name]."))
for(var/obj/item/shard/S as anything in shrapnel)
S.forceMove(target.loc)
S.forceMove(get_turf(target))
surgery.affected_limb.implants -= S
target.embedded_items -= S
for(var/i in 1 to S.count-1)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/surgery/internal_bleeding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
desc = "mend the damaged blood vessel"
tools = SURGERY_TOOLS_MEND_BLOODVESSEL
time = 5 SECONDS
preop_sound = 'sound/handling/clothingrustle1.ogg'
//preop_sound is handled in surgery_step/proc/use_custom_preop_sound in surgery_steps.dm
success_sound = 'sound/surgery/hemostat2.ogg'
failure_sound = 'sound/surgery/organ2.ogg'

Expand Down
Loading