the Cinnamon and Prehistoric Plants update

This commit is contained in:
DeityLink
2015-10-06 21:16:39 +02:00
parent 280e987881
commit d6f10ed819
31 changed files with 854 additions and 325 deletions

View File

@@ -39,6 +39,7 @@
/obj/structure/snow/attackby(obj/item/W,mob/user)
if(istype(W,/obj/item/weapon/pickaxe/shovel))//using a shovel or spade harvests some snow and let's you click on the lower layers
playsound(loc, 'sound/items/shovel.ogg', 50, 1)
snow_amount = SNOWCOVERING_LITTLE
icon_state = "snow_dug"
mouse_opacity = 0

View File

@@ -42,6 +42,7 @@
new /obj/item/weapon/solder(),\
new /obj/item/device/analyzer(), \
new /obj/item/device/t_scanner(), \
new /obj/item/weapon/pickaxe/shovel/spade(), \
),
"Containers"=list(
new /obj/item/weapon/reagent_containers/glass/beaker(), \

View File

@@ -1466,6 +1466,7 @@
/obj/item/seeds/cherryseed = 3,
/obj/item/seeds/plastiseed = 3,
/obj/item/seeds/riceseed = 3,
/obj/item/seeds/cinnamomum = 3,
)//,/obj/item/seeds/synthmeatseed = 3)
contraband = list(
/obj/item/seeds/amanitamycelium = 2,

View File

@@ -122,6 +122,20 @@
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("smashed_pie")
/obj/effect/decal/cleanable/clay_fragments
name = "clay fragments"
desc = "pieces from a broken clay pot"
gender = PLURAL
icon = 'icons/effects/tomatodecal.dmi'
icon_state = "clay_fragments"
anchored = 0
layer=2
/obj/effect/decal/cleanable/clay_fragments/New()
..()
pixel_x = rand (-3,3)
pixel_y = rand (-3,3)
/obj/effect/decal/cleanable/soot
name = "soot"
desc = "One hell of a party..."

View File

@@ -571,6 +571,7 @@ turf/simulated/floor/proc/update_icon()
user << "<span class='warning'>You must remove the plating first.</span>"
else if(istype(C, /obj/item/weapon/pickaxe/shovel))
if(is_grass_floor())
playsound(loc, 'sound/items/shovel.ogg', 50, 1)
new /obj/item/weapon/ore/glass(src)
new /obj/item/weapon/ore/glass(src) //Make some sand if you shovel grass
user << "<span class='notice'>You shovel the grass.</span>"

View File

@@ -1567,6 +1567,27 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/potentham
/datum/recipe/claypot//it just works
reagents = list("water" = 10)
items = list(
/obj/item/weapon/ore/glass,
)
result = /obj/item/claypot
/datum/recipe/cinnamonroll
reagents = list("milk" = 5, "sugar" = 10, "flour" = 5, "cinnamon" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cinnamonroll
/datum/recipe/cinnamonpie
reagents = list("milk" = 5, "sugar" = 10, "flour" = 10, "cinnamon" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cinnamonpie
// Currently Disabled //////////////////////////////////////////
/*

View File

@@ -85,6 +85,28 @@
M << "<font color='green'><b> [user] smacks you with a sunflower!</font><font color='yellow'><b>FLOWER POWER<b></font>"
user << "<font color='green'> Your sunflower's </font><font color='yellow'><b>FLOWER POWER</b></font><font color='green'> strikes [M]</font>"
/obj/item/weapon/grown/novaflower
plantname = "novaflowers"
name = "novaflower"
desc = "These beautiful flowers have a crisp smokey scent, like a summer bonfire."
icon = 'icons/obj/harvest.dmi'
icon_state = "novaflower"
damtype = "fire"
force = 0
flags = 0
throwforce = 1
w_class = 1.0
throw_speed = 1
throw_range = 3
attack_verb = list("seared", "heated", "whacked", "steamed")
/obj/item/weapon/grown/novaflower/New()
..()
spawn(5) // So potency can be set in the proc that creates these crops
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("capsaicin", round(potency, 1))
force = round((5 + potency / 5), 1)
/obj/item/weapon/grown/nettle // -- Skie
plantname = "nettle"
desc = "It's probably <B>not</B> wise to touch it with bare hands..."
@@ -99,10 +121,11 @@
throw_speed = 1
throw_range = 3
origin_tech = "combat=1"
New()
..()
spawn(5)
force = round((5+potency/5), 1)
/obj/item/weapon/grown/nettle/New()
..()
spawn(5)
force = round((5+potency/5), 1)
/obj/item/weapon/grown/nettle/pickup(mob/living/carbon/human/user as mob)
if(istype(user))

View File

@@ -159,6 +159,14 @@
if(grown_seed.alter_temp)
dat += "<br>It will periodically alter the local temperature by [grown_seed.alter_temp] degrees Kelvin."
if(grown_seed.consume_gasses)
for(var/gas in grown_seed.consume_gasses)
dat += "<br>It will remove [gas] from the environment."
if(grown_seed.exude_gasses)
for(var/gas in grown_seed.exude_gasses)
dat += "<br>It will release [gas] into the environment."
if(grown_seed.biolum)
dat += "<br>It is [grown_seed.biolum_colour ? "<font color='[grown_seed.biolum_colour]'>bio-luminescent</font>" : "bio-luminescent"]."
if(grown_seed.flowers)
@@ -365,4 +373,77 @@
for(var/obj/effect/plantsegment/B in orange(A,1))
if(prob(80))
qdel(B)
qdel(A)
qdel(A)
/obj/item/claypot
name = "clay pot"
desc = "Plants placed in those stop aging, but cannot be retrieved either."
icon = 'icons/obj/hydroponics2.dmi'
icon_state = "claypot-item"
item_state = "claypot"
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/misc_tools.dmi', "right_hand" = 'icons/mob/in-hand/right/misc_tools.dmi')
w_class = 3.0
force = 5.0
throwforce = 20.0
throw_speed = 1
throw_range = 3
flags = FPRINT
/obj/item/claypot/attackby(var/obj/item/O,var/mob/user)
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O,/obj/item/weapon/grown))
user << "<span class='warning'>You have to transplant the plant into the pot directly from the hydroponic tray, using a spade.</span>"
else if(istype(O,/obj/item/weapon/pickaxe/shovel/spade))
user << "<span class='warning'>There is no plant to remove in \the [src].</span>"
else
user << "<span class='warning'>You cannot plant \the [O] in \the [src].</span>"
/obj/item/claypot/throw_impact(atom/hit_atom)
..()
if(prob(40))
playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 75, 1)
new/obj/effect/decal/cleanable/clay_fragments(src.loc)
src.visible_message("<span class='warning'>[src.name] has been squashed.</span>","<span class='warning'>You hear a smack.</span>")
qdel(src)
/obj/structure/claypot
name = "clay pot"
desc = "Plants placed in those stop aging, but cannot be retrieved either."
icon = 'icons/obj/hydroponics2.dmi'
icon_state = "claypot"
anchored = 0
density = 0
var/plant_name = ""
/obj/structure/claypot/examine(mob/user)
..()
if(plant_name)
user << "<span class='info'>You can see [plant_name] planted in it.</span>"
/obj/structure/claypot/attack_hand(mob/user as mob)
user << "It's too heavy to pick up while it has a plant in it."
/obj/structure/claypot/attackby(var/obj/item/O,var/mob/user)
if(istype(O,/obj/item/weapon/wrench))
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, src, 30))
anchored = !anchored
user.visible_message( "<span class='notice'>[user] [anchored ? "wrench" : "unwrench"]es \the [src] [anchored ? "in place" : "from its fixture"].</span>",
"<span class='notice'>\icon[src] You [anchored ? "wrench" : "unwrench"] \the [src] [anchored ? "in place" : "from its fixture"].</span>",
"<span class='notice'>You hear a ratchet.</span>")
else if(plant_name && istype(O,/obj/item/weapon/pickaxe/shovel/spade))
user << "<span class='notice'>\icon[src] You start removing the [plant_name] from \the [src].</span>"
if(do_after(user, src, 30))
playsound(loc, 'sound/items/shovel.ogg', 50, 1)
user.visible_message( "<span class='notice'>[user] removes the [plant_name] from \the [src].</span>",
"<span class='notice'>\icon[src] You remove the [plant_name] from \the [src].</span>",
"<span class='notice'>You hear some digging.</span>")
var/obj/item/claypot/C = new(loc)
transfer_fingerprints(src, C)
qdel(src)
else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O,/obj/item/weapon/grown))
user << "<span class='warning'>There is already a plant in \the [src]</span>"
else
..()

View File

@@ -619,6 +619,59 @@
if(..())
return 1
if(istype(O, /obj/item/claypot))
user << "<span class='warning'>You must place the pot on the ground and use a spade on \the [src] to make a transplant.</span>"
return
if(seed && istype(O, /obj/item/weapon/pickaxe/shovel/spade))
var/obj/item/claypot/C = locate() in range(user,1)
if(!C)
user << "<span class='warning'>You need an empty clay pot next to you.</span>"
return
playsound(loc, 'sound/items/shovel.ogg', 50, 1)
if(do_after(user, src, 50))
user.visible_message( "<span class='notice'>[user] transplants \the [seed.display_name] into \the [C].</span>",
"<span class='notice'>\icon[src] You transplant \the [seed.display_name] into \the [C].</span>",
"<span class='notice'>You hear a ratchet.</span>")
var/obj/structure/claypot/S = new(get_turf(C))
transfer_fingerprints(C, S)
qdel(C)
if(seed.large)
S.icon_state += "-large"
if(dead)
S.overlays += image(seed.plant_dmi,"[seed.plant_icon]-dead")
else if(harvest)
S.overlays += image(seed.plant_dmi,"[seed.plant_icon]-harvest")
else if(age < seed.maturation)
var/t_growthstate = max(1,round((age * seed.growth_stages) / seed.maturation))
S.overlays += image(seed.plant_dmi,"[seed.plant_icon]-grow[t_growthstate]")
else
S.overlays += image(seed.plant_dmi,"[seed.plant_icon]-grow[seed.growth_stages]")
S.plant_name = seed.display_name
if(seed.biolum)
S.set_light(round(seed.potency/10))
if(seed.biolum_colour)
S.light_color = seed.biolum_colour
harvest = 0
seed = null
dead = 0
sampled = 0
age = 0
yield_mod = 0
mutation_mod = 0
set_light(0)
check_level_sanity()
update_icon()
return
if(istype(O, /obj/item/weapon/wirecutters) || istype(O, /obj/item/weapon/scalpel))
if(!seed)
@@ -873,8 +926,13 @@
/obj/machinery/portable_atmospherics/hydroponics/soil/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/pickaxe/shovel))
user << "You clear up [src]!"
qdel(src)
if(!seed)
user << "You clear up [src]!"
new /obj/item/weapon/ore/glass(src)//we get some of the dirt back
new /obj/item/weapon/ore/glass(src)
qdel(src)
else
..()
else if(istype(O,/obj/item/weapon/pickaxe/shovel) || istype(O,/obj/item/weapon/tank))
return
else

View File

@@ -0,0 +1,211 @@
//Plants aquired through xenoarchaeology
/datum/seed/telriis
name = "telriis"
seed_name = "telriis"
display_name = "telriis grass"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/telriis_clump)
mutants = null
packet_icon = "seed-telriis"
plant_icon = "telriis"
harvest_repeat = 1
chems = list("nutriment" = list(1,10),"pwine" = list(0,2))
lifespan = 60
maturation = 6
production = 4
yield = 4
potency = 20
growth_stages = 4
/obj/item/seeds/telriis
seed_type = "telriis"
vending_cat = "prehistoric"
/obj/item/weapon/reagent_containers/food/snacks/grown/telriis_clump
name = "telriis grass"
desc = "A clump of telriis grass, not recommended for consumption by sentients."
icon_state = "telriisclump"
plantname = "telriis"
/datum/seed/thaadra
name = "thaadra"
seed_name = "thaadra"
display_name = "thaa'dra grass"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/thaadrabloom)
mutants = null
packet_icon = "seed-thaadra"
plant_icon = "thaadra"
harvest_repeat = 1
chems = list("nutriment" = list(1,10),"frostoil" = list(5,7))
lifespan = 50
maturation = 3
production = 3
yield = 5
potency = 20
growth_stages = 4
/obj/item/seeds/thaadra
seed_type = "thaadra"
vending_cat = "prehistoric"
/obj/item/weapon/reagent_containers/food/snacks/grown/thaadrabloom
name = "thaa'dra bloom"
desc = "Looks chewy, might be good to eat."
icon_state = "thaadrabloom"
plantname = "thaadra"
/datum/seed/jurlmah
name = "jurlmah"
seed_name = "jurlmah"
display_name = "jurl'mah tree"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/jurlmah)
mutants = null
packet_icon = "seed-jurlmah"
plant_icon = "jurlmah"
chems = list("nutriment" = list(1,10),"serotrotium" = list(0,10))
lifespan = 25
maturation = 6
production = 1
yield = 3
potency = 30
growth_stages = 5
biolum = 1
biolum_colour = "#9FE7EC"
large = 0
/obj/item/seeds/jurlmah
seed_type = "jurlmah"
vending_cat = "prehistoric"
/obj/item/weapon/reagent_containers/food/snacks/grown/jurlmah
name = "jurl'mah pod"
desc = "Bulbous and veiny, it appears to pulse slightly as you look at it."
icon_state = "jurlmahpod"
plantname = "jurlmah"
/datum/seed/amauri
name = "amauri"
seed_name = "amauri"
display_name = "amauri stalks"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/amauri)
mutants = null
packet_icon = "seed-amauri"
plant_icon = "amauri"
chems = list("nutriment" = list(1,10),"zombiepowder" = list(0,2),"condensedcapsaicin" = list(0,5))
lifespan = 25
maturation = 10
production = 1
yield = 3
potency = 30
growth_stages = 3
biolum = 1
biolum_colour = "#5532E2"
large = 0
/obj/item/seeds/amauri
seed_type = "amauri"
vending_cat = "prehistoric"
/obj/item/weapon/reagent_containers/food/snacks/grown/amauri
name = "amauri fruit"
desc = "It is small, round and hard. Its skin is a thick dark purple."
icon_state = "amaurifruit"
plantname = "amauri"
/datum/seed/gelthi
name = "gelthi"
seed_name = "gelthi"
display_name = "gelthi stem"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/gelthi)
mutants = null
packet_icon = "seed-gelthi"
plant_icon = "gelthi"
harvest_repeat = 1
chems = list("nutriment" = list(1,10),"stoxin" = list(0,1),"capsaicin" = list(0,1))
lifespan = 55
maturation = 6
production = 5
yield = 3
potency = 20
growth_stages = 3
large = 0
/obj/item/seeds/gelthi
seed_type = "gelthi"
vending_cat = "prehistoric"
/obj/item/weapon/reagent_containers/food/snacks/grown/gelthi
name = "gelthi berries"
desc = "They feel fluffy and slightly warm to the touch."
icon_state = "gelthiberries"
gender = PLURAL
plantname = "gelthi"
/datum/seed/vale
name = "vale"
seed_name = "vale"
display_name = "vale tree"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/vale)
mutants = null
packet_icon = "seed-vale"
plant_icon = "vale"
harvest_repeat = 1
chems = list("nutriment" = list(1,10),"paracetamol" = list(0,2),"dexalin" = list(0,5))
lifespan = 100
maturation = 6
production = 6
yield = 4
potency = 20
growth_stages = 4
large = 0
/obj/item/seeds/vale
seed_type = "vale"
vending_cat = "prehistoric"
/obj/item/weapon/reagent_containers/food/snacks/grown/vale
name = "vale leaves"
desc = "Small, curly leaves covered in a soft pale fur."
icon_state = "valeleaves"
plantname = "vale"
/datum/seed/surik
name = "surik"
seed_name = "surik"
display_name = "surik stalks"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/surik)
mutants = null
packet_icon = "seed-surik"
plant_icon = "surik"
harvest_repeat = 1
chems = list("nutriment" = list(1,10),"impedrezene" = list(0,3),"synaptizine" = list(0,5))
lifespan = 55
maturation = 7
production = 6
yield = 3
potency = 20
growth_stages = 4
large = 0
/obj/item/seeds/surik
seed_type = "surik"
vending_cat = "prehistoric"
/obj/item/weapon/reagent_containers/food/snacks/grown/surik
name = "surik fruit"
desc = "Multiple layers of blue skin peeling away to reveal a spongey core, vaguely resembling an ear."
icon_state = "surikfruit"
plantname = "surik"

View File

@@ -119,6 +119,8 @@ proc/populate_seed_list()
var/mob_drop // Seed type dropped by the mobs when it dies without an host
var/large = 1 // Is the plant large? For clay pots.
//Creates a random seed. MAKE SURE THE LINE HAS DIVERGED BEFORE THIS IS CALLED.
/datum/seed/proc/randomize()
@@ -166,6 +168,8 @@ proc/populate_seed_list()
list("seed-harebell", "harebell"),
list("seed-poppy", "poppy"),
list("seed-sunflower", "sunflower"),
list("seed-moonflower", "moonflower"),
list("seed-novaflower", "novaflower"),
list("seed-grapes", "grape"),
list("seed-greengrapes", "greengrape"),
list("seed-peanut", "peanut"),
@@ -176,6 +180,7 @@ proc/populate_seed_list()
list("seed-corn", "corn"),
list("seed-potato", "potato"),
list("seed-soybean", "soybean"),
list("seed-koibean", "koibean"),
list("seed-wheat", "wheat"),
list("seed-rice", "rice"),
list("seed-carrot", "carrot"),
@@ -191,7 +196,8 @@ proc/populate_seed_list()
list("seed-cocoapod", "cocoapod"),
list("seed-cherry", "cherry"),
list("seed-kudzu", "kudzu"),
list("seed-dionanode", "dionanode")
list("seed-dionanode", "dionanode"),
list("seed-cinnamomum", "cinnamomum"),
))
packet_icon = plant_icons[1]
@@ -943,6 +949,8 @@ proc/populate_seed_list()
yield = 5
potency = 10
large = 0
/datum/seed/apple/poison
name = "poisonapple"
mutants = null
@@ -981,6 +989,8 @@ proc/populate_seed_list()
yield = 6
potency = 5
large = 0
/datum/seed/ambrosia/cruciatus
name = "ambrosiacruciatus"
@@ -1210,18 +1220,61 @@ proc/populate_seed_list()
yield = 6
growth_stages = 3
large = 0
/datum/seed/flower/sunflower
name = "sunflowers"
seed_name = "sunflower"
display_name = "sunflowers"
packet_icon = "seed-sunflower"
products = list(/obj/item/weapon/grown/sunflower)
mutants = list("moonflower","novaflower")
plant_icon = "sunflower"
lifespan = 25
maturation = 6
growth_stages = 3
large = 0
/datum/seed/flower/sunflower/moonflower
name = "moonflowers"
seed_name = "moonflower"
display_name = "moonflowers"
packet_icon = "seed-moonflower"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower)
mutants = null
plant_icon = "moonflower"
chems = list("nutriment" = list(1), "moonshine" = list(1,5))
lifespan = 25
maturation = 6
growth_stages = 3
potency = 30
biolum = 1
biolum_colour = "#B5ABDD"
large = 0
/datum/seed/flower/sunflower/novaflower
name = "novaflowers"
seed_name = "novaflower"
display_name = "novaflowers"
packet_icon = "seed-novaflower"
products = list(/obj/item/weapon/grown/novaflower)
mutants = null
plant_icon = "novaflower"
chems = list("nutriment" = list(1), "capsaicin" = list(1,5))
lifespan = 25
maturation = 6
growth_stages = 3
potency = 30
biolum = 1
biolum_colour = "#FF9900"
large = 0
//Grapes/varieties
/datum/seed/grapes
name = "grapes"
@@ -1240,6 +1293,8 @@ proc/populate_seed_list()
yield = 4
potency = 10
large = 0
/datum/seed/grapes/green
name = "greengrapes"
seed_name = "green grape"
@@ -1347,6 +1402,8 @@ proc/populate_seed_list()
potency = 20
growth_stages = 3
large = 0
/datum/seed/potato
name = "potato"
seed_name = "potato"
@@ -1379,6 +1436,22 @@ proc/populate_seed_list()
yield = 3
potency = 5
/datum/seed/koiseed
name = "koibean"
seed_name = "koibean"
display_name = "koibeans"
packet_icon = "seed-koibean"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/koibeans)
plant_icon = "soybean"
harvest_repeat = 1
chems = list("nutriment" = list(1,10),"carpotoxin" = list(1,25))
lifespan = 25
maturation = 4
production = 4
yield = 3
potency = 10
/datum/seed/wheat
name = "wheat"
seed_name = "wheat"
@@ -1522,6 +1595,8 @@ proc/populate_seed_list()
yield = 4
potency = 15
large = 0
/datum/seed/lemon
name = "lemon"
seed_name = "lemon"
@@ -1538,6 +1613,8 @@ proc/populate_seed_list()
yield = 4
potency = 10
large = 0
/datum/seed/orange
name = "orange"
seed_name = "orange"
@@ -1554,6 +1631,8 @@ proc/populate_seed_list()
yield = 5
potency = 1
large = 0
/datum/seed/grass
name = "grass"
seed_name = "grass"
@@ -1586,6 +1665,8 @@ proc/populate_seed_list()
potency = 10
growth_stages = 5
large = 0
/datum/seed/cherries
name = "cherry"
seed_name = "cherry"
@@ -1604,6 +1685,27 @@ proc/populate_seed_list()
potency = 10
growth_stages = 5
large = 0
/datum/seed/cinnamomum
name = "cinnamomum"
seed_name = "cinnamomum"
display_name = "cinnamomum tree"
packet_icon = "seed-cinnamomum"
products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/cinnamon)
plant_dmi = 'icons/obj/hydroponics2.dmi'
plant_icon = "cinnamomum"
chems = list("cinnamon" = list(4,3))
lifespan = 80
maturation = 15
production = 1
yield = 4
potency = 10
growth_stages = 4
large = 0
/datum/seed/kudzu
name = "kudzu"
seed_name = "kudzu"
@@ -1679,4 +1781,4 @@ proc/populate_seed_list()
maturation = 1
production = 1
yield = 1
potency = 1
potency = 1

View File

@@ -1,224 +1,224 @@
/obj/machinery/seed_extractor
name = "seed extractor"
desc = "Extracts and bags seeds from produce."
icon = 'icons/obj/hydroponics.dmi'
icon_state = "sextractor"
density = 1
anchored = 1
var/piles = list()
var/min_seeds = 1 //better manipulators improve this
var/max_seeds = 4 //better scanning modules improve this
machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE | FIXED2WORK
/********************************************************************
** Adding Stock Parts to VV so preconstructed shit has its candy **
********************************************************************/
/obj/machinery/seed_extractor/New()
. = ..()
component_parts = newlist(
/obj/item/weapon/circuitboard/seed_extractor,
/obj/item/weapon/stock_parts/manipulator,
/obj/item/weapon/stock_parts/manipulator,
/obj/item/weapon/stock_parts/matter_bin,
/obj/item/weapon/stock_parts/micro_laser,
/obj/item/weapon/stock_parts/scanning_module,
/obj/item/weapon/stock_parts/console_screen
)
RefreshParts()
/obj/machinery/seed_extractor/RefreshParts()
var/B=0
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
B += (M.rating-1)*0.5
min_seeds=1+B
B=0
for(var/obj/item/weapon/stock_parts/scanning_module/M in component_parts)
B += M.rating-1
max_seeds=4+B
obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob)
// Emptying a plant bag
if (istype(O,/obj/item/weapon/storage/bag/plants))
if (!hasSpaceCheck(user))
return
var/obj/item/weapon/storage/P = O
var/loaded = 0
for(var/obj/item/seeds/G in P.contents)
++loaded
moveToStorage(G)
if(contents.len >= MAX_N_OF_ITEMS)
user << "<span class='notice'>You fill \the [src] to the brim.</span>"
return
if (loaded)
user << "<span class='notice'>You put the seeds from \the [O.name] into [src].</span>"
else
user << "<span class='notice'>There are no seeds in \the [O.name].</span>"
return
// Loading individual seeds into the machine
if (istype(O,/obj/item/seeds))
if (!hasSpaceCheck(user))
return
user.drop_item()
moveToStorage(O)
user << "<span class='notice'>You add [O] to [src.name].</span>"
updateUsrDialog()
return
// Fruits and vegetables.
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O, /obj/item/weapon/grown))
user.drop_item(O)
var/datum/seed/new_seed_type
if(istype(O, /obj/item/weapon/grown))
var/obj/item/weapon/grown/F = O
new_seed_type = seed_types[F.plantname]
else
var/obj/item/weapon/reagent_containers/food/snacks/grown/F = O
new_seed_type = seed_types[F.plantname]
if(new_seed_type)
user << "<span class='notice'>You extract some seeds from [O].</span>"
var/produce = rand(min_seeds,max_seeds)
for(var/i = 0;i<=produce;i++)
var/obj/item/seeds/seeds = new(get_turf(src))
seeds.seed_type = new_seed_type.name
seeds.update_seed()
else
user << "[O] doesn't seem to have any usable seeds inside it."
qdel(O)
//Grass. //Why isn't this using the nonplant_seed_type functionality below?
else if(istype(O, /obj/item/stack/tile/grass))
var/obj/item/stack/tile/grass/S = O
user << "<span class='notice'>You extract some seeds from the [S.name].</span>"
S.use(1)
new /obj/item/seeds/grassseed(loc)
if(O)
var/obj/item/F = O
if(F.nonplant_seed_type)
user << "<span class='notice'>You extract some seeds from the [F.name].</span>"
user.drop_item(O)
var/t_amount = 0
var/t_max = rand(1,4)
while(t_amount < t_max)
new F.nonplant_seed_type(src.loc)
t_amount++
qdel(F)
..()
return
//Code shamelessly ported over from tgstation's github repo, PR #2973, credit to Kelenius for the original code
datum/seed_pile
var/name = ""
var/lifespan = 0 //Saved stats
var/endurance = 0
var/maturation = 0
var/production = 0
var/yield = 0
var/potency = 0
var/amount = 0
datum/seed_pile/New(var/name, var/life, var/endur, var/matur, var/prod, var/yie, var/poten, var/am = 1)
src.name = name
src.lifespan = life
src.endurance = endur
src.maturation = matur
src.production = prod
src.yield = yie
src.potency = poten
src.amount = am
/obj/machinery/seed_extractor/attack_hand(mob/user as mob)
interact(user)
obj/machinery/seed_extractor/interact(mob/user as mob)
if (stat)
return 0
user.set_machine(src)
var/dat = "<b>Stored seeds:</b><br>"
if (contents.len == 0)
dat += "<font color='red'>No seeds in storage!</font>"
else
dat += "<table cellpadding='3' style='text-align:center;'><tr><td>Name</td><td>Lifespan</td><td>Endurance</td><td>Maturation</td><td>Production</td><td>Yield</td><td>Potency</td><td>Stock</td></tr>"
for (var/datum/seed_pile/O in piles)
dat += "<tr><td>[O.name]</td><td>[O.lifespan]</td><td>[O.endurance]</td><td>[O.maturation]</td>"
dat += "<td>[O.production]</td><td>[O.yield]</td><td>[O.potency]</td><td>"
dat += "<a href='byond://?src=\ref[src];name=[O.name];li=[O.lifespan];en=[O.endurance];ma=[O.maturation];pr=[O.production];yi=[O.yield];pot=[O.potency];amt=1'>Vend</a>"
dat += "<a href='byond://?src=\ref[src];name=[O.name];li=[O.lifespan];en=[O.endurance];ma=[O.maturation];pr=[O.production];yi=[O.yield];pot=[O.potency];amt=5'>5x</a>"
dat += "<a href='byond://?src=\ref[src];name=[O.name];li=[O.lifespan];en=[O.endurance];ma=[O.maturation];pr=[O.production];yi=[O.yield];pot=[O.potency];amt=[O.amount]'>All</a>"
dat += "([O.amount] left)</td></tr>"
dat += "</table>"
var/datum/browser/popup = new(user, "seed_ext", name, 725, 400)
popup.set_content(dat)
popup.open()
return
obj/machinery/seed_extractor/Topic(var/href, var/list/href_list)
if(..())
return
usr.set_machine(src)
href_list["li"] = text2num(href_list["li"])
href_list["en"] = text2num(href_list["en"])
href_list["ma"] = text2num(href_list["ma"])
href_list["pr"] = text2num(href_list["pr"])
href_list["yi"] = text2num(href_list["yi"])
href_list["pot"] = text2num(href_list["pot"])
var/amt = text2num(href_list["amt"])
for (var/datum/seed_pile/N in piles)//Find the pile we need to reduce...
if (href_list["name"] == N.name && href_list["li"] == N.lifespan && href_list["en"] == N.endurance && href_list["ma"] == N.maturation && href_list["pr"] == N.production && href_list["yi"] == N.yield && href_list["pot"] == N.potency)
if(N.amount <= 0)
return
N.amount = max(N.amount - amt, 0)
if (N.amount <= 0)
piles -= N
del(N)
break
for (var/obj/T in contents)//Now we find the seed we need to vend
var/obj/item/seeds/O = T
if (O.seed.display_name == href_list["name"] && O.seed.lifespan == href_list["li"] && O.seed.endurance == href_list["en"] && O.seed.maturation == href_list["ma"] && O.seed.production == href_list["pr"] && O.seed.yield == href_list["yi"] && O.seed.potency == href_list["pot"]) //Boy this sure is a long line, let's have this comment stretch it out even more!
O.loc = src.loc
amt--
if (amt <= 0) break
src.updateUsrDialog()
return
obj/machinery/seed_extractor/proc/moveToStorage(var/obj/item/seeds/O as obj)
//writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/seed_extractor/proc/moveToStorage() called tick#: [world.time]")
if(istype(O.loc,/obj/item/weapon/storage))
var/obj/item/weapon/storage/S = O.loc
S.remove_from_storage(O,src)
O.loc = src
for (var/datum/seed_pile/N in piles)
if (O.seed.display_name == N.name && O.seed.lifespan == N.lifespan && O.seed.endurance == N.endurance && O.seed.maturation == N.maturation && O.seed.production == N.production && O.seed.yield == N.yield && O.seed.potency == N.potency)
++N.amount
return
piles += new /datum/seed_pile(O.seed.display_name, O.seed.lifespan, O.seed.endurance, O.seed.maturation, O.seed.production, O.seed.yield, O.seed.potency)
return
obj/machinery/seed_extractor/proc/hasSpaceCheck(mob/user as mob)
//writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/seed_extractor/proc/hasSpaceCheck() called tick#: [world.time]")
if(contents.len >= MAX_N_OF_ITEMS)
user << "<span class='notice'>\The [src] is full.</span>"
return 0
/obj/machinery/seed_extractor
name = "seed extractor"
desc = "Extracts and bags seeds from produce."
icon = 'icons/obj/hydroponics.dmi'
icon_state = "sextractor"
density = 1
anchored = 1
var/piles = list()
var/min_seeds = 1 //better manipulators improve this
var/max_seeds = 4 //better scanning modules improve this
machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE | FIXED2WORK
/********************************************************************
** Adding Stock Parts to VV so preconstructed shit has its candy **
********************************************************************/
/obj/machinery/seed_extractor/New()
. = ..()
component_parts = newlist(
/obj/item/weapon/circuitboard/seed_extractor,
/obj/item/weapon/stock_parts/manipulator,
/obj/item/weapon/stock_parts/manipulator,
/obj/item/weapon/stock_parts/matter_bin,
/obj/item/weapon/stock_parts/micro_laser,
/obj/item/weapon/stock_parts/scanning_module,
/obj/item/weapon/stock_parts/console_screen
)
RefreshParts()
/obj/machinery/seed_extractor/RefreshParts()
var/B=0
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
B += (M.rating-1)*0.5
min_seeds=1+B
B=0
for(var/obj/item/weapon/stock_parts/scanning_module/M in component_parts)
B += M.rating-1
max_seeds=4+B
obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob)
// Emptying a plant bag
if (istype(O,/obj/item/weapon/storage/bag/plants))
if (!hasSpaceCheck(user))
return
var/obj/item/weapon/storage/P = O
var/loaded = 0
for(var/obj/item/seeds/G in P.contents)
++loaded
moveToStorage(G)
if(contents.len >= MAX_N_OF_ITEMS)
user << "<span class='notice'>You fill \the [src] to the brim.</span>"
return
if (loaded)
user << "<span class='notice'>You put the seeds from \the [O.name] into [src].</span>"
else
user << "<span class='notice'>There are no seeds in \the [O.name].</span>"
return
// Loading individual seeds into the machine
if (istype(O,/obj/item/seeds))
if (!hasSpaceCheck(user))
return
user.drop_item()
moveToStorage(O)
user << "<span class='notice'>You add [O] to [src.name].</span>"
updateUsrDialog()
return
// Fruits and vegetables.
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O, /obj/item/weapon/grown))
user.drop_item(O)
var/datum/seed/new_seed_type
if(istype(O, /obj/item/weapon/grown))
var/obj/item/weapon/grown/F = O
new_seed_type = seed_types[F.plantname]
else
var/obj/item/weapon/reagent_containers/food/snacks/grown/F = O
new_seed_type = seed_types[F.plantname]
if(new_seed_type)
user << "<span class='notice'>You extract some seeds from [O].</span>"
var/produce = rand(min_seeds,max_seeds)
for(var/i = 0;i<=produce;i++)
var/obj/item/seeds/seeds = new(get_turf(src))
seeds.seed_type = new_seed_type.name
seeds.update_seed()
else
user << "[O] doesn't seem to have any usable seeds inside it."
qdel(O)
//Grass. //Why isn't this using the nonplant_seed_type functionality below?
else if(istype(O, /obj/item/stack/tile/grass))
var/obj/item/stack/tile/grass/S = O
user << "<span class='notice'>You extract some seeds from the [S.name].</span>"
S.use(1)
new /obj/item/seeds/grassseed(loc)
if(O)
var/obj/item/F = O
if(F.nonplant_seed_type)
user << "<span class='notice'>You extract some seeds from the [F.name].</span>"
user.drop_item(O)
var/t_amount = 0
var/t_max = rand(1,4)
while(t_amount < t_max)
new F.nonplant_seed_type(src.loc)
t_amount++
qdel(F)
..()
return
//Code shamelessly ported over from tgstation's github repo, PR #2973, credit to Kelenius for the original code
datum/seed_pile
var/name = ""
var/lifespan = 0 //Saved stats
var/endurance = 0
var/maturation = 0
var/production = 0
var/yield = 0
var/potency = 0
var/amount = 0
datum/seed_pile/New(var/name, var/life, var/endur, var/matur, var/prod, var/yie, var/poten, var/am = 1)
src.name = name
src.lifespan = life
src.endurance = endur
src.maturation = matur
src.production = prod
src.yield = yie
src.potency = poten
src.amount = am
/obj/machinery/seed_extractor/attack_hand(mob/user as mob)
interact(user)
obj/machinery/seed_extractor/interact(mob/user as mob)
if (stat)
return 0
user.set_machine(src)
var/dat = "<b>Stored seeds:</b><br>"
if (contents.len == 0)
dat += "<font color='red'>No seeds in storage!</font>"
else
dat += "<table cellpadding='3' style='text-align:center;'><tr><td>Name</td><td>Lifespan</td><td>Endurance</td><td>Maturation</td><td>Production</td><td>Yield</td><td>Potency</td><td>Stock</td></tr>"
for (var/datum/seed_pile/O in piles)
dat += "<tr><td>[O.name]</td><td>[O.lifespan]</td><td>[O.endurance]</td><td>[O.maturation]</td>"
dat += "<td>[O.production]</td><td>[O.yield]</td><td>[O.potency]</td><td>"
dat += "<a href='byond://?src=\ref[src];name=[O.name];li=[O.lifespan];en=[O.endurance];ma=[O.maturation];pr=[O.production];yi=[O.yield];pot=[O.potency];amt=1'>Vend</a>"
dat += "<a href='byond://?src=\ref[src];name=[O.name];li=[O.lifespan];en=[O.endurance];ma=[O.maturation];pr=[O.production];yi=[O.yield];pot=[O.potency];amt=5'>5x</a>"
dat += "<a href='byond://?src=\ref[src];name=[O.name];li=[O.lifespan];en=[O.endurance];ma=[O.maturation];pr=[O.production];yi=[O.yield];pot=[O.potency];amt=[O.amount]'>All</a>"
dat += "([O.amount] left)</td></tr>"
dat += "</table>"
var/datum/browser/popup = new(user, "seed_ext", name, 725, 400)
popup.set_content(dat)
popup.open()
return
obj/machinery/seed_extractor/Topic(var/href, var/list/href_list)
if(..())
return
usr.set_machine(src)
href_list["li"] = text2num(href_list["li"])
href_list["en"] = text2num(href_list["en"])
href_list["ma"] = text2num(href_list["ma"])
href_list["pr"] = text2num(href_list["pr"])
href_list["yi"] = text2num(href_list["yi"])
href_list["pot"] = text2num(href_list["pot"])
var/amt = text2num(href_list["amt"])
for (var/datum/seed_pile/N in piles)//Find the pile we need to reduce...
if (href_list["name"] == N.name && href_list["li"] == N.lifespan && href_list["en"] == N.endurance && href_list["ma"] == N.maturation && href_list["pr"] == N.production && href_list["yi"] == N.yield && href_list["pot"] == N.potency)
if(N.amount <= 0)
return
N.amount = max(N.amount - amt, 0)
if (N.amount <= 0)
piles -= N
del(N)
break
for (var/obj/T in contents)//Now we find the seed we need to vend
var/obj/item/seeds/O = T
if (O.seed.display_name == href_list["name"] && O.seed.lifespan == href_list["li"] && O.seed.endurance == href_list["en"] && O.seed.maturation == href_list["ma"] && O.seed.production == href_list["pr"] && O.seed.yield == href_list["yi"] && O.seed.potency == href_list["pot"]) //Boy this sure is a long line, let's have this comment stretch it out even more!
O.loc = src.loc
amt--
if (amt <= 0) break
src.updateUsrDialog()
return
obj/machinery/seed_extractor/proc/moveToStorage(var/obj/item/seeds/O as obj)
//writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/seed_extractor/proc/moveToStorage() called tick#: [world.time]")
if(istype(O.loc,/obj/item/weapon/storage))
var/obj/item/weapon/storage/S = O.loc
S.remove_from_storage(O,src)
O.loc = src
for (var/datum/seed_pile/N in piles)
if (O.seed.display_name == N.name && O.seed.lifespan == N.lifespan && O.seed.endurance == N.endurance && O.seed.maturation == N.maturation && O.seed.production == N.production && O.seed.yield == N.yield && O.seed.potency == N.potency)
++N.amount
return
piles += new /datum/seed_pile(O.seed.display_name, O.seed.lifespan, O.seed.endurance, O.seed.maturation, O.seed.production, O.seed.yield, O.seed.potency)
return
obj/machinery/seed_extractor/proc/hasSpaceCheck(mob/user as mob)
//writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/seed_extractor/proc/hasSpaceCheck() called tick#: [world.time]")
if(contents.len >= MAX_N_OF_ITEMS)
user << "<span class='notice'>\The [src] is full.</span>"
return 0
else return 1

