mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
* Remove reagent ids and use typepaths where applicable * Remove reagent ids and use typepaths where applicable * Resolves some easier conflicts * Resolves medical_tools.dm * Resolves robots.dm * Handles cinnamon Wow, I cannot do this manually. Fuckin' regex time. * Removes 27 merge conflicts (!!!!!) * Makes it actually half-attempt to compile * I just -- I give up, it's over * mk * mk * mk * hm * ok * what a bloody chain reaction jesus * ok * and done * went threw and changed the ones I missed * ok * dangit altoids hurry the fek up * Fixes whatever I found find thru this regex: reagents[\s\w]*=[\s\w]*list\([^\/]+\)
149 lines
4.4 KiB
Plaintext
149 lines
4.4 KiB
Plaintext
/*
|
|
//////////////////////////////////////
|
|
|
|
Choking
|
|
|
|
Very very noticable.
|
|
Lowers resistance.
|
|
Decreases stage speed.
|
|
Decreases transmittablity tremendously.
|
|
Moderate Level.
|
|
|
|
Bonus
|
|
Inflicts spikes of oxyloss
|
|
|
|
//////////////////////////////////////
|
|
*/
|
|
|
|
/datum/symptom/choking
|
|
|
|
name = "Choking"
|
|
desc = "The virus causes inflammation of the host's air conduits, leading to intermittent choking."
|
|
stealth = -3
|
|
resistance = -2
|
|
stage_speed = -2
|
|
transmittable = -4
|
|
level = 3
|
|
severity = 3
|
|
base_message_chance = 15
|
|
symptom_delay_min = 10
|
|
symptom_delay_max = 30
|
|
threshold_desc = "<b>Stage Speed 8:</b> Causes choking more frequently.<br>\
|
|
<b>Stealth 4:</b> The symptom remains hidden until active."
|
|
|
|
/datum/symptom/choking/Start(datum/disease/advance/A)
|
|
if(!..())
|
|
return
|
|
if(A.properties["stage_rate"] >= 8)
|
|
symptom_delay_min = 7
|
|
symptom_delay_max = 24
|
|
if(A.properties["stealth"] >= 4)
|
|
suppress_warning = TRUE
|
|
|
|
/datum/symptom/choking/Activate(datum/disease/advance/A)
|
|
if(!..())
|
|
return
|
|
var/mob/living/M = A.affected_mob
|
|
switch(A.stage)
|
|
if(1, 2)
|
|
if(prob(base_message_chance) && !suppress_warning)
|
|
to_chat(M, "<span class='warning'>[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]</span>")
|
|
if(3, 4)
|
|
if(!suppress_warning)
|
|
to_chat(M, "<span class='warning'>[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]</span>")
|
|
else
|
|
to_chat(M, "<span class='warning'>You feel very [pick("dizzy","woozy","faint")].</span>") //fake bloodloss messages
|
|
Choke_stage_3_4(M, A)
|
|
M.emote("gasp")
|
|
else
|
|
to_chat(M, "<span class='userdanger'>[pick("You're choking!", "You can't breathe!")]</span>")
|
|
Choke(M, A)
|
|
M.emote("gasp")
|
|
|
|
/datum/symptom/choking/proc/Choke_stage_3_4(mob/living/M, datum/disease/advance/A)
|
|
M.adjustOxyLoss(rand(6,13))
|
|
return 1
|
|
|
|
/datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A)
|
|
M.adjustOxyLoss(rand(10,18))
|
|
return 1
|
|
|
|
/*
|
|
//////////////////////////////////////
|
|
|
|
Asphyxiation
|
|
|
|
Very very noticable.
|
|
Decreases stage speed.
|
|
Decreases transmittablity.
|
|
|
|
Bonus
|
|
Inflicts large spikes of oxyloss
|
|
Introduces Asphyxiating drugs to the system
|
|
Causes cardiac arrest on dying victims.
|
|
|
|
//////////////////////////////////////
|
|
*/
|
|
|
|
/datum/symptom/asphyxiation
|
|
|
|
name = "Acute respiratory distress syndrome"
|
|
desc = "The virus causes shrinking of the host's lungs, causing severe asphyxiation. May also lead to heart attacks."
|
|
stealth = -2
|
|
resistance = -0
|
|
stage_speed = -1
|
|
transmittable = -2
|
|
level = 7
|
|
severity = 6
|
|
base_message_chance = 15
|
|
symptom_delay_min = 14
|
|
symptom_delay_max = 30
|
|
var/paralysis = FALSE
|
|
threshold_desc = "<b>Stage Speed 8:</b> Additionally synthesizes pancuronium and sodium thiopental inside the host.<br>\
|
|
<b>Transmission 8:</b> Doubles the damage caused by the symptom."
|
|
|
|
|
|
/datum/symptom/asphyxiation/Start(datum/disease/advance/A)
|
|
if(!..())
|
|
return
|
|
if(A.properties["stage_rate"] >= 8)
|
|
paralysis = TRUE
|
|
if(A.properties["transmittable"] >= 8)
|
|
power = 2
|
|
|
|
/datum/symptom/asphyxiation/Activate(datum/disease/advance/A)
|
|
if(!..())
|
|
return
|
|
var/mob/living/M = A.affected_mob
|
|
switch(A.stage)
|
|
if(3, 4)
|
|
to_chat(M, "<span class='warning'><b>[pick("Your windpipe feels thin.", "Your lungs feel small.")]</span>")
|
|
Asphyxiate_stage_3_4(M, A)
|
|
M.emote("gasp")
|
|
if(5)
|
|
to_chat(M, "<span class='userdanger'>[pick("Your lungs hurt!", "It hurts to breathe!")]</span>")
|
|
Asphyxiate(M, A)
|
|
M.emote("gasp")
|
|
if(M.getOxyLoss() >= 120)
|
|
M.visible_message("<span class='warning'>[M] stops breathing, as if their lungs have totally collapsed!</span>")
|
|
Asphyxiate_death(M, A)
|
|
return
|
|
|
|
/datum/symptom/asphyxiation/proc/Asphyxiate_stage_3_4(mob/living/M, datum/disease/advance/A)
|
|
var/get_damage = rand(10,15) * power
|
|
M.adjustOxyLoss(get_damage)
|
|
return 1
|
|
|
|
/datum/symptom/asphyxiation/proc/Asphyxiate(mob/living/M, datum/disease/advance/A)
|
|
var/get_damage = rand(15,21) * power
|
|
M.adjustOxyLoss(get_damage)
|
|
if(paralysis)
|
|
M.reagents.add_reagent_list(list(/datum/reagent/toxin/pancuronium = 3, /datum/reagent/toxin/sodium_thiopental = 3))
|
|
return 1
|
|
|
|
/datum/symptom/asphyxiation/proc/Asphyxiate_death(mob/living/M, datum/disease/advance/A)
|
|
var/get_damage = rand(25,35) * power
|
|
M.adjustOxyLoss(get_damage)
|
|
M.adjustBrainLoss(get_damage/2)
|
|
return 1
|