[MIRROR] Viruses now spawn with random names (#11082)

Co-authored-by: Guti <32563288+TheCaramelion@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-06-18 00:41:14 -07:00
committed by GitHub
parent c7034ef30c
commit f9734b9232
49 changed files with 249 additions and 11 deletions

View File

@@ -17,7 +17,7 @@ GLOBAL_LIST_INIT(advance_cures, list(
)) ))
/datum/disease/advance /datum/disease/advance
name = "Unknown" name = DEVELOPER_WARNING_NAME
desc = "An engineered disease which can contain a multitude of symptoms." desc = "An engineered disease which can contain a multitude of symptoms."
form = "Advance Disease" form = "Advance Disease"
agent = "advance microbes" agent = "advance microbes"
@@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(advance_cures, list(
else else
var/datum/disease/advance/A = GLOB.archive_diseases[GetDiseaseID()] var/datum/disease/advance/A = GLOB.archive_diseases[GetDiseaseID()]
var/actual_name = A.name var/actual_name = A.name
if(actual_name != "Unknown") if(actual_name != DEVELOPER_WARNING_NAME)
name = actual_name name = actual_name
@@ -266,8 +266,10 @@ GLOBAL_LIST_INIT(advance_cures, list(
severity = DISEASE_HARMFUL severity = DISEASE_HARMFUL
if(4) if(4)
severity = DISEASE_DANGEROUS severity = DISEASE_DANGEROUS
if(5 to INFINITY) if(5)
severity = DISEASE_BIOHAZARD severity = DISEASE_BIOHAZARD
if(6 to INFINITY)
severity = DISEASE_PANDEMIC
else else
severity = "Unknown" severity = "Unknown"
@@ -477,3 +479,103 @@ GLOBAL_LIST_INIT(advance_cures, list(
GLOB.active_diseases += A GLOB.active_diseases += A
log_admin("[key_name(src)] has contracted the virus \"[A]\"") log_admin("[key_name(src)] has contracted the virus \"[A]\"")
/*
* Generates a random name for a disease, depending on where it comes from
*/
/datum/disease/advance/proc/random_disease_name(var/atom/diseasesource)
if(length(symptoms) == 1)
var/datum/symptom/main_symptom = symptoms[1]
if(istype(main_symptom) && length(main_symptom.name))
return main_symptom.name
// Prefixes. These need a space right after.
var/list/prefixes = list("Spacer's ", "Space ", "Infectious ","Viral ", "The ", "[capitalize(prob(50) ? pick(first_names_male) : pick(first_names_female))]'s ", "[capitalize(pick(last_names))]'s ", "Acute ")
var/list/bodies = list(pick("[capitalize(prob(50) ? pick(first_names_male) : pick(first_names_female))]", "[pick(last_names)]"), "Space", "Disease", "Noun", "Cold", "Germ", "Virus")
// These might need some space before the word, depends on what you want to add.
var/list/suffixes = list("ism", "itis", "osis", "itosis", " #[rand(1,10000)]", "-[rand(1,100)]", "s", "y", " Virus", " Bug", " Infection", " Disease", " Complex", " Syndrome", " Sickness")
if(stealth >=2)
prefixes += "Crypto "
switch(max(resistance - (symptoms.len / 2), 1))
if(1)
suffixes += "-alpha"
if(2)
suffixes += "-beta"
if(3)
suffixes += "-gamma"
if(4)
suffixes += "-delta"
if(5)
suffixes += "-epsilon"
if(6)
suffixes += pick("-zeta", "-eta", "-theta", "-iota")
if(7)
suffixes += pick("-kappa", "-lambda")
if(8)
suffixes += pick("-mu", "-nu", "-xi", "-omicron")
if(9)
suffixes += pick("-pi", "-rho", "-sigma", "-tau")
if(10)
suffixes += pick("-upsilon", "-phi", "-chi", "-psi")
if(11 to INFINITY)
suffixes += "-omega"
prefixes += "Robust "
switch(transmission - symptoms.len)
if(-INFINITY to 2)
prefixes += "Bloodborne "
if(3)
prefixes += list("Mucous ", "Kissing ")
if(4)
prefixes += "Contact "
suffixes += " Flu"
if(5 to INFINITY)
prefixes += "Airborne "
suffixes += " Plague"
switch(severity)
if(-INFINITY to 0)
prefixes += "Altruistic "
if(1 to 2)
prefixes += "Benign "
if(3 to 4)
prefixes += "Malignant "
if(5)
prefixes += "Deadly "
bodies += "Death"
if(6 to INFINITY)
prefixes += "Morbid "
bodies += "Death"
if(diseasesource)
if(ishuman(diseasesource))
var/mob/living/carbon/human/H = diseasesource
prefixes += pick("[H.name]'s ", "[H.job]'s ", "[H.get_species()]'s ")
bodies += pick("[H.name]", "[H.job]", "[H.get_species()]")
if(H.get_species() == SPECIES_UNATHI || H.get_species() == SPECIES_TAJARAN)
prefixes += list("Vermin ", "Zoo", "Maintenance ")
bodies += list("Rat", "Maint")
if(ismouse(diseasesource) && !istype(diseasesource, /mob/living/simple_mob/animal/passive/mouse/white/virology))
prefixes += list("Vermin ", "Zoo", "Maintenance ")
bodies += list("Rat", "Maint")
else switch(diseasesource.type)
if(/mob/living/simple_mob/animal/passive/mouse/white/virology)
prefixes += list("Fleming's ", "Standard ")
bodies += list("Freebie")
if(/obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/vomit/old)
prefixes += list("Bloody ", "Maintenance ")
bodies += list("Maint")
if(/obj/item/reagent_containers/syringe/old)
prefixes += list("Junkie ", "Maintenance ")
bodies += list("Needle", "Maint")
for(var/datum/symptom/S in symptoms)
if(!S.neutered)
prefixes += S.prefixes
bodies += S.bodies
suffixes += S.suffixes
switch(rand(1, 3))
if(1)
return "[pick(prefixes)][pick(bodies)]"
if(2)
return "[pick(prefixes)][pick(bodies)][pick(suffixes)]"
if(3)
return "[pick(bodies)][pick(suffixes)]"

View File

@@ -6,7 +6,7 @@
/datum/disease/advance/random/minor /datum/disease/advance/random/minor
max_symptoms_override = 4 max_symptoms_override = 4
/datum/disease/advance/random/New(max_symptoms, max_level = 6, min_level = 1, list/guaranteed_symptoms = setsymptom) /datum/disease/advance/random/New(max_symptoms, max_level = 6, min_level = 1, list/guaranteed_symptoms = setsymptom, var/atom/infected)
if(!max_symptoms) if(!max_symptoms)
max_symptoms = (2 + rand(1, (VIRUS_SYMPTOM_LIMIT - 2))) max_symptoms = (2 + rand(1, (VIRUS_SYMPTOM_LIMIT - 2)))
if(max_symptoms_override) if(max_symptoms_override)
@@ -35,6 +35,11 @@
symptoms += new guaranteed_symptom symptoms += new guaranteed_symptom
Finalize() Finalize()
if(randomname)
var/randname = random_disease_name(infected)
AssignName(randname)
name = randname
/mob/living/carbon/human/proc/give_random_dormant_disease(biohazard = 25, min_symptoms = 2, max_symptoms = 4, min_level = 4, max_level = 9, list/guaranteed_symptoms = list()) /mob/living/carbon/human/proc/give_random_dormant_disease(biohazard = 25, min_symptoms = 2, max_symptoms = 4, min_level = 4, max_level = 9, list/guaranteed_symptoms = list())
. = FALSE . = FALSE
var/sickrisk = 1 var/sickrisk = 1
@@ -53,7 +58,7 @@
if(prob(min(100, (biohazard * sickrisk)))) if(prob(min(100, (biohazard * sickrisk))))
var/symptom_amt = rand(min_symptoms, max_symptoms) var/symptom_amt = rand(min_symptoms, max_symptoms)
var/datum/disease/advance/dormant_disease = new /datum/disease/advance/random(symptom_amt, max_level, min_level, guaranteed_symptoms) var/datum/disease/advance/dormant_disease = new /datum/disease/advance/random(symptom_amt, max_level, min_level, guaranteed_symptoms, infected = src)
dormant_disease.virus_modifiers |= DORMANT dormant_disease.virus_modifiers |= DORMANT
dormant_disease.spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS dormant_disease.spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
dormant_disease.spread_text = "None" dormant_disease.spread_text = "None"

View File

@@ -37,6 +37,9 @@ BONUS
var/strong_blob var/strong_blob
var/node_blob var/node_blob
prefixes = list("Xeno", "Sporing ")
bodies = list("Blob")
/datum/symptom/blobspores/severityset(datum/disease/advance/A) /datum/symptom/blobspores/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.resistance >= 14) if(A.resistance >= 14)

View File

@@ -35,6 +35,9 @@ Bonus
"Transmission 8" = "Doubles the damage caused by the symptom." "Transmission 8" = "Doubles the damage caused by the symptom."
) )
bodies = list("Lung")
suffixes = list(" Tuberculosis")
/datum/symptom/choking/severityset(datum/disease/advance/A) /datum/symptom/choking/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.transmission >= 8) if(A.transmission >= 8)

View File

@@ -17,6 +17,9 @@
"Transmission 8" = "When the host dies, more roaches spawn." "Transmission 8" = "When the host dies, more roaches spawn."
) )
prefixes = list("Blatto")
bodies = list("Roach")
/datum/symptom/cockroach/Start(datum/disease/advance/A) /datum/symptom/cockroach/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -33,6 +33,9 @@ Bonus
"Stealth 4" = "The symptom remains hidden until active." "Stealth 4" = "The symptom remains hidden until active."
) )
prefixes = list("Dizzy ")
bodies = list("Ditz")
/datum/symptom/confusion/severityset(datum/disease/advance/A) /datum/symptom/confusion/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.resistance >= 6) if(A.resistance >= 6)

