diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index c5efb941401..5485e09eace 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -383,7 +383,7 @@
"ahs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"aht" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/stack/cable_coil,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"ahu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
-"ahv" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
+"ahv" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/internal/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"ahw" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_mid"; tag = "icon-window5 (EAST)"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
"ahx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/auxsolarport)
"ahy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison)
@@ -7701,7 +7701,7 @@
"cSe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"cSf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"cSg" = (/obj/machinery/door/morgue{name = "Relic Closet"; req_access_txt = "22"},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
-"cSh" = (/obj/structure/table/woodentable,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/heart,/obj/item/device/soulstone,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
+"cSh" = (/obj/structure/table/woodentable,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/internal/heart,/obj/item/device/soulstone,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
"cSi" = (/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance Access "; req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"cSj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Departure Lounge - Port Fore"; dir = 4; network = list("SS13")},/obj/structure/flora/kirbyplants{icon_state = "plant-24"; layer = 4.1; tag = "icon-plant-24"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 5a07eb647ca..ed33a166b23 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -8470,7 +8470,7 @@
"dha" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/broken_device,/obj/item/robot_parts/chest,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/stack/cable_coil,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
-"dhd" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
+"dhd" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/internal/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhf" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_mid"; tag = "icon-window5 (EAST)"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
"dhg" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index 4d4e601ce72..af9519dddc9 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -364,15 +364,15 @@
scantemp = "Error: Unable to locate valid genetic data."
nanomanager.update_uis(src)
return
- if("brain" in subject.internal_organs_by_name)
- var/obj/item/organ/brain/Brn = subject.internal_organs_by_name["brain"]
+ if(subject.get_int_organ(/obj/item/organ/internal/brain))
+ var/obj/item/organ/internal/brain/Brn = subject.get_int_organ(/obj/item/organ/internal/brain)
if(istype(Brn))
var/datum/species/S = all_species[Brn.dna.species] // stepladder code wooooo
if(S.flags & NO_SCAN)
scantemp = "Error: Subject's brain is incompatible."
nanomanager.update_uis(src)
return
- if (subject.brain_op_stage == 4.0)
+ if(!subject.get_int_organ(/obj/item/organ/internal/brain))
scantemp = "Error: No signs of intelligence detected."
nanomanager.update_uis(src)
return
@@ -388,7 +388,7 @@
scantemp = "Error: Mental interface failure."
nanomanager.update_uis(src)
return
- if (scan_brain && !("brain" in subject.internal_organs_by_name))
+ if (scan_brain && !subject.get_int_organ(/obj/item/organ/internal/brain))
scantemp = "Error: No brain found."
nanomanager.update_uis(src)
return
@@ -403,7 +403,7 @@
R.ckey = subject.ckey
var/extra_info = ""
if(scan_brain)
- var/obj/item/organ/B = subject.internal_organs_by_name["brain"]
+ var/obj/item/organ/B = subject.get_int_organ(/obj/item/organ/internal/brain)
B.dna.check_integrity()
R.dna=B.dna.Clone()
var/datum/species/S = all_species[R.dna.species]
diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm
index a44b3d20450..40f7f9a871a 100644
--- a/code/modules/mob/living/carbon/brain/brain_item.dm
+++ b/code/modules/mob/living/carbon/brain/brain_item.dm
@@ -1,4 +1,4 @@
-/obj/item/organ/brain
+/obj/item/organ/internal/brain
name = "brain"
health = 400 //They need to live awhile longer than other organs.
max_damage = 200
@@ -13,33 +13,30 @@
var/mob/living/carbon/brain/brainmob = null
organ_tag = "brain"
parent_organ = "head"
+ slot = "brain"
vital = 1
-/obj/item/organ/brain/attack_self(mob/user as mob)
- return //let's not have players taken out of the round as easily as a click, once you have their brain.
-
-/obj/item/organ/brain/surgeryize()
+/obj/item/organ/internal/brain/surgeryize()
if(!owner)
return
owner.ear_damage = 0 //Yeah, didn't you...hear? The ears are totally inside the brain.
owner.ear_deaf = 0
-/obj/item/organ/brain/xeno
+/obj/item/organ/internal/brain/xeno
name = "thinkpan"
desc = "It looks kind of like an enormous wad of purple bubblegum."
- icon = 'icons/mob/alien.dmi'
- icon_state = "chitin"
+ icon_state = "brain-x-d"
-/obj/item/organ/brain/New()
+/obj/item/organ/internal/brain/New()
..()
spawn(5)
if(brainmob && brainmob.client)
brainmob.client.screen.len = null //clear the hud
-/obj/item/organ/brain/proc/transfer_identity(var/mob/living/carbon/H)
+/obj/item/organ/internal/brain/proc/transfer_identity(var/mob/living/carbon/H)
brainmob = new(src)
if(isnull(dna)) // someone didn't set this right...
- log_to_dd("[src] at [loc] did not contain a dna datum at time of removed.")
+ log_to_dd("[src] at [loc] did not contain a dna datum at time of removal.")
dna = H.dna.Clone()
name = "\the [dna.real_name]'s [initial(src.name)]"
brainmob.dna = dna.Clone() // Silly baycode, what you do
@@ -53,18 +50,18 @@
brainmob << "You feel slightly disoriented. That's normal when you're just a [initial(src.name)]."
callHook("debrain", list(brainmob))
-/obj/item/organ/brain/examine(mob/user) // -- TLE
+/obj/item/organ/internal/brain/examine(mob/user) // -- TLE
..(user)
if(brainmob && brainmob.client)//if thar be a brain inside... the brain.
user << "You can feel the small spark of life still left in this one."
else
user << "This one seems particularly lifeless. Perhaps it will regain some of its luster later.."
-/obj/item/organ/brain/removed(var/mob/living/user)
+/obj/item/organ/internal/brain/remove(var/mob/living/user,var/special)
if(!owner) return ..() // Probably a redundant removal; just bail
- var/obj/item/organ/brain/B = src
+ var/obj/item/organ/internal/brain/B = src
if(istype(B) && istype(owner) && is_primary_organ())
var/mob/living/simple_animal/borer/borer = owner.has_brain_worms()
@@ -76,12 +73,12 @@
..()
-/obj/item/organ/brain/replaced(var/mob/living/target)
+/obj/item/organ/internal/brain/insert(var/mob/living/target)
var/brain_already_exists = 0
if(istype(target,/mob/living/carbon/human)) // No more IPC multibrain shenanigans
- var/mob/living/carbon/human/H = target
- if(organ_tag in H.internal_organs_by_name)
+ //var/mob/living/carbon/human/H = target
+ if(target.get_int_organ(/obj/item/organ/internal/brain))
brain_already_exists = 1
if(!brain_already_exists)
@@ -97,19 +94,22 @@
target.key = brainmob.key
..()
-/obj/item/organ/brain/slime
+/obj/item/organ/internal/brain/prepare_eat()
+ return // Too important to eat.
+
+/obj/item/organ/internal/brain/slime
name = "slime core"
desc = "A complex, organic knot of jelly and crystalline particles."
icon = 'icons/mob/slimes.dmi'
icon_state = "green slime extract"
-/obj/item/organ/brain/golem
+/obj/item/organ/internal/brain/golem
name = "Runic mind"
desc = "A tightly furled roll of paper, covered with indecipherable runes."
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll"
-/obj/item/organ/brain/Destroy() //copypasted from MMIs.
+/obj/item/organ/internal/brain/Destroy() //copypasted from MMIs.
if(brainmob)
qdel(brainmob)
brainmob = null
diff --git a/code/modules/mob/living/carbon/human/species/skeleton.dm b/code/modules/mob/living/carbon/human/species/skeleton.dm
index 713a83d1180..7a4f1bae4eb 100644
--- a/code/modules/mob/living/carbon/human/species/skeleton.dm
+++ b/code/modules/mob/living/carbon/human/species/skeleton.dm
@@ -37,7 +37,7 @@
"is collapsing into a pile!",
"is twisting their skull off!")
has_organ = list(
- "brain" = /obj/item/organ/brain/golem,
+ "brain" = /obj/item/organ/internal/brain/golem,
)
/datum/species/skeleton/handle_reagents(var/mob/living/carbon/human/H, var/datum/reagent/R)
diff --git a/code/modules/surgery/bones.dm b/code/modules/surgery/bones.dm
index 4a3848a483a..54d199694e8 100644
--- a/code/modules/surgery/bones.dm
+++ b/code/modules/surgery/bones.dm
@@ -7,12 +7,13 @@
name = "bone repair"
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders,/datum/surgery_step/generic/retract_skin, /datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize)
possible_locs = list("chest","l_arm", "l_hand","r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","groin")
-
+ disallowed_mob = list(/mob/living/carbon/human/machine,/mob/living/carbon/human/diona)
/datum/surgery/bone_repair/skull
name = "bone repair"
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/glue_bone, /datum/surgery_step/mend_skull,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize)
possible_locs = list("head")
+ disallowed_mob = list(/mob/living/carbon/human/machine,/mob/living/carbon/human/diona)
/datum/surgery/bonerepair/can_start(mob/user, mob/living/carbon/target)
if(istype(target,/mob/living/carbon/human))
diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm
index c2af503c62c..7a27476f4c5 100644
--- a/code/modules/surgery/face.dm
+++ b/code/modules/surgery/face.dm
@@ -6,6 +6,7 @@
name = "plastic surgery"
steps = list(/datum/surgery_step/generic/cut_face, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/face/mend_vocal, /datum/surgery_step/face/fix_face,/datum/surgery_step/face/cauterize)
possible_locs = list("head")
+ disallowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/plastic_surgery/can_start(mob/user, mob/living/carbon/target)
@@ -16,8 +17,6 @@
return 0
if((target.get_species() == "Machine"))
return 0
- if(!(affected.encased))
- return 0
return 1
/datum/surgery_step/face
diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm
index 67ed3b08c17..5841d7282d9 100644
--- a/code/modules/surgery/helpers.dm
+++ b/code/modules/surgery/helpers.dm
@@ -27,7 +27,7 @@
continue
for(var/path in S.allowed_mob)
- if(istype(M, path))
+ if(istype(M, path) && (!locate(M) in S.disallowed_mob))
available_surgeries[S.name] = S
break
@@ -86,9 +86,4 @@ proc/get_location_modifier(mob/M)
else if(locate(/obj/structure/stool/bed, T))
return 0.7
else
- return 0.5
-
-
-//just until i update maps....
-/obj/item/organ/brain/New()
- new /obj/item/organ/internal/brain(src.loc)
\ No newline at end of file
+ return 0.5
\ No newline at end of file
diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm
index fe2acd815c3..fcdba7b2b71 100644
--- a/code/modules/surgery/implant.dm
+++ b/code/modules/surgery/implant.dm
@@ -6,22 +6,25 @@
//////////////////////////////////////////////////////////////////
/datum/surgery/cavity_implant
- name = "cavity implant"
+ name = "item implant/removal"
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/open_encased/saw,
/datum/surgery_step/open_encased/retract, /datum/surgery_step/cavity/make_space,/datum/surgery_step/cavity/place_item,/datum/surgery_step/cavity/close_space,/datum/surgery_step/open_encased/close,/datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize)
possible_locs = list("chest","head")
+ disallowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/cavity_implant/soft
- name = "cavity implant"
+ name = "item implant/removal"
steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/generic/cut_open, /datum/surgery_step/cavity/make_space,/datum/surgery_step/cavity/place_item,/datum/surgery_step/cavity/close_space,/datum/surgery_step/generic/cauterize)
possible_locs = list("groin")
+ disallowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/cavity_implant/synth
name = "cavity implant"
steps = list(/datum/surgery_step/robotics/external/unscrew_hatch,/datum/surgery_step/robotics/external/open_hatch,/datum/surgery_step/cavity/place_item,/datum/surgery_step/robotics/external/close_hatch)
possible_locs = list("chest","head","groin")
+ allowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/cavity_implant/synth/can_start(mob/user, mob/living/carbon/target)
return target.get_species() == "Machine"
@@ -200,11 +203,13 @@
name = "implant removal"
steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/generic/cut_open,/datum/surgery_step/cavity/implant_removal,/datum/surgery_step/cavity/close_space,/datum/surgery_step/generic/cauterize/)
possible_locs = list("chest","head")//head is for borers..i can put it elsewhere
+ disallowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/cavity_implant_rem/synth
name = "implant removal"
steps = list(/datum/surgery_step/robotics/external/unscrew_hatch,/datum/surgery_step/robotics/external/open_hatch,/datum/surgery_step/cavity/implant_removal,/datum/surgery_step/robotics/external/close_hatch)
possible_locs = list("chest","head")//head is for borers..i can put it elsewhere
+ allowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/cavity_implant_rem/synth/can_start(mob/user, mob/living/carbon/target)
return target.get_species() == "Machine"
diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm
index d132eb60a78..81f57916ce1 100644
--- a/code/modules/surgery/limb_reattach.dm
+++ b/code/modules/surgery/limb_reattach.dm
@@ -7,6 +7,7 @@
name = "amputation"
steps = list(/datum/surgery_step/generic/amputate)
possible_locs = list("head","l_arm", "l_hand","r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","groin")
+ disallowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/amputation/can_start(mob/user, mob/living/carbon/target)
@@ -24,6 +25,7 @@
name = "limb attachment"
steps = list(/datum/surgery_step/limb/attach,/datum/surgery_step/limb/connect)
possible_locs = list("head","l_arm", "l_hand","r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","groin")
+ disallowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/reattach/can_start(mob/user, mob/living/carbon/target)
if(ishuman(target))
@@ -36,12 +38,13 @@
return 0
-/datum/surgery/reattach/synth
+/datum/surgery/reattach_synth
name = "limb attachment"
steps = list(/datum/surgery_step/limb/attach)
possible_locs = list("head","l_arm", "l_hand","r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","groin")
+ allowed_mob = list(/mob/living/carbon/human/machine)
-/datum/surgery/reattach/synth/can_start(mob/user, mob/living/carbon/target)
+/datum/surgery/reattach_synth/can_start(mob/user, mob/living/carbon/target)
if(ishuman(target))
var/mob/living/carbon/human/H = target
var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting)
diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm
index 502b2a4b16c..485fea32026 100644
--- a/code/modules/surgery/organs/organ_external.dm
+++ b/code/modules/surgery/organs/organ_external.dm
@@ -128,11 +128,11 @@
/obj/item/organ/external/replaced(var/mob/living/carbon/human/target)
owner = target
status = status & ~ORGAN_DESTROYED
+ forceMove(owner)
if(istype(owner))
owner.organs_by_name[limb_name] = src
owner.organs |= src
for(var/obj/item/organ/organ in src)
- organ.loc = owner
organ.replaced(owner,src)
if(parent_organ)
@@ -141,6 +141,12 @@
if(!parent.children)
parent.children = list()
parent.children.Add(src)
+ //Remove all stump wounds since limb is not missing anymore
+ for(var/datum/wound/lost_limb/W in parent.wounds)
+ parent.wounds -= W
+ qdel(W)
+ break
+ parent.update_damages()
/obj/item/organ/external/robotize()
..()
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index 66e4c56ec1d..f675f3763c0 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -361,10 +361,9 @@
if(!owner)
return
- world << "[lasthonk]"
if(lasthonk == 0)
lasthonk = world.time
- if(lasthonk > world.time + 600|| lasthonk == 0)
+ if(lasthonk > world.time + 60|| lasthonk == 0)
lasthonk = world.time
owner << "HONK"
owner.sleeping = 0
diff --git a/code/modules/surgery/organs/subtypes/xenos.dm b/code/modules/surgery/organs/subtypes/xenos.dm
index b99dd1575ab..b94d58d91bf 100644
--- a/code/modules/surgery/organs/subtypes/xenos.dm
+++ b/code/modules/surgery/organs/subtypes/xenos.dm
@@ -115,7 +115,7 @@
/obj/item/organ/internal/xenos/acidgland
name = "xeno acid gland"
parent_organ = "head"
- slot = "acidgland"
+ slot = "acid"
origin_tech = "biotech=5;materials=2;combat=2"
alien_powers = list(/mob/living/carbon/alien/humanoid/proc/corrosive_acid)
@@ -140,7 +140,7 @@
name = "xeno neurotoxin gland"
icon_state = "neurotox"
parent_organ = "head"
- slot = "neurotoxingland"
+ slot = "neurotox"
origin_tech = "biotech=5;combat=5"
alien_powers = list(/mob/living/carbon/alien/humanoid/proc/neurotoxin)
@@ -148,7 +148,7 @@
name = "xeno resin organ"//...there tiger....
parent_organ = "mouth"
icon_state = "liver-x"
- slot = "resinspinner"
+ slot = "hivenode"
origin_tech = "biotech=5;materials=4"
alien_powers = list(/mob/living/carbon/alien/humanoid/proc/resin)
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index 6eb755c82ee..55df1305768 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -13,7 +13,6 @@
/datum/surgery/organ_manipulation/boneless
possible_locs = list("chest","head","groin", "eyes", "mouth")
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/internal/manipulate_organs,/datum/surgery_step/generic/cauterize)
- allowed_mob = list(/mob/living/carbon/human/diona)
requires_organic_bodypart = 1
/datum/surgery/organ_manipulation/alien
diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm
index c79eb220c38..45b37434b5d 100644
--- a/code/modules/surgery/other.dm
+++ b/code/modules/surgery/other.dm
@@ -6,6 +6,7 @@
name = "internal bleeding"
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders,/datum/surgery_step/generic/retract_skin,/datum/surgery_step/fix_vein,/datum/surgery_step/generic/cauterize)
possible_locs = list("chest","head","groin")
+ disallowed_mob = list(/mob/living/carbon/human/machine)
/datum/surgery/bleeding/can_start(mob/user, mob/living/carbon/target)
if(ishuman(target))
diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm
index 489309de35b..d6898cca1fd 100644
--- a/code/modules/surgery/robotics.dm
+++ b/code/modules/surgery/robotics.dm
@@ -8,16 +8,12 @@
steps = list(/datum/surgery_step/robotics/external/unscrew_hatch,/datum/surgery_step/robotics/external/open_hatch,/datum/surgery_step/robotics/external/repair_brute,/datum/surgery_step/robotics/external/repair_burn,/datum/surgery_step/robotics/external/close_hatch)
possible_locs = list("chest","head","l_arm", "l_hand","r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","groin")
requires_organic_bodypart = 0
- allowed_mob = list(/mob/living/carbon/human/machine)
- disallowed_mob = list(/mob/living/carbon/human)
/datum/surgery/cybernetic_repair/internal
name = "Internal Cybernetic Mainpulation"
steps = list(/datum/surgery_step/robotics/external/unscrew_hatch,/datum/surgery_step/robotics/external/open_hatch,/datum/surgery_step/robotics/manipulate_robotic_organs)
possible_locs = list("chest","head","groin")
requires_organic_bodypart = 0
- allowed_mob = list(/mob/living/carbon/human/machine)
- disallowed_mob = list(/mob/living/carbon/human)
/datum/surgery/cybernetic_repair/can_start(mob/user, mob/living/carbon/target)
diff --git a/code/modules/surgery/slime.dm b/code/modules/surgery/slime.dm
index 62a7d890701..8c672e83be6 100644
--- a/code/modules/surgery/slime.dm
+++ b/code/modules/surgery/slime.dm
@@ -5,6 +5,7 @@
name = "core removal"
steps = list(/datum/surgery_step/slime/cut_flesh, /datum/surgery_step/slime/cut_innards, /datum/surgery_step/slime/saw_core)
allowed_mob = list(/mob/living/carbon/slime)
+ disallowed_mob = list(/mob/living/carbon/human)
possible_locs = list("chest")//urgghhhhhhhhhhhh