From 80b79ef94e74230e95b299ae28d391dc4f5c34b7 Mon Sep 17 00:00:00 2001
From: Fermi <>
Date: Sat, 14 Sep 2019 02:26:06 +0100
Subject: [PATCH] Mostly complete for now
---
code/modules/reagents/chem_wiki_render.dm | 100 +++++++++++++---------
1 file changed, 61 insertions(+), 39 deletions(-)
diff --git a/code/modules/reagents/chem_wiki_render.dm b/code/modules/reagents/chem_wiki_render.dm
index 45ae579650..f6cdfdd8e5 100644
--- a/code/modules/reagents/chem_wiki_render.dm
+++ b/code/modules/reagents/chem_wiki_render.dm
@@ -7,13 +7,13 @@
message_admins("Someone pressed the superlag button. (Generate Wikichems)")
to_chat(usr, "Generating list")
- var/prefix = "|Name | Reagents | Reaction vars | Description | Chem properties | Impure chems|\n|---|---|---|---|----------|---|\n"
+ var/prefix = "|Name | Reagents | Reaction vars | Description | Chem properties |\n|---|---|---|-----------|---|\n"
///datum/reagent/medicine, /datum/reagent/toxin, /datum/reagent/consumable, /datum/reagent/plantnutriment, /datum/reagent/uranium,
- ///datum/reagent/colorful_reagent, /datum/reagent/mutationtoxin, /datum/reagent/fermi
+ ///datum/reagent/colorful_reagent, /datum/reagent/mutationtoxin, /datum/reagent/fermi, /datum/reagent/drug
//Probably not the most eligant of solutions.
- to_chat(usr, "Attempting reagent scan. Length of list [LAZYLEN(GLOB.chemical_reagents_list)]")
+ to_chat(usr, "Attempting reagent scan. Length of list [LAZYLEN(GLOB.chemical_reagents_list)*2]")
var/datum/reagent/R
var/tally = 0
var/processCR = TRUE //Process reactions first
@@ -27,6 +27,7 @@
var/muta = ""
var/fermi = ""
var/remainder = ""
+ var/drug = ""
for(var/X in GLOB.chemical_reagents_list)
R = GLOB.chemical_reagents_list[X]
if(istype(R, /datum/reagent/medicine))
@@ -53,26 +54,36 @@
else if(istype(R, /datum/reagent/fermi))
fermi += generate_chemwiki_line(R, X, processCR)
+ else if(istype(R, /datum/reagent/drug))
+ drug += generate_chemwiki_line(R, X, processCR)
+
else
remainder += generate_chemwiki_line(R, X, processCR)
tally++
if((tally%50)==0)
- to_chat(usr, "[tally] of [LAZYLEN(GLOB.chemical_reagents_list)] done.")
+ to_chat(usr, "[tally] of [LAZYLEN(GLOB.chemical_reagents_list)*2] done.")
processCR = FALSE
to_chat(usr, "finished chems")
- log_sql("------------BEGINNING OF REAGENTS VAR DUMP:------------------\n----------------------------------------------------------------------------------\n\n\n# BASIC REAGENTS\n\n[prefix][remainder]\n\n# MEDICINE:\n\n[prefix][medicine]\n\n# TOXIN:\n\n[prefix][toxin]\n\n# CONSUMABLE\n\n[prefix][consumable]\n\n# FERMI\n\nThese chems lie on the cutting edge of chemical technology, and as such are not recommended for beginners!\n\n[prefix][fermi]\n\n# PLANTS\n\n[prefix][plant]\n\n# URANIUM\n\n[prefix][uranium]\n\n# COLOURS\n\n[prefix][colours]\n\n# RACE MUTATIONS\n\n[prefix][muta]\n")
+ log_sql("------------BEGINNING OF REAGENTS VAR DUMP:------------------\n----------------------------------------------------------------------------------\n\n\n# BASIC REAGENTS\n\n[prefix][remainder]\n\n# MEDICINE:\n\n[prefix][medicine]\n\n# TOXIN:\n\n[prefix][toxin]\n\n# DRUGS\n\n[prefix][drug]\n\n# FERMI\n\nThese chems lie on the cutting edge of chemical technology, and as such are not recommended for beginners!\n\n[prefix][fermi]\n\n# CONSUMABLE\n\n[prefix][consumable]\n\n# PLANTS\n\n[prefix][plant]\n\n# URANIUM\n\n[prefix][uranium]\n\n# COLOURS\n\n[prefix][colours]\n\n# RACE MUTATIONS\n\n[prefix][muta]\n\n")
- prefix = "|Name | Reagents | Reaction vars | Description ||\n|---|---|---|----------|\n"
+ prefix = "|Name | Reagents | Reaction vars | Description |\n|---|---|---|----------|\n"
+ var/CRparse = ""
to_chat(usr, "starting reactions")
for(var/reagent in GLOB.chemical_reactions_list)
for(var/datum/chemical_reaction/CR in GLOB.chemical_reactions_list[reagent])
- generate_chemreactwiki_line(CR)
+ //message_admins("trad: [CR], [CR.results], [CR.results.len], [LAZYLEN(CR.results)]")
+ CRparse += generate_chemreactwiki_line(CR)
+
+ log_sql("------------BEGINNING OF REACTIONS VAR DUMP:------------------\n----------------------------------------------------------------------------------\n\n\n# CHEMICAL REACTIONS\n\n[prefix][CRparse]\n")
to_chat(usr, "finished reactions")
+
+
+//Generate the big list of reagent based reactions.
/proc/generate_chemwiki_line(datum/reagent/R, X, processCR)
//name | Reagent pH | reagents | reaction temp | explosion temp | pH range | Kinetics | description | OD level | Addiction level | Metabolism rate | impure chem | inverse chem
@@ -82,17 +93,17 @@
//message_admins("[CR]")
- var/outstring = "|[R.name] !\[[R.color]\](https://placehold.it/15/[copytext(R.color, 2, 8)]/000000?text=+) pH:[R.pH] | "
+ var/outstring = "|!\[[R.color]\](https://placehold.it/15/[copytext(R.color, 2, 8)]/000000?text=+) [R.name]
pH: [R.pH] | "
var/datum/reagent/R3
if(CR)
outstring += "
"
for(var/R2 in CR.required_reagents)
R3 = GLOB.chemical_reagents_list[R2]//What a convoluted mess
- outstring += "- [R3.name]
"
+ outstring += "- [R3.name]: [CR.required_reagents[R3.id]]u
"
if(CR.required_catalysts)
- for(var/R2 in CR.required_reagents)
+ for(var/R2 in CR.required_catalysts)
R3 = GLOB.chemical_reagents_list[R2]
- outstring += "- [R3.name]
"
+ outstring += "- Catalyst: [R3.name]: [CR.required_catalysts[R3.id]]u
"
outstring += "
| "
else
outstring += "N/A | "
@@ -100,7 +111,7 @@
//Temp, Explosions and pH
if(CR)
- outstring += "[(CR.FermiChem?"Min react temp:[CR.OptimalTempMin]":"[(CR.required_temp?"Min_react_temp:[CR.required_temp]":"")]")] [(CR.FermiChem?"Explosion_temp:[CR.ExplodeTemp]":"")] [(CR.FermiChem?"pH_range:[max((CR.OptimalpHMin - CR.ReactpHLim), 0)] to [min((CR.OptimalpHMax + CR.ReactpHLim), 14)]":"")] "
+ outstring += "[(CR.FermiChem?"- Min react temp: [CR.OptimalTempMin]K
":"[(CR.required_temp?"- Min react temp: [CR.required_temp]K
":"")]")] [(CR.FermiChem?"- Explosion_temp: [CR.ExplodeTemp]K
":"")] [(CR.FermiChem?"- pH range: [max((CR.OptimalpHMin - CR.ReactpHLim), 0)] to [min((CR.OptimalpHMax + CR.ReactpHLim), 14)]
":"")] "
else
outstring += ""
@@ -109,68 +120,79 @@
if(CR.FermiChem)
switch(CR.ThermicConstant)
if(-INFINITY to -9.9)
- outstring += "Extremely endothermic | "
+ outstring += "- Extremely endothermic
"
if(-9.9 to -4.9)
- outstring += "Very endothermic | "
+ outstring += "- Very endothermic
"
if(-4.9 to -0.1)
- outstring += "Endothermic | "
+ outstring += "- Endothermic
"
if(-0.1 to 0.1)
- outstring += "Neutral | "
+ outstring += "- Neutral
"
if(0.1 to 4.9)
- outstring += "Exothermic | "
+ outstring += "- Exothermic
"
if(4.9 to 9.9)
- outstring += "Very exothermic | "
- if(9.9 to INFINITY)
- outstring += "Extremely exothermic | "
- else
- outstring += " | "
- else
- outstring += " | "
+ outstring += "- Very exothermic
"
+ if(9.9 to 19.9)
+ outstring += "- Extremely exothermic
"
+ if(19.9 to INFINITY )
+ outstring += "- **Dangerously exothermic**
"
+ //if(CR.cheesey)
+ //outstring += "- Dangerously Cheesey
"
+
+ outstring += "
| "
//Description, OD, Addict, Meta
- outstring += "[R.description] | Metabolism_rate:[R.metabolization_rate] [(R.overdose_threshold?"[Overdose:R.overdose_threshold]":"")] [(R.addiction_threshold?"[Addiction:R.addiction_threshold]":"No addiction")] "
+ outstring += "[R.description] | - Metabolism_rate: [R.metabolization_rate/2]u/s
[(R.overdose_threshold?"- Overdose: [R.overdose_threshold]u
":"")] [(R.addiction_threshold?"- Addiction: [R.addiction_threshold]u
":"")] "
if(R.ImpureChem != "fermiTox" || !R.ImpureChem)
R3 = GLOB.chemical_reagents_list[R.ImpureChem]
- outstring += "Impure chem:[R3.name]"
+ outstring += "- Impure chem:[R3.name]
"
if(R.InverseChem != "fermiTox" || !R.InverseChem)
R3 = GLOB.chemical_reagents_list[R.InverseChem]
- outstring += "Inverse chem:[R3.name] "
+ outstring += "- Inverse chem:[R3.name]
"
if(CR)
if(CR.FermiChem)
- outstring += "Minimum purity:[CR.PurityMin] [(CR.FermiExplode?"Special explosion:Yes":"")]"
+ outstring += "- Minimum purity: [CR.PurityMin]
[(CR.FermiExplode?"- Special explosion: Yes
":"")]"
- outstring += "|\n"
+ outstring += "
|\n"
//message_admins("[outstring]")
return outstring
+
+
+
+//Generate the big list of reaction based reactions.
//|Name | Reagents | Reaction vars | Description | Chem properties
/proc/generate_chemreactwiki_line(datum/chemical_reaction/CR)
- if(!LAZYLEN(CR.results)) //Handled prior
+ if(CR.results.len) //Handled prior
return
- var/outstring = "|CR.name | "
+ var/outstring = "|[CR.name] | "
//reagents
+ var/datum/reagent/R3
for(var/R2 in CR.required_reagents)
R3 = GLOB.chemical_reagents_list[R2]
- outstring += "- [R3.name]
"
+ outstring += "- [R3.name]: [CR.required_reagents[R3.id]]u
"
if(CR.required_catalysts)
- for(var/R2 in CR.required_reagents)
+ for(var/R2 in CR.required_catalysts)
R3 = GLOB.chemical_reagents_list[R2]
- outstring += "- [R3.name]
"
+ outstring += "- [R3.name]: [CR.required_catalysts[R3.id]]u
"
outstring += "
| "
- outstring += "| fill in manually | "
+ //description
+ outstring += " fill in manually | "
//Reaction vars
if(CR.FermiChem)
- outstring += "[(CR.FermiChem?"Min react temp:[CR.OptimalTempMin]":"[(CR.required_temp?"Min_react_temp:[CR.required_temp]":"")]")] [(CR.FermiChem?"Explosion_temp:[CR.ExplodeTemp]":"")] [(CR.FermiChem?"pH_range:[max((CR.OptimalpHMin - CR.ReactpHLim), 0)] to [min((CR.OptimalpHMax + CR.ReactpHLim), 14)]":"")] Minimum purity:[CR.PurityMin] [(CR.FermiExplode?"Special explosion:Yes":"")]"
+ outstring += "[(CR.FermiChem?"- Min react temp: [CR.OptimalTempMin]K
":"[(CR.required_temp?"- Min react temp: [CR.required_temp]K
":"")]")] [(CR.FermiChem?"- Explosion temp: [CR.ExplodeTemp]K
":"")] [(CR.FermiChem?"- pH range: [max((CR.OptimalpHMin - CR.ReactpHLim), 0)] to [min((CR.OptimalpHMax + CR.ReactpHLim), 14)]
":"")] - Minimum purity: [CR.PurityMin] [(CR.FermiExplode?"
- Special explosion: Yes
":"")]"
if(CR.is_cold_recipe)
- outstring += "Cold: Yes"
+ outstring += "- Cold: Yes
"
if(CR.required_container)
- outstring += "Required container:[CR.required_container]"
+ outstring += "- Required container: [CR.required_container]
"
if(CR.mob_react)
- outstring += "Can react in mob: Yes"
+ outstring += "- Can react in mob: Yes
"
+
+ outstring += "
|\n"
+ return outstring