View File

@@ -13,6 +13,8 @@
/obj/item/seeds/New()
update_seed()
..()
pixel_x = rand(-3,3)
pixel_y = rand(-3,3)
//Grabs the appropriate seed datum from the global list.
/obj/item/seeds/proc/update_seed()
@@ -150,6 +152,10 @@
seed_type = "soybean"
vending_cat = "vegetables"
/obj/item/seeds/koiseed
seed_type = "koibean"
vending_cat = "vegetables"
/obj/item/seeds/wheatseed
seed_type = "wheat"
vending_cat = "cereals"
@@ -184,6 +190,7 @@
/obj/item/seeds/towermycelium
seed_type = "towercap"
vending_cat = "trees"
/obj/item/seeds/glowshroom
seed_type = "glowshroom"
@@ -217,6 +224,14 @@
seed_type = "sunflowers"
vending_cat = "flowers"
/obj/item/seeds/moonflowerseed
seed_type = "moonflowers"
vending_cat = "flowers"
/obj/item/seeds/novaflowerseed
seed_type = "novaflowers"
vending_cat = "flowers"
/obj/item/seeds/brownmold
seed_type = "mold"
vending_cat = "mushrooms"
@@ -292,3 +307,7 @@
/obj/item/seeds/kudzuseed
seed_type = "kudzu"
vending_cat = "weeds"
/obj/item/seeds/cinnamomum
seed_type = "cinnamomum"
vending_cat = "trees"

