fixes the virus event

This commit is contained in:
joep van der velden
2020-05-29 21:52:45 +02:00
parent e2f00b3156
commit f57c5422ba
2 changed files with 24 additions and 23 deletions
+15 -22
View File
@@ -1,43 +1,36 @@
/datum/event/disease_outbreak
announceWhen = 15
var/datum/disease/advance/virus_type
var/datum/disease/D
/datum/event/disease_outbreak/setup()
announceWhen = rand(15, 30)
if(prob(25))
var/virus_type = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis, /datum/disease/beesease, /datum/disease/anxiety, /datum/disease/fake_gbs, /datum/disease/fluspanish, /datum/disease/pierrot_throat, /datum/disease/lycan)
D = new virus_type()
else
var/datum/disease/advance/A = new /datum/disease/advance
A.name = capitalize(pick(GLOB.adjectives)) + " " + capitalize(pick(GLOB.nouns + GLOB.verbs)) // random silly name
A.GenerateSymptoms(1,9,6)
A.AssignProperties(list("resistance" = rand(0,11), "stealth" = rand(0,2), "stage_rate" = rand(0,5), "transmittable" = rand(0,5), "severity" = rand(0,10)))
D = A
D.carrier = TRUE
/datum/event/disease_outbreak/announce()
GLOB.event_announcement.Announce("Confirmed outbreak of level 7 major viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg')
/datum/event/disease_outbreak/start()
if(prob(25))
virus_type = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis, /datum/disease/beesease, /datum/disease/anxiety, /datum/disease/fake_gbs, /datum/disease/fluspanish, /datum/disease/pierrot_throat, /datum/disease/lycan)
else
virus_type = new /datum/disease/advance
virus_type.name = capitalize(pick(GLOB.adjectives)) + " " + capitalize(pick(GLOB.nouns,GLOB.verbs)) // random silly name
virus_type.GenerateSymptoms(1,9,6)
virus_type.AssignProperties(list("resistance" = rand(0,11), "stealth" = rand(0,2), "stage_rate" = rand(0,5), "transmittable" = rand(0,5), "severity" = rand(0,10)))
for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list))
if(issmall(H)) //don't infect monkies; that's a waste
continue
if(!H.client)
continue
if(VIRUSIMMUNE in H.dna.species.species_traits) //don't let virus immune things get diseases they're not supposed to get.
if(issmall(H)) //don't infect monkies; that's a waste
continue
var/turf/T = get_turf(H)
if(!T)
continue
if(!is_station_level(T.z))
continue
var/foundAlready = FALSE // don't infect someone that already has the virus
for(var/thing in H.viruses)
foundAlready = TRUE
break
if(H.stat == DEAD || foundAlready)
continue
var/datum/disease/advance/D
D = virus_type
D.carrier = TRUE
H.AddDisease(D)
if(!H.ForceContractDisease(D))
continue
break