mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Revert "Revert "[MIRROR] Virus crates now contain randomly generated viruses instead of single-symptom advance presets""
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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)
|
|
||||||
..()
|
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
@@ -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."
|
||||||
|
|||||||
Reference in New Issue
Block a user