@@ -0,0 +1,165 @@
|
||||
// Banana
|
||||
/obj/item/seeds/banana
|
||||
name = "pack of banana seeds"
|
||||
desc = "They're seeds that grow into banana trees. When grown, keep away from clown."
|
||||
icon_state = "seed-banana"
|
||||
species = "banana"
|
||||
plantname = "Banana Tree"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/banana
|
||||
lifespan = 50
|
||||
endurance = 30
|
||||
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
|
||||
icon_dead = "banana-dead"
|
||||
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest)
|
||||
mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace, /obj/item/seeds/banana/exotic_banana)
|
||||
reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana
|
||||
seed = /obj/item/seeds/banana
|
||||
name = "banana"
|
||||
desc = "It's an excellent prop for a clown."
|
||||
icon_state = "banana"
|
||||
item_state = "banana"
|
||||
trash = /obj/item/grown/bananapeel
|
||||
filling_color = "#FFFF00"
|
||||
bitesize = 5
|
||||
foodtype = FRUIT
|
||||
juice_results = list("banana" = 0)
|
||||
distill_reagent = "bananahonk"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1)
|
||||
sleep(25)
|
||||
if(!user)
|
||||
return (OXYLOSS)
|
||||
user.say("BANG!", forced = "banana")
|
||||
sleep(25)
|
||||
if(!user)
|
||||
return (OXYLOSS)
|
||||
user.visible_message("<B>[user]</B> laughs so hard they begin to suffocate!")
|
||||
return (OXYLOSS)
|
||||
|
||||
//Banana Peel
|
||||
/obj/item/grown/bananapeel
|
||||
seed = /obj/item/seeds/banana
|
||||
name = "banana peel"
|
||||
desc = "A peel from a banana."
|
||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||
icon_state = "banana_peel"
|
||||
item_state = "banana_peel"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
|
||||
/obj/item/grown/bananapeel/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is deliberately slipping on [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
// Mimana - invisible sprites are totally a feature!
|
||||
/obj/item/seeds/banana/mime
|
||||
name = "pack of mimana seeds"
|
||||
desc = "They're seeds that grow into mimana trees. When grown, keep away from mime."
|
||||
icon_state = "seed-mimana"
|
||||
species = "mimana"
|
||||
plantname = "Mimana Tree"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/banana/mime
|
||||
growthstages = 4
|
||||
mutatelist = list()
|
||||
reagents_add = list("nothing" = 0.1, "mutetoxin" = 0.1, "nutriment" = 0.02)
|
||||
rarity = 15
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana/mime
|
||||
seed = /obj/item/seeds/banana/mime
|
||||
name = "mimana"
|
||||
desc = "It's an excellent prop for a mime."
|
||||
icon_state = "mimana"
|
||||
trash = /obj/item/grown/bananapeel/mimanapeel
|
||||
filling_color = "#FFFFEE"
|
||||
distill_reagent = "silencer"
|
||||
|
||||
/obj/item/grown/bananapeel/mimanapeel
|
||||
seed = /obj/item/seeds/banana/mime
|
||||
name = "mimana peel"
|
||||
desc = "A mimana peel."
|
||||
icon_state = "mimana_peel"
|
||||
item_state = "mimana_peel"
|
||||
|
||||
// Bluespace Banana
|
||||
/obj/item/seeds/banana/bluespace
|
||||
name = "pack of bluespace banana seeds"
|
||||
desc = "They're seeds that grow into bluespace banana trees. When grown, keep away from bluespace clown."
|
||||
icon_state = "seed-banana-blue"
|
||||
species = "bluespacebanana"
|
||||
icon_grow = "banana-grow"
|
||||
plantname = "Bluespace Banana Tree"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/banana/bluespace
|
||||
mutatelist = list()
|
||||
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest)
|
||||
reagents_add = list("bluespace" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02)
|
||||
rarity = 30
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana/bluespace
|
||||
seed = /obj/item/seeds/banana/bluespace
|
||||
name = "bluespace banana"
|
||||
icon_state = "banana_blue"
|
||||
item_state = "bluespace_peel"
|
||||
trash = /obj/item/grown/bananapeel/bluespace
|
||||
filling_color = "#0000FF"
|
||||
tastes = list("banana" = 1)
|
||||
wine_power = 60
|
||||
wine_flavor = "slippery hypercubes"
|
||||
|
||||
/obj/item/grown/bananapeel/bluespace
|
||||
seed = /obj/item/seeds/banana/bluespace
|
||||
name = "bluespace banana peel"
|
||||
desc = "A peel from a bluespace banana."
|
||||
icon_state = "banana_peel_blue"
|
||||
|
||||
//Banana Spider.
|
||||
/obj/item/seeds/banana/exotic_banana
|
||||
name = "pack of exotic banana seeds"
|
||||
desc = "They're seeds that grow into banana trees. However, those bananas might be alive."
|
||||
icon_state = "seed_exoticbanana"
|
||||
species = "exoticbanana"
|
||||
icon_grow = "banana-grow"
|
||||
plantname = "Exotic Banana Tree"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/banana/banana_spider_spawnable
|
||||
mutatelist = list()
|
||||
genes = list(/datum/plant_gene/trait/slip)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana/banana_spider_spawnable
|
||||
seed = /obj/item/seeds/banana/exotic_banana
|
||||
name = "banana spider"
|
||||
desc = "You do not know what it is, but you can bet the clown would love it."
|
||||
icon_state = "exoticbanana"
|
||||
list_reagents = list("nutriment" = 3, "vitamin" = 2)
|
||||
foodtype = GROSS | MEAT | RAW | FRUIT
|
||||
grind_results = list("blood" = 20, "liquidgibs" = 5)
|
||||
var/awakening = 0
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana/banana_spider_spawnable/attack_self(mob/user)
|
||||
if(awakening || isspaceturf(user.loc))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You decide to wake up the banana spider...</span>")
|
||||
awakening = 1
|
||||
|
||||
spawn(30)
|
||||
if(!QDELETED(src))
|
||||
var/mob/living/simple_animal/banana_spider/S = new /mob/living/simple_animal/banana_spider(get_turf(src.loc))
|
||||
S.speed += round(10 / seed.potency)
|
||||
S.visible_message("<span class='notice'>The banana spider chitters as it stretches its legs.</span>")
|
||||
qdel(src)
|
||||
|
||||
// Other
|
||||
/obj/item/grown/bananapeel/specialpeel //used by /obj/item/clothing/shoes/clown_shoes/banana_shoes
|
||||
name = "synthesized banana peel"
|
||||
desc = "A synthetic banana peel."
|
||||
|
||||
/obj/item/grown/bananapeel/specialpeel/Initialize(AM)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/slippery, 40)
|
||||
@@ -0,0 +1,86 @@
|
||||
// Corn
|
||||
/obj/item/seeds/corn
|
||||
name = "pack of corn seeds"
|
||||
desc = "I don't mean to sound corny..."
|
||||
icon_state = "seed-corn"
|
||||
species = "corn"
|
||||
plantname = "Corn Stalks"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/corn
|
||||
maturation = 8
|
||||
potency = 20
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
|
||||
icon_grow = "corn-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "corn-dead" // Same for the dead icon
|
||||
mutatelist = list(/obj/item/seeds/corn/snapcorn)
|
||||
reagents_add = list("cornoil" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/corn
|
||||
seed = /obj/item/seeds/corn
|
||||
name = "ear of corn"
|
||||
desc = "Needs some butter!"
|
||||
icon_state = "corn"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/popcorn
|
||||
filling_color = "#FFFF00"
|
||||
trash = /obj/item/grown/corncob
|
||||
bitesize_mod = 2
|
||||
foodtype = VEGETABLES
|
||||
juice_results = list("corn_starch" = 0)
|
||||
tastes = list("corn" = 1)
|
||||
distill_reagent = "whiskey"
|
||||
|
||||
/obj/item/grown/corncob
|
||||
name = "corn cob"
|
||||
desc = "A reminder of meals gone by."
|
||||
icon_state = "corncob"
|
||||
item_state = "corncob"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
|
||||
/obj/item/grown/corncob/attackby(obj/item/grown/W, mob/user, params)
|
||||
if(W.get_sharpness())
|
||||
to_chat(user, "<span class='notice'>You use [W] to fashion a pipe out of the corn cob!</span>")
|
||||
new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc)
|
||||
qdel(src)
|
||||
else
|
||||
return ..()
|
||||
|
||||
// Snapcorn
|
||||
/obj/item/seeds/corn/snapcorn
|
||||
name = "pack of snapcorn seeds"
|
||||
desc = "Oh snap!"
|
||||
icon_state = "seed-snapcorn"
|
||||
species = "snapcorn"
|
||||
plantname = "Snapcorn Stalks"
|
||||
product = /obj/item/grown/snapcorn
|
||||
mutatelist = list()
|
||||
rarity = 10
|
||||
|
||||
/obj/item/grown/snapcorn
|
||||
seed = /obj/item/seeds/corn/snapcorn
|
||||
name = "snap corn"
|
||||
desc = "A cob with snap pops."
|
||||
icon_state = "snapcorn"
|
||||
item_state = "corncob"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
var/snap_pops = 1
|
||||
|
||||
/obj/item/grown/snapcorn/add_juice()
|
||||
..()
|
||||
snap_pops = max(round(seed.potency/8), 1)
|
||||
|
||||
/obj/item/grown/snapcorn/attack_self(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>You pick a snap pop from the cob.</span>")
|
||||
var/obj/item/toy/snappop/S = new /obj/item/toy/snappop(user.loc)
|
||||
if(ishuman(user))
|
||||
user.put_in_hands(S)
|
||||
snap_pops -= 1
|
||||
if(!snap_pops)
|
||||
new /obj/item/grown/corncob(user.loc)
|
||||
qdel(src)
|
||||
@@ -76,4 +76,4 @@
|
||||
throw_range = 3
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
|
||||
cotton_type = /obj/item/stack/sheet/cotton/durathread
|
||||
cotton_name = "raw durathread"
|
||||
cotton_name = "raw durathread"
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
// Watermelon
|
||||
/obj/item/seeds/watermelon
|
||||
name = "pack of watermelon seeds"
|
||||
desc = "These seeds grow into watermelon plants."
|
||||
icon_state = "seed-watermelon"
|
||||
species = "watermelon"
|
||||
plantname = "Watermelon Vines"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/watermelon
|
||||
lifespan = 50
|
||||
endurance = 40
|
||||
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
|
||||
icon_dead = "watermelon-dead"
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest)
|
||||
mutatelist = list(/obj/item/seeds/watermelon/holy)
|
||||
reagents_add = list("water" = 0.2, "vitamin" = 0.04, "nutriment" = 0.2)
|
||||
|
||||
/obj/item/seeds/watermelon/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is swallowing [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.gib()
|
||||
new product(drop_location())
|
||||
qdel(src)
|
||||
return MANUAL_SUICIDE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/watermelon
|
||||
seed = /obj/item/seeds/watermelon
|
||||
name = "watermelon"
|
||||
desc = "It's full of watery goodness."
|
||||
icon_state = "watermelon"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/watermelonslice
|
||||
slices_num = 5
|
||||
dried_type = null
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
filling_color = "#008000"
|
||||
bitesize_mod = 3
|
||||
foodtype = FRUIT
|
||||
juice_results = list("watermelonjuice" = 0)
|
||||
wine_power = 40
|
||||
|
||||
// Holymelon
|
||||
/obj/item/seeds/watermelon/holy
|
||||
name = "pack of holymelon seeds"
|
||||
desc = "These seeds grow into holymelon plants."
|
||||
icon_state = "seed-holymelon"
|
||||
species = "holymelon"
|
||||
plantname = "Holy Melon Vines"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/holymelon
|
||||
mutatelist = list()
|
||||
reagents_add = list("holywater" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
|
||||
rarity = 20
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/holymelon
|
||||
seed = /obj/item/seeds/watermelon/holy
|
||||
name = "holymelon"
|
||||
desc = "The water within this melon has been blessed by some deity that's particularly fond of watermelon."
|
||||
icon_state = "holymelon"
|
||||
filling_color = "#FFD700"
|
||||
dried_type = null
|
||||
wine_power = 70 //Water to wine, baby.
|
||||
wine_flavor = "divinity"
|
||||
|
||||
/*
|
||||
/obj/item/reagent_containers/food/snacks/grown/holymelon/Initialize()
|
||||
. = ..()
|
||||
var/uses = 1
|
||||
if(seed)
|
||||
uses = round(seed.potency / 20)
|
||||
AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_HANDS, uses, TRUE, CALLBACK(src, .proc/block_magic), CALLBACK(src, .proc/expire)) //deliver us from evil o melon god
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/holymelon/proc/block_magic(mob/user, major)
|
||||
if(major)
|
||||
to_chat(user, "<span class='warning'>[src] hums slightly, and seems to decay a bit.</span>")
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/holymelon/proc/expire(mob/user)
|
||||
to_chat(user, "<span class='warning'>[src] rapidly turns into ash!</span>")
|
||||
qdel(src)
|
||||
new /obj/effect/decal/cleanable/ash(drop_location())
|
||||
*/
|
||||
@@ -0,0 +1,67 @@
|
||||
// Potato
|
||||
/obj/item/seeds/potato
|
||||
name = "pack of potato seeds"
|
||||
desc = "Boil 'em! Mash 'em! Stick 'em in a stew!"
|
||||
icon_state = "seed-potato"
|
||||
species = "potato"
|
||||
plantname = "Potato Plants"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/potato
|
||||
lifespan = 30
|
||||
maturation = 10
|
||||
production = 1
|
||||
yield = 4
|
||||
growthstages = 4
|
||||
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
|
||||
icon_grow = "potato-grow"
|
||||
icon_dead = "potato-dead"
|
||||
genes = list(/datum/plant_gene/trait/battery)
|
||||
mutatelist = list(/obj/item/seeds/potato/sweet)
|
||||
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato
|
||||
seed = /obj/item/seeds/potato
|
||||
name = "potato"
|
||||
desc = "Boil 'em! Mash 'em! Stick 'em in a stew!"
|
||||
icon_state = "potato"
|
||||
filling_color = "#E9967A"
|
||||
bitesize = 100
|
||||
foodtype = VEGETABLES
|
||||
juice_results = list("potato" = 0)
|
||||
distill_reagent = "vodka"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato/wedges
|
||||
name = "potato wedges"
|
||||
desc = "Slices of neatly cut potato."
|
||||
icon_state = "potato_wedges"
|
||||
filling_color = "#E9967A"
|
||||
bitesize = 100
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato/attackby(obj/item/W, mob/user, params)
|
||||
if(W.get_sharpness())
|
||||
to_chat(user, "<span class='notice'>You cut the potato into wedges with [W].</span>")
|
||||
var/obj/item/reagent_containers/food/snacks/grown/potato/wedges/Wedges = new /obj/item/reagent_containers/food/snacks/grown/potato/wedges
|
||||
remove_item_from_storage(user)
|
||||
qdel(src)
|
||||
user.put_in_hands(Wedges)
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
// Sweet Potato
|
||||
/obj/item/seeds/potato/sweet
|
||||
name = "pack of sweet potato seeds"
|
||||
desc = "These seeds grow into sweet potato plants."
|
||||
icon_state = "seed-sweetpotato"
|
||||
species = "sweetpotato"
|
||||
plantname = "Sweet Potato Plants"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/potato/sweet
|
||||
mutatelist = list()
|
||||
reagents_add = list("vitamin" = 0.1, "sugar" = 0.1, "nutriment" = 0.1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato/sweet
|
||||
seed = /obj/item/seeds/potato/sweet
|
||||
name = "sweet potato"
|
||||
desc = "It's sweet."
|
||||
icon_state = "sweetpotato"
|
||||
distill_reagent = "sbiten"
|
||||
@@ -0,0 +1,60 @@
|
||||
// Pumpkin
|
||||
/obj/item/seeds/pumpkin
|
||||
name = "pack of pumpkin seeds"
|
||||
desc = "These seeds grow into pumpkin vines."
|
||||
icon_state = "seed-pumpkin"
|
||||
species = "pumpkin"
|
||||
plantname = "Pumpkin Vines"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/pumpkin
|
||||
lifespan = 50
|
||||
endurance = 40
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
|
||||
icon_grow = "pumpkin-grow"
|
||||
icon_dead = "pumpkin-dead"
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest)
|
||||
mutatelist = list(/obj/item/seeds/pumpkin/blumpkin)
|
||||
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin
|
||||
seed = /obj/item/seeds/pumpkin
|
||||
name = "pumpkin"
|
||||
desc = "It's large and scary."
|
||||
icon_state = "pumpkin"
|
||||
filling_color = "#FFA500"
|
||||
bitesize_mod = 2
|
||||
foodtype = FRUIT
|
||||
juice_results = list("pumpkinjuice" = 0)
|
||||
wine_power = 20
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(W.get_sharpness())
|
||||
user.show_message("<span class='notice'>You carve a face into [src]!</span>", 1)
|
||||
new /obj/item/clothing/head/hardhat/pumpkinhead(user.loc)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
// Blumpkin
|
||||
/obj/item/seeds/pumpkin/blumpkin
|
||||
name = "pack of blumpkin seeds"
|
||||
desc = "These seeds grow into blumpkin vines."
|
||||
icon_state = "seed-blumpkin"
|
||||
species = "blumpkin"
|
||||
plantname = "Blumpkin Vines"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/blumpkin
|
||||
mutatelist = list()
|
||||
reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "nutriment" = 0.2)
|
||||
rarity = 20
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/blumpkin
|
||||
seed = /obj/item/seeds/pumpkin/blumpkin
|
||||
name = "blumpkin"
|
||||
desc = "The pumpkin's toxic sibling."
|
||||
icon_state = "blumpkin"
|
||||
filling_color = "#87CEFA"
|
||||
bitesize_mod = 2
|
||||
foodtype = FRUIT
|
||||
juice_results = list("blumpkinjuice" = 0)
|
||||
wine_power = 50
|
||||
@@ -0,0 +1,110 @@
|
||||
// Carrot
|
||||
/obj/item/seeds/carrot
|
||||
name = "pack of carrot seeds"
|
||||
desc = "These seeds grow into carrots."
|
||||
icon_state = "seed-carrot"
|
||||
species = "carrot"
|
||||
plantname = "Carrots"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/carrot
|
||||
maturation = 10
|
||||
production = 1
|
||||
yield = 5
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
|
||||
mutatelist = list(/obj/item/seeds/carrot/parsnip)
|
||||
reagents_add = list("oculine" = 0.25, "vitamin" = 0.04, "nutriment" = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/carrot
|
||||
seed = /obj/item/seeds/carrot
|
||||
name = "carrot"
|
||||
desc = "It's good for the eyes!"
|
||||
icon_state = "carrot"
|
||||
filling_color = "#FFA500"
|
||||
bitesize_mod = 2
|
||||
foodtype = VEGETABLES
|
||||
juice_results = list("carrotjuice" = 0)
|
||||
wine_power = 30
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params)
|
||||
if(I.get_sharpness())
|
||||
to_chat(user, "<span class='notice'>You sharpen the carrot into a shiv with [I].</span>")
|
||||
var/obj/item/kitchen/knife/carrotshiv/Shiv = new /obj/item/kitchen/knife/carrotshiv
|
||||
remove_item_from_storage(user)
|
||||
qdel(src)
|
||||
user.put_in_hands(Shiv)
|
||||
else
|
||||
return ..()
|
||||
|
||||
// Parsnip
|
||||
/obj/item/seeds/carrot/parsnip
|
||||
name = "pack of parsnip seeds"
|
||||
desc = "These seeds grow into parsnips."
|
||||
icon_state = "seed-parsnip"
|
||||
species = "parsnip"
|
||||
plantname = "Parsnip"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/parsnip
|
||||
icon_dead = "carrot-dead"
|
||||
mutatelist = list()
|
||||
reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/parsnip
|
||||
seed = /obj/item/seeds/carrot/parsnip
|
||||
name = "parsnip"
|
||||
desc = "Closely related to carrots."
|
||||
icon_state = "parsnip"
|
||||
bitesize_mod = 2
|
||||
foodtype = VEGETABLES
|
||||
juice_results = list("parsnipjuice" = 0)
|
||||
wine_power = 35
|
||||
|
||||
|
||||
// White-Beet
|
||||
/obj/item/seeds/whitebeet
|
||||
name = "pack of white-beet seeds"
|
||||
desc = "These seeds grow into sugary beet producing plants."
|
||||
icon_state = "seed-whitebeet"
|
||||
species = "whitebeet"
|
||||
plantname = "White-Beet Plants"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/whitebeet
|
||||
lifespan = 60
|
||||
endurance = 50
|
||||
yield = 6
|
||||
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
|
||||
icon_dead = "whitebeet-dead"
|
||||
mutatelist = list(/obj/item/seeds/redbeet)
|
||||
reagents_add = list("vitamin" = 0.04, "sugar" = 0.2, "nutriment" = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/whitebeet
|
||||
seed = /obj/item/seeds/whitebeet
|
||||
name = "white-beet"
|
||||
desc = "You can't beat white-beet."
|
||||
icon_state = "whitebeet"
|
||||
filling_color = "#F4A460"
|
||||
bitesize_mod = 2
|
||||
foodtype = VEGETABLES
|
||||
wine_power = 40
|
||||
|
||||
// Red Beet
|
||||
/obj/item/seeds/redbeet
|
||||
name = "pack of redbeet seeds"
|
||||
desc = "These seeds grow into red beet producing plants."
|
||||
icon_state = "seed-redbeet"
|
||||
species = "redbeet"
|
||||
plantname = "Red-Beet Plants"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/redbeet
|
||||
lifespan = 60
|
||||
endurance = 50
|
||||
yield = 6
|
||||
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
|
||||
icon_dead = "whitebeet-dead"
|
||||
genes = list(/datum/plant_gene/trait/maxchem)
|
||||
reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/redbeet
|
||||
seed = /obj/item/seeds/redbeet
|
||||
name = "red beet"
|
||||
desc = "You can't beat red beet."
|
||||
icon_state = "redbeet"
|
||||
bitesize_mod = 2
|
||||
foodtype = VEGETABLES
|
||||
wine_power = 60
|
||||
@@ -0,0 +1,112 @@
|
||||
// Tea
|
||||
/obj/item/seeds/tea
|
||||
name = "pack of tea aspera seeds"
|
||||
desc = "These seeds grow into tea plants."
|
||||
icon_state = "seed-teaaspera"
|
||||
species = "teaaspera"
|
||||
plantname = "Tea Aspera Plant"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/tea
|
||||
lifespan = 20
|
||||
maturation = 5
|
||||
production = 5
|
||||
yield = 5
|
||||
growthstages = 5
|
||||
icon_dead = "tea-dead"
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest)
|
||||
mutatelist = list(/obj/item/seeds/tea/astra)
|
||||
reagents_add = list("teapowder" = 0.1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea
|
||||
seed = /obj/item/seeds/tea
|
||||
name = "Tea Aspera tips"
|
||||
desc = "These aromatic tips of the tea plant can be dried to make tea."
|
||||
icon_state = "tea_aspera_leaves"
|
||||
filling_color = "#008000"
|
||||
grind_results = list("teapowder" = 0)
|
||||
dry_grind = TRUE
|
||||
can_distill = FALSE
|
||||
|
||||
// Tea Astra
|
||||
/obj/item/seeds/tea/astra
|
||||
name = "pack of tea astra seeds"
|
||||
icon_state = "seed-teaastra"
|
||||
species = "teaastra"
|
||||
plantname = "Tea Astra Plant"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/tea/astra
|
||||
mutatelist = list(/obj/item/seeds/tea/catnip)
|
||||
reagents_add = list("synaptizine" = 0.1, "vitamin" = 0.04, "teapowder" = 0.1)
|
||||
rarity = 20
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea/astra
|
||||
seed = /obj/item/seeds/tea/astra
|
||||
name = "Tea Astra tips"
|
||||
icon_state = "tea_astra_leaves"
|
||||
filling_color = "#4582B4"
|
||||
grind_results = list("teapowder" = 0, "salglu_solution" = 0)
|
||||
|
||||
// Kitty drugs
|
||||
/obj/item/seeds/tea/catnip
|
||||
name = "pack of catnip seeds"
|
||||
icon_state = "seed-catnip"
|
||||
desc = "Long stocks with flowering tips that has a chemical to make feline attracted to it."
|
||||
species = "catnip"
|
||||
plantname = "Catnip Plant"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/tea/catnip
|
||||
reagents_add = list("catnip" = 0.1, "vitamin" = 0.06, "teapowder" = 0.3)
|
||||
rarity = 50
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea/catnip
|
||||
seed = /obj/item/seeds/tea/catnip
|
||||
name = "Catnip buds"
|
||||
icon_state = "catnip"
|
||||
filling_color = "#4582B4"
|
||||
grind_results = list("catnp" = 2, "water" = 1)
|
||||
|
||||
// Coffee
|
||||
/obj/item/seeds/coffee
|
||||
name = "pack of coffee arabica seeds"
|
||||
desc = "These seeds grow into coffee arabica bushes."
|
||||
icon_state = "seed-coffeea"
|
||||
species = "coffeea"
|
||||
plantname = "Coffee Arabica Bush"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/coffee
|
||||
lifespan = 30
|
||||
endurance = 20
|
||||
maturation = 5
|
||||
production = 5
|
||||
yield = 5
|
||||
growthstages = 5
|
||||
icon_dead = "coffee-dead"
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest)
|
||||
mutatelist = list(/obj/item/seeds/coffee/robusta)
|
||||
reagents_add = list("vitamin" = 0.04, "coffeepowder" = 0.1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/coffee
|
||||
seed = /obj/item/seeds/coffee
|
||||
name = "coffee arabica beans"
|
||||
desc = "Dry them out to make coffee."
|
||||
icon_state = "coffee_arabica"
|
||||
filling_color = "#DC143C"
|
||||
bitesize_mod = 2
|
||||
dry_grind = TRUE
|
||||
grind_results = list("coffeepowder" = 0)
|
||||
distill_reagent = "kahlua"
|
||||
|
||||
// Coffee Robusta
|
||||
/obj/item/seeds/coffee/robusta
|
||||
name = "pack of coffee robusta seeds"
|
||||
desc = "These seeds grow into coffee robusta bushes."
|
||||
icon_state = "seed-coffeer"
|
||||
species = "coffeer"
|
||||
plantname = "Coffee Robusta Bush"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/coffee/robusta
|
||||
mutatelist = list()
|
||||
reagents_add = list("ephedrine" = 0.1, "vitamin" = 0.04, "coffeepowder" = 0.1)
|
||||
rarity = 20
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/coffee/robusta
|
||||
seed = /obj/item/seeds/coffee/robusta
|
||||
name = "coffee robusta beans"
|
||||
desc = "Increases robustness by 37 percent!"
|
||||
icon_state = "coffee_robusta"
|
||||
grind_results = list("coffeepowder" = 0, "morphine" = 0)
|
||||
@@ -0,0 +1,258 @@
|
||||
/obj/item/seeds/tower
|
||||
name = "pack of tower-cap mycelium"
|
||||
desc = "This mycelium grows into tower-cap mushrooms."
|
||||
icon_state = "mycelium-tower"
|
||||
species = "towercap"
|
||||
plantname = "Tower Caps"
|
||||
product = /obj/item/grown/log
|
||||
lifespan = 80
|
||||
endurance = 50
|
||||
maturation = 15
|
||||
production = 1
|
||||
yield = 5
|
||||
potency = 50
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
||||
icon_dead = "towercap-dead"
|
||||
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
|
||||
mutatelist = list(/obj/item/seeds/tower/steel)
|
||||
|
||||
/obj/item/seeds/tower/steel
|
||||
name = "pack of steel-cap mycelium"
|
||||
desc = "This mycelium grows into steel logs."
|
||||
icon_state = "mycelium-steelcap"
|
||||
species = "steelcap"
|
||||
plantname = "Steel Caps"
|
||||
product = /obj/item/grown/log/steel
|
||||
mutatelist = list()
|
||||
rarity = 20
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/item/grown/log
|
||||
seed = /obj/item/seeds/tower
|
||||
name = "tower-cap log"
|
||||
desc = "It's better than bad, it's good!"
|
||||
icon_state = "logs"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
throw_speed = 2
|
||||
throw_range = 3
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
|
||||
var/plank_type = /obj/item/stack/sheet/mineral/wood
|
||||
var/plank_name = "wooden planks"
|
||||
var/static/list/accepted = typecacheof(list(/obj/item/reagent_containers/food/snacks/grown/tobacco,
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ambrosia/deus,
|
||||
/obj/item/reagent_containers/food/snacks/grown/wheat))
|
||||
|
||||
/obj/item/grown/log/attackby(obj/item/W, mob/user, params)
|
||||
if(W.sharpness)
|
||||
user.show_message("<span class='notice'>You make [plank_name] out of \the [src]!</span>", 1)
|
||||
var/seed_modifier = 0
|
||||
if(seed)
|
||||
seed_modifier = round(seed.potency / 25)
|
||||
var/obj/item/stack/plank = new plank_type(user.loc, 1 + seed_modifier)
|
||||
var/old_plank_amount = plank.amount
|
||||
for(var/obj/item/stack/ST in user.loc)
|
||||
if(ST != plank && istype(ST, plank_type) && ST.amount < ST.max_amount)
|
||||
ST.attackby(plank, user) //we try to transfer all old unfinished stacks to the new stack we created.
|
||||
if(plank.amount > old_plank_amount)
|
||||
to_chat(user, "<span class='notice'>You add the newly-formed [plank_name] to the stack. It now contains [plank.amount] [plank_name].</span>")
|
||||
qdel(src)
|
||||
|
||||
if(CheckAccepted(W))
|
||||
var/obj/item/reagent_containers/food/snacks/grown/leaf = W
|
||||
if(leaf.dry)
|
||||
user.show_message("<span class='notice'>You wrap \the [W] around the log, turning it into a torch!</span>")
|
||||
var/obj/item/flashlight/flare/torch/T = new /obj/item/flashlight/flare/torch(user.loc)
|
||||
usr.dropItemToGround(W)
|
||||
usr.put_in_active_hand(T)
|
||||
qdel(leaf)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
to_chat(usr, "<span class ='warning'>You must dry this first!</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/grown/log/proc/CheckAccepted(obj/item/I)
|
||||
return is_type_in_typecache(I, accepted)
|
||||
|
||||
/obj/item/grown/log/tree
|
||||
seed = null
|
||||
name = "wood log"
|
||||
desc = "TIMMMMM-BERRRRRRRRRRR!"
|
||||
|
||||
/obj/item/grown/log/steel
|
||||
seed = /obj/item/seeds/tower/steel
|
||||
name = "steel-cap log"
|
||||
desc = "It's made of metal."
|
||||
icon_state = "steellogs"
|
||||
plank_type = /obj/item/stack/rods
|
||||
plank_name = "rods"
|
||||
|
||||
/obj/item/grown/log/steel/CheckAccepted(obj/item/I)
|
||||
return FALSE
|
||||
|
||||
/////////BONFIRES//////////
|
||||
|
||||
/obj/structure/bonfire
|
||||
name = "bonfire"
|
||||
desc = "For grilling, broiling, charring, smoking, heating, roasting, toasting, simmering, searing, melting, and occasionally burning things."
|
||||
icon = 'icons/obj/hydroponics/equipment.dmi'
|
||||
icon_state = "bonfire"
|
||||
light_color = LIGHT_COLOR_FIRE
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
buckle_lying = 0
|
||||
var/burning = 0
|
||||
var/burn_icon = "bonfire_on_fire" //for a softer more burning embers icon, use "bonfire_warm"
|
||||
var/grill = FALSE
|
||||
var/fire_stack_strength = 5
|
||||
|
||||
/obj/structure/bonfire/dense
|
||||
density = TRUE
|
||||
|
||||
/obj/structure/bonfire/prelit/Initialize()
|
||||
. = ..()
|
||||
StartBurning()
|
||||
|
||||
/obj/structure/bonfire/CanPass(atom/movable/mover, turf/target)
|
||||
if(istype(mover) && (mover.pass_flags & PASSTABLE))
|
||||
return TRUE
|
||||
if(mover.throwing)
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/obj/structure/bonfire/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/stack/rods) && !can_buckle && !grill)
|
||||
var/obj/item/stack/rods/R = W
|
||||
var/choice = input(user, "What would you like to construct?", "Bonfire") as null|anything in list("Stake","Grill")
|
||||
switch(choice)
|
||||
if("Stake")
|
||||
R.use(1)
|
||||
can_buckle = TRUE
|
||||
buckle_requires_restraints = TRUE
|
||||
to_chat(user, "<span class='italics'>You add a rod to \the [src].")
|
||||
var/mutable_appearance/rod_underlay = mutable_appearance('icons/obj/hydroponics/equipment.dmi', "bonfire_rod")
|
||||
rod_underlay.pixel_y = 16
|
||||
underlays += rod_underlay
|
||||
if("Grill")
|
||||
R.use(1)
|
||||
grill = TRUE
|
||||
to_chat(user, "<span class='italics'>You add a grill to \the [src].")
|
||||
add_overlay("bonfire_grill")
|
||||
else
|
||||
return ..()
|
||||
if(W.get_temperature())
|
||||
StartBurning()
|
||||
if(grill)
|
||||
if(user.a_intent != INTENT_HARM && !(W.item_flags & ABSTRACT))
|
||||
if(user.temporarilyRemoveItemFromInventory(W))
|
||||
W.forceMove(get_turf(src))
|
||||
var/list/click_params = params2list(params)
|
||||
//Center the icon where the user clicked.
|
||||
if(!click_params || !click_params["icon-x"] || !click_params["icon-y"])
|
||||
return
|
||||
//Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
|
||||
W.pixel_x = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
|
||||
W.pixel_y = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/structure/bonfire/attack_hand(mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
if(burning)
|
||||
to_chat(user, "<span class='warning'>You need to extinguish [src] before removing the logs!</span>")
|
||||
return
|
||||
if(!has_buckled_mobs() && do_after(user, 50, target = src))
|
||||
for(var/I in 1 to 5)
|
||||
var/obj/item/grown/log/L = new /obj/item/grown/log(src.loc)
|
||||
L.pixel_x += rand(1,4)
|
||||
L.pixel_y += rand(1,4)
|
||||
if(can_buckle || grill)
|
||||
new /obj/item/stack/rods(loc, 1)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/structure/bonfire/proc/CheckOxygen()
|
||||
if(isopenturf(loc))
|
||||
var/turf/open/O = loc
|
||||
if(O.air)
|
||||
var/loc_gases = O.air.gases
|
||||
if(loc_gases[/datum/gas/oxygen] > 13)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/bonfire/proc/StartBurning()
|
||||
if(!burning && CheckOxygen())
|
||||
icon_state = burn_icon
|
||||
burning = TRUE
|
||||
set_light(6)
|
||||
Burn()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/structure/bonfire/fire_act(exposed_temperature, exposed_volume)
|
||||
StartBurning()
|
||||
|
||||
/obj/structure/bonfire/Crossed(atom/movable/AM)
|
||||
if(burning & !grill)
|
||||
Burn()
|
||||
|
||||
/obj/structure/bonfire/proc/Burn()
|
||||
var/turf/current_location = get_turf(src)
|
||||
current_location.hotspot_expose(1000,100,1)
|
||||
for(var/A in current_location)
|
||||
if(A == src)
|
||||
continue
|
||||
if(isobj(A))
|
||||
var/obj/O = A
|
||||
O.fire_act(1000, 500)
|
||||
else if(isliving(A))
|
||||
var/mob/living/L = A
|
||||
L.adjust_fire_stacks(fire_stack_strength)
|
||||
L.IgniteMob()
|
||||
|
||||
/obj/structure/bonfire/proc/Cook()
|
||||
var/turf/current_location = get_turf(src)
|
||||
for(var/A in current_location)
|
||||
if(A == src)
|
||||
continue
|
||||
else if(isliving(A)) //It's still a fire, idiot.
|
||||
var/mob/living/L = A
|
||||
L.adjust_fire_stacks(fire_stack_strength)
|
||||
L.IgniteMob()
|
||||
else if(istype(A, /obj/item) && prob(20))
|
||||
var/obj/item/O = A
|
||||
O.microwave_act()
|
||||
|
||||
/obj/structure/bonfire/process()
|
||||
if(!CheckOxygen())
|
||||
extinguish()
|
||||
return
|
||||
if(!grill)
|
||||
Burn()
|
||||
else
|
||||
Cook()
|
||||
|
||||
/obj/structure/bonfire/extinguish()
|
||||
if(burning)
|
||||
icon_state = "bonfire"
|
||||
burning = 0
|
||||
set_light(0)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/structure/bonfire/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE)
|
||||
if(..())
|
||||
M.pixel_y += 13
|
||||
|
||||
/obj/structure/bonfire/unbuckle_mob(mob/living/buckled_mob, force=FALSE)
|
||||
if(..())
|
||||
buckled_mob.pixel_y -= 13
|
||||
Reference in New Issue
Block a user