more work

This commit is contained in:
Metis
2024-09-13 01:50:58 -04:00
parent 8fd779ef02
commit 7b0780804f
320 changed files with 12185 additions and 161 deletions
@@ -0,0 +1,23 @@
/datum/reagent/consumable/pilk
name = "Pilk"
description = "A forbidden mixture that dates back to the early days of space civilization, its creation is known to have caused at least one or two massacres."
color = "#cf9f6f"
taste_description = "heresy"
glass_icon_state = "whiskeycolaglass"
glass_name = "glass of Pilk"
glass_desc = "Why would you do this to yourself?"
hydration = 3
/datum/reagent/consumable/pilk/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(0,M.drowsyness-3)
M.adjust_bodytemperature(-3 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER))
M.heal_bodypart_damage(0.75,0, 0)
. = 1
else
if(M.getBruteLoss() && prob(20))
M.heal_bodypart_damage(0.5,0, 0)
. = 1
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 1)
..()
@@ -0,0 +1,8 @@
/datum/reagent/consumable/alienhoney //for players who want bee character bewbs that produce honey.
name = "alien honey"
description = "Sweet honey that came from a alien source. This honey doesn't possess the same healing or nutrition properties as earth-bound bee honey."
color = "#d3a308"
value = 3 //plentiful, so wouldnt be worth as much.
nutriment_factor = 5 * REAGENTS_METABOLISM
metabolization_rate = 1 * REAGENTS_METABOLISM
taste_description = "sweetness"
@@ -0,0 +1,294 @@
/*
* If you ever decide to add more reactions, please remember to keep these
* in alphabetical order, according to reagent names and not their datums.
* It could be hard to find reactions when code diving.
* Due note, unlike before this change, that subtypes will apply to the tray the same as their parents
* -DT
*/
#define DEFAULT_ACT_MUTAGEN switch(rand(100)){\
if(91 to 100){\
T.adjustHealth(-10);\
to_chat(user, "<span class='warning'>The plant shrivels and burns.</span>");}\
if(81 to 90)\
T.mutatespecie();\
if(66 to 80)\
T.hardmutate();\
if(41 to 65)\
T.mutate();\
if(21 to 41)\
to_chat(user, "<span class='notice'>The plants don't seem to react...</span>");\
if(11 to 20)\
T.mutateweed();\
if(1 to 10)\
T.mutatepest(user);\
else\
to_chat(user, "<span class='notice'>Nothing happens...</span>");}
//Ammonia
/datum/reagent/ammonia/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustHealth(round(volume * 0.5))
T.adjustNutri(round(volume * 1))
if(..())
T.myseed.adjust_yield(round(volume * 0.01))
return TRUE
//Ash
/datum/reagent/ash/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
// Ash is used IRL in gardening, as a fertilizer enhancer and weed killer
T.adjustHealth(round(volume * 0.25))
T.adjustNutri(round(volume * 0.5))
T.adjustWeeds(-round(volume / 10))
return TRUE
//Beer
/datum/reagent/consumable/ethanol/beer/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
// Beer is a chemical composition of alcohol and various other things. It's a shitty nutrient but hey, it's still one. Also alcohol is bad, mmmkay?
T.adjustHealth(-round(volume * 0.05))
T.adjustNutri(round(volume * 0.25))
T.adjustWater(round(volume * 0.7))
return TRUE
//Blood
/datum/reagent/blood/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustNutri(round(volume * 0.6))
T.adjustHealth(-round(volume))
T.adjustPests(rand(2,4)) //they HUNGER
return TRUE
//Charcoal
/datum/reagent/medicine/charcoal/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustToxic(-round(volume * 2)) //Antitoxin binds shit pretty well. So the tox goes significantly down
return TRUE
//Chlorine
/datum/reagent/chlorine/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustHealth(-round(volume * 1))
T.adjustToxic(round(volume * 1.5))
T.adjustWater(-round(volume * 0.5))
T.adjustWeeds(-rand(1,volume * 0.125))
return TRUE
//Diethylamine
/datum/reagent/diethylamine/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
//Corrosive to pests, but not to plants
if(..())
T.myseed.adjust_yield(round(volume * 0.02))
T.adjustHealth(round(volume))
T.adjustNutri(round(volume * 2))
T.adjustPests(-rand(1,round(volume / 30)))
return TRUE
//Earthsblood
/datum/reagent/medicine/earthsblood/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.self_sufficiency_progress += volume
if(T.self_sufficiency_progress >= T.self_sufficiency_req)
T.become_self_sufficient()
else
to_chat(user, "<span class='notice'>[T] warms as it might on a spring day under a genuine Sun.</span>")
return TRUE
//Enduro-Grow
/datum/reagent/plantnutriment/endurogrow/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
if(!..())
return -1
T.myseed.adjust_potency(-round(volume / 10))
T.myseed.adjust_yield(-round(volume / 30))
T.myseed.adjust_endurance(round(volume / 30))
return TRUE
//E-Z Nutrient
/datum/reagent/plantnutriment/eznutriment/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.yieldmod = 1
T.mutmod = 1
return ..()
//Flourine
/datum/reagent/fluorine/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
// Fluorine one of the most corrosive and deadly gasses
T.adjustHealth(-round(volume * 2))
T.adjustToxic(round(volume * 2.5))
T.adjustWater(-round(volume * 0.5))
T.adjustWeeds(-rand(1, volume * 0.25))
return TRUE
//Fluorosulfuric acid
/datum/reagent/toxin/acid/fluacid/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustHealth(-round(volume * 2))
T.adjustToxic(round(volume * 3))
T.adjustWeeds(-rand(1,volume * 0.5))
return TRUE
//Holy Water
/datum/reagent/water/holywater/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
//Mostly the same as water, it also heals the plant a little with the power of the spirits~
T.adjustWater(round(volume))
T.adjustHealth(round(volume * 0.1))
return TRUE
//Left-4-Zed
/datum/reagent/plantnutriment/left4zednutriment/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.yieldmod = 0
T.mutmod = 2
return ..()
//Liquid Earthquake
/datum/reagent/plantnutriment/liquidearthquake/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
if(!..())
return -1
T.myseed.adjust_weed_chance(round(volume / 10))
T.myseed.adjust_weed_rate(round(volume / 30))
T.myseed.adjust_production(-round(volume / 30))
return TRUE
//Milk
/datum/reagent/consumable/milk/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustNutri(round(volume * 0.2))
T.adjustWater(round(volume * 0.5))
if(..()) // Milk is good for humans, but bad for plants. The sugars canot be used by plants, and the milk fat fucks up growth.
if(!T.myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) //Not shrooms though
T.adjustHealth(-round(volume / 2))
return TRUE
//Napalm
/datum/reagent/napalm/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
if(..())
if(T.myseed.resistance_flags & FIRE_PROOF)
return TRUE
T.adjustHealth(-round(volume * 6))
T.adjustToxic(round(volume * 7))
T.adjustWeeds(-rand(5,9))
return TRUE
//Nutriment
/datum/reagent/consumable/nutriment/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
//Compost, effectively
T.adjustHealth(round(volume * 0.5))
T.adjustNutri(round(volume))
return TRUE
//Pest Killer
/datum/reagent/toxin/pestkiller/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustToxic(round(volume * 0.5))
T.adjustPests(-rand(1,volume / 5))
return TRUE
//Phosphorus
/datum/reagent/phosphorus/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
// White Phosphorous + water -> phosphoric acid. That's not a good thing really.
// Phosphoric salts are beneficial though. And even if the plant suffers, in the long run the tray gets some nutrients. The benefit isn't worth that much.
T.adjustHealth(-round(volume * 0.75))
T.adjustNutri(round(volume * 0.1))
T.adjustWater(-round(volume * 0.5))
T.adjustWeeds(-rand(1, volume * 0.1))
return TRUE
//Plant-B-Gone
/datum/reagent/toxin/plantbgone/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustHealth(-round(volume * 5))
T.adjustToxic(round(volume * 6))
T.adjustWeeds(-rand(4,8))
return TRUE
//Plant Base
//For subtypes of /datum/reagent/plantnutriment/
/datum/reagent/plantnutriment/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustNutri(round(volume))
return ..()
//Radium
/datum/reagent/radium/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
if(volume >= 10)
DEFAULT_ACT_MUTAGEN
else if(volume >= 5)
T.hardmutate()
else if(volume >= 2)
T.mutate()
T.adjustHealth(-round(volume))
T.adjustToxic(round(volume * 3)) // Radium is harsher (OOC: also easier to produce)
return TRUE
//Robust Harvest
/datum/reagent/plantnutriment/robustharvestnutriment/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.yieldmod = 1.3
T.mutmod = 0
return ..()
//Saltpetre
/datum/reagent/saltpetre/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
// Saltpetre is used for gardening IRL. To simplify highly, it speeds up growth and strengthens plants
T.adjustHealth(round(volume * 0.25))
if (..())
T.myseed.adjust_production(-round(volume/100)-prob(volume%100))
T.myseed.adjust_potency(round(volume*0.5))
return TRUE
//Soda Water
/datum/reagent/consumable/sodawater/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
// 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.
T.adjustWater(round(volume) * 0.9)
T.adjustHealth(round(volume * 0.1))
T.adjustNutri(round(volume * 0.1))
return TRUE
//Sugar
/datum/reagent/consumable/sugar/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustWeeds(round(rand(1, volume / 5)))
T.adjustPests(round(rand(1, volume / 5)))
return TRUE
//Sulphuric Acid
/datum/reagent/toxin/acid/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustHealth(-round(volume * 1))
T.adjustToxic(round(volume * 1.5))
T.adjustWeeds(-rand(1,volume * 0.25))
return TRUE
//Toxin
/datum/reagent/toxin/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustToxic(round(volume * 2))
return TRUE
//Unstable Mutagen
/datum/reagent/toxin/mutagen/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
if(volume >= 5)
DEFAULT_ACT_MUTAGEN
else if(volume >= 2)
T.hardmutate()
else if(volume >= 1)
T.mutate()
return TRUE
//Uranium
/datum/reagent/uranium/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
if(volume >= 10)
DEFAULT_ACT_MUTAGEN
else if(volume >= 5)
T.hardmutate()
else if(volume >= 2)
T.mutate()
T.adjustHealth(-round(volume))
T.adjustToxic(round(volume * 2))
return TRUE
//Virus Food
/datum/reagent/toxin/mutagen/mutagenvirusfood/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustNutri(round(volume * 0.5))
T.adjustHealth(-round(volume * 0.5))
return TRUE
//Water
/datum/reagent/water/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustWater(round(volume))
return TRUE
//Weed Killer
/datum/reagent/toxin/plantbgone/weedkiller/on_tray(obj/machinery/hydroponics/T, volume, mob/user)
T.adjustToxic(round(volume / 2))
T.adjustWeeds(-rand(1,volume / 5))
return TRUE
#undef DEFAULT_ACT_MUTAGEN
@@ -0,0 +1,29 @@
/datum/reagent/medicine/copium
name = "copium"
description = "A heavy scented substance meant to help one deal with loss."
reagent_state = LIQUID
color = "#a8707e"
overdose_threshold = 21
metabolization_rate = 0.75 * REAGENTS_METABOLISM
pH = 4
/datum/reagent/medicine/copium/on_mob_life(mob/living/carbon/M)
var/datum/component/mood/mood = M.GetComponent(/datum/component/mood)
if(mood.sanity <= SANITY_NEUTRAL && current_cycle >= 5)
mood.setSanity(min(mood.sanity+5, SANITY_NEUTRAL))
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "copium", /datum/mood_event/copium)
..()
/datum/reagent/medicine/copium/overdose_process(mob/living/carbon/M) //copious amounts of copium
M.blur_eyes(10)
if(prob(50))
M.adjustToxLoss(1, 0)
if(prob(5))
M.say(pick("That's okay. Things are going to be okay.", "This is fine.", "I'm okay with the events that are unfolding currently.", "World of Spacecraft is still a good game...", "I'm winning.", "Diesels are far more powerful."))
if(prob(5))
M.emote("me", 1, "seems to be crying.")
if(prob(4))
M.emote("me", 1, "falls over, crying.")
M.Knockdown(40)
//To-do: /datum/reagent/medicine/seethium
@@ -0,0 +1,6 @@
/datum/chemical_reaction/copium
name = "copium"
id = /datum/reagent/medicine/copium
results = list(/datum/reagent/medicine/copium = 5)
required_reagents = list(/datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 1, /datum/reagent/medicine/epinephrine = 1, /datum/reagent/consumable/sugar = 1)
required_temp = 266