View File

@@ -895,14 +895,14 @@
/obj/item/seeds/harebell,
/obj/item/seeds/icepepperseed,
/obj/item/seeds/killertomatoseed,
//obj/item/seeds/koiseed,
/obj/item/seeds/koiseed,
/obj/item/seeds/kudzuseed,
/obj/item/seeds/lemonseed,
/obj/item/seeds/libertymycelium,
/obj/item/seeds/limeseed,
//obj/item/seeds/moonflowerseed,
/obj/item/seeds/moonflowerseed,
/obj/item/seeds/nettleseed,
//obj/item/seeds/novaflowerseed,
/obj/item/seeds/novaflowerseed,
/obj/item/seeds/orangeseed,
/obj/item/seeds/plastiseed,
/obj/item/seeds/plumpmycelium,
@@ -926,6 +926,7 @@
/obj/item/seeds/watermelonseed,
/obj/item/seeds/wheatseed,
/obj/item/seeds/whitebeetseed,
/obj/item/seeds/cinnamomum,
)

View File

@@ -525,6 +525,7 @@
playsound(get_turf(src), 'sound/effects/rustle1.ogg', 50, 1) //russle sounds sounded better
if(do_after(user, used_digging.digspeed) && user) //the better the drill, the faster the digging
playsound(loc, 'sound/items/shovel.ogg', 50, 1)
user << "<span class='notice'>You dug a hole.</span>"
gets_dug()

View File

@@ -782,6 +782,7 @@
if(!holder) return
if(ishuman(M))
if(prob(7)) M.emote(pick("twitch","drool","moan","gasp"))
M.druggy = max(M.druggy, 50)
holder.remove_reagent(src.id, 0.25 * REAGENTS_METABOLISM)
return
@@ -2813,6 +2814,14 @@
reagent_state = SOLID
// no color (ie, black)
/datum/reagent/cinnamon
name = "Cinnamon Powder"
id = "cinnamon"
description = "A spice, obtained from the bark of cinnamomum trees."
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#D2691E" // rgb: 210, 105, 30
/datum/reagent/coco
name = "Coco Powder"
id = "coco"

View File

@@ -190,6 +190,11 @@
desc = "Sweet and healthy!"
icon_state = "honey"
item_state = null
if("cinnamon")
name = "cinnamon shaker"
desc = "A spice, obtained from the bark of cinnamomum trees."
icon_state = "cinnamon"
item_state = null
else
name = "misc condiment bottle"
desc = "Just your average condiment container."

View File

@@ -3678,6 +3678,32 @@
reagents.add_reagent("nutriment", 10)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cinnamonroll
name = "cinnamon roll"
desc = "Sweet and spicy!"
icon_state = "cinnamon_roll"
trash = /obj/item/trash/plate
food_flags = FOOD_SWEET
New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("cinnamon",5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/cinnamonpie
name = "cinnamon pie"
desc = "Guarranted snake-free!"
icon_state = "cinnamon_pie"
trash = /obj/item/trash/pietin
food_flags = FOOD_SWEET
New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("cinnamon",5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/sundaeramen
name = "Sundae Ramen"
desc = "This is... sundae (?) flavored (?) ramen (?). You just don't know."

View File

@@ -6,16 +6,16 @@
icon_state = "egg"
/obj/item/weapon/reagent_containers/food/snacks/egg/New()
..()
reagents.add_reagent("nutriment", 4)
src.bitesize = 3
..()
reagents.add_reagent("nutriment", 4)
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
..()
new/obj/effect/decal/cleanable/egg_smudge(src.loc)
src.reagents.reaction(hit_atom, TOUCH)
src.visible_message("<span class='warning'>[src.name] has been squashed.</span>","<span class='warning'>You hear a smack.</span>")
del(src)
..()
new/obj/effect/decal/cleanable/egg_smudge(src.loc)
src.reagents.reaction(hit_atom, TOUCH)
src.visible_message("<span class='warning'>[src.name] has been squashed.</span>","<span class='warning'>You hear a smack.</span>")
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/egg/blue
icon_state = "egg-blue"

View File

@@ -59,6 +59,14 @@
plantname = "cherry"
slot_flags = SLOT_EARS
/obj/item/weapon/reagent_containers/food/snacks/grown/cinnamon
name = "cinnamon sticks"
desc = "Straight from the bark!"
icon_state = "cinnamon"
filling_color = "#D2691E"
gender = PLURAL
plantname = "cinnamomum"
/obj/item/weapon/reagent_containers/food/snacks/grown/poppy
name = "poppy"
desc = "Long-used as a symbol of rest, peace, and death."
@@ -75,6 +83,14 @@
filling_color = "#D4B2C9"
plantname = "harebells"
/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower
name = "moonflower"
desc = "Store in a location at least 50 yards away from werewolves."
icon_state = "moonflower"
potency = 25
filling_color = "#E6E6FA"
plantname = "moonflowers"
/obj/item/weapon/reagent_containers/food/snacks/grown/potato
name = "potato"
desc = "Boil 'em! Mash 'em! Stick 'em in a stew!"
@@ -337,6 +353,14 @@
icon_state = "soybeans"
plantname = "soybean"
/obj/item/weapon/reagent_containers/food/snacks/grown/koibeans
name = "koibean"
desc = "Something about these seems fishy."
gender = PLURAL
icon_state = "koibeans"
filling_color = "#F0E68C"
plantname = "koibean"
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato
name = "tomato"
desc = "I say to-mah-to, you say tom-mae-to."

View File

@@ -101,3 +101,13 @@
/obj/item/weapon/fossil/plant/New()
icon_state = "plant[rand(1,4)]"
var/prehistoric_plants = list(
/obj/item/seeds/telriis,
/obj/item/seeds/thaadra,
/obj/item/seeds/jurlmah,
/obj/item/seeds/amauri,
/obj/item/seeds/gelthi,
/obj/item/seeds/vale,
/obj/item/seeds/surik,
)
nonplant_seed_type = pick(prehistoric_plants)

View File

@@ -1,81 +0,0 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/telriis_clump
name = "telriis grass"
desc = "A clump of telriis grass, not recommended for consumption by sentients."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "telriisclump"
New(var/loc, var/potency)
..()
reagents.add_reagent("pwine", potency * 5)
reagents.add_reagent("nutriment", potency)
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/thaadrabloom
name = "thaa'dra bloom"
desc = "Looks chewy, might be good to eat."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "thaadrabloom"
New(var/loc, var/potency)
..()
reagents.add_reagent("frostoil", potency * 1.5 + 5)
reagents.add_reagent("nutriment", potency)
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/jurlmah
name = "jurl'mah pod"
desc = "Bulbous and veiny, it appears to pulse slightly as you look at it."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "jurlmahpod"
New(var/loc, var/potency)
..()
reagents.add_reagent("serotrotium", potency)
reagents.add_reagent("nutriment", potency)
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/amauri
name = "amauri fruit"
desc = "It is small, round and hard. Its skin is a thick dark purple."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "amaurifruit"
New(var/loc, var/potency)
..()
reagents.add_reagent("zombiepowder", potency * 10)
reagents.add_reagent("condensedcapsaicin", potency * 5)
reagents.add_reagent("nutriment", potency)
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/gelthi
name = "gelthi berries"
desc = "They feel fluffy and slightly warm to the touch."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "gelthiberries"
New(var/loc, var/potency)
..()
//this may prove a little strong
reagents.add_reagent("stoxin", (potency * potency) / 5)
reagents.add_reagent("capsaicin", (potency * potency) / 5)
reagents.add_reagent("nutriment", potency)
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/vale
name = "vale leaves"
desc = "Small, curly leaves covered in a soft pale fur."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "valeleaves"
New(var/loc, var/potency)
..()
reagents.add_reagent("paracetamol", potency * 5)
reagents.add_reagent("dexalin", potency * 2)
reagents.add_reagent("nutriment", potency)
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/surik
name = "surik fruit"
desc = "Multiple layers of blue skin peeling away to reveal a spongey core, vaguely resembling an ear."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "surikfruit"
New(var/loc, var/potency)
..()
reagents.add_reagent("impedrezene", potency * 3)
reagents.add_reagent("synaptizine", potency * 2)
reagents.add_reagent("nutriment", potency)
bitesize = 1+round(reagents.total_volume / 2, 1)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

BIN
sound/items/shovel.ogg Normal file

Binary file not shown.

View File

@@ -405,7 +405,6 @@
#include "code\game\machinery\recharger.dm"
#include "code\game\machinery\rechargestation.dm"
#include "code\game\machinery\requests_console.dm"
#include "code\game\machinery\seed_extractor.dm"
#include "code\game\machinery\shieldgen.dm"
#include "code\game\machinery\Sleeper.dm"
#include "code\game\machinery\status_display.dm"
@@ -1082,7 +1081,9 @@
#include "code\modules\hydroponics\grown_inedible.dm"
#include "code\modules\hydroponics\hydro_tools.dm"
#include "code\modules\hydroponics\hydro_tray.dm"
#include "code\modules\hydroponics\prehistoric_plants.dm"
#include "code\modules\hydroponics\seed_datums.dm"
#include "code\modules\hydroponics\seed_extractor.dm"
#include "code\modules\hydroponics\seed_machines.dm"
#include "code\modules\hydroponics\seed_mobs.dm"
#include "code\modules\hydroponics\seeds.dm"