mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-15 10:04:30 +01:00
809cef8ae9
## About The Pull Request The clothes-referencing messages within tuberculosis's heating up symptom are only chosen if the person effected has a jumpsuit on ## Why It's Good For The Game closes #94350 ## Changelog 🆑 spellcheck: Tuberculosis no longer tells naked people to get naked /🆑
73 lines
3.7 KiB
Plaintext
73 lines
3.7 KiB
Plaintext
/datum/disease/tuberculosis
|
|
form = "Disease"
|
|
name = "Fungal tuberculosis"
|
|
max_stages = 5
|
|
spread_text = "Airborne"
|
|
cure_text = "Spaceacillin & Convermol"
|
|
cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/c2/convermol)
|
|
agent = "Fungal Tubercle bacillus Cosmosis"
|
|
viable_mobtypes = list(/mob/living/carbon/human)
|
|
cure_chance = 2.5 //like hell are you getting out of hell
|
|
desc = "A rare highly transmissible virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue."
|
|
required_organ = ORGAN_SLOT_LUNGS
|
|
severity = DISEASE_SEVERITY_BIOHAZARD
|
|
bypasses_immunity = TRUE // TB primarily impacts the lungs; it's also bacterial or fungal in nature; viral immunity should do nothing.
|
|
|
|
/datum/disease/tuberculosis/stage_act(seconds_per_tick, times_fired) //it begins
|
|
. = ..()
|
|
if(!.)
|
|
return
|
|
|
|
if(SPT_PROB(stage * 2, seconds_per_tick))
|
|
affected_mob.emote("cough")
|
|
to_chat(affected_mob, span_danger("Your chest hurts."))
|
|
|
|
switch(stage)
|
|
if(2)
|
|
if(SPT_PROB(1, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("Your stomach violently rumbles!"))
|
|
if(SPT_PROB(2.5, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("You feel a cold sweat form."))
|
|
if(4)
|
|
var/need_mob_update = FALSE
|
|
if(SPT_PROB(1, seconds_per_tick))
|
|
to_chat(affected_mob, span_userdanger("You see four of everything!"))
|
|
affected_mob.set_dizzy_if_lower(10 SECONDS)
|
|
if(SPT_PROB(1, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("You feel a sharp pain from your lower chest!"))
|
|
need_mob_update += affected_mob.adjust_oxy_loss(5, updating_health = FALSE)
|
|
affected_mob.emote("gasp")
|
|
if(SPT_PROB(5, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("You feel air escape from your lungs painfully."))
|
|
need_mob_update += affected_mob.adjust_oxy_loss(25, updating_health = FALSE)
|
|
affected_mob.emote("gasp")
|
|
if(need_mob_update)
|
|
affected_mob.updatehealth()
|
|
if(5)
|
|
var/need_mob_update = FALSE
|
|
if(SPT_PROB(1, seconds_per_tick))
|
|
to_chat(affected_mob, span_userdanger("[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]"))
|
|
need_mob_update += affected_mob.adjust_stamina_loss(70, updating_stamina = FALSE)
|
|
if(SPT_PROB(5, seconds_per_tick))
|
|
need_mob_update += affected_mob.adjust_stamina_loss(100, updating_stamina = FALSE)
|
|
affected_mob.visible_message(span_warning("[affected_mob] faints!"), span_userdanger("You surrender yourself and feel at peace..."))
|
|
affected_mob.AdjustSleeping(10 SECONDS)
|
|
if(SPT_PROB(1, seconds_per_tick))
|
|
to_chat(affected_mob, span_userdanger("You feel your mind relax and your thoughts drift!"))
|
|
affected_mob.adjust_confusion_up_to(8 SECONDS, 100 SECONDS)
|
|
if(SPT_PROB(5, seconds_per_tick))
|
|
affected_mob.vomit(VOMIT_CATEGORY_DEFAULT, lost_nutrition = 20)
|
|
if(SPT_PROB(1.5, seconds_per_tick))
|
|
to_chat(affected_mob, span_warning("<i>[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]</i>"))
|
|
affected_mob.overeatduration = max(affected_mob.overeatduration - (200 SECONDS), 0)
|
|
affected_mob.adjust_nutrition(-100)
|
|
if(SPT_PROB(7.5, seconds_per_tick))
|
|
if(ishuman(affected_mob))
|
|
var/mob/living/carbon/human/human_victim = affected_mob
|
|
to_chat(human_victim, span_danger("[human_victim.w_uniform? pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit...", "You feel like taking off some clothes...") : "You feel uncomfortably hot..."]"))
|
|
else
|
|
to_chat(affected_mob, span_danger("You feel uncomfortably hot..."))
|
|
affected_mob.adjust_bodytemperature(40)
|
|
if(need_mob_update)
|
|
affected_mob.updatehealth()
|