Files
GS13NG/code/modules/hydroponics/growninedible.dm
T

80 lines
2.1 KiB
Plaintext

// **********************
// Other harvested materials from plants (that are not food)
// **********************
/obj/item/weapon/grown // Grown weapons
name = "grown_weapon"
icon = 'icons/obj/hydroponics/harvest.dmi'
burn_state = FLAMMABLE
var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item.
/obj/item/weapon/grown/New(newloc, var/obj/item/seeds/new_seed = null)
..()
create_reagents(50)
if(new_seed)
seed = new_seed.Copy()
else if(ispath(seed))
// This is for adminspawn or map-placed growns. They get the default stats of their seed type.
seed = new seed()
seed.adjust_potency(50-seed.potency)
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_new(src, newloc)
if(istype(src, seed.product)) // no adding reagents if it is just a trash item
seed.prepare_result(src)
transform *= TransformUsingVariable(seed.potency, 100, 0.5)
add_juice()
/obj/item/weapon/grown/attackby(obj/item/O, mob/user, params)
..()
if (istype(O, /obj/item/device/plant_analyzer))
var/msg = "<span class='info'>*---------*\n This is \a <span class='name'>[src]</span>\n"
if(seed)
msg += seed.get_analyzer_text()
msg += "</span>"
usr << msg
return
/obj/item/weapon/grown/proc/add_juice()
if(reagents)
return 1
return 0
/obj/item/weapon/grown/Crossed(atom/movable/AM)
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_cross(src, AM)
..()
// Glow gene procs
/obj/item/weapon/grown/Destroy()
if(seed)
var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow)
if(G && ismob(loc))
loc.AddLuminosity(-G.get_lum(seed))
return ..()
/obj/item/weapon/grown/pickup(mob/user)
..()
if(seed)
var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow)
if(G)
SetLuminosity(0)
user.AddLuminosity(G.get_lum(seed))
/obj/item/weapon/grown/dropped(mob/user)
..()
if(seed)
var/datum/plant_gene/trait/glow/G = seed.get_gene(/datum/plant_gene/trait/glow)
if(G)
user.AddLuminosity(-G.get_lum(seed))
SetLuminosity(G.get_lum(seed))