View File

@@ -38,6 +38,8 @@ BONUS
"Transmission 11" = "The hosts coughing will occasionally spread the virus." "Transmission 11" = "The hosts coughing will occasionally spread the virus."
) )
bodies = list("Cough")
/datum/symptom/cough/severityset(datum/disease/advance/A) /datum/symptom/cough/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.resistance >= 3) if(A.resistance >= 3)

View File

@@ -33,6 +33,9 @@ Bonus
"Stealth 4" = "The symptom remains hidden until active." "Stealth 4" = "The symptom remains hidden until active."
) )
prefixes = list("Aural ")
bodies = list("Ear")
/datum/symptom/deafness/severityset(datum/disease/advance/A) /datum/symptom/deafness/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.resistance >= 9) if(A.resistance >= 9)

View File

@@ -35,12 +35,17 @@ Bonus
"Resistance 10" = "Further increases fever intensity." "Resistance 10" = "Further increases fever intensity."
) )
bodies = list("Fever")
suffixes = list(" Fever")
/datum/symptom/fever/severityset(datum/disease/advance/A) /datum/symptom/fever/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.resistance >= 5) if(A.resistance >= 5)
severity += 1 severity += 1
prefixes = list("Desert")
if(A.resistance >= 10) if(A.resistance >= 10)
severity += 1 severity += 1
prefixes = list("Volcanic")
/datum/symptom/fever/Start(datum/disease/advance/A) /datum/symptom/fever/Start(datum/disease/advance/A)
if(!..()) if(!..())

