diff --git a/code/datums/components/crafting/tools.dm b/code/datums/components/crafting/tools.dm
index e6929845c38..cc2d510bd25 100644
--- a/code/datums/components/crafting/tools.dm
+++ b/code/datums/components/crafting/tools.dm
@@ -23,7 +23,7 @@
reqs = list(
/obj/item/stack/sheet/bone = 4,
/datum/reagent/fuel/oil = 5,
- /obj/item/shovel/spade = 1,
+ /obj/item/shovel = 1,
)
result = /obj/item/shovel/serrated
category = CAT_TOOLS
diff --git a/code/game/objects/items/devices/scanners/autopsy_scanner.dm b/code/game/objects/items/devices/scanners/autopsy_scanner.dm
index 161a45510b8..650dc052d31 100644
--- a/code/game/objects/items/devices/scanners/autopsy_scanner.dm
+++ b/code/game/objects/items/devices/scanners/autopsy_scanner.dm
@@ -1,6 +1,6 @@
/obj/item/autopsy_scanner
name = "autopsy scanner"
- desc = "Used in surgery to extract information from a cadaver."
+ desc = "Used in surgery to extract information from a cadaver. Can also scan the health of cadavers like an advanced health analyzer!"
icon = 'icons/obj/device.dmi'
icon_state = "autopsy_scanner"
inhand_icon_state = "autopsy_scanner"
@@ -13,6 +13,31 @@
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*2)
custom_price = PAYCHECK_COMMAND
+/obj/item/autopsy_scanner/attack(mob/living/M, mob/living/carbon/human/user)
+ if(!user.can_read(src) || user.is_blind())
+ return
+
+ if(M.stat != DEAD && !HAS_TRAIT(M, TRAIT_FAKEDEATH)) // good job, you found a loophole
+ to_chat(user, span_deadsay("[icon2html(src, user)] ERROR! CANNOT SCAN LIVE CADAVERS. PROCURE HEALTH ANALYZER OR TERMINATE PATIENT."))
+ return
+
+ // Clumsiness/brain damage check
+ if ((HAS_TRAIT(user, TRAIT_CLUMSY) || HAS_TRAIT(user, TRAIT_DUMB)) && prob(50))
+ user.visible_message(span_warning("[user] analyzes the floor's vitals!"), \
+ span_notice("You stupidly try to analyze the floor's vitals!"))
+ to_chat(user, "[span_info("Analyzing results for The floor:\n\tOverall status: Healthy")]\
+ \n[span_info("Key: Suffocation/Toxin/Burn/Brute")]\
+ \n[span_info("\tDamage specifics: 0-0-0-0")]\
+ \n[span_info("Body temperature: ???")]")
+ return
+
+ user.visible_message(span_notice("[user] scans [M]'s cadaver."))
+ to_chat(user, span_deadsay("[icon2html(src, user)] ANALYZING CADAVER."))
+
+ healthscan(user, M, advanced = TRUE)
+
+ add_fingerprint(user)
+
/obj/item/autopsy_scanner/proc/scan_cadaver(mob/living/carbon/human/user, mob/living/carbon/scanned)
if(scanned.stat != DEAD)
return
diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm
index d24c542b57c..74f858832d3 100644
--- a/code/game/objects/items/knives.dm
+++ b/code/game/objects/items/knives.dm
@@ -62,6 +62,9 @@
inhand_x_dimension = 64
inhand_y_dimension = 64
item_flags = CRUEL_IMPLEMENT //maybe they want to use it in surgery
+ force = 15
+ throwforce = 15
+ wound_bonus = 20
w_class = WEIGHT_CLASS_NORMAL
/obj/item/knife/bloodletter
diff --git a/code/modules/clothing/gloves/special.dm b/code/modules/clothing/gloves/special.dm
index 88854c74dec..74de42937e1 100644
--- a/code/modules/clothing/gloves/special.dm
+++ b/code/modules/clothing/gloves/special.dm
@@ -122,6 +122,7 @@
icon_state = "latex_black"
inhand_icon_state = "greyscale_gloves"
greyscale_colors = "#15191a"
+ clothing_traits = list(TRAIT_QUICK_CARRY, TRAIT_FASTMED)
/obj/item/clothing/gloves/latex/coroner/add_blood_DNA(list/blood_DNA_to_add)
return FALSE
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index 001eaceebf8..93bdb8f831e 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -512,18 +512,20 @@
inhand_icon_state = "scythe0"
lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi'
- force = 13
+ force = 15
throwforce = 5
throw_speed = 2
throw_range = 3
w_class = WEIGHT_CLASS_BULKY
flags_1 = CONDUCT_1
armour_penetration = 20
+ wound_bonus = 10
slot_flags = ITEM_SLOT_BACK
attack_verb_continuous = list("chops", "slices", "cuts", "reaps")
attack_verb_simple = list("chop", "slice", "cut", "reap")
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = SHARP_EDGED
+ item_flags = CRUEL_IMPLEMENT //maybe they want to use it in surgery
var/swiping = FALSE
/obj/item/scythe/Initialize(mapload)
diff --git a/code/modules/jobs/job_types/coroner.dm b/code/modules/jobs/job_types/coroner.dm
index 7b0371068cf..70e316298d8 100644
--- a/code/modules/jobs/job_types/coroner.dm
+++ b/code/modules/jobs/job_types/coroner.dm
@@ -31,7 +31,7 @@
/obj/item/reagent_containers/cup/bottle/formaldehyde = 30,
/obj/item/storage/box/bodybags = 15,
/obj/item/healthanalyzer = 10,
- /obj/item/shovel = 5,
+ /obj/item/shovel/serrated/dull = 5,
/obj/effect/spawner/random/medical/organs = 5,
/obj/effect/spawner/random/medical/memeorgans = 1,
/obj/item/scythe = 1,
diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm
index 748c14c40a5..101ad3cb20a 100644
--- a/code/modules/mining/equipment/mining_tools.dm
+++ b/code/modules/mining/equipment/mining_tools.dm
@@ -173,6 +173,7 @@
force = 10
throwforce = 12
w_class = WEIGHT_CLASS_NORMAL
+ tool_behaviour = TOOL_SHOVEL // hey, it's serrated.
toolspeed = 0.3
attack_verb_continuous = list("slashes", "impales", "stabs", "slices")
attack_verb_simple = list("slash", "impale", "stab", "slice")
@@ -183,6 +184,20 @@
. = ..()
AddElement(/datum/element/bane, mob_biotypes = MOB_ORGANIC, damage_multiplier = 1) //You may be horridly cursed now, but at least you kill the living a whole lot more easily!
+/obj/item/shovel/serrated/examine(mob/user)
+ . = ..()
+ if( !(user.mind && HAS_TRAIT(user.mind, TRAIT_MORBID)) )
+ return
+ . += span_deadsay("You feel an intense, strange craving to 'dig' straight through living flesh with this shovel. Why else would it be serrated? The thought is mesmerizing...")
+
+// Coroner mail version
+/obj/item/shovel/serrated/dull
+ name = "dull bone shovel"
+ desc = "An ancient, dull bone shovel with a strange design and markings. Visually, it seems pretty weak, but you get the feeling there's more to it than meets the eye..."
+ force = 8
+ throwforce = 10
+ toolspeed = 0.8
+
/obj/item/trench_tool
name = "entrenching tool"
desc = "The multi-purpose tool you always needed."
diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm
index f4d7f8e8ff1..8c8924cdcab 100644
--- a/code/modules/surgery/amputation.dm
+++ b/code/modules/surgery/amputation.dm
@@ -30,6 +30,7 @@
/obj/item/shears = 300,
TOOL_SCALPEL = 100,
TOOL_SAW = 100,
+ /obj/item/shovel/serrated = 75,
/obj/item/melee/arm_blade = 80,
/obj/item/fireaxe = 50,
/obj/item/hatchet = 40,
diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm
index 04f7fd1e5e0..f635d0da020 100644
--- a/code/modules/surgery/lipoplasty.dm
+++ b/code/modules/surgery/lipoplasty.dm
@@ -20,6 +20,7 @@
name = "cut excess fat (circular saw)"
implements = list(
TOOL_SAW = 100,
+ /obj/item/shovel/serrated = 75,
/obj/item/hatchet = 35,
/obj/item/knife/butcher = 25)
time = 64
diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm
index 53bafa54810..a4c087059d6 100644
--- a/code/modules/surgery/organic_steps.dm
+++ b/code/modules/surgery/organic_steps.dm
@@ -152,6 +152,7 @@
name = "saw bone (circular saw)"
implements = list(
TOOL_SAW = 100,
+ /obj/item/shovel/serrated = 75,
/obj/item/melee/arm_blade = 75,
/obj/item/fireaxe = 50,
/obj/item/hatchet = 35,