diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm
index 763d9bd1c5c..bf0f3d533de 100644
--- a/code/defines/obj/hydro.dm
+++ b/code/defines/obj/hydro.dm
@@ -991,11 +991,19 @@
desc = "Needs some butter!"
icon_state = "corn"
potency = 40
+ On_Consume()
+ if(!reagents.total_volume)
+ var/mob/M = usr
+ var/obj/item/weapon/corncob/W = new /obj/item/weapon/corncob( M )
+ M << "You chew on the corn, leaving nothing behind but a cob."
+ M.put_in_hand(W)
+ W.add_fingerprint(M)
New()
..()
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
bitesize = 1+round(reagents.total_volume / 2, 1)
+
/obj/item/weapon/reagent_containers/food/snacks/grown/poppy
seed = "/obj/item/seeds/poppyseed"
name = "poppy"
@@ -1207,6 +1215,15 @@
reagents.add_reagent("nutriment", 1+round((potency / 5), 1))
bitesize = 1+round(reagents.total_volume / 2, 1)
+ attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/fireaxe) || istype(W, /obj/item/weapon/fireaxe) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/melee/energy))
+ user.show_message("You carve a face into the [src]!", 1)
+ new /obj/item/clothing/head/helmet/hardhat/pumpkinhead (src.loc)
+ del(src)
+ return
+
+
+
/obj/item/weapon/reagent_containers/food/snacks/grown/lime
seed = "/obj/item/seeds/limeseed"
name = "lime"
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 40a925c4c1b..464c600ebf4 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -277,6 +277,17 @@
throw_speed = 4
throw_range = 20
+/obj/item/weapon/corncob
+ name = "corn cob"
+ desc = "A reminder of meals gone by."
+ icon = 'harvest.dmi'
+ icon_state = "corncob"
+ item_state = "corncob"
+ w_class = 1.0
+ throwforce = 0
+ throw_speed = 4
+ throw_range = 20
+
/obj/item/weapon/soap
name = "soap"
desc = "A cheap bar of soap. Doesn't smell."
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 2e751f63310..d967115d7c9 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -3,6 +3,8 @@ CONTAINS:
MATCHES
MATCHBOXES
CIGARETTES
+CIGARS
+SMOKING PIPES
CIG PACKET
ZIPPO
*/
@@ -222,6 +224,99 @@ ZIPPO
else
user << "\red The [src] straight out REFUSES to be lit by such uncivilized means."
+/////////////////
+//SMOKING PIPES//
+/////////////////
+
+/obj/item/clothing/mask/pipe
+ name = "smoking pipe"
+ desc = "A pipe, for smoking. Probably made of meershaum or something."
+ icon_state = "cobpipeoff"
+ throw_speed = 0.5
+ item_state = "cobpipeoff"
+ w_class = 1
+ body_parts_covered = null
+ var
+ lit = 0
+ icon_on = "cobpipeon" //Note - these are in masks.dmi
+ icon_off = "cobpipeoff"
+ lastHolder = null
+ smoketime = 100
+ maxsmoketime = 100 //make sure this is equal to your smoketime
+ proc
+ light(var/flavor_text = "[usr] lights the [name].")
+
+ attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
+ if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
+ light("\red [user] casually lights the [name] with [W], what a badass.")
+
+ else if(istype(W, /obj/item/weapon/lighter/zippo) && (W:lit > 0))
+ light("\red With a single flick of their wrist, [user] smoothly lights their [name] with their [W]. Damn they're cool.")
+
+ else if(istype(W, /obj/item/weapon/lighter) && (W:lit > 0))
+ light("\red After some fiddling, [user] manages to light their [name] with [W].")
+
+ else if(istype(W, /obj/item/weapon/match) && (W:lit > 0))
+ light("\red [user] lights \his [name] with \his [W].")
+ return
+
+ light(var/flavor_text = "[usr] lights the [name].")
+ if(!src.lit)
+ src.lit = 1
+ src.damtype = "fire"
+ src.icon_state = icon_on
+ src.item_state = icon_on
+ for(var/mob/O in viewers(usr, null))
+ O.show_message(flavor_text, 1)
+ processing_objects.Add(src)
+
+ process()
+ var/turf/location = get_turf(src)
+ src.smoketime--
+ if(src.smoketime < 1)
+ new /obj/effect/decal/ash(location)
+ if(ismob(src.loc))
+ var/mob/living/M = src.loc
+ M << "\red Your [src.name] goes out, and you empty the ash."
+ src.lit = 0
+ src.icon_state = icon_off
+ src.item_state = icon_off
+ processing_objects.Remove(src)
+ return
+ if(location)
+ location.hotspot_expose(700, 5)
+ return
+
+ dropped(mob/user as mob)
+ if(src.lit == 1)
+ for(var/mob/O in viewers(user, null))
+ O.show_message(text("\red [] puts out the [].", user,src.name), 1)
+ src.lit = 0
+ src.icon_state = icon_off
+ src.item_state = icon_off
+ processing_objects.Remove(src)
+ return ..()
+
+/obj/item/clothing/mask/pipe/attack_self(mob/user as mob) //Refills the pipe. Can be changed to an attackby later, if loose tobacco is added to vendors or something.
+ if(src.smoketime <= 0)
+ user << "\red You refill the pipe with tobacco."
+ smoketime = maxsmoketime
+ return
+
+/obj/item/clothing/mask/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/match))
+ ..()
+ else
+ user << "\red The [src] straight out REFUSES to be lit by such means."
+
+
+/obj/item/clothing/mask/pipe/cobpipe
+ name = "corn cob pipe"
+ desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters."
+ smoketime = 400
+ maxsmoketime = 400
+
////////////
//CIG PACK//
////////////
diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm
index 19330e131f5..55dea91f27e 100644
--- a/code/game/objects/items/weapons/hydroponics.dm
+++ b/code/game/objects/items/weapons/hydroponics.dm
@@ -4,6 +4,7 @@ CONTAINS:
Plant-B-Gone
Nettle
Deathnettle
+Corn Cob
*/
@@ -133,3 +134,10 @@ Deathnettle
else
usr << "All the leaves have fallen off the deathnettle from violent whacking."
del(src)
+
+/obj/item/weapon/corncob/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife))
+ user << "You use [W] to fashion a pipe out of the corn cob!"
+ new /obj/item/clothing/mask/pipe/cobpipe (src.loc)
+ del(src)
+ return ..()
\ No newline at end of file
diff --git a/code/modules/clothing/hardhat.dm b/code/modules/clothing/hardhat.dm
index daad057b527..c43dd598204 100644
--- a/code/modules/clothing/hardhat.dm
+++ b/code/modules/clothing/hardhat.dm
@@ -28,4 +28,16 @@
/obj/item/clothing/head/helmet/hardhat/dblue
icon_state = "hardhat0_dblue"
item_state = "hardhat0_dblue"
- color = "dblue"
\ No newline at end of file
+ color = "dblue"
+
+/obj/item/clothing/head/helmet/hardhat/pumpkinhead
+ name = "carved pumpkin"
+ desc = "A jack o' lantern! Believed to ward off evil spirits."
+ icon_state = "hardhat0_pumpkin"
+ item_state = "hardhat0_pumpkin"
+ flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR
+ brightness_on = 3
+ see_face = 0.0
+ color = "pumpkin"
+ armor = list(melee = 5, bullet = 0, laser = 5,energy = 5, bomb = 5, bio = 0, rad = 0)
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
\ No newline at end of file
diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm
index 57c2fc8ed91..a972494515e 100644
--- a/code/modules/food/food.dm
+++ b/code/modules/food/food.dm
@@ -1671,6 +1671,21 @@
icon_state = "applecakeslice"
bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
+ name = "Pumpkin Pie"
+ desc = "A delicious treat for the autumn months."
+ icon_state = "pumpkinpie"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
+ slices_num = 5
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 29)
+
+/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
+ name = "Pumpkin Pie slice"
+ desc = "A slice of pumpkin pie, with whipped cream on top. Perfection."
+ icon_state = "pumpkinpieslice"
+ bitesize = 2
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index 26cfc1dbe6a..e7e2003a30f 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -1086,4 +1086,13 @@
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
- result = /obj/item/weapon/reagent_containers/food/snacks/mysterysoup
\ No newline at end of file
+ result = /obj/item/weapon/reagent_containers/food/snacks/mysterysoup
+
+/datum/recipe/pumpkinpie
+ reagents = list("milk" = 5, "sugar" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin,
+ /obj/item/weapon/reagent_containers/food/snacks/flour,
+ /obj/item/weapon/reagent_containers/food/snacks/egg,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
\ No newline at end of file
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 8748835e36a..e9ad801972c 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi
index 529d770dfc8..db52f38af3f 100644
Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ
diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi
index 2e6a8332beb..4e3eb35386a 100644
Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 441e5ec2266..48796ae8881 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi
index 068f6ded594..c8441e86eb0 100644
Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index 03a5cdf61da..ffa40931d81 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ
diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi
index 5734f2cd805..de2df7d661a 100644
Binary files a/icons/obj/harvest.dmi and b/icons/obj/harvest.dmi differ