mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 19:22:56 +00:00
Readded mob products.
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
var/kitchen_tag // Used by the reagent grinder.
|
var/kitchen_tag // Used by the reagent grinder.
|
||||||
var/trash_type // Garbage item produced when eaten.
|
var/trash_type // Garbage item produced when eaten.
|
||||||
var/splat_type = /obj/effect/decal/cleanable/fruit_smudge // Graffiti decal.
|
var/splat_type = /obj/effect/decal/cleanable/fruit_smudge // Graffiti decal.
|
||||||
|
var/has_mob_product
|
||||||
|
|
||||||
/datum/seed/New()
|
/datum/seed/New()
|
||||||
|
|
||||||
@@ -506,40 +507,48 @@
|
|||||||
|
|
||||||
// Splicing products has some detrimental effects on yield and lifespan.
|
// Splicing products has some detrimental effects on yield and lifespan.
|
||||||
// We handle this before we do the rest of the looping, as normal traits don't really include lists.
|
// We handle this before we do the rest of the looping, as normal traits don't really include lists.
|
||||||
if(gene.genetype == GENE_BIOCHEMISTRY)
|
switch(gene.genetype)
|
||||||
for(var/trait in list(TRAIT_YIELD, TRAIT_ENDURANCE))
|
if(GENE_BIOCHEMISTRY)
|
||||||
if(get_trait(trait) > 0) set_trait(trait,get_trait(trait),null,1,0.85)
|
for(var/trait in list(TRAIT_YIELD, TRAIT_ENDURANCE))
|
||||||
|
if(get_trait(trait) > 0) set_trait(trait,get_trait(trait),null,1,0.85)
|
||||||
|
|
||||||
if(!chems) chems = list()
|
if(!chems) chems = list()
|
||||||
|
|
||||||
var/list/gene_value = gene.values["[TRAIT_CHEMS]"]
|
var/list/gene_value = gene.values["[TRAIT_CHEMS]"]
|
||||||
for(var/rid in gene_value)
|
for(var/rid in gene_value)
|
||||||
|
|
||||||
var/list/gene_chem = gene_value[rid]
|
var/list/gene_chem = gene_value[rid]
|
||||||
|
|
||||||
if(!chems[rid])
|
if(!chems[rid])
|
||||||
chems[rid] = gene_chem.Copy()
|
chems[rid] = gene_chem.Copy()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for(var/i=1;i<=gene_chem.len;i++)
|
for(var/i=1;i<=gene_chem.len;i++)
|
||||||
|
|
||||||
if(isnull(gene_chem[i])) gene_chem[i] = 0
|
if(isnull(gene_chem[i])) gene_chem[i] = 0
|
||||||
|
|
||||||
if(chems[rid][i])
|
if(chems[rid][i])
|
||||||
chems[rid][i] = max(1,round((gene_chem[i] + chems[rid][i])/2))
|
chems[rid][i] = max(1,round((gene_chem[i] + chems[rid][i])/2))
|
||||||
else
|
else
|
||||||
chems[rid][i] = gene_chem[i]
|
chems[rid][i] = gene_chem[i]
|
||||||
|
|
||||||
var/list/new_gasses = gene.values["[TRAIT_EXUDE_GASSES]"]
|
var/list/new_gasses = gene.values["[TRAIT_EXUDE_GASSES]"]
|
||||||
if(islist(new_gasses))
|
if(islist(new_gasses))
|
||||||
if(!exude_gasses) exude_gasses = list()
|
if(!exude_gasses) exude_gasses = list()
|
||||||
exude_gasses |= new_gasses
|
exude_gasses |= new_gasses
|
||||||
for(var/gas in exude_gasses)
|
for(var/gas in exude_gasses)
|
||||||
exude_gasses[gas] = max(1,round(exude_gasses[gas]*0.8))
|
exude_gasses[gas] = max(1,round(exude_gasses[gas]*0.8))
|
||||||
|
|
||||||
else if(gene.genetype == GENE_DIET)
|
gene.values["[TRAIT_EXUDE_GASSES]"] = null
|
||||||
var/list/new_gasses = gene.values["[TRAIT_CONSUME_GASSES]"]
|
gene.values["[TRAIT_CHEMS]"] = null
|
||||||
consume_gasses |= new_gasses
|
|
||||||
|
if(GENE_DIET)
|
||||||
|
var/list/new_gasses = gene.values["[TRAIT_CONSUME_GASSES]"]
|
||||||
|
consume_gasses |= new_gasses
|
||||||
|
gene.values["[TRAIT_CONSUME_GASSES]"] = null
|
||||||
|
if(GENE_METABOLISM)
|
||||||
|
has_mob_product = gene.values["mob_product"]
|
||||||
|
gene.values["mob_product"] = null
|
||||||
|
|
||||||
for(var/trait in gene.values)
|
for(var/trait in gene.values)
|
||||||
set_trait(trait,gene.values["[trait]"])
|
set_trait(trait,gene.values["[trait]"])
|
||||||
@@ -568,6 +577,7 @@
|
|||||||
if(GENE_HARDINESS)
|
if(GENE_HARDINESS)
|
||||||
traits_to_copy = list(TRAIT_TOXINS_TOLERANCE,TRAIT_PEST_TOLERANCE,TRAIT_WEED_TOLERANCE,TRAIT_ENDURANCE)
|
traits_to_copy = list(TRAIT_TOXINS_TOLERANCE,TRAIT_PEST_TOLERANCE,TRAIT_WEED_TOLERANCE,TRAIT_ENDURANCE)
|
||||||
if(GENE_METABOLISM)
|
if(GENE_METABOLISM)
|
||||||
|
P.values["mob_product"] = has_mob_product
|
||||||
traits_to_copy = list(TRAIT_REQUIRES_NUTRIENTS,TRAIT_REQUIRES_WATER,TRAIT_ALTER_TEMP)
|
traits_to_copy = list(TRAIT_REQUIRES_NUTRIENTS,TRAIT_REQUIRES_WATER,TRAIT_ALTER_TEMP)
|
||||||
if(GENE_VIGOUR)
|
if(GENE_VIGOUR)
|
||||||
traits_to_copy = list(TRAIT_PRODUCTION,TRAIT_MATURATION,TRAIT_YIELD,TRAIT_SPREAD)
|
traits_to_copy = list(TRAIT_PRODUCTION,TRAIT_MATURATION,TRAIT_YIELD,TRAIT_SPREAD)
|
||||||
@@ -626,7 +636,11 @@
|
|||||||
|
|
||||||
currently_querying = list()
|
currently_querying = list()
|
||||||
for(var/i = 0;i<total_yield;i++)
|
for(var/i = 0;i<total_yield;i++)
|
||||||
var/obj/item/product = new /obj/item/weapon/reagent_containers/food/snacks/grown(get_turf(user),name)
|
var/obj/item/product
|
||||||
|
if(has_mob_product)
|
||||||
|
product = new has_mob_product(get_turf(user),name)
|
||||||
|
else
|
||||||
|
product = new /obj/item/weapon/reagent_containers/food/snacks/grown(get_turf(user),name)
|
||||||
if(get_trait(TRAIT_PRODUCT_COLOUR))
|
if(get_trait(TRAIT_PRODUCT_COLOUR))
|
||||||
product.color = get_trait(TRAIT_PRODUCT_COLOUR)
|
product.color = get_trait(TRAIT_PRODUCT_COLOUR)
|
||||||
if(istype(product,/obj/item/weapon/reagent_containers/food))
|
if(istype(product,/obj/item/weapon/reagent_containers/food))
|
||||||
@@ -659,13 +673,13 @@
|
|||||||
|
|
||||||
//Set up some basic information.
|
//Set up some basic information.
|
||||||
var/datum/seed/new_seed = new
|
var/datum/seed/new_seed = new
|
||||||
new_seed.name = "new line"
|
new_seed.name = "new line"
|
||||||
new_seed.uid = 0
|
new_seed.uid = 0
|
||||||
new_seed.roundstart = 0
|
new_seed.roundstart = 0
|
||||||
new_seed.can_self_harvest = can_self_harvest
|
new_seed.can_self_harvest = can_self_harvest
|
||||||
new_seed.kitchen_tag = kitchen_tag
|
new_seed.kitchen_tag = kitchen_tag
|
||||||
new_seed.trash_type = trash_type
|
new_seed.trash_type = trash_type
|
||||||
|
new_seed.has_mob_product = has_mob_product
|
||||||
//Copy over everything else.
|
//Copy over everything else.
|
||||||
if(mutants) new_seed.mutants = mutants.Copy()
|
if(mutants) new_seed.mutants = mutants.Copy()
|
||||||
if(chems) new_seed.chems = chems.Copy()
|
if(chems) new_seed.chems = chems.Copy()
|
||||||
|
|||||||
@@ -172,6 +172,7 @@
|
|||||||
display_name = "killer tomato plant"
|
display_name = "killer tomato plant"
|
||||||
mutants = null
|
mutants = null
|
||||||
can_self_harvest = 1
|
can_self_harvest = 1
|
||||||
|
has_mob_product = /mob/living/simple_animal/tomato
|
||||||
|
|
||||||
/datum/seed/tomato/killer/New()
|
/datum/seed/tomato/killer/New()
|
||||||
..()
|
..()
|
||||||
@@ -360,6 +361,7 @@
|
|||||||
display_name = "walking mushrooms"
|
display_name = "walking mushrooms"
|
||||||
mutants = null
|
mutants = null
|
||||||
can_self_harvest = 1
|
can_self_harvest = 1
|
||||||
|
has_mob_product = /mob/living/simple_animal/mushroom
|
||||||
|
|
||||||
/datum/seed/mushroom/plump/walking/New()
|
/datum/seed/mushroom/plump/walking/New()
|
||||||
..()
|
..()
|
||||||
@@ -941,6 +943,7 @@
|
|||||||
seed_noun = "nodes"
|
seed_noun = "nodes"
|
||||||
display_name = "replicant pods"
|
display_name = "replicant pods"
|
||||||
can_self_harvest = 1
|
can_self_harvest = 1
|
||||||
|
has_mob_product = /mob/living/carbon/alien/diona
|
||||||
|
|
||||||
/datum/seed/diona/New()
|
/datum/seed/diona/New()
|
||||||
..()
|
..()
|
||||||
|
|||||||
Reference in New Issue
Block a user