THIS IS IT LUIGI! ALL REAGENTS SET!

This commit is contained in:
The0bserver
2020-09-01 06:44:46 -04:00
parent 82ffb64268
commit 457cb5e238
7 changed files with 241 additions and 10 deletions
+26 -10
View File
@@ -6,6 +6,7 @@
pixel_z = 8
obj_flags = CAN_BE_HIT | UNIQUE_RENAME
circuit = /obj/item/circuitboard/machine/hydroponics
idle_power_usage = 0
var/waterlevel = 100 //The amount of water in the tray (max 100)
var/maxwater = 100 //The maximum amount of water in the tray
var/nutridrain = 1 // How many units of nutrient will be drained in the tray
@@ -92,11 +93,16 @@
if(myseed && (myseed.loc != src))
myseed.forceMove(src)
if(self_sustaining)
adjustWater(rand(3,5))
adjustWeeds(-2)
adjustPests(-2)
adjustToxic(-2)
if(!powered() && self_sustaining)
visible_message("<span class='warning'>[name]'s auto-grow functionality shuts off!</span>")
idle_power_usage = 0
self_sustaining = FALSE
update_icon()
else if(self_sustaining)
adjustWater(rand(1,2))
adjustWeeds(-1)
adjustPests(-1)
if(world.time > (lastcycle + cycledelay))
lastcycle = world.time
@@ -108,6 +114,7 @@
needs_update = 1
//Nutrients//////////////////////////////////////////////////////////////
// Nutrients deplete at a constant rate, since new nutrients can boost stats far easier.
apply_chemicals(lastuser)
@@ -617,6 +624,20 @@
if(user)
examine(user)
/obj/machinery/hydroponics/CtrlClick(mob/user)
. = ..()
if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
return
if(!powered())
to_chat(user, "<span class='warning'>[name] has no power.</span>")
return
if(!anchored)
return
self_sustaining = !self_sustaining
idle_power_usage = self_sustaining ? 2500 : 0
to_chat(user, "<span class='notice'>You [self_sustaining ? "activate" : "deactivated"] [src]'s autogrow function[self_sustaining ? ", maintaining the tray's health while using high amounts of power" : ""].")
update_icon()
/obj/machinery/hydroponics/AltClick(mob/user)
. = ..()
if(!anchored)
@@ -674,11 +695,6 @@
var/mob/living/simple_animal/hostile/C = new chosen
C.faction = list("plants")
/obj/machinery/hydroponics/proc/become_self_sufficient() // Ambrosia Gaia effect
visible_message("<span class='boldnotice'>[src] begins to glow with a beautiful light!</span>")
self_sustaining = TRUE
update_icon()
///////////////////////////////////////////////////////////////////////////////
/obj/machinery/hydroponics/soil //Not actually hydroponics at all! Honk!
name = "soil"
@@ -90,6 +90,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "A freezing pint of beer."
pH = 4
// Beer is a chemical composition of alcohol and various other things. It's a garbage nutrient but hey, it's still one. Also alcohol is bad, mmmkay?
/datum/reagent/consumable/ethanol/beer/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 0.05))
mytray.adjustWater(round(chems.get_reagent_amount(src.type) * 0.7))
/datum/reagent/consumable/ethanol/beer/light
name = "Light Beer"
description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety has reduced calorie and alcohol content."
@@ -214,6 +214,14 @@
pH = 6.5
value = REAGENT_VALUE_VERY_COMMON
// Milk is good for humans, but bad for plants. The sugars cannot be used by plants, and the milk fat harms growth. Not shrooms though. I can't deal with this now...
/datum/reagent/consumable/milk/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustWater(round(chems.get_reagent_amount(type) * 0.3))
if(myseed)
myseed.adjust_potency(-chems.get_reagent_amount(type) * 0.5)
/datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M)
if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER))
M.heal_bodypart_damage(1.5,0, 0)
@@ -603,6 +611,14 @@
glass_name = "honeycomb of Buzz Fuzz"
glass_desc = "Stinging with flavour."
//This drink seems to be just made for plants.. how curious.
/datum/reagent/consumable/buzz_fuzz/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src,1))
mytray.adjustPests(-rand(2,5))
mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 0.1))
mytray.adjustpotency(round(chems.get_reagent_amount(src.type) * 0.5))
/datum/reagent/consumable/buzz_fuzz/on_mob_life(mob/living/carbon/M)
M.reagents.add_reagent(/datum/reagent/consumable/sugar,1)
if(prob(5))
@@ -674,6 +690,15 @@
glass_name = "glass of soda water"
glass_desc = "Soda water. Why not make a scotch and soda?"
// A variety of nutrients are dissolved in club soda, without sugar.
// These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth.
/datum/reagent/consumable/sodawater/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustWater(round(chems.get_reagent_amount(type) * 1))
mytray.adjustHealth(round(chems.get_reagent_amount(type) * 0.1))
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
@@ -157,6 +157,13 @@
taste_description = "sweetness"
value = REAGENT_VALUE_NONE
// Plants should not have sugar, they can't use it and it prevents them getting water/ nutients, it is good for mold though...
/datum/reagent/consumable/sugar/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustWeeds(rand(1,2))
mytray.adjustPests(rand(1,2))
/datum/reagent/consumable/sugar/overdose_start(mob/living/M)
to_chat(M, "<span class='userdanger'>You go into hyperglycaemic shock! Lay off the twinkies!</span>")
M.AdjustSleeping(600, FALSE)
@@ -174,6 +181,12 @@
color = "#899613" // rgb: 137, 150, 19
taste_description = "watery milk"
// Compost for EVERYTHING
/datum/reagent/consumable/virus_food/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 0.5))
/datum/reagent/consumable/soysauce
name = "Soysauce"
description = "A salty sauce made from the soy plant."
@@ -36,6 +36,25 @@
taste_description = "badmins"
value = REAGENT_VALUE_GLORIOUS
// The best stuff there is. For testing/debugging.
/datum/reagent/medicine/adminordrazine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustWater(round(chems.get_reagent_amount(type) * 1))
mytray.adjustHealth(round(chems.get_reagent_amount(type) * 1))
mytray.adjustPests(-rand(1,5))
mytray.adjustWeeds(-rand(1,5))
if(chems.has_reagent(type, 3))
switch(rand(100))
if(66 to 100)
mytray.mutatespecie()
if(33 to 65)
mytray.mutateweed()
if(1 to 32)
mytray.mutatepest(user)
else if(prob(20))
mytray.visible_message("<span class='warning'>Nothing happens...</span>")
/datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M)
M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1)
M.setCloneLoss(0, 0)
@@ -1168,6 +1187,11 @@
..()
. = 1
// Antitoxin binds plants pretty well. So the tox goes significantly down
/datum/reagent/medicine/antitoxin/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
mytray.adjustToxic(-round(chems.get_reagent_amount(type) * 2))
/datum/reagent/medicine/inaprovaline
name = "Inaprovaline"
description = "Stabilizes the breathing of patients. Good for those in critical condition."
@@ -1297,6 +1321,21 @@
pH = 11
value = REAGENT_VALUE_COMMON //not any higher. Ambrosia is a milestone for hydroponics already.
//Earthsblood is still a wonderdrug. Just... don't expect to be able to mutate something that makes plants so healthy.
/datum/reagent/medicine/earthsblood/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 1))
mytray.adjustPests(-rand(1,3))
mytray.adjustWeeds (-rand(1,3))
if(myseed)
myseed.adjust_instability(-round(chems.get_reagent_amount(src.type) * 1.3))
myseed.adjust_potency(round(chems.get_reagent_amount(src.type) *1))
myseed.adjust_yield(round(chems.get_reagent_amount(src.type) * 1))
myseed.adjust_endurance(round(chems.get_reagent_amount(src.type) * 0.5))
myseed.adjust_production(-round(chems.get_reagent_amount(src.type) * 0.5))
/datum/reagent/medicine/earthsblood/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-3 * REM, FALSE)
M.adjustFireLoss(-3 * REM, FALSE)
@@ -13,6 +13,12 @@
shot_glass_icon_state = "shotglassred"
pH = 7.4
// FEED ME,SEYMOUR!
/datum/reagent/blood/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
. = ..()
if(chems.has_reagent(src.type, 1))
mytray.adjustPests(rand(2,3))
/datum/reagent/blood/reaction_mob(mob/living/L, method = TOUCH, reac_volume)
if(data && data["viruses"])
for(var/thing in data["viruses"])
@@ -313,6 +319,13 @@
metabolization_rate = 45 * REAGENTS_METABOLISM
. = 1
///For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual.
/datum/reagent/water/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
if(chems.has_reagent(src.type, 1))
mytray.adjustWater(round(chems.get_reagent_amount(src.type) * 1))
//You don't belong in this world, monster!
chems.remove_reagent(/datum/reagent/water, chems.get_reagent_amount(src.type))
/datum/reagent/water/hollowwater
name = "Hollow Water"
description = "An ubiquitous chemical substance that is composed of hydrogen and oxygen, but it looks kinda hollow."
@@ -973,6 +986,15 @@
taste_description = "chlorine"
pH = 7.4
// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial
/datum/reagent/chlorine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 1))
mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 1.5))
mytray.adjustWater(-round(chems.get_reagent_amount(src.type) * 0.5))
mytray.adjustWeeds(-rand(1,3))
/datum/reagent/chlorine/on_mob_life(mob/living/carbon/M)
M.take_bodypart_damage(1*REM, 0, 0, 0)
. = 1
@@ -986,6 +1008,15 @@
taste_description = "acid"
pH = 2
// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial
/datum/reagent/fluorine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 2))
mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 2.5))
mytray.adjustWater(-round(chems.get_reagent_amount(src.type) * 0.5))
mytray.adjustWeeds(-rand(1,4))
/datum/reagent/fluorine/on_mob_life(mob/living/carbon/M)
M.adjustToxLoss(1*REM, 0)
. = 1
@@ -1037,6 +1068,12 @@
taste_description = "the colour blue and regret"
pH = 10
/datum/reagent/radium/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 1))
mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 1))
/datum/reagent/radium/on_mob_life(mob/living/carbon/M)
M.apply_effect(2*REM/M.metabolism_efficiency,EFFECT_IRRADIATE,0)
..()
@@ -1148,6 +1185,14 @@
GG = new/obj/effect/decal/cleanable/greenglow(T)
GG.reagents.add_reagent(/datum/reagent/uranium, reac_volume)
//Mutagenic chem side-effects.
/datum/reagent/uranium/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
mytray.mutation_roll(user)
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 1))
mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 2))
/datum/reagent/bluespace
name = "Bluespace Dust"
description = "A dust composed of microscopic bluespace crystals, with minor space-warping properties."
@@ -1406,6 +1451,15 @@
taste_description = "mordant"
pH = 11.6
/datum/reagent/ammonia/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
// Ammonia is bad ass.
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 0.12))
if(myseed && prob(10))
myseed.adjust_yield(1)
myseed.adjust_instability(1)
/datum/reagent/diethylamine
name = "Diethylamine"
description = "A secondary amine, mildly corrosive."
@@ -1413,6 +1467,16 @@
taste_description = "iron"
pH = 12
// This is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. The new trade off is it culls stability.
/datum/reagent/diethylamine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 1))
mytray.adjustPests(-rand(1,2))
if(myseed)
myseed.adjust_yield(round(chems.get_reagent_amount(src.type) * 1))
myseed.adjust_instability(-round(chems.get_reagent_amount(src.type) * 1))
/datum/reagent/carbondioxide
name = "Carbon Dioxide"
reagent_state = GAS
@@ -1723,6 +1787,13 @@
taste_description = "ash"
pH = 6.5
// Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer
/datum/reagent/ash/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src.type, 1))
mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 1))
mytray.adjustWeeds(-1)
/datum/reagent/acetone
name = "Acetone"
description = "A slick, slightly carcinogenic liquid. Has a multitude of mundane uses in everyday life."
@@ -1843,6 +1914,16 @@
taste_description = "alkali" //who put ACID for NaOH ????
pH = 11.9
// Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants
/datum/reagent/saltpetre/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(src.type, 1))
var/salt = chems.get_reagent_amount(src.type)
mytray.adjustHealth(round(salt * 0.18))
if(myseed)
myseed.adjust_production(-round(salt/10)-prob(salt%10))
myseed.adjust_potency(round(salt*1))
/datum/reagent/drying_agent
name = "Drying agent"
description = "A desiccant. Can be used to dry things."
@@ -10,6 +10,12 @@
value = REAGENT_VALUE_COMMON //Encouraging people to mix toxins for reasons beyond harming each other or mixing reagents such as pen acid.
var/toxpwr = 1.5
// Are you a bad enough dude to poison your own plants?
/datum/reagent/toxin/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 2))
/datum/reagent/toxin/on_mob_life(mob/living/carbon/M)
if(toxpwr)
M.adjustToxLoss(toxpwr*REM, 0)
@@ -54,6 +60,11 @@
C.apply_effect(5,EFFECT_IRRADIATE,0)
return ..()
/datum/reagent/toxin/mutagen/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
mytray.mutation_roll(user)
if(chems.has_reagent(type, 1))
mytray.adjustToxic(1.5) //It is still toxic, mind you, but not to the same degree.
/datum/reagent/toxin/plasma
name = "Plasma"
description = "Plasma in its liquid form."
@@ -245,6 +256,13 @@
pH = 2.7
value = REAGENT_VALUE_NONE
/datum/reagent/toxin/plantbgone/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 10))
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 6))
mytray.adjustWeeds(-rand(4,8))
/datum/reagent/toxin/plantbgone/reaction_obj(obj/O, reac_volume)
if(istype(O, /obj/structure/alien/weeds))
var/obj/structure/alien/weeds/alien_weeds = O
@@ -270,6 +288,14 @@
pH = 3
value = REAGENT_VALUE_NONE
//Weed Spray
/datum/reagent/toxin/plantbgone/weedkiller/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
if(!mytray)
return
if(chems.has_reagent(type, 1))
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 0.5))
mytray.adjustWeeds(-rand(1,2))
/datum/reagent/toxin/pestkiller
name = "Pest Killer"
description = "A harmful toxic mixture to kill pests. Do not ingest!"
@@ -278,6 +304,14 @@
pH = 3.2
value = REAGENT_VALUE_NONE
//Pest Spray
/datum/reagent/toxin/pestkiller/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
if(!mytray)
return
if(chems.has_reagent(type, 1))
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 1))
mytray.adjustPests(-rand(1,2))
/datum/reagent/toxin/pestkiller/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
..()
if(M.mob_biotypes & MOB_BUG)
@@ -838,6 +872,14 @@
pH = 2.75
value = REAGENT_VALUE_NONE
// Sure, go ahead and pour acid on your precious plants. What's the worst that could happen?
/datum/reagent/toxin/acid/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 1))
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 1.5))
mytray.adjustWeeds(-rand(1,2))
/datum/reagent/toxin/acid/reaction_mob(mob/living/carbon/C, method=TOUCH, reac_volume)
if(!istype(C))
return
@@ -870,6 +912,14 @@
acidpwr = 42.0
value = REAGENT_VALUE_COMMON
// ACID II: UNHEEDED WARNINGS
/datum/reagent/toxin/acid/fluacid/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
. = ..()
if(chems.has_reagent(type, 1))
mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 2))
mytray.adjustToxic(round(chems.get_reagent_amount(type) * 3))
mytray.adjustWeeds(-rand(1,4))
/datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/carbon/M)
M.adjustFireLoss(current_cycle/10, 0)
. = 1