diff --git a/citadel.dme b/citadel.dme
index c092b1d976a8..6d38e4b30488 100644
--- a/citadel.dme
+++ b/citadel.dme
@@ -242,6 +242,7 @@
#include "code\__DEFINES\inventory\rendering.dm"
#include "code\__DEFINES\inventory\slots.dm"
#include "code\__DEFINES\inventory\storage.dm"
+#include "code\__DEFINES\items\defib.dm"
#include "code\__DEFINES\items\hypospray.dm"
#include "code\__DEFINES\items\inducer.dm"
#include "code\__DEFINES\items\nifs.dm"
@@ -1642,6 +1643,8 @@
#include "code\game\objects\items\circuitboards\machinery\ships.dm"
#include "code\game\objects\items\circuitboards\machinery\telecomms.dm"
#include "code\game\objects\items\circuitboards\machinery\unary_atmos.dm"
+#include "code\game\objects\items\defib\defib_kit.dm"
+#include "code\game\objects\items\defib\shockpaddles.dm"
#include "code\game\objects\items\devices\advnifrepair.dm"
#include "code\game\objects\items\devices\ai_detector.dm"
#include "code\game\objects\items\devices\aicard.dm"
@@ -1649,7 +1652,6 @@
#include "code\game\objects\items\devices\body_snatcher_vr.dm"
#include "code\game\objects\items\devices\chameleonproj.dm"
#include "code\game\objects\items\devices\debugger.dm"
-#include "code\game\objects\items\devices\defib.dm"
#include "code\game\objects\items\devices\flash.dm"
#include "code\game\objects\items\devices\flashlight.dm"
#include "code\game\objects\items\devices\floor_painter.dm"
diff --git a/code/__DEFINES/items/defib.dm b/code/__DEFINES/items/defib.dm
new file mode 100644
index 000000000000..0653bdb70ff4
--- /dev/null
+++ b/code/__DEFINES/items/defib.dm
@@ -0,0 +1,5 @@
+
+///past this many seconds, defib will cause maximum brain damage.
+#define DEFIB_TIME_LIMIT (10 MINUTES)
+///past this many seconds, brain damage occurs.
+#define DEFIB_TIME_LOSS (2 MINUTES)
diff --git a/code/__DEFINES/items/inducer.dm b/code/__DEFINES/items/inducer.dm
index 68ae8bfcbdc0..c505f43bcb50 100644
--- a/code/__DEFINES/items/inducer.dm
+++ b/code/__DEFINES/items/inducer.dm
@@ -1,10 +1,12 @@
-// /inducer_act returns
+//* /atom/proc/inducer_act returns *//
+
/// continue without using charge
#define INDUCER_ACT_CONTINUE "continue"
/// immediately stop
#define INDUCER_ACT_STOP "stop"
-// /inducer_scan returns
+//* /inducer_scan returns *//
+
/// normal - use list
#define INDUCER_SCAN_NORMAL 0
/// ignore scan result, silent fail
@@ -14,6 +16,7 @@
/// say something is full
#define INDUCER_SCAN_FULL 3
-// /inducer/var/inducer_flags
+//* /obj/item/inducer/var/inducer_flags *//
+
/// no using on guns
#define INDUCER_NO_GUNS (1<<0)
diff --git a/code/game/content/factions/corporations/nanotrasen/nanotrasen-supply/robotics.dm b/code/game/content/factions/corporations/nanotrasen/nanotrasen-supply/robotics.dm
index 87a54ae77089..71e7360b8e0b 100644
--- a/code/game/content/factions/corporations/nanotrasen/nanotrasen-supply/robotics.dm
+++ b/code/game/content/factions/corporations/nanotrasen/nanotrasen-supply/robotics.dm
@@ -19,13 +19,6 @@
)
worth = 250 // literally only because of the flashes; nerf flashes when?
-/datum/supply_pack/nanotrasen/robotics/jumper_cables
- name = "Jumper kit crate"
- contains = list(
- /obj/item/defib_kit/jumper_kit = 2,
- )
- worth = 250
-
/datum/supply_pack/nanotrasen/robotics/restrainingbolt
name = "Restraining bolt crate"
contains = list(
diff --git a/code/game/objects/items/defib/defib_kit.dm b/code/game/objects/items/defib/defib_kit.dm
new file mode 100644
index 000000000000..aecb0f11b6ed
--- /dev/null
+++ b/code/game/objects/items/defib/defib_kit.dm
@@ -0,0 +1,179 @@
+// todo: rework defibs
+// todo: object cell system
+
+//backpack item
+/obj/item/defib_kit
+ name = "defibrillator"
+ desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients."
+ icon = 'icons/obj/medical/defibrillator.dmi'
+ icon_state = "defibunit"
+ item_state = "defibunit"
+ slot_flags = SLOT_BACK
+ damage_force = 5
+ throw_force = 6
+ preserve_item = 1
+ w_class = WEIGHT_CLASS_BULKY
+ origin_tech = list(TECH_BIO = 4, TECH_POWER = 2)
+ item_action_name = "Remove/Replace Paddles"
+ worth_intrinsic = 300
+
+ var/obj/item/shockpaddles/linked/paddles
+ var/obj/item/cell/bcell = null
+
+/obj/item/defib_kit/Initialize(mapload) //starts without a cell for rnd
+ . = ..()
+ if(ispath(paddles))
+ paddles = new paddles(src, src)
+ else
+ paddles = new(src, src)
+
+ if(ispath(bcell))
+ bcell = new bcell(src)
+ update_icon()
+
+/obj/item/defib_kit/Destroy()
+ . = ..()
+ QDEL_NULL(paddles)
+ QDEL_NULL(bcell)
+
+/obj/item/defib_kit/loaded //starts with a cell
+ bcell = /obj/item/cell/apc
+
+/obj/item/defib_kit/update_icon()
+
+ cut_overlays()
+ var/list/new_overlays = list()
+
+ if(paddles && paddles.loc == src) //in case paddles got destroyed somehow.
+ new_overlays += "[initial(icon_state)]-paddles"
+ if(bcell && paddles)
+ if(bcell.check_charge(paddles.chargecost))
+ if(paddles.combat)
+ new_overlays += "[initial(icon_state)]-combat"
+ else if(!paddles.safety)
+ new_overlays += "[initial(icon_state)]-emagged"
+ else
+ new_overlays += "[initial(icon_state)]-powered"
+
+ var/ratio = CEILING(bcell.percent()/25, 1) * 25
+ new_overlays += "[initial(icon_state)]-charge[ratio]"
+ else
+ new_overlays += "[initial(icon_state)]-nocell"
+
+ add_overlay(new_overlays)
+
+/obj/item/defib_kit/ui_action_click(datum/action/action, datum/event_args/actor/actor)
+ toggle_paddles()
+
+/obj/item/defib_kit/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args)
+ if(loc == user)
+ toggle_paddles()
+ else
+ ..()
+
+/obj/item/defib_kit/attackby(obj/item/W, mob/user, params)
+ if(W == paddles)
+ reattach_paddles(user)
+ return CLICKCHAIN_DO_NOT_PROPAGATE
+ else if(istype(W, /obj/item/cell))
+ if(bcell)
+ to_chat(user, "\the [src] already has a cell.")
+ return CLICKCHAIN_DO_NOT_PROPAGATE
+ else
+ if(!user.attempt_insert_item_for_installation(W, src))
+ return CLICKCHAIN_DO_NOT_PROPAGATE
+ bcell = W
+ to_chat(user, "You install a cell in \the [src].")
+ update_icon()
+ return CLICKCHAIN_DO_NOT_PROPAGATE
+
+ else if(W.is_screwdriver())
+ if(bcell)
+ bcell.update_icon()
+ bcell.forceMove(get_turf(src.loc))
+ bcell = null
+ to_chat(user, "You remove the cell from \the [src].")
+ update_icon()
+ return CLICKCHAIN_DO_NOT_PROPAGATE
+ else
+ return ..()
+
+/obj/item/defib_kit/emag_act(var/remaining_charges, var/mob/user)
+ if(paddles)
+ . = paddles.emag_act(user)
+ update_icon()
+ return
+
+//Paddle stuff
+
+/obj/item/defib_kit/verb/toggle_paddles()
+ set name = "Toggle Paddles"
+ set category = VERB_CATEGORY_OBJECT
+
+ var/mob/living/carbon/human/user = usr
+ if(!paddles)
+ to_chat(user, "The paddles are missing!")
+ return
+
+ if(paddles.loc != src)
+ reattach_paddles(user) //Remove from their hands and back onto the defib unit
+ return
+
+ if(!slot_check())
+ to_chat(user, "You need to equip [src] before taking out [paddles].")
+ else
+ if(!usr.put_in_hands(paddles)) //Detach the paddles into the user's hands
+ to_chat(user, "You need a free hand to hold the paddles!")
+ update_icon() //success
+
+//checks that the base unit is in the correct slot to be used
+/obj/item/defib_kit/proc/slot_check()
+ var/mob/M = loc
+ if(!istype(M))
+ return 0 //not equipped
+
+ if((slot_flags & SLOT_BACK) && M.item_by_slot_id(SLOT_ID_BACK) == src)
+ return 1
+ if((slot_flags & SLOT_BELT) && M.item_by_slot_id(SLOT_ID_BELT) == src)
+ return 1
+
+ return 0
+
+/obj/item/defib_kit/unequipped(mob/user, slot, flags)
+ . = ..()
+ reattach_paddles(user) //paddles attached to a base unit should never exist outside of their base unit or the mob equipping the base unit
+
+/obj/item/defib_kit/proc/reattach_paddles(mob/user)
+ if(!paddles)
+ return
+
+ if(ismob(paddles.loc))
+ to_chat(paddles.loc, "\The [paddles] snap back into the main unit.")
+ paddles.forceMove(src)
+ update_icon()
+
+/*
+ Base Unit Subtypes
+*/
+
+/obj/item/defib_kit/compact
+ name = "compact defibrillator"
+ desc = "A belt-equipped defibrillator that can be rapidly deployed."
+ icon_state = "defibcompact"
+ item_state = "defibcompact"
+ w_class = WEIGHT_CLASS_NORMAL
+ slot_flags = SLOT_BELT
+ origin_tech = list(TECH_BIO = 5, TECH_POWER = 3)
+ worth_intrinsic = 500
+
+/obj/item/defib_kit/compact/loaded
+ bcell = /obj/item/cell/high
+
+
+/obj/item/defib_kit/compact/combat
+ name = "combat defibrillator"
+ desc = "A belt-equipped blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits."
+ paddles = /obj/item/shockpaddles/linked/combat
+
+/obj/item/defib_kit/compact/combat/loaded
+ bcell = /obj/item/cell/high
diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/defib/shockpaddles.dm
similarity index 69%
rename from code/game/objects/items/devices/defib.dm
rename to code/game/objects/items/defib/shockpaddles.dm
index 3f3d980a0b8a..80ea15055a58 100644
--- a/code/game/objects/items/devices/defib.dm
+++ b/code/game/objects/items/defib/shockpaddles.dm
@@ -1,192 +1,5 @@
-///past this many seconds, defib will cause maximum brain damage.
-#define DEFIB_TIME_LIMIT (10 MINUTES)
-///past this many seconds, brain damage occurs.
-#define DEFIB_TIME_LOSS (2 MINUTES)
-//backpack item
-/obj/item/defib_kit
- name = "defibrillator"
- desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients."
- icon = 'icons/obj/medical/defibrillator.dmi'
- icon_state = "defibunit"
- item_state = "defibunit"
- slot_flags = SLOT_BACK
- damage_force = 5
- throw_force = 6
- preserve_item = 1
- w_class = WEIGHT_CLASS_BULKY
- origin_tech = list(TECH_BIO = 4, TECH_POWER = 2)
- item_action_name = "Remove/Replace Paddles"
- worth_intrinsic = 300
-
- var/obj/item/shockpaddles/linked/paddles
- var/obj/item/cell/bcell = null
-
-/obj/item/defib_kit/Initialize(mapload) //starts without a cell for rnd
- . = ..()
- if(ispath(paddles))
- paddles = new paddles(src, src)
- else
- paddles = new(src, src)
-
- if(ispath(bcell))
- bcell = new bcell(src)
- update_icon()
-
-/obj/item/defib_kit/Destroy()
- . = ..()
- QDEL_NULL(paddles)
- QDEL_NULL(bcell)
-
-/obj/item/defib_kit/loaded //starts with a cell
- bcell = /obj/item/cell/apc
-
-
-/obj/item/defib_kit/update_icon()
-
- cut_overlays()
- var/list/new_overlays = list()
-
- if(paddles && paddles.loc == src) //in case paddles got destroyed somehow.
- new_overlays += "[initial(icon_state)]-paddles"
- if(bcell && paddles)
- if(bcell.check_charge(paddles.chargecost))
- if(paddles.combat)
- new_overlays += "[initial(icon_state)]-combat"
- else if(!paddles.safety)
- new_overlays += "[initial(icon_state)]-emagged"
- else
- new_overlays += "[initial(icon_state)]-powered"
-
- var/ratio = CEILING(bcell.percent()/25, 1) * 25
- new_overlays += "[initial(icon_state)]-charge[ratio]"
- else
- new_overlays += "[initial(icon_state)]-nocell"
-
- add_overlay(new_overlays)
-
-/obj/item/defib_kit/ui_action_click(datum/action/action, datum/event_args/actor/actor)
- toggle_paddles()
-
-/obj/item/defib_kit/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args)
- if(loc == user)
- toggle_paddles()
- else
- ..()
-
-/obj/item/defib_kit/attackby(obj/item/W, mob/user, params)
- if(W == paddles)
- reattach_paddles(user)
- return CLICKCHAIN_DO_NOT_PROPAGATE
- else if(istype(W, /obj/item/cell))
- if(bcell)
- to_chat(user, "\the [src] already has a cell.")
- return CLICKCHAIN_DO_NOT_PROPAGATE
- else
- if(!user.attempt_insert_item_for_installation(W, src))
- return CLICKCHAIN_DO_NOT_PROPAGATE
- bcell = W
- to_chat(user, "You install a cell in \the [src].")
- update_icon()
- return CLICKCHAIN_DO_NOT_PROPAGATE
-
- else if(W.is_screwdriver())
- if(bcell)
- bcell.update_icon()
- bcell.forceMove(get_turf(src.loc))
- bcell = null
- to_chat(user, "You remove the cell from \the [src].")
- update_icon()
- return CLICKCHAIN_DO_NOT_PROPAGATE
- else
- return ..()
-
-/obj/item/defib_kit/emag_act(var/remaining_charges, var/mob/user)
- if(paddles)
- . = paddles.emag_act(user)
- update_icon()
- return
-
-//Paddle stuff
-
-/obj/item/defib_kit/verb/toggle_paddles()
- set name = "Toggle Paddles"
- set category = VERB_CATEGORY_OBJECT
-
- var/mob/living/carbon/human/user = usr
- if(!paddles)
- to_chat(user, "The paddles are missing!")
- return
-
- if(paddles.loc != src)
- reattach_paddles(user) //Remove from their hands and back onto the defib unit
- return
-
- if(!slot_check())
- to_chat(user, "You need to equip [src] before taking out [paddles].")
- else
- if(!usr.put_in_hands(paddles)) //Detach the paddles into the user's hands
- to_chat(user, "You need a free hand to hold the paddles!")
- update_icon() //success
-
-//checks that the base unit is in the correct slot to be used
-/obj/item/defib_kit/proc/slot_check()
- var/mob/M = loc
- if(!istype(M))
- return 0 //not equipped
-
- if((slot_flags & SLOT_BACK) && M.item_by_slot_id(SLOT_ID_BACK) == src)
- return 1
- if((slot_flags & SLOT_BELT) && M.item_by_slot_id(SLOT_ID_BELT) == src)
- return 1
-
- return 0
-
-/obj/item/defib_kit/unequipped(mob/user, slot, flags)
- . = ..()
- reattach_paddles(user) //paddles attached to a base unit should never exist outside of their base unit or the mob equipping the base unit
-
-/obj/item/defib_kit/proc/reattach_paddles(mob/user)
- if(!paddles)
- return
-
- if(ismob(paddles.loc))
- to_chat(paddles.loc, "\The [paddles] snap back into the main unit.")
- paddles.forceMove(src)
- update_icon()
-
-/*
- Base Unit Subtypes
-*/
-
-/obj/item/defib_kit/compact
- name = "compact defibrillator"
- desc = "A belt-equipped defibrillator that can be rapidly deployed."
- icon_state = "defibcompact"
- item_state = "defibcompact"
- w_class = WEIGHT_CLASS_NORMAL
- slot_flags = SLOT_BELT
- origin_tech = list(TECH_BIO = 5, TECH_POWER = 3)
- worth_intrinsic = 500
-
-/obj/item/defib_kit/compact/loaded
- bcell = /obj/item/cell/high
-
-
-/obj/item/defib_kit/compact/combat
- name = "combat defibrillator"
- desc = "A belt-equipped blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits."
- paddles = /obj/item/shockpaddles/linked/combat
-
-/obj/item/defib_kit/compact/combat/loaded
- bcell = /obj/item/cell/high
-
-/obj/item/shockpaddles/linked/combat
- combat = 1
- safety = 0
- chargetime = (1 SECONDS)
-
-
-//paddles
+// todo: /datum/item_interface? this should be able to naturally draw from arbitary things like
+// rigsuits with minimal code shimming.
/obj/item/shockpaddles
name = "defibrillator paddles"
@@ -205,7 +18,6 @@
var/chargetime = (2 SECONDS)
var/chargecost = 1250 //units of charge per zap //With the default APC level cell, this allows 4 shocks
var/burn_damage_amt = 5
- var/use_on_synthetic = 0 //If 1, this is only useful on FBPs, if 0, this is only useful on fleshies
var/wielded = 0
var/cooldown = 0
@@ -259,10 +71,6 @@
/obj/item/shockpaddles/proc/can_defib(mob/living/carbon/human/H) //This is checked before doing the defib operation
if((H.species.species_flags & NO_DEFIB))
return "buzzes, \"Alien physiology. Operation aborted. Consider alternative resucitation methods.\""
- else if(H.isSynthetic() && !use_on_synthetic)
- return "buzzes, \"Synthetic Body. Operation aborted.\""
- else if(!H.isSynthetic() && use_on_synthetic)
- return "buzzes, \"Organic Body. Operation aborted.\""
if(H.stat != DEAD)
return "buzzes, \"Patient is not in a valid state. Operation aborted.\""
@@ -609,44 +417,6 @@
START_PROCESSING(SSobj, src)
fail_counter = new_fail
-/* From the Bay port, this doesn't seem to have a sprite.
-/obj/item/shockpaddles/standalone/traitor
- name = "defibrillator paddles"
- desc = "A pair of unusual looking paddles powered by an experimental miniaturized reactor. It possesses both the ability to penetrate armor and to deliver powerful shocks."
- icon = 'icons/obj/weapons.dmi'
- icon_state = "defibpaddles0"
- item_state = "defibpaddles0"
- combat = 1
- safety = 0
- chargetime = (1 SECONDS)
-*/
-
-//FBP Defibs
-/obj/item/defib_kit/jumper_kit
- name = "jumper cable kit"
- desc = "A device that delivers powerful shocks to detachable jumper cables that are capable of reviving full body prosthetics."
- icon_state = "jumperunit"
- item_state = "defibunit"
-// item_state = "jumperunit"
- paddles = /obj/item/shockpaddles/linked/jumper
- worth_intrinsic = 150
-
-/obj/item/defib_kit/jumper_kit/loaded
- bcell = /obj/item/cell/high
-
-/obj/item/shockpaddles/linked/jumper
- name = "jumper cables"
- icon_state = "jumperpaddles"
- item_state = "jumperpaddles"
- use_on_synthetic = 1
-
-/obj/item/shockpaddles/robot/jumper
- name = "jumper cables"
- desc = "A pair of advanced shockpaddles powered by a robot's internal power cell, able to penetrate thick clothing."
- icon_state = "jumperpaddles0"
- item_state = "jumperpaddles0"
- use_on_synthetic = 1
-
// Hardsuit Defibs
/obj/item/shockpaddles/standalone/hardsuit
desc = "You shouldn't be seeing these."
@@ -661,5 +431,7 @@
/obj/item/shockpaddles/standalone/hardsuit/can_use(mob/user, mob/M)
return 1
-#undef DEFIB_TIME_LIMIT
-#undef DEFIB_TIME_LOSS
+/obj/item/shockpaddles/linked/combat
+ combat = 1
+ safety = 0
+ chargetime = (1 SECONDS)
diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm
index f0686a2f5e5c..07f1d3ef29eb 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm
@@ -143,11 +143,6 @@
attack_verb = list("batted", "pawed", "bopped", "whapped")
chargecost = 500
-/obj/item/shockpaddles/robot/hound/jumper
- name = "jumper paws"
- desc = "Zappy paws. For rebooting a full body prostetic."
- use_on_synthetic = 1
-
/obj/item/reagent_containers/borghypo/hound
name = "MediHound hypospray"
desc = "An advanced chemical synthesizer and injection system utilizing carrier's reserves, designed for heavy-duty medical equipment."
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station/science.dm b/code/modules/mob/living/silicon/robot/robot_modules/station/science.dm
index adf89bef8eca..649c4a2038eb 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/station/science.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/station/science.dm
@@ -45,7 +45,7 @@
/obj/item/reagent_containers/syringe,
/obj/item/reagent_containers/glass/beaker/large,
/obj/item/storage/part_replacer,
- /obj/item/shockpaddles/robot/jumper,
+ /obj/item/shockpaddles/robot,
/obj/item/melee/baton/slime/robot,
/obj/item/gun/energy/taser/xeno/robot
)
@@ -105,7 +105,7 @@
/obj/item/reagent_containers/syringe,
/obj/item/storage/part_replacer,
/obj/item/card/robot,
- /obj/item/shockpaddles/robot/jumper,
+ /obj/item/shockpaddles/robot,
/obj/item/tool/wirecutters/cyborg,
/obj/item/melee/baton/slime/robot,
/obj/item/gun/energy/taser/xeno/robot,
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm
index fcb77a94c8f2..b53e472cd57c 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm
@@ -94,7 +94,7 @@
// FBP repair.
/obj/item/robotanalyzer,
- /obj/item/shockpaddles/robot/jumper,
+ /obj/item/shockpaddles/robot,
/obj/item/gripper/no_use/organ/robotics,
// Hacking other things.
diff --git a/maps/endeavour/levels/deck1.dmm b/maps/endeavour/levels/deck1.dmm
index c2c11f6bda08..570166a04319 100644
--- a/maps/endeavour/levels/deck1.dmm
+++ b/maps/endeavour/levels/deck1.dmm
@@ -11972,7 +11972,7 @@
/obj/item/duct_tape_roll,
/obj/effect/floor_decal/borderfloor,
/obj/effect/floor_decal/corner/mauve/border,
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/obj/item/radio/intercom{
pixel_y = -24
},
diff --git a/maps/endeavour/levels/deck2.dmm b/maps/endeavour/levels/deck2.dmm
index 954951cc6d6f..cc886554bdab 100644
--- a/maps/endeavour/levels/deck2.dmm
+++ b/maps/endeavour/levels/deck2.dmm
@@ -24300,7 +24300,7 @@
/turf/simulated/floor/tiled,
/area/endeavour/hallway/d1starboardamidhall)
"pMA" = (
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/obj/machinery/newscaster{
pixel_y = 32
},
diff --git a/maps/endeavour/levels/flagship.dmm b/maps/endeavour/levels/flagship.dmm
index a6f373437e70..2b482e7554d8 100644
--- a/maps/endeavour/levels/flagship.dmm
+++ b/maps/endeavour/levels/flagship.dmm
@@ -8338,7 +8338,7 @@
/obj/item/clothing/mask/breath/medical,
/obj/item/clothing/mask/breath/medical,
/obj/item/storage/box/gloves,
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
diff --git a/maps/euthenia/levels/deck3.dmm b/maps/euthenia/levels/deck3.dmm
index 480099e47d2d..6d274c8ba8e5 100644
--- a/maps/euthenia/levels/deck3.dmm
+++ b/maps/euthenia/levels/deck3.dmm
@@ -13506,7 +13506,7 @@
/area/hydroponics/garden)
"mPm" = (
/obj/structure/table/standard,
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/turf/simulated/floor/tiled/steel_grid,
/area/rnd/robotics/surgeryroom1)
"mQj" = (
diff --git a/maps/map_levels/140x140/talon/talon1.dmm b/maps/map_levels/140x140/talon/talon1.dmm
index cff249acb7d6..091460fdb4a4 100644
--- a/maps/map_levels/140x140/talon/talon1.dmm
+++ b/maps/map_levels/140x140/talon/talon1.dmm
@@ -5909,7 +5909,7 @@
/area/talon/deckone/medical)
"Xx" = (
/obj/structure/table/standard,
-/obj/item/defib_kit/jumper_kit/loaded,
+/obj/item/defib_kit/loaded,
/obj/item/defib_kit/loaded,
/obj/item/storage/belt/medical/emt,
/turf/simulated/floor/tiled/eris/white/bluecorner,
diff --git a/maps/rift/levels/rift-05-surface2.dmm b/maps/rift/levels/rift-05-surface2.dmm
index 390cfccb1bbe..05c3fe9017da 100644
--- a/maps/rift/levels/rift-05-surface2.dmm
+++ b/maps/rift/levels/rift-05-surface2.dmm
@@ -6069,7 +6069,7 @@
dir = 4;
pixel_x = 22
},
-/obj/item/defib_kit/jumper_kit/loaded,
+/obj/item/defib_kit/loaded,
/obj/item/storage/box/masks,
/obj/item/storage/box/gloves{
pixel_x = 2;
diff --git a/maps/sectors/admin_planets_192/andromeda.dmm b/maps/sectors/admin_planets_192/andromeda.dmm
index 0979030dec47..17dcc5bf1efd 100644
--- a/maps/sectors/admin_planets_192/andromeda.dmm
+++ b/maps/sectors/admin_planets_192/andromeda.dmm
@@ -4425,7 +4425,7 @@
/area/admin_planet/andromeda/supply_warehouse)
"nv" = (
/obj/structure/table/steel_reinforced,
-/obj/item/defib_kit/jumper_kit/loaded,
+/obj/item/defib_kit/loaded,
/turf/simulated/floor/tiled/dark{
color = "#A9A9A9"
},
diff --git a/maps/sectors/tradeport_192/levels/tradeport_192.dmm b/maps/sectors/tradeport_192/levels/tradeport_192.dmm
index 21833a245c4f..37c2e9d33fd6 100644
--- a/maps/sectors/tradeport_192/levels/tradeport_192.dmm
+++ b/maps/sectors/tradeport_192/levels/tradeport_192.dmm
@@ -13791,7 +13791,7 @@
"XT" = (
/obj/structure/table/rack/shelf/steel,
/obj/item/defib_kit/loaded,
-/obj/item/defib_kit/jumper_kit/loaded,
+/obj/item/defib_kit/loaded,
/obj/effect/floor_decal/corner/blue/border{
dir = 10
},
diff --git a/maps/templates/admin/dhael_centcom.dmm b/maps/templates/admin/dhael_centcom.dmm
index 9b8da9c37361..57ffc8028093 100644
--- a/maps/templates/admin/dhael_centcom.dmm
+++ b/maps/templates/admin/dhael_centcom.dmm
@@ -3031,7 +3031,7 @@
/obj/item/clothing/mask/breath/medical,
/obj/item/clothing/mask/breath/medical,
/obj/item/storage/box/gloves,
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/turf/unsimulated/floor/steel{
icon_state = "white"
},
diff --git a/maps/templates/shuttles/overmaps/generic/cruiser.dmm b/maps/templates/shuttles/overmaps/generic/cruiser.dmm
index 16826581b36c..edee389cfccd 100644
--- a/maps/templates/shuttles/overmaps/generic/cruiser.dmm
+++ b/maps/templates/shuttles/overmaps/generic/cruiser.dmm
@@ -6248,7 +6248,7 @@
/turf/simulated/floor/tiled/steel_grid,
/area/mothership/rnd)
"nO" = (
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/obj/structure/table/steel_reinforced,
/obj/item/robotanalyzer,
/obj/machinery/light,
diff --git a/maps/templates/shuttles/overmaps/generic/curashuttle.dmm b/maps/templates/shuttles/overmaps/generic/curashuttle.dmm
index 0b6bb1045770..c24e478d98a0 100644
--- a/maps/templates/shuttles/overmaps/generic/curashuttle.dmm
+++ b/maps/templates/shuttles/overmaps/generic/curashuttle.dmm
@@ -352,7 +352,7 @@
/area/shuttle/curabitur/curashuttle/med)
"aM" = (
/obj/structure/table/rack,
-/obj/item/defib_kit/jumper_kit/loaded,
+/obj/item/defib_kit/loaded,
/obj/item/defib_kit/compact/combat/loaded,
/obj/item/defib_kit/compact/combat/loaded,
/obj/item/mmi/radio_enabled{
diff --git a/maps/templates/shuttles/overmaps/generic/shelter_6.dmm b/maps/templates/shuttles/overmaps/generic/shelter_6.dmm
index 49be887b2083..c215d0831b02 100644
--- a/maps/templates/shuttles/overmaps/generic/shelter_6.dmm
+++ b/maps/templates/shuttles/overmaps/generic/shelter_6.dmm
@@ -1458,7 +1458,7 @@
/obj/item/stack/nanopaste,
/obj/item/stack/nanopaste,
/obj/item/stack/nanopaste,
-/obj/item/defib_kit/jumper_kit/loaded,
+/obj/item/defib_kit/loaded,
/obj/item/defib_kit/compact/loaded,
/turf/simulated/floor/tiled/white,
/area/shuttle/tabiranth)
diff --git a/maps/tether/levels/surface3.dmm b/maps/tether/levels/surface3.dmm
index fb9887571216..9520d01675f3 100644
--- a/maps/tether/levels/surface3.dmm
+++ b/maps/tether/levels/surface3.dmm
@@ -27253,7 +27253,7 @@
/area/crew_quarters/bar)
"qjY" = (
/obj/structure/table/standard,
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/obj/machinery/atmospherics/component/unary/vent_pump/on{
dir = 1
},
diff --git a/maps/triumph/levels/deck3.dmm b/maps/triumph/levels/deck3.dmm
index 47e9cd49000c..fcb945ec6c11 100644
--- a/maps/triumph/levels/deck3.dmm
+++ b/maps/triumph/levels/deck3.dmm
@@ -19116,7 +19116,7 @@
/turf/simulated/floor/tiled,
/area/triumph/station/stairs_three)
"pMA" = (
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/obj/machinery/newscaster{
pixel_y = 32
},
diff --git a/maps/triumph/levels/flagship.dmm b/maps/triumph/levels/flagship.dmm
index e1841a0ec3c2..b4be9d2061d9 100644
--- a/maps/triumph/levels/flagship.dmm
+++ b/maps/triumph/levels/flagship.dmm
@@ -8338,7 +8338,7 @@
/obj/item/clothing/mask/breath/medical,
/obj/item/clothing/mask/breath/medical,
/obj/item/storage/box/gloves,
-/obj/item/defib_kit/jumper_kit,
+/obj/item/defib_kit,
/turf/unsimulated/floor/steel{
icon_state = "white"
},