Random Virus Event Overhaul (#5615)

This PR makes it so that random lethal viruses can only occur if there is a virologist to cure them. This PR also makes it so the viruses themselfs don't have completely random effects, but effects that make sense together by adding a new system.
This commit is contained in:
BurgerLUA
2018-12-06 15:00:16 +01:00
committed by Werner
parent 4f4929635f
commit dd950c8659
6 changed files with 234 additions and 55 deletions
+1 -2
View File
@@ -100,7 +100,7 @@
activate(var/mob/living/carbon/mob,var/multiplier)
mob.apply_effect(2*multiplier, IRRADIATE, blocked = 0)
/datum/disease2/effect/deaf
/datum/disease2/effect/deaf_major
name = "Deafness"
stage = 4
badness = 2
@@ -370,7 +370,6 @@
mob << "<span class='warning'>You feel like you are about to sneeze!</span>"
addtimer(CALLBACK(src, .proc/do_sneeze, mob, multiplier), 5)
proc/do_sneeze(mob/living/carbon/mob, multiplier)
if (QDELETED(mob))
return
+150
View File
@@ -0,0 +1,150 @@
/datum/disease2/disease/generated
var/generated_name = "Generated Disease"
var/dangerous = FALSE
uniqueID = 10000
var/list/effect_datums = list()
/datum/disease2/disease/generated/New()
antigen = list(pick(ALL_ANTIGENS))
antigen |= pick(ALL_ANTIGENS)
affected_species = get_infectable_species()
for(var/i=1,i<effect_datums.len,i++)//It's a basic loop because I need the "i" for the stage number.
var/datum/disease2/effect/E = effect_datums[i]
var/datum/disease2/effectholder/H = new /datum/disease2/effectholder
H.stage = i
H.effect = new E
H.effect.generate()
H.chance = rand(0,H.effect.chance_maxm)
H.multiplier = rand(1,H.effect.maxm)
effects += H
..()
/datum/disease2/disease/generated/cold
generated_name = "Spacecold"
spreadtype = "Airborne"
uniqueID = 10001
speed = 5
effect_datums = list(
/datum/disease2/effect/gunck,
/datum/disease2/effect/sneeze,
/datum/disease2/effect/fridge,
/datum/disease2/effect/drowsness
)
/datum/disease2/disease/generated/cough
generated_name = "Moghes Cough"
spreadtype = "Airborne"
uniqueID = 10002
speed = 5
effect_datums = list(
/datum/disease2/effect/headache,
/datum/disease2/effect/cough,
/datum/disease2/effect/groan,
/datum/disease2/effect/drool
)
/datum/disease2/disease/generated/zombie
generated_name = "Cannibal Fever"
dangerous = TRUE
uniqueID = 10003
effect_datums = list(
/datum/disease2/effect/drool,
/datum/disease2/effect/hungry,
/datum/disease2/effect/groan,
/datum/disease2/effect/mind
)
/datum/disease2/disease/generated/madness
generated_name = "Sensory Madness Syndrome"
dangerous = TRUE
uniqueID = 10004
effect_datums = list(
/datum/disease2/effect/headache,
/datum/disease2/effect/blind,
/datum/disease2/effect/hallucinations,
/datum/disease2/effect/deaf_major
)
/datum/disease2/disease/generated/clone
generated_name = "Cloning Tube Disorder"
dangerous = TRUE
uniqueID = 10005
effect_datums = list(
/datum/disease2/effect/twitch,
/datum/disease2/effect/hair,
/datum/disease2/effect/mutation,
/datum/disease2/effect/radian
)
/datum/disease2/disease/generated/hyper
generated_name = "Hormonal Infectious Disease"
dangerous = TRUE
uniqueID = 10006
effect_datums = list(
/datum/disease2/effect/twitch,
/datum/disease2/effect/stimulant,
/datum/disease2/effect/chem_synthesis,
/datum/disease2/effect/killertoxins
)
/datum/disease2/disease/generated/telepathy
generated_name = "Skrell Syndrome"
dangerous = TRUE
uniqueID = 10007
effect_datums = list(
/datum/disease2/effect/headache,
/datum/disease2/effect/hair,
/datum/disease2/effect/telepathic,
/datum/disease2/effect/bones
)
/datum/disease2/disease/generated/laughter
generated_name = "Ligma"
spreadtype = "Airborne"
speed = 10
stageprob = 20
uniqueID = 10011
effect_datums = list(
/datum/disease2/effect/giggle,
/datum/disease2/effect/giggle,
/datum/disease2/effect/giggle,
/datum/disease2/effect/giggle
)
/datum/disease2/disease/generated/dna
generated_name = "DNA Disease"
dangerous = TRUE
uniqueID = 10012
effect_datums = list(
/datum/disease2/effect/twitch,
/datum/disease2/effect/hair,
/datum/disease2/effect/mutation,
/datum/disease2/effect/dna
)
/datum/disease2/disease/generated/fever
generated_name = "Worker's Fever"
uniqueID = 10013
speed = 5
stageprob = 15
effect_datums = list(
/datum/disease2/effect/headache,
/datum/disease2/effect/drowsness,
/datum/disease2/effect/confusion,
/datum/disease2/effect/shakey
)
/datum/disease2/disease/generated/spaceflu
generated_name = "Space Flu"
spreadtype = "Airborne"
dangerous = TRUE
uniqueID = 10014
effect_datums = list(
/datum/disease2/effect/gunck,
/datum/disease2/effect/sneeze,
/datum/disease2/effect/fridge,
/datum/disease2/effect/toxins
)