From 595b9c00b317e9db3d8c3c09e45be4b22d1ccf25 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 1 Dec 2025 06:17:21 +0100 Subject: [PATCH] Removes Defibrillators from being printable, and adds cmo compact defib as a spy objective. (#94182) ## About The Pull Request This PR removes Defibrillators from being printable in the techlathe. Which means the Compact belt becomes CMO exclusive item. And adds a objective for spies to steal compact belt because it feeds it into the black market, which other antags can maybe buy and emagg it to turn it into a reasonable weapon This pr also makes it so the baseline of roundstarting defibs is 4 ## Why It's Good For The Game Years ago we made defibrillators never printable, and there was no way to get them unless it was trough cargo, and later we added it to the techlathe which immediatly voided the cargo crate. Medical starts with 4 defibrillators medbay usually uses 2, and then the other 2 go to medical borgs (and theres not really ever a real reason to print out another since you got plenty). We also have spefific upgrade modules for medical cyborgs which is voided by just printing a defib and inserting it into the medical borgs. TL;DR order it from cargo either 1 using your departmental budget, 2 using your free ordering console, or 3 just from cargo ## Changelog :cl: ezel add: Compact Defibrillator is now a Spy objective balance: Compact Defib is CMO exclusive again balance: you can no longer print Defibrillators in techlathe (purchase them via cargo if needed) sprite: CMO compact defib now looks unique from other ones map: catwalk defibs trimmed to 4 instead of 6 map: metastation defib added from 3 to 4 map: wawastation defib added from 3 to 4 map: tramstation defib added from 3 to 4 map: nebulastation defibs trimmed from 6 to 4 /:cl: --- .../CatwalkStation/CatwalkStation_2023.dmm | 28 ++++-------------- _maps/map_files/MetaStation/MetaStation.dmm | 3 ++ .../map_files/NebulaStation/NebulaStation.dmm | 25 +++++++--------- _maps/map_files/tramstation/tramstation.dmm | 3 ++ _maps/map_files/wawastation/wawastation.dmm | 3 ++ code/game/gamemodes/objective_items.dm | 11 +++++++ code/game/objects/items/defib.dm | 5 ++++ .../crates_lockers/closets/secure/medical.dm | 2 +- .../research/designs/medical_designs.dm | 24 --------------- .../research/techweb/nodes/medbay_nodes.dm | 2 -- icons/obj/medical/defib.dmi | Bin 4678 -> 4761 bytes 11 files changed, 42 insertions(+), 64 deletions(-) diff --git a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm index 5c50cb40933..08c47776b5a 100644 --- a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm +++ b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm @@ -1665,6 +1665,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/suit_storage_unit/medical, +/obj/effect/turf_decal/bot_white{ + color = "#52B4E9" + }, /turf/open/floor/iron/dark/textured_large, /area/station/medical/storage) "axr" = ( @@ -41248,11 +41252,11 @@ /turf/open/openspace, /area/station/science/research) "loB" = ( -/obj/machinery/suit_storage_unit/medical, +/obj/machinery/status_display/evac/directional/south, /obj/effect/turf_decal/bot_white{ color = "#52B4E9" }, -/obj/machinery/status_display/evac/directional/south, +/obj/structure/closet/secure_closet/medical3, /turf/open/floor/iron/dark/textured_large, /area/station/medical/storage) "loI" = ( @@ -46563,12 +46567,6 @@ network = list("ss13","medbay") }, /obj/structure/closet/secure_closet/medical3, -/obj/item/defibrillator/loaded, -/obj/item/clothing/glasses/hud/health{ - pixel_y = 13 - }, -/obj/item/clothing/gloves/latex/nitrile, -/obj/item/clothing/gloves/latex/nitrile, /obj/effect/turf_decal/bot_white{ color = "#52B4E9" }, @@ -75983,16 +75981,9 @@ "uUK" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/structure/closet/secure_closet/medical3, -/obj/item/clothing/gloves/latex/nitrile, -/obj/item/defibrillator/loaded, -/obj/item/clothing/glasses/hud/health{ - pixel_y = 13 - }, -/obj/item/clothing/gloves/latex/nitrile, /obj/effect/turf_decal/bot_white{ color = "#52B4E9" }, -/obj/item/clothing/gloves/latex/nitrile, /turf/open/floor/iron/dark/textured_large, /area/station/medical/storage) "uUL" = ( @@ -87627,17 +87618,10 @@ /area/station/ai/satellite/maintenance/storage) "yee" = ( /obj/structure/closet/secure_closet/medical3, -/obj/item/clothing/gloves/latex/nitrile, -/obj/item/defibrillator/loaded, -/obj/item/clothing/glasses/hud/health{ - pixel_y = 13 - }, -/obj/item/clothing/gloves/latex/nitrile, /obj/effect/turf_decal/bot_white{ color = "#52B4E9" }, /obj/machinery/newscaster/directional/south, -/obj/item/clothing/gloves/latex/nitrile, /turf/open/floor/iron/dark/textured_large, /area/station/medical/storage) "yeg" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index dd6c93604e5..251c26812b2 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -7303,6 +7303,9 @@ pixel_y = 3 }, /obj/item/defibrillator/loaded, +/obj/item/defibrillator/loaded{ + pixel_y = -4 + }, /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/medical/storage) diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index ba4062eddb1..7fa07011581 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -12303,19 +12303,8 @@ /area/space/nearstation) "bQa" = ( /obj/structure/table/glass, -/obj/item/clothing/glasses/hud/health{ - pixel_y = 8 - }, -/obj/item/clothing/glasses/hud/health{ - pixel_y = 3 - }, -/obj/item/clothing/glasses/hud/health{ - pixel_y = -2 - }, -/obj/item/clothing/glasses/hud/health{ - pixel_y = 13 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/defibrillator/loaded, /turf/open/floor/iron/dark, /area/station/medical/storage) "bQd" = ( @@ -93123,7 +93112,6 @@ "nQT" = ( /obj/structure/closet/secure_closet/medical3, /obj/effect/turf_decal/box, -/obj/item/defibrillator/loaded, /obj/item/clothing/gloves/latex/nitrile, /obj/item/clothing/gloves/latex/nitrile, /obj/effect/turf_decal/siding/dark{ @@ -93134,6 +93122,9 @@ }, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, +/obj/item/clothing/glasses/hud/health{ + pixel_y = 3 + }, /turf/open/floor/iron/dark/small, /area/station/medical/storage) "nRd" = ( @@ -130185,13 +130176,15 @@ "tnz" = ( /obj/structure/closet/secure_closet/medical3, /obj/effect/turf_decal/box, -/obj/item/defibrillator/loaded, /obj/item/clothing/gloves/latex/nitrile, /obj/item/clothing/gloves/latex/nitrile, /obj/machinery/requests_console/auto_name/directional/north{ name = "Medbay Requests Console" }, /obj/effect/mapping_helpers/requests_console/assistance, +/obj/item/clothing/glasses/hud/health{ + pixel_y = 3 + }, /turf/open/floor/iron/dark/small, /area/station/medical/storage) "tnR" = ( @@ -134962,7 +134955,6 @@ "tVO" = ( /obj/structure/closet/secure_closet/medical3, /obj/effect/turf_decal/box, -/obj/item/defibrillator/loaded, /obj/item/clothing/gloves/latex/nitrile, /obj/item/clothing/gloves/latex/nitrile, /obj/effect/turf_decal/siding/dark{ @@ -134976,6 +134968,9 @@ network = list("ss13","medbay"); dir = 9 }, +/obj/item/clothing/glasses/hud/health{ + pixel_y = 3 + }, /turf/open/floor/iron/dark/small, /area/station/medical/storage) "tVT" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 399aff633d8..b246ff62fba 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -31988,6 +31988,9 @@ name = "Secure Medical Storage"; req_access = list("medical") }, +/obj/item/defibrillator/loaded{ + pixel_y = 6 + }, /obj/item/clothing/glasses/blindfold, /obj/item/clothing/glasses/blindfold, /obj/item/clothing/ears/earmuffs, diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 36df2c14123..9459ca0204d 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -11932,6 +11932,9 @@ pixel_y = 3 }, /obj/item/defibrillator/loaded, +/obj/item/defibrillator/loaded{ + pixel_y = -4 + }, /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/white, /area/station/medical/storage) diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index bb0c93c3022..33256f6d390 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -911,6 +911,17 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new()) /obj/item/mod/control/pre_equipped/rescue/add_stealing_item_objective() return add_item_to_steal(src, /obj/item/mod/control/pre_equipped/rescue) +/datum/objective_item/steal/spy/cmo_defib + name = "Chief Medical Officer's Compact Defibrillator" + targetitem = /obj/item/defibrillator/compact/loaded/cmo + excludefromjob = list(JOB_CHIEF_MEDICAL_OFFICER) + exists_on_map = TRUE + difficulty = 2 + steal_hint = "The Compact Defibrillator, found on their person, or in their closet." + +/obj/item/defibrillator/compact/loaded/cmo/add_stealing_item_objective() + return add_item_to_steal(src, /obj/item/defibrillator/compact/loaded/cmo) + /datum/objective_item/steal/spy/hos_modsuit name = "the head of security's safeguard MOD control unit" targetitem = /obj/item/mod/control/pre_equipped/safeguard diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 485056b85f0..dc43127e2a3 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -280,6 +280,11 @@ cell = new(src) update_power() +/obj/item/defibrillator/compact/loaded/cmo // subtype for the spy steal objective + name = "chief medical officer's compact defibrillator" + icon_state = "defibcmo" + resistance_flags = INDESTRUCTIBLE // So no cheesy getting rid of like other steal/head items + /obj/item/defibrillator/compact/combat name = "combat defibrillator" desc = "A belt-equipped blood-red defibrillator. Can revive through thick clothing, has an experimental self-recharging battery, and can be utilized as a weapon via applying the paddles while in a combat stance." diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 5bce0702b5a..038d6368389 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -83,7 +83,6 @@ new /obj/item/computer_disk/command/cmo(src) new /obj/item/radio/headset/heads/cmo(src) new /obj/item/megaphone/command(src) - new /obj/item/defibrillator/compact/loaded(src) new /obj/item/assembly/flash/handheld(src) new /obj/item/autosurgeon/medical_hud(src) new /obj/item/door_remote/chief_medical_officer(src) @@ -98,6 +97,7 @@ // Traitor steal objective new /obj/item/reagent_containers/hypospray/cmo(src) + new /obj/item/defibrillator/compact/loaded/cmo(src) /obj/structure/closet/secure_closet/animal name = "animal control locker" diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 4260a6f4685..d2bca7ccce5 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -188,18 +188,6 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL -/datum/design/defibrillator - name = "Defibrillator" - desc = "A portable defibrillator, used for resuscitating recently deceased crew." - id = "defibrillator" - build_type = PROTOLATHE | AWAY_LATHE - build_path = /obj/item/defibrillator - materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*4, /datum/material/glass = SHEET_MATERIAL_AMOUNT*2, /datum/material/silver =SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/gold =HALF_SHEET_MATERIAL_AMOUNT * 1.5) - category = list( - RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL - ) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL - /datum/design/defibrillator_mount name = "Defibrillator Wall Mount" desc = "A mounted frame for holding defibrillators, providing easy security." @@ -224,18 +212,6 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL -/datum/design/defibrillator_compact - name = "Compact Defibrillator" - desc = "A compact defibrillator that can be worn on a belt." - id = "defibrillator_compact" - build_type = PROTOLATHE | AWAY_LATHE - build_path = /obj/item/defibrillator/compact - materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*6, /datum/material/glass = SHEET_MATERIAL_AMOUNT*4, /datum/material/silver = SHEET_MATERIAL_AMOUNT*3, /datum/material/gold =SHEET_MATERIAL_AMOUNT * 1.5) - category = list( - RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL - ) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL - /datum/design/genescanner name = "Genetic Sequence Analyzer" desc = "A handy hand-held analyzers for quickly determining mutations and collecting the full sequence." diff --git a/code/modules/research/techweb/nodes/medbay_nodes.dm b/code/modules/research/techweb/nodes/medbay_nodes.dm index 09f404e97ec..c79bad013ef 100644 --- a/code/modules/research/techweb/nodes/medbay_nodes.dm +++ b/code/modules/research/techweb/nodes/medbay_nodes.dm @@ -7,7 +7,6 @@ "operating", "medicalbed", "defibmountdefault", - "defibrillator", "surgical_drapes", "scalpel", "retractor", @@ -80,7 +79,6 @@ "healthanalyzer_advanced", "mod_health_analyzer", "crewpinpointer", - "defibrillator_compact", "defibmount", "medicalbed_emergency", "piercesyringe", diff --git a/icons/obj/medical/defib.dmi b/icons/obj/medical/defib.dmi index 1e707f529ce98bea96a97612df53446b97c2f828..74ad889d4e18eb3674ad31bfe335a4c911e94218 100644 GIT binary patch delta 4452 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 P1Y~RFXjyT_=i&bWHY_LF delta 4367 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 F{{TSd!UX^T