diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 539b41de722..e28cf2da6fb 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -4,6 +4,7 @@
icon_state = "hydrotray"
density = 1
anchored = 1
+ pixel_y=8
var/waterlevel = 100 //The amount of water in the tray (max 100)
var/maxwater = 100 //The maximum amount of water in the tray
var/nutrilevel = 10 //The amount of nutrient in the tray (max 10)
@@ -23,11 +24,10 @@
var/obj/item/seeds/myseed = null //The currently planted seed
var/rating = 1
var/unwrenchable = 1
- var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpolinate one plant
+ var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpollinate one plant
var/using_irrigation = FALSE //If the tray is connected to other trays via irrigation hoses
var/self_sustaining = FALSE //If the tray generates nutrients and water on its own
- pixel_y=8
/obj/machinery/hydroponics/constructable
name = "hydroponics tray"
@@ -121,11 +121,11 @@
myseed.loc = src
if(self_sustaining)
- adjustNutri(2 * rating)
- adjustWater(rand(8, 10) * rating)
- adjustWeeds(-5 * rating)
- adjustPests(-5 * rating)
- adjustToxic(-5 * rating)
+ adjustNutri(1)
+ adjustWater(rand(3,5))
+ adjustWeeds(-2)
+ adjustPests(-2)
+ adjustToxic(-2)
if(world.time > (lastcycle + cycledelay))
lastcycle = world.time
@@ -457,7 +457,8 @@
if(S.has_reagent("mutagen", 5) || S.has_reagent("radium", 10) || S.has_reagent("uranium", 10))
switch(rand(100))
if(91 to 100)
- plantdies()
+ adjustHealth(-10)
+ usr << "The plant shrivels and burns."
if(81 to 90)
mutatespecie()
if(66 to 80)
@@ -465,13 +466,13 @@
if(41 to 65)
mutate()
if(21 to 41)
- usr << "The plants don't seem to react..."
+ usr << "The plants don't seem to react..."
if(11 to 20)
mutateweed()
if(1 to 10)
mutatepest()
else
- usr << "Nothing happens..."
+ usr << "Nothing happens..."
// 2 or 1 units is enough to change the yield and other stats.// Can change the yield and other stats, but requires more than mutagen
else if(S.has_reagent("mutagen", 2) || S.has_reagent("radium", 5) || S.has_reagent("uranium", 5))
@@ -489,18 +490,18 @@
// Nutriments
if(S.has_reagent("eznutriment", 1))
- yieldmod = 1 * rating
- mutmod = 1 * rating
+ yieldmod = 1
+ mutmod = 1
adjustNutri(round(S.get_reagent_amount("eznutriment") * 1))
if(S.has_reagent("left4zednutriment", 1))
- yieldmod = 0 * rating
- mutmod = 2 * rating
+ yieldmod = 0
+ mutmod = 2
adjustNutri(round(S.get_reagent_amount("left4zednutriment") * 1))
if(S.has_reagent("robustharvestnutriment", 1))
- yieldmod = 2 * rating
- mutmod = 0 * rating
+ yieldmod = 1.3
+ mutmod = 0
adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 ))
// Antitoxin binds shit pretty well. So the tox goes significantly down
diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm
index 496ec303822..5ad7aeafaae 100644
--- a/code/modules/hydroponics/seeds.dm
+++ b/code/modules/hydroponics/seeds.dm
@@ -34,9 +34,6 @@
// Stronger reagents must always come first to avoid being displaced by weaker ones.
// Total amount of any reagent in plant is calculated by formula: 1 + round(potency * multiplier)
- var/innate_yieldmod = 0 //modifier for yield, seperate to the one in Hydro trays, as that one is SPECIFICALLY for nutriment/chems (which means it's constantly reset)
- //This is added onto the yield mod of the hydro tray, yield *= (parent.yieldmod+innate_yieldmod)
-
var/weed_rate = 1 //If the chance below passes, then this many weeds sprout during growth
var/weed_chance = 5 //Percentage chance per tray update to grow weeds
@@ -105,7 +102,6 @@
/obj/item/seeds/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables.
if(istype(Proj, /obj/item/projectile/energy/florayield))
-
var/rating = 1
if(istype(loc, /obj/machinery/hydroponics))
var/obj/machinery/hydroponics/H = loc
@@ -128,10 +124,11 @@
if(parent.yieldmod == 0)
return_yield = min(return_yield, 1)//1 if above zero, 0 otherwise
else
- return_yield *= (parent.yieldmod+innate_yieldmod)
+ return_yield *= (parent.yieldmod)
return return_yield
+
/obj/item/seeds/proc/harvest(mob/user = usr)
var/obj/machinery/hydroponics/parent = loc //for ease of access
var/t_amount = 0
@@ -151,6 +148,7 @@
return result
+
/obj/item/seeds/proc/prepare_result(var/obj/item/weapon/reagent_containers/food/snacks/grown/T)
if(T.reagents)
for(var/reagent_id in reagents_add)
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index 90feaca438c..ab5735a9b7d 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -6,9 +6,9 @@
#define BEE_TRAY_RECENT_VISIT 200 //How long in deciseconds until a tray can be visited by a bee again
#define BEE_DEFAULT_COLOUR "#e5e500" //the colour we make the stripes of the bee if our reagent has no colour (or we have no reagent)
-#define BEE_POLLINATE_YIELD_CHANCE 10
+#define BEE_POLLINATE_YIELD_CHANCE 33
#define BEE_POLLINATE_PEST_CHANCE 33
-#define BEE_POLLINATE_POTENTCY_CHANCE 50
+#define BEE_POLLINATE_POTENCY_CHANCE 50
/mob/living/simple_animal/hostile/poison/bees
name = "bee"
@@ -170,13 +170,14 @@
var/growth = health //Health also means how many bees are in the swarm, roughly.
//better healthier plants!
- Hydro.health += round(growth*0.5)
+ Hydro.adjustHealth(growth*0.5)
if(prob(BEE_POLLINATE_PEST_CHANCE))
- Hydro.pestlevel = max(0, --Hydro.pestlevel)
- if(prob(BEE_POLLINATE_YIELD_CHANCE)) //Yield mod is HELLA powerful, but quite rare
- Hydro.myseed.innate_yieldmod++
- if(prob(BEE_POLLINATE_POTENTCY_CHANCE))
- Hydro.myseed.potency++
+ Hydro.adjustPests(-10)
+ if(prob(BEE_POLLINATE_YIELD_CHANCE))
+ Hydro.myseed.adjust_yield(1)
+ Hydro.yieldmod = 2
+ if(prob(BEE_POLLINATE_POTENCY_CHANCE))
+ Hydro.myseed.adjust_potency(1)
if(beehome)
beehome.bee_resources = min(beehome.bee_resources + growth, 100)