diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 4bc3c6472b2..225e6bf7268 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -487,8 +487,8 @@
icon_state = "RPED"
item_state = "RPED"
item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_device.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_device.dmi'
+ slot_l_hand_str = 'icons/mob/items/device/lefthand_device.dmi',
+ slot_r_hand_str = 'icons/mob/items/device/righthand_device.dmi'
)
w_class = ITEMSIZE_HUGE
can_hold = list(/obj/item/stock_parts,/obj/item/reagent_containers/glass/beaker)
diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm
index 69dc941d9ee..74a5499dbd5 100644
--- a/code/game/machinery/autolathe_datums.dm
+++ b/code/game/machinery/autolathe_datums.dm
@@ -370,7 +370,7 @@
/datum/autolathe/recipe/labeler
name = "hand labeler"
- path = /obj/item/hand_labeler
+ path = /obj/item/device/hand_labeler
category = "General"
/datum/autolathe/recipe/destTagger
@@ -539,4 +539,4 @@
name = "brass knuckles"
path = /obj/item/clothing/gloves/brassknuckles
hidden = 1
- category = "General"
\ No newline at end of file
+ category = "General"
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index beda7abd3b2..3813abe5143 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -317,9 +317,9 @@
power_change()
return
- else if(istype(W,/obj/item/vending_refill))
+ else if(istype(W,/obj/item/device/vending_refill))
if(panel_open)
- var/obj/item/vending_refill/VR = W
+ var/obj/item/device/vending_refill/VR = W
if(VR.charges)
if(VR.vend_id == vend_id)
VR.restock_inventory(src)
diff --git a/code/game/machinery/vending_items.dm b/code/game/machinery/vending_items.dm
index 954c9ef2557..f2bced2a820 100644
--- a/code/game/machinery/vending_items.dm
+++ b/code/game/machinery/vending_items.dm
@@ -1,14 +1,10 @@
-/obj/item/vending_refill
+/obj/item/device/vending_refill
name = "resupply canister"
var/vend_id = "generic"
icon = 'icons/obj/assemblies/electronic_setups.dmi'
icon_state = "setup_medium-open"
item_state = "restock_unit"
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_device.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_device.dmi',
- )
desc = "A vending machine restock cart."
force = 7
throwforce = 10
@@ -17,14 +13,14 @@
w_class = ITEMSIZE_NORMAL
var/charges = 0
-/obj/item/vending_refill/examine(mob/user)
+/obj/item/device/vending_refill/examine(mob/user)
..()
if(charges > 0)
to_chat(user, "It can restock [charges] item(s).")
else
to_chat(user, "It's empty!")
-/obj/item/vending_refill/proc/restock_inventory(var/obj/machinery/vending/vendor)
+/obj/item/device/vending_refill/proc/restock_inventory(var/obj/machinery/vending/vendor)
if(vendor)
for(var/datum/data/vending_product/product in vendor.product_records)
if(product.amount < product.max_amount)
@@ -38,72 +34,72 @@
//can refill most vendors from half depleted once.
-/obj/item/vending_refill/booze
+/obj/item/device/vending_refill/booze
name = "booze resupply canister"
vend_id = "booze"
charges = 100 //holy shit that's a lot of booze
-/obj/item/vending_refill/tools
+/obj/item/device/vending_refill/tools
name = "tools resupply canister"
vend_id = "tools"
charges = 25
-/obj/item/vending_refill/coffee
+/obj/item/device/vending_refill/coffee
name = "coffee resupply canister"
vend_id = "coffee"
charges = 38
-/obj/item/vending_refill/snack
+/obj/item/device/vending_refill/snack
name = "snacks resupply canister"
vend_id = "snacks"
charges = 38
-/obj/item/vending_refill/cola
+/obj/item/device/vending_refill/cola
name = "cola resupply canister"
vend_id = "cola"
charges = 50
-/obj/item/vending_refill/smokes
+/obj/item/device/vending_refill/smokes
name = "smokes resupply canister"
vend_id = "smokes"
charges = 25
-/obj/item/vending_refill/meds
+/obj/item/device/vending_refill/meds
name = "meds resupply canister"
vend_id = "meds"
charges = 38
-/obj/item/vending_refill/robust
+/obj/item/device/vending_refill/robust
name = "security resupply canister"
vend_id = "security"
charges = 25
-/obj/item/vending_refill/hydro
+/obj/item/device/vending_refill/hydro
name = "hydro resupply canister"
vend_id = "hydro"
charges = 23
-/obj/item/vending_refill/seeds
+/obj/item/device/vending_refill/seeds
name = "resupply canister"
vend_id = SEED_NOUN_SEEDS
charges = 175
-/obj/item/vending_refill/cutlery
+/obj/item/device/vending_refill/cutlery
name = "cutlery resupply canister"
vend_id = "cutlery"
charges = 50
-/obj/item/vending_refill/robo
+/obj/item/device/vending_refill/robo
name = "robo-tools resupply canister"
vend_id = "robo-tools"
charges = 38
-/obj/item/vending_refill/zora
+/obj/item/device/vending_refill/zora
name = "Zo'ra Soda resupply canister"
vend_id = "zora"
charges = 40
-/obj/item/vending_refill/battlemonsters
+/obj/item/device/vending_refill/battlemonsters
name = "Battlemonsters resupply canister"
vend_id = "battlemonsters"
charges = 40
diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm
index b68899065de..2d9f5eb7c56 100644
--- a/code/game/machinery/vending_types.dm
+++ b/code/game/machinery/vending_types.dm
@@ -26,18 +26,18 @@
vend_id = "admin"
req_access = list(access_janitor)
products = list(
- /obj/item/vending_refill/booze = 1,
- /obj/item/vending_refill/tools = 1,
- /obj/item/vending_refill/coffee = 1,
- /obj/item/vending_refill/snack = 1,
- /obj/item/vending_refill/cola = 1,
- /obj/item/vending_refill/smokes = 1,
- /obj/item/vending_refill/meds = 1,
- /obj/item/vending_refill/robust = 1,
- /obj/item/vending_refill/hydro = 1,
- /obj/item/vending_refill/cutlery = 1,
- /obj/item/vending_refill/robo = 1,
- /obj/item/vending_refill/battlemonsters = 1,
+ /obj/item/device/vending_refill/booze = 1,
+ /obj/item/device/vending_refill/tools = 1,
+ /obj/item/device/vending_refill/coffee = 1,
+ /obj/item/device/vending_refill/snack = 1,
+ /obj/item/device/vending_refill/cola = 1,
+ /obj/item/device/vending_refill/smokes = 1,
+ /obj/item/device/vending_refill/meds = 1,
+ /obj/item/device/vending_refill/robust = 1,
+ /obj/item/device/vending_refill/hydro = 1,
+ /obj/item/device/vending_refill/cutlery = 1,
+ /obj/item/device/vending_refill/robo = 1,
+ /obj/item/device/vending_refill/battlemonsters = 1,
)
random_itemcount = 0
light_color = COLOR_GOLD
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index e4f7f4c584e..87c306a3729 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -108,8 +108,8 @@
/obj/item/device
icon = 'icons/obj/device.dmi'
item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_device.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_device.dmi',
+ slot_l_hand_str = 'icons/mob/items/device/lefthand_device.dmi',
+ slot_r_hand_str = 'icons/mob/items/device/righthand_device.dmi',
)
pickup_sound = 'sound/items/pickup/device.ogg'
drop_sound = 'sound/items/drop/device.ogg'
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 74e9b327f2c..efff391c539 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -1,6 +1,12 @@
/obj/item/device/megaphone
name = "megaphone"
- desc = "A device used to project your voice. Loudly."
+ desc = "Pretend to be a director for a brief moment before someone tackles you to make you shut up."
+ desc_fluff = "Annoy your colleagues! Scare interns! Impress no one!"
+ desc_info = "A device used to project your voice. Loudly."
+ item_icons = list(
+ slot_l_hand_str = 'icons/mob/items/device/lefthand_megaphone.dmi',
+ slot_r_hand_str = 'icons/mob/items/device/righthand_megaphone.dmi',
+ )
icon_state = "megaphone"
item_state = "megaphone"
w_class = ITEMSIZE_SMALL
@@ -14,17 +20,17 @@
var/needs_user_location = TRUE
/obj/item/device/megaphone/attack_self(mob/living/user as mob)
- if (user.client)
+ if(user.client)
if(user.client.prefs.muted & MUTE_IC)
- to_chat(src, "You cannot speak in IC (muted).")
+ to_chat(src, SPAN_WARNING("You cannot speak in IC (muted)."))
return
if(!ishuman(user))
- to_chat(user, "You don't know how to use this!")
+ to_chat(user, SPAN_WARNING("You don't know how to use this!"))
return
if(user.silent)
return
- if(spamcheck)
- to_chat(user, "\The [src] needs to recharge!")
+ if(spamcheck > world.time)
+ to_chat(user, SPAN_WARNING("\The [src] needs to recharge!"))
return
var/message = sanitize(input(user, "Shout a message?", "Megaphone", null) as text)
@@ -40,19 +46,72 @@
user.visible_message("[user] broadcasts, \"[pick(insultmsg)]\"")
insults--
else
- to_chat(user, "*BZZZZzzzzzt*")
+ to_chat(user, SPAN_WARNING("*BZZZZzzzzzt*"))
else
user.visible_message("[user] broadcasts, \"[message]\"")
if(activation_sound)
playsound(loc, activation_sound, 100, 0, 1)
- spamcheck = 1
- spawn(20)
- spamcheck = 0
+ spamcheck = world.time + 50
return
/obj/item/device/megaphone/emag_act(var/remaining_charges, var/mob/user)
if(!emagged)
- to_chat(user, "You overload \the [src]'s voice synthesizer.")
+ to_chat(user, SPAN_WARNING("You overload \the [src]'s voice synthesizer."))
emagged = 1
insults = rand(1, 3)//to prevent dickflooding
return 1
+
+/obj/item/device/megaphone/red
+ name = "red megaphone"
+ desc = "To make people do your bidding."
+ desc_fluff = "It's in a menacing crimson red."
+ icon_state = "megaphone_red"
+ item_state = "megaphone_red"
+
+/obj/item/device/megaphone/sec
+ name = "security megaphone"
+ desc = "To stop people from stepping over the police tape."
+ desc_fluff = "Nothing to see here. Move along."
+ icon_state = "megaphone_sec"
+ item_state = "megaphone_sec"
+
+/obj/item/device/megaphone/med
+ name = "medical megaphone"
+ desc = "To make people leave the ICU."
+ desc_fluff = "Realistcally only used to startle the CMO's cat."
+ icon_state = "megaphone_med"
+ item_state = "megaphone_med"
+
+/obj/item/device/megaphone/sci
+ name = "science megaphone"
+ desc = "To make people stand clear of the blast zone."
+ desc_fluff = "Something to rival the explosions heard in the science department."
+ icon_state = "megaphone_sci"
+ item_state = "megaphone_sci"
+
+/obj/item/device/megaphone/engi
+ name = "engineering megaphone"
+ desc = "To make people get out of construction sites."
+ desc_fluff = "At home in construction sites and road works, it'll stick by you in diverting traffic and dim-witted coworkers."
+ icon_state = "megaphone_engi"
+ item_state = "megaphone_engi"
+
+/obj/item/device/megaphone/cargo
+ name = "supply megaphone"
+ desc = "To make people to push crates."
+ desc_fluff = "Only certified forklift operators will be able to handle the sheer power of this megaphone. Either that, or just be the Quartermaster."
+ icon_state = "megaphone_cargo"
+ item_state = "megaphone_cargo"
+
+/obj/item/device/megaphone/command
+ name = "command megaphone"
+ desc = "To make people to get back to work."
+ desc_fluff = "Exude authority by decree of having the louder voice."
+ icon_state = "megaphone_command"
+ item_state = "megaphone_command"
+
+/obj/item/device/megaphone/clown
+ name = "clown's megaphone"
+ desc = "Something that should not exist."
+ icon_state = "megaphone_clown"
+ item_state = "megaphone_clown"
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 8b12d47c750..cdddb95956a 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -323,12 +323,12 @@
if(LAZYLEN(can_hold))
if(!is_type_in_list(W, can_hold))
- if(!stop_messages && ! istype(W, /obj/item/hand_labeler))
+ if(!stop_messages && ! istype(W, /obj/item/device/hand_labeler))
to_chat(usr, "[src] cannot hold \the [W].")
return 0
var/max_instances = can_hold[W.type]
if(max_instances && instances_of_type_in_list(W, contents, TRUE) >= max_instances)
- if(!stop_messages && !istype(W, /obj/item/hand_labeler))
+ if(!stop_messages && !istype(W, /obj/item/device/hand_labeler))
to_chat(usr, "[src] has no more space specifically for \the [W].")
return 0
@@ -523,8 +523,8 @@
to_chat(user, "Trying to place a loaded tray into [src] was a bad idea.")
return
- if(istype(W, /obj/item/hand_labeler))
- var/obj/item/hand_labeler/HL = W
+ if(istype(W, /obj/item/device/hand_labeler))
+ var/obj/item/device/hand_labeler/HL = W
if(HL.mode == 1)
return
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index c9233f7ded3..c80c7672bf0 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -141,7 +141,7 @@
/obj/item/pen/chameleon = 1,
/obj/item/device/destTagger = 1,
/obj/item/stack/packageWrap = 1,
- /obj/item/hand_labeler = 1
+ /obj/item/device/hand_labeler = 1
)
/obj/item/storage/box/syndie_kit/special_pens
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 21dbccd6306..b5f58fb1913 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -341,8 +341,8 @@
)
else
attack_hand(user)
- else if(istype(W, /obj/item/hand_labeler))
- var/obj/item/hand_labeler/HL = W
+ else if(istype(W, /obj/item/device/hand_labeler))
+ var/obj/item/device/hand_labeler/HL = W
if (HL.mode == 1)
return
else
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
index d9b755dd9e1..401d01487a8 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
@@ -47,6 +47,7 @@
new /obj/item/modular_computer/handheld/custom_loadout/advanced/cargo_delivery(src)
new /obj/item/export_scanner(src)
new /obj/item/device/orbital_dropper/drill(src)
+ new /obj/item/device/megaphone/cargo(src)
/obj/structure/closet/secure_closet/merchant
name = "merchant locker"
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 a0353a37627..7ef690325e2 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -27,6 +27,7 @@
new /obj/item/clothing/shoes/brown(src)
new /obj/item/device/radio/headset/heads/ce(src)
new /obj/item/device/radio/headset/heads/ce/alt(src)
+ new /obj/item/device/megaphone/engi(src)
new /obj/item/storage/toolbox/mechanical(src)
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
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 700d6c2dd67..58ad56fb3a3 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -111,6 +111,7 @@
new /obj/item/clothing/gloves/latex/nitrile(src)
new /obj/item/device/radio/headset/heads/cmo(src)
new /obj/item/device/radio/headset/heads/cmo/alt(src)
+ new /obj/item/device/megaphone/med(src)
new /obj/item/device/flash(src)
new /obj/item/reagent_containers/hypospray/cmo(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src)
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 5837581350a..b4c7b16f925 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -68,3 +68,4 @@
new /obj/item/clothing/gloves/latex/nitrile(src)
new /obj/item/device/radio/headset/heads/rd(src)
new /obj/item/device/radio/headset/heads/rd/alt(src)
+ new /obj/item/device/megaphone/sci(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 5cc7921d8c5..653e2ffdeca 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -148,8 +148,8 @@
playsound(loc, W.usesound, 50, 1)
wrenched = 1
anchored = 1
- else if(istype(W, /obj/item/hand_labeler))
- var/obj/item/hand_labeler/HL = W
+ else if(istype(W, /obj/item/device/hand_labeler))
+ var/obj/item/device/hand_labeler/HL = W
if (HL.mode == 1)
return
else
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 9411185e338..49aa536c50f 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -20,6 +20,7 @@
//Tools
new /obj/item/device/radio/headset/heads/captain(src)
new /obj/item/device/radio/headset/heads/captain/alt(src)
+ new /obj/item/device/megaphone/command(src)
new /obj/item/gun/energy/disruptorpistol(src)
new /obj/item/device/flash(src)
new /obj/item/melee/telebaton(src)
@@ -76,6 +77,7 @@
//Tools
new /obj/item/device/radio/headset/heads/hop(src)
new /obj/item/device/radio/headset/heads/hop/alt(src)
+ new /obj/item/device/megaphone/command(src)
new /obj/item/gun/energy/disruptorpistol(src)
new /obj/item/gun/projectile/sec/flash(src)
new /obj/item/device/flash(src)
@@ -139,6 +141,7 @@
//Tools
new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/device/radio/headset/heads/hos/alt(src)
+ new /obj/item/device/megaphone/sec(src)
new /obj/item/storage/box/tranquilizer(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/clothing/glasses/sunglasses/sechud/head(src)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index e6d91d75045..069451b754b 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -113,8 +113,8 @@
playsound(loc, 'sound/items/wirecutter.ogg', 100, 1)
rigged = 0
return
- else if(istype(W, /obj/item/hand_labeler))
- var/obj/item/hand_labeler/HL = W
+ else if(istype(W, /obj/item/device/hand_labeler))
+ var/obj/item/device/hand_labeler/HL = W
if (HL.mode == 1)
return
else
@@ -327,8 +327,8 @@
return ..()
if(istype(W, /obj/item/melee/energy/blade))
emag_act(INFINITY, user)
- if(istype(W, /obj/item/hand_labeler))
- var/obj/item/hand_labeler/HL = W
+ if(istype(W, /obj/item/device/hand_labeler))
+ var/obj/item/device/hand_labeler/HL = W
if (HL.mode == 1)
return
else if(!opened)
diff --git a/code/modules/cargo/random_stock/t1_common.dm b/code/modules/cargo/random_stock/t1_common.dm
index c713ab2cf5a..d3cb6bcf8b5 100644
--- a/code/modules/cargo/random_stock/t1_common.dm
+++ b/code/modules/cargo/random_stock/t1_common.dm
@@ -335,7 +335,7 @@ STOCK_ITEM_COMMON(suitcooler, 1.2)
STOCK_ITEM_COMMON(paperwork, 1.2)
if(prob(50))
- new /obj/item/hand_labeler(L)
+ new /obj/item/device/hand_labeler(L)
else
new /obj/item/clipboard(L)
if(prob(15))
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index 2d2d91938d5..161b3ad5ac2 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -9,11 +9,6 @@
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
siemens_coefficient = 0.5
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items_lefthand.dmi',
- slot_r_hand_str = 'icons/mob/items_righthand.dmi'
- )
-
//Species-specific stuff.
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_BISHOP, BODYTYPE_IPC_ZENGHU)
sprite_sheets_refit = list(
@@ -45,11 +40,6 @@
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
siemens_coefficient = 0.5
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items_lefthand.dmi',
- slot_r_hand_str = 'icons/mob/items_righthand.dmi'
- )
-
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_SKRELL, BODYTYPE_IPC_BISHOP, BODYTYPE_IPC_ZENGHU)
sprite_sheets_refit = list(
BODYTYPE_UNATHI = 'icons/mob/species/unathi/suit.dmi',
@@ -218,7 +208,7 @@
if(!istype(user,/mob/living)) return
- if(istype(W,/obj/item/clothing/accessory) || istype(W, /obj/item/hand_labeler))
+ if(istype(W,/obj/item/clothing/accessory) || istype(W, /obj/item/device/hand_labeler))
return ..()
if(user.get_inventory_slot(src) == slot_wear_suit)
diff --git a/code/modules/mob/living/silicon/robot/items/gripper.dm b/code/modules/mob/living/silicon/robot/items/gripper.dm
index 6c539af7480..2ff973d22df 100644
--- a/code/modules/mob/living/silicon/robot/items/gripper.dm
+++ b/code/modules/mob/living/silicon/robot/items/gripper.dm
@@ -253,7 +253,7 @@
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/spray,
/obj/item/storage/pill_bottle,
- /obj/item/hand_labeler,
+ /obj/item/device/hand_labeler,
/obj/item/paper,
/obj/item/stack/material/phoron,
/obj/item/reagent_containers/blood,
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index dae42d169b1..3b5f6fb3131 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -231,7 +231,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/pen/robopen(src)
src.modules += new /obj/item/form_printer(src)
src.modules += new /obj/item/gripper/paperwork(src)
- src.modules += new /obj/item/hand_labeler(src)
+ src.modules += new /obj/item/device/hand_labeler(src)
src.modules += new /obj/item/tape_roll(src) //allows it to place flyers
src.modules += new /obj/item/device/nanoquikpay(src)
src.emag = new /obj/item/reagent_containers/hypospray/cmo(src)
@@ -615,7 +615,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/pen/robopen(src)
src.modules += new /obj/item/form_printer(src)
src.modules += new /obj/item/gripper/paperwork(src)
- src.modules += new /obj/item/hand_labeler(src)
+ src.modules += new /obj/item/device/hand_labeler(src)
src.modules += new /obj/item/tape_roll(src) //allows it to place flyers
src.modules += new /obj/item/device/nanoquikpay(src)
src.modules += new /obj/item/reagent_containers/glass/rag(src) // a rag for.. yeah.. the primary tool of bartender
@@ -654,7 +654,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/pen/robopen(src)
src.modules += new /obj/item/form_printer(src)
src.modules += new /obj/item/gripper/paperwork(src)
- src.modules += new /obj/item/hand_labeler(src)
+ src.modules += new /obj/item/device/hand_labeler(src)
src.modules += new /obj/item/tape_roll(src) //allows it to place flyers
src.modules += new /obj/item/device/nanoquikpay(src)
src.modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
@@ -698,7 +698,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/pen/robopen(src)
src.modules += new /obj/item/form_printer(src)
src.modules += new /obj/item/gripper/paperwork(src)
- src.modules += new /obj/item/hand_labeler(src)
+ src.modules += new /obj/item/device/hand_labeler(src)
src.modules += new /obj/item/tape_roll(src) //allows it to place flyers
src.modules += new /obj/item/device/nanoquikpay(src)
src.modules += new /obj/item/device/gps/mining(src) // for locating itself in the deep space
@@ -775,7 +775,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/pen/robopen(src)
src.modules += new /obj/item/form_printer(src)
src.modules += new /obj/item/gripper/paperwork(src)
- src.modules += new /obj/item/hand_labeler(src)
+ src.modules += new /obj/item/device/hand_labeler(src)
src.modules += new /obj/item/tape_roll(src) //allows it to place flyers
src.modules += new /obj/item/device/nanoquikpay(src)
src.modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm
index d16e5437954..e644b27b012 100644
--- a/code/modules/paperwork/handlabeler.dm
+++ b/code/modules/paperwork/handlabeler.dm
@@ -7,11 +7,11 @@
set src in view(1)
if (!usr.IsAdvancedToolUser() || usr.incapacitated())
- to_chat(usr, "You lack the dexerity to do this!")
+ to_chat(usr, SPAN_NOTICE("You lack the dexerity to do this!"))
return FALSE
if (!name_unlabel)
- to_chat(usr, "You look again, unable to find the label! Perhaps your eyes need checking?")
+ to_chat(usr, SPAN_NOTICE("You look again, unable to find the label! Perhaps your eyes need checking?"))
src.verbs -= .proc/remove_label
return FALSE
@@ -21,28 +21,25 @@
name_unlabel = ""
src.verbs -= .proc/remove_label
- H.visible_message("\The [H] removes the label from \the [src].",
- "You remove the label from \the [src].")
+ H.visible_message(SPAN_NOTICE("\The [H] removes the label from \the [src]."),
+ SPAN_NOTICE("You remove the label from \the [src]."))
return TRUE
-/obj/item/hand_labeler
+/obj/item/device/hand_labeler
name = "hand labeler"
icon = 'icons/obj/bureaucracy.dmi'
- item_icons = list(
- slot_l_hand_str = 'icons/mob/items/lefthand_device.dmi',
- slot_r_hand_str = 'icons/mob/items/righthand_device.dmi',
- )
icon_state = "labeler0"
+ item_state = "labeler0"
var/label = null
var/labels_left = 30
var/mode = 0 //off or on.
matter = list(DEFAULT_WALL_MATERIAL = 120, MATERIAL_GLASS = 80)
-/obj/item/hand_labeler/attack()
+/obj/item/device/hand_labeler/attack()
return
-/obj/item/hand_labeler/afterattack(atom/A, mob/user as mob, proximity)
+/obj/item/device/hand_labeler/afterattack(atom/A, mob/user as mob, proximity)
if(!proximity)
return
if(!mode) //if it's off, give up.
@@ -53,37 +50,37 @@
return
if(!labels_left)
- to_chat(user, "No labels left.")
+ to_chat(user, SPAN_NOTICE("No labels left."))
return
if(!label || !length(label))
- to_chat(user, "No text set.")
+ to_chat(user, SPAN_NOTICE("No text set."))
return
if(length(A.name) + length(label) > 64)
- to_chat(user, "Label too big.")
+ to_chat(user, SPAN_NOTICE("Label too big."))
return
if(ishuman(A))
- to_chat(user, "The label refuses to stick to [A.name].")
+ to_chat(user, SPAN_NOTICE("The label refuses to stick to [A.name]."))
return
if(issilicon(A))
- to_chat(user, "The label refuses to stick to [A.name].")
+ to_chat(user, SPAN_NOTICE("The label refuses to stick to [A.name]."))
return
if(isobserver(A))
- to_chat(user, "[src] passes through [A.name].")
+ to_chat(user, SPAN_NOTICE("[src] passes through [A.name]."))
return
if(istype(A, /obj/item/reagent_containers/glass))
- to_chat(user, "The label can't stick to the [A.name]. (Try using a pen!)")
+ to_chat(user, SPAN_NOTICE("The label can't stick to the [A.name]. (Try using a pen!)"))
return
if(istype(A, /obj/machinery/portable_atmospherics/hydroponics))
var/obj/machinery/portable_atmospherics/hydroponics/tray = A
if(!tray.mechanical)
- to_chat(user, "How are you going to label that?")
+ to_chat(user, SPAN_NOTICE("How are you going to label that?"))
return
tray.labelled = label
spawn(1)
tray.update_icon()
user.visible_message("[user] labels [A] as [label].", \
- "You label [A] as [label].")
+ SPAN_NOTICE("You label [A] as [label]."))
// Prevent label stacking from making name unrecoverable.
if (!A.name_unlabel)
@@ -92,17 +89,18 @@
A.name = "[A.name] ([label])"
-/obj/item/hand_labeler/attack_self(mob/user as mob)
+/obj/item/device/hand_labeler/attack_self(mob/user as mob)
mode = !mode
icon_state = "labeler[mode]"
+ item_state = icon_state
if(mode)
- to_chat(user, "You turn on \the [src].")
+ to_chat(user, SPAN_NOTICE("You turn on \the [src]."))
//Now let them chose the text.
var/str = sanitizeSafe(input(user,"Label text?","Set label",""), MAX_NAME_LEN)
if(!str || !length(str))
- to_chat(user, "Invalid text.")
+ to_chat(user, SPAN_NOTICE("Invalid text."))
return
label = str
- to_chat(user, "You set the text to '[str]'.")
+ to_chat(user, SPAN_NOTICE("You set the text to '[str]'."))
else
- to_chat(user, "You turn off \the [src].")
+ to_chat(user, SPAN_NOTICE("You turn off \the [src]."))
diff --git a/code/modules/research/xenoarchaeology/misc.dm b/code/modules/research/xenoarchaeology/misc.dm
index e5f7ac85a4d..774f5f8378a 100644
--- a/code/modules/research/xenoarchaeology/misc.dm
+++ b/code/modules/research/xenoarchaeology/misc.dm
@@ -103,7 +103,7 @@
new /obj/item/device/measuring_tape(src)
new /obj/item/pickaxe/hand(src)
new /obj/item/storage/bag/fossils(src)
- new /obj/item/hand_labeler(src)
+ new /obj/item/device/hand_labeler(src)
return
//---- Isolation room air alarms
diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm
index cd38d0b98b6..399134520a5 100644
--- a/code/modules/vehicles/vehicle.dm
+++ b/code/modules/vehicles/vehicle.dm
@@ -76,7 +76,7 @@
return 0
/obj/vehicle/attackby(obj/item/W as obj, mob/user as mob)
- if(istype(W, /obj/item/hand_labeler))
+ if(istype(W, /obj/item/device/hand_labeler))
return
if(W.isscrewdriver())
if(!locked)
diff --git a/html/changelogs/wezzy_megaphone_inhands.yml b/html/changelogs/wezzy_megaphone_inhands.yml
new file mode 100644
index 00000000000..353f1e10525
--- /dev/null
+++ b/html/changelogs/wezzy_megaphone_inhands.yml
@@ -0,0 +1,42 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: Wowzewow (Wezzy)
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Adds new megaphone types. Collect them all! Heads of staff, check your lockers."
+ - bugfix: "Fixes labeler inhands."
diff --git a/icons/mob/items/device/lefthand_device.dmi b/icons/mob/items/device/lefthand_device.dmi
new file mode 100644
index 00000000000..9a35b91b9bd
Binary files /dev/null and b/icons/mob/items/device/lefthand_device.dmi differ
diff --git a/icons/mob/items/device/lefthand_megaphone.dmi b/icons/mob/items/device/lefthand_megaphone.dmi
new file mode 100644
index 00000000000..a5f67c05510
Binary files /dev/null and b/icons/mob/items/device/lefthand_megaphone.dmi differ
diff --git a/icons/mob/items/device/righthand_device.dmi b/icons/mob/items/device/righthand_device.dmi
new file mode 100644
index 00000000000..a9acc63d088
Binary files /dev/null and b/icons/mob/items/device/righthand_device.dmi differ
diff --git a/icons/mob/items/device/righthand_megaphone.dmi b/icons/mob/items/device/righthand_megaphone.dmi
new file mode 100644
index 00000000000..c7a5b141b9c
Binary files /dev/null and b/icons/mob/items/device/righthand_megaphone.dmi differ
diff --git a/icons/mob/items/lefthand_device.dmi b/icons/mob/items/lefthand_device.dmi
deleted file mode 100644
index aa10428d504..00000000000
Binary files a/icons/mob/items/lefthand_device.dmi and /dev/null differ
diff --git a/icons/mob/items/righthand_device.dmi b/icons/mob/items/righthand_device.dmi
deleted file mode 100644
index 7b8dc4d1004..00000000000
Binary files a/icons/mob/items/righthand_device.dmi and /dev/null differ
diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi
deleted file mode 100644
index 69e5f1f5ffe..00000000000
Binary files a/icons/mob/items_lefthand.dmi and /dev/null differ
diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi
deleted file mode 100644
index d2194c1a1ee..00000000000
Binary files a/icons/mob/items_righthand.dmi and /dev/null differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 53d546d1624..7117d21725d 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/maps/aurora/aurora-1_centcomm.dmm b/maps/aurora/aurora-1_centcomm.dmm
index 5967c93a120..e271c6af7b6 100644
--- a/maps/aurora/aurora-1_centcomm.dmm
+++ b/maps/aurora/aurora-1_centcomm.dmm
@@ -2432,7 +2432,7 @@
/obj/item/shield/energy/legion,
/obj/item/melee/energy/sword/knife,
/obj/item/melee/telebaton,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/sec,
/obj/item/storage/box/fancy/cigarettes/cigar,
/obj/item/flame/lighter/zippo,
/obj/item/reagent_containers/food/drinks/bottle/victorygin,
@@ -6325,7 +6325,7 @@
},
/area/shuttle/administration)
"aRx" = (
-/obj/item/device/megaphone{
+/obj/item/device/megaphone/red{
pixel_x = 1;
pixel_y = 4
},
@@ -9274,7 +9274,7 @@
pixel_x = 4;
pixel_y = 9
},
-/obj/item/hand_labeler{
+/obj/item/device/hand_labeler{
pixel_x = -6;
pixel_y = -4
},
@@ -15002,8 +15002,8 @@
/area/centcom/holding)
"fUN" = (
/obj/structure/table/wood,
-/obj/item/device/megaphone,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/sec,
+/obj/item/device/megaphone/sec,
/turf/unsimulated/floor{
dir = 8;
icon_state = "wood"
@@ -15171,7 +15171,7 @@
/obj/item/storage/briefcase/aluminium,
/obj/item/device/camera,
/obj/item/device/taperecorder,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/red,
/turf/unsimulated/floor{
icon_state = "new_reinforced"
},
@@ -17071,7 +17071,7 @@
pixel_x = 7;
pixel_y = 9
},
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/red,
/obj/effect/floor_decal/corner/red{
dir = 6
},
@@ -17593,7 +17593,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/reinforced,
/obj/item/device/taperecorder,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/red,
/turf/unsimulated/floor{
dir = 1;
icon_state = "brown"
@@ -19533,7 +19533,7 @@
/obj/item/folder{
pixel_y = 2
},
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/red,
/turf/simulated/floor/shuttle/black,
/area/shuttle/mercenary)
"iJy" = (
@@ -21793,7 +21793,7 @@
/obj/item/pen{
pixel_y = 16
},
-/obj/item/hand_labeler{
+/obj/item/device/hand_labeler{
pixel_y = 2
},
/obj/structure/table/wood{
@@ -23777,7 +23777,7 @@
dir = 8
},
/obj/structure/closet/secure_closet/merchant,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/item/stack/packageWrap,
/obj/item/device/price_scanner,
/turf/simulated/floor/wood,
@@ -25679,7 +25679,7 @@
/obj/item/stack/packageWrap{
pixel_y = 5
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/unsimulated/floor{
icon_state = "dark2"
},
@@ -25917,7 +25917,7 @@
"mRW" = (
/obj/structure/table/standard,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/merchant_station/warehouse)
"mSo" = (
@@ -27375,7 +27375,7 @@
/obj/structure/table/reinforced/wood,
/obj/item/folder/blue,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/unsimulated/floor{
icon_state = "dark2"
},
@@ -39639,7 +39639,7 @@
syndie = 1
},
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/unsimulated/floor{
dir = 8;
icon_state = "wood"
@@ -39784,7 +39784,7 @@
/obj/item/deck/cards,
/obj/item/deck/cards,
/obj/item/deck/tarot,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/red,
/obj/item/device/flashlight/lantern,
/obj/item/storage/box/fancy/cigarettes/cigar,
/obj/item/clothing/mask/smokable/pipe,
@@ -40987,7 +40987,7 @@
pixel_x = -3;
pixel_y = 12
},
-/obj/item/device/megaphone{
+/obj/item/device/megaphone/red{
pixel_y = -4
},
/obj/structure/table/standard,
@@ -41925,7 +41925,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/reinforced,
/obj/machinery/door/window/westright,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/unsimulated/floor{
dir = 8;
icon_state = "brown"
diff --git a/maps/aurora/aurora-3_sublevel.dmm b/maps/aurora/aurora-3_sublevel.dmm
index ac1f8e36686..278dacfe8e9 100644
--- a/maps/aurora/aurora-3_sublevel.dmm
+++ b/maps/aurora/aurora-3_sublevel.dmm
@@ -14864,7 +14864,7 @@
dir = 4
},
/obj/structure/table/reinforced/steel,
-/obj/item/hand_labeler{
+/obj/item/device/hand_labeler{
pixel_y = 4
},
/obj/item/storage/box/samplebags{
@@ -20110,7 +20110,7 @@
},
/obj/structure/table/standard,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner_wide/mauve/full,
/turf/simulated/floor/tiled/white,
/area/outpost/research/hallway)
@@ -33691,7 +33691,7 @@
/area/outpost/engineering/power)
"rCf" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/lime/full{
dir = 4
},
diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm
index 69cc0ff28d4..3238e02c02d 100644
--- a/maps/aurora/aurora-4_mainlevel.dmm
+++ b/maps/aurora/aurora-4_mainlevel.dmm
@@ -3030,7 +3030,7 @@
/obj/structure/table/standard,
/obj/machinery/firealarm/north,
/obj/item/storage/box/bodybags,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/light_switch{
pixel_x = 26
},
@@ -3368,7 +3368,7 @@
/area/security/main)
"agn" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/blue{
dir = 9
},
@@ -7347,7 +7347,7 @@
"anU" = (
/obj/structure/table/standard,
/obj/item/storage/box/evidence,
-/obj/item/hand_labeler{
+/obj/item/device/hand_labeler{
pixel_x = 4;
pixel_y = 2
},
@@ -8012,7 +8012,7 @@
/obj/effect/floor_decal/corner/blue{
dir = 1
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/yellow{
dir = 4
},
@@ -8446,7 +8446,7 @@
dir = 5
},
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/structure/table/reinforced,
/obj/item/stack/wrapping_paper,
/turf/simulated/floor/tiled,
@@ -13338,7 +13338,7 @@
/obj/structure/table/standard,
/obj/item/clothing/head/hardhat,
/obj/item/clothing/head/hardhat,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/engineering/locker_room)
"axI" = (
@@ -18910,7 +18910,7 @@
/area/security/warden)
"aGt" = (
/obj/structure/closet/secure_closet/warden,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/sec,
/obj/item/crowbar,
/obj/item/wrench,
/obj/item/device/radio,
@@ -20988,7 +20988,7 @@
},
/obj/structure/table/standard,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/security/brig/control_room)
"aJJ" = (
@@ -23080,7 +23080,7 @@
/area/crew_quarters/heads/hos)
"aNk" = (
/obj/structure/table/wood,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/sec,
/obj/item/device/radio,
/obj/item/device/taperecorder,
/obj/machinery/light{
@@ -23651,7 +23651,7 @@
/area/crew_quarters/captain)
"aOo" = (
/obj/structure/table/wood,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/command,
/obj/structure/cable/green{
d1 = 2;
d2 = 4;
@@ -25557,7 +25557,7 @@
icon_state = "2-8"
},
/obj/structure/table/wood,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/wood,
/area/crew_quarters/captain)
"aRF" = (
@@ -28869,7 +28869,7 @@
eftpos_name = "HoP EFTPOS scanner"
},
/obj/item/toy/figure/corgi,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/command,
/turf/simulated/floor/wood,
/area/crew_quarters/heads/hop)
"aXq" = (
@@ -32675,7 +32675,7 @@
"bea" = (
/obj/structure/table/wood,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/structure/sign/nosmoking_2{
pixel_y = -32
},
@@ -33942,7 +33942,7 @@
},
/obj/item/stack/packageWrap,
/obj/item/device/destTagger,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/item/stack/wrapping_paper,
/obj/effect/floor_decal/corner/grey/diagonal,
/obj/item/paper_bin{
@@ -33957,7 +33957,7 @@
/area/medical/reception)
"bgk" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler{
+/obj/item/device/hand_labeler{
pixel_y = -20
},
/obj/item/screwdriver,
@@ -36466,7 +36466,7 @@
/area/crew_quarters/medbreak)
"bkt" = (
/obj/structure/table/glass,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/med,
/obj/item/device/radio{
frequency = 1487;
name = "Medbay Emergency Radio Link";
@@ -36788,7 +36788,7 @@
/obj/structure/table/standard,
/obj/effect/floor_decal/spline/plain,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled/white,
/area/assembly/chargebay)
"bkS" = (
@@ -42765,7 +42765,7 @@
/area/rnd/misc_lab)
"bxf" = (
/obj/item/tape_roll,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/light_switch{
pixel_x = 20;
pixel_y = 24
@@ -43517,7 +43517,7 @@
pixel_y = -2
},
/obj/item/paper/monitorkey,
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/sci,
/obj/item/paper_bin{
pixel_x = 1;
pixel_y = 9
@@ -44181,7 +44181,7 @@
/area/rnd/lab)
"bzS" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/item/stack/packageWrap,
/obj/item/stack/wrapping_paper,
/obj/effect/floor_decal/corner_wide/mauve{
@@ -51324,7 +51324,7 @@
},
/obj/item/device/destTagger,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled/white,
/area/crew_quarters/kitchen)
"bRg" = (
@@ -54697,7 +54697,7 @@
/obj/item/stack/packageWrap,
/obj/item/device/destTagger,
/obj/item/pen,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/item/stack/wrapping_paper,
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled,
@@ -55780,7 +55780,7 @@
/area/quartermaster/mail_room)
"cbB" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/light{
dir = 1
},
@@ -59063,7 +59063,7 @@
/obj/effect/floor_decal/corner/brown{
dir = 10
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/outpost/mining_main/refinery)
"cih" = (
diff --git a/maps/aurora/aurora-5_interstitial.dmm b/maps/aurora/aurora-5_interstitial.dmm
index 4cdd567df5d..655608f0533 100644
--- a/maps/aurora/aurora-5_interstitial.dmm
+++ b/maps/aurora/aurora-5_interstitial.dmm
@@ -2550,7 +2550,7 @@
},
/obj/structure/table/wood,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -11312,7 +11312,7 @@
/obj/machinery/newscaster{
pixel_y = -30
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/pink/full,
/turf/simulated/floor/tiled/white,
/area/maintenance/medbay_virology)
@@ -12056,7 +12056,7 @@
"TH" = (
/obj/structure/table/standard,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/paleblue/diagonal,
/turf/simulated/floor/tiled/white,
/area/security/forensics_office)
diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm
index 289df87c15a..3d5f2130863 100644
--- a/maps/aurora/aurora-6_surface.dmm
+++ b/maps/aurora/aurora-6_surface.dmm
@@ -1153,7 +1153,7 @@
pixel_y = 7
},
/obj/item/toy/figure/assistant,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/security/vacantoffice)
"aOO" = (
@@ -6878,7 +6878,7 @@
/area/hallway/secondary/entry/emergency)
"gnQ" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/requests_console{
department = "Cargo Bay";
departmentType = 2;
@@ -6888,7 +6888,7 @@
pixel_x = -3;
pixel_y = 3
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/brown{
dir = 5
},
@@ -7829,7 +7829,7 @@
pixel_x = -3;
pixel_y = 7
},
-/obj/item/device/megaphone,
+/obj/item/device/megaphone/engi,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/table/standard{
name = "plastic table frame"
@@ -26279,7 +26279,7 @@
/area/storage/shields)
"xdG" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/light,
/obj/machinery/camera/network/civilian_surface{
c_tag = "Surface - Primary Tool Storage Aft";
@@ -27510,7 +27510,7 @@
/obj/structure/table/standard{
name = "plastic table frame"
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/hallway/secondary/entry/locker)
"ykk" = (
diff --git a/maps/exodus/exodus-1_station.dmm b/maps/exodus/exodus-1_station.dmm
index 6b31c666320..d26e0c4fa76 100644
--- a/maps/exodus/exodus-1_station.dmm
+++ b/maps/exodus/exodus-1_station.dmm
@@ -2987,7 +2987,7 @@
/area/security/main)
"afG" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/blue,
/turf/simulated/floor/tiled,
/area/security/main)
@@ -4211,7 +4211,7 @@
/turf/simulated/floor/tiled/dark,
/area/security/warden)
"ahZ" = (
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/door/window/brigdoor{
dir = 4;
name = "Warden's Desk";
@@ -4744,7 +4744,7 @@
pixel_y = 4
},
/obj/item/pen,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
@@ -4763,7 +4763,7 @@
name = "Station Intercom (Security)";
pixel_x = -30
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
@@ -14256,7 +14256,7 @@
/area/crew_quarters/fitness)
"aBg" = (
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/item/reagent_containers/spray/cleaner{
desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'";
name = "Pharmacy Cleaner"
@@ -25951,7 +25951,7 @@
pixel_x = -3;
pixel_y = 7
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
@@ -31114,7 +31114,7 @@
/turf/simulated/floor/plating,
/area/bridge/meeting_room)
"bil" = (
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/item/device/assembly/timer,
/obj/item/device/eftpos{
eftpos_name = "Bridge EFTPOS scanner"
@@ -35272,7 +35272,7 @@
/area/quartermaster/loading)
"bqf" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/requests_console{
department = "Cargo Bay";
departmentType = 2;
@@ -35282,7 +35282,7 @@
pixel_x = -3;
pixel_y = 3
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/quartermaster/loading)
"bqg" = (
@@ -36983,7 +36983,7 @@
/area/rnd/lab)
"bte" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/item/pen,
/obj/item/stack/packageWrap,
/obj/item/stack/packageWrap,
@@ -38360,7 +38360,7 @@
},
/obj/machinery/recharger,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
@@ -39394,7 +39394,7 @@
"bxA" = (
/obj/structure/table/standard,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/effect/floor_decal/corner/beige{
dir = 1
@@ -57719,7 +57719,7 @@
dir = 1;
icon_state = "tube1"
},
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/lime/full{
dir = 8
},
@@ -59894,7 +59894,7 @@
"cjP" = (
/obj/structure/table/standard,
/obj/item/clothing/gloves/latex,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora)
"cjQ" = (
@@ -60073,7 +60073,7 @@
"ckl" = (
/obj/structure/table/reinforced,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled,
/area/engineering/foyer)
"ckm" = (
@@ -65338,7 +65338,7 @@
/turf/simulated/floor/tiled/white,
/area/maintenance/medbay)
"cue" = (
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/structure/reagent_dispensers/virusfood{
pixel_x = -30
},
@@ -66178,7 +66178,7 @@
/obj/item/clothing/gloves/latex,
/obj/item/device/slime_scanner,
/obj/item/device/slime_scanner,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/tiled/white,
/area/rnd/xenobiology)
"cvw" = (
@@ -76330,7 +76330,7 @@
"tRf" = (
/obj/structure/table/standard,
/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/obj/effect/floor_decal/corner/blue/full{
dir = 4
},
diff --git a/maps/exodus/exodus-2_centcomm.dmm b/maps/exodus/exodus-2_centcomm.dmm
index cbb5302767d..8faff53d92c 100644
--- a/maps/exodus/exodus-2_centcomm.dmm
+++ b/maps/exodus/exodus-2_centcomm.dmm
@@ -1711,7 +1711,7 @@
/area/centcom/evac)
"akg" = (
/obj/structure/table/standard,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/unsimulated/floor{
icon = 'icons/turf/shuttle.dmi';
icon_state = "floor"
@@ -11969,7 +11969,7 @@
pixel_y = 32
},
/obj/structure/table/reinforced,
-/obj/item/hand_labeler,
+/obj/item/device/hand_labeler,
/turf/simulated/floor/carpet,
/area/shuttle/merchant)
"aQb" = (