mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 20:17:15 +01:00
Overdose changes + General chem mods
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
var/dose = 0
|
||||
var/max_dose = 0
|
||||
var/overdose = 0 //Amount at which overdose starts
|
||||
var/overdose_mod = 2 //Modifier to overdose damage
|
||||
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/affects_dead = 0
|
||||
@@ -146,7 +146,10 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
overdose_mod *= H.species.chemOD_mod
|
||||
M.adjustToxLoss(removed * overdose_mod)
|
||||
// 6 damage per unit at minimum, scales with excessive reagents. Rounding should help keep damage consistent between ingest / inject, but isn't perfect.
|
||||
// Hardcapped at 3.6 damage per tick, or 18 damage per unit at 0.2 metabolic rate so that you can't instakill people with overdoses by feeding them infinite periadaxon.
|
||||
// Overall, max damage is slightly less effective than hydrophoron, and 1/5 as effective as cyanide.
|
||||
M.adjustToxLoss(min(removed * overdose_mod * round(3 + 3 * volume / overdose), 3.6))
|
||||
|
||||
/datum/reagent/proc/initialize_data(var/newdata) // Called when the reagent is created.
|
||||
if(!isnull(newdata))
|
||||
|
||||
@@ -180,7 +180,21 @@
|
||||
L.ExtinguishMob()
|
||||
L.water_act(amount / 25) // Div by 25, as water_act multiplies it by 5 in order to calculate firestack modification.
|
||||
remove_self(needed)
|
||||
<<<<<<< HEAD
|
||||
/* //VOREStation Edit Start. Stops slimes from dying from water. Fixes fuel affect_ingest, too.
|
||||
=======
|
||||
|
||||
// Put out cigarettes if splashed.
|
||||
if(istype(L, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.wear_mask)
|
||||
if(istype(H.wear_mask, /obj/item/clothing/mask/smokable))
|
||||
var/obj/item/clothing/mask/smokable/S = H.wear_mask
|
||||
if(S.lit)
|
||||
S.quench()
|
||||
H.visible_message("<span class='notice'>[H]\'s [S.name] is put out.</span>")
|
||||
|
||||
>>>>>>> c820021... Merge pull request #7361 from ExabyteDiscord/Upstream-Dog-ChemistryThing
|
||||
/datum/reagent/water/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_SLIME)
|
||||
M.adjustToxLoss(6 * removed)
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
step(M, pick(cardinal))
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch", "drool", "moan"))
|
||||
M.adjustBrainLoss(0.1)
|
||||
M.adjustBrainLoss(0.5 * removed)
|
||||
|
||||
/datum/reagent/nitrogen
|
||||
name = "Nitrogen"
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#BF0000"
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 0.25
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/bicaridine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -214,6 +215,8 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#225722"
|
||||
scannable = 1
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 0 // Not used, but it shouldn't deal toxin damage anyways. Carth heals toxins!
|
||||
|
||||
/datum/reagent/carthatoline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
@@ -234,6 +237,11 @@
|
||||
if(alien == IS_SLIME)
|
||||
H.druggy = max(M.druggy, 5)
|
||||
|
||||
/datum/reagent/carthatoline/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.adjustHalLoss(2)
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.internal_organs_by_name[O_STOMACH].take_damage(removed * 2) // Causes stomach contractions, makes sense for an overdose to make it much worse.
|
||||
|
||||
/datum/reagent/dexalin
|
||||
name = "Dexalin"
|
||||
id = "dexalin"
|
||||
@@ -267,6 +275,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#0040FF"
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 1.25
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/dexalinp/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -434,7 +443,8 @@
|
||||
taste_description = "bitterness"
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC"
|
||||
overdose = 60
|
||||
overdose = REAGENTS_OVERDOSE * 2
|
||||
overdose_mod = 0.75
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
@@ -458,7 +468,8 @@
|
||||
taste_description = "sourness"
|
||||
reagent_state = LIQUID
|
||||
color = "#CB68FC"
|
||||
overdose = 30
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 0.75
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
@@ -482,6 +493,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#800080"
|
||||
overdose = 20
|
||||
overdose_mod = 0.75
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
@@ -529,7 +541,7 @@
|
||||
M.AdjustWeakened(-1)
|
||||
holder.remove_reagent("mindbreaker", 5)
|
||||
M.hallucination = max(0, M.hallucination - 10)
|
||||
M.adjustToxLoss(5 * removed * chem_effective) // It used to be incredibly deadly due to an oversight. Not anymore!
|
||||
M.adjustToxLoss(10 * removed * chem_effective) // It used to be incredibly deadly due to an oversight. Not anymore!
|
||||
M.add_chemical_effect(CE_PAINKILLER, 20 * chem_effective * M.species.chem_strength_pain)
|
||||
|
||||
/datum/reagent/hyperzine
|
||||
@@ -540,6 +552,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#FF3300"
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 0.25
|
||||
|
||||
/datum/reagent/hyperzine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_TAJARA)
|
||||
@@ -553,6 +566,13 @@
|
||||
M.emote(pick("twitch", "blink_r", "shiver"))
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1)
|
||||
|
||||
/datum/reagent/hyperzine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(prob(5)) // 1 in 20
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.internal_organs_by_name[O_HEART].take_damage(1)
|
||||
to_chat(M, "<span class='warning'>Huh... Is this what a heart attack feels like?</span>")
|
||||
|
||||
/datum/reagent/alkysine
|
||||
name = "Alkysine"
|
||||
id = "alkysine"
|
||||
@@ -609,6 +629,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#561EC3"
|
||||
overdose = 10
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/peridaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -628,6 +649,11 @@
|
||||
if(prob(33))
|
||||
H.Confuse(10)
|
||||
|
||||
/datum/reagent/peridaxon/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.adjustHalLoss(5)
|
||||
M.hallucination = max(M.hallucination, 10)
|
||||
|
||||
/datum/reagent/osteodaxon
|
||||
name = "Osteodaxon"
|
||||
id = "osteodaxon"
|
||||
@@ -636,6 +662,7 @@
|
||||
color = "#C9BCE3"
|
||||
metabolism = REM * 0.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/osteodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -658,6 +685,7 @@
|
||||
color = "#4246C7"
|
||||
metabolism = REM * 0.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
var/repair_strength = 3
|
||||
|
||||
@@ -679,6 +707,23 @@
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
|
||||
/datum/reagent/myelamine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
// Copypaste of affect_blood with slight adjustment. Heals slightly faster at the cost of high toxins
|
||||
..()
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/wound_heal = removed * repair_strength / 2
|
||||
for(var/obj/item/organ/external/O in H.bad_external_organs)
|
||||
for(var/datum/wound/W in O.wounds)
|
||||
if(W.bleeding())
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
if(W.internal)
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
|
||||
/datum/reagent/respirodaxon
|
||||
name = "Respirodaxon"
|
||||
id = "respirodaxon"
|
||||
@@ -688,6 +733,7 @@
|
||||
color = "#4444FF"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/respirodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -719,6 +765,7 @@
|
||||
color = "#8B4513"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/gastirodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -750,6 +797,7 @@
|
||||
color = "#D2691E"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/hepanephrodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -783,6 +831,7 @@
|
||||
color = "#FF4444"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/cordradaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -810,6 +859,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#7B4D4F"
|
||||
overdose = 20
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/immunosuprizine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -867,6 +917,7 @@
|
||||
color = "#84B2B0"
|
||||
metabolism = REM * 0.75
|
||||
overdose = 20
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/skrellimmuno/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -1008,6 +1059,7 @@
|
||||
color = "#008000"
|
||||
metabolism = REM * 0.25
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 1.25
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/arithrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -1056,6 +1108,7 @@
|
||||
color = "#FFB0B0"
|
||||
mrate_static = TRUE
|
||||
overdose = 10
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
data = 0
|
||||
|
||||
@@ -1237,6 +1290,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#669900"
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 2
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/rezadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
|
||||
@@ -423,6 +423,16 @@
|
||||
if(prob(5))
|
||||
M.vomit()
|
||||
|
||||
/datum/reagent/space_cleaner/touch_mob(var/mob/living/L, var/amount)
|
||||
if(istype(L, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.wear_mask)
|
||||
if(istype(H.wear_mask, /obj/item/clothing/mask/smokable))
|
||||
var/obj/item/clothing/mask/smokable/S = H.wear_mask
|
||||
if(S.lit)
|
||||
S.quench() // No smoking in my medbay!
|
||||
H.visible_message("<span class='notice'>[H]\'s [S.name] is put out.</span>")
|
||||
|
||||
/datum/reagent/lube // TODO: spraying on borgs speeds them up
|
||||
name = "Space Lube"
|
||||
id = "lube"
|
||||
|
||||
@@ -46,6 +46,11 @@
|
||||
color = "#792300"
|
||||
strength = 10
|
||||
|
||||
/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))
|
||||
|
||||
/datum/reagent/toxin/carpotoxin
|
||||
name = "Carpotoxin"
|
||||
id = "carpotoxin"
|
||||
@@ -55,6 +60,10 @@
|
||||
color = "#003333"
|
||||
strength = 10
|
||||
|
||||
/datum/reagent/toxin/carpotoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.adjustBrainLoss(strength / 4 * removed)
|
||||
|
||||
/datum/reagent/toxin/neurotoxic_protein
|
||||
name = "toxic protein"
|
||||
id = "neurotoxic_protein"
|
||||
@@ -212,6 +221,7 @@
|
||||
color = "#d0583a"
|
||||
metabolism = REM * 3
|
||||
overdose = 10
|
||||
overdose_mod = 0.5
|
||||
strength = 3
|
||||
|
||||
/datum/reagent/toxin/stimm/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -225,6 +235,13 @@
|
||||
M.take_organ_damage(6 * removed, 0)
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1)
|
||||
|
||||
/datum/reagent/toxin/stimm/overdose(var/mob/living/carbon/M, var/alient, var/removed)
|
||||
..()
|
||||
if(prob(10)) // 1 in 10. This thing's made with welder fuel and fertilizer, what do you expect?
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.internal_organs_by_name[O_HEART].take_damage(1)
|
||||
to_chat(M, "<span class='warning'>Huh... Is this what a heart attack feels like?</span>")
|
||||
|
||||
/datum/reagent/toxin/potassium_chloride
|
||||
name = "Potassium Chloride"
|
||||
id = "potassium_chloride"
|
||||
@@ -658,7 +675,7 @@
|
||||
metabolism = REM * 0.5
|
||||
ingest_met = REM * 1.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 5 //For that good, lethal feeling
|
||||
overdose_mod = 2 //For that good, lethal feeling // Reduced with overdose changes. Slightly stronger than before
|
||||
|
||||
/datum/reagent/chloralhydrate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
|
||||
Reference in New Issue
Block a user