Nerfs painkillers (#22711)

Sets the NO_PAIN threshold to 200, instead of 100. Meaning painkiller
values above 100 are necessary to ignore all pain effects.
This is necessary because:
- CE_PAINKILLER stacks additively.
- Mobs get given adrenaline every time they are hit.
- Adrenaline gives between 15 and 5 CE_PAINKILLER.
- Inaprovaline (10), Perconol (35), Mortaphenyl (50), Synaptizine (30),
Adrenaline (15-5).
- There was no reason to use more powerful painkillers with worse side
effects, when easy to obtain, longer lasting painkillers do the same
job.

Removes CE_ADRENALINE, which was poorly named, only used for Synaptizine
and didn't use the desired movespeed
modification pathways.

Reduces Synaptizine's painkilling value from 30 to 10.
Synaptizine cancels stuns, cancels all other painkiller side effects and
10u of it lasts an hour.
It is still the best combat drug in the game even with these nerfs.

Slight buff to oxycomorphine, to make sure that it doesn't tick down and
can consistently keep analgesic above 200.

Slight buff to mortaphenyl. This means the painkilling effect of antag
stims will remain the same, but for a shorter duration. Also makes it
more useful to doctors.

---------

Signed-off-by: FenodyreeAv <fenodyree.av@gmail.com>
This commit is contained in:
FenodyreeAv
2026-06-19 17:08:12 +01:00
committed by GitHub
parent 222505f244
commit 6e7e0c2326
6 changed files with 76 additions and 14 deletions
+1 -1
View File
@@ -570,7 +570,7 @@
return FALSE
if ((mutations & HULK))
return FALSE
if (analgesic > 100)
if (analgesic > 200)
return FALSE
if(pain_immune)
return FALSE
@@ -68,13 +68,14 @@
return species.total_health
return 0
///This fetches the cumulative total pain from all organs.
/mob/living/carbon/human/getHalLoss()
var/amount = 0
for(var/obj/item/organ/external/E in organs)
amount += E.get_pain()
return amount
//These procs fetch a cumulative total damage from all organs
///These procs fetch a cumulative total damage from all organs
/mob/living/carbon/human/getBruteLoss()
var/amount = 0
for(var/obj/item/organ/external/O in organs)
@@ -706,12 +706,6 @@
stamina_recovery = species.stamina_recovery
sprint_cost_factor = species.sprint_cost_factor
if(CE_ADRENALINE in chem_effects)
sprint_speed_factor += 0.1*chem_effects[CE_ADRENALINE]
max_stamina *= 1 + chem_effects[CE_ADRENALINE]
sprint_cost_factor -= 0.35 * chem_effects[CE_ADRENALINE]
stamina_recovery += max ((stamina_recovery * 0.7 * chem_effects[CE_ADRENALINE]), 5)
var/obj/item/clothing/suit = wear_suit
var/protected = FALSE
if(suit && (suit.body_parts_covered & HANDS) && (suit.heat_protection & HANDS))
@@ -347,7 +347,7 @@
M.notify_message(SPAN_GOOD(pick(joy_messages)), rand(20 SECONDS, 40 SECONDS), key = "morta_affect_blood")
if(check_min_dose(M))
M.add_chemical_effect(CE_PAINKILLER, 50)
M.add_chemical_effect(CE_PAINKILLER, 70)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 5)
if(!M.chem_effects[CE_STRAIGHTWALK])
@@ -527,7 +527,7 @@
to_chat(M, SPAN_GOOD(pick("You feel soothed and at ease.", "You feel content and at peace.", "You feel a pleasant emptiness.", "You feel like sharing the wonderful memories and feelings you're experiencing.", "All your anxieties fade away.", "You feel like you're floating off the ground.", "You don't want this feeling to end.")))
if(check_min_dose(M))
M.add_chemical_effect(CE_PAINKILLER, 200)
M.add_chemical_effect(CE_PAINKILLER, 210)
M.add_chemical_effect(CE_SLOWDOWN, 2)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 5)
@@ -587,9 +587,8 @@
if(.)
M.add_chemical_effect(CE_CLEARSIGHT)
M.add_chemical_effect(CE_STRAIGHTWALK)
M.add_chemical_effect(CE_PAINKILLER, 30)
M.add_chemical_effect(CE_PAINKILLER, 10)
M.add_chemical_effect(CE_HALLUCINATE, -1)
M.add_up_to_chemical_effect(CE_ADRENALINE, 1)
M.add_chemical_effect(CE_BLOODTHIN, 25)
/singleton/reagent/synaptizine/overdose(var/mob/living/carbon/M, var/alien, var/datum/reagents/holder)
@@ -1972,7 +1971,6 @@
M.add_chemical_effect(CE_STRAIGHTWALK)
M.add_chemical_effect(CE_PAINKILLER, 30)
M.add_chemical_effect(CE_HALLUCINATE, -1)
M.add_up_to_chemical_effect(CE_ADRENALINE, 1)
/singleton/reagent/kilosemine/overdose(mob/living/carbon/M, alien, removed, scale, datum/reagents/holder)
if(!ishuman(M))