Chem Adjustments, Fixes, and Additions (#8554)

This commit is contained in:
Doxxmedearly
2020-04-01 23:34:28 +02:00
committed by GitHub
parent bc4c8b2dbc
commit 131baa9674
19 changed files with 99 additions and 149 deletions
@@ -17,74 +17,11 @@
/datum/reagent/norepinephrine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.add_chemical_effect(CE_STABLE)
M.add_chemical_effect(CE_PAINKILLER, 25)
if (!modifier)
modifier = M.add_modifier(/datum/modifier/adrenaline, MODIFIER_REAGENT, src, _strength = 0.6, override = MODIFIER_OVERRIDE_STRENGTHEN)
/datum/reagent/norepinephrine/Destroy()
QDEL_NULL(modifier)
return ..()
/datum/reagent/inaprovaline
name = "Inaprovaline"
id = "inaprovaline"
description = "Inaprovaline is a super strength stimulant and painkiller intended to keep a patient alive while in critical condition. Overdose causes heart damage and an energy boost equivelent to hyperzine."
reagent_state = LIQUID
color = "#FFFFFF"
overdose = 20
metabolism = 2
metabolism_min = 0.25
breathe_mul = 0.25
ingest_mul = 0.25
scannable = 1
taste_description = "salty sugar"
var/datum/modifier/modifier1
var/datum/modifier/modifier2
/datum/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
var/reagent_strength = round(max(0,1 - (M.health/100)),0.1)
if(reagent_strength == 0)
return
var/list/damage_stats = list(BRUTE = M.getBruteLoss(), BURN = M.getFireLoss(), TOX = M.getToxLoss(), OXY = M.getOxyLoss())
var/best_stat = "None"
var/best_value = 0
for(var/key in damage_stats)
var/value = damage_stats[key]
if(value > best_value)
best_stat = key
best_value = value
switch(best_stat)
if(BRUTE)
M.adjustBruteLoss(-removed*5*reagent_strength)
if(BURN)
M.adjustFireLoss(-removed*5*reagent_strength)
if(TOX)
M.adjustToxLoss(-removed*5*reagent_strength)
if(OXY)
M.adjustOxyLoss(-removed*5*reagent_strength)
M.make_jittery(removed*10)
M.add_chemical_effect(CE_STABLE)
M.add_chemical_effect(CE_PAINKILLER, 25)
/datum/reagent/inaprovaline/overdose(var/mob/living/carbon/human/H, var/alien, removed )
if(istype(H))
H.add_chemical_effect(CE_CARDIOTOXIC, 0.1*removed)
H.make_jittery(removed*10)
H.add_chemical_effect(CE_SPEEDBOOST, 1)
if (!modifier2)
modifier2 = H.add_modifier(/datum/modifier/stimulant, MODIFIER_REAGENT, src, _strength = 1, override = MODIFIER_OVERRIDE_STRENGTHEN)
/datum/reagent/inaprovaline/Destroy()
QDEL_NULL(modifier1)
QDEL_NULL(modifier2)
return ..()
/datum/reagent/bicaridine
name = "Bicaridine"
id = "bicaridine"
@@ -114,23 +51,28 @@
reagent_state = LIQUID
color = "#FFA800"
overdose = REAGENTS_OVERDOSE
scannable = 1
scannable = TRUE
metabolism = REM * 0.5
taste_description = "bitterness"
var/strength = 6
/datum/reagent/kelotane/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.heal_organ_damage(0, 6 * removed)
if(!(locate(/datum/reagent/dermaline) in M.reagents.reagent_list))
M.heal_organ_damage(0, 6 * removed)
/datum/reagent/kelotane/dermaline
/datum/reagent/dermaline
name = "Dermaline"
id = "dermaline"
description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
reagent_state = LIQUID
color = "#FF8000"
fallback_specific_heat = 1
scannable = TRUE
metabolism = REM * 0.5
overdose = REAGENTS_OVERDOSE * 0.5
taste_mult = 1.5
strength = 12
/datum/reagent/dermaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.heal_organ_damage(0, 12 * removed)
/datum/reagent/dylovene
name = "Dylovene"
@@ -153,7 +95,7 @@
if(remove_generic)
M.drowsyness = max(0, M.drowsyness - 6 * removed)
M.hallucination -= (9 * removed)
M.hallucination -= (2 * removed)
M.add_up_to_chemical_effect(CE_ANTITOXIN, 1)
var/removing = (4 * removed)
@@ -602,7 +544,7 @@
fallback_specific_heat = 0.605 // assuming it's ethanol-based
/datum/reagent/deltamivir/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.add_chemical_effect(CE_FEVER, dose/4)
M.add_chemical_effect(CE_FEVER, dose/12)
/datum/reagent/thetamycin
name = "Thetamycin"
@@ -1360,6 +1302,25 @@
H.add_chemical_effect(CE_PNEUMOTOXIC, 0.2*removed)
. = ..()
/datum/reagent/pneumalin
name = "Pneumalin"
id = "pneumalin"
description = "A chemical that, when inhaled, restores tearing and bruising of the lungs. Overdosing can lower a patient's pulse to dangerous levels."
color = "#8154b4"
overdose = 15
scannable = 1
taste_description = "fine dust"
reagent_state = SOLID
/datum/reagent/pneumalin/affect_breathe(var/mob/living/carbon/human/H, var/alien, var/removed)
H.adjustOxyLoss(removed) //Every unit heals 1 oxy damage
H.add_chemical_effect(CE_PNEUMOTOXIC, -removed * 1.5)
H.add_chemical_effect(CE_PULSE, -1)
. = ..()
/datum/reagent/pneumalin/overdose(var/mob/living/carbon/human/H, var/alien, var/removed)
H.add_chemical_effect(CE_PULSE, -dose * 0.33)
/datum/reagent/rezadone
name = "Rezadone"
id = "rezadone"
@@ -1435,19 +1396,15 @@
/datum/reagent/adipemcina //Based on quinapril
name = "Adipemcina"
id = "adipemcina"
description = "Adipemcina is a heart medication used for treating high blood pressure, heart failure, and diabetes. Works at it's best when the stomach is empty. Causes vomiting and liver damage when overdosed."
description = "Adipemcina is a heart medication used for treating high blood pressure, heart failure, and diabetes. Causes vomiting and liver damage when overdosed."
reagent_state = LIQUID
color = "#008000"
metabolism = REM * 0.5
overdose = REAGENTS_OVERDOSE
scannable = 1
taste_description = "bitterness"
/datum/reagent/adipemcina/affect_blood(var/mob/living/carbon/human/M, var/alien, var/removed)
if(istype(M))
if(M.max_nutrition > 0)
var/nutritionmod = max(0.25, (1 - M.nutrition) / M.max_nutrition * 0.5) //Less effective when your stomach is "full".
M.add_chemical_effect(CE_CARDIOTOXIC, -removed * nutritionmod)
M.add_chemical_effect(CE_CARDIOTOXIC, -removed*2)
..()
/datum/reagent/adipemcina/overdose(var/mob/living/carbon/human/M, var/alien)
+7 -7
View File
@@ -616,6 +616,13 @@
required_reagents = list("calomel" = 1, "lexorin" = 1)
result_amount = 2
/datum/chemical_reaction/pneumalin
name = "Pneumalin"
id = "pneumalin"
result = "pneumalin"
required_reagents = list("coughsyrup" = 1, "copper" = 1, "pulmodeiectionem" = 1)
result_amount = 2
/datum/chemical_reaction/saline
name = "Saline"
id = "saline"
@@ -637,13 +644,6 @@
required_reagents = list("tricordrazine" = 1, "phoron" = 0.1, "hydrazine" = 1 )
result_amount = 2
/datum/chemical_reaction/inaprovaline
name = "Inaprovaline"
id = "inaprovaline"
result = "inaprovaline"
required_reagents = list("atropine" = 1, "phoron" = 0.1, "adrenaline" = 1 )
result_amount = 2
/datum/chemical_reaction/coughsyrup
name = "Cough Syrup"
id = "coughsyrup"
@@ -78,7 +78,6 @@
hot_coco spawn_reagent = "hot_coco"
// ERT
inaprov spawn_reagent = "inaprovaline"
norepi spawn_reagent = "norepinephrine"
ryetalyn spawn_reagent = "ryetalyn"
paracetamol spawn_reagent = "paracetamol"
@@ -111,3 +110,4 @@
chloral spawn_reagent = "chloralhydrate"
cryoxadone spawn_reagent = "cryoxadone"
clonexadone spawn_reagent = "clonexadone"
pneumalin spawn_reagent = "pneumalin"
@@ -26,7 +26,7 @@
/obj/machinery/chemical_dispenser/ert
name = "medicine dispenser"
spawn_cartridges = list(
/obj/item/reagent_containers/chem_disp_cartridge/inaprov,
/obj/item/reagent_containers/chem_disp_cartridge/norepi,
/obj/item/reagent_containers/chem_disp_cartridge/ryetalyn,
/obj/item/reagent_containers/chem_disp_cartridge/paracetamol,
/obj/item/reagent_containers/chem_disp_cartridge/tramadol,
@@ -66,14 +66,7 @@
desc = "A small bottle. Contains norepinephrine - used to stabilize patients."
icon_state = "bottle-4"
reagents_to_add = list("norepinephrine" = 60)
/obj/item/reagent_containers/glass/bottle/inaprovaline
name = "inaprovaline bottle"
desc = "A small bottle. Contains inaprovaline - used to stabilize patients."
icon_state = "bottle-4"
reagents_to_add = list("inaprovaline" = 60)
/obj/item/reagent_containers/glass/bottle/toxin
name = "toxin bottle"
desc = "A small bottle of toxins. Do not drink, it is poisonous."
@@ -414,16 +414,6 @@
mode = SYRINGE_INJECT
update_icon()
/obj/item/reagent_containers/syringe/inaprovaline
name = "Syringe (inaprovaline)"
desc = "Contains inaprovaline - used to stabilize patients."
/obj/item/reagent_containers/syringe/norepinephrine/Initialize()
. = ..()
reagents.add_reagent("inaprovaline", 15)
mode = SYRINGE_INJECT
update_icon()
/obj/item/reagent_containers/syringe/dylovene
name = "Syringe (dylovene)"
desc = "Contains anti-toxins."