View File

@@ -38,6 +38,10 @@ Bonus
"Stealth 4" = "The symptom remains hidden until active." "Stealth 4" = "The symptom remains hidden until active."
) )
prefixes = list("Burning ")
bodies = list("Combustion")
suffixes = list(" Combustion")
/datum/symptom/fire/Start(datum/disease/advance/A) /datum/symptom/fire/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -36,6 +36,9 @@ Bonus
"Transmission 8" = "The host will bleed far more violently, loosing even more blood, and spraying infected blood everywhere." "Transmission 8" = "The host will bleed far more violently, loosing even more blood, and spraying infected blood everywhere."
) )
prefixes = list("Bloody ", "Hemo")
bodies = list("Hemophilia")
/datum/symptom/flesh_eating/Start(datum/disease/advance/A) /datum/symptom/flesh_eating/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -27,6 +27,9 @@ BONUS
level = 1 level = 1
severity = 0 severity = 0
prefixes = list("Acrobat's ", "Flippin' ")
bodies = list("Flip")
/datum/symptom/flip/Activate(datum/disease/advance/A) /datum/symptom/flip/Activate(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -28,6 +28,8 @@ BONUS
symptom_delay_min = 45 symptom_delay_min = 45
symptom_delay_max = 90 symptom_delay_max = 90
bodies = list("Bald", "Scalp")
/datum/symptom/shedding/Activate(datum/disease/advance/A) /datum/symptom/shedding/Activate(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -30,6 +30,9 @@ Bonus
var/fake_healthy = FALSE var/fake_healthy = FALSE
prefixes = list("Narcotic ", "Narco", "Psycho-")
suffixes = list(" Psychosis")
threshold_descs = list( threshold_descs = list(
"Stage Speed 7" = "Increases the amount of hallucinations.", "Stage Speed 7" = "Increases the amount of hallucinations.",
"Stealth 2" = "The virus mimics positive symptoms" "Stealth 2" = "The virus mimics positive symptoms"

View File

@@ -34,6 +34,8 @@ BONUS
"Stealth 4" = "Reduces headache frequency until later stages." "Stealth 4" = "Reduces headache frequency until later stages."
) )
bodies = list("Skull", "Migraine")
/datum/symptom/headache/severityset(datum/disease/advance/A) /datum/symptom/headache/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.stage_rate >= 6) if(A.stage_rate >= 6)

View File

@@ -58,6 +58,8 @@
"Stage Speed 6" = "Consumed chemicals nourish the host." "Stage Speed 6" = "Consumed chemicals nourish the host."
) )
prefixes = list("Toxo")
/datum/symptom/heal/chem/Start(datum/disease/advance/A) /datum/symptom/heal/chem/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return
@@ -98,6 +100,9 @@
"Stage Speed 12" = "The disease heals brute damage incredibly fast, but deteriorates cell health and causes tumors to become more advanced. The disease will also regenerate lost limbs." "Stage Speed 12" = "The disease heals brute damage incredibly fast, but deteriorates cell health and causes tumors to become more advanced. The disease will also regenerate lost limbs."
) )
prefixes = list("Blood ", "Meat ", "Flesh ")
bodies = list("Giant")
/datum/symptom/growth/Start(datum/disease/advance/A) /datum/symptom/growth/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return
@@ -165,6 +170,9 @@
"Stage Speed 10" = "Chemical metabolization is tripled instead of doubled." "Stage Speed 10" = "Chemical metabolization is tripled instead of doubled."
) )
prefixes = list("Metabolic ", "Junkie's ", "Chemical ")
bodies = list("Hunger")
/datum/symptom/heal/metabolism/Start(datum/disease/advance/A) /datum/symptom/heal/metabolism/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -34,6 +34,9 @@ BONUS
"Stage Speed 7" = "The host will scratch itself when itchin, causing superficial damage." "Stage Speed 7" = "The host will scratch itself when itchin, causing superficial damage."
) )
prefixes = list("Irritant ")
bodies = list("Itch")
/datum/symptom/itching/Start(datum/disease/advance/A) /datum/symptom/itching/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -33,6 +33,9 @@ Bonus
"Resistance 5" = "The host might end up speaking a completely made up language." "Resistance 5" = "The host might end up speaking a completely made up language."
) )
prefixes = list("Babel's ", "Tongue-Twisting ")
bodies = list("Tongue", "Language")
/datum/symptom/language/Start(datum/disease/advance/A) /datum/symptom/language/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -12,6 +12,9 @@
"Stealth 3" = "The virus causes a wider disparity between light and dark." "Stealth 3" = "The virus causes a wider disparity between light and dark."
) )
prefixes = list("Photo", "Light ")
bodies = list("Cramp")
/datum/symptom/light/severityset(datum/disease/advance/A) /datum/symptom/light/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.stealth >= 3) if(A.stealth >= 3)

