diff --git a/code/game/machinery/bees_apiary.dm b/code/game/machinery/bees_apiary.dm index 22efa646478..f2098e7481c 100644 --- a/code/game/machinery/bees_apiary.dm +++ b/code/game/machinery/bees_apiary.dm @@ -187,8 +187,6 @@ //have a few beneficial effects on nearby plants if(prob(10)) H.lastcycle -= 5 - if(prob(10)) - H.seed.set_trait(TRAIT_LIFESPAN,max(H.seed.get_trait(TRAIT_LIFESPAN)*1.5,H.seed.get_trait(TRAIT_LIFESPAN)+1)) if(prob(10)) H.seed.set_trait(TRAIT_ENDURANCE,max(H.seed.get_trait(TRAIT_ENDURANCE)*1.5,H.seed.get_trait(TRAIT_ENDURANCE)+1)) if(H.toxins && prob(10)) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d78524b2944..6030a8be1d3 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1007,6 +1007,18 @@ var/global/floorIsLava = 0 var/datum/seed/S = seed_types[seedtype] S.harvest(usr,0,0,1) +/datum/admins/proc/spawn_plant() + set category = "Debug" + set desc = "Spawn a spreading plant effect." + set name = "Spawn Plant" + + if(!check_rights(R_SPAWN)) return + + var/seedtype = input("Select a seed type", "Spawn Plant") as null|anything in seed_types + if(!seedtype || !seed_types[seedtype]) + return + new /obj/effect/plant(get_turf(usr), seed_types[seedtype]) + /datum/admins/proc/spawn_atom(var/object as text) set category = "Debug" set desc = "(atom path) Spawn an atom" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 0835c311fa8..c497c65053a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -108,6 +108,7 @@ var/list/admin_verbs_fun = list( ) var/list/admin_verbs_spawn = list( /datum/admins/proc/spawn_fruit, + /datum/admins/proc/spawn_plant, /datum/admins/proc/spawn_atom, /*allows us to spawn instances*/ /client/proc/respawn_character ) diff --git a/code/modules/hydroponics/_hydro_setup.dm b/code/modules/hydroponics/_hydro_setup.dm index 4e29644598b..69ece2ac9ea 100644 --- a/code/modules/hydroponics/_hydro_setup.dm +++ b/code/modules/hydroponics/_hydro_setup.dm @@ -38,16 +38,15 @@ #define TRAIT_WEED_TOLERANCE 28 #define TRAIT_ENDURANCE 29 #define TRAIT_YIELD 30 -#define TRAIT_LIFESPAN 31 -#define TRAIT_SPREAD 32 -#define TRAIT_MATURATION 33 -#define TRAIT_PRODUCTION 34 -#define TRAIT_TELEPORTING 35 -#define TRAIT_PLANT_COLOUR 36 -#define TRAIT_PRODUCT_COLOUR 37 -#define TRAIT_BIOLUM 38 -#define TRAIT_BIOLUM_COLOUR 39 -#define TRAIT_FLOWERS 40 -#define TRAIT_FLOWER_ICON 41 -#define TRAIT_FLOWER_COLOUR 42 -#define TRAIT_IMMUTABLE 43 \ No newline at end of file +#define TRAIT_SPREAD 31 +#define TRAIT_MATURATION 32 +#define TRAIT_PRODUCTION 33 +#define TRAIT_TELEPORTING 34 +#define TRAIT_PLANT_COLOUR 35 +#define TRAIT_PRODUCT_COLOUR 36 +#define TRAIT_BIOLUM 37 +#define TRAIT_BIOLUM_COLOUR 38 +#define TRAIT_FLOWERS 39 +#define TRAIT_FLOWER_ICON 40 +#define TRAIT_FLOWER_COLOUR 41 +#define TRAIT_IMMUTABLE 42 \ No newline at end of file diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index 3e034fd870f..d7f11fbdb3f 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -55,7 +55,6 @@ dat += "" dat += "" dat += "" - dat += "" dat += "" dat += "" dat += "" diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm index efd363ed9ab..78b12378e03 100644 --- a/code/modules/hydroponics/hydro_tray.dm +++ b/code/modules/hydroponics/hydro_tray.dm @@ -276,21 +276,12 @@ health -= HYDRO_SPEED_MULTIPLIER // Handle life and death. - // If the plant is too old, it loses health fast. - if(age > seed.get_trait(TRAIT_LIFESPAN)) - health -= rand(3,5) * HYDRO_SPEED_MULTIPLIER - // When the plant dies, weeds thrive and pests die off. - if(health <= 0) - dead = 1 - mutation_level = 0 - harvest = 0 - weedlevel += 1 * HYDRO_SPEED_MULTIPLIER - pestlevel = 0 + check_health() // If enough time (in cycles, not ticks) has passed since the plant was harvested, we're ready to harvest again. - else if(seed.products && seed.products.len && \ - (age > seed.get_trait(TRAIT_PRODUCTION)) && \ + if(seed.products && seed.products.len && \ + (age > seed.get_trait(TRAIT_MATURATION)) && \ ((age - lastproduce) > seed.get_trait(TRAIT_PRODUCTION)) && \ (!harvest && !dead)) @@ -304,9 +295,21 @@ if(seed && seed.can_self_harvest && harvest && !closed_system && prob(5)) harvest() + check_health() + return + +/obj/machinery/portable_atmospherics/hydroponics/proc/check_health() + if(seed && !dead && health <= 0) + die() check_level_sanity() update_icon() - return + +/obj/machinery/portable_atmospherics/hydroponics/proc/die() + dead = 1 + mutation_level = 0 + harvest = 0 + weedlevel += 1 * HYDRO_SPEED_MULTIPLIER + pestlevel = 0 //Process reagents being input into the tray. /obj/machinery/portable_atmospherics/hydroponics/proc/process_reagents() @@ -357,8 +360,7 @@ toxins -= round(water_added/4) temp_chem_holder.reagents.clear_reagents() - check_level_sanity() - update_icon() + check_health() //Harvests the product of a plant. /obj/machinery/portable_atmospherics/hydroponics/proc/harvest(var/mob/user) @@ -388,8 +390,7 @@ sampled = 0 mutation_mod = 0 - check_level_sanity() - update_icon() + check_health() return //Clears out a dead plant. @@ -408,8 +409,7 @@ mutation_mod = 0 user << "You remove the dead plant." - check_level_sanity() - update_icon() + check_health() return //Refreshes the icon and sets the luminosity @@ -592,7 +592,7 @@ sampled = 1 // Bookkeeping. - check_level_sanity() + check_health() force_update = 1 process() @@ -646,8 +646,7 @@ del(O) - check_level_sanity() - update_icon() + check_health() else user << "\The [src] already has seeds in it!" @@ -681,9 +680,7 @@ user << "You spray [src] with [O]." playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) del(O) - - check_level_sanity() - update_icon() + check_health() else if(mechanical && istype(O, /obj/item/weapon/wrench)) @@ -708,6 +705,11 @@ A.icon_state = src.icon_state A.hydrotray_type = src.type del(src) + else if(O.force && seed) + user.visible_message("\The [src] attacks the [seed.display_name] with \the [O]!") + if(!dead) + health -= O.force + check_health() return /obj/machinery/portable_atmospherics/hydroponics/attack_tk(mob/user as mob) @@ -827,8 +829,7 @@ health = seed.get_trait(TRAIT_ENDURANCE) lastcycle = world.time pixel_y = rand(-5,5) - check_level_sanity() - update_icon() + check_health() /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/remove_dead() ..() diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 74c9063f6d8..b0fe9784f1c 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -484,7 +484,6 @@ proc/populate_seed_list() set_trait(TRAIT_YIELD,rand(3,15)) set_trait(TRAIT_MATURATION,rand(5,15)) set_trait(TRAIT_PRODUCTION,get_trait(TRAIT_MATURATION)+rand(2,5)) - set_trait(TRAIT_LIFESPAN,get_trait(TRAIT_PRODUCTION)+rand(5,10)) //Returns a key corresponding to an entry in the global seed list. /datum/seed/proc/get_mutant_variant() @@ -503,7 +502,6 @@ proc/populate_seed_list() for(var/i = 0;i\The [display_name] withers rapidly!") if(1) @@ -533,7 +531,6 @@ proc/populate_seed_list() if(prob(degree*5)) set_trait(TRAIT_PARASITE,!get_trait(TRAIT_PARASITE)) if(7) - set_trait(TRAIT_LIFESPAN, get_trait(TRAIT_LIFESPAN)+(rand(-2,2)*degree),30,10) if(get_trait(TRAIT_YIELD) != -1) set_trait(TRAIT_YIELD, get_trait(TRAIT_YIELD)+(rand(-2,2)*degree),10,0) if(8) @@ -580,7 +577,7 @@ proc/populate_seed_list() // 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. if(gene.genetype == GENE_PRODUCTS) - for(var/trait in list(TRAIT_YIELD, TRAIT_ENDURANCE, TRAIT_LIFESPAN)) + 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(!products) products = list() @@ -642,7 +639,7 @@ proc/populate_seed_list() if(GENE_RESISTANCE) traits_to_copy = list(TRAIT_TOXINS_TOLERANCE,TRAIT_PEST_TOLERANCE,TRAIT_WEED_TOLERANCE) if(GENE_VIGOUR) - traits_to_copy = list(TRAIT_ENDURANCE,TRAIT_YIELD,TRAIT_LIFESPAN,TRAIT_SPREAD,TRAIT_MATURATION,TRAIT_PRODUCTION,TRAIT_TELEPORTING) + traits_to_copy = list(TRAIT_ENDURANCE,TRAIT_YIELD,TRAIT_SPREAD,TRAIT_MATURATION,TRAIT_PRODUCTION,TRAIT_TELEPORTING) if(GENE_FLOWERS) traits_to_copy = list(TRAIT_PLANT_COLOUR,TRAIT_PRODUCT_COLOUR,TRAIT_BIOLUM,TRAIT_BIOLUM_COLOUR,TRAIT_FLOWERS,TRAIT_FLOWER_ICON,TRAIT_FLOWER_COLOUR) @@ -762,7 +759,6 @@ proc/populate_seed_list() set_trait(TRAIT_PARASITE, 0) // 0 = no, 1 = gain health from weed level. set_trait(TRAIT_STINGS, 0) // Can cause damage/inject reagents when thrown or handled. set_trait(TRAIT_YIELD, 0) // Amount of product. - set_trait(TRAIT_LIFESPAN, 0) // Time before the plant dies. set_trait(TRAIT_SPREAD, 0) // 0 limits plant to tray, 1 = creepers, 2 = vines. set_trait(TRAIT_MATURATION, 0) // Time taken before the plant is mature. set_trait(TRAIT_PRODUCTION, 0) // Time before harvesting can be undertaken again. @@ -811,7 +807,6 @@ proc/populate_seed_list() /datum/seed/chili/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,20) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,4) @@ -847,7 +842,6 @@ proc/populate_seed_list() ..() set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_JUICY,1) - set_trait(TRAIT_LIFESPAN,20) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,2) @@ -869,7 +863,6 @@ proc/populate_seed_list() set_trait(TRAIT_SPREAD,1) set_trait(TRAIT_BIOLUM,1) set_trait(TRAIT_BIOLUM_COLOUR,"#006622") - set_trait(TRAIT_LIFESPAN,30) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,2) @@ -914,7 +907,6 @@ proc/populate_seed_list() /datum/seed/nettle/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,30) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,4) @@ -952,7 +944,6 @@ proc/populate_seed_list() ..() set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_JUICY,1) - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,2) @@ -1028,7 +1019,6 @@ proc/populate_seed_list() /datum/seed/eggplant/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,2) @@ -1046,7 +1036,6 @@ proc/populate_seed_list() /datum/seed/eggplant/eggs/New() ..() - set_trait(TRAIT_LIFESPAN,75) set_trait(TRAIT_PRODUCTION,12) set_trait(TRAIT_PRODUCT_COLOUR,"#E7EDD1") @@ -1062,7 +1051,6 @@ proc/populate_seed_list() /datum/seed/apple/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,55) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,5) @@ -1105,7 +1093,6 @@ proc/populate_seed_list() /datum/seed/ambrosia/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,60) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,6) @@ -1140,7 +1127,6 @@ proc/populate_seed_list() /datum/seed/mushroom/New() ..() - set_trait(TRAIT_LIFESPAN,35) set_trait(TRAIT_MATURATION,7) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,5) @@ -1160,7 +1146,6 @@ proc/populate_seed_list() /datum/seed/mushroom/mold/New() ..() set_trait(TRAIT_SPREAD,1) - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_YIELD,-1) set_trait(TRAIT_PRODUCT_ICON,"mushroom5") @@ -1178,7 +1163,6 @@ proc/populate_seed_list() /datum/seed/mushroom/plump/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_YIELD,4) set_trait(TRAIT_POTENCY,0) @@ -1231,7 +1215,6 @@ proc/populate_seed_list() /datum/seed/mushroom/hallucinogenic/strong/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_POTENCY,15) set_trait(TRAIT_PRODUCT_ICON,"mushroom8") @@ -1249,7 +1232,6 @@ proc/populate_seed_list() /datum/seed/mushroom/poison/New() ..() - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,4) @@ -1286,7 +1268,6 @@ proc/populate_seed_list() /datum/seed/mushroom/towercap/New() ..() - set_trait(TRAIT_LIFESPAN,80) set_trait(TRAIT_MATURATION,15) set_trait(TRAIT_PRODUCT_ICON,"mushroom7") set_trait(TRAIT_PRODUCT_COLOUR,"#79A36D") @@ -1304,7 +1285,6 @@ proc/populate_seed_list() /datum/seed/mushroom/glowshroom/New() ..() set_trait(TRAIT_SPREAD,1) - set_trait(TRAIT_LIFESPAN,120) set_trait(TRAIT_MATURATION,15) set_trait(TRAIT_YIELD,3) set_trait(TRAIT_EXPLOSIVE,1) @@ -1326,7 +1306,6 @@ proc/populate_seed_list() /datum/seed/mushroom/plastic/New() ..() - set_trait(TRAIT_LIFESPAN,15) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,6) @@ -1346,7 +1325,6 @@ proc/populate_seed_list() /datum/seed/flower/New() ..() - set_trait(TRAIT_LIFESPAN,100) set_trait(TRAIT_MATURATION,7) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,2) @@ -1364,7 +1342,6 @@ proc/populate_seed_list() /datum/seed/flower/poppy/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_POTENCY,20) set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_PRODUCTION,6) @@ -1381,7 +1358,6 @@ proc/populate_seed_list() /datum/seed/flower/sunflower/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCT_ICON,"flower2") set_trait(TRAIT_PRODUCT_COLOUR,"#FFF700") @@ -1399,7 +1375,6 @@ proc/populate_seed_list() /datum/seed/grapes/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,4) @@ -1432,7 +1407,6 @@ proc/populate_seed_list() /datum/seed/peanuts/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,55) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,6) @@ -1451,7 +1425,6 @@ proc/populate_seed_list() /datum/seed/cabbage/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,4) @@ -1471,7 +1444,6 @@ proc/populate_seed_list() /datum/seed/banana/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,3) @@ -1489,7 +1461,6 @@ proc/populate_seed_list() /datum/seed/corn/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,3) @@ -1509,7 +1480,6 @@ proc/populate_seed_list() /datum/seed/potato/New() ..() set_trait(TRAIT_PRODUCES_POWER,1) - set_trait(TRAIT_LIFESPAN,30) set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,4) @@ -1528,7 +1498,6 @@ proc/populate_seed_list() /datum/seed/soybean/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,4) set_trait(TRAIT_PRODUCTION,4) set_trait(TRAIT_YIELD,3) @@ -1546,7 +1515,6 @@ proc/populate_seed_list() /datum/seed/wheat/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,4) @@ -1565,7 +1533,6 @@ proc/populate_seed_list() /datum/seed/rice/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,4) @@ -1584,7 +1551,6 @@ proc/populate_seed_list() /datum/seed/carrots/New() ..() - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,5) @@ -1600,7 +1566,6 @@ proc/populate_seed_list() /datum/seed/weeds/New() ..() - set_trait(TRAIT_LIFESPAN,100) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,-1) @@ -1620,7 +1585,6 @@ proc/populate_seed_list() /datum/seed/whitebeets/New() ..() - set_trait(TRAIT_LIFESPAN,60) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,6) @@ -1640,7 +1604,6 @@ proc/populate_seed_list() /datum/seed/sugarcane/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,60) set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,4) @@ -1661,7 +1624,6 @@ proc/populate_seed_list() ..() set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_JUICY,1) - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,3) @@ -1681,7 +1643,6 @@ proc/populate_seed_list() /datum/seed/pumpkin/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,3) @@ -1702,7 +1663,6 @@ proc/populate_seed_list() ..() set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_JUICY,1) - set_trait(TRAIT_LIFESPAN,55) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,4) @@ -1739,7 +1699,6 @@ proc/populate_seed_list() /datum/seed/grass/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,60) set_trait(TRAIT_MATURATION,2) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,5) @@ -1758,7 +1717,6 @@ proc/populate_seed_list() /datum/seed/cocoa/New() ..() set_trait(TRAIT_HARVEST_REPEAT,1) - set_trait(TRAIT_LIFESPAN,20) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,2) @@ -1779,7 +1737,6 @@ proc/populate_seed_list() ..() set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_JUICY,1) - set_trait(TRAIT_LIFESPAN,35) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,3) @@ -1797,7 +1754,6 @@ proc/populate_seed_list() /datum/seed/kudzu/New() ..() - set_trait(TRAIT_LIFESPAN,20) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,4) @@ -1819,7 +1775,6 @@ proc/populate_seed_list() /datum/seed/diona/New() ..() set_trait(TRAIT_IMMUTABLE,1) - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_ENDURANCE,8) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,10) @@ -1839,7 +1794,6 @@ proc/populate_seed_list() /datum/seed/shand/New() ..() - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,4) @@ -1858,7 +1812,6 @@ proc/populate_seed_list() /datum/seed/mtear/New() ..() - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_YIELD,4) @@ -1877,7 +1830,6 @@ proc/populate_seed_list() /datum/seed/telriis/New() ..() set_trait(TRAIT_PLANT_ICON,"telriis") - set_trait(TRAIT_LIFESPAN,50) set_trait(TRAIT_ENDURANCE,50) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,5) @@ -1893,7 +1845,6 @@ proc/populate_seed_list() /datum/seed/thaadra/New() ..() set_trait(TRAIT_PLANT_ICON,"thaadra") - set_trait(TRAIT_LIFESPAN,20) set_trait(TRAIT_ENDURANCE,10) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,9) @@ -1909,7 +1860,6 @@ proc/populate_seed_list() /datum/seed/jurlmah/New() ..() set_trait(TRAIT_PLANT_ICON,"jurlmah") - set_trait(TRAIT_LIFESPAN,20) set_trait(TRAIT_ENDURANCE,12) set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_PRODUCTION,9) @@ -1925,7 +1875,6 @@ proc/populate_seed_list() /datum/seed/amauri/New() ..() set_trait(TRAIT_PLANT_ICON,"amauri") - set_trait(TRAIT_LIFESPAN,30) set_trait(TRAIT_ENDURANCE,10) set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_PRODUCTION,9) @@ -1941,7 +1890,6 @@ proc/populate_seed_list() /datum/seed/gelthi/New() ..() set_trait(TRAIT_PLANT_ICON,"gelthi") - set_trait(TRAIT_LIFESPAN,20) set_trait(TRAIT_ENDURANCE,15) set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_PRODUCTION,6) @@ -1957,7 +1905,6 @@ proc/populate_seed_list() /datum/seed/vale/New() ..() set_trait(TRAIT_PLANT_ICON,"vale") - set_trait(TRAIT_LIFESPAN,25) set_trait(TRAIT_ENDURANCE,15) set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_PRODUCTION,10) @@ -1973,7 +1920,6 @@ proc/populate_seed_list() /datum/seed/surik/New() ..() set_trait(TRAIT_PLANT_ICON,"surik") - set_trait(TRAIT_LIFESPAN,30) set_trait(TRAIT_ENDURANCE,18) set_trait(TRAIT_MATURATION,7) set_trait(TRAIT_PRODUCTION,7) diff --git a/code/modules/hydroponics/spread_plant.dm b/code/modules/hydroponics/spread_plant.dm index 302dde78132..fdecb335aa5 100644 --- a/code/modules/hydroponics/spread_plant.dm +++ b/code/modules/hydroponics/spread_plant.dm @@ -25,7 +25,6 @@ spread_chance = 0 /obj/effect/plant/New(var/newloc, var/datum/seed/newseed) - ..() if(!istype(newseed)) newseed = seed_types[DEFAULT_SEED] @@ -34,7 +33,8 @@ del(src) return - max_health = seed.get_trait(TRAIT_ENDURANCE) + name = seed.display_name + max_health = round(seed.get_trait(TRAIT_ENDURANCE)/2) health = max_health set_dir(calc_dir()) @@ -45,7 +45,7 @@ /obj/effect/plant/update_icon() // TODO: convert this to an icon cache. - icon_state = "[seed.get_trait(TRAIT_PLANT_ICON)]-[rand(1,max(1,round(seed.growth_stages/2)))]" + icon_state = "[seed.get_trait(TRAIT_PLANT_ICON)]-[rand(1,max(1,seed.growth_stages-1))]" color = seed.get_trait(TRAIT_PLANT_COLOUR) if(!floor) // This should make the plant grow flush against the wall it's meant to be growing from. @@ -75,6 +75,10 @@ /obj/effect/plant/Del() processing_objects -= src ..() +/obj/effect/plant/examine() + ..() + usr << "Max dist from parent is [round(seed.get_trait(TRAIT_POTENCY)/15)]." + usr << "Current dist is [get_dist(get_root(),src)]." /obj/effect/plant/proc/die_off() // Kill off any of our children (and add an added bonus, other plants in this area) @@ -97,7 +101,7 @@ health -= seed.handle_environment(T, T.return_air(),1) // Hibernating or too far from parent, no chance of spreading. - if(hibernating || (parent && (get_dist(parent,src) > seed.get_trait(TRAIT_POTENCY)/15))) + if(hibernating || (parent && (get_dist(get_root(),src) > round(seed.get_trait(TRAIT_POTENCY)/15)))) return // Count our neighbors and possible locations for spreading.
Endurance[grown_seed.get_trait(TRAIT_ENDURANCE)]
Yield[grown_seed.get_trait(TRAIT_YIELD)]
Lifespan[grown_seed.get_trait(TRAIT_LIFESPAN)]
Maturation time[grown_seed.get_trait(TRAIT_MATURATION)]
Production time[grown_seed.get_trait(TRAIT_PRODUCTION)]
Potency[grown_seed.get_trait(TRAIT_POTENCY)]