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,