diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 3f834519516..6d041847857 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -101,17 +101,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
flags |= NOREACT // so it doesn't react until you light it
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
-/obj/item/clothing/mask/smokable/process()
- var/turf/location = get_turf(src)
- smoketime--
- if(smoketime < 1)
- die()
- if(ishuman(loc))
- var/mob/living/carbon/human/C = loc
- to_chat(C, "Your [name] goes out.")
- return
- if(location)
- location.hotspot_expose(700, 5)
+/obj/item/clothing/mask/smokable/proc/smoke(amount)
+ smoketime -= amount
if(reagents && reagents.total_volume) // check if it has any reagents at all
if(ishuman(loc))
var/mob/living/carbon/human/C = loc
@@ -120,6 +111,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else // else just remove some of the reagents
reagents.remove_any(REM)
+/obj/item/clothing/mask/smokable/process()
+ var/turf/location = get_turf(src)
+ smoke(1)
+ if(smoketime < 1)
+ die()
+ return
+ if(location)
+ location.hotspot_expose(700, 5)
+
/obj/item/clothing/mask/smokable/examine(mob/user)
..()
if(is_pipe)
@@ -214,6 +214,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
+/obj/item/clothing/mask/smokable/attack(mob/living/carbon/human/H, mob/user, def_zone)
+ if(lit && H == user && istype(H))
+ var/obj/item/blocked = H.check_mouth_coverage()
+ if(blocked)
+ to_chat(H, "\The [blocked] is in the way!")
+ return 1
+ to_chat(H, "You take a drag on your [name].")
+ smoke(5)
+ return 1
+ return ..()
+
/obj/item/clothing/mask/smokable/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if(isflamesource(W))