Revert "Revert "[MIRROR] Virus crates now contain randomly generated viruses instead of single-symptom advance presets""

This commit is contained in:
Nich
2018-06-15 15:27:09 +02:00
committed by GitHub
parent a40ab97082
commit 06dcd687cd
5 changed files with 38 additions and 84 deletions

View File

@@ -294,7 +294,7 @@
/area/ruin/space/has_grav/abandonedzoo) /area/ruin/space/has_grav/abandonedzoo)
"aP" = ( "aP" = (
/obj/structure/table/reinforced, /obj/structure/table/reinforced,
/obj/item/reagent_containers/glass/bottle/liver_enhance_virion, /obj/item/reagent_containers/glass/bottle/random_virus,
/obj/item/reagent_containers/dropper, /obj/item/reagent_containers/dropper,
/turf/open/floor/plasteel{ /turf/open/floor/plasteel{
icon_state = "dark" icon_state = "dark"

View File

@@ -1,52 +1,35 @@
// Cold // Cold
/datum/disease/advance/cold/New() /datum/disease/advance/cold/New()
name = "Cold" name = "Cold"
symptoms = list(new/datum/symptom/sneeze) symptoms = list(new/datum/symptom/sneeze)
..() ..()
// Flu // Flu
/datum/disease/advance/flu/New() /datum/disease/advance/flu/New()
name = "Flu" name = "Flu"
symptoms = list(new/datum/symptom/cough) symptoms = list(new/datum/symptom/cough)
..() ..()
//Randomly generated Disease, for virus crates and events
/datum/disease/advance/random
name = "Experimental Disease"
// Voice Changing /datum/disease/advance/random/New(max_symptoms, max_level = 8)
if(!max_symptoms)
max_symptoms = rand(1, VIRUS_SYMPTOM_LIMIT)
var/list/datum/symptom/possible_symptoms = list()
for(var/symptom in subtypesof(/datum/symptom))
var/datum/symptom/S = symptom
if(initial(S.level) > max_level)
continue
if(initial(S.level) <= 0) //unobtainable symptoms
continue
possible_symptoms += S
for(var/i in 1 to max_symptoms)
var/datum/symptom/chosen_symptom = pick_n_take(possible_symptoms)
if(chosen_symptom)
var/datum/symptom/S = new chosen_symptom
symptoms += S
Refresh()
/datum/disease/advance/voice_change/New() name = "Sample #[rand(1,10000)]"
name = "Epiglottis Mutation"
symptoms = list(new/datum/symptom/voice_change)
..()
// Toxin Filter
/datum/disease/advance/heal/New()
name = "Liver Enhancer"
symptoms = list(new/datum/symptom/heal)
..()
// Hallucigen
/datum/disease/advance/hallucigen/New()
name = "Second Sight"
symptoms = list(new/datum/symptom/hallucigen)
..()
// Sensory Restoration
/datum/disease/advance/mind_restoration/New()
name = "Intelligence Booster"
symptoms = list(new/datum/symptom/mind_restoration)
..()
// Sensory Destruction
/datum/disease/advance/narcolepsy/New()
name = "Experimental Insomnia Cure"
symptoms = list(new/datum/symptom/narcolepsy)
..()

View File

@@ -1123,18 +1123,19 @@
/datum/supply_pack/medical/virus /datum/supply_pack/medical/virus
name = "Virus Crate" name = "Virus Crate"
desc = "Contains twelve different bottles, each filled with a different chemical compound, each useful for virology. Also includes seven beakers and syringes. Balled-up jeans not included. Requires CMO access to open." desc = "Contains twelve different bottles, containing several viral samples for virology research. Also includes seven beakers and syringes. Balled-up jeans not included. Requires CMO access to open."
cost = 2500 cost = 2500
access = ACCESS_CMO access = ACCESS_CMO
contains = list(/obj/item/reagent_containers/glass/bottle/flu_virion, contains = list(/obj/item/reagent_containers/glass/bottle/flu_virion,
/obj/item/reagent_containers/glass/bottle/cold, /obj/item/reagent_containers/glass/bottle/cold,
/obj/item/reagent_containers/glass/bottle/epiglottis_virion, /obj/item/reagent_containers/glass/bottle/random_virus,
/obj/item/reagent_containers/glass/bottle/liver_enhance_virion, /obj/item/reagent_containers/glass/bottle/random_virus,
/obj/item/reagent_containers/glass/bottle/random_virus,
/obj/item/reagent_containers/glass/bottle/random_virus,
/obj/item/reagent_containers/glass/bottle/fake_gbs, /obj/item/reagent_containers/glass/bottle/fake_gbs,
/obj/item/reagent_containers/glass/bottle/magnitis, /obj/item/reagent_containers/glass/bottle/magnitis,
/obj/item/reagent_containers/glass/bottle/pierrot_throat, /obj/item/reagent_containers/glass/bottle/pierrot_throat,
/obj/item/reagent_containers/glass/bottle/brainrot, /obj/item/reagent_containers/glass/bottle/brainrot,
/obj/item/reagent_containers/glass/bottle/hallucigen_virion,
/obj/item/reagent_containers/glass/bottle/anxiety, /obj/item/reagent_containers/glass/bottle/anxiety,
/obj/item/reagent_containers/glass/bottle/beesease, /obj/item/reagent_containers/glass/bottle/beesease,
/obj/item/storage/box/syringes, /obj/item/storage/box/syringes,

View File

@@ -61,7 +61,7 @@
else else
D = new virus_type() D = new virus_type()
else else
D = make_virus(max_severity, max_severity) D = new /datum/disease/advance/random(max_severity, max_severity)
D.carrier = TRUE D.carrier = TRUE
H.ForceContractDisease(D, FALSE, TRUE) H.ForceContractDisease(D, FALSE, TRUE)
@@ -73,23 +73,3 @@
message_admins("An event has triggered a random advanced virus outbreak on [ADMIN_LOOKUPFLW(H)]! It has these symptoms: [english_list(name_symptoms)]") message_admins("An event has triggered a random advanced virus outbreak on [ADMIN_LOOKUPFLW(H)]! It has these symptoms: [english_list(name_symptoms)]")
log_game("An event has triggered a random advanced virus outbreak on [key_name(H)]! It has these symptoms: [english_list(name_symptoms)]") log_game("An event has triggered a random advanced virus outbreak on [key_name(H)]! It has these symptoms: [english_list(name_symptoms)]")
break break
/datum/round_event/disease_outbreak/proc/make_virus(max_symptoms, max_level)
if(max_symptoms > VIRUS_SYMPTOM_LIMIT)
max_symptoms = VIRUS_SYMPTOM_LIMIT
var/datum/disease/advance/A = new /datum/disease/advance()
var/list/datum/symptom/possible_symptoms = list()
for(var/symptom in subtypesof(/datum/symptom))
var/datum/symptom/S = symptom
if(initial(S.level) > max_level)
continue
if(initial(S.level) <= 0) //unobtainable symptoms
continue
possible_symptoms += S
for(var/i in 1 to max_symptoms)
var/datum/symptom/chosen_symptom = pick_n_take(possible_symptoms)
if(chosen_symptom)
var/datum/symptom/S = new chosen_symptom
A.symptoms += S
A.Refresh() //just in case someone already made and named the same disease
return A

View File

@@ -226,25 +226,10 @@
desc = "A small bottle of Romerol. The REAL zombie powder." desc = "A small bottle of Romerol. The REAL zombie powder."
list_reagents = list("romerol" = 30) list_reagents = list("romerol" = 30)
/obj/item/reagent_containers/glass/bottle/flu_virion /obj/item/reagent_containers/glass/bottle/random_virus
name = "Flu virion culture bottle" name = "Experimental disease culture bottle"
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium." desc = "A small bottle. Contains an untested viral culture in synthblood medium."
spawned_disease = /datum/disease/advance/flu spawned_disease = /datum/disease/advance/random
/obj/item/reagent_containers/glass/bottle/epiglottis_virion
name = "Epiglottis virion culture bottle"
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
spawned_disease = /datum/disease/advance/voice_change
/obj/item/reagent_containers/glass/bottle/liver_enhance_virion
name = "Liver enhancement virion culture bottle"
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
spawned_disease = /datum/disease/advance/heal
/obj/item/reagent_containers/glass/bottle/hallucigen_virion
name = "Hallucigen virion culture bottle"
desc = "A small bottle. Contains hallucigen virion culture in synthblood medium."
spawned_disease = /datum/disease/advance/hallucigen
/obj/item/reagent_containers/glass/bottle/pierrot_throat /obj/item/reagent_containers/glass/bottle/pierrot_throat
name = "Pierrot's Throat culture bottle" name = "Pierrot's Throat culture bottle"
@@ -256,6 +241,11 @@
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium." desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
spawned_disease = /datum/disease/advance/cold spawned_disease = /datum/disease/advance/cold
/obj/item/reagent_containers/glass/bottle/flu_virion
name = "Flu virion culture bottle"
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
spawned_disease = /datum/disease/advance/flu
/obj/item/reagent_containers/glass/bottle/retrovirus /obj/item/reagent_containers/glass/bottle/retrovirus
name = "Retrovirus culture bottle" name = "Retrovirus culture bottle"
desc = "A small bottle. Contains a retrovirus culture in a synthblood medium." desc = "A small bottle. Contains a retrovirus culture in a synthblood medium."