Medical Allergies (#19400)

* curse of medical

* no benefit

* fix that

* fix

* small fixes

* small tweaks

* fix

* fix

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
Will
2026-04-18 13:50:41 -04:00
committed by GitHub
parent 9fdc02d3f0
commit 239b442bd0
10 changed files with 103 additions and 12 deletions
@@ -54,6 +54,7 @@
var/taste_sensitivity = TASTE_NORMAL // How sensitive the species is to minute tastes.
var/allergens = null // Things that will make this species very sick
var/medallergens = null // Medication that will makes this species very sick
var/allergen_reaction = AG_TOX_DMG|AG_OXY_DMG|AG_EMOTE|AG_PAIN|AG_BLURRY|AG_CONFUSE // What type of reactions will you have? These the 'main' options and are intended to approximate anaphylactic shock at high doses.
var/allergen_damage_severity = 2.5 // How bad are reactions to the allergen? Touch with extreme caution.
var/allergen_disable_severity = 10 // Whilst this determines how long nonlethal effects last and how common emotes are.
@@ -838,7 +839,7 @@
if(H.species.has_vibration_sense)
H.motiontracker_subscribe()
if(H.species.allergens)
if(H.species.allergens || H.species.medallergens)
H.AddElement(/datum/element/allergy)
else
H.RemoveElement(/datum/element/allergy)
@@ -768,3 +768,51 @@
desc = "You are approximately 50% more susceptible to radiation, and it dissipates slower from your body."
cost = -2
var_changes = list("radiation_mod" = 1.5, "rad_removal_mod" = 0.5, "rad_levels" = WEAKENED_RADIATION_RESISTANCE)
// medical allergens
/datum/trait/negative/medical_allergy
name = "Allergy: " + REAGENT_TRICORDRAZINE
desc = "You're highly allergic to " + REAGENT_TRICORDRAZINE + " and " + REAGENT_TRICORLIDAZE + ", be sure to write that in your medical record! NB: By taking this trait, you acknowledge there is a significant risk your character may suffer a fatal reaction if exposed to this substance."
cost = -1
custom_only = FALSE
var/medallergen = MEDALLERGEN_TRICORD
/* Lets show medical some mercy by not making these genes
is_genetrait = TRUE
hidden = FALSE
activation_message="Something feels odd..."
*/
/datum/trait/negative/medical_allergy/apply(var/datum/species/S,var/mob/living/carbon/human/H)
S.medallergens |= medallergen
..()
/datum/trait/negative/medical_allergy/unapply(var/datum/species/S,var/mob/living/carbon/human/H)
S.medallergens &= ~medallergen
..()
/datum/trait/negative/medical_allergy/bicard
name = "Allergy: " + REAGENT_BICARIDINE
desc = "You're highly allergic to " + REAGENT_BICARIDINE + " and " + REAGENT_BICARIDAZE + ", be sure to write that in your medical record! NB: By taking this trait, you acknowledge there is a significant risk your character may suffer a fatal reaction if exposed to this substance."
medallergen = MEDALLERGEN_BICARD
/datum/trait/negative/medical_allergy/dylo
name = "Allergy: " + REAGENT_ANTITOXIN
desc = "You're highly allergic to " + REAGENT_ANTITOXIN + ", be sure to write that in your medical record! NB: By taking this trait, you acknowledge there is a significant risk your character may suffer a fatal reaction if exposed to this substance."
medallergen = MEDALLERGEN_DYLO
/datum/trait/negative/medical_allergy/spacacillin
name = "Allergy: " + REAGENT_SPACEACILLIN
desc = "You're highly allergic to " + REAGENT_SPACEACILLIN + ", be sure to write that in your medical record! NB: By taking this trait, you acknowledge there is a significant risk your character may suffer a fatal reaction if exposed to this substance."
medallergen = MEDALLERGEN_SPACACIL
/datum/trait/negative/medical_allergy/peridaxon
name = "Allergy: " + REAGENT_PERIDAXON
desc = "You're highly allergic to " + REAGENT_PERIDAXON + ", be sure to write that in your medical record! NB: By taking this trait, you acknowledge there is a significant risk your character may suffer a fatal reaction if exposed to this substance."
medallergen = MEDALLERGEN_PERIDAX
/datum/trait/negative/medical_allergy/kelotane
name = "Allergy: " + REAGENT_KELOTANE
desc = "You're highly allergic to " + REAGENT_KELOTANE + ", " + REAGENT_DERMALINE + " and " + REAGENT_DERMALAZE + ", be sure to write that in your medical record! NB: By taking this trait, you acknowledge there is a significant risk your character may suffer a fatal reaction if exposed to this substance."
medallergen = MEDALLERGEN_KELOTANE