mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +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
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user