[MIRROR] Scannable chems and fixes (#12162)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-12-26 03:44:29 -07:00
committed by GitHub
parent 52eb0db18c
commit 62bbe77537
27 changed files with 454 additions and 262 deletions
+7
View File
@@ -1403,3 +1403,10 @@
#define REAGENT_ID_SLIMEBONEFIXER "slime_bone_fixer"
#define REAGENT_SLIMEORGANFIXER "Agent C"
#define REAGENT_ID_SLIMEORGANFIXER "slime_organ_fixer"
//Scanning difficulty. The higher the # the higher it is to find.
#define SCANNABLE_BENEFICIAL 0
#define SCANNABLE_ADVANCED 1
#define SCANNABLE_DIFFICULT 2
#define SCANNABLE_SECRETIVE 3
#define SCANNABLE_UNSCANNABLE 99
+51 -24
View File
@@ -17,16 +17,16 @@
light_color = "#00FF00"
var/obj/machinery/body_scanconsole/console
var/printing_text = null
var/scan_level = 3 //One scan level for every scanning_module
var/scan_level = SCANNABLE_DIFFICULT //By default, we start with level 2 scanning level.
/obj/machinery/bodyscanner/Initialize(mapload)
. = ..()
default_apply_parts()
/obj/machinery/bodyscanner/RefreshParts()
scan_level = 0
scan_level = SCANNABLE_DIFFICULT
for(var/obj/item/stock_parts/scanning_module/P in component_parts)
scan_level += P.rating
scan_level += max(0, (P.rating - 2)) //We require T3 parts or higher to actually increase our scan level.
/obj/machinery/bodyscanner/Destroy()
if(console)
@@ -204,17 +204,21 @@
break
//Vars used if we have FAKEDEATH status.
var/occupant_stat
var/occupant_health
var/oxygen_damage
var/occupant_stat = H.stat
var/occupant_health = H.health
var/oxygen_damage = H.getOxyLoss()
var/brain_damage = H.getBrainLoss()
var/occupant_paralysis = H.paralysis
var/paralysis_duration = round(H.paralysis / 4)
var/fakedeath = FALSE
if(H.status_flags & FAKEDEATH)
occupant_stat = DEAD
occupant_health = -200
oxygen_damage = max(H.getOxyLoss(), (300 - (H.getToxLoss() + H.getFireLoss() + H.getBruteLoss())))
else
occupant_stat = H.stat
occupant_health = H.health
oxygen_damage = H.getOxyLoss()
//oxygen_damage = max(H.getOxyLoss(), (300 - (H.getToxLoss() + H.getFireLoss() + H.getBruteLoss()))) //Alternative oxygen based fakedeath.
brain_damage = 200
occupant_paralysis = 0
paralysis_duration = 0
fakedeath = TRUE
occupantData["stat"] = occupant_stat
occupantData["health"] = occupant_health
@@ -229,9 +233,9 @@
occupantData["radLoss"] = H.radiation
occupantData["cloneLoss"] = H.getCloneLoss()
occupantData["brainLoss"] = H.getBrainLoss()
occupantData["paralysis"] = H.paralysis
occupantData["paralysisSeconds"] = round(H.paralysis / 4)
occupantData["brainLoss"] = brain_damage
occupantData["paralysis"] = occupant_paralysis
occupantData["paralysisSeconds"] = paralysis_duration
occupantData["bodyTempC"] = H.bodytemperature-T0C
occupantData["bodyTempF"] = (((H.bodytemperature-T0C) * 1.8) + 32)
@@ -256,7 +260,7 @@
var/reagentData[0]
if(H.reagents.reagent_list.len >= 1)
for(var/datum/reagent/R in H.reagents.reagent_list)
if(!R.scannable && !(scan_level >= 8)) //Requires minimum of 2 T3 and 1 T2 scanning module, or 2 T4 scanning modules.
if(R.scannable >= scan_level) //By default, we can scan everything but secret chems (zombie/lich powder)
continue
reagentData[++reagentData.len] = list(
"name" = R.name,
@@ -368,6 +372,11 @@
organData["desc"] = null
organData["germ_level"] = I.germ_level
organData["damage"] = I.damage
if(fakedeath)
if(istype(I, /obj/item/organ/internal/brain))
organData["damage"] = 200
else if(istype(I, /obj/item/organ/internal/lungs))
organData["damage"] = 25
organData["maxHealth"] = I.max_damage
organData["bruised"] = I.min_bruised_damage
organData["broken"] = I.min_broken_damage
@@ -451,7 +460,7 @@
else
t1 = "*dead*"
var/health_text = "\tHealth %: [(occupant.health / occupant.getMaxHealth())*100], ([t1])"
var/fake_oxy = max(occupant.getOxyLoss(), (300 - (occupant.getFireLoss() + occupant.getBruteLoss())))
//var/fake_oxy = max(occupant.getOxyLoss(), (300 - (occupant.getFireLoss() + occupant.getBruteLoss())))
var/fake_death = FALSE
if(occupant.status_flags & FAKEDEATH)
t1 = "*dead*"
@@ -474,16 +483,19 @@
damage_string = "\t-Brute Damage %: [occupant.getBruteLoss()]"
dat += (occupant.getBruteLoss() < 60 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
damage_string = "\t-Respiratory Damage %: [occupant.getOxyLoss()]"
/* //Alternative oxygen based fakedeath
if(fake_death)
damage_string = "\t-Respiratory Damage %: [fake_oxy]"
dat += (span_red(damage_string)) + "<br>"
else
dat += (occupant.getOxyLoss() < 60 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
else*/
dat += (occupant.getOxyLoss() < 60 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
damage_string = "\t-Toxin Content %: [occupant.getToxLoss()]"
if(fake_death)
damage_string = "\t-Toxin Content %: 0"
dat += (occupant.getToxLoss() < 60 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
dat += span_blue(damage_string) + "<br>"
else
damage_string = "\t-Toxin Content %: [occupant.getToxLoss()]"
dat += (occupant.getToxLoss() < 60 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
damage_string = "\t-Burn Severity %: [occupant.getFireLoss()]"
dat += (occupant.getFireLoss() < 60 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
@@ -494,10 +506,20 @@
damage_string = "\tGenetic Tissue Damage %: [occupant.getCloneLoss()]"
dat += (occupant.getCloneLoss() < 1 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
damage_string = "\tApprox. Brain Damage %: [occupant.getBrainLoss()]"
dat += (occupant.getBrainLoss() < 1 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
if(fake_death)
damage_string = "\tApprox. Brain Damage %: 100"
dat += (span_red(damage_string)) + "<br>"
else
damage_string = "\tApprox. Brain Damage %: [occupant.getBrainLoss()]"
dat += (occupant.getBrainLoss() < 1 ? span_blue(damage_string) : span_red(damage_string)) + "<br>"
dat += "Paralysis Summary %: [occupant.paralysis] ([round(occupant.paralysis / 4)] seconds left!)<br>"
var/occupant_paralysis = occupant.paralysis
var/paralysis_duration = round(occupant.paralysis * 0.25)
if(fake_death)
occupant_paralysis = 0
paralysis_duration = 0
dat += "Paralysis Summary %: [occupant_paralysis] ([paralysis_duration] seconds left!)<br>"
dat += "Body Temperature: [occupant.bodytemperature-T0C]&deg;C ([occupant.bodytemperature*1.8-459.67]&deg;F)<br>"
dat += "<hr>"
@@ -644,7 +666,12 @@
// CHOMPedit end
dat += "<tr>"
dat += "<td>[i.name]</td><td>N/A</td><td>[i.damage]</td><td>[infection]:[mi][mech][i_dead]</td><td></td>"
if(fake_death && istype(i, /obj/item/organ/internal/brain))
dat += "<td>[i.name]</td><td>N/A</td><td>200</td><td>[infection]:[mi][mech][i_dead]</td><td></td>"
else if(fake_death && istype(i, /obj/item/organ/internal/lungs))
dat += "<td>[i.name]</td><td>N/A</td><td>25</td><td>[infection]:[mi][mech][i_dead]</td><td></td>"
else
dat += "<td>[i.name]</td><td>N/A</td><td>[i.damage]</td><td>[infection]:[mi][mech][i_dead]</td><td></td>"
dat += "</tr>"
for(var/organ_tag in occupant.species.has_organ) //Check to see if we are missing any organs
var/organData[0]
@@ -14,7 +14,7 @@
matter = list(MAT_STEEL = 200)
origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 1)
var/mode = 1;
var/advscan = 0
var/advscan = SCANNABLE_BENEFICIAL
var/showadvscan = 1
var/guide = FALSE
@@ -23,7 +23,7 @@
/obj/item/healthanalyzer/Initialize(mapload)
. = ..()
if(advscan >= 1)
if(advscan >= SCANNABLE_ADVANCED)
verbs += /obj/item/healthanalyzer/proc/toggle_adv
/obj/item/healthanalyzer/examine(mob/user)
@@ -129,12 +129,14 @@
TX = M.getToxLoss() > 50 ? "[span_green(span_bold("Dangerous amount of toxins detected"))]" : "Subject bloodstream toxin level minimal"
BU = M.getFireLoss() > 50 ? "[span_orange(span_bold("Severe burn damage detected"))]" : "Subject burn injury status O.K"
BR = M.getBruteLoss() > 50 ? "[span_red(span_bold("Severe anatomical damage detected"))]" : "Subject brute-force injury status O.K"
/* //Old variant of fakedeath.
if(M.status_flags & FAKEDEATH)
OX = fake_oxy > 50 ? span_warning("Severe oxygen deprivation detected") : "Subject bloodstream oxygen level normal"
TX = 0 //This is a dead giveaway if they're using zombiepowder.
*/
dat += "[OX] | [TX] | [BU] | [BR]<br>"
if(M.radiation)
if(advscan >= 2 && showadvscan == 1)
if(advscan >= SCANNABLE_DIFFICULT && showadvscan == 1)
var/severity = ""
if(M.radiation >= 1500)
severity = "Lethal"
@@ -152,7 +154,7 @@
dat += span_warning("Acute radiation sickness detected.")
dat += "<br>"
if(M.accumulated_rads)
if(advscan >= 2 && showadvscan == 1)
if(advscan >= SCANNABLE_DIFFICULT && showadvscan == 1)
var/severity = ""
if(M.accumulated_rads >= 1500)
severity = "Critical"
@@ -175,86 +177,68 @@
var/unknown = 0
var/reagentdata[0]
var/unknownreagents[0]
for(var/datum/reagent/R as anything in C.reagents.reagent_list)
if(R.scannable)
for(var/datum/reagent/R in C.reagents.reagent_list)
if(advscan >= R.scannable)
reagentdata["[R.id]"] = span_notice("\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
reagentdata["[R.id]"] += "<br>"
else
unknown++
unknownreagents["[R.id]"] = span_notice("\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
unknownreagents["[R.id]"] += "<br>"
if(reagentdata.len)
dat += span_notice("Beneficial reagents detected in subject's blood:")
if(LAZYLEN(reagentdata) && showadvscan == 1)
dat += span_notice("Reagents detected in subject's blood:")
dat += "<br>"
for(var/d in reagentdata)
dat += reagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += span_warning("Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:")
dat += "<br>"
for(var/d in unknownreagents)
dat += unknownreagents[d]
else
dat += span_warning("Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.")
dat += "<br>"
dat += span_warning("Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.")
dat += "<br>"
if(C.ingested && C.ingested.total_volume)
var/unknown = 0
var/stomachreagentdata[0]
var/stomachunknownreagents[0]
for(var/datum/reagent/R as anything in C.ingested.reagent_list)
if(R.scannable)
for(var/datum/reagent/R in C.ingested.reagent_list)
if(advscan >= R.scannable)
stomachreagentdata["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
stomachreagentdata["[R.id]"] += "<br>"
if (advscan == 0 || showadvscan == 0)
if(!advscan || !showadvscan)
dat += span_notice("[R.name] found in subject's stomach.")
dat += "<br>"
else
++unknown
stomachunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
stomachunknownreagents["[R.id]"] += "<br>"
if(advscan >= 1 && showadvscan == 1)
dat += span_notice("Beneficial reagents detected in subject's stomach:")
if(LAZYLEN(stomachreagentdata) && showadvscan == 1)
dat += span_notice("Reagents detected in subject's stomach:")
dat += "<br>"
for(var/d in stomachreagentdata)
dat += stomachreagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:")
dat += "<br>"
for(var/d in stomachunknownreagents)
dat += stomachunknownreagents[d]
else
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.")
dat += "<br>"
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.")
dat += "<br>"
if(C.touching && C.touching.total_volume)
var/unknown = 0
var/touchreagentdata[0]
var/touchunknownreagents[0]
for(var/datum/reagent/R as anything in C.touching.reagent_list)
if(R.scannable)
for(var/datum/reagent/R in C.touching.reagent_list)
if(advscan >= R.scannable)
touchreagentdata["[R.id]"] = span_notice("\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
touchreagentdata["[R.id]"] += "<br>"
if (advscan == 0 || showadvscan == 0)
if(!advscan || !showadvscan)
dat += span_notice("[R.name] found in subject's dermis.")
dat += "<br>"
else
++unknown
touchunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
touchunknownreagents["[R.id]"] += "<br>"
if(advscan >= 1 && showadvscan == 1)
dat += span_notice("Beneficial reagents detected in subject's dermis:")
if(LAZYLEN(touchreagentdata) && showadvscan == 1)
dat += span_notice("Reagents detected in subject's dermis:")
dat += "<br>"
for(var/d in touchreagentdata)
dat += touchreagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:")
dat += "<br>"
for(var/d in touchunknownreagents)
dat += touchunknownreagents[d]
else
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
dat += "<br>"
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
dat += "<br>"
if(C.IsInfected())
for (var/datum/disease/virus in C.GetViruses())
if(virus.visibility_flags & HIDDEN_SCANNER || virus.visibility_flags & HIDDEN_PANDEMIC)
@@ -266,10 +250,10 @@
dat += "<br>"
// if (M.reagents && M.reagents.get_reagent_amount(REAGENT_ID_INAPROVALINE))
// user.show_message(span_notice("Bloodstream Analysis located [M.reagents:get_reagent_amount(REAGENT_ID_INAPROVALINE)] units of rejuvenation chemicals."))
if (advscan >= 2 && M.has_brain_worms()) // Borers need to hide
if (advscan >= SCANNABLE_DIFFICULT && M.has_brain_worms()) // Borers need to hide
dat += span_warning("Subject suffering from aberrant brain activity. Recommend further scanning.")
dat += "<br>"
else if (M.getBrainLoss() >= 60 || !M.has_brain())
else if (M.getBrainLoss() >= 60 || !M.has_brain() ||(M.status_flags & FAKEDEATH))
dat += span_warning("Subject is brain dead.")
dat += "<br>"
else if (M.getBrainLoss() >= 25)
@@ -311,13 +295,13 @@
dat += span_warning("Biologically unstable, requires [REAGENT_ASUSTENANCE] to function properly.")
dat += "<br>"
for(var/addic in H.get_all_addictions())
if(H.get_addiction_to_reagent(addic) > 0 && (advscan >= 2 || H.get_addiction_to_reagent(addic) <= 120)) // high enough scanner upgrade detects addiction even if not almost withdrawling
if(H.get_addiction_to_reagent(addic) > 0 && (advscan >= SCANNABLE_DIFFICULT || H.get_addiction_to_reagent(addic) <= 120)) // high enough scanner upgrade detects addiction even if not almost withdrawling
var/datum/reagent/R = SSchemistry.chemical_reagents[addic]
if(R.id == REAGENT_ID_ASUSTENANCE)
continue
if(advscan >= 1)
if(advscan >= SCANNABLE_ADVANCED)
// Shows multiple
if(advscan >= 2 && H.get_addiction_to_reagent(addic) <= 80)
if(advscan >= SCANNABLE_DIFFICULT && H.get_addiction_to_reagent(addic) <= 80)
dat += span_warning("Experiencing withdrawls from [R.name], [REAGENT_INAPROVALINE] treatment recomended.")
dat += "<br>"
else
@@ -355,8 +339,8 @@
continue // not there or robotic or brain which is handled separately
if(i.damage || i.status & ORGAN_DEAD)
int_damage_acc += (i.damage + ((i.status & ORGAN_DEAD) ? 30 : 0))
if(advscan >= 2 && showadvscan == 1)
if(advscan >= 3)
if(advscan >= SCANNABLE_DIFFICULT && showadvscan == 1)
if(advscan >= SCANNABLE_SECRETIVE)
var/dam_adj
if(i.damage >= i.min_broken_damage || i.status & ORGAN_DEAD)
dam_adj = "Severe"
@@ -369,7 +353,17 @@
else
dat += span_warning("Damage detected to subject's [i.name].")
dat += "<br>"
if(int_damage_acc >= 1 && (advscan < 2 || !showadvscan))
else if((H.status_flags & FAKEDEATH) && istype(i, /obj/item/organ/internal/lungs))
int_damage_acc += 25
if(advscan >= SCANNABLE_DIFFICULT && showadvscan == 1)
if(advscan >= SCANNABLE_SECRETIVE)
dat += span_warning("Severe damage detected to subject's [i.name].")
dat += "<br>"
else
dat += span_warning("Damage detected to subject's [i.name].")
dat += "<br>"
if(int_damage_acc >= 1 && (advscan < SCANNABLE_DIFFICULT || !showadvscan))
dat += span_warning("Damage detected to subject's internal organs.")
dat += "<br>"
for(var/obj/item/organ/external/e in H.organs)
@@ -380,7 +374,7 @@
if((e.name in list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_HEAD, BP_TORSO, BP_GROIN)) && (!e.splinted))
fracture_dat += span_warning("Unsecured fracture in subject [e.name]. Splinting recommended for transport.")
fracture_dat += "<br>"
else if(advscan >= 1 && showadvscan == 1)
else if(advscan >= SCANNABLE_ADVANCED && showadvscan == 1)
fracture_dat += span_warning("Bone fractures detected in subject [e.name].")
fracture_dat += "<br>"
else
@@ -389,14 +383,23 @@
if(e.has_infected_wound())
dat += span_warning("Infected wound detected in subject [e.name]. Disinfection recommended.")
dat += "<br>"
if(e.status & ORGAN_DEAD)
dat += span_danger("Full-depth necrosis detected in [e.name]. Urgent surgical removal/intervention required.")
dat += "<br>"
else if(e.germ_level > INFECTION_LEVEL_ONE)
if(e.germ_level >= INFECTION_LEVEL_TWO)
dat += span_danger("Necrosis detected in [e.name]. [showadvscan ? "Quantity: [e.germ_level]. " : ""] Antibiotics / surgical intervention urgently required.")
else
dat += span_warning("Cellulitis detected in [e.name]. [showadvscan ? "Quantity: [e.germ_level]. " : ""] Antibiotics / surgical intervention required.")
dat += "<br>"
// IB
for(var/datum/wound/W in e.wounds)
if(W.internal)
if(advscan >= 1 && showadvscan == 1)
ib_dat += span_warning("Internal bleeding detected in subject [e.name].")
if(advscan >= SCANNABLE_ADVANCED && showadvscan == 1)
ib_dat += span_warning("Internal bleeding detected in subject [e.name]. Severity: [H.calculate_internal_bloodloss(W) * 0.5] units of blood lost per second")
ib_dat += "<br>"
else
basic_ib = 1
basic_ib = TRUE
if(basic_fracture)
fracture_dat += span_warning("Bone fractures detected. Advanced scanner required for location.")
fracture_dat += "<br>"
@@ -408,7 +411,7 @@
dat += ib_dat
// Blood level
if(M:vessel)
if(H.vessel)
var/blood_volume = H.vessel.get_reagent_amount(REAGENT_ID_BLOOD)
var/blood_percent = round((blood_volume / H.species.blood_volume)*100)
var/blood_type = H.dna.b_type
@@ -493,21 +496,21 @@
/obj/item/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
name = "improved health analyzer"
desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns."
advscan = 1
advscan = SCANNABLE_ADVANCED
origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6)
icon_state = "health1"
/obj/item/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage
name = "advanced health analyzer"
desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites."
advscan = 2
advscan = SCANNABLE_DIFFICULT
origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7)
icon_state = "health2"
/obj/item/healthanalyzer/phasic //reports all of the above, as well as name and quantity of nonmed reagents in stomach
name = "phasic health analyzer"
desc = "Possibly the most advanced health analyzer to ever have existed, utilising bluespace technology to determine almost everything worth knowing about a patient."
advscan = 3
advscan = SCANNABLE_SECRETIVE
origin_tech = list(TECH_MAGNET = 7, TECH_BIO = 8)
icon_state = "health3"
@@ -220,7 +220,7 @@
board_type = new /datum/frame/frame_types/medical_pod
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
req_components = list(
/obj/item/stock_parts/scanning_module = 3,
/obj/item/stock_parts/scanning_module = 1,
/obj/item/stack/material/glass/reinforced = 2)
/obj/item/circuitboard/medical_kiosk
+21 -39
View File
@@ -4,7 +4,7 @@
// showadvscan toggles whether to give additional scan information about chemicals in their body.
// By default this proc is set to it's most powerful scan.
/mob/living/proc/scan_mob(mob/user, var/mode = 1, var/advscan = 3, var/showadvscan = 1)
/mob/living/proc/scan_mob(mob/user, var/mode = 1, var/advscan = SCANNABLE_SECRETIVE, var/showadvscan = 1)
var/mob/living/M = src
var/dat = ""
@@ -146,7 +146,7 @@
OX = fake_oxy > 50 ? span_warning("Severe oxygen deprivation detected") : "Subject bloodstream oxygen level normal"
dat += "[OX] | [TX] | [BU] | [BR]<br>"
if(M.radiation)
if(advscan >= 2 && showadvscan == 1)
if(advscan >= SCANNABLE_DIFFICULT && showadvscan == 1)
var/severity = ""
if(M.radiation >= 1500)
severity = "Lethal"
@@ -164,7 +164,7 @@
dat += span_warning("Acute radiation sickness detected.")
dat += "<br>"
if(M.accumulated_rads)
if(advscan >= 2 && showadvscan == 1)
if(advscan >= SCANNABLE_DIFFICULT && showadvscan == 1)
var/severity = ""
if(M.accumulated_rads >= 1500)
severity = "Critical"
@@ -188,7 +188,7 @@
var/reagentdata[0]
var/unknownreagents[0]
for(var/datum/reagent/R as anything in C.reagents.reagent_list)
if(R.scannable)
if(R.scannable && advscan >= R.scannable)
reagentdata["[R.id]"] = span_notice("\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
reagentdata["[R.id]"] += "<br>"
else
@@ -201,72 +201,54 @@
for(var/d in reagentdata)
dat += reagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += span_warning("Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:")
dat += "<br>"
for(var/d in unknownreagents)
dat += unknownreagents[d]
else
dat += span_warning("Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.")
dat += "<br>"
dat += span_warning("Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.")
dat += "<br>"
if(C.ingested && C.ingested.total_volume)
var/unknown = 0
var/stomachreagentdata[0]
var/stomachunknownreagents[0]
for(var/datum/reagent/R as anything in C.ingested.reagent_list)
if(R.scannable)
if(R.scannable && advscan >= R.scannable)
stomachreagentdata["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
stomachreagentdata["[R.id]"] += "<br>"
if (advscan == 0 || showadvscan == 0)
if(!advscan || !showadvscan)
dat += span_notice("[R.name] found in subject's stomach.")
dat += "<br>"
else
++unknown
stomachunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
stomachunknownreagents["[R.id]"] += "<br>"
if(advscan >= 1 && showadvscan == 1)
if(showadvscan == 1)
dat += span_notice("Beneficial reagents detected in subject's stomach:")
dat += "<br>"
for(var/d in stomachreagentdata)
dat += stomachreagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:")
dat += "<br>"
for(var/d in stomachunknownreagents)
dat += stomachunknownreagents[d]
else
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.")
dat += "<br>"
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.")
dat += "<br>"
if(C.touching && C.touching.total_volume)
var/unknown = 0
var/touchreagentdata[0]
var/touchunknownreagents[0]
for(var/datum/reagent/R as anything in C.touching.reagent_list)
if(R.scannable)
if(R.scannable && advscan >= R.scannable)
touchreagentdata["[R.id]"] = span_notice("\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
touchreagentdata["[R.id]"] += "<br>"
if (advscan == 0 || showadvscan == 0)
if(!advscan || !showadvscan)
dat += span_notice("[R.name] found in subject's dermis.")
dat += "<br>"
else
++unknown
touchunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
touchunknownreagents["[R.id]"] += "<br>"
if(advscan >= 1 && showadvscan == 1)
if(showadvscan == 1)
dat += span_notice("Beneficial reagents detected in subject's dermis:")
dat += "<br>"
for(var/d in touchreagentdata)
dat += touchreagentdata[d]
if(unknown)
if(advscan >= 3 && showadvscan == 1)
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:")
dat += "<br>"
for(var/d in touchunknownreagents)
dat += touchunknownreagents[d]
else
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
dat += "<br>"
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
dat += "<br>"
if(C.IsInfected())
for (var/datum/disease/virus in C.GetViruses())
if(virus.visibility_flags & HIDDEN_SCANNER || virus.visibility_flags & HIDDEN_PANDEMIC)
@@ -344,8 +326,8 @@
continue // not there or robotic or brain which is handled separately
if(i.damage || i.status & ORGAN_DEAD)
int_damage_acc += (i.damage + ((i.status & ORGAN_DEAD) ? 30 : 0))
if(advscan >= 2 && showadvscan == 1)
if(advscan >= 3)
if(advscan >= SCANNABLE_DIFFICULT && showadvscan == 1)
if(advscan >= SCANNABLE_SECRETIVE)
var/dam_adj
if(i.damage >= i.min_broken_damage || i.status & ORGAN_DEAD)
dam_adj = "Severe"
@@ -358,7 +340,7 @@
else
dat += span_warning("Damage detected to subject's [i.name].")
dat += "<br>"
if(int_damage_acc >= 1 && (advscan < 2 || !showadvscan))
if(int_damage_acc >= 1 && (advscan < SCANNABLE_DIFFICULT || !showadvscan))
dat += span_warning("Damage detected to subject's internal organs.")
dat += "<br>"
for(var/obj/item/organ/external/e in H.organs)
@@ -369,7 +351,7 @@
if((e.name in list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_HEAD, BP_TORSO, BP_GROIN)) && (!e.splinted))
fracture_dat += span_warning("Unsecured fracture in subject [e.name]. Splinting recommended for transport.")
fracture_dat += "<br>"
else if(advscan >= 1 && showadvscan == 1)
else if(advscan >= SCANNABLE_ADVANCED && showadvscan == 1)
fracture_dat += span_warning("Bone fractures detected in subject [e.name].")
fracture_dat += "<br>"
else
@@ -381,7 +363,7 @@
// IB
for(var/datum/wound/W in e.wounds)
if(W.internal)
if(advscan >= 1 && showadvscan == 1)
if(advscan >= SCANNABLE_ADVANCED && showadvscan == 1)
ib_dat += span_warning("Internal bleeding detected in subject [e.name].")
ib_dat += "<br>"
else
+1 -1
View File
@@ -19,7 +19,7 @@
var/datum/surgery_step/cure_surgery //Which surgery step can be used to cure this?
var/unhealth = 100 //The amount of health the issue has, depleted by reagent
var/reagent_strength = 10 //How much health the reagent will remove per processing
var/advscan_cure = 0 //What level of advanced scan is required to reveal the cure?
var/advscan_cure = SCANNABLE_BENEFICIAL //What level of advanced scan is required to reveal the cure?
var/symptom_text //Messages relayed to the patient about their symptoms
var/symptom_affect //Visible effects on the patient such as vomiting or weakness
+1 -5
View File
@@ -71,11 +71,7 @@ Drinks Data
*/
/datum/reagent
var/glass_icon_file = null
var/glass_icon_state = null
var/glass_center_of_mass_x = 0
var/glass_center_of_mass_y = 0
var/glass_icon_source = null //CHOMP A way for us to have metaglass identify and decide which dmi it wants to grab sprites from - Jack
var/glass_icon_source = null //CHOMPEdit A way for us to have metaglass identify and decide which dmi it wants to grab sprites from - Jack
/datum/reagent/adminordrazine
glass_icon_state = "golden_cup"
@@ -20,7 +20,7 @@
taste_description = "nothingness"
reagent_state = LIQUID
color = "#ffffff"
scannable = 1
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_MATSCI
@@ -58,7 +58,7 @@
taste_description = "difficult to discern"
reagent_state = LIQUID
color = "#ffffff"
scannable = 1
scannable = SCANNABLE_ADVANCED
wiki_flag = WIKI_SPOILER
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_MATSCI
@@ -93,7 +93,7 @@
taste_description = "bright"
reagent_state = LIQUID
color = "#ffffff"
scannable = 1
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_MATSCI
@@ -1247,7 +1247,7 @@
description = "A unknown liquid, it smells sweet"
metabolism = REM * 0.8
color = "#8A0829"
scannable = 0
scannable = SCANNABLE_ADVANCED
wiki_flag = WIKI_SPOILER
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_MATSCI
@@ -1265,7 +1265,7 @@
description = "A unknown liquid, it doesn't smell"
metabolism = REM * 0.5
color = "#41029B"
scannable = 0
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_MATSCI
@@ -1285,7 +1285,7 @@
description = "A unknown liquid, it doesn't smell"
metabolism= REM * 0.5
color = "#41029B"
scannable = 0
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_MATSCI
+101 -63
View File
@@ -161,82 +161,120 @@ BLOOD_VOLUME_SURVIVE = 40
adjust_nutrition(-3)
//Bleeding out
var/blood_max = 0
var/blood_loss_divisor = 30.01 //lower factor = more blood loss
caculate_bloodloss_and_bleed(bleed = TRUE)
// Some species bleed out differently
blood_loss_divisor /= species.bloodloss_rate
///Calculates our bloodloss divisor and returns what it is.
/mob/living/carbon/human/proc/calculate_bloodloss_divisor()
var/blood_loss_divisor = 30.01 //lower factor = more blood loss
// Some modifiers can make bleeding better or worse. Higher multiplers = more bleeding.
var/blood_loss_modifier_multiplier = 1.0
for(var/datum/modifier/M in modifiers)
if(!isnull(M.bleeding_rate_percent))
blood_loss_modifier_multiplier += (M.bleeding_rate_percent - 1.0)
// Some species bleed out differently
blood_loss_divisor /= species.bloodloss_rate
blood_loss_divisor /= blood_loss_modifier_multiplier
// Some modifiers can make bleeding better or worse. Higher multiplers = more bleeding.
var/blood_loss_modifier_multiplier = 1.0
for(var/datum/modifier/M in modifiers)
if(!isnull(M.bleeding_rate_percent))
blood_loss_modifier_multiplier += (M.bleeding_rate_percent - 1.0)
blood_loss_divisor /= blood_loss_modifier_multiplier
return blood_loss_divisor
//This 30 is the "baseline" of a cut in the "vital" regions (head and torso).
for(var/obj/item/organ/external/temp in bad_external_organs)
///Calculates how much blood we should lose from our wounds and makes us bleed that amount if bleed is TRUE
///ARGS:
/// bleed: If we bleed or not while checking. DEFAULT: True
/// organ_to_check: The organ we want to check. If we don't, it checks ALL the bad organs.
/// count_internal: Internal bleeding counts towards our bloodloss max. DEFAULT: False
/// count_external: External bleeding counts towards our bloodloss max. DEFAULT: True
///First, we make sure it's not robotic.
if(temp.robotic >= ORGAN_ROBOT)
continue
/mob/living/carbon/human/proc/caculate_bloodloss_and_bleed(bleed = TRUE, obj/item/organ/external/organ_to_check, count_internal = FALSE, count_external = TRUE)
var/total_blood_loss = 0
var/blood_max = 0
var/blood_loss_divisor = calculate_bloodloss_divisor()
var/list/organs_to_check = list()
///Second, we process internal bleeding.
if(organ_to_check)
organs_to_check += organ_to_check
else
organs_to_check = bad_external_organs
//This 30 is the "baseline" of a cut in the "vital" regions (head and torso).
for(var/obj/item/organ/external/temp in organs_to_check)
///First, we make sure it's not robotic.
if(temp.robotic >= ORGAN_ROBOT)
continue
///Second, we process internal bleeding.
if(bleed || count_internal)
for(var/datum/wound/internal_bleeding/W in temp.wounds)
blood_loss_divisor = blood_loss_divisor+10 //IB is slower bloodloss than normal.
var/bicardose
if(reagents.get_reagent_amount(REAGENT_ID_BICARIDINE) || reagents.get_reagent_amount(REAGENT_ID_BICARIDAZE))
bicardose = TRUE
var/inaprovaline
if(reagents.get_reagent_amount(REAGENT_ID_INAPROVALINE) || reagents.get_reagent_amount(REAGENT_ID_INAPROVALAZE))
inaprovaline = TRUE
var/myeldose = reagents.get_reagent_amount(REAGENT_ID_MYELAMINE)
if(!(W.can_autoheal() || (bicardose && inaprovaline) || myeldose)) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, unless it is so small that it is already healing
W.open_wound(0.1)
var/internal_blood_to_lose = calculate_internal_bloodloss(W, applied_pressure = temp.applied_pressure)
if(count_internal)
total_blood_loss += internal_blood_to_lose
if(bleed)
remove_blood(internal_blood_to_lose)
if(prob(1))
custom_pain("You feel a stabbing pain in your [temp.name]!", 50)
if((CE_STABLE in chem_effects) || myeldose)
blood_loss_divisor = max(blood_loss_divisor + 30, 1) //Inaprovaline is great on internal wounds.
if(temp.applied_pressure) //Putting pressure on the afflicted wound helps stop the arterial bleeding.
blood_loss_divisor += 30
if(W.clamped)
blood_loss_divisor = blood_loss_divisor * 10 //We hemostatted the internal bleeding. Bloodloss is 10 times slower.
remove_blood(W.damage/blood_loss_divisor) //line should possibly be moved to handle_blood, so all the bleeding stuff is in one place. //Hi. 2025 here. Just did that. ~Diana
///Thirdly, we check to see if the limb is bleeding EXTERNALLY
if(!(temp.status & ORGAN_BLEEDING))
continue
///Finally, we process external wounds.
for(var/datum/wound/W in temp.wounds)
if(W.bleeding())
if(W.damage_type == PIERCE) //gunshots and spear stabs bleed more
blood_loss_divisor = max(blood_loss_divisor - 5, 1)
else if(W.damage_type == BRUISE) //bruises bleed less
blood_loss_divisor = max(blood_loss_divisor + 5, 1)
//the farther you get from those vital regions, the less you bleed
//depending on how dangerous bleeding turns out to be, it might be better to only apply the reduction to hands and feet
if((temp.organ_tag == BP_L_ARM) || (temp.organ_tag == BP_R_ARM) || (temp.organ_tag == BP_L_LEG) || (temp.organ_tag == BP_R_LEG))
blood_loss_divisor = max(blood_loss_divisor + 5, 1)
else if((temp.organ_tag == BP_L_HAND) || (temp.organ_tag == BP_R_HAND) || (temp.organ_tag == BP_L_FOOT) || (temp.organ_tag == BP_R_FOOT))
blood_loss_divisor = max(blood_loss_divisor + 10, 1)
if(CE_STABLE in chem_effects) //Inaprov slows bloodloss
blood_loss_divisor = max(blood_loss_divisor + 10, 1)
if(temp.applied_pressure)
if(ishuman(temp.applied_pressure))
var/mob/living/carbon/human/H = temp.applied_pressure
H.bloody_hands(src, 0)
//somehow you can apply pressure to every wound on the organ at the same time
//you're basically forced to do nothing at all, so let's make it pretty effective
var/min_eff_damage = max(0, W.damage - 10) / (blood_loss_divisor / 5) //still want a little bit to drip out, for effect
blood_max += max(min_eff_damage, W.damage - 30) / blood_loss_divisor
else
blood_max += W.damage / blood_loss_divisor
///Thirdly, we check to see if the limb is bleeding EXTERNALLY
if(!(temp.status & ORGAN_BLEEDING))
continue
///Finally, we process external wounds.
for(var/datum/wound/W in temp.wounds)
if(W.bleeding())
var/temp_bld = blood_loss_divisor
if(W.damage_type == PIERCE) //gunshots and spear stabs bleed more
temp_bld = max(temp_bld - 5, 1)
else if(W.damage_type == BRUISE) //bruises bleed less
temp_bld = max(temp_bld + 5, 1)
//the farther you get from those vital regions, the less you bleed
//depending on how dangerous bleeding turns out to be, it might be better to only apply the reduction to hands and feet
if((temp.organ_tag == BP_L_ARM) || (temp.organ_tag == BP_R_ARM) || (temp.organ_tag == BP_L_LEG) || (temp.organ_tag == BP_R_LEG))
temp_bld = max(temp_bld + 5, 1)
else if((temp.organ_tag == BP_L_HAND) || (temp.organ_tag == BP_R_HAND) || (temp.organ_tag == BP_L_FOOT) || (temp.organ_tag == BP_R_FOOT))
temp_bld = max(temp_bld + 10, 1)
if(CE_STABLE in chem_effects) //Inaprov slows bloodloss
temp_bld = max(temp_bld + 10, 1)
if(temp.applied_pressure)
if(ishuman(temp.applied_pressure))
var/mob/living/carbon/human/H = temp.applied_pressure
H.bloody_hands(src, 0)
//somehow you can apply pressure to every wound on the organ at the same time
//you're basically forced to do nothing at all, so let's make it pretty effective
var/min_eff_damage = max(0, W.damage - 10) / (temp_bld / 5) //still want a little bit to drip out, for effect
blood_max += max(min_eff_damage, W.damage - 30) / temp_bld
else
blood_max += W.damage / temp_bld
if(temp.open)
blood_max += 2 //Yer stomach is cut open
if(temp.open)
blood_max += 2 //Yer stomach is cut open
if(bleed)
blood_max = round(blood_max, 0.1)
drip(blood_max)
total_blood_loss += blood_max
return round(total_blood_loss, 0.1)
///Calculates how much blood we should lose from an internal wound.
/mob/living/carbon/human/proc/calculate_internal_bloodloss(datum/wound/internal_bleeding/wound_to_check, applied_pressure = FALSE)
if(!wound_to_check)
return 0
var/temp_bld = calculate_bloodloss_divisor() + 10 //IB is slower bloodloss than normal.
var/bicardose
if(reagents.get_reagent_amount(REAGENT_ID_BICARIDINE) || reagents.get_reagent_amount(REAGENT_ID_BICARIDAZE))
bicardose = TRUE
var/inaprovaline
if(reagents.get_reagent_amount(REAGENT_ID_INAPROVALINE) || reagents.get_reagent_amount(REAGENT_ID_INAPROVALAZE))
inaprovaline = TRUE
var/myeldose = reagents.get_reagent_amount(REAGENT_ID_MYELAMINE)
if(!(wound_to_check.can_autoheal() || (bicardose && inaprovaline) || myeldose)) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, unless it is so small that it is already healing
wound_to_check.open_wound(0.1)
if((CE_STABLE in chem_effects) || myeldose)
temp_bld = max(temp_bld + 30, 1) //Inaprovaline is great on internal wounds.
if(applied_pressure) //Putting pressure on the afflicted wound helps stop the arterial bleeding.
temp_bld += 30
if(wound_to_check.clamped)
temp_bld = temp_bld * 10 //We hemostatted the internal bleeding. Bloodloss is 10 times slower.
return round((wound_to_check.damage/temp_bld), 0.1)
//Makes a blood drop, leaking amt units of blood from the mob
/mob/living/carbon/human/proc/drip(var/amt)
+6 -1
View File
@@ -18,7 +18,7 @@
var/overdose = 0 //Amount at which overdose starts
var/overdose_mod = 1 //Modifier to overdose damage
var/can_overdose_touch = FALSE // Can the chemical OD when processing on touch?
var/scannable = 0 // Shows up on health analyzers.
var/scannable = SCANNABLE_SECRETIVE // Shows up on health analyzers.
var/affects_dead = 0 // Does this chem process inside a corpse without outside intervention required?
var/affects_robots = 0 // Does this chem process inside a Synth?
@@ -49,6 +49,11 @@
var/coolant_modifier = -0.5 // this is multiplied by the volume of the reagent. Most things are not good coolant. EX: Water is 1, coolant is 2. -1 would be a bad reagent for cooling.
var/glass_icon_file = null
var/glass_icon_state = null
var/glass_center_of_mass_x = 0
var/glass_center_of_mass_y = 0
/datum/reagent/proc/remove_self(var/amount) // Shortcut
if(holder)
holder.remove_reagent(id, amount)
+2
View File
@@ -247,6 +247,7 @@
taste_description = REAGENT_ID_WATER
description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen."
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#0064C877"
metabolism = REM * 10
@@ -349,6 +350,7 @@
description = "Required for welders. Flamable."
taste_description = "gross metal"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#660000"
glass_name = "welder fuel"
@@ -6,6 +6,7 @@
taste_mult = 1.1
reagent_state = SOLID
color = "#A8A8A8"
scannable = SCANNABLE_ADVANCED
supply_conversion_value = 1 // has sheet value
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -16,6 +17,7 @@
taste_description = "metallic chalk" // Apparently, calcium tastes like calcium.
taste_mult = 1.3
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#e9e6e4"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -39,6 +41,7 @@
taste_description = "sour chalk"
taste_mult = 1.5
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#1C1300"
ingest_met = REM * 5
supply_conversion_value = REFINERYEXPORT_VALUE_UNWANTED
@@ -71,6 +74,7 @@
taste_description = "pool water"
reagent_state = GAS
color = "#808080"
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
coolant_modifier = 0.15
@@ -87,6 +91,7 @@
description = "A highly ductile metal."
taste_description = "pennies"
color = "#6E3B08"
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = 0.5 SHEET_TO_REAGENT_EQUIVILENT // has sheet value
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -96,6 +101,7 @@
description = "A well-known alcohol with a variety of applications."
taste_description = "pure alcohol"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#404030"
cup_prefix = "alcoholic"
@@ -303,6 +309,7 @@
description = "A highly-reactive chemical element."
taste_description = "acid"
reagent_state = GAS
scannable = SCANNABLE_ADVANCED
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -319,6 +326,7 @@
description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas."
taste_mult = 0 //no taste
reagent_state = GAS
scannable = SCANNABLE_ADVANCED
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_NO
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -329,6 +337,7 @@
description = "Pure iron is a metal."
taste_description = "metal"
reagent_state = SOLID
scannable = SCANNABLE_BENEFICIAL
color = "#353535"
supply_conversion_value = 1 SHEET_TO_REAGENT_EQUIVILENT // has sheet value
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -339,6 +348,7 @@
description = "A chemical element, used as antidepressant."
taste_description = "metal"
reagent_state = SOLID
scannable = SCANNABLE_BENEFICIAL
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -357,6 +367,7 @@
description = "A chemical element."
taste_mult = 0 //mercury apparently is tasteless. IDK
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#484848"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -375,6 +386,7 @@
description = "A colorless, odorless, tasteless gas."
taste_mult = 0 //no taste
reagent_state = GAS
scannable = SCANNABLE_ADVANCED
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -386,6 +398,7 @@
description = "A colorless, odorless gas."
taste_mult = 0
reagent_state = GAS
scannable = SCANNABLE_BENEFICIAL
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -401,6 +414,7 @@
description = "A chemical element, the backbone of biological energy carriers."
taste_description = "vinegar"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#832828"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -411,6 +425,7 @@
description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water."
taste_description = "sweetness" //potassium is bitter in higher doses but sweet in lower ones.
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#A0A0A0"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -421,6 +436,7 @@
description = "Radium is an alkaline earth metal. It is extremely radioactive."
taste_mult = 0 //Apparently radium is tasteless
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#C7C7C7"
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -444,6 +460,7 @@
description = "Concentrated Radium is a more potent variant of regular radium, able to pierce and irradiate a subject through their skin."
taste_mult = 0 //Apparently radium is tasteless
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#C7C7C7"
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -462,6 +479,7 @@
description = "A very corrosive mineral acid with the molecular formula H2SO4."
taste_description = "acid"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#DB5008"
metabolism = REM * 2
touch_met = 50 // It's acid!
@@ -598,6 +616,7 @@
description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon."
taste_mult = 0
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#A8A8A8"
supply_conversion_value = REFINERYEXPORT_VALUE_UNWANTED
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -608,6 +627,7 @@
description = "A chemical element, readily reacts with water."
taste_description = "salty metal"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -620,6 +640,7 @@
taste_description = "sugar"
taste_mult = 1.8
reagent_state = SOLID
scannable = SCANNABLE_BENEFICIAL
color = "#FFFFFF"
glass_name = REAGENT_ID_SUGAR
@@ -657,6 +678,7 @@
description = "A chemical element with a pungent smell."
taste_description = "old eggs"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#BF8C00"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -669,6 +691,7 @@
taste_description = "metal"
taste_mult = 0 //no taste
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#DCDCDC"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -680,6 +703,7 @@
taste_description = "metal"
taste_mult = 0 //no taste
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#cadcef"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_COSMETIC
@@ -691,6 +715,7 @@
taste_description = "metal"
taste_mult = 0 //no taste
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#cadcef"
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_INDUSTRY
@@ -702,6 +727,7 @@
taste_description = "metal"
taste_mult = 0 //no taste
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#efe9ca"
supply_conversion_value = 0.5 SHEET_TO_REAGENT_EQUIVILENT // has sheet value
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -711,6 +737,7 @@
id = REAGENT_ID_MIASMA
description = "Not necessarily a gas, miasma refers to biological pollutants found in the atmosphere."
reagent_state = GAS
scannable = SCANNABLE_ADVANCED
taste_description = "indescribable"
color = "#808000"
supply_conversion_value = REFINERYEXPORT_VALUE_NO
+6
View File
@@ -10,6 +10,7 @@
taste_description = "a bad investment"
taste_mult = 1.2 /// The overwhelming flavor of a good(?) time!
color = "#f2f2f2"
scannable = SCANNABLE_ADVANCED
var/high_messages = TRUE
var/list/high_message_list = list("You feel great! For now...", "You feel a wave of happiness!")
var/list/sober_message_list = list("You feel like garbage...", "Your head aches.")
@@ -48,6 +49,7 @@
description = "Known for providing a euphoric high, this psychoactive drug is often used recreationally."
taste_description = "unpleasant bitterness"
taste_mult = 0.4
scannable = SCANNABLE_ADVANCED
high_message_list = list("You don't quite know what up or down is anymore...",
"Colors just seem much more amazing.",
"You feel incredibly confident. No one can stop you.",
@@ -268,6 +270,7 @@
high_message_list = list("You feel focused.", "Your attention is undivided.")
sober_message_list = list("It becomes harder to focus...", "You feel distractible.")
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
scannable = SCANNABLE_BENEFICIAL
industrial_use = REFINERYEXPORT_REASON_DRUG
/datum/reagent/drugs/citalopram
@@ -276,6 +279,7 @@
description = "Stabilizes the mind a little."
taste_description = "mild peppermint"
color = "#FF80FF"
scannable = SCANNABLE_BENEFICIAL
high_message_list = list("Everything feels a bit more steady.", "Your mind feels stable.")
sober_message_list = list("You feel a little tired.", "You feel a little more listless...")
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -292,6 +296,7 @@
description = "Stabilizes the mind greatly, but has a chance of adverse effects."
taste_description = "mild oranges"
color = "#FF80BF"
scannable = SCANNABLE_BENEFICIAL
high_message_list = list("Everything feels good, stable.", "You feel grounded.")
sober_message_list = list("The stability is gone...", "Everything is much less stable.")
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
@@ -312,6 +317,7 @@
description = "A potent sedative and anti-anxiety medication, made for the Qerr-Katish."
taste_description = "mint"
color = "#e6efe3"
scannable = SCANNABLE_BENEFICIAL
high_message_list = list("You feel sluggish...", "You feel calm and collected.")
sober_message_list = list("You feel so much more antsy...", "Your concentration wavers.")
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -14,6 +14,7 @@
affects_robots = 1 //VOREStation Edit
wiki_flag = WIKI_FOOD
coolant_modifier = -1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_UNWANTED
industrial_use = REFINERYEXPORT_REASON_FOOD
@@ -867,6 +868,7 @@
/datum/reagent/condensedcapsaicin
name = REAGENT_CONDENSEDCAPSAICIN
id = REAGENT_ID_CONDENSEDCAPSAICIN
scannable = SCANNABLE_ADVANCED
description = "A chemical agent used for self-defense and in police work."
taste_description = "fire"
taste_mult = 10
+50 -44
View File
@@ -9,7 +9,7 @@
color = "#00BFFF"
overdose = REAGENTS_OVERDOSE * 2
metabolism = REM * 0.2
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -28,7 +28,7 @@
color = "#00BFFF"
overdose = REAGENTS_OVERDOSE * 2
metabolism = REM * 0.2
scannable = 1
scannable = SCANNABLE_BENEFICIAL
touch_met = REM * 0.3
can_overdose_touch = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -54,7 +54,7 @@
color = "#BF0000"
overdose = REAGENTS_OVERDOSE
overdose_mod = 0.25
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -91,7 +91,7 @@
reagent_state = LIQUID
color = "#BF0000"
overdose = REAGENTS_OVERDOSE * 0.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
touch_met = REM * 0.75
can_overdose_touch = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -121,7 +121,7 @@
color = "#eae6e3"
overdose = REAGENTS_OVERDOSE * 0.8
metabolism = REM * 0.4
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -141,7 +141,7 @@
reagent_state = LIQUID
color = "#FFA800"
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -163,7 +163,7 @@
reagent_state = LIQUID
color = "#FF8000"
overdose = REAGENTS_OVERDOSE * 0.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -183,7 +183,7 @@
reagent_state = LIQUID
color = "#FF8000"
overdose = REAGENTS_OVERDOSE * 0.4
scannable = 1
scannable = SCANNABLE_BENEFICIAL
touch_met = REM * 0.75
can_overdose_touch = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -211,7 +211,7 @@
taste_description = "a roll of gauze"
reagent_state = LIQUID
color = "#00A000"
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -234,7 +234,7 @@
description = REAGENT_CARTHATOLINE + " is strong evacuant used to treat severe poisoning."
reagent_state = LIQUID
color = "#225722"
scannable = 1
scannable = SCANNABLE_BENEFICIAL
overdose = REAGENTS_OVERDOSE * 0.5
overdose_mod = 0 // Not used, but it shouldn't deal toxin damage anyways. Carth heals toxins!
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -273,7 +273,7 @@
reagent_state = LIQUID
color = "#0080FF"
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
metabolism = REM * 0.25
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -301,7 +301,7 @@
color = "#0040FF"
overdose = REAGENTS_OVERDOSE * 0.5
overdose_mod = 1.25
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -326,8 +326,8 @@
taste_description = "bitterness"
reagent_state = LIQUID
color = "#8040FF"
scannable = 1
overdose = REAGENTS_OVERDOSE * 4 //YW EDIT - TRICORD FUCKING KILLS YOU
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -356,7 +356,7 @@
taste_description = "bitterness"
reagent_state = SOLID
color = "#B060FF"
scannable = 1
scannable = SCANNABLE_BENEFICIAL
can_overdose_touch = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -396,7 +396,7 @@
color = "#8080FF"
metabolism = REM * 0.5
mrate_static = TRUE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_CLONEDRUG
@@ -423,7 +423,7 @@
color = "#80BFFF"
metabolism = REM * 0.5
mrate_static = TRUE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_CLONEDRUG
@@ -452,7 +452,7 @@
metabolism = REM * 0.5
mrate_static = TRUE
affects_dead = FALSE //Clarifying this here since the original intent was this ONLY works on people that have the bloodpump_corpse modifier.
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_MASSINDUSTRY
industrial_use = REFINERYEXPORT_REASON_CLONEDRUG
@@ -492,7 +492,7 @@
color = "#94B21C"
metabolism = REM * 0.5
mrate_static = TRUE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
affects_dead = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_CLONEDRUG
@@ -529,7 +529,7 @@
color = "#C8A5DC"
overdose = REAGENTS_OVERDOSE * 2
overdose_mod = 0.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
metabolism = 0.02
mrate_static = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
@@ -556,7 +556,7 @@
color = "#CB68FC"
overdose = REAGENTS_OVERDOSE
overdose_mod = 0.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
metabolism = 0.02
mrate_static = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -582,7 +582,7 @@
color = "#800080"
overdose = 20
overdose_mod = 0.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
metabolism = 0.02
mrate_static = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_MASSINDUSTRY
@@ -612,8 +612,9 @@
reagent_state = LIQUID
color = "#99CCFF"
metabolism = REM * 0.05
mrate_static = TRUE
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -644,6 +645,7 @@
reagent_state = LIQUID
color = "#FF3300"
overdose = REAGENTS_OVERDOSE * 0.5
scannable = SCANNABLE_ADVANCED
overdose_mod = 0.25
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_COMSTIM
@@ -677,7 +679,7 @@
color = "#FFFF66"
metabolism = REM * 0.25
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -702,7 +704,7 @@
reagent_state = LIQUID
color = "#C8A5DC"
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -729,7 +731,7 @@
color = "#561EC3"
overdose = 10
overdose_mod = 1.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -764,7 +766,7 @@
metabolism = REM * 0.5
overdose = REAGENTS_OVERDOSE * 0.5
overdose_mod = 1.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_MASSINDUSTRY
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -798,7 +800,7 @@
metabolism = REM * 0.75
overdose = REAGENTS_OVERDOSE * 0.5
overdose_mod = 1.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
var/repair_strength = 6
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -848,7 +850,7 @@
metabolism = REM * 1.5
overdose = 10
overdose_mod = 1.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -882,7 +884,7 @@
metabolism = REM * 1.5
overdose = 10
overdose_mod = 1.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -916,7 +918,7 @@
metabolism = REM * 1.5
overdose = 10
overdose_mod = 1.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -952,7 +954,7 @@
metabolism = REM * 1.5
overdose = 10
overdose_mod = 1.75
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -982,7 +984,7 @@
color = "#7B4D4F"
overdose = 20
overdose_mod = 1.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
metabolism = REM * 0.06
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -1040,7 +1042,7 @@
metabolism = REM * 0.06
overdose = 20
overdose_mod = 1.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -1081,6 +1083,7 @@
description = REAGENT_RYETALYN + " can cure DNA, Cloning, and genetic damage via a catalytic process."
taste_description = "acid"
reagent_state = SOLID
scannable = SCANNABLE_BENEFICIAL
color = "#004000"
overdose = REAGENTS_OVERDOSE
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
@@ -1116,6 +1119,7 @@
description = "A powerful oxidizer that reacts with ethanol."
taste_description = "bitterness"
reagent_state = SOLID
scannable = SCANNABLE_BENEFICIAL
color = "#605048"
overdose = REAGENTS_OVERDOSE
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
@@ -1154,7 +1158,7 @@
color = "#408000"
metabolism = REM * 0.25
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_SPECIALDRUG
@@ -1174,7 +1178,7 @@
metabolism = REM * 0.25
overdose = REAGENTS_OVERDOSE
overdose_mod = 1.25
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_CLONEDRUG
@@ -1197,7 +1201,7 @@
metabolism = REM * 0.25
mrate_static = TRUE
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
data = 0
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -1228,7 +1232,7 @@
mrate_static = TRUE
overdose = 10
overdose_mod = 1.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
data = 0
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -1298,7 +1302,7 @@
metabolism = REM * 0.4
mrate_static = TRUE
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
data = 0
can_overdose_touch = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -1345,6 +1349,7 @@
taste_description = "bitterness"
reagent_state = LIQUID
color = "#C8A5DC"
scannable = SCANNABLE_BENEFICIAL
touch_met = 5
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_CLEAN
@@ -1398,7 +1403,7 @@
reagent_state = LIQUID
color = "#C8A5DC"
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_CLONEDRUG
coolant_modifier = 0.5 // Okay substitute coolant
@@ -1424,7 +1429,7 @@
color = "#669900"
overdose = REAGENTS_OVERDOSE
overdose_mod = 2
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_MASSINDUSTRY
industrial_use = REFINERYEXPORT_REASON_CLONEDRUG
@@ -1474,7 +1479,7 @@
reagent_state = SOLID
color = "#555555"
metabolism = REM * 4 // Nanomachines gotta go fast.
scannable = 1
scannable = SCANNABLE_BENEFICIAL
affects_robots = TRUE
wiki_flag = WIKI_SPOILER
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -1495,7 +1500,7 @@
color = "#80af9c"
metabolism = REM * 0.002
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_FOOD
@@ -1509,7 +1514,7 @@
overdose = REAGENTS_OVERDOSE * 0.50
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_DRUG
scannable = SCANNABLE_BENEFICIAL
/datum/reagent/earthsblood/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.heal_organ_damage (4 * removed, 4 * removed)
@@ -1531,7 +1536,7 @@
color = "#31d422"
overdose = 15
overdose_mod = 1.2
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -1588,6 +1593,7 @@
id = REAGENT_ID_TERCOZOLAM
color = "#afeb17"
metabolism = 0.05
scannable = SCANNABLE_BENEFICIAL
description = "A well respected drug used for treatment of schizophrenia in specific."
overdose = REAGENTS_OVERDOSE * 2
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
@@ -6,6 +6,7 @@
id = REAGENT_ID_CLARIDYL
description = "Claridyl is an advanced medicine that cures all of your problems. Notice: Clarydil does not claim to fix marriages, car loans, student debt or insomnia and may cause severe pain."
taste_description = "sugar"
scannable = SCANNABLE_BENEFICIAL
reagent_state = LIQUID
color = "#AAAAFF"
overdose = REAGENTS_OVERDOSE * 100
@@ -62,6 +63,7 @@
id = REAGENT_ID_EDEN
description = "The ultimate anti toxin unrivaled, it corrects impurities within the body but punishes those who attain them with a burning sensation"
taste_description = "peace"
scannable = SCANNABLE_BENEFICIAL
color = "#00FFBE"
overdose = REAGENTS_OVERDOSE * 1
metabolism = 0
@@ -92,6 +94,7 @@
/datum/reagent/tercozolam
name = REAGENT_TERCOZOLAM
id = REAGENT_ID_TERCOZOLAM
scannable = SCANNABLE_BENEFICIAL
color = "#afeb17"
metabolism = 0.05
description = "A well respected drug used for treatment of schizophrenia in specific."
@@ -105,6 +108,7 @@
/datum/reagent/hannoa
name = REAGENT_HANNOA
id = REAGENT_ID_HANNOA
scannable = SCANNABLE_BENEFICIAL
description = "A powerful clotting agent that treats brute damage very quickly but takes a long time to be metabolised. Overdoses easily, reacts badly with other chemicals."
taste_description = "paint"
reagent_state = LIQUID
@@ -150,6 +154,7 @@
/datum/reagent/bullvalene //This is for the third sap. It converts Brute Oxy and burn into slightly less toxins.
name = REAGENT_BULLVALENE
id = REAGENT_ID_BULLVALENE
scannable = SCANNABLE_BENEFICIAL
description = "A catalytic chemical that can treat a wide variety of ailments at the cost of toxifying the host's body."
taste_description = "sulfur"
reagent_state = LIQUID
@@ -174,6 +179,7 @@
/datum/reagent/serazine
name = REAGENT_SERAZINE
id = REAGENT_ID_SERAZINE
scannable = SCANNABLE_BENEFICIAL
description = "A sweet tasting flower extract, it has very mild anti toxic properties, help with hallucinations and drowsyness, and can be used to make potent drugs."
taste_description = "sweet nectar"
reagent_state = LIQUID
@@ -192,6 +198,7 @@
/datum/reagent/alizene
name = REAGENT_ALIZENE
id = REAGENT_ID_ALIZENE
scannable = SCANNABLE_BENEFICIAL
description = "A derivative from bicaridine enhanced by serazine to more effectively mend flesh, but is ineffective against internal hemorrhage."
taste_description = "bittersweet"
taste_mult = 3
@@ -5,7 +5,7 @@
taste_description = "milk"
reagent_state = LIQUID
color = "#d5e2e5"
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -28,7 +28,7 @@
metabolism = 0.1 //Lasts up to 200 seconds if you give 20u which is OD.
mrate_static = TRUE
overdose = 20 //High OD. This is to make numbing bites have somewhat of a downside if you get bit too much. Have to go to medical for dialysis.
scannable = 0 //Let's not have medical mechs able to make an extremely strong organic painkiller
scannable = SCANNABLE_ADVANCED //Let's not have medical mechs able to make an extremely strong organic painkiller
wiki_flag = WIKI_SPOILER
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -73,7 +73,7 @@
reagent_state = LIQUID
color = "#750404"
overdose = REAGENTS_OVERDOSE * 0.5
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -94,7 +94,7 @@
reagent_state = LIQUID
color = "#b4dcdc"
overdose = 5
scannable = 0
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -115,7 +115,7 @@
color = "#003153" //Blue!
metabolism = REM * 0.25//20 ticks to do things per unit injected. This means injecting 30u will give you 10 minutes to do what you need.
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = SCANNABLE_BENEFICIAL
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_DRUG
@@ -131,6 +131,7 @@
description = "A chemical compound that causes a dangerously powerful fat-burning reaction."
taste_description = "blandness"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#47AD6D"
overdose = REAGENTS_OVERDOSE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
@@ -148,6 +149,7 @@
taste_description = "blubber"
reagent_state = LIQUID
color = "#61731C"
scannable = SCANNABLE_BENEFICIAL
overdose = REAGENTS_OVERDOSE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_DIET
@@ -163,6 +165,7 @@
description = "A chemical that instantly transforms the consumer into another creature."
taste_description = "luck"
reagent_state = LIQUID
scannable = SCANNABLE_SECRETIVE
color = "#a754de"
scannable = 1
var/tf_type = /mob/living/simple_mob/animal/passive/mouse
@@ -276,7 +279,7 @@
taste_description = "change"
reagent_state = LIQUID
color = "#ffffff"
scannable = 1
scannable = SCANNABLE_SECRETIVE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_COSMETIC
@@ -10,6 +10,7 @@
reagent_state = LIQUID
color = "#ff5555"
metabolism = REM
scannable = SCANNABLE_SECRETIVE
var/modifier_to_add = /datum/modifier/berserk
var/modifier_duration = 3 SECONDS // How long, per unit dose, will this last?
+30 -4
View File
@@ -8,6 +8,7 @@
reagent_state = LIQUID
color = "#888888"
overdose = 10
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_COSMETIC
@@ -59,6 +60,7 @@
reagent_state = LIQUID
color = "#888888"
overdose = 10
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_COSMETIC
@@ -116,6 +118,7 @@
color = "#808080"
overdose = REAGENTS_OVERDOSE * 0.5
color_weight = 20
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_COSMETIC
@@ -178,6 +181,7 @@
color = "#C8A5DC"
affects_dead = TRUE //This can even heal dead people.
metabolism = 0.1
scannable = SCANNABLE_UNSCANNABLE
mrate_static = TRUE //Just in case
glass_name = "liquid gold"
@@ -247,6 +251,7 @@
description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known."
taste_description = "metal"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#F7C430"
supply_conversion_value = 2 SHEET_TO_REAGENT_EQUIVILENT // has sheet value
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -257,6 +262,7 @@
description = "A soft, white, lustrous transition metal, it has the highest electrical conductivity of any element and the highest thermal conductivity of any metal."
taste_description = "metal"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#D0D0D0"
supply_conversion_value = 1 SHEET_TO_REAGENT_EQUIVILENT // has sheet value
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -267,6 +273,7 @@
description = "Platinum is a dense, malleable, ductile, highly unreactive, precious, gray-white transition metal. It is very resistant to corrosion."
taste_description = "metal"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#777777"
supply_conversion_value = 5 SHEET_TO_REAGENT_EQUIVILENT // has sheet value
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -277,6 +284,7 @@
description = "A silvery-white metallic chemical element in the actinide series, weakly radioactive."
taste_description = "metal"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#B8B8C0"
supply_conversion_value = 2 SHEET_TO_REAGENT_EQUIVILENT // has sheet value
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -345,6 +353,7 @@
reagent_state = SOLID
affects_dead = TRUE
affects_robots = TRUE
scannable = SCANNABLE_UNSCANNABLE
description = "The immense power of a supermatter crystal, in liquid form. You're not entirely sure how that's possible, but it's probably best handled with care."
taste_description = "taffy" // 0. The supermatter is tasty, tasty taffy.
wiki_flag = WIKI_SPOILER
@@ -368,6 +377,7 @@
description = "Adrenaline is a hormone used as a drug to treat cardiac arrest and other cardiac dysrhythmias resulting in diminished or absent cardiac output."
taste_description = "bitterness"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#C8A5DC"
mrate_static = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
@@ -387,6 +397,7 @@
taste_description = "water"
color = "#E0E8EF"
mrate_static = TRUE
scannable = SCANNABLE_BENEFICIAL
glass_name = "holy water"
glass_desc = "An ashen-obsidian-water mix, this solution will alter certain sections of the brain's rationality."
@@ -431,6 +442,7 @@
taste_description = "mordant"
taste_mult = 2
reagent_state = GAS
scannable = SCANNABLE_ADVANCED
color = "#404030"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_RAW
@@ -442,6 +454,7 @@
description = "A secondary amine, mildly corrosive."
taste_description = REAGENT_ID_IRON
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#604030"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -452,6 +465,7 @@
description = "Also known as sodium hydroxide. As a profession making this is somewhat underwhelming."
taste_description = "acid"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#FFFFD6" // very very light yellow"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -462,6 +476,7 @@
description = "A perfluoronated sulfonic acid that forms a foam when mixed with water."
taste_description = "metal"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#9E6B38"
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -472,6 +487,7 @@
description = "A agent that yields metallic foam when mixed with light metal and a strong acid."
taste_description = "metal"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#664B63"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -482,6 +498,7 @@
description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls."
taste_description = "sweet tasting metal"
reagent_state = SOLID
scannable = SCANNABLE_ADVANCED
color = "#673910"
touch_met = 50
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
@@ -511,6 +528,7 @@
description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
taste_description = "sourness"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#A5F0EE"
touch_met = 50
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
@@ -603,6 +621,7 @@
description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity."
taste_description = "slime"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#009CA8"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_LUBE
@@ -620,6 +639,7 @@
description = "A compound that can be used to reinforce glass."
taste_description = "plastic"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#C7FFFF"
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -638,6 +658,7 @@
description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
taste_description = "sweetness"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -649,6 +670,7 @@
description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
taste_description = "oil"
reagent_state = LIQUID
scannable = SCANNABLE_UNSCANNABLE
color = "#808080"
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
@@ -660,6 +682,7 @@
taste_description = "sourness"
taste_mult = 1.1
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#C8A5DC"
affects_robots = TRUE
@@ -686,6 +709,7 @@
/datum/reagent/ultraglue
name = REAGENT_GLUE
id = REAGENT_ID_GLUE
scannable = SCANNABLE_ADVANCED
description = "An extremely powerful bonding agent."
taste_description = "a special education class"
color = "#FFFFCC"
@@ -695,6 +719,7 @@
/datum/reagent/woodpulp
name = REAGENT_WOODPULP
id = REAGENT_ID_WOODPULP
scannable = SCANNABLE_ADVANCED
description = "A mass of wood fibers."
taste_description = "wood"
reagent_state = LIQUID
@@ -705,6 +730,7 @@
/datum/reagent/luminol
name = REAGENT_LUMINOL
id = REAGENT_ID_LUMINOL
scannable = SCANNABLE_ADVANCED
description = "A compound that interacts with blood on the molecular level."
taste_description = "metal"
reagent_state = LIQUID
@@ -734,6 +760,7 @@
/datum/reagent/mineralfluid
name = REAGENT_MINERALIZEDFLUID
id = REAGENT_ID_MINERALIZEDFLUID
scannable = SCANNABLE_ADVANCED
description = "A warm, mineral-rich fluid."
taste_description = "salt"
reagent_state = LIQUID
@@ -746,6 +773,7 @@
/datum/reagent/defective_nanites
name = REAGENT_DEFECTIVENANITES
id = REAGENT_ID_DEFECTIVENANITES
scannable = SCANNABLE_DIFFICULT
description = "Miniature medical robots that are malfunctioning and cause bodily harm. Fortunately, they cannot self-replicate."
taste_description = "metal"
reagent_state = SOLID
@@ -787,6 +815,7 @@
/datum/reagent/carpet
name = REAGENT_LIQUIDCARPET
id = REAGENT_ID_LIQUIDCARPET
scannable = SCANNABLE_ADVANCED
description = "Liquified carpet fibers, ready for dyeing."
reagent_state = LIQUID
color = "#b51d05"
@@ -794,10 +823,6 @@
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
/datum/reagent/carpet
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
/datum/reagent/carpet/black
name = REAGENT_LIQUIDCARPETB
id = REAGENT_ID_LIQUIDCARPETB
@@ -857,6 +882,7 @@
/datum/reagent/essential_oil
name = REAGENT_ESSENTIALOIL
id = REAGENT_ID_ESSENTIALOIL
scannable = SCANNABLE_ADVANCED
description = "A slurry of compounds that contains the basic requirements for life."
taste_description = "a mixture of thick, sweet, salty, salty and spicy flavours that all blend together to not be very nice at all"
reagent_state = LIQUID
+5 -2
View File
@@ -4,6 +4,7 @@
description = "A corruptive toxin produced by slimes. Turns the subject of the chemical into a Promethean."
reagent_state = LIQUID
color = "#13BC5E"
scannable = SCANNABLE_ADVANCED
supply_conversion_value = REFINERYEXPORT_VALUE_MASSINDUSTRY
industrial_use = REFINERYEXPORT_REASON_MATSCI
@@ -39,7 +40,7 @@
taste_description = "metallic"
reagent_state = LIQUID
color = "#333333"
scannable = 1
scannable = SCANNABLE_BENEFICIAL
affects_robots = TRUE
wiki_flag = WIKI_SPOILER
@@ -61,6 +62,7 @@
description = "A historical fire suppressant. Originally believed to simply displace oxygen to starve fires, it actually interferes with the combustion reaction itself. Vastly superior to the cheap water-based extinguishers found on most NT vessels."
reagent_state = LIQUID
color = "#A6FAFF"
scannable = SCANNABLE_ADVANCED
taste_description = "the inside of a fire extinguisher"
supply_conversion_value = REFINERYEXPORT_VALUE_UNWANTED
industrial_use = REFINERYEXPORT_REASON_INDUSTRY
@@ -111,7 +113,7 @@
taste_description = "wiggly peanutbutter"
reagent_state = LIQUID
color = "#1d1d1d"
scannable = 0
scannable = SCANNABLE_BENEFICIAL
metabolism = REM * 0.5
affects_robots = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_UNWANTED
@@ -142,6 +144,7 @@
reagent_state = LIQUID
color = "#E4EC2F"
metabolism = 2.50
scannable = SCANNABLE_ADVANCED
var/power = 9
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_PRECURSOR
+28 -6
View File
@@ -10,6 +10,7 @@
color = "#CF3600"
metabolism = REM * 0.25 // 0.05 by default. Hopefully enough to get some help, or die horribly, whatever floats your boat
filtered_organs = list(O_LIVER, O_KIDNEYS)
scannable = SCANNABLE_DIFFICULT
var/strength = 4 // How much damage it deals per unit
var/skin_danger = 0.2 // The multiplier for how effective the toxin is when making skin contact.
supply_conversion_value = REFINERYEXPORT_VALUE_PROCESSED
@@ -54,8 +55,9 @@
/datum/reagent/toxin/amatoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
// Trojan horse. Waits until most of the toxin has gone through the body before dealing the bulk of it in one big strike.
if(volume < max_dose * 0.2)
M.adjustToxLoss(max_dose * strength * removed / (max_dose * 0.2))
if(volume < max_dose * 0.1)
M.adjustToxLoss(max_dose * strength) //Get hit all at once.
M.reagents.del_reagent(REAGENT_ID_AMATOXIN) //Remove the rest of ourselves.
/datum/reagent/toxin/carpotoxin
name = REAGENT_CARPOTOXIN
@@ -364,7 +366,7 @@
metabolism = REM
strength = 3
mrate_static = TRUE
scannable = FALSE
scannable = SCANNABLE_SECRETIVE
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
industrial_use = REFINERYEXPORT_REASON_MEDSCI
@@ -374,11 +376,12 @@
return
if(!(M.status_flags & FAKEDEATH))
M.emote("deathgasp")
M.tod = stationtime2text()
M.timeofdeath = world.time
M.status_flags |= FAKEDEATH
M.adjustOxyLoss(1 * removed)
M.silent = max(M.silent, 10)
M.paralysis = max(M.paralysis, 10)
M.tod = stationtime2text()
/datum/reagent/toxin/zombiepowder/Destroy()
if(holder && holder.my_atom && ismob(holder.my_atom))
@@ -394,7 +397,7 @@
color = "#666666"
metabolism = REM * 0.75
mrate_static = TRUE
scannable = FALSE
scannable = SCANNABLE_SECRETIVE
supply_conversion_value = REFINERYEXPORT_VALUE_MASSINDUSTRY
industrial_use = REFINERYEXPORT_REASON_MEDSCI
@@ -403,10 +406,11 @@
return
if(!(M.status_flags & FAKEDEATH))
M.emote("deathgasp")
M.tod = stationtime2text()
M.timeofdeath = world.time
M.status_flags |= FAKEDEATH
M.silent = max(M.silent, 10)
M.paralysis = max(M.paralysis, 10)
M.tod = stationtime2text()
if(prob(0.1))
M.visible_message("[M] wheezes.", "You wheeze sharply... it's cold.")
@@ -534,6 +538,7 @@
description = "Polytrinic acid is a an extremely corrosive chemical substance."
taste_description = "acid"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#8E18A9"
power = 10
meltdose = 4
@@ -546,6 +551,7 @@
description = "Some form of digestive slurry."
taste_description = "vomit"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#664330"
power = 2
meltdose = 30
@@ -619,6 +625,7 @@
/datum/reagent/lexorin
name = REAGENT_LEXORIN
id = REAGENT_ID_LEXORIN
scannable = SCANNABLE_DIFFICULT
description = "Lexorin temporarily stops respiration. Causes tissue damage."
taste_description = "acid"
reagent_state = LIQUID
@@ -644,6 +651,7 @@
/datum/reagent/mutagen
name = REAGENT_MUTAGEN
id = REAGENT_ID_MUTAGEN
scannable = SCANNABLE_ADVANCED
description = "Might cause unpredictable mutations. Keep away from children."
taste_description = "slime"
taste_mult = 0.9
@@ -711,6 +719,7 @@
/datum/reagent/slimejelly
name = REAGENT_SLIMEJELLY
id = REAGENT_ID_SLIMEJELLY
scannable = SCANNABLE_ADVANCED
description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
taste_description = "slime"
taste_mult = 1.3
@@ -739,6 +748,7 @@
/datum/reagent/soporific
name = REAGENT_STOXIN
id = REAGENT_ID_STOXIN
scannable = SCANNABLE_ADVANCED
description = "An effective hypnotic used to treat insomnia."
taste_description = "bitterness"
reagent_state = LIQUID
@@ -789,6 +799,7 @@
/datum/reagent/chloralhydrate
name = REAGENT_CHLORALHYDRATE
id = REAGENT_ID_CHLORALHYDRATE
scannable = SCANNABLE_ADVANCED
description = "A powerful sedative."
taste_description = "bitterness"
reagent_state = SOLID
@@ -843,6 +854,7 @@
/datum/reagent/chloralhydrate/beer2 //disguised as normal beer for use by emagged brobots
name = REAGENT_BEER2
id = REAGENT_ID_BEER2
scannable = SCANNABLE_SECRETIVE
description = "An alcoholic beverage made from malted grains, hops, yeast, and water. The fermentation appears to be incomplete." //If the players manage to analyze this, they deserve to know something is wrong.
taste_description = "beer"
reagent_state = LIQUID
@@ -859,6 +871,7 @@
id = REAGENT_ID_SEROTROTIUM
description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans."
taste_description = "bitterness"
scannable = SCANNABLE_ADVANCED
reagent_state = LIQUID
color = "#202040"
metabolism = REM * 0.25
@@ -895,6 +908,7 @@
/datum/reagent/cryptobiolin
name = REAGENT_CRYPTOBIOLIN
id = REAGENT_ID_CRYPTOBIOLIN
scannable = SCANNABLE_ADVANCED
description = "Cryptobiolin causes confusion and dizzyness."
taste_description = "sourness"
reagent_state = LIQUID
@@ -920,6 +934,7 @@
/datum/reagent/impedrezene
name = REAGENT_IMPEDREZENE
id = REAGENT_ID_IMPEDREZENE
scannable = SCANNABLE_ADVANCED
description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions."
taste_description = "numbness"
reagent_state = LIQUID
@@ -943,6 +958,7 @@
/datum/reagent/mindbreaker
name = REAGENT_MINDBREAKER
id = REAGENT_ID_MINDBREAKER
scannable = SCANNABLE_DIFFICULT
description = "A powerful hallucinogen that causes immediate, prolonged hallucinations in its users."
taste_description = "sourness"
reagent_state = LIQUID
@@ -972,6 +988,7 @@
/datum/reagent/slimetoxin
name = REAGENT_MUTATIONTOXIN
id = REAGENT_ID_MUTATIONTOXIN
scannable = SCANNABLE_DIFFICULT
description = "A corruptive toxin produced by slimes."
taste_description = "sludge"
reagent_state = LIQUID
@@ -1001,6 +1018,7 @@
/datum/reagent/aslimetoxin
name = REAGENT_DOCILITYTOXIN
id = REAGENT_ID_DOCILITYTOXIN
scannable = SCANNABLE_DIFFICULT
description = "A corruptive toxin produced by slimes."
taste_description = "sludge"
reagent_state = LIQUID
@@ -1035,6 +1053,7 @@
/datum/reagent/shredding_nanites
name = REAGENT_SHREDDINGNANITES
id = REAGENT_ID_SHREDDINGNANITES
scannable = SCANNABLE_SECRETIVE
description = "Miniature medical robots that swiftly restore bodily damage. These ones seem to be malfunctioning."
taste_description = "metal"
reagent_state = SOLID
@@ -1052,6 +1071,7 @@
/datum/reagent/irradiated_nanites
name = REAGENT_IRRADIATEDNANITES
id = REAGENT_ID_IRRADIATEDNANITES
scannable = SCANNABLE_SECRETIVE
description = "Miniature medical robots that swiftly restore bodily damage. These ones seem to be malfunctioning."
taste_description = "metal"
reagent_state = SOLID
@@ -1069,6 +1089,7 @@
/datum/reagent/neurophage_nanites
name = REAGENT_NEUROPHAGENANITES
id = REAGENT_ID_NEUROPHAGENANITES
scannable = SCANNABLE_SECRETIVE
description = "Miniature medical robots that swiftly restore bodily damage. These ones seem to be completely hostile."
taste_description = "metal"
reagent_state = SOLID
@@ -1087,6 +1108,7 @@
/datum/reagent/salmonella
name = REAGENT_SALMONELLA
id = REAGENT_ID_SALMONELLA
scannable = SCANNABLE_ADVANCED
description = "A nasty bacteria found in spoiled food."
reagent_state = LIQUID
color = "#1E4600"
@@ -3,6 +3,7 @@
id = REAGENT_ID_VACCINE
description = "Liquid vaccine against some type of virus."
color = "#C81040"
scannable = SCANNABLE_BENEFICIAL
taste_description = "antibodies"
supply_conversion_value = REFINERYEXPORT_VALUE_COMMON
industrial_use = REFINERYEXPORT_REASON_MEDSCI
@@ -5,6 +5,7 @@
description = "A frothy green liquid, for causing cellular-level hetrogenous structure merging."
reagent_state = LIQUID
color = "#10881A"
scannable = SCANNABLE_BENEFICIAL
overdose = REAGENTS_OVERDOSE
supply_conversion_value = REFINERYEXPORT_VALUE_RARE
industrial_use = REFINERYEXPORT_REASON_ILLDRUG
+13
View File
@@ -10,6 +10,7 @@
reagent_state = LIQUID
color = "#FFFF00" // rgb: 255, 255, 0
metabolism = 0.01
scannable = SCANNABLE_BENEFICIAL
mrate_static = TRUE
supply_conversion_value = REFINERYEXPORT_VALUE_GODTIER
industrial_use = REFINERYEXPORT_REASON_MEDSCI
@@ -22,6 +23,7 @@
/datum/reagent/microcillin
name = REAGENT_MICROCILLIN
id = REAGENT_ID_MICROCILLIN
scannable = SCANNABLE_BENEFICIAL
description = "Murky purple liquid."
reagent_state = LIQUID
color = "#800080"
@@ -39,6 +41,7 @@
/datum/reagent/normalcillin
name = REAGENT_NORMALCILLIN
id = REAGENT_ID_NORMALCILLIN
scannable = SCANNABLE_BENEFICIAL
description = "Translucent cyan liquid."
reagent_state = LIQUID
color = "#00FFFF"
@@ -58,6 +61,7 @@
/datum/reagent/sizeoxadone
name = REAGENT_SIZEOXADONE
id = REAGENT_ID_SIZEOXADONE
scannable = SCANNABLE_BENEFICIAL
description = "A volatile liquid used as a precursor to size-altering chemicals. Causes dizziness if taken unprocessed."
reagent_state = LIQUID
color = "#1E90FF"
@@ -77,6 +81,7 @@
/datum/reagent/ickypak
name = REAGENT_ICKYPAK
id = REAGENT_ID_ICKYPAK
scannable = SCANNABLE_BENEFICIAL
description = "A foul-smelling green liquid, for inducing muscle contractions to expel accidentally ingested things."
reagent_state = LIQUID
color = "#0E900E"
@@ -101,6 +106,7 @@
/datum/reagent/unsorbitol
name = REAGENT_UNSORBITOL
id = REAGENT_ID_UNSORBITOL
scannable = SCANNABLE_BENEFICIAL
description = "A frothy pink liquid, for causing cellular-level hetrogenous structure separation."
reagent_state = LIQUID
color = "#EF77E5"
@@ -134,6 +140,7 @@
/datum/reagent/amorphorovir
name = REAGENT_AMORPHOROVIR
id = REAGENT_ID_AMORPHOROVIR
scannable = SCANNABLE_BENEFICIAL
description = "A base medical concoction, capable of rapidly altering genetic and physical structure of the body. Requires extra processing to allow for a targeted transformation."
reagent_state = LIQUID
color = "#AAAAAA"
@@ -143,6 +150,7 @@
/datum/reagent/androrovir
name = REAGENT_ANDROROVIR
id = REAGENT_ID_ANDROROVIR
scannable = SCANNABLE_BENEFICIAL
description = "A medical concoction, capable of rapidly altering genetic and physical structure of the body. This one seems to realign the target's gender to be male."
reagent_state = LIQUID
color = "#00BBFF"
@@ -166,6 +174,7 @@
/datum/reagent/gynorovir
name = REAGENT_GYNOROVIR
id = REAGENT_ID_GYNOROVIR
scannable = SCANNABLE_BENEFICIAL
description = "A medical concoction, capable of rapidly altering genetic and physical structure of the body. This one seems to realign the target's gender to be female."
reagent_state = LIQUID
color = "#FF00AA"
@@ -189,6 +198,7 @@
/datum/reagent/androgynorovir
name = REAGENT_ANDROGYNOROVIR
id = REAGENT_ID_ANDROGYNOROVIR
scannable = SCANNABLE_BENEFICIAL
description = "A medical concoction, capable of rapidly altering genetic and physical structure of the body. This one seems to realign the target's gender to be mixed."
reagent_state = LIQUID
color = "#6600FF"
@@ -240,6 +250,7 @@
/datum/reagent/paralysis_toxin
name = REAGENT_PARALYSISTOXIN
id = REAGENT_ID_PARALYSISTOXIN
scannable = SCANNABLE_ADVANCED
description = "A potent toxin commonly found in a plethora of species. When exposed to the toxin, causes extreme, paralysis for a prolonged period, with only essential functions of the body being unhindered. Commonly used by covert operatives and used as a crowd control tool."
taste_description = "bitterness"
reagent_state = LIQUID
@@ -258,6 +269,7 @@
/datum/reagent/pain_enzyme
name = REAGENT_PAINENZYME
id = REAGENT_ID_PAINENZYME
scannable = SCANNABLE_ADVANCED
description = "An enzyme found in a variety of species. When exposed to the toxin, will cause severe, agonizing pain. The effects can last for hours depending on the dose. Only known cure is an equally strong painkiller or dialysis."
taste_description = "sourness"
reagent_state = LIQUID
@@ -277,6 +289,7 @@
/datum/reagent/aphrodisiac
name = REAGENT_APHRODISIAC
id = REAGENT_ID_APHRODISIAC
scannable = SCANNABLE_ADVANCED
description = "You so horny."
taste_description = "sweetness"
reagent_state = LIQUID
+1 -1
View File
@@ -2,7 +2,7 @@
/obj/item/healthanalyzer/scroll //reports all of the above, as well as name and quantity of nonmed reagents in stomach
name = "scroll of divination"
desc = "An unusual scroll that appears to report all of the details of a person's health when waved near them. Oddly, it seems to have a little metal chip up near the handles..."
advscan = 3
advscan = SCANNABLE_SECRETIVE
origin_tech = list(TECH_MAGNET = 7, TECH_BIO = 8)
icon_state = "health_scroll"
@@ -5,6 +5,7 @@
id = REAGENT_ID_AMORPHOROVIR
metabolism = 100 //set high enough that it does not process multiple times(delay implemented below)
description = "the bloods DNA in this seems aggressive"
scannable = SCANNABLE_BENEFICIAL
taste_description = "this shouldn't be here" //unobtainable ingame
color = "#7F0000"
var/gender_change = null //set the gender variable here so we can set it to others in varients
@@ -72,6 +73,7 @@
id = REAGENT_ID_CLEANSINGAGENT
description = "An agent that purges one's body of toxins."
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#225722"
scannable = 1
overdose = REAGENTS_OVERDOSE
@@ -94,6 +96,7 @@
id = REAGENT_ID_PURIFYINGAGENT
description = "An agent that purges one's body of rads and toxins."
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#225722"
scannable = 1
overdose = REAGENTS_OVERDOSE
@@ -116,6 +119,7 @@
id = REAGENT_ID_BURNCARD
description = "A more powerful variation of bicard that also burns the subject."
taste_description = "bitterness"
scannable = SCANNABLE_BENEFICIAL
taste_mult = 3
reagent_state = LIQUID
color = "#BF0000"
@@ -155,6 +159,7 @@
id = REAGENT_ID_FLAMECURE
description = "Used to rapidly clot internal hemorrhages by burning the wounded areas"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#4246C7"
overdose = REAGENTS_OVERDOSE * 0.5
scannable = 1
@@ -189,6 +194,7 @@
description = "An advancement of kelotane that scars and breaks apart the user's flesh to remove the burnt tissue."
taste_description = "bitterness"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#FF6600"
overdose = REAGENTS_OVERDOSE * 0.2
scannable = 1
@@ -210,6 +216,7 @@
description = "A strange chemical that will stablize bloodflow by burning the subject"
taste_description = "bitterness"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#00BFFF"
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -225,6 +232,7 @@
/datum/reagent/livingagent
name = REAGENT_LIVINGAGENT
id = REAGENT_ID_LIVINGAGENT
scannable = SCANNABLE_BENEFICIAL
description = "Fill the body with life, while making it more senstive to stimulus."
taste_description = "bitterness"
reagent_state = LIQUID
@@ -238,7 +246,6 @@
..()
M.druggy = max(M.druggy, 5)
M.Confuse(5)
//YW ADDITIONS END
/datum/reagent/livingagent/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien != IS_DIONA)
@@ -254,6 +261,7 @@
name = REAGENT_PERFORMANCEPEAKER
id = REAGENT_ID_PERFORMANCEPEAKER
description = "A chemical created to bring a body to peak condition except it's highly toxic"
scannable = SCANNABLE_ADVANCED
taste_description = "bitterness"
reagent_state = LIQUID
color = "#006666"
@@ -278,6 +286,7 @@
description = "An experimental drug that solely works upon dead bodies"
taste_description = "ash"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#666699"
scannable = 1
overdose = REAGENTS_OVERDOSE * 2
@@ -299,6 +308,7 @@
id = REAGENT_ID_QUADCORD
description = "An experimental drug that is meant to further enhance tricord"
taste_description = "bitterness"
scannable = SCANNABLE_BENEFICIAL
reagent_state = LIQUID
color = "#FF3399"
scannable = 1
@@ -324,6 +334,7 @@
description = "An experimental that removes many ailments, such as poison and stiffening of muscles via frost"
taste_description = "bitterness"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#660066"
scannable = 1
overdose = REAGENTS_OVERDOSE * 0.5
@@ -352,6 +363,7 @@
description = "An experimental drug that mimics rapid regeneration seen in squishy creatures."
taste_description = "sweet"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#00CCFF"
scannable = 1
overdose = REAGENTS_OVERDOSE * 0.5
@@ -393,6 +405,7 @@
description = "An experimental chem that will bring those back from the brink, with severe side effects"
taste_description = "ash"
reagent_state = LIQUID
scannable = SCANNABLE_BENEFICIAL
color = "#fcac00"
scannable = 1
overdose = REAGENTS_OVERDOSE
@@ -410,6 +423,7 @@
description = "A desiccant. Can be used to dry things."
taste_description = "dryness"
reagent_state = LIQUID
scannable = SCANNABLE_ADVANCED
color = "#A70FFF"
scannable = 1
overdose = REAGENTS_OVERDOSE