diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index 7728b04b7fa..0f3962c003a 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -33,6 +33,9 @@ /obj/item/stack/package_wrap = 35, /obj/item/stack/cable_coil = 15) time = 200 + preop_sound = 'sound/surgery/hemostat1.ogg' + success_sound = 'sound/surgery/hemostat1.ogg' + failure_sound = 'sound/surgery/organ2.ogg' var/objective /datum/surgery_step/brainwash/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index d5e22198901..63df1667a19 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -30,6 +30,9 @@ /obj/item/shard = 25, /obj/item = 20) time = 100 + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/scalpel2.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/lobotomize/tool_check(mob/user, obj/item/tool) if(implement_type == /obj/item && !tool.get_sharpness()) diff --git a/code/modules/surgery/advanced/pacification.dm b/code/modules/surgery/advanced/pacification.dm index 82e0f703041..12f3f609a11 100644 --- a/code/modules/surgery/advanced/pacification.dm +++ b/code/modules/surgery/advanced/pacification.dm @@ -26,6 +26,9 @@ TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) time = 40 + preop_sound = 'sound/surgery/hemostat1.ogg' + success_sound = 'sound/surgery/hemostat1.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/pacify/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to pacify [target]..."), diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 6945122883a..cbe6348c780 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -24,6 +24,8 @@ /obj/item/hatchet = 40, /obj/item/knife/butcher = 25) time = 64 + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to sever [target]'s [parse_zone(target_zone)]..."), diff --git a/code/modules/surgery/blood_filter.dm b/code/modules/surgery/blood_filter.dm index 6b68efc6749..59eca843018 100644 --- a/code/modules/surgery/blood_filter.dm +++ b/code/modules/surgery/blood_filter.dm @@ -21,6 +21,7 @@ implements = list(/obj/item/blood_filter = 95) repeatable = TRUE time = 2.5 SECONDS + success_sound = 'sound/machines/ping.ogg' /datum/surgery_step/filter_blood/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin filtering [target]'s blood..."), diff --git a/code/modules/surgery/brain_surgery.dm b/code/modules/surgery/brain_surgery.dm index e781d556d5d..6c7b265688d 100644 --- a/code/modules/surgery/brain_surgery.dm +++ b/code/modules/surgery/brain_surgery.dm @@ -20,6 +20,9 @@ /obj/item/pen = 15) //don't worry, pouring some alcohol on their open brain will get that chance to 100 repeatable = TRUE time = 100 //long and complicated + preop_sound = 'sound/surgery/hemostat1.ogg' + success_sound = 'sound/surgery/hemostat1.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery/brain_surgery/can_start(mob/user, mob/living/carbon/target) var/obj/item/organ/brain/target_brain = target.getorganslot(ORGAN_SLOT_BRAIN) diff --git a/code/modules/surgery/burn_dressing.dm b/code/modules/surgery/burn_dressing.dm index b4f19171976..9294b8c1504 100644 --- a/code/modules/surgery/burn_dressing.dm +++ b/code/modules/surgery/burn_dressing.dm @@ -32,6 +32,9 @@ TOOL_WIRECUTTER = 40) time = 30 repeatable = TRUE + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/retractor2.ogg' + failure_sound = 'sound/surgery/organ1.ogg' /// How much sanitization is added per step var/sanitization_added = 0.5 /// How much infestation is removed per step (positive number) diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm index cdbf33c1089..0749e012f9a 100644 --- a/code/modules/surgery/cavity_implant.dm +++ b/code/modules/surgery/cavity_implant.dm @@ -18,6 +18,8 @@ implements = list(/obj/item = 100) repeatable = TRUE time = 32 + preop_sound = 'sound/surgery/organ1.ogg' + success_sound = 'sound/surgery/organ2.ogg' var/obj/item/item_for_cavity /datum/surgery_step/handle_cavity/tool_check(mob/user, obj/item/tool) diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index b62dc8d6664..3c936211d20 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -28,6 +28,9 @@ /obj/item/knife = 45, /obj/item/shard = 25) time = 16 + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/scalpel2.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/incise_heart/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to make an incision in [target]'s heart..."), @@ -67,6 +70,9 @@ /obj/item/stack/package_wrap = 15, /obj/item/stack/cable_coil = 5) time = 90 + preop_sound = 'sound/surgery/hemostat1.ogg' + success_sound = 'sound/surgery/hemostat1.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/coronary_bypass/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to graft a bypass onto [target]'s heart..."), diff --git a/code/modules/surgery/gastrectomy.dm b/code/modules/surgery/gastrectomy.dm index f5be8dd6d84..cde2b251920 100644 --- a/code/modules/surgery/gastrectomy.dm +++ b/code/modules/surgery/gastrectomy.dm @@ -29,6 +29,9 @@ /obj/item/knife = 45, /obj/item/shard = 35) time = 52 + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/organ1.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/gastrectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to cut out a damaged piece of [target]'s stomach..."), diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm index bf3adc704c2..b2dadfeb0be 100644 --- a/code/modules/surgery/healing.dm +++ b/code/modules/surgery/healing.dm @@ -40,6 +40,8 @@ /obj/item/pen = 55) repeatable = TRUE time = 25 + success_sound = 'sound/surgery/retractor2.ogg' + failure_sound = 'sound/surgery/organ2.ogg' var/brutehealing = 0 var/burnhealing = 0 var/brute_multiplier = 0 //multiplies the damage that the patient has. if 0 the patient wont get any additional healing from the damage he has. diff --git a/code/modules/surgery/hepatectomy.dm b/code/modules/surgery/hepatectomy.dm index 5577fb9b7e8..445459f298c 100644 --- a/code/modules/surgery/hepatectomy.dm +++ b/code/modules/surgery/hepatectomy.dm @@ -28,6 +28,9 @@ /obj/item/knife = 45, /obj/item/shard = 35) time = 52 + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/organ1.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/hepatectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to cut out a damaged piece of [target]'s liver..."), diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm index 9faeb352e4f..e202820df2e 100644 --- a/code/modules/surgery/implant_removal.dm +++ b/code/modules/surgery/implant_removal.dm @@ -18,6 +18,7 @@ TOOL_CROWBAR = 65, /obj/item/kitchen/fork = 35) time = 64 + success_sound = 'sound/surgery/hemostat1.ogg' var/obj/item/implant/implant /datum/surgery_step/extract_implant/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index 5c79d683db5..6690f96c3d2 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -27,6 +27,9 @@ /obj/item/knife = 45, /obj/item/shard = 35) time = 42 + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/organ1.ogg' + failure_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/lobectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to make an incision in [target]'s lungs..."), diff --git a/code/modules/surgery/mechanic_steps.dm b/code/modules/surgery/mechanic_steps.dm index 8761699e5b5..45fec9beb70 100644 --- a/code/modules/surgery/mechanic_steps.dm +++ b/code/modules/surgery/mechanic_steps.dm @@ -3,10 +3,12 @@ name = "unscrew shell" implements = list( TOOL_SCREWDRIVER = 100, - TOOL_SCALPEL = 75, // med borgs could try to unskrew shell with scalpel + TOOL_SCALPEL = 75, // med borgs could try to unscrew shell with scalpel /obj/item/knife = 50, /obj/item = 10) // 10% success with any sharp item. time = 24 + preop_sound = 'sound/items/screwdriver.ogg' + success_sound = 'sound/items/screwdriver2.ogg' /datum/surgery_step/mechanic_open/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to unscrew the shell of [target]'s [parse_zone(target_zone)]..."), @@ -17,6 +19,8 @@ /datum/surgery_step/mechanic_open/tool_check(mob/user, obj/item/tool) if(implement_type == /obj/item && !tool.get_sharpness()) return FALSE + if(tool.usesound) + preop_sound = tool.usesound return TRUE @@ -29,6 +33,8 @@ /obj/item/knife = 50, /obj/item = 10) // 10% success with any sharp item. time = 24 + preop_sound = 'sound/items/screwdriver.ogg' + success_sound = 'sound/items/screwdriver2.ogg' /datum/surgery_step/mechanic_close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to screw the shell of [target]'s [parse_zone(target_zone)]..."), @@ -39,6 +45,8 @@ /datum/surgery_step/mechanic_close/tool_check(mob/user, obj/item/tool) if(implement_type == /obj/item && !tool.get_sharpness()) return FALSE + if(tool.usesound) + preop_sound = tool.usesound return TRUE @@ -49,6 +57,8 @@ TOOL_MULTITOOL = 100, TOOL_HEMOSTAT = 10) // try to reboot internal controllers via short circuit with some conductor time = 24 + preop_sound = 'sound/items/taperecorder/tape_flip.ogg' + success_sound = 'sound/items/taperecorder/taperecorder_close.ogg' /datum/surgery_step/prepare_electronics/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to prepare electronics in [target]'s [parse_zone(target_zone)]..."), @@ -63,6 +73,7 @@ TOOL_WRENCH = 100, TOOL_RETRACTOR = 10) time = 24 + preop_sound = 'sound/items/ratchet.ogg' /datum/surgery_step/mechanic_unwrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to unwrench some bolts in [target]'s [parse_zone(target_zone)]..."), @@ -70,6 +81,12 @@ span_notice("[user] begins to unwrench some bolts in [target]'s [parse_zone(target_zone)].")) display_pain(target, "You feel a jostle in your [parse_zone(target_zone)] as the bolts begin to loosen.", TRUE) +/datum/surgery_step/mechanic_unwrench/tool_check(mob/user, obj/item/tool) + if(tool.usesound) + preop_sound = tool.usesound + + return TRUE + //wrench /datum/surgery_step/mechanic_wrench name = "wrench bolts" @@ -77,6 +94,7 @@ TOOL_WRENCH = 100, TOOL_RETRACTOR = 10) time = 24 + preop_sound = 'sound/items/ratchet.ogg' /datum/surgery_step/mechanic_wrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to wrench some bolts in [target]'s [parse_zone(target_zone)]..."), @@ -84,14 +102,28 @@ span_notice("[user] begins to wrench some bolts in [target]'s [parse_zone(target_zone)].")) display_pain(target, "You feel a jostle in your [parse_zone(target_zone)] as the bolts begin to tighten.", TRUE) +/datum/surgery_step/mechanic_wrench/tool_check(mob/user, obj/item/tool) + if(tool.usesound) + preop_sound = tool.usesound + + return TRUE + //open hatch /datum/surgery_step/open_hatch name = "open the hatch" accept_hand = TRUE time = 10 + preop_sound = 'sound/items/ratchet.ogg' + preop_sound = 'sound/machines/doorclick.ogg' /datum/surgery_step/open_hatch/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to open the hatch holders in [target]'s [parse_zone(target_zone)]..."), span_notice("[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)]."), span_notice("[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)].")) display_pain(target, "The last faint pricks of tactile sensation fade from your [parse_zone(target_zone)] as the hatch is opened.", TRUE) + +/datum/surgery_step/mechanic_unwrench/tool_check(mob/user, obj/item/tool) + if(tool.usesound) + preop_sound = tool.usesound + + return TRUE diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index ecf711a5aaf..1921bf6dff3 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -65,6 +65,8 @@ implements = list( /obj/item/organ = 100, /obj/item/borg/apparatus/organ_storage = 100) + preop_sound = 'sound/surgery/organ2.ogg' + success_sound = 'sound/surgery/organ1.ogg' var/implements_extract = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 55, /obj/item/kitchen/fork = 35) var/current_type var/obj/item/organ/target_organ @@ -76,6 +78,8 @@ /datum/surgery_step/manipulate_organs/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) target_organ = null if(istype(tool, /obj/item/borg/apparatus/organ_storage)) + preop_sound = initial(preop_sound) + success_sound = initial(success_sound) if(!length(tool.contents)) to_chat(user, span_warning("There is nothing inside [tool]!")) return -1 @@ -88,6 +92,8 @@ tool = target_organ if(isorgan(tool)) current_type = "insert" + preop_sound = 'sound/surgery/hemostat1.ogg' + success_sound = 'sound/surgery/organ2.ogg' target_organ = tool if(target_zone != target_organ.zone || target.getorganslot(target_organ.slot)) to_chat(user, span_warning("There is no room for [target_organ] in [target]'s [parse_zone(target_zone)]!")) diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 7275d3dc67d..116543259ef 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -9,6 +9,8 @@ /obj/item/shard = 45, /obj/item = 30) // 30% success with any sharp item. time = 16 + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/scalpel2.ogg' /datum/surgery_step/incise/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to make an incision in [target]'s [parse_zone(target_zone)]..."), @@ -49,6 +51,7 @@ /obj/item/stack/package_wrap = 35, /obj/item/stack/cable_coil = 15) time = 24 + preop_sound = 'sound/surgery/hemostat1.ogg' /datum/surgery_step/clamp_bleeders/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to clamp bleeders in [target]'s [parse_zone(target_zone)]..."), @@ -75,6 +78,8 @@ TOOL_WIRECUTTER = 35, /obj/item/stack/rods = 35) time = 24 + preop_sound = 'sound/surgery/retractor1.ogg' + success_sound = 'sound/surgery/retractor2.ogg' /datum/surgery_step/retract_skin/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to retract the skin in [target]'s [parse_zone(target_zone)]..."), @@ -91,6 +96,8 @@ TOOL_WELDER = 70, /obj/item = 30) // 30% success with any hot item. time = 24 + preop_sound = 'sound/surgery/cautery1.ogg' + success_sound = 'sound/surgery/cautery2.ogg' /datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to mend the incision in [target]'s [parse_zone(target_zone)]..."), @@ -127,6 +134,8 @@ /obj/item/knife/butcher = 25, /obj/item = 20) //20% success (sort of) with any sharp item with a force>=10 time = 54 + preop_sound = 'sound/surgery/saw.ogg' + success_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin to saw through the bone in [target]'s [parse_zone(target_zone)]..."), diff --git a/code/modules/surgery/revival.dm b/code/modules/surgery/revival.dm index e9893408a47..4e215154b2e 100644 --- a/code/modules/surgery/revival.dm +++ b/code/modules/surgery/revival.dm @@ -29,7 +29,7 @@ return TRUE /datum/surgery_step/revive - name = "shock body" + name = "shock brain" implements = list( /obj/item/shockpaddles = 100, /obj/item/melee/touch_attack/shock = 100, @@ -37,6 +37,8 @@ /obj/item/gun/energy = 60) repeatable = TRUE time = 5 SECONDS + success_sound = 'sound/magic/lightningbolt.ogg' + failure_sound = 'sound/magic/lightningbolt.ogg' /datum/surgery_step/revive/tool_check(mob/user, obj/item/tool) . = TRUE @@ -64,11 +66,16 @@ span_notice("[user] prepares to shock [target]'s brain with [tool].")) target.notify_ghost_cloning("Someone is trying to zap your brain.", source = target) +/datum/surgery_step/revive/play_preop_sound(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(istype(tool, /obj/item/shockpaddles)) + playsound(tool, 'sound/machines/defib_charge.ogg', 75, 0) + else + ..() + /datum/surgery_step/revive/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) display_results(user, target, span_notice("You successfully shock [target]'s brain with [tool]..."), span_notice("[user] send a powerful shock to [target]'s brain with [tool]..."), span_notice("[user] send a powerful shock to [target]'s brain with [tool]...")) - playsound(get_turf(target), 'sound/magic/lightningbolt.ogg', 50, TRUE) target.grab_ghost() target.adjustOxyLoss(-50, 0) target.updatehealth() @@ -85,6 +92,5 @@ display_results(user, target, span_notice("You shock [target]'s brain with [tool], but [target.p_they()] doesn't react."), span_notice("[user] send a powerful shock to [target]'s brain with [tool], but [target.p_they()] doesn't react."), span_notice("[user] send a powerful shock to [target]'s brain with [tool], but [target.p_they()] doesn't react.")) - playsound(get_turf(target), 'sound/magic/lightningbolt.ogg', 50, TRUE) target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 15, 180) return FALSE diff --git a/code/modules/surgery/stomachpump.dm b/code/modules/surgery/stomachpump.dm index a395276e6dc..ffd179e5868 100644 --- a/code/modules/surgery/stomachpump.dm +++ b/code/modules/surgery/stomachpump.dm @@ -28,6 +28,7 @@ accept_hand = TRUE repeatable = TRUE time = 20 + success_sound = 'sound/surgery/organ2.ogg' /datum/surgery_step/stomach_pump/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, span_notice("You begin pumping [target]'s stomach..."), diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 19eb31cf417..ae55a7f1b16 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -9,6 +9,9 @@ var/list/chems_needed = list() //list of chems needed to complete the step. Even on success, the step will have no effect if there aren't the chems required in the mob. var/require_all_chems = TRUE //any on the list or all on the list? var/silicons_obey_prob = FALSE + var/preop_sound //Sound played when the step is started + var/success_sound //Sound played if the step succeeded + var/failure_sound //Sound played if the step fails /datum/surgery_step/proc/try_op(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE) var/success = FALSE @@ -75,6 +78,8 @@ surgery.step_in_progress = FALSE return FALSE + play_preop_sound(user, target, target_zone, tool, surgery) // Here because most steps overwrite preop + if(tool) speed_mod = tool.toolspeed @@ -100,9 +105,11 @@ if((prob(100-fail_prob) || (iscyborg(user) && !silicons_obey_prob)) && chem_check_result && !try_to_fail) if(success(user, target, target_zone, tool, surgery)) + play_success_sound(user, target, target_zone, tool, surgery) advance = TRUE else if(failure(user, target, target_zone, tool, surgery, fail_prob)) + play_failure_sound(user, target, target_zone, tool, surgery) advance = TRUE if(chem_check_result) return .(user, target, target_zone, tool, surgery, try_to_fail) //automatically re-attempt if failed for reason other than lack of required chemical @@ -122,6 +129,11 @@ span_notice("[user] begins to perform surgery on [target]."), span_notice("[user] begins to perform surgery on [target].")) +/datum/surgery_step/proc/play_preop_sound(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(!preop_sound) + return + playsound(get_turf(target), preop_sound, 75, TRUE, falloff_exponent = 12, falloff_distance = 1) + /datum/surgery_step/proc/success(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = TRUE) SEND_SIGNAL(user, COMSIG_MOB_SURGERY_STEP_SUCCESS, src, target, target_zone, tool, surgery, default_display_results) if(default_display_results) @@ -130,6 +142,11 @@ span_notice("[user] finishes.")) return TRUE +/datum/surgery_step/proc/play_success_sound(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(!success_sound) + return + playsound(get_turf(target), success_sound, 75, TRUE, falloff_exponent = 12, falloff_distance = 1) + /datum/surgery_step/proc/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0) var/screwedmessage = "" switch(fail_prob) @@ -145,6 +162,11 @@ span_notice("[user] finishes."), TRUE) //By default the patient will notice if the wrong thing has been cut return FALSE +/datum/surgery_step/proc/play_failure_sound(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(!failure_sound) + return + playsound(get_turf(target), failure_sound, 75, TRUE, falloff_exponent = 12, falloff_distance = 1) + /datum/surgery_step/proc/tool_check(mob/user, obj/item/tool) return TRUE diff --git a/sound/surgery/cautery1.ogg b/sound/surgery/cautery1.ogg new file mode 100644 index 00000000000..fa714439e51 Binary files /dev/null and b/sound/surgery/cautery1.ogg differ diff --git a/sound/surgery/cautery2.ogg b/sound/surgery/cautery2.ogg new file mode 100644 index 00000000000..334c98f6cde Binary files /dev/null and b/sound/surgery/cautery2.ogg differ diff --git a/sound/surgery/hemostat1.ogg b/sound/surgery/hemostat1.ogg new file mode 100644 index 00000000000..d68c82620d2 Binary files /dev/null and b/sound/surgery/hemostat1.ogg differ diff --git a/sound/surgery/organ1.ogg b/sound/surgery/organ1.ogg new file mode 100644 index 00000000000..d6cdd6271fe Binary files /dev/null and b/sound/surgery/organ1.ogg differ diff --git a/sound/surgery/organ2.ogg b/sound/surgery/organ2.ogg new file mode 100644 index 00000000000..9199c7d1a2d Binary files /dev/null and b/sound/surgery/organ2.ogg differ diff --git a/sound/surgery/retractor1.ogg b/sound/surgery/retractor1.ogg new file mode 100644 index 00000000000..de7c31199e3 Binary files /dev/null and b/sound/surgery/retractor1.ogg differ diff --git a/sound/surgery/retractor2.ogg b/sound/surgery/retractor2.ogg new file mode 100644 index 00000000000..620fafe035d Binary files /dev/null and b/sound/surgery/retractor2.ogg differ diff --git a/sound/surgery/saw.ogg b/sound/surgery/saw.ogg new file mode 100644 index 00000000000..8e7a47f0fa0 Binary files /dev/null and b/sound/surgery/saw.ogg differ diff --git a/sound/surgery/scalpel1.ogg b/sound/surgery/scalpel1.ogg new file mode 100644 index 00000000000..6c0fe5dad9f Binary files /dev/null and b/sound/surgery/scalpel1.ogg differ diff --git a/sound/surgery/scalpel2.ogg b/sound/surgery/scalpel2.ogg new file mode 100644 index 00000000000..49767223939 Binary files /dev/null and b/sound/surgery/scalpel2.ogg differ