[MODULAR] Adds synth versions of fix ears and fix eyes. (#3871)

## About The Pull Request

Fixes blood being applied to hands when operating on a robotic bodypart.
Adds a synthetic / mechanical version of fix ears and fix eyes.
Adds sounds for fix ears and fix eyes. Mechanical versions too.

Ears:
Step by step:
- screwdriver
- open hatch (hand)
- Wrench
- multitool
- Screwdriver
- Wrench
- Screwdriver

Eyes:
Step by step:
- screwdriver
- open hatch (hand)
- multitool
- screwdriver
- screwdriver
## Why It's Good For The Game

Robotic limbs don't have bone (for the most part) so having to saw into
a synthetic's head to repair their ears made no sense.
You shouldn't be getting blood splashed on your hands if there is no
blood / its robotic to begin with!
## Proof Of Testing

Loaded up, checked available surgeries, went through each surgery, it
worked. Yippie.
Made sure ear surgery and eye surgery for organics still worked. It did.
Yippie 2x.
<details>
<summary>Screenshots/Videos</summary>
Auditory Sensor Repair:


![image](https://github.com/user-attachments/assets/8f968fff-9039-4ae0-996e-1dbdc763fd00)

Optical Sensor Repair:


![image](https://github.com/user-attachments/assets/48ffc5a3-c670-4e29-9e9d-d4b8788f510f)

Preexisting sounds used for the surgery:


Organic:

Preop


https://github.com/user-attachments/assets/575c4b28-2322-4876-9716-f8fe1ab6549d

Failure


https://github.com/user-attachments/assets/00995ef2-0100-40e1-8c24-133517a3cc5f

Success


https://github.com/user-attachments/assets/db62542c-ab54-4347-ac68-bd390a737ddf


Mechanic:

Prepop


https://github.com/user-attachments/assets/4778fe6a-fc48-43ae-bed6-88a9b02578ac

Failure


https://github.com/user-attachments/assets/b8daa66d-b111-406f-89da-abdefbd7bb26

Success


https://github.com/user-attachments/assets/c795a54d-c1b0-436e-9619-303d042a0567


</details>

## Changelog
🆑
add: Added sounds for eye and ear surgery.
add: Added synthetic versions of fix ears and fix eyes (Repair Auditory
Sensors and Repair Optical Sensors)
fix: fixed blood being applied to a surgeon's hands when the patient's
limb was robotic.
/🆑
This commit is contained in:
Spaghetti-bit
2025-05-24 12:39:26 -07:00
committed by GitHub
parent 65f27b34b7
commit efb0c2c398
5 changed files with 75 additions and 1 deletions
+14 -1
View File
@@ -245,11 +245,24 @@
span_notice("[user] succeeds!"),
span_notice("[user] finishes."),
)
// BUBBER EDIT: prevents blood from being splashed / added to the surgeon's gloves if the patient's limb / organ (eyes) are robotic
if(ishuman(user))
var/mob/living/carbon/human/surgeon = user
surgeon.add_blood_DNA_to_items(target.get_blood_dna_list(), ITEM_SLOT_GLOVES)
if (ishuman(target))
var/mob/living/carbon/human/human_target = target
var/obj/item/bodypart/target_bodypart = target.get_bodypart(target_zone)
var/obj/item/organ/eyes/target_eyes = target.get_organ_slot(ORGAN_SLOT_EYES)
if(target_bodypart)
if(target_bodypart.bodytype != BODYTYPE_ROBOTIC && !HAS_TRAIT(human_target, TRAIT_NOBLOOD))
surgeon.add_blood_DNA_to_items(target.get_blood_dna_list(), ITEM_SLOT_GLOVES)
else if(target_eyes) // snowflake case for eyes
if(target_eyes.organ_flags != ORGAN_ROBOTIC && !HAS_TRAIT(human_target, TRAIT_NOBLOOD))
surgeon.add_blood_DNA_to_items(target.get_blood_dna_list(), ITEM_SLOT_GLOVES)
else
surgeon.add_blood_DNA_to_items(target.get_blood_dna_list(), ITEM_SLOT_GLOVES)
else
user.add_mob_blood(target)
// BUBBER EDIT END
return TRUE
/datum/surgery_step/proc/play_success_sound(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
@@ -0,0 +1,30 @@
/datum/surgery/ear_surgery
requires_bodypart_type = BODYTYPE_ORGANIC | BODYTYPE_ALIEN | BODYTYPE_NANO | BODYTYPE_SHADOW
/datum/surgery/ear_surgery/mechanic
name = "Auditory Sensor repair"
requires_bodypart_type = BODYTYPE_ROBOTIC
steps = list(
/datum/surgery_step/mechanic_open,
/datum/surgery_step/open_hatch,
/datum/surgery_step/mechanic_unwrench,
/datum/surgery_step/prepare_electronics,
/datum/surgery_step/fix_ears/mechanic,
/datum/surgery_step/mechanic_wrench,
/datum/surgery_step/mechanic_close
)
/datum/surgery_step/fix_ears
preop_sound = 'sound/items/handling/surgery/hemostat1.ogg'
success_sound = 'sound/items/handling/surgery/retractor2.ogg'
failure_sound = 'sound/items/handling/surgery/organ2.ogg'
/datum/surgery_step/fix_ears/mechanic
name = "repair auditory sensor (screwdriver/hemostat)"
implements = list(
TOOL_SCREWDRIVER = 100,
TOOL_HEMOSTAT = 45,
/obj/item/pen = 25)
preop_sound = 'sound/items/taperecorder/tape_flip.ogg'
success_sound = 'sound/items/taperecorder/taperecorder_close.ogg'
failure_sound = 'sound/items/handling/disk_drop.ogg'
@@ -0,0 +1,28 @@
/datum/surgery/eye_surgery
requires_bodypart_type = BODYTYPE_ORGANIC | BODYTYPE_ALIEN | BODYTYPE_NANO | BODYTYPE_SHADOW
/datum/surgery/eye_surgery/mechanic
name = "Optical Sensor repair"
requires_bodypart_type = BODYTYPE_ROBOTIC
steps = list(
/datum/surgery_step/mechanic_open,
/datum/surgery_step/open_hatch,
/datum/surgery_step/prepare_electronics,
/datum/surgery_step/fix_eyes/mechanic,
/datum/surgery_step/mechanic_close
)
/datum/surgery_step/fix_eyes
preop_sound = 'sound/items/handling/surgery/hemostat1.ogg'
success_sound = 'sound/items/handling/surgery/retractor2.ogg'
failure_sound = 'sound/items/handling/surgery/organ2.ogg'
/datum/surgery_step/fix_eyes/mechanic
name = "repair optical sensor (screwdriver/hemostat)"
implements = list(
TOOL_SCREWDRIVER = 100,
TOOL_HEMOSTAT = 45,
/obj/item/pen = 25)
preop_sound = 'sound/items/taperecorder/tape_flip.ogg'
success_sound = 'sound/items/taperecorder/taperecorder_close.ogg'
failure_sound = 'sound/items/handling/disk_drop.ogg'
@@ -14,3 +14,4 @@
return TRUE
return FALSE
+2
View File
@@ -9634,6 +9634,8 @@
#include "modular_zubbers\code\modules\surgery\advanced\trauma_surgery.dm"
#include "modular_zubbers\code\modules\surgery\bodyparts\dismemberment.dm"
#include "modular_zubbers\code\modules\surgery\bodyparts\species_parts\misc_bodyparts.dm"
#include "modular_zubbers\code\modules\surgery\organs\ear_surgery.dm"
#include "modular_zubbers\code\modules\surgery\organs\eye_surgery.dm"
#include "modular_zubbers\code\modules\surgery\organs\external\antennae.dm"
#include "modular_zubbers\code\modules\surgery\organs\external\wings.dm"
#include "modular_zubbers\code\modules\surgery\organs\internal\ears\_ears.dm"