View File

@@ -38,6 +38,9 @@ BONUS
"Transmission 12" = "Phages will carry all diseases within the host, instead of only containing their own." "Transmission 12" = "Phages will carry all diseases within the host, instead of only containing their own."
) )
prefixes = list("Ambulant ", "Macro")
bodies = list("Phage")
/datum/symptom/macrophage/severityset(datum/disease/advance/A) /datum/symptom/macrophage/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.transmission >= 10) if(A.transmission >= 10)

View File

@@ -32,6 +32,9 @@ BONUS
"Transmission 8" = "The host will spread the virus through saliva when mlemming." "Transmission 8" = "The host will spread the virus through saliva when mlemming."
) )
prefixes = list("Mlemington's ", "Licking-")
bodies = list("Mlem", "Lick")
/datum/symptom/mlem/severityset(datum/disease/advance/A) /datum/symptom/mlem/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.transmission >= 8) if(A.transmission >= 8)

View File

@@ -13,6 +13,9 @@
"Speed 8" = "Host takes radiation damage faster." "Speed 8" = "Host takes radiation damage faster."
) )
prefixes = list("Gamma ")
bodies = list("Radiation")
/datum/symptom/radiation/severityset(datum/disease/advance/A) /datum/symptom/radiation/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.stage_rate >= 8) if(A.stage_rate >= 8)
@@ -65,6 +68,8 @@
"Resistance 12" = "The disease also kills off genetically damaged cells, coverting Genetic damage to Burn damage, an inefficient rate." "Resistance 12" = "The disease also kills off genetically damaged cells, coverting Genetic damage to Burn damage, an inefficient rate."
) )
suffixes = list(" Aptosis")
/datum/symptom/radconversion/severityset(datum/disease/advance/A) /datum/symptom/radconversion/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.stage_rate >= 6) if(A.stage_rate >= 6)

