mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
[MIRROR] Sensitive Biochem Fixes & Additions (#10480)
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
committed by
GitHub
parent
8fb56e9d8b
commit
03374077b1
@@ -130,7 +130,7 @@
|
||||
|
||||
var/chem_strength_heal = 1 // Multiplier to most beneficial chem strength
|
||||
var/chem_strength_pain = 1 // Multiplier to painkiller strength (could be used in a negative trait to simulate long-term addiction reducing effects, etc.)
|
||||
var/chem_strength_tox = 1 // Multiplier to toxic chem strength (inc. chloral/sopo/mindbreaker/etc. thresholds)
|
||||
var/chem_strength_tox = 1 // Multiplier to the strength of toxic or deabilitating chemicals (inc. chloral/sopo/mindbreaker/ambrosia/etc. thresholds)
|
||||
var/chem_strength_alcohol = 1 // Multiplier to alcohol effect thresholds; higher means more is needed to reach a given effect tier
|
||||
|
||||
var/chemOD_threshold = 1 // Multiplier to overdose threshold; lower = easier overdosing
|
||||
|
||||
@@ -584,16 +584,6 @@
|
||||
H.fear = min((H.fear + 3), 102)
|
||||
|
||||
|
||||
/datum/trait/negative/endurance_glass // Glass Cannon
|
||||
name = "Glass Endurance"
|
||||
desc = "Your body is very fragile. Reduces your maximum hitpoints to 25. Beware sneezes. You require only 50 damage in total to die, compared to 200 normally. You will go into crit after losing 25 HP, compared to crit at 100 HP."
|
||||
cost = -12 // Similar to Very Low Endurance, this straight up will require you NEVER getting in a fight. This is extremely crippling. I salute the madlad that takes this.
|
||||
var_changes = list("total_health" = 25)
|
||||
|
||||
/datum/trait/negative/endurance_glass/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
||||
..()
|
||||
H.setMaxHealth(S.total_health)
|
||||
|
||||
/datum/trait/negative/endurance_glass // Glass Cannon
|
||||
name = "Glass Endurance"
|
||||
desc = "Your body is very fragile. Reduces your maximum hitpoints to 25. Beware sneezes. You require only 50 damage in total to die, compared to 200 normally. You will go into crit after losing 25 HP, compared to crit at 100 HP."
|
||||
@@ -689,15 +679,36 @@
|
||||
primitive_expression_messages=list("bumps their toe, screaming in pain")
|
||||
|
||||
/datum/trait/negative/sensitive_biochem
|
||||
name = "Sensitive Biochemistry"
|
||||
desc = "Your biochemistry is a little delicate, rendering you more susceptible to both deadly toxins and the more subtle ones. You'll probably want to list this in your medical records, and perhaps in your exploitable info as well. Toxin damages and knockout drugs are 25% stronger on you."
|
||||
name = "Sensitive Biochemistry, Minor"
|
||||
desc = "Your biochemistry is a little delicate, rendering you more susceptible to the negative effects of some chemicals. You'll probably want to list this in your medical records, and perhaps in your exploitable info as well. Chemical toxin damage and negative drug effects are 25% stronger on you. Additionally, knockout drugs work 25% faster on you."
|
||||
cost = -1
|
||||
var_changes = list("chem_strength_tox" = 1.25)
|
||||
|
||||
//Traitgenes
|
||||
is_genetrait = TRUE
|
||||
can_take = ORGANICS
|
||||
is_genetrait = FALSE
|
||||
hidden = FALSE
|
||||
|
||||
/datum/trait/negative/sensitive_biochem/moderate
|
||||
name = "Sensitive Biochemistry, Moderate"
|
||||
desc = "Your biochemistry is a quite delicate, rendering you more susceptible to the negative effects of some chemicals. You'll probably want to list this in your medical records, and perhaps in your exploitable info as well. Chemical toxin damage and negative drug effects are 50% stronger on you. Additionally, knockout drugs work 50% faster on you."
|
||||
cost = -2
|
||||
var_changes = list("chem_strength_tox" = 1.5)
|
||||
|
||||
//Traitgenes
|
||||
can_take = ORGANICS
|
||||
is_genetrait = FALSE
|
||||
|
||||
/datum/trait/negative/sensitive_biochem/major
|
||||
name = "Sensitive Biochemistry, Major"
|
||||
desc = "Your biochemistry is a much more delicate, rendering you more susceptible to the negative effects of some chemicals. You'll probably want to list this in your medical records, and perhaps in your exploitable info as well. Chemical toxin damage and negative drug effects are 100% stronger on you. Additionally, knockout drugs work 100% faster on you."
|
||||
cost = -3
|
||||
var_changes = list("chem_strength_tox" = 2)
|
||||
|
||||
//Traitgenes
|
||||
can_take = ORGANICS
|
||||
is_genetrait = TRUE
|
||||
|
||||
/datum/trait/negative/slipperydirt
|
||||
name = "Dirt Vulnerability"
|
||||
desc = "Even the tiniest particles of dirt give you uneasy footing, even through several layers of footwear."
|
||||
|
||||
@@ -58,10 +58,10 @@
|
||||
/datum/reagent/drugs/bliss/affect_blood(mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
var/drug_strength = 15
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength = drug_strength * 0.8
|
||||
if(M.species.chem_strength_tox > 0)
|
||||
drug_strength *= M.species.chem_strength_tox
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength = drug_strength * 1.2
|
||||
drug_strength *= 0.15 //~ 1/6
|
||||
|
||||
M.druggy = max(M.druggy, drug_strength)
|
||||
if(prob_proc == TRUE && prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained() && !M.resting) // CHOMPstation edit - Stop drug movement from forcing crawling
|
||||
@@ -102,10 +102,10 @@
|
||||
/datum/reagent/drugs/ambrosia_extract/affect_blood(mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
var/drug_strength = 3
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength = drug_strength * 0.8
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
drug_strength *= M.species.chem_strength_tox
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength = drug_strength * 1.2
|
||||
drug_strength *= 0.15 //~ 1/6
|
||||
|
||||
M.adjustToxLoss(-2)
|
||||
M.druggy = max(M.druggy, drug_strength)
|
||||
@@ -134,12 +134,12 @@
|
||||
/datum/reagent/drugs/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
var/threshold = 1 * M.species.chem_strength_tox
|
||||
if(alien == IS_SKRELL)
|
||||
threshold = 1.2
|
||||
var/threshold = 1
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
threshold /= M.species.chem_strength_tox
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
threshold = 0.8
|
||||
threshold *= 0.15 //~1/6
|
||||
|
||||
M.druggy = max(M.druggy, 30)
|
||||
|
||||
@@ -187,9 +187,9 @@
|
||||
/datum/reagent/drugs/talum_quem/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
var/drug_strength = 29 * M.species.chem_strength_tox
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength = drug_strength * 0.8
|
||||
var/drug_strength = 29
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
drug_strength *= M.species.chem_strength_tox
|
||||
else
|
||||
M.adjustToxLoss(10 * removed) //Given incorporations of other toxins with similiar damage, this seems right.
|
||||
|
||||
|
||||
@@ -845,8 +845,6 @@
|
||||
|
||||
var/effective_strength = 5
|
||||
|
||||
if(alien == IS_SKRELL) //Larger eyes means bigger targets.
|
||||
effective_strength = 8
|
||||
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -4276,8 +4274,10 @@
|
||||
return
|
||||
|
||||
var/drug_strength = 10
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength = drug_strength * 0.8
|
||||
if(M.species.chem_strength_tox > 0)
|
||||
drug_strength *= M.species.chem_strength_tox
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength *= 0.15 //~ 1/6
|
||||
|
||||
M.druggy = max(M.druggy, drug_strength)
|
||||
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
||||
|
||||
@@ -109,8 +109,6 @@
|
||||
|
||||
/datum/reagent/ethanol/monstertamer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_SKRELL)
|
||||
M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein.
|
||||
if(M.species.organic_food_coeff)
|
||||
if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein
|
||||
M.adjust_nutrition(alt_nutriment_factor * removed)
|
||||
@@ -476,8 +474,6 @@
|
||||
|
||||
/datum/reagent/ethanol/hairoftherat/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_SKRELL)
|
||||
M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein.
|
||||
if(M.species.organic_food_coeff)
|
||||
if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein
|
||||
M.nutrition += (alt_nutriment_factor * removed)
|
||||
@@ -900,12 +896,12 @@
|
||||
|
||||
/datum/reagent/drink/coffee/nukie/mega/high/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
var/threshold = 1 * M.species.chem_strength_tox
|
||||
if(alien == IS_SKRELL)
|
||||
threshold = 1.2
|
||||
var/threshold = 1
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
threshold /= M.species.chem_strength_tox
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
threshold = 0.8
|
||||
threshold *= 0.15 //~1/6
|
||||
|
||||
M.druggy = max(M.druggy, 30)
|
||||
M.adjust_nutrition(-10 * removed)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
if(alien == IS_SLIME)
|
||||
chem_effective = 0.75
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(4 * removed * chem_effective, 0) //VOREStation Edit
|
||||
M.heal_organ_damage(4 * removed * chem_effective, 0)
|
||||
|
||||
/datum/reagent/bicaridine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
@@ -139,7 +139,7 @@
|
||||
chem_effective = 0.5
|
||||
M.adjustBruteLoss(2 * removed) //Mends burns, but has negative effects with a Promethean's skeletal structure.
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(0, 4 * removed * chem_effective) //VOREStation edit
|
||||
M.heal_organ_damage(0, 4 * removed * chem_effective)
|
||||
|
||||
/datum/reagent/dermaline
|
||||
name = REAGENT_DERMALINE
|
||||
@@ -158,7 +158,7 @@
|
||||
if(alien == IS_SLIME)
|
||||
chem_effective = 0.75
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(0, 8 * removed * chem_effective) //VOREStation edit
|
||||
M.heal_organ_damage(0, 8 * removed * chem_effective)
|
||||
|
||||
/datum/reagent/dermaline/topical
|
||||
name = REAGENT_DERMALAZE
|
||||
@@ -254,21 +254,21 @@
|
||||
color = "#0080FF"
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
scannable = 1
|
||||
metabolism = REM * 0.25 //VOREStation Edit
|
||||
metabolism = REM * 0.25
|
||||
|
||||
/datum/reagent/dexalin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_VOX)
|
||||
M.adjustToxLoss(removed * 24) //VOREStation Edit
|
||||
M.adjustToxLoss(removed * 24)
|
||||
else if(alien == IS_SLIME && dose >= 15)
|
||||
M.add_chemical_effect(CE_PAINKILLER, 15 * M.species.chem_strength_pain)
|
||||
if(prob(15))
|
||||
to_chat(M, span_notice("You have a moment of clarity as you collapse."))
|
||||
M.adjustBrainLoss(-20 * removed) //VOREStation Edit
|
||||
M.adjustBrainLoss(-20 * removed)
|
||||
M.Weaken(6)
|
||||
else if(alien != IS_DIONA)
|
||||
M.adjustOxyLoss(-15 * removed * M.species.chem_strength_heal)
|
||||
|
||||
holder.remove_reagent(REAGENT_ID_LEXORIN, 8 * removed) //VOREStation Edit
|
||||
holder.remove_reagent(REAGENT_ID_LEXORIN, 8 * removed)
|
||||
|
||||
/datum/reagent/dexalinp
|
||||
name = REAGENT_DEXALINP
|
||||
@@ -648,7 +648,7 @@
|
||||
M.Weaken(5)
|
||||
if(dose >= 10 && M.paralysis < 40)
|
||||
M.AdjustParalysis(1) //Messing with the core with a simple chemical probably isn't the best idea.
|
||||
M.adjustBrainLoss(-8 * removed * chem_effective) //VOREStation Edit
|
||||
M.adjustBrainLoss(-8 * removed * chem_effective)
|
||||
M.add_chemical_effect(CE_PAINKILLER, 10 * chem_effective * M.species.chem_strength_pain)
|
||||
|
||||
/datum/reagent/imidazoline
|
||||
@@ -935,9 +935,6 @@
|
||||
if(alien == IS_SLIME) // Diffculty bonding with internal cellular structure.
|
||||
strength_mod = 1.3
|
||||
|
||||
if(alien == IS_SKRELL) // Natural inclination toward toxins.
|
||||
strength_mod = 0.66
|
||||
|
||||
if(alien == IS_UNATHI) // Natural regeneration, robust biology.
|
||||
strength_mod = 0.6
|
||||
|
||||
@@ -987,9 +984,6 @@
|
||||
/datum/reagent/skrellimmuno/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
var/strength_mod = 0.5 * M.species.chem_strength_heal
|
||||
|
||||
if(alien == IS_SKRELL)
|
||||
strength_mod = 1
|
||||
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(alien != IS_SKRELL)
|
||||
@@ -1305,11 +1299,9 @@
|
||||
for(var/obj/effect/decal/cleanable/blood/B in T)
|
||||
qdel(B)
|
||||
|
||||
//VOREstation edit. Floor polishing.
|
||||
if(istype(T, /turf/simulated))
|
||||
var/turf/simulated/S = T
|
||||
S.dirt = -50
|
||||
//VOREstation edit end
|
||||
|
||||
/datum/reagent/sterilizine/touch_mob(var/mob/living/L, var/amount)
|
||||
..()
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
var/skin_danger = 0.2 // The multiplier for how effective the toxin is when making skin contact.
|
||||
|
||||
/datum/reagent/toxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
strength *= M.species.chem_strength_tox
|
||||
var/poison_strength = strength * M.species.chem_strength_tox
|
||||
if(strength && alien != IS_DIONA)
|
||||
if(issmall(M)) removed *= 2 // Small bodymass, more effect from lower volume.
|
||||
if(alien == IS_SLIME)
|
||||
removed *= 0.25 // Results in half the standard tox as normal. Prometheans are 'Small' for flaps.
|
||||
if(dose >= 10)
|
||||
M.adjust_nutrition(strength * removed) // Body has to deal with the massive influx of toxins, rather than try using them to repair.
|
||||
M.adjust_nutrition(poison_strength * removed) // Body has to deal with the massive influx of toxins, rather than try using them to repair.
|
||||
else
|
||||
M.heal_organ_damage((10/strength) * removed, (10/strength) * removed) //Doses of toxins below 10 units, and 10 strength, are capable of providing useful compounds for repair.
|
||||
M.adjustToxLoss(strength * removed)
|
||||
M.heal_organ_damage((10/poison_strength) * removed, (10/poison_strength) * removed) //Doses of toxins below 10 units, and 10 strength, are capable of providing useful compounds for repair.
|
||||
M.adjustToxLoss(poison_strength * removed)
|
||||
|
||||
/datum/reagent/toxin/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
affect_blood(M, alien, removed * 0.2)
|
||||
@@ -558,14 +558,9 @@
|
||||
to_chat(M, span_warning("Your cellular mass hardens for a moment."))
|
||||
M.Stun(6)
|
||||
return
|
||||
if(alien == IS_SKRELL)
|
||||
M.take_organ_damage(2.4 * removed, 0)
|
||||
if(M.losebreath < 10)
|
||||
M.AdjustLosebreath(1)
|
||||
else
|
||||
M.take_organ_damage(3 * removed, 0)
|
||||
if(M.losebreath < 15)
|
||||
M.AdjustLosebreath(1)
|
||||
M.take_organ_damage(3 * removed, 0)
|
||||
if(M.losebreath < 15)
|
||||
M.AdjustLosebreath(1)
|
||||
|
||||
/datum/reagent/mutagen
|
||||
name = REAGENT_MUTAGEN
|
||||
@@ -672,12 +667,12 @@
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
|
||||
var/threshold = 1 * M.species.chem_strength_tox
|
||||
if(alien == IS_SKRELL)
|
||||
threshold = 1.2
|
||||
var/threshold = 1
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
threshold /= M.species.chem_strength_tox
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
threshold = 6 //Evens to 3 due to the fact they are considered 'small' for flaps.
|
||||
threshold *= 0.15 //~1/6 //Evens to 3 due to the fact they are considered 'small' for flaps.
|
||||
|
||||
var/effective_dose = dose
|
||||
if(issmall(M))
|
||||
@@ -721,12 +716,12 @@
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
|
||||
var/threshold = 1 * M.species.chem_strength_tox
|
||||
if(alien == IS_SKRELL)
|
||||
threshold = 1.2
|
||||
var/threshold = 1
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
threshold /= M.species.chem_strength_tox
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
threshold = 6 //Evens to 3 due to the fact they are considered 'small' for flaps.
|
||||
threshold *= 0.15 //~1/6
|
||||
|
||||
var/effective_dose = dose
|
||||
if(issmall(M))
|
||||
@@ -816,13 +811,12 @@
|
||||
/datum/reagent/cryptobiolin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
var/drug_strength = 4 * M.species.chem_strength_tox
|
||||
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength = drug_strength * 0.8
|
||||
var/drug_strength = 4
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
drug_strength *= M.species.chem_strength_tox
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength = drug_strength * 1.2
|
||||
drug_strength *= 0.15 //~ 1/6
|
||||
|
||||
M.make_dizzy(drug_strength)
|
||||
M.Confuse(drug_strength * 5)
|
||||
@@ -851,24 +845,25 @@
|
||||
/datum/reagent/mindbreaker
|
||||
name = REAGENT_MINDBREAKER
|
||||
id = REAGENT_ID_MINDBREAKER
|
||||
description = "A powerful hallucinogen, it can cause fatal effects in users."
|
||||
description = "A powerful hallucinogen that causes immediate, prolonged hallucinations in its users."
|
||||
taste_description = "sourness"
|
||||
reagent_state = LIQUID
|
||||
color = "#B31008"
|
||||
metabolism = REM * 0.25
|
||||
metabolism = REM * 4 //0.8 per second...This is an 'immediate effect' drug that you hit someone with and they have effects for a prolonged period after.
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
|
||||
/datum/reagent/mindbreaker/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
|
||||
var/drug_strength = 100 * M.species.chem_strength_tox
|
||||
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength *= 0.8
|
||||
var/drug_strength = 100
|
||||
if(M.species.chem_strength_tox > 0) //Closer to 0 means they're more resistant to toxins. Higher than 1 means they're weaker to toxins.
|
||||
drug_strength *= M.species.chem_strength_tox //Ex: If you have a CST of 0.01 (100x resistant) drug_strength would = 10000
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength *= 1.2
|
||||
drug_strength *= 0.15 //~ 1/6
|
||||
|
||||
drug_strength = CLAMP(drug_strength, 0, 150) //Let's not have users be hallucinating more than 5 minutes.
|
||||
|
||||
M.hallucination = max(M.hallucination, drug_strength)
|
||||
|
||||
|
||||
@@ -203,6 +203,10 @@
|
||||
/datum/reagent/drugs/rainbow_toxin/affect_blood(mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
var/drug_strength = 20
|
||||
if(M.species.chem_strength_tox > 0)
|
||||
drug_strength *= M.species.chem_strength_tox
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength *= 0.15 //~ 1/6
|
||||
M.druggy = max(M.druggy, drug_strength)
|
||||
|
||||
/datum/reagent/drugs/rainbow_toxin/overdose(var/mob/living/M as mob)
|
||||
|
||||
Reference in New Issue
Block a user