mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-06 15:02:29 +00:00
## About The Pull Request  All surgery step names, displayed in the surgical computer, will now show which tool to use for that step in parentheses. In cases where multiple tools have a 100% success chance, all are listed; if no tool has a 100% chance then the "correct" one is shown. Surgery computers will never display "alternate" tools for surgeries (those with a lower success chance), but this shouldn't be a problem. Surgical computers are _usually_ in places with surgical tools at hand, and NanoTrasen wouldn't want to encourage doing brain surgery with a screwdriver. Y'know, probably. ## Why It's Good For The Game Firstly, this change is particularly helpful to new players. If you have little experience with surgery, it's not always clear which tool you're meant to use for which step. This is especially true for some of the odder surgeries - if you didn't already know, it's not clear at all that "brainwash" means "use a hemostat". While there are certainly guides on the wiki, it's nice to have as much information provided in-game as possible. Secondly, this change brings consistency. A _small_ number of surgical steps (healing broken bones, namely) already do this! I see no reason why this shouldn't be extended to the remaining surgical steps, especially because it's not particularly obtrusive to the surgery computer interface. ## Changelog 🆑 qol: Made surgical computers tell you what tool to use for the current surgical step. /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
46 lines
1.9 KiB
Plaintext
46 lines
1.9 KiB
Plaintext
|
|
/datum/surgery/amputation
|
|
name = "Amputation"
|
|
steps = list(
|
|
/datum/surgery_step/incise,
|
|
/datum/surgery_step/retract_skin,
|
|
/datum/surgery_step/clamp_bleeders,
|
|
/datum/surgery_step/saw,
|
|
/datum/surgery_step/clamp_bleeders,
|
|
/datum/surgery_step/sever_limb)
|
|
target_mobtypes = list(/mob/living/carbon/human)
|
|
possible_locs = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_HEAD)
|
|
requires_bodypart_type = 0
|
|
|
|
|
|
/datum/surgery_step/sever_limb
|
|
name = "sever limb (circular saw)"
|
|
implements = list(
|
|
/obj/item/shears = 300,
|
|
TOOL_SCALPEL = 100,
|
|
TOOL_SAW = 100,
|
|
/obj/item/melee/arm_blade = 80,
|
|
/obj/item/fireaxe = 50,
|
|
/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)]..."),
|
|
span_notice("[user] begins to sever [target]'s [parse_zone(target_zone)]!"),
|
|
span_notice("[user] begins to sever [target]'s [parse_zone(target_zone)]!"))
|
|
display_pain(target, "You feel a gruesome pain in your [parse_zone(target_zone)]'s joint!")
|
|
|
|
|
|
/datum/surgery_step/sever_limb/success(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
|
display_results(user, target, span_notice("You sever [target]'s [parse_zone(target_zone)]."),
|
|
span_notice("[user] severs [target]'s [parse_zone(target_zone)]!"),
|
|
span_notice("[user] severs [target]'s [parse_zone(target_zone)]!"))
|
|
display_pain(target, "You can no longer feel your severed [parse_zone(target_zone)]!")
|
|
if(surgery.operated_bodypart)
|
|
var/obj/item/bodypart/target_limb = surgery.operated_bodypart
|
|
target_limb.drop_limb()
|
|
return ..()
|