View File

@@ -34,6 +34,9 @@ Bonus
"Stage Speed 10" = "Further increases cooling speed." "Stage Speed 10" = "Further increases cooling speed."
) )
bodies = list("Shiver")
suffixes = list(" Shivers")
/datum/symptom/shivering/severityset(datum/disease/advance/A) /datum/symptom/shivering/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.stage_rate >= 5) if(A.stage_rate >= 5)

View File

@@ -43,7 +43,11 @@ BONUS
min_size = RESIZE_NORMAL min_size = RESIZE_NORMAL
max_size = RESIZE_MAXIMUM max_size = RESIZE_MAXIMUM
prefixes = list("Growing ", "Gigantic ")
/datum/symptom/size/shrink /datum/symptom/size/shrink
name = "Dwindling Malady" name = "Dwindling Malady"
min_size = RESIZE_MINIMUM min_size = RESIZE_MINIMUM
max_size = RESIZE_NORMAL max_size = RESIZE_NORMAL
prefixes = list("Shrinking ", "Micro-")

View File

@@ -35,6 +35,9 @@ Bonus
"Trasmission 12" = "The host may spread the disease through sneezing." "Trasmission 12" = "The host may spread the disease through sneezing."
) )
prefixes = list("Nasal ")
bodies = list("Cold")
/datum/symptom/sneeze/Start(datum/disease/advance/A) /datum/symptom/sneeze/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return
@@ -86,6 +89,9 @@ Bonus
level = 4 level = 4
severity = 3 severity = 3
prefixes = list("Nasal ", "Displacing ")
bodies = list("Cold", "Bluespace")
/datum/symptom/bsneeze/Activate(datum/disease/advance/A) /datum/symptom/bsneeze/Activate(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -31,6 +31,9 @@ BONUS
var/bigspin = FALSE var/bigspin = FALSE
prefixes = list("Spinning ", "Rotatory ")
bodies = list("Rotato")
/datum/symptom/spyndrome/Start(datum/disease/advance/A) /datum/symptom/spyndrome/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -34,12 +34,17 @@ Bonus
"Stage 8" = "The virus causes extreme nervousness and paranoia, resulting in occasional hallucinations, and extreme restlessness, but great overall energy." "Stage 8" = "The virus causes extreme nervousness and paranoia, resulting in occasional hallucinations, and extreme restlessness, but great overall energy."
) )
prefixes = list("Gray ", "Amped ", "Nervous ")
bodies = list("Hyper")
/datum/symptom/stimulant/severityset(datum/disease/advance/A) /datum/symptom/stimulant/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.resistance >= 8) if(A.resistance >= 8)
severity -= 1 severity -= 1
if(A.stage_rate >= 8) if(A.stage_rate >= 8)
severity -= 1 severity -= 1
prefixes = list("Gray ", "Amped ", "Paranoid ")
suffixes = list(" Madness", " Insanity")
/datum/symptom/stimulant/Start(datum/disease/advance/A) /datum/symptom/stimulant/Start(datum/disease/advance/A)
if(!..()) if(!..())

View File

