diff --git a/code/WorkInProgress/Sigyn/Softcurity/jobs.dm b/code/WorkInProgress/Sigyn/Softcurity/jobs.dm
index 31012173420..7ef0b8ccddb 100644
--- a/code/WorkInProgress/Sigyn/Softcurity/jobs.dm
+++ b/code/WorkInProgress/Sigyn/Softcurity/jobs.dm
@@ -49,7 +49,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/warden(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses)
- H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store)
+ H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
@@ -115,7 +115,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/security(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_r_store)
- H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store)
+ H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
diff --git a/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm b/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm
index 3631930e596..49ae813fab0 100644
--- a/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm
+++ b/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm
@@ -49,7 +49,7 @@
new /obj/item/clothing/shoes/brown(src)
new /obj/item/weapon/storage/id_kit(src)
new /obj/item/weapon/storage/id_kit( src )
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/glasses/sunglasses(src)
return
@@ -73,7 +73,7 @@
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/flashbang_kit(src)
new /obj/item/weapon/storage/belt/security(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/melee/baton(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
@@ -122,7 +122,7 @@
new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/weapon/storage/belt/security(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/clothing/glasses/sunglasses(src)
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 5aa5448c8c3..613b07e545c 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -84,7 +84,7 @@ Warden
H.equip_to_slot_or_del(new /obj/item/clothing/head/warden(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses)
- H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store)
+ H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store)
if(H.backbag == 1)
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_l_hand)
@@ -175,7 +175,7 @@ Security Officer
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_s_store)
- H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store)
+ H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store)
if(H.backbag == 1)
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_r_store)
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 72e0126433d..e37f2cae4ed 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -46,7 +46,7 @@
bulb = null
power_change()
- else if (istype(W, /obj/item/device/flash))
+ else if (istype(W, /obj/item/device/flash/handheld))
if (!bulb)
user.visible_message("[user] installs [W] into [src].", "You install [W] into [src].")
user.drop_item()
@@ -174,4 +174,4 @@
icon_state = "launcherbtt"
active = 0
- return
\ No newline at end of file
+ return
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index 1c41c285f3e..48de883c68c 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -23,15 +23,15 @@
return 1
-/obj/item/device/flash/proc/burn_out(var/mob/user) //Made so you can override it if you want to have an invincible flash from R&D or something.
+/obj/item/device/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something.
broken = 1
icon_state = "[initial(icon_state)]burnt"
- user.visible_message("The [src.name] burns out!")
+ visible_message("The [src.name] burns out!")
/obj/item/device/flash/proc/flash_recharge(var/mob/user)
if(prob(times_used * 2)) //if you use it 5 times in a minute it has a 10% chance to break!
- burn_out(user)
+ burn_out()
return 0
var/deciseconds_passed = world.time - last_used
@@ -156,4 +156,6 @@
name = "memorizer"
desc = "If you see this, you're not likely to remember it any time soon."
icon_state = "memorizer"
- item_state = "nullrod"
\ No newline at end of file
+ item_state = "nullrod"
+
+/obj/item/device/flash/handheld //this is now the regular pocket flashes
\ No newline at end of file
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index c765eff2eb3..26b79a0988c 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -20,6 +20,13 @@
keyslot1 = new /obj/item/device/encryptionkey/
recalculateChannels()
+/obj/item/device/radio/headset/Destroy()
+ qdel(keyslot1)
+ qdel(keyslot2)
+ keyslot1 = null
+ keyslot2 = null
+ ..()
+
/obj/item/device/radio/headset/talk_into(mob/living/M as mob, message, channel)
if (!listening)
return
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index e41c84f971f..60b7a1d6c8e 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -50,7 +50,10 @@
initialize()
/obj/item/device/radio/Destroy()
- remove_radio_all(src) //Just to be sure.
+ qdel(wires)
+ wires = null
+ remove_radio_all(src) //Just to be sure
+ ..()
/obj/item/device/radio/MouseDrop(obj/over_object as obj, src_location, over_location)
var/mob/M = usr
@@ -218,7 +221,7 @@
the signal gets processed and logged, and an audible transmission gets sent
to each individual headset.
*/
-
+
/*
be prepared to disregard any comments in all of tcomms code. i tried my best to keep them somewhat up-to-date, but eh
*/
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 3deee5d8cdc..e2ff15d79ef 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -331,8 +331,8 @@
/obj/item/robot_parts/head/attackby(obj/item/W as obj, mob/user as mob)
..()
- if(istype(W, /obj/item/device/flash))
- var/obj/item/device/flash/F = W
+ if(istype(W, /obj/item/device/flash/handheld))
+ var/obj/item/device/flash/handheld/F = W
if(src.flash1 && src.flash2)
user << "You have already inserted the eyes!"
return
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index f17a2d7d7c7..6e7efa8bf50 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -112,7 +112,7 @@
/obj/item/weapon/grenade/flashbang,
/obj/item/weapon/reagent_containers/spray/pepper,
/obj/item/weapon/restraints/handcuffs,
- /obj/item/device/flash,
+ /obj/item/device/flash/handheld,
/obj/item/clothing/glasses,
/obj/item/ammo_casing/shotgun,
/obj/item/ammo_box,
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 8f9d3250b30..f47d382fe15 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -183,12 +183,12 @@
/obj/item/weapon/storage/box/flashes/New()
..()
- new /obj/item/device/flash(src)
- new /obj/item/device/flash(src)
- new /obj/item/device/flash(src)
- new /obj/item/device/flash(src)
- new /obj/item/device/flash(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
+ new /obj/item/device/flash/handheld(src)
+ new /obj/item/device/flash/handheld(src)
+ new /obj/item/device/flash/handheld(src)
+ new /obj/item/device/flash/handheld(src)
+ new /obj/item/device/flash/handheld(src)
/obj/item/weapon/storage/box/teargas
name = "box of tear gas grenades (WARNING)"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index f0163f1279f..13e18c8e65b 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -30,7 +30,7 @@
new /obj/item/weapon/airlock_painter(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/multitool(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
return
/obj/structure/closet/secure_closet/engineering_electrical
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 896b0408417..5bf51ea6e1e 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -120,7 +120,7 @@
new /obj/item/clothing/shoes/sneakers/brown (src)
new /obj/item/device/radio/headset/heads/cmo(src)
new /obj/item/weapon/storage/belt/medical(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/reagent_containers/hypospray/CMO(src)
return
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index 9b0cef34c99..40a861b0c4b 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -46,7 +46,7 @@
new /obj/item/weapon/tank/air(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/suit/armor/reactive(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/device/laser_pointer(src)
new /obj/item/clothing/under/rank/research_director/alt(src)
return
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index c65fcfa194e..98dc42df1f0 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -49,7 +49,7 @@
new /obj/item/weapon/storage/box/ids(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/weapon/gun/energy/gun(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/weapon/mining_voucher(src)
return
@@ -79,7 +79,7 @@
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/clothing/mask/gas/sechailer/hos(src)
new /obj/item/weapon/storage/box/flashbangs(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/weapon/storage/belt/security(src)
@@ -134,7 +134,7 @@
new /obj/item/clothing/head/helmet(src)
new /obj/item/device/radio/headset/headset_sec/alt(src)
new /obj/item/clothing/mask/gas/sechailer(src)
- new /obj/item/device/flash(src)
+ new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/gun/energy/taser(src)
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index fbacb60a169..3fe024e44e8 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -20,7 +20,7 @@
item_state = "bio_suit"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDEJUMPSUIT
- allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/flash, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/emergency_oxygen)
+ allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/flash/handheld, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/emergency_oxygen)
//Chaplain
/obj/item/clothing/suit/chaplain_hoodie
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index 1b1da0d3f34..0fa1779d52f 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -1,19 +1,27 @@
/obj/item/clothing/under/color
- desc = "A standard issue colored jumpsuit for assistants. Variety is the spice of life!"
+ desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
/obj/item/clothing/under/color/random/New()
- var/obj/item/clothing/under/color/C = pick(typesof(/obj/item/clothing/under/color) - /obj/item/clothing/under/color/random)
+ var/list/excluded = list(/obj/item/clothing/under/color/random, /obj/item/clothing/under/color)
+ var/obj/item/clothing/under/color/C = pick(typesof(/obj/item/clothing/under/color) - excluded)
name = initial(C.name)
icon_state = initial(C.icon_state)
item_state = initial(C.item_state)
item_color = initial(C.item_color)
+
/obj/item/clothing/under/color/black
name = "black jumpsuit"
icon_state = "black"
item_state = "bl_suit"
item_color = "black"
+/obj/item/clothing/under/color/grey
+ name = "grey jumpsuit"
+ icon_state = "grey"
+ item_state = "gy_suit"
+ item_color = "grey"
+
/obj/item/clothing/under/color/blue
name = "blue jumpsuit"
icon_state = "blue"
@@ -26,12 +34,6 @@
item_state = "g_suit"
item_color = "green"
-/obj/item/clothing/under/color/grey
- name = "grey jumpsuit"
- icon_state = "grey"
- item_state = "gy_suit"
- item_color = "grey"
-
/obj/item/clothing/under/color/orange
name = "orange jumpsuit"
desc = "Don't wear this near paranoid security officers."
diff --git a/code/modules/mob/living/simple_animal/friendly/drone.dm b/code/modules/mob/living/simple_animal/friendly/drone.dm
index a1ac622b9aa..7883cb6fe8d 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone.dm
@@ -494,6 +494,10 @@
else
mode()
+/mob/living/simple_animal/drone/assess_threat() //Secbots won't hunt maintenance drones.
+ return -10
+
+
#undef HANDS_LAYER
#undef HEAD_LAYER
#undef TOTAL_LAYERS
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index c2e2ebf5e6a..8d9fabe0630 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -52,7 +52,7 @@ datum/design/synthetic_flash
build_type = MECHFAB
materials = list("$metal" = 750, "$glass" = 750)
reliability = 76
- build_path = /obj/item/device/flash/
+ build_path = /obj/item/device/flash/handheld
category = "Misc"
datum/design/bluespacebeaker
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 36882e647f3..5f0013f1400 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi
index 18f7783d003..6a16f7002c2 100644
Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 3e606143549..e3f0c9630c1 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 5a2d9dcac64..bc49b0c5372 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index b6789863ebc..ff07bda85f6 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi
index 6d65684a300..b4a89332495 100644
Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