diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm
index cb907e78f08..0662d5a0067 100644
--- a/code/datums/outfits/outfit.dm
+++ b/code/datums/outfits/outfit.dm
@@ -80,6 +80,14 @@
equip_item(H, glasses, slot_glasses)
if(id)
equip_item(H, id, slot_wear_id)
+
+ if(!H.head && toggle_helmet && istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit))
+ var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit
+ HS.ToggleHelmet()
+ else if(toggle_helmet && ismodcontrol(H.back))
+ var/obj/item/mod/control/C = H.back
+ C.quick_activation()
+
if(suit_store)
equip_item(H, suit_store, slot_s_store)
@@ -120,10 +128,6 @@
var/obj/item/organ/internal/O = new path
O.insert(H)
- if(!H.head && toggle_helmet && istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit))
- var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit
- HS.ToggleHelmet()
-
post_equip(H, visualsOnly)
if(!visualsOnly)
diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm
index 50d034ba23e..61787ada6db 100644
--- a/code/datums/outfits/outfit_admin.dm
+++ b/code/datums/outfits/outfit_admin.dm
@@ -288,6 +288,7 @@
r_pocket = /obj/item/reagent_containers/hypospray/combat/nanites
l_ear = /obj/item/radio/headset/alt/deathsquad
id = /obj/item/card/id/ert/deathsquad
+ suit_store = /obj/item/gun/energy/pulse
backpack_contents = list(
/obj/item/storage/box/flashbangs,
@@ -296,7 +297,6 @@
/obj/item/grenade/plastic/c4/x4,
/obj/item/melee/energy/sword/saber,
/obj/item/shield/energy,
- /obj/item/gun/energy/pulse
)
implants = list(
@@ -314,7 +314,6 @@
/obj/item/flashlight/seclite,
/obj/item/melee/energy/sword/saber,
/obj/item/shield/energy,
- /obj/item/gun/energy/pulse,
/obj/item/disk/nuclear/unrestricted
)
@@ -327,9 +326,6 @@
if(istype(I))
apply_to_card(I, H, get_centcom_access("Deathsquad Commando"), "Deathsquad")
H.sec_hud_set_ID()
- if(ismodcontrol(H.back))
- var/obj/item/mod/control/C = H.back
- C.quick_activation()
/datum/outfit/admin/pirate
name = "Space Pirate"
diff --git a/code/datums/outfits/outfit_debug.dm b/code/datums/outfits/outfit_debug.dm
new file mode 100644
index 00000000000..a646f082bb6
--- /dev/null
+++ b/code/datums/outfits/outfit_debug.dm
@@ -0,0 +1,302 @@
+/datum/outfit/admin/debug
+ name = "Debug outfit"
+
+ uniform = /obj/item/clothing/under/costume/patriotsuit
+ back = /obj/item/mod/control/pre_equipped/debug
+ backpack_contents = list(
+ /obj/item/melee/energy/axe = 1,
+ /obj/item/storage/part_replacer/bluespace/tier4 = 1,
+ /obj/item/gun/magic/wand/resurrection/debug = 1,
+ /obj/item/gun/magic/wand/death/debug = 1,
+ /obj/item/debug/human_spawner = 1
+ )
+ belt = /obj/item/storage/belt/military/abductor/full
+ l_ear = /obj/item/radio/headset/centcom/debug
+ glasses = /obj/item/clothing/glasses/hud/debug
+ mask = /obj/item/clothing/mask/gas/welding/advanced
+ shoes = /obj/item/clothing/shoes/combat/swat
+
+ // shit down here is mine
+ box = /obj/item/storage/box/debug/debugtools
+ suit_store = /obj/item/tank/internals/oxygen
+ gloves = /obj/item/clothing/gloves/combat
+ id = /obj/item/card/id/admin
+ pda = /obj/item/pda/centcom
+
+ internals_slot = slot_s_store
+ toggle_helmet = TRUE
+
+ cybernetic_implants = list(
+ /obj/item/organ/internal/cyberimp/arm/surgery/advanced,
+ /obj/item/organ/internal/cyberimp/chest/nutriment/hardened,
+ /obj/item/organ/internal/cyberimp/arm/janitorial/advanced
+ )
+
+
+/datum/outfit/admin/debug/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ . = ..()
+ if(visualsOnly)
+ return
+ var/obj/item/card/id/I = H.wear_id
+ if(istype(I))
+ apply_to_card(I, H, get_all_accesses(), "Debugger", "admin")
+
+/obj/item/radio/headset/centcom/debug
+ name = "AVD-CNED bowman headset"
+ ks2type = /obj/item/encryptionkey/all
+
+/obj/item/encryptionkey/all
+ name = "AVD-CNED Encryption Key"
+ channels = list("Response Team" = 1, "Special Ops" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Procedure" = 1) // just in case
+
+/obj/item/encryptionkey/all/Initialize(mapload)
+ . = ..()
+ for(var/channel in SSradio.radiochannels)
+ channels[channel] = 1 // yeah, all channels, sure, probably fine
+
+ // todo syndicomms doesn't work right now currenty
+
+/obj/item/clothing/mask/gas/welding/advanced
+ name = "AVD-CNED welding mask"
+ desc = "Retinal damage is no joke."
+ tint = FLASH_PROTECTION_NONE
+ flags_cover = MASKCOVERSEYES|MASKCOVERSMOUTH // vomit prevention when being surrounded by tons of dead bodies
+
+/obj/item/gun/magic/wand/resurrection/debug
+ desc = "Is it possible for something to be even more powerful than regular magic? This wand is."
+ max_charges = 500
+ variable_charges = FALSE
+ can_charge = TRUE
+ recharge_rate = 1
+
+/obj/item/gun/magic/wand/death/debug
+ desc = "In some obscure circles, this is known as the 'cloning tester's friend'."
+ max_charges = 500
+ variable_charges = FALSE
+ can_charge = TRUE
+ recharge_rate = 1
+
+/obj/item/clothing/glasses/hud/debug
+ name = "AVD-CNED glasses"
+ desc = "Medical, security and diagnostic hud. Alt click to toggle xray."
+ icon_state = "nvgmeson"
+ flags_cover = GLASSESCOVERSEYES
+ flash_protect = FLASH_PROTECTION_WELDER
+
+ prescription_upgradable = FALSE
+
+ hud_types = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED, DATA_HUD_SECURITY_ADVANCED, DATA_HUD_HYDROPONIC)
+ examine_extensions = list(EXAMINE_HUD_SECURITY_READ, EXAMINE_HUD_SECURITY_WRITE, EXAMINE_HUD_MEDICAL, EXAMINE_HUD_SKILLS)
+
+ var/xray = FALSE
+
+/obj/item/clothing/glasses/hud/debug/equipped(mob/living/carbon/human/user, slot)
+ ..()
+ if(xray)
+ add_xray(user)
+
+/obj/item/clothing/glasses/hud/debug/dropped(mob/living/carbon/human/user)
+ ..()
+ if(xray)
+ remove_xray(user)
+
+/obj/item/clothing/glasses/hud/debug/AltClick(mob/user)
+ if(!ishuman(user))
+ return
+ var/mob/living/carbon/human/human_user = user
+ if(human_user.glasses != src)
+ return
+ if(xray)
+ remove_xray(human_user)
+ else
+ add_xray(human_user)
+ xray = !xray
+ to_chat(user, "You [!xray ? "de" : ""]activate the x-ray setting on [src]") // ctodo test
+ human_user.update_sight()
+
+/obj/item/clothing/glasses/hud/debug/proc/remove_xray(mob/user)
+ see_in_dark = initial(see_in_dark)
+ lighting_alpha = initial(lighting_alpha)
+ REMOVE_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]")
+
+/obj/item/clothing/glasses/hud/debug/proc/add_xray(mob/user)
+ see_in_dark = 8
+ lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
+ ADD_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]")
+
+/obj/item/debug/human_spawner
+ name = "human spawner"
+ desc = "Spawn a human by aiming at a turf and clicking. Use in hand to change type."
+ icon = 'icons/obj/guns/magic.dmi'
+ icon_state = "nothingwand"
+ lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/items_righthand.dmi'
+ w_class = WEIGHT_CLASS_SMALL
+ var/datum/species/selected_species
+ var/valid_species = list()
+
+/obj/item/debug/human_spawner/afterattack(atom/target, mob/user, proximity)
+ ..()
+ if(isturf(target))
+ var/mob/living/carbon/human/H = new /mob/living/carbon/human(target)
+ if(selected_species)
+ H.setup_dna(selected_species.type)
+
+/obj/item/debug/human_spawner/attack_self(mob/user)
+ ..()
+ var/choice = input("Select a species", "Human Spawner", null) in GLOB.all_species
+ selected_species = GLOB.all_species[choice]
+
+/obj/item/rcd/combat/admin
+ name = "AVD-CNED RCD"
+ max_matter = INFINITY
+ matter = INFINITY
+ locked = FALSE
+
+/obj/item/stack/spacecash/debug
+ amount = 50000
+ max_amount = 50000
+
+/obj/item/bodyanalyzer/debug
+ name = "AVD-CNED handheld body analyzer"
+ cell_type = /obj/item/stock_parts/cell/infinite
+ scan_time = 1 SECONDS
+ scan_cd = 0 SECONDS
+
+/obj/item/scalpel/laser/manager/debug
+ name = "AVD-CNED IMS"
+ desc = "A wonder of modern medicine. This tool functions as any other sort of surgery tool, and finishes in only a fraction of the time. Hey, how'd you get your hands on this, anyway?"
+ toolspeed = 0.01
+
+/obj/item/scalpel/laser/manager/debug/attack_self(mob/user)
+ . = ..()
+ toolspeed = toolspeed == 0.5 ? 0.01 : 0.5
+ to_chat(user, "[src] is now set to toolspeed [toolspeed]")
+ playsound(src, 'sound/effects/pop.ogg', 50, 0) //Change the mode
+
+/obj/item/organ/internal/cyberimp/arm/surgery/advanced
+ name = "AVD-CNED surgical toolset implant"
+ contents = newlist(
+ /obj/item/scalpel/laser/manager/debug,
+ /obj/item/hemostat/alien, // its needed specifically for some surgeries
+ /obj/item/circular_saw/alien,
+ /obj/item/healthanalyzer/advanced,
+ /obj/item/gun/medbeam,
+ /obj/item/handheld_defibrillator,
+ /obj/item/bodyanalyzer/debug
+ )
+
+/obj/item/organ/internal/cyberimp/arm/janitorial/advanced
+ name = "AVD-CNED janitorial toolset implant... is that a... tazer?"
+ desc = "A set of advanced janitorial tools hidden behind a concealed panel on the user's arm with a tazer? What the fuck."
+ parent_organ = "l_arm" // left arm by default cuz im lazy
+ slot = "l_arm_device"
+
+ contents = newlist(
+ /obj/item/mop/advanced/debug,
+ /obj/item/soap/syndie/debug,
+ /obj/item/lightreplacer/bluespace/debug,
+ /obj/item/reagent_containers/spray/cleaner/advanced/debug,
+ /obj/item/gun/energy/gun/advtaser/mounted // yeah why not
+ )
+
+/obj/item/mop/advanced/debug
+ name = "AVD-CNED mop"
+ desc = "I know you want to do it. Make shit slippery."
+ mopcap = 100
+ mopspeed = 1
+ refill_rate = 50
+
+/obj/item/soap/syndie/debug
+ name = "super soap"
+ desc = "The fastest soap in the space-west."
+ cleanspeed = 1
+
+/obj/item/lightreplacer/bluespace/debug
+ name = "AVD-CNED light... thingy. You know what it is."
+ max_uses = 20000
+ uses = 20000
+
+/obj/item/reagent_containers/spray/cleaner/advanced/debug
+ name = "AVD-CNED advanced space cleaner"
+ desc = "AVD-CNED!-brand non-foaming space cleaner! How fancy."
+ volume = 50000
+ spray_maxrange = 10
+ spray_currentrange = 10
+ list_reagents = list("cleaner" = 50000)
+ delay = 0.1 SECONDS // it costs 1000 reagents to fire this cleaner... for 12 seconds.
+
+
+//
+// Funny matryoshka doll boxes
+//
+
+/obj/item/storage/box/debug
+ w_class = WEIGHT_CLASS_NORMAL
+ max_w_class = WEIGHT_CLASS_NORMAL
+ max_combined_w_class = 1000
+ storage_slots = 99
+ allow_same_size = TRUE
+
+/obj/item/storage/box/debug/debugtools
+ name = "debug tools"
+
+/obj/item/storage/box/debug/debugtools/populate_contents()
+ new /obj/item/card/emag(src)
+ new /obj/item/rcd/combat/admin(src)
+ new /obj/item/geiger_counter(src)
+ new /obj/item/healthanalyzer/advanced(src)
+ new /obj/item/rpd/bluespace(src)
+ new /obj/item/stack/spacecash/debug(src)
+ new /obj/item/storage/box/beakers/bluespace(src)
+ new /obj/item/storage/box/debug/material(src)
+ new /obj/item/storage/box/debug/misc_debug(src)
+ new /obj/item/storage/box/centcomofficer(src)
+ new /obj/item/radio/uplink/admin(src)
+
+/obj/item/storage/box/debug/material
+ name = "box of materials"
+
+/obj/item/storage/box/debug/material/populate_contents()
+ new /obj/item/stack/sheet/metal/fifty(src)
+ new /obj/item/stack/sheet/plasteel/fifty(src)
+ new /obj/item/stack/sheet/plastic/fifty(src)
+ new /obj/item/stack/tile/brass/fifty(src)
+ new /obj/item/stack/sheet/runed_metal/fifty(src)
+ new /obj/item/stack/sheet/glass/fifty(src)
+ new /obj/item/stack/sheet/rglass/fifty(src)
+ new /obj/item/stack/sheet/plasmaglass/fifty(src)
+ new /obj/item/stack/sheet/plasmarglass/fifty(src)
+ new /obj/item/stack/sheet/titaniumglass/fifty(src)
+ new /obj/item/stack/sheet/plastitaniumglass/fifty(src)
+ new /obj/item/stack/sheet/mineral/sandstone/fifty(src)
+ new /obj/item/stack/sheet/mineral/diamond/fifty(src)
+ new /obj/item/stack/sheet/mineral/uranium/fifty(src)
+ new /obj/item/stack/sheet/mineral/plasma/fifty(src)
+ new /obj/item/stack/sheet/mineral/gold/fifty(src)
+ new /obj/item/stack/sheet/mineral/silver/fifty(src)
+ new /obj/item/stack/sheet/mineral/bananium/fifty(src)
+ new /obj/item/stack/sheet/mineral/tranquillite/fifty(src)
+ new /obj/item/stack/sheet/mineral/titanium/fifty(src)
+ new /obj/item/stack/sheet/mineral/plastitanium/fifty(src)
+ new /obj/item/stack/sheet/mineral/abductor/fifty(src)
+ new /obj/item/stack/sheet/mineral/adamantine/fifty(src)
+
+/obj/item/storage/box/debug/misc_debug
+ name = "misc admin items"
+
+// put cool admin-only shit here :)
+/obj/item/storage/box/debug/misc_debug/populate_contents()
+ new /obj/item/badminBook(src)
+ new /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka(src)
+ new /obj/item/crowbar/power(src) // >admin only lol
+ new /obj/item/clothing/gloves/fingerless/rapid/admin(src)
+ new /obj/item/clothing/under/misc/acj(src)
+ new /obj/item/clothing/suit/advanced_protective_suit(src)
+ new /obj/item/multitool/ai_detect/admin(src) // for giggles and shits
+ new /obj/item/adminfu_scroll(src)
+ new /obj/item/teleporter/admin(src)
+ new /obj/item/storage/belt/bluespace/admin(src) // god i love storage nesting
+ new /obj/item/mining_scanner/admin(src)
+ new /obj/item/gun/energy/meteorgun/pen(src)
+
diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm
index 1bbd3883c0d..bd3535753e8 100644
--- a/code/game/jobs/job/job.dm
+++ b/code/game/jobs/job/job.dm
@@ -244,10 +244,6 @@
gear_leftovers.Cut()
- if(ismodcontrol(H.back))
- var/obj/item/mod/control/C = H.back
- C.quick_activation()
-
return 1
/datum/outfit/job/proc/imprint_idcard(mob/living/carbon/human/H)
diff --git a/code/game/objects/items/weapons/cash.dm b/code/game/objects/items/weapons/cash.dm
index b059c003b8e..4881050991e 100644
--- a/code/game/objects/items/weapons/cash.dm
+++ b/code/game/objects/items/weapons/cash.dm
@@ -37,7 +37,7 @@
update_icon(UPDATE_ICON_STATE)
/obj/item/stack/spacecash/update_icon_state()
- name = "[amount == max_amount ? "10000" : amount] Credit[amount > 1 ? "s" : ""]"
+ name = "[amount] Credit[amount > 1 ? "s" : ""]"
if(amount >= 1 && amount < 10)
icon_state = "cashgreen"
else if(amount >= 10 && amount < 50)
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index ffa96c3d8b8..85f6bfef073 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -61,6 +61,7 @@
cant_hold = list(/obj/item/storage/backpack, /obj/item/storage/belt/bluespace)
cant_hold_override = list(/obj/item/storage/backpack/satchel_flat)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 60, ACID = 50)
+ allow_same_size = TRUE
/obj/item/storage/backpack/holding/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/storage/backpack/holding))
diff --git a/code/game/objects/items/weapons/storage/storage_base.dm b/code/game/objects/items/weapons/storage/storage_base.dm
index 14f4e46bcce..d227af27b39 100644
--- a/code/game/objects/items/weapons/storage/storage_base.dm
+++ b/code/game/objects/items/weapons/storage/storage_base.dm
@@ -49,6 +49,9 @@
/// Lazy list of mobs which are currently viewing the storage inventory.
var/list/mobs_viewing
+ // Allow storage items of the same size to be put inside
+ var/allow_same_size = FALSE
+
/obj/item/storage/Initialize(mapload)
. = ..()
can_hold = typecacheof(can_hold)
@@ -407,7 +410,7 @@
return FALSE
if(I.w_class >= w_class && isstorage(I))
- if(!istype(src, /obj/item/storage/backpack/holding)) //BoHs should be able to hold backpacks again. The override for putting a BoH in a BoH is in backpack.dm.
+ if(!allow_same_size) //BoHs should be able to hold backpacks again. The override for putting a BoH in a BoH is in backpack.dm.
if(!stop_messages)
to_chat(usr, "[src] cannot hold [I] as it's a storage item of the same size.")
return FALSE //To prevent the stacking of same sized storage items.
diff --git a/code/modules/clothing/glasses/hudglasses.dm b/code/modules/clothing/glasses/hudglasses.dm
index c8e09bb0a4d..9e936b840f7 100644
--- a/code/modules/clothing/glasses/hudglasses.dm
+++ b/code/modules/clothing/glasses/hudglasses.dm
@@ -5,21 +5,29 @@
origin_tech = "magnets=3;biotech=2"
prescription_upgradable = TRUE
/// The visual icons granted by wearing these glasses.
- var/HUDType = null
+ var/hud_types = null
/// List of things added to examine text, like security or medical records.
var/list/examine_extensions = null
+/obj/item/clothing/glasses/hud/Initialize(mapload)
+ . = ..()
+ if(!islist(hud_types) && hud_types)
+ hud_types = list(hud_types)
/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot)
..()
- if(HUDType && slot == slot_glasses)
- var/datum/atom_hud/H = GLOB.huds[HUDType]
+ if(slot != slot_glasses)
+ return
+ for(var/new_hud in hud_types)
+ var/datum/atom_hud/H = GLOB.huds[new_hud]
H.add_hud_to(user)
/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user)
..()
- if(HUDType && istype(user) && user.glasses == src)
- var/datum/atom_hud/H = GLOB.huds[HUDType]
+ if(user.glasses != src)
+ return
+ for(var/new_hud in hud_types)
+ var/datum/atom_hud/H = GLOB.huds[new_hud]
H.remove_hud_from(user)
/obj/item/clothing/glasses/hud/emp_act(severity)
@@ -32,7 +40,7 @@
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
icon_state = "healthhud"
origin_tech = "magnets=3;biotech=2"
- HUDType = DATA_HUD_MEDICAL_ADVANCED
+ hud_types = DATA_HUD_MEDICAL_ADVANCED
examine_extensions = list(EXAMINE_HUD_MEDICAL)
sprite_sheets = list(
@@ -64,7 +72,7 @@
desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits."
icon_state = "diagnostichud"
origin_tech = "magnets=2;engineering=2"
- HUDType = DATA_HUD_DIAGNOSTIC_BASIC
+ hud_types = DATA_HUD_DIAGNOSTIC_BASIC
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/eyes.dmi',
@@ -96,7 +104,7 @@
icon_state = "securityhud"
origin_tech = "magnets=3;combat=2"
var/global/list/jobs[0]
- HUDType = DATA_HUD_SECURITY_ADVANCED
+ hud_types = DATA_HUD_SECURITY_ADVANCED
examine_extensions = list(EXAMINE_HUD_SECURITY_READ, EXAMINE_HUD_SECURITY_WRITE)
sprite_sheets = list(
@@ -150,7 +158,7 @@
name = "hydroponic HUD"
desc = "A heads-up display capable of analyzing the health and status of plants growing in hydro trays and soil."
icon_state = "hydroponichud"
- HUDType = DATA_HUD_HYDROPONIC
+ hud_types = DATA_HUD_HYDROPONIC
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/eyes.dmi',
@@ -207,7 +215,7 @@
desc = "A heads-up display capable of showing the employment history records of NT crew members."
icon_state = "skill"
item_state = "glasses"
- HUDType = DATA_HUD_SECURITY_BASIC
+ hud_types = DATA_HUD_SECURITY_BASIC
examine_extensions = list(EXAMINE_HUD_SKILLS)
sprite_sheets = list(
"Drask" = 'icons/mob/clothing/species/drask/eyes.dmi',
diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm
index 4baab89f899..269d71e68b4 100644
--- a/code/modules/mod/mod_types.dm
+++ b/code/modules/mod/mod_types.dm
@@ -422,7 +422,15 @@
/obj/item/mod/module/bikehorn,
/obj/item/mod/module/rad_protection,
/obj/item/mod/module/injector,
+ /obj/item/mod/module/magboot/advanced,
+ /obj/item/mod/module/jetpack/advanced,
+ /obj/item/mod/module/stealth/ninja,
+ /obj/item/mod/module/noslip
)
+ default_pins = list(
+ /obj/item/mod/module/bikehorn,
+ )
+ activation_step_time = 0.1 SECONDS // coders are cooler than admins
/obj/item/mod/control/pre_equipped/administrative
theme = /datum/mod_theme/administrative
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 20bef90da79..98f15e57e1a 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -17,6 +17,7 @@
amount_per_transfer_from_this = 5
volume = 250
possible_transfer_amounts = null
+ var/delay = CLICK_CD_RANGE * 2
/obj/item/reagent_containers/spray/afterattack(atom/A, mob/user)
if(isstorage(A) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \
@@ -47,7 +48,7 @@
INVOKE_ASYNC(src, PROC_REF(spray), A)
playsound(loc, 'sound/effects/spray2.ogg', 50, 1, -6)
- user.changeNext_move(CLICK_CD_RANGE*2)
+ user.changeNext_move(delay)
user.newtonian_move(get_dir(A, user))
var/attack_log_type = ATKLOG_ALMOSTALL
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index 6f2da300f55..214350e6326 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -174,17 +174,6 @@
// this one can automatically retry its steps, too!
ADD_TRAIT(src, TRAIT_ADVANCED_SURGICAL, ROUNDSTART_TRAIT)
-/obj/item/scalpel/laser/manager/debug
- name = "debug IMS"
- desc = "A wonder of modern medicine. This tool functions as any other sort of surgery tool, and finishes in only a fraction of the time. Hey, how'd you get your hands on this, anyway?"
- toolspeed = 0.01
-
-/obj/item/scalpel/laser/manager/debug/attack_self(mob/user)
- . = ..()
- toolspeed = toolspeed == 0.5 ? 0.01 : 0.5
- to_chat(user, "[src] is now set to toolspeed [toolspeed]")
- playsound(src, 'sound/effects/pop.ogg', 50, 0) //Change the mode
-
/obj/item/circular_saw
name = "circular saw"
desc = "For heavy duty cutting."
diff --git a/paradise.dme b/paradise.dme
index 57d69ea9d39..e841908a0e5 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -475,6 +475,7 @@
#include "code\datums\looping_sounds\weather_sounds.dm"
#include "code\datums\outfits\outfit.dm"
#include "code\datums\outfits\outfit_admin.dm"
+#include "code\datums\outfits\outfit_debug.dm"
#include "code\datums\outfits\plasmamen_outfits.dm"
#include "code\datums\outfits\vv_outfit.dm"
#include "code\datums\ruins\lavaland.dm"