mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-19 11:05:50 +01:00
Virus timers
This commit is contained in:
@@ -36,6 +36,7 @@
|
||||
|
||||
/mob/proc/AddDisease(datum/disease/D, respect_carrier = FALSE)
|
||||
var/datum/disease/DD = new D.type(1, D, 0)
|
||||
DD.start_cure_timer()
|
||||
viruses += DD
|
||||
DD.affected_mob = src
|
||||
active_diseases += DD
|
||||
|
||||
@@ -42,6 +42,7 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
|
||||
var/allow_dead = FALSE
|
||||
var/infect_synthetics = FALSE
|
||||
var/processing = FALSE
|
||||
var/has_timer = FALSE
|
||||
|
||||
/datum/disease/Destroy()
|
||||
affected_mob = null
|
||||
@@ -147,6 +148,23 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
|
||||
remove_virus()
|
||||
qdel(src)
|
||||
|
||||
/datum/disease/proc/start_cure_timer()
|
||||
if(has_timer)
|
||||
return
|
||||
if(!(disease_flags & CURABLE))
|
||||
return
|
||||
has_timer = TRUE
|
||||
addtimer(CALLBACK(src, PROC_REF(check_natural_immunity)), (1 HOUR) + rand( -20 MINUTES, 30 MINUTES), TIMER_DELETE_ME)
|
||||
|
||||
/datum/disease/proc/check_natural_immunity()
|
||||
if(!(disease_flags & CURABLE))
|
||||
return
|
||||
if(prob(rand(10, 15)))
|
||||
has_timer = FALSE
|
||||
cure()
|
||||
return
|
||||
addtimer(CALLBACK(src, PROC_REF(check_natural_immunity)), rand(5 MINUTES, 10 MINUTES), TIMER_DELETE_ME)
|
||||
|
||||
/datum/disease/proc/IsSame(datum/disease/D)
|
||||
if(ispath(D))
|
||||
return istype(src, D)
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
GLOBAL_LIST_EMPTY(archive_diseases)
|
||||
|
||||
GLOBAL_LIST_INIT(advance_cures, list(
|
||||
REAGENT_ID_SODIUMCHLORIDE, REAGENT_ID_SUGAR, REAGENT_ID_ORANGEJUICE,
|
||||
REAGENT_ID_SPACEACILLIN, REAGENT_ID_GLUCOSE, REAGENT_ID_ETHANOL,
|
||||
REAGENT_ID_LEPORAZINE, REAGENT_ID_IMPEDREZENE, REAGENT_ID_HEPANEPHRODAXON,
|
||||
REAGENT_ID_SILVER, REAGENT_ID_GOLD
|
||||
REAGENT_ID_SPACEACILLIN,
|
||||
REAGENT_ID_ORANGEJUICE,
|
||||
REAGENT_ID_ETHANOL,
|
||||
REAGENT_ID_GLUCOSE,
|
||||
REAGENT_ID_COPPER,
|
||||
REAGENT_ID_LEAD,
|
||||
REAGENT_ID_LITHIUM,
|
||||
REAGENT_ID_RADIUM,
|
||||
REAGENT_ID_MERCURY,
|
||||
REAGENT_ID_BLISS,
|
||||
REAGENT_ID_MUTAGEN,
|
||||
REAGENT_ID_PHORON,
|
||||
REAGENT_ID_SACID
|
||||
))
|
||||
|
||||
/datum/disease/advance
|
||||
@@ -13,6 +22,7 @@ GLOBAL_LIST_INIT(advance_cures, list(
|
||||
form = "Advance Disease"
|
||||
agent = "advance microbes"
|
||||
max_stages = 5
|
||||
disease_flags = CAN_NOT_POPULATE
|
||||
spread_text = "Unknown"
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ Bonus
|
||||
if(3, 4)
|
||||
L.jitteriness += 10
|
||||
else
|
||||
if(L.reagents.get_reagent_amount(REAGENT_ID_HYPERZINE < 10))
|
||||
if(L.reagents.get_reagent_amount(REAGENT_ID_HYPERZINE) < 10)
|
||||
L.reagents.add_reagent(REAGENT_ID_HYPERZINE, 5)
|
||||
if(prob(30))
|
||||
L.jitteriness += 15
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
desc = "If left untreated the subject will become very weak, and may vomit often."
|
||||
severity = MINOR
|
||||
disease_flags = CAN_CARRY|CAN_RESIST
|
||||
disease_flags = CAN_CARRY|CAN_RESIST|CAN_NOT_POPULATE
|
||||
visibility_flags = HIDDEN_PANDEMIC
|
||||
required_organs = list(/obj/item/organ/internal/appendix)
|
||||
bypasses_immunity = TRUE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
desc = "Nausea, sickness, and vomitting."
|
||||
severity = MINOR
|
||||
disease_flags = CURABLE
|
||||
disease_flags = CURABLE|CAN_NOT_POPULATE
|
||||
virus_heal_resistant = TRUE
|
||||
|
||||
/datum/disease/food_poisoning/stage_act()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
agent = "Gravitokinetic Bipotential SADS+"
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
severity = BIOHAZARD
|
||||
disease_flags = CAN_NOT_POPULATE
|
||||
|
||||
/datum/disease/gbs/stage_act()
|
||||
if(!..())
|
||||
|
||||
Reference in New Issue
Block a user