62 lines
1.6 KiB
Plaintext
62 lines
1.6 KiB
Plaintext
/*
|
|
//////////////////////////////////////
|
|
|
|
Shivering
|
|
|
|
No change to hidden.
|
|
Increases resistance.
|
|
Increases stage speed.
|
|
Little transmittable.
|
|
Low level.
|
|
|
|
Bonus
|
|
Cools down your body.
|
|
|
|
//////////////////////////////////////
|
|
*/
|
|
|
|
/datum/symptom/shivering
|
|
name = "Shivering"
|
|
desc = "The virus inhibits the body's thermoregulation, cooling the body down."
|
|
stealth = 0
|
|
resistance = 2
|
|
stage_speed = 3
|
|
transmittable = 2
|
|
level = 2
|
|
severity = 2
|
|
symptom_delay_min = 10
|
|
symptom_delay_max = 30
|
|
var/unsafe = FALSE //over the cold threshold
|
|
threshold_desc = list(
|
|
"Stage Speed 5" = "Increases cooling speed,; the host can fall below safe temperature levels.",
|
|
"Stage Speed 10" = "Further increases cooling speed."
|
|
)
|
|
|
|
/datum/symptom/shivering/Start(datum/disease/advance/A)
|
|
if(!..())
|
|
return
|
|
if(A.properties["stage_rate"] >= 5) //dangerous cold
|
|
power = 1.5
|
|
unsafe = TRUE
|
|
if(A.properties["stage_rate"] >= 10)
|
|
power = 2.5
|
|
|
|
/datum/symptom/shivering/Activate(datum/disease/advance/A)
|
|
if(!..())
|
|
return
|
|
var/mob/living/carbon/M = A.affected_mob
|
|
if(!unsafe || A.stage < 4)
|
|
to_chat(M, "<span class='warning'>[pick("You feel cold.", "You shiver.")]</span>")
|
|
else
|
|
to_chat(M, "<span class='userdanger'>[pick("You feel your blood run cold.", "You feel ice in your veins.", "You feel like you can't heat up.", "You shiver violently." )]</span>")
|
|
if(M.bodytemperature > BODYTEMP_COLD_DAMAGE_LIMIT || unsafe)
|
|
Chill(M, A)
|
|
|
|
/datum/symptom/shivering/proc/Chill(mob/living/M, datum/disease/advance/A)
|
|
var/get_cold = 6 * power
|
|
var/limit = BODYTEMP_COLD_DAMAGE_LIMIT + 1
|
|
if(unsafe)
|
|
limit = 0
|
|
M.adjust_bodytemperature(-get_cold * A.stage, limit)
|
|
return TRUE
|