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