@@ -29,6 +29,10 @@ GLOBAL_LIST_INIT(list_symptoms, subtypesof(/datum/symptom))
var/neutered = FALSE var/neutered = FALSE
var/stopped = FALSE // Used for Viral Suspended Animaton, stops a symptom but doesn't neuter it. var/stopped = FALSE // Used for Viral Suspended Animaton, stops a symptom but doesn't neuter it.
var/list/prefixes = list()
var/list/bodies = list()
var/list/suffixes = list()
/datum/symptom/New() /datum/symptom/New()
var/list/S = GLOB.list_symptoms var/list/S = GLOB.list_symptoms
for(var/i = 1; i <= length(S); i++) for(var/i = 1; i <= length(S); i++)
@@ -53,6 +57,9 @@ GLOBAL_LIST_INIT(list_symptoms, subtypesof(/datum/symptom))
/datum/symptom/proc/severityset(datum/disease/advance/A) /datum/symptom/proc/severityset(datum/disease/advance/A)
severity = initial(severity) severity = initial(severity)
prefixes = initial(prefixes)
bodies = initial(bodies)
suffixes = initial(suffixes)
// Called when the advance disease is going to be deleted or when the advance disease stops processing. // Called when the advance disease is going to be deleted or when the advance disease stops processing.
/datum/symptom/proc/End(datum/disease/advance/A) /datum/symptom/proc/End(datum/disease/advance/A)

View File

