mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-25 08:34:23 +00:00
* Virus antagonist initial commit * Updated disease code * Sentient virus improvements * Renamed /mob/living/var/viruses to diseases, and /mob/living/var/resistances to disease_resistances * Added sentient virus event * Renamed VIRUS defines to DISEASE defines * Fixed bugs in rewritten disease code * Fixed advanced disease Copy() * Finalized disease antagonist * Made cooldown buttons stop processing if they are removed from an owner. Made sentient disease active sneeze and cough not available if the host is unconscious. Made sentient disease menu refresh when adaptations are ready or hosts are added or removed. Made sentient disease following use movement signals instead of fastprocess. * Added better icons to sentient disease abilities
61 lines
3.0 KiB
Plaintext
61 lines
3.0 KiB
Plaintext
/datum/disease/tuberculosis
|
|
form = "Disease"
|
|
name = "Fungal tuberculosis"
|
|
max_stages = 5
|
|
spread_text = "Airborne"
|
|
cure_text = "Spaceacillin & salbutamol"
|
|
cures = list("spaceacillin", "salbutamol")
|
|
agent = "Fungal Tubercle bacillus Cosmosis"
|
|
viable_mobtypes = list(/mob/living/carbon/human)
|
|
cure_chance = 5//like hell are you getting out of hell
|
|
desc = "A rare highly transmittable 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_organs = list(/obj/item/organ/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() //it begins
|
|
..()
|
|
switch(stage)
|
|
if(2)
|
|
if(prob(2))
|
|
affected_mob.emote("cough")
|
|
to_chat(affected_mob, "<span class='danger'>Your chest hurts.</span>")
|
|
if(prob(2))
|
|
to_chat(affected_mob, "<span class='danger'>Your stomach violently rumbles!</span>")
|
|
if(prob(5))
|
|
to_chat(affected_mob, "<span class='danger'>You feel a cold sweat form.</span>")
|
|
if(4)
|
|
if(prob(2))
|
|
to_chat(affected_mob, "<span class='userdanger'>You see four of everything</span>")
|
|
affected_mob.Dizzy(5)
|
|
if(prob(2))
|
|
to_chat(affected_mob, "<span class='danger'>You feel a sharp pain from your lower chest!</span>")
|
|
affected_mob.adjustOxyLoss(5)
|
|
affected_mob.emote("gasp")
|
|
if(prob(10))
|
|
to_chat(affected_mob, "<span class='danger'>You feel air escape from your lungs painfully.</span>")
|
|
affected_mob.adjustOxyLoss(25)
|
|
affected_mob.emote("gasp")
|
|
if(5)
|
|
if(prob(2))
|
|
to_chat(affected_mob, "<span class='userdanger'>[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]</span>")
|
|
affected_mob.adjustStaminaLoss(70)
|
|
if(prob(10))
|
|
affected_mob.adjustStaminaLoss(100)
|
|
affected_mob.visible_message("<span class='warning'>[affected_mob] faints!</span>", "<span class='userdanger'>You surrender yourself and feel at peace...</span>")
|
|
affected_mob.AdjustSleeping(100)
|
|
if(prob(2))
|
|
to_chat(affected_mob, "<span class='userdanger'>You feel your mind relax and your thoughts drift!</span>")
|
|
affected_mob.confused = min(100, affected_mob.confused + 8)
|
|
if(prob(10))
|
|
affected_mob.vomit(20)
|
|
if(prob(3))
|
|
to_chat(affected_mob, "<span class='warning'><i>[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]</i></span>")
|
|
affected_mob.overeatduration = max(affected_mob.overeatduration - 100, 0)
|
|
affected_mob.nutrition = max(affected_mob.nutrition - 100, 0)
|
|
if(prob(15))
|
|
to_chat(affected_mob, "<span class='danger'>[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]</span>")
|
|
affected_mob.adjust_bodytemperature(40)
|
|
return
|
|
|