diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 230226e315b..633bda44fd6 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -122,21 +122,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
- var/lighting_text = "[user] lights their [name] with [W]."
- if(istype(W, /obj/item/weapon/weldingtool))
- lighting_text = "[user] casually lights the [name] with [W], what a badass."
- else if(istype(W, /obj/item/weapon/lighter/zippo))
- lighting_text = "With a single flick of their wrist, [user] smoothly lights their [name] with [W]. Damn they're cool."
- else if(istype(W, /obj/item/weapon/lighter))
- lighting_text = "After some fiddling, [user] manages to light their [name] with [W]."
- else if(istype(W, /obj/item/weapon/melee/energy))
- lighting_text = "[user] swings their [W], barely missing their nose. They light their [name] in the process."
- else if(istype(W, /obj/item/device/assembly/igniter))
- lighting_text = "[user] fiddles with [W], and manages to light their [name]."
- else if(istype(W, /obj/item/device/flashlight/flare))
- lighting_text = "[user] lights their [name] with [W] like a real badass."
- if(is_hot(W))
- light(lighting_text)
+ if(!lit && smoketime > 0)
+ var/lighting_text = is_lighter(W,user)
+ if(lighting_text)
+ light(lighting_text)
+ return
return
/obj/item/clothing/mask/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user as mob, proximity)
@@ -151,6 +141,23 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else
user << "[src] is full."
+/obj/item/clothing/mask/cigarette/proc/is_lighter(obj/O, mob/user)
+ var/lighting_text = null
+ if(istype(O, /obj/item/weapon/weldingtool))
+ lighting_text = "[user] casually lights the [name] with [O], what a badass."
+ else if(istype(O, /obj/item/weapon/lighter/zippo))
+ lighting_text = "With a single flick of their wrist, [user] smoothly lights their [name] with [O]. Damn they're cool."
+ else if(istype(O, /obj/item/weapon/lighter))
+ lighting_text = "After some fiddling, [user] manages to light their [name] with [O]."
+ else if(istype(O, /obj/item/weapon/melee/energy))
+ lighting_text = "[user] swings their [O], barely missing their nose. They light their [name] in the process."
+ else if(istype(O, /obj/item/device/assembly/igniter))
+ lighting_text = "[user] fiddles with [O], and manages to light their [name]."
+ else if(istype(O, /obj/item/device/flashlight/flare))
+ lighting_text = "[user] lights their [name] with [O] like a real badass."
+ else if(is_hot(O))
+ lighting_text = "[user] lights their [name] with [O]."
+ return lighting_text
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = null)
if(!src.lit)
@@ -385,7 +392,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else
user << "It is already packed!"
else
- user << "You can't put that in the pipe!"
+ var/lighting_text = is_lighter(O,user)
+ if(lighting_text)
+ if(smoketime > 0)
+ light(lighting_text)
+ else
+ user << "There is nothing to smoke!"
+ else
+ user << "You can't put that in the pipe!"
..()
diff --git a/html/changelogs/xxalpha-ash.yml b/html/changelogs/xxalpha-ash.yml
new file mode 100644
index 00000000000..35be80147ed
--- /dev/null
+++ b/html/changelogs/xxalpha-ash.yml
@@ -0,0 +1,7 @@
+author: xxalpha
+
+delete-after: True
+
+changes:
+ - bugfix: "Fixed smoking pipe messages. Fixed emptying a smoking pipe with nothing in it."
+