@@ -23,6 +23,8 @@ BONUS
level = 4 level = 4
severity = 0 severity = 0
prefixes = list("Chronic ")
/* /*
////////////////////////////////////// //////////////////////////////////////
Viral evolution Viral evolution
@@ -47,6 +49,8 @@ BONUS
transmission = 3 transmission = 3
level = 4 level = 4
prefixes = list("Unstable ")
/datum/symptom/viralpower /datum/symptom/viralpower
name = "Viral Power Multiplier" name = "Viral Power Multiplier"
desc = "The vrus has more powerful symptoms. May have unpredictable effects." desc = "The vrus has more powerful symptoms. May have unpredictable effects."
@@ -116,6 +120,8 @@ BONUS
var/time_to_cure var/time_to_cure
prefixes = list("Spontaneous ")
/datum/symptom/viralreverse/Activate(datum/disease/advance/A) /datum/symptom/viralreverse/Activate(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -35,6 +35,10 @@ Bonus
"Stealth 4" = "The symptom remains hidden until active." "Stealth 4" = "The symptom remains hidden until active."
) )
prefixes = list("Eye ")
bodies = list("Blind")
suffixes = list(" Blindness")
/datum/symptom/visionloss/severityset(datum/disease/advance/A) /datum/symptom/visionloss/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.resistance >= 12) if(A.resistance >= 12)

View File

@@ -37,6 +37,10 @@ Bonus
"Stealth 4" = "The symptom remans hidden until active." "Stealth 4" = "The symptom remans hidden until active."
) )
prefixes = list("Digestive ")
bodies = list("Vomit")
suffixes = list(" Emission")
/datum/symptom/vomit/Start(datum/disease/advance/A) /datum/symptom/vomit/Start(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -26,6 +26,8 @@ Bonus
level = 3 level = 3
severity = 3 severity = 3
prefixes = list("Weakening ", "Weak's ")
/datum/symptom/weakness/Activate(datum/disease/advance/A) /datum/symptom/weakness/Activate(datum/disease/advance/A)
..() ..()
if(prob(SYMPTOM_ACTIVATION_PROB)) if(prob(SYMPTOM_ACTIVATION_PROB))

View File

@@ -35,6 +35,8 @@ Bonus
"Stealth 2" = "The symptom is less noticeable, and does not cause starvation." "Stealth 2" = "The symptom is less noticeable, and does not cause starvation."
) )
prefixes = list("Hungry ")
/datum/symptom/weight_loss/severityset(datum/disease/advance/A) /datum/symptom/weight_loss/severityset(datum/disease/advance/A)
. = ..() . = ..()
if(A.stealth >= 2) if(A.stealth >= 2)

View File

@@ -11,6 +11,9 @@
symptom_delay_min = 25 SECONDS symptom_delay_min = 25 SECONDS
symptom_delay_max = 50 SECONDS symptom_delay_max = 50 SECONDS
prefixes = list("Eternal ")
bodies = list("Immortal", "Elixir")
/datum/symptom/youth/Activate(datum/disease/advance/A) /datum/symptom/youth/Activate(datum/disease/advance/A)
if(!..()) if(!..())
return return

View File

@@ -1,5 +1,6 @@
/datum/disease/anxiety /datum/disease/anxiety
name = "Severe Anxiety" name = "Severe Anxiety"
medical_name = "Lepidopteric Hyperemesis"
form = "Infection" form = "Infection"
max_stages = 4 max_stages = 4
spread_text = "On contact" spread_text = "On contact"

View File

@@ -1,6 +1,7 @@
/datum/disease/appendicitis /datum/disease/appendicitis
form = "Condition" form = "Condition"
name = "Appendicitis" name = "Appendicitis"
medical_name = "Appendicitis"
max_stages = 3 max_stages = 3
spread_text = "Non-contagious" spread_text = "Non-contagious"
disease_flags = CAN_CARRY|CAN_RESIST|CAN_NOT_POPULATE disease_flags = CAN_CARRY|CAN_RESIST|CAN_NOT_POPULATE

View File

@@ -1,5 +1,6 @@
/datum/disease/beesease /datum/disease/beesease
name = "Beesease" name = "Beesease"
medical_name = "Apidaemia"
form = "Infection" form = "Infection"
max_stages = 4 max_stages = 4
spread_text = "On contact" spread_text = "On contact"

View File

@@ -1,5 +1,6 @@
/datum/disease/brainrot /datum/disease/brainrot
name = "Brainrot" name = "Brainrot"
medical_name = "Encephalonecrosis"
max_stages = 4 max_stages = 4
spread_text = "On contact" spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS | DISEASE_SPREAD_CONTACT spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS | DISEASE_SPREAD_CONTACT
@@ -8,7 +9,7 @@
agent = "Cryptococcus Cosmosis" agent = "Cryptococcus Cosmosis"
viable_mobtypes = list(/mob/living/carbon/human) viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 15 cure_chance = 15
desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication." desc = "Destroys the braincells, causing brain fever, brain necrosis and general intoxication."
required_organs = list(/obj/item/organ/internal/brain) required_organs = list(/obj/item/organ/internal/brain)
danger = DISEASE_HARMFUL danger = DISEASE_HARMFUL

View File

@@ -1,5 +1,6 @@
/datum/disease/choreomania /datum/disease/choreomania
name = "Choreomania" name = "Choreomania"
medical_name = "Choreatic Hyperkinesia"
max_stages = 3 max_stages = 3
spread_text = "Airborne" spread_text = "Airborne"
spread_flags = DISEASE_SPREAD_AIRBORNE | DISEASE_SPREAD_CONTACT | DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS spread_flags = DISEASE_SPREAD_AIRBORNE | DISEASE_SPREAD_CONTACT | DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS

View File

@@ -1,5 +1,6 @@
/datum/disease/cold /datum/disease/cold
name = "The Cold" name = "The Cold"
medical_name = "Common Cold"
max_stages = 3 max_stages = 3
spread_text = "Airborne" spread_text = "Airborne"
spread_flags = DISEASE_SPREAD_AIRBORNE spread_flags = DISEASE_SPREAD_AIRBORNE

View File

@@ -1,5 +1,6 @@
/datum/disease/fake_gbs /datum/disease/fake_gbs
name = "GBS" name = "GBS"
medical_name = "Neutered Guillain-Barré Syndrome"
max_stages = 5 max_stages = 5
spread_text = "On contact" spread_text = "On contact"
spread_flags = DISEASE_SPREAD_CONTACT | DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS spread_flags = DISEASE_SPREAD_CONTACT | DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS
@@ -7,7 +8,7 @@
cures = list(REAGENT_ID_ADRANOL, REAGENT_ID_SULFUR) cures = list(REAGENT_ID_ADRANOL, REAGENT_ID_SULFUR)
agent = "Gravitokinetic Bipotential SADS-" agent = "Gravitokinetic Bipotential SADS-"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey) viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
desc = "if left untreated death will occur." desc = "If left untreated death will occur."
danger = DISEASE_BIOHAZARD // Mimics real GBS danger = DISEASE_BIOHAZARD // Mimics real GBS
/datum/disease/fake_gbs/stage_act() /datum/disease/fake_gbs/stage_act()

View File

@@ -1,5 +1,6 @@
/datum/disease/flu /datum/disease/flu
name = "The Flu" name = "The Flu"
medical_name = "Influenza"
max_stages = 3 max_stages = 3
spread_text = "Airborne" spread_text = "Airborne"
cure_text = REAGENT_SPACEACILLIN cure_text = REAGENT_SPACEACILLIN

View File

@@ -1,5 +1,6 @@
/datum/disease/food_poisoning /datum/disease/food_poisoning
name = "Food Poisoning" name = "Food Poisoning"
medical_name = "Gastroenteritis"
max_stages = 3 max_stages = 3
stage_prob = 5 stage_prob = 5
spread_text = "Non-Contagious" spread_text = "Non-Contagious"

View File

@@ -1,5 +1,7 @@
/datum/disease/gbs /datum/disease/gbs
name = "GBS" name = "GBS"
medical_name = "Guillain-Barré Syndrome"
desc = "If left untreated death will occur."
max_stages = 5 max_stages = 5
spread_text = "On contact" spread_text = "On contact"
spread_flags = DISEASE_SPREAD_CONTACT | DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS spread_flags = DISEASE_SPREAD_CONTACT | DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_FLUIDS
@@ -40,6 +42,8 @@
/datum/disease/gbs/curable /datum/disease/gbs/curable
name = "Non-Contagious GBS" name = "Non-Contagious GBS"
medical_name = "Non-Contagious Guillain-Barré Syndrome"
desc = "If left untreated death will occur."
stage_prob = 5 stage_prob = 5
spread_text = "Non-contagious" spread_text = "Non-contagious"
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS

View File

@@ -1,5 +1,6 @@
/datum/disease/lycan /datum/disease/lycan
name = "Lycancoughy" name = "Lycancoughy"
medical_name = "Lycanthropic Hyperemesis"
form = "Infection" form = "Infection"
max_stages = 4 max_stages = 4
spread_text = "On contact" spread_text = "On contact"

View File

@@ -1,5 +1,6 @@
/datum/disease/magnitis /datum/disease/magnitis
name = "Magnitis" name = "Magnitis"
medical_name = "Acquired Magnetotaxis Disorder"
max_stages = 4 max_stages = 4
spread_text = "Airbone" spread_text = "Airbone"
cure_text = REAGENT_IRON cure_text = REAGENT_IRON

View File

@@ -270,7 +270,7 @@ var/global/list/image/splatter_cache=list()
//This version should be used for admin spawns and pre-mapped virus vectors (e.g. in PoIs), this version does not dry //This version should be used for admin spawns and pre-mapped virus vectors (e.g. in PoIs), this version does not dry
/obj/effect/decal/cleanable/mucus/mapped/Initialize(mapload) /obj/effect/decal/cleanable/mucus/mapped/Initialize(mapload)
. = ..() . = ..()
viruses |= new /datum/disease/advance viruses |= new /datum/disease/advance/random(rand(3, 6), 9, 4, infected = src)
/obj/effect/decal/cleanable/mucus/mapped/Destroy() /obj/effect/decal/cleanable/mucus/mapped/Destroy()
viruses.Cut() viruses.Cut()

View File

@@ -98,7 +98,7 @@
if(prob(40)) if(prob(40))
LAZYINITLIST(rat_diseases) LAZYINITLIST(rat_diseases)
rat_diseases += new /datum/disease/advance/random(rand(1, 5), 9, 1) rat_diseases += new /datum/disease/advance/random(rand(1, 5), 9, 1, infected = src)
/mob/living/simple_mob/animal/passive/mouse/extrapolator_act(mob/living/user, obj/item/extrapolator/extrapolator, dry_run = FALSE) /mob/living/simple_mob/animal/passive/mouse/extrapolator_act(mob/living/user, obj/item/extrapolator/extrapolator, dry_run = FALSE)
. = ..() . = ..()
@@ -246,7 +246,7 @@
..() ..()
name = initial(name) name = initial(name)
desc = initial(desc) desc = initial(desc)
rat_diseases += new /datum/disease/advance/random(2, 2, 1) rat_diseases += new /datum/disease/advance/random(2, 2, 1, infected = src)
/mob/living/simple_mob/animal/passive/mouse/white/virology/Crossed(atom/movable/AM) /mob/living/simple_mob/animal/passive/mouse/white/virology/Crossed(atom/movable/AM)
. = ..() . = ..()

View File

@@ -503,7 +503,7 @@
/obj/item/reagent_containers/syringe/old/Initialize(mapload) /obj/item/reagent_containers/syringe/old/Initialize(mapload)
. = ..() . = ..()
if(prob(75)) if(prob(75))
var/datum/disease/advance/new_disease = new /datum/disease/advance/random(rand(1, 3), rand(7, 9), 2) var/datum/disease/advance/new_disease = new /datum/disease/advance/random(rand(1, 3), rand(7, 9), 2, infected = src)
src.viruses += new_disease src.viruses += new_disease
#undef SYRINGE_DRAW #undef SYRINGE_DRAW