mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 20:20:33 +01:00
## About The Pull Request Some of the status effect adjustments were missing `SECONDS` to their proc calls. ## Why It's Good For The Game N/A
69 lines
3.5 KiB
Plaintext
69 lines
3.5 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.adjustOxyLoss(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.adjustOxyLoss(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.adjustStaminaLoss(70, updating_stamina = FALSE)
|
|
if(SPT_PROB(5, seconds_per_tick))
|
|
need_mob_update += affected_mob.adjustStaminaLoss(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))
|
|
to_chat(affected_mob, span_danger("[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit...", "You feel like taking off some clothes...")]"))
|
|
affected_mob.adjust_bodytemperature(40)
|
|
if(need_mob_update)
|
|
affected_mob.updatehealth()
|