mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 20:45:28 +01:00
Revives "Adds sound effects to surgeries" (#65578)
* Adds surgical sounds Rough implementation as I don't have too much time tonight. * Fixed falure_sound Fixed a typo * Removed the lists Removed the lists and added sounds to revival surgery, stuff will probably break * Fixes the playsounds still using pick * Added sounds to more surgeries Added sounds to four more surgeries
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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]..."),
|
||||
|
||||
@@ -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)]..."),
|
||||
|
||||
@@ -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..."),
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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..."),
|
||||
|
||||
@@ -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..."),
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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..."),
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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..."),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)]!"))
|
||||
|
||||
@@ -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)]..."),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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..."),
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user