diff --git a/baystation12.dme b/baystation12.dme index 0afd6cbf197..be40b2ce31f 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1016,7 +1016,9 @@ #include "code\modules\mob\simple_animal\corgi.dm" #include "code\modules\mob\simple_animal\crab.dm" #include "code\modules\mob\simple_animal\life.dm" +#include "code\modules\mob\simple_animal\parrot.dm" #include "code\modules\mob\simple_animal\shade.dm" +#include "code\modules\mob\simple_animal\worm.dm" #include "code\modules\power\apc.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cell.dm" diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 4321dcef1f7..8dba0005f8e 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -231,7 +231,98 @@ ZIPPO icon_state = "cigarbutt" +///////////////// +//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 << "\blue 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 c7e5f444601..b80abcc2e8f 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 +Craftables (Cob pipes, potato batteries, pumpkinheads) */ @@ -135,3 +136,32 @@ Deathnettle else usr << "All the leaves have fallen off the deathnettle from violent whacking." del(src) + +//Crafting + +/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 (user.loc) + del(src) + return + +/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/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/kitchen/utensil/knife) || istype(W, /obj/item/weapon/melee/energy)) + user.show_message("You carve a face into [src]!", 1) + new /obj/item/clothing/head/helmet/hardhat/pumpkinhead (user.loc) + del(src) + return + +/obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W, /obj/item/weapon/cable_coil)) + if(W:amount >= 5) + W:amount -= 5 + if(!W:amount) del(W) + user << "You add some cable to the potato and slide it inside the battery encasing." + new /obj/item/weapon/cell/potato(user.loc) + del(src) + return \ No newline at end of file diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index c0f955315f6..374d4dded77 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/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 50aec47e713..d778b8f40f5 100644 --- a/code/modules/food/food.dm +++ b/code/modules/food/food.dm @@ -1719,6 +1719,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 64f43fa2434..b6af2806eb4 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -996,6 +996,16 @@ ) 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 + + ////////////////////////////////////////// // bs12 food port stuff ////////////////////////////////////////// diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index a9145c63541..4a3ed7a90ae 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