mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 12:35:33 +01:00
@@ -17,6 +17,173 @@
|
||||
spawn(0) new/obj/effect/spacevine_controller(T) //spawn a controller at turf
|
||||
|
||||
|
||||
/datum/spacevine_mutation
|
||||
var/name = ""
|
||||
var/severity = 1
|
||||
var/hue
|
||||
|
||||
/datum/spacevine_mutation/proc/process_mutation(obj/effect/spacevine/holder)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/process_temperature(obj/effect/spacevine/holder, temp, volume)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_birth(obj/effect/spacevine/holder)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_grow(obj/effect/spacevine/holder)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_death(obj/effect/spacevine/holder)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_cross(obj/effect/spacevine/holder, mob/crosser)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_chem(obj/effect/spacevine/holder, datum/reagent/R)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_eat(obj/effect/spacevine/holder, mob/living/eater)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_spread(obj/effect/spacevine/holder, turf/target)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_buckle(obj/effect/spacevine/holder, mob/living/buckled)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/toxity
|
||||
name = "toxity"
|
||||
hue = "ff00ff"
|
||||
|
||||
/datum/spacevine_mutation/toxity/on_cross(obj/effect/spacevine/holder, mob/living/crosser)
|
||||
if(issilicon(crosser))
|
||||
return
|
||||
if(prob(severity))
|
||||
if(crosser.client)
|
||||
crosser << "<span class='alert'>You accidently touch the vine and feel a strange sensation.</span>"
|
||||
crosser.adjustToxLoss(5)
|
||||
|
||||
/datum/spacevine_mutation/toxity/on_eat(obj/effect/spacevine/holder, mob/living/eater)
|
||||
eater.adjustToxLoss(5)
|
||||
|
||||
/datum/spacevine_mutation/expsolive //OH SHIT IT CAN CHAINREACT RUN!!!
|
||||
name = "explosive"
|
||||
hue = "ffff00"
|
||||
|
||||
/datum/spacevine_mutation/expsolive/on_death(obj/effect/spacevine/holder, mob/hitter, obj/item/I)
|
||||
spawn(1)
|
||||
explosion(holder.loc, 0, 0, 2, 0)
|
||||
|
||||
/datum/spacevine_mutation/fire_proof
|
||||
name = "fire resist"
|
||||
hue = "ffff88"
|
||||
|
||||
/datum/spacevine_mutation/fire_proof/process_temperature(obj/effect/spacevine/holder, temp, volume)
|
||||
return 1
|
||||
|
||||
/datum/spacevine_mutation/vine_eating
|
||||
name = "vine eating"
|
||||
hue = "ff7777"
|
||||
|
||||
/datum/spacevine_mutation/vine_eating/on_spread(obj/effect/spacevine/holder, turf/target)
|
||||
var/obj/effect/spacevine/prey = locate() in target
|
||||
if(prey && !prey.mutations.Find(src)) //Eat all vines that are not of the same origin
|
||||
prey.Destroy()
|
||||
|
||||
/datum/spacevine_mutation/aggressive_spread //very OP, but im out of other ideas currently
|
||||
name = "aggressive spreading"
|
||||
hue = "777777"
|
||||
|
||||
/datum/spacevine_mutation/aggressive_spread/on_spread(obj/effect/spacevine/holder, turf/target)
|
||||
for(var/atom/A in target)
|
||||
if(!istype(A, /obj/effect))
|
||||
A.ex_act(severity) //To not be the same as self-eating vine
|
||||
|
||||
/datum/spacevine_mutation/agressive_spread/on_buckle(obj/effect/spacevine/holder, mob/living/buckled)
|
||||
buckled.ex_act(severity)
|
||||
|
||||
/datum/spacevine_mutation/transparency
|
||||
name = "transparency"
|
||||
hue = ""
|
||||
|
||||
/datum/spacevine_mutation/transparency/on_grow(obj/effect/spacevine/holder)
|
||||
holder.SetOpacity(0)
|
||||
holder.alpha = 125
|
||||
|
||||
/datum/spacevine_mutation/oxy_eater
|
||||
name = "oxygen consumption"
|
||||
hue = "#ffff88"
|
||||
|
||||
/datum/spacevine_mutation/oxy_eater/process_mutation(obj/effect/spacevine/holder)
|
||||
var/turf/simulated/floor/T = holder.loc
|
||||
var/datum/gas_mixture/GM = T.air
|
||||
GM.oxygen = max(0, GM.oxygen - severity * 0.5 * holder.energy)
|
||||
|
||||
/datum/spacevine_mutation/nitro_eater
|
||||
name = "nitrogen consumption"
|
||||
hue = "#8888ff"
|
||||
|
||||
/datum/spacevine_mutation/nitro_eater/process_mutation(obj/effect/spacevine/holder)
|
||||
var/turf/simulated/floor/T = holder.loc
|
||||
var/datum/gas_mixture/GM = T.air
|
||||
GM.nitrogen = max(0, GM.nitrogen - severity * 0.5 * holder.energy)
|
||||
|
||||
/datum/spacevine_mutation/carbondioxide_eater
|
||||
name = "CO2 consumption"
|
||||
hue = "#00ffff"
|
||||
|
||||
/datum/spacevine_mutation/carbondioxide_eater/process_mutation(obj/effect/spacevine/holder)
|
||||
var/turf/simulated/floor/T = holder.loc
|
||||
var/datum/gas_mixture/GM = T.air
|
||||
GM.carbon_dioxide = max(0, GM.carbon_dioxide - severity * 0.5 * holder.energy)
|
||||
|
||||
/datum/spacevine_mutation/plasma_eater
|
||||
name = "toxins consumption"
|
||||
hue = "#ffbbff"
|
||||
|
||||
/datum/spacevine_mutation/plasma_eater/process_mutation(obj/effect/spacevine/holder)
|
||||
var/turf/simulated/floor/T = holder.loc
|
||||
var/datum/gas_mixture/GM = T.air
|
||||
GM.toxins = max(0, GM.toxins - severity * 0.5 * holder.energy)
|
||||
|
||||
/datum/spacevine_mutation/thorns
|
||||
name = "thorns"
|
||||
hue = "#666666"
|
||||
|
||||
/datum/spacevine_mutation/thorns/on_cross(obj/effect/spacevine/holder, crosser)
|
||||
if(isliving(crosser) && prob(severity))
|
||||
var/mob/living/M = crosser
|
||||
M.adjustBruteLoss(5)
|
||||
M << "<span class='alert'>You cut yourself on the thorny vines.</span>"
|
||||
|
||||
/datum/spacevine_mutation/thorns/on_hit(obj/effect/spacevine/holder, hitter)
|
||||
if(ismob(hitter) && prob(severity))
|
||||
var/mob/living/M = hitter
|
||||
M.adjustBruteLoss(5)
|
||||
M << "<span class='alert'>You cut yourself on the thorny vines.</span>"
|
||||
|
||||
/datum/spacevine_mutation/woodening
|
||||
name = "hardening"
|
||||
hue = "#997700"
|
||||
|
||||
/datum/spacevine_mutation/woodening/on_grow(obj/effect/spacevine/holder)
|
||||
if(holder.energy)
|
||||
holder.density = 1
|
||||
|
||||
/datum/spacevine_mutation/woodening/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I)
|
||||
if(hitter)
|
||||
var/chance
|
||||
if(I)
|
||||
chance = I.force * 2
|
||||
else
|
||||
chance = 8
|
||||
if(prob(chance))
|
||||
holder.Destroy()
|
||||
return 1
|
||||
|
||||
|
||||
// SPACE VINES (Note that this code is very similar to Biomass code)
|
||||
@@ -32,19 +199,50 @@
|
||||
var/energy = 0
|
||||
var/obj/effect/spacevine_controller/master = null
|
||||
var/mob/living/buckled_mob
|
||||
var/list/mutations = list()
|
||||
|
||||
New()
|
||||
return
|
||||
|
||||
Destroy()
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_death(src)
|
||||
if(master)
|
||||
master.vines -= src
|
||||
master.growth_queue -= src
|
||||
if(!master.vines.len)
|
||||
var/obj/item/seeds/kudzuseed/KZ = new(loc)
|
||||
KZ.mutations |= mutations
|
||||
..()
|
||||
|
||||
/obj/effect/spacevine/proc/on_chem_effect(datum/reagent/R)
|
||||
var/override = 0
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
override += SM.on_chem(src, R)
|
||||
if(!override && istype(R, /datum/reagent/toxin/plantbgone))
|
||||
if(prob(50))
|
||||
Destroy()
|
||||
|
||||
/obj/effect/spacevine/proc/eat(mob/eater)
|
||||
var/override = 0
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
override += SM.on_eat(src, eater)
|
||||
if(!override)
|
||||
if(prob(10))
|
||||
eater.say("Nom")
|
||||
|
||||
/obj/effect/spacevine/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (!W || !user || !W.type) return
|
||||
|
||||
var/override = 0
|
||||
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
override += SM.on_hit(src, user)
|
||||
|
||||
if(override)
|
||||
..()
|
||||
return
|
||||
|
||||
switch(W.type)
|
||||
if(/obj/item/weapon/circular_saw) qdel(src)
|
||||
if(/obj/item/weapon/kitchen/utensil/knife) qdel(src)
|
||||
@@ -52,6 +250,11 @@
|
||||
if(/obj/item/weapon/twohanded/fireaxe) qdel(src)
|
||||
if(/obj/item/weapon/hatchet) qdel(src)
|
||||
if(/obj/item/weapon/melee/energy) qdel(src)
|
||||
if(/obj/item/weapon/scythe)
|
||||
for(var/obj/effect/spacevine/B in orange(src,1))
|
||||
if(prob(80))
|
||||
qdel(B)
|
||||
qdel(src)
|
||||
|
||||
//less effective weapons
|
||||
if(/obj/item/weapon/wirecutters)
|
||||
@@ -70,12 +273,20 @@
|
||||
//Plant-b-gone damage is handled in its entry in chemistry-reagents.dm
|
||||
..()
|
||||
|
||||
/obj/effect/spacevine/Crossed(mob/crosser)
|
||||
if(isliving(crosser))
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_cross(src, crosser)
|
||||
|
||||
/obj/effect/spacevine/attack_hand(mob/user as mob)
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_hit(src, user)
|
||||
manual_unbuckle(user)
|
||||
|
||||
|
||||
/obj/effect/spacevine/attack_paw(mob/user as mob)
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_hit(src, user)
|
||||
manual_unbuckle(user)
|
||||
|
||||
/obj/effect/spacevine/proc/unbuckle()
|
||||
@@ -115,25 +326,42 @@
|
||||
var/list/growth_queue = list()
|
||||
var/reached_collapse_size
|
||||
var/reached_slowdown_size
|
||||
var/list/mutations_list = list()
|
||||
var/mutativness = 1
|
||||
//What this does is that instead of having the grow minimum of 1, required to start growing, the minimum will be 0,
|
||||
//meaning if you get the spacevines' size to something less than 20 plots, it won't grow anymore.
|
||||
|
||||
New()
|
||||
New(loc, list/muts, mttv)
|
||||
if(!istype(src.loc,/turf/simulated/floor))
|
||||
qdel(src)
|
||||
|
||||
spawn_spacevine_piece(src.loc)
|
||||
spawn_spacevine_piece(src.loc, , muts)
|
||||
processing_objects.Add(src)
|
||||
init_subtypes(/datum/spacevine_mutation/, mutations_list)
|
||||
if(mttv != null)
|
||||
mutativness = mttv
|
||||
|
||||
Destroy()
|
||||
processing_objects.Remove(src)
|
||||
..()
|
||||
|
||||
proc/spawn_spacevine_piece(var/turf/location)
|
||||
proc/spawn_spacevine_piece(var/turf/location, obj/effect/spacevine/parent, list/muts)
|
||||
var/obj/effect/spacevine/SV = new(location)
|
||||
growth_queue += SV
|
||||
vines += SV
|
||||
SV.master = src
|
||||
if(muts && muts.len)
|
||||
SV.mutations |= muts
|
||||
if(parent)
|
||||
SV.mutations |= parent.mutations
|
||||
SV.color = parent.color
|
||||
if(prob(mutativness))
|
||||
SV.mutations |= pick(mutations_list)
|
||||
var/datum/spacevine_mutation/randmut = pick(SV.mutations)
|
||||
SV.color = randmut.hue
|
||||
|
||||
for(var/datum/spacevine_mutation/SM in SV.mutations)
|
||||
SM.on_birth(SV)
|
||||
|
||||
process()
|
||||
if(!vines)
|
||||
@@ -165,6 +393,8 @@
|
||||
i++
|
||||
queue_end += SV
|
||||
growth_queue -= SV
|
||||
for(var/datum/spacevine_mutation/SM in SV.mutations)
|
||||
SM.process_mutation(SV)
|
||||
if(SV.energy < 2) //If tile isn't fully grown
|
||||
if(prob(20))
|
||||
SV.grow()
|
||||
@@ -190,9 +420,14 @@
|
||||
src.icon_state = pick("Hvy1", "Hvy2", "Hvy3")
|
||||
energy = 2
|
||||
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_grow(src)
|
||||
|
||||
/obj/effect/spacevine/proc/buckle_mob()
|
||||
if(!buckled_mob && prob(25))
|
||||
for(var/mob/living/carbon/V in src.loc)
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_buckle(src, V)
|
||||
if((V.stat != DEAD) && (V.buckled != src)) //if mob not dead or captured
|
||||
V.buckled = src
|
||||
V.loc = src.loc
|
||||
@@ -204,12 +439,14 @@
|
||||
/obj/effect/spacevine/proc/spread()
|
||||
var/direction = pick(cardinal)
|
||||
var/step = get_step(src,direction)
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
SM.on_spread(src, step)
|
||||
if(istype(step,/turf/simulated/floor))
|
||||
var/turf/simulated/floor/F = step
|
||||
if(!locate(/obj/effect/spacevine,F))
|
||||
if(F.Enter(src))
|
||||
if(master)
|
||||
master.spawn_spacevine_piece( F )
|
||||
master.spawn_spacevine_piece(F, src)
|
||||
|
||||
/*
|
||||
/obj/effect/spacevine/proc/Life()
|
||||
@@ -248,18 +485,21 @@
|
||||
/obj/effect/spacevine/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
Destroy()
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(90))
|
||||
qdel(src)
|
||||
Destroy()
|
||||
return
|
||||
if(3.0)
|
||||
if (prob(50))
|
||||
qdel(src)
|
||||
Destroy()
|
||||
return
|
||||
return
|
||||
|
||||
/obj/effect/spacevine/temperature_expose(null, temp, volume) //hotspots kill vines
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spacevine/temperature_expose(null, temp, volume)
|
||||
var/override = 0
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
override += SM.process_temperature(src, temp, volume)
|
||||
if(!override)
|
||||
Destroy()
|
||||
@@ -86,7 +86,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries
|
||||
seed = "/obj/item/seeds/cherryseed"
|
||||
@@ -100,7 +100,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 15), 1))
|
||||
reagents.add_reagent("sugar", 1+round((potency / 15), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/poppy
|
||||
seed = "/obj/item/seeds/poppyseed"
|
||||
@@ -114,7 +114,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("bicaridine", 1+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 3, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 3, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/harebell
|
||||
seed = "obj/item/seeds/harebellseed"
|
||||
@@ -127,7 +127,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 3, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 3, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/potato
|
||||
seed = "/obj/item/seeds/potatoseed"
|
||||
@@ -138,8 +138,8 @@
|
||||
New(var/loc, var/potency = 25)
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = reagents.total_volume
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = reagents.total_volume
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
@@ -165,7 +165,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
reagents.add_reagent("sugar", 1+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/greengrapes
|
||||
seed = "/obj/item/seeds/greengrapeseed"
|
||||
@@ -178,7 +178,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
reagents.add_reagent("kelotane", 3+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage
|
||||
seed = "/obj/item/seeds/cabbageseed"
|
||||
@@ -190,7 +190,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = reagents.total_volume
|
||||
bitesize = reagents.total_volume
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/berries
|
||||
seed = "/obj/item/seeds/berryseed"
|
||||
@@ -202,7 +202,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries
|
||||
seed = "/obj/item/seeds/glowberryseed"
|
||||
@@ -217,7 +217,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", round((potency / 10), 1))
|
||||
reagents.add_reagent("uranium", 3+round(potency / 5, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries/Destroy()
|
||||
if(istype(loc,/mob))
|
||||
@@ -243,7 +243,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
reagents.add_reagent("coco", 4+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane
|
||||
seed = "/obj/item/seeds/sugarcaneseed"
|
||||
@@ -254,7 +254,7 @@
|
||||
New(var/loc, var/potency = 50)
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("sugar", 4+round((potency / 5), 1))
|
||||
reagents.add_reagent("sugar", 4+round((potency / 5), 1))
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries
|
||||
seed = "/obj/item/seeds/poisonberryseed"
|
||||
@@ -268,7 +268,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1)
|
||||
reagents.add_reagent("toxin", 3+round(potency / 5, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/deathberries
|
||||
seed = "/obj/item/seeds/deathberryseed"
|
||||
@@ -283,7 +283,7 @@
|
||||
reagents.add_reagent("nutriment", 1)
|
||||
reagents.add_reagent("toxin", 3+round(potency / 3, 1))
|
||||
reagents.add_reagent("lexorin", 1+round(potency / 5, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
|
||||
seed = "/obj/item/seeds/ambrosiavulgaris"
|
||||
@@ -300,7 +300,7 @@
|
||||
reagents.add_reagent("kelotane", 1+round(potency / 8, 1))
|
||||
reagents.add_reagent("bicaridine", 1+round(potency / 10, 1))
|
||||
reagents.add_reagent("toxin", 1+round(potency / 10, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus
|
||||
seed = "/obj/item/seeds/ambrosiadeus"
|
||||
@@ -317,7 +317,7 @@
|
||||
reagents.add_reagent("synaptizine", 1+round(potency / 8, 1))
|
||||
reagents.add_reagent("hyperzine", 1+round(potency / 10, 1))
|
||||
reagents.add_reagent("space_drugs", 1+round(potency / 10, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/apple
|
||||
seed = "/obj/item/seeds/appleseed"
|
||||
@@ -330,7 +330,7 @@
|
||||
if(reagents)
|
||||
reagents.maximum_volume = 20
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = reagents.maximum_volume // Always eat the apple in one
|
||||
bitesize = reagents.maximum_volume // Always eat the apple in one
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned
|
||||
seed = "/obj/item/seeds/poisonedappleseed"
|
||||
@@ -343,7 +343,7 @@
|
||||
if(reagents)
|
||||
reagents.maximum_volume = 20
|
||||
reagents.add_reagent("cyanide", 1+round((potency / 5), 1))
|
||||
bitesize = reagents.maximum_volume // Always eat the apple in one
|
||||
bitesize = reagents.maximum_volume // Always eat the apple in one
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/goldapple
|
||||
seed = "/obj/item/seeds/goldappleseed"
|
||||
@@ -356,7 +356,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
reagents.add_reagent("gold", 1+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/goldapple/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -375,7 +375,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 6), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin
|
||||
seed = "/obj/item/seeds/pumpkinseed"
|
||||
@@ -387,7 +387,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 6), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
@@ -408,7 +408,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/lemon
|
||||
seed = "/obj/item/seeds/lemonseed"
|
||||
@@ -420,7 +420,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/orange
|
||||
seed = "/obj/item/seeds/orangeseed"
|
||||
@@ -432,7 +432,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet
|
||||
seed = "/obj/item/seeds/whitebeetseed"
|
||||
@@ -445,7 +445,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", round((potency / 20), 1))
|
||||
reagents.add_reagent("sugar", 1+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/banana
|
||||
seed = "/obj/item/seeds/bananaseed"
|
||||
@@ -461,7 +461,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("banana", 1+round((potency / 10), 1))
|
||||
bitesize = 5
|
||||
bitesize = 5
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/chili
|
||||
seed = "/obj/item/seeds/chiliseed"
|
||||
@@ -474,7 +474,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 25), 1))
|
||||
reagents.add_reagent("capsaicin", 3+round(potency / 5, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/chili/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -494,7 +494,7 @@
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 25), 1))
|
||||
reagents.add_reagent("capsaicin", 8+round(potency / 2, 1))
|
||||
reagents.add_reagent("condensedcapsaicin", 4+round(potency / 4, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 4, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 4, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chilli/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -529,7 +529,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans
|
||||
seed = "/obj/item/seeds/soyaseed"
|
||||
@@ -542,7 +542,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/koibeans
|
||||
seed = "/obj/item/seeds/koiseed"
|
||||
@@ -555,7 +555,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 30), 1))
|
||||
reagents.add_reagent("carpotoxin", 1+round((potency / 20), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower
|
||||
seed = "/obj/item/seeds/moonflowerseed"
|
||||
@@ -568,7 +568,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 50), 1))
|
||||
reagents.add_reagent("moonshine", 1+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato
|
||||
seed = "/obj/item/seeds/tomatoseed"
|
||||
@@ -580,7 +580,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
throw_impact(atom/hit_atom)
|
||||
..()
|
||||
@@ -598,7 +598,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/killertomato/attack_self(mob/user as mob)
|
||||
if(istype(user.loc,/turf/space))
|
||||
@@ -619,7 +619,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
|
||||
reagents.add_reagent("blood", 1+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/bloodtomato/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
@@ -642,7 +642,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("lube", 1+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
@@ -677,7 +677,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 25), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/grass
|
||||
seed = "/obj/item/seeds/grassseed"
|
||||
@@ -688,7 +688,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 50), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/grass/attack_self(mob/user as mob)
|
||||
user << "<span class='notice'>You prepare the astroturf.</span>"
|
||||
@@ -706,12 +706,15 @@
|
||||
name = "kudzu pod"
|
||||
desc = "<I>Pueraria Virallis</I>: An invasive species with vines that rapidly creep and wrap around whatever they contact."
|
||||
icon_state = "kudzupod"
|
||||
var/list/mutations = list()
|
||||
var/mutating = 0
|
||||
|
||||
New(var/loc, var/potency = 10)
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 50), 1))
|
||||
reagents.add_reagent("anti_toxin", 1+round((potency / 25), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper
|
||||
seed = "/obj/item/seeds/icepepperseed"
|
||||
@@ -724,7 +727,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 50), 1))
|
||||
reagents.add_reagent("frostoil", 3+round(potency / 5, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -742,7 +745,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("imidazoline", 3+round(potency / 5, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi
|
||||
seed = "/obj/item/seeds/reishimycelium"
|
||||
@@ -756,7 +759,7 @@
|
||||
reagents.add_reagent("nutriment", 1)
|
||||
reagents.add_reagent("anti_toxin", 3+round(potency / 3, 1))
|
||||
reagents.add_reagent("stoxin", 3+round(potency / 3, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -776,7 +779,7 @@
|
||||
reagents.add_reagent("nutriment", 1)
|
||||
reagents.add_reagent("amatoxin", 3+round(potency / 3, 1))
|
||||
reagents.add_reagent("mushroomhallucinogen", 1+round(potency / 25, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -795,7 +798,7 @@
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 50), 1))
|
||||
reagents.add_reagent("amatoxin", 13+round(potency / 3, 1))
|
||||
reagents.add_reagent("mushroomhallucinogen", 1+round(potency / 25, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -814,7 +817,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 50), 1))
|
||||
reagents.add_reagent("mushroomhallucinogen", 3+round(potency / 5, 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
@@ -831,7 +834,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 2+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom
|
||||
seed = "/obj/item/seeds/walkingmushroom"
|
||||
@@ -842,7 +845,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 2+round((potency / 10), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user as mob)
|
||||
if(istype(user.loc,/turf/space))
|
||||
@@ -867,7 +870,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 25), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom
|
||||
seed = "/obj/item/seeds/glowshroom"
|
||||
@@ -887,7 +890,7 @@
|
||||
potency = 30
|
||||
plant_type = 2
|
||||
if(reagents)
|
||||
reagents.add_reagent("radium", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("radium", 1+round((potency / 20), 1))
|
||||
if(istype(src.loc,/mob))
|
||||
pickup(src.loc)//adjusts the lighting on the mob
|
||||
else
|
||||
@@ -959,7 +962,7 @@
|
||||
if(reagents)
|
||||
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("singulo", 1+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/gatfruit
|
||||
seed = "/obj/item/seeds/gatfruit"
|
||||
@@ -975,7 +978,7 @@
|
||||
reagents.add_reagent("carbon", 1+round((potency / 10), 1))
|
||||
reagents.add_reagent("nitrogen", 1+round((potency / 15), 1))
|
||||
reagents.add_reagent("potassium", 1+round((potency / 20), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica
|
||||
@@ -987,7 +990,7 @@
|
||||
New(var/loc, var/potency = 20)
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("coffeepowder", 1+round((potency / 10), 2))
|
||||
reagents.add_reagent("coffeepowder", 1+round((potency / 10), 2))
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta
|
||||
seed = "/obj/item/seeds/coffee_robusta_seed"
|
||||
@@ -999,7 +1002,7 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("coffeepowder", 1+round((potency / 10), 2))
|
||||
reagents.add_reagent("hyperzine", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("hyperzine", 1+round((potency / 20), 1))
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco
|
||||
seed = "/obj/item/seeds/tobacco_seed"
|
||||
@@ -1020,7 +1023,7 @@
|
||||
New(var/loc, var/potency = 20)
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("dexalin", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("dexalin", 1+round((potency / 20), 1))
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera
|
||||
@@ -1032,7 +1035,7 @@
|
||||
New(var/loc, var/potency = 20)
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("teapowder", 1+round((potency / 10), 2))
|
||||
reagents.add_reagent("teapowder", 1+round((potency / 10), 2))
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra
|
||||
@@ -1045,4 +1048,4 @@
|
||||
..()
|
||||
if(reagents)
|
||||
reagents.add_reagent("teapowder", 1+round((potency / 10), 2))
|
||||
reagents.add_reagent("kelotane", 1+round((potency / 20), 1))
|
||||
reagents.add_reagent("kelotane", 1+round((potency / 20), 1))
|
||||
|
||||
@@ -768,9 +768,11 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
/obj/item/seeds/proc/harvest(mob/user = usr)
|
||||
var/obj/machinery/hydroponics/parent = loc //for ease of access
|
||||
var/t_amount = 0
|
||||
var/list/result = list()
|
||||
|
||||
while(t_amount < getYield())
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new product(user.loc, potency) // User gets a consumable
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new product(user.loc, potency)
|
||||
result.Add(t_prod) // User gets a consumable
|
||||
if(!t_prod) return
|
||||
t_prod.seed = type
|
||||
t_prod.lifespan = lifespan
|
||||
@@ -783,6 +785,8 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
t_amount++
|
||||
|
||||
parent.update_tray()
|
||||
|
||||
return result
|
||||
/*
|
||||
/obj/item/seeds/grassseed/harvest(mob/user = usr)
|
||||
var/obj/machinery/hydroponics/parent = loc //for ease of access
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/F = O
|
||||
while(t_amount < t_max)
|
||||
var/obj/item/seeds/t_prod = new F.seed(O.loc)
|
||||
var/obj/item/seeds/t_prod = new F.seed(O.loc, O)
|
||||
t_prod.lifespan = F.lifespan
|
||||
t_prod.endurance = F.endurance
|
||||
t_prod.maturation = F.maturation
|
||||
@@ -21,7 +21,7 @@
|
||||
var/obj/item/weapon/grown/F = O
|
||||
if(F.seed)
|
||||
while(t_amount < t_max)
|
||||
var/obj/item/seeds/t_prod = new F.seed(O.loc)
|
||||
var/obj/item/seeds/t_prod = new F.seed(O.loc, O)
|
||||
t_prod.lifespan = F.lifespan
|
||||
t_prod.endurance = F.endurance
|
||||
t_prod.maturation = F.maturation
|
||||
@@ -55,7 +55,7 @@
|
||||
obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
|
||||
if (istype(O,/obj/item/weapon/storage/bag/plants))
|
||||
var/obj/item/weapon/storage/P = O
|
||||
var/loaded = 0
|
||||
@@ -112,9 +112,9 @@ datum/seed_pile/New(var/name, var/life, var/endur, var/matur, var/prod, var/yie,
|
||||
obj/machinery/seed_extractor/interact(mob/user as mob)
|
||||
if (stat)
|
||||
return 0
|
||||
|
||||
|
||||
var/dat = "<b>Stored seeds:</b><br>"
|
||||
|
||||
|
||||
if (contents.len == 0)
|
||||
dat += "<font color='red'>No seeds</font>"
|
||||
else
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
var/rarity = 0 //How rare the plant is. Used for giving points to cargo when shipping off to Centcom.
|
||||
var/list/mutatelist = list() //The type of plants that this plant can mutate into.
|
||||
|
||||
/obj/item/seeds/New()
|
||||
/obj/item/seeds/New(loc, parent)
|
||||
..()
|
||||
pixel_x = rand(-8, 8)
|
||||
pixel_y = rand(-8, 8)
|
||||
@@ -1033,12 +1033,26 @@
|
||||
growthstages = 4
|
||||
plant_type = 1
|
||||
rarity = 30
|
||||
var/list/mutations = list()
|
||||
var/mutating
|
||||
|
||||
/obj/item/seeds/kudzuseed/New(loc, obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod/parent)
|
||||
..()
|
||||
if(parent)
|
||||
mutations = parent.mutations
|
||||
mutating = parent.mutating
|
||||
|
||||
/obj/item/seeds/kudzuseed/harvest()
|
||||
var/list/prod = ..()
|
||||
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod/K in prod)
|
||||
K.mutations = mutations
|
||||
K.mutating = prob(15)
|
||||
|
||||
/obj/item/seeds/kudzuseed/attack_self(mob/user as mob)
|
||||
if(istype(user.loc,/turf/space))
|
||||
return
|
||||
user << "<span class='notice'>You plant the kudzu. You monster.</span>"
|
||||
new /obj/effect/spacevine_controller(user.loc)
|
||||
new /obj/effect/spacevine_controller(user.loc, mutations)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/seeds/chillighost
|
||||
|
||||
@@ -48,9 +48,7 @@
|
||||
|
||||
if(locate(/obj/effect/spacevine) in loc)
|
||||
var/obj/effect/spacevine/SV = locate(/obj/effect/spacevine) in loc
|
||||
qdel(SV)
|
||||
if(prob(10))
|
||||
say("Nom")
|
||||
SV.eat(src)
|
||||
|
||||
if(!pulledby)
|
||||
for(var/direction in shuffle(list(1,2,4,8,5,6,9,10)))
|
||||
@@ -68,9 +66,8 @@
|
||||
if(!stat)
|
||||
if(locate(/obj/effect/spacevine) in loc)
|
||||
var/obj/effect/spacevine/SV = locate(/obj/effect/spacevine) in loc
|
||||
qdel(SV)
|
||||
if(prob(10))
|
||||
say("Nom")
|
||||
SV.eat(src)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass))
|
||||
|
||||
@@ -1495,8 +1495,8 @@ datum
|
||||
else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
|
||||
qdel(O)
|
||||
else if(istype(O,/obj/effect/spacevine))
|
||||
if(prob(50)) qdel(O) //Kills kudzu too.
|
||||
// Damage that is done to growing plants is separately at code/game/machinery/hydroponics at obj/item/hydroponics
|
||||
var/obj/effect/spacevine/SV = O
|
||||
SV.on_chem_effect(src)
|
||||
|
||||
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
src = null
|
||||
|
||||
Reference in New Issue
Block a user