Merge pull request #153 from zeskorion/master

[PORT]here you go, bee viro
This commit is contained in:
Dahlular
2020-01-28 12:41:59 -07:00
committed by GitHub
26 changed files with 951 additions and 205 deletions
+2 -1
View File
@@ -160,6 +160,7 @@
// common trait sources
#define TRAIT_GENERIC "generic"
#define EYE_DAMAGE "eye_damage"
#define DISEASE_TRAIT "disease"
#define GENETIC_MUTATION "genetic"
#define OBESITY "obesity"
#define MAGIC_TRAIT "magic"
@@ -205,4 +206,4 @@
#define FLIGHTSUIT_TRAIT "flightsuit"
#define LOCKED_HELMET_TRAIT "locked-helmet"
#define NINJA_SUIT_TRAIT "ninja-suit"
#define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant"
#define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant"
+21
View File
@@ -1130,6 +1130,27 @@ B --><-- A
/proc/get_random_station_turf()
return safepick(get_area_turfs(pick(GLOB.the_station_areas)))
/proc/get_safe_random_station_turf()
for (var/i in 1 to 5)
var/list/L = get_area_turfs(pick(GLOB.the_station_areas))
var/turf/target
while (L.len && !target)
var/I = rand(1, L.len)
var/turf/T = L[I]
if(!T.density)
var/clear = TRUE
for(var/obj/O in T)
if(O.density)
clear = FALSE
break
if(clear)
target = T
if (!target)
L.Cut(I,I+1)
if (target)
return target
/proc/get_closest_atom(type, list, source)
var/closest_atom
+2 -2
View File
@@ -21,7 +21,7 @@
name = "Experimental Disease"
copy_type = /datum/disease/advance
/datum/disease/advance/random/New(max_symptoms, max_level = 8)
/datum/disease/advance/random/New(max_symptoms, max_level = 9)
if(!max_symptoms)
max_symptoms = rand(1, VIRUS_SYMPTOM_LIMIT)
var/list/datum/symptom/possible_symptoms = list()
@@ -39,4 +39,4 @@
symptoms += S
Refresh()
name = "Sample #[rand(1,10000)]"
name = "Sample #[rand(1,10000)]"
@@ -0,0 +1,69 @@
/datum/symptom/beesease
name = "Bee Infestation"
desc = "Causes the host to cough toxin bees and occasionally synthesize toxin."
stealth = -2
resistance = 2
stage_speed = 1
transmittable = 1
level = 9
severity = 5
symptom_delay_min = 5
symptom_delay_max = 20
var/honey = FALSE
var/toxic_bees= FALSE
threshold_desc = "<b>Resistance 14:</b> Host synthesizes honey instead of toxins, bees now sting with honey instead of toxin.<br>\
<b>Transmission 10:</b> Bees now contain a completely random toxin, unless resistance exceeds 14"
/datum/symptom/beesease/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["resistance"] >= 14)
honey = TRUE
if(A.properties["transmittable"] >= 10)
toxic_bees = TRUE
/datum/symptom/beesease/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2)
if(prob(2))
to_chat(M, "<span class='notice'>You taste honey in your mouth.</span>")
if(3)
if(prob(15))
to_chat(M, "<span class='notice'>Your stomach tingles.</span>")
if(prob(15))
if(honey)
to_chat(M, "<span class='notice'>You can't get the taste of honey out of your mouth!.</span>")
M.reagents.add_reagent(/datum/reagent/consumable/honey, 2)
else
to_chat(M, "<span class='danger'>Your stomach stings painfully.</span>")
M.adjustToxLoss(5)
M.updatehealth()
if(4, 5)
if(prob(15))
to_chat(M, "<span class='notice'>Your stomach squirms.</span>")
if(prob(15))
if(honey)
to_chat(M, "<span class='notice'>You can't get the taste of honey out of your mouth!.</span>")
M.reagents.add_reagent_list(list(/datum/reagent/consumable/honey = 5, /datum/reagent/medicine/insulin = 15)) //honey rooooughly equivalent to 1.5u omnizine. due to how honey synthesizes 7.5 sugar per unit, the large amounts of insulin are necessary to prevent hyperglycaemic shock due to the bees
else
to_chat(M, "<span class='danger'>Your stomach stings painfully.</span>")
M.adjustToxLoss(5)
M.updatehealth()
if(prob(10))
M.visible_message("<span class='danger'>[M] buzzes.</span>", \
"<span class='userdanger'>Your stomach buzzes violently!</span>")
if(prob(15))
to_chat(M, "<span class='danger'>You feel something moving in your throat.</span>")
if(prob(10))
M.visible_message("<span class='danger'>[M] coughs up a bee!</span>", \
"<span class='userdanger'>You cough up a bee!</span>")
if(honey)
var/mob/living/simple_animal/hostile/poison/bees/B = new(M.loc)
B.assign_reagent(GLOB.chemical_reagents_list[/datum/reagent/consumable/honey])
else if(toxic_bees)
new /mob/living/simple_animal/hostile/poison/bees/toxin(M.loc)
else
new /mob/living/simple_animal/hostile/poison/bees(M.loc)
@@ -0,0 +1,52 @@
/datum/symptom/braindamage
name = "Neural Decay"
desc = "Causes the host's brain cells to naturally die off, causing severe brain damage."
stealth = 1
resistance = -2
stage_speed = -3
transmittable = -1
level = 8
severity = 5
symptom_delay_min = 15
symptom_delay_max = 60
var/lethal = FALSE
var/moretrauma = FALSE
threshold_desc = "<b>transmission 12:</b> The disease's damage reaches lethal levels.<br>\
<b>Speed 9:</b> Host's brain develops even more traumas than normal."
/datum/symptom/braindamage/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["transmission"] >= 12)
lethal = TRUE
if(A.properties["speed"] >= 9)
moretrauma = TRUE
/datum/symptom/braindamage/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1)
if(prob(10))
to_chat(M, "<span class='notice'>Your head feels strange...</span>")
if(2, 3)
if(prob(10))
to_chat(M, "<span class='danger'>Your brain begins hurting...</span>")
if(4, 5)
if(lethal)
if(prob(35))
A.affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(5,90), 200)
to_chat(M, "<span class='danger'>Your brain hurts immensely!</span>")
else
if(prob(35))
A.affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(5,90), 120)
to_chat(M, "<span class='danger'>Your head hurts immensely!</span>")
if(moretrauma && A.stage == 5)
givetrauma(A, 10)
/datum/symptom/braindamage/proc/givetrauma(datum/disease/advance/A, chance)
if(prob(chance))
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/M = A.affected_mob
M?.gain_trauma(BRAIN_TRAUMA_MILD)
@@ -93,7 +93,7 @@ Bonus
resistance = -0
stage_speed = -1
transmittable = -2
level = 7
level = 9
severity = 6
base_message_chance = 15
symptom_delay_min = 14
@@ -0,0 +1,58 @@
/datum/symptom/cockroach
name = "SBG Syndrome"
desc = "ERROR: BLUESPACE INTERFERENCE RENDERS COMPLETE ANALYSIS IMPOSSIBLE"
stealth = 0
resistance = 3
stage_speed = 3
transmittable = 1
level = 0
severity = 6 //the joke here is that this relatively mundane and harmless symptom, which only spawns cockroaches, seems incredibly frightening
symptom_delay_min = 10
symptom_delay_max = 30
var/death_roaches = FALSE
threshold_desc = "<b>Stage Speed 8:</b> CALCULATIONS FORECAST HEIGHTENED ACTIVITY<br>\
<b>Transmission 8:</b> CALCULATIONS FORECAST BRIEFLY ESCALATED ACTIVITY IMMEDIATELY FOLLOWING CESSATION OF HOST LIFESIGNS<br>"
/datum/symptom/cockroach/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["stage_speed"] >= 8)
symptom_delay_min = 5
symptom_delay_max = 15
if(A.properties["transmittable"] >= 8)
death_roaches = TRUE
/datum/symptom/cockroach/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2)
if(prob(50))
to_chat(M, "<span class='notice'>You feel a tingle under your skin</span>")
if(3)
if(prob(50))
to_chat(M, "<span class='notice'>Your pores feel drafty.</span>")
if(prob(5))
to_chat(M, "<span class='notice'>You feel attuned to the atmosphere</span>")
if(4)
if(prob(50))
to_chat(M, "<span class='notice'>You feel in tune with the station</span>")
if(5)
if(prob(30))
M.visible_message("<span class='danger'>[M] squirms as a cockroach crawls from their pores!</span>", \
"<span class='userdanger'>A cockroach crawls out of your face!!</span>")
new /mob/living/simple_animal/cockroach(M.loc)
if(prob(50))
to_chat(M, "<span class='notice'>You feel something crawling in your pipes!</span>")
/datum/symptom/cockroach/OnDeath(datum/disease/advance/A)
if(!..())
return
if(death_roaches)
var/mob/living/M = A.affected_mob
to_chat(M, "<span class='warning'>Your pores explode into a colony of roaches!</span>")
for(var/i in 1 to rand(1,5))
new /mob/living/simple_animal/cockroach(M.loc)
+14 -12
View File
@@ -67,14 +67,14 @@ Bonus
/datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A)
M.adjust_fire_stacks(1 * power)
M.adjustFireLoss(3 * power)
M.take_overall_damage(burn = 3 * power, required_status = BODYPART_ORGANIC)
if(infective)
A.spread(2)
return 1
/datum/symptom/fire/proc/Firestacks_stage_5(mob/living/M, datum/disease/advance/A)
M.adjust_fire_stacks(3 * power)
M.adjustFireLoss(5 * power)
M.take_overall_damage(burn = 5 * power, required_status = BODYPART_ORGANIC)
if(infective)
A.spread(4)
return 1
@@ -105,7 +105,7 @@ Bonus
resistance = -2
stage_speed = -2
transmittable = -2
level = 7
level = 9
severity = 6
base_message_chance = 100
symptom_delay_min = 30
@@ -137,32 +137,34 @@ Bonus
if(prob(base_message_chance))
to_chat(M, "<span class='warning'>[pick("Your veins boil.", "You feel hot.", "You smell meat cooking.")]</span>")
if(4)
if(M.fire_stacks < 0)
M.visible_message("<span class='warning'>[M]'s sweat sizzles and pops on contact with water!</span>")
explosion(get_turf(M),-1,(-1 + explosion_power),(2 * explosion_power))
Alkali_fire_stage_4(M, A)
M.IgniteMob()
to_chat(M, "<span class='userdanger'>Your sweat bursts into flames!</span>")
M.emote("scream")
if(5)
if(M.fire_stacks < 0)
M.visible_message("<span class='warning'>[M]'s sweat sizzles and pops on contact with water!</span>")
explosion(get_turf(M),-1,(-1 + explosion_power),(2 * explosion_power))
Alkali_fire_stage_5(M, A)
M.IgniteMob()
to_chat(M, "<span class='userdanger'>Your skin erupts into an inferno!</span>")
M.emote("scream")
if(M.fire_stacks < 0)
M.visible_message("<span class='warning'>[M]'s sweat sizzles and pops on contact with water!</span>")
explosion(get_turf(M),0,0,2 * explosion_power)
Alkali_fire_stage_5(M, A)
/datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A)
var/get_stacks = 6 * power
M.adjust_fire_stacks(get_stacks)
M.adjustFireLoss(get_stacks/2)
M.take_overall_damage(burn = get_stacks / 2, required_status = BODYPART_ORGANIC)
if(chems)
M.reagents.add_reagent("clf3", 2 * power)
M.reagents.add_reagent(/datum/reagent/clf3, 2 * power)
return 1
/datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A)
var/get_stacks = 8 * power
M.adjust_fire_stacks(get_stacks)
M.adjustFireLoss(get_stacks)
M.take_overall_damage(burn = get_stacks, required_status = BODYPART_ORGANIC)
if(chems)
M.reagents.add_reagent_list(list("napalm" = 4 * power, "clf3" = 4 * power))
M.reagents.add_reagent_list(list(/datum/reagent/napalm = 4 * power, /datum/reagent/clf3 = 4 * power))
return 1
@@ -1,130 +1,135 @@
/*
//////////////////////////////////////
Necrotizing Fasciitis (AKA Flesh-Eating Disease)
Very very noticable.
Lowers resistance tremendously.
No changes to stage speed.
Decreases transmittablity temrendously.
Fatal Level.
Bonus
Deals brute damage over time.
//////////////////////////////////////
*/
/datum/symptom/flesh_eating
name = "Necrotizing Fasciitis"
desc = "The virus aggressively attacks body cells, necrotizing tissues and organs."
stealth = -3
resistance = -4
stage_speed = 0
transmittable = -4
level = 6
severity = 5
base_message_chance = 50
symptom_delay_min = 15
symptom_delay_max = 60
var/bleed = FALSE
var/pain = FALSE
threshold_desc = "<b>Resistance 7:</b> Host will bleed profusely during necrosis.<br>\
<b>Transmission 8:</b> Causes extreme pain to the host, weakening it."
/datum/symptom/flesh_eating/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["resistance"] >= 7) //extra bleeding
bleed = TRUE
if(A.properties["transmittable"] >= 8) //extra stamina damage
pain = TRUE
/datum/symptom/flesh_eating/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2,3)
if(prob(base_message_chance))
to_chat(M, "<span class='warning'>[pick("You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin.")]</span>")
if(4,5)
to_chat(M, "<span class='userdanger'>[pick("You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS.")]</span>")
Flesheat(M, A)
/datum/symptom/flesh_eating/proc/Flesheat(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(15,25) * power
M.adjustBruteLoss(get_damage)
if(pain)
M.adjustStaminaLoss(get_damage)
if(bleed)
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.bleed_rate += 5 * power
return 1
/*
//////////////////////////////////////
Autophagocytosis (AKA Programmed mass cell death)
Very noticable.
Lowers resistance.
Fast stage speed.
Decreases transmittablity.
Fatal Level.
Bonus
Deals brute damage over time.
//////////////////////////////////////
*/
/datum/symptom/flesh_death
name = "Autophagocytosis Necrosis"
desc = "The virus rapidly consumes infected cells, leading to heavy and widespread damage."
stealth = -2
resistance = -2
stage_speed = 1
transmittable = -2
level = 7
severity = 6
base_message_chance = 50
symptom_delay_min = 3
symptom_delay_max = 6
var/chems = FALSE
var/zombie = FALSE
threshold_desc = "<b>Stage Speed 7:</b> Synthesizes Heparin and Lipolicide inside the host, causing increased bleeding and hunger.<br>\
<b>Stealth 5:</b> The symptom remains hidden until active."
/datum/symptom/flesh_death/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["stealth"] >= 5)
suppress_warning = TRUE
if(A.properties["stage_rate"] >= 7) //bleeding and hunger
chems = TRUE
/datum/symptom/flesh_death/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2,3)
if(prob(base_message_chance) && !suppress_warning)
to_chat(M, "<span class='warning'>[pick("You feel your body break apart.", "Your skin rubs off like dust.")]</span>")
if(4,5)
if(prob(base_message_chance / 2)) //reduce spam
to_chat(M, "<span class='userdanger'>[pick("You feel your muscles weakening.", "Some of your skin detaches itself.", "You feel sandy.")]</span>")
Flesh_death(M, A)
/datum/symptom/flesh_death/proc/Flesh_death(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(6,10)
M.adjustBruteLoss(get_damage)
if(chems)
M.reagents.add_reagent_list(list("heparin" = 2, "lipolicide" = 2))
if(zombie)
M.reagents.add_reagent("romerol", 1)
return 1
/*
//////////////////////////////////////
Necrotizing Fasciitis (AKA Flesh-Eating Disease)
Very very noticable.
Lowers resistance tremendously.
No changes to stage speed.
Decreases transmittablity temrendously.
Fatal Level.
Bonus
Deals brute damage over time.
//////////////////////////////////////
*/
/datum/symptom/flesh_eating
name = "Necrotizing Fasciitis"
desc = "The virus aggressively attacks body cells, necrotizing tissues and organs."
stealth = -3
resistance = -4
stage_speed = 0
transmittable = -4
level = 6
severity = 5
base_message_chance = 50
symptom_delay_min = 15
symptom_delay_max = 60
var/bleed = FALSE
var/pain = FALSE
threshold_desc = "<b>Resistance 7:</b> Host will bleed profusely during necrosis.<br>\
<b>Transmission 8:</b> Causes extreme pain to the host, weakening it."
/datum/symptom/flesh_eating/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["resistance"] >= 7) //extra bleeding
bleed = TRUE
if(A.properties["transmittable"] >= 8) //extra stamina damage
pain = TRUE
/datum/symptom/flesh_eating/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2,3)
if(prob(base_message_chance))
to_chat(M, "<span class='warning'>[pick("You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin.")]</span>")
if(4,5)
to_chat(M, "<span class='userdanger'>[pick("You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS.")]</span>")
Flesheat(M, A)
/datum/symptom/flesh_eating/proc/Flesheat(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(15,25) * power
M.take_overall_damage(brute = get_damage, required_status = BODYPART_ORGANIC)
if(pain)
M.adjustStaminaLoss(get_damage * 2)
if(bleed)
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.bleed_rate += 5 * power
return 1
/*
//////////////////////////////////////
Autophagocytosis (AKA Programmed mass cell death)
Very noticable.
Lowers resistance.
Fast stage speed.
Decreases transmittablity.
Fatal Level.
Bonus
Deals brute damage over time.
//////////////////////////////////////
*/
/datum/symptom/flesh_death
name = "Autophagocytosis Necrosis"
desc = "The virus rapidly consumes infected cells, leading to heavy and widespread damage. Contains dormant prions- expert virologists believe it to be the precursor to Romerol, though the mechanism through which they are activated is largely unknown"
stealth = -2
resistance = -2
stage_speed = 1
transmittable = -2
level = 9
severity = 6
base_message_chance = 50
symptom_delay_min = 3
symptom_delay_max = 6
var/chems = FALSE
var/zombie = FALSE
threshold_desc = "<b>Stage Speed 7:</b> Synthesizes Heparin and Lipolicide inside the host, causing increased bleeding and hunger.<br>\
<b>Stealth 5:</b> The symptom remains hidden until active."
/datum/symptom/flesh_death/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["stealth"] >= 5)
suppress_warning = TRUE
if(A.properties["stage_rate"] >= 7) //bleeding and hunger
chems = TRUE
if((A.properties["stealth"] >= 2) && (A.properties["stage_rate"] >= 12))
zombie = TRUE
/datum/symptom/flesh_death/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2,3)
if(prob(base_message_chance) && !suppress_warning)
to_chat(M, "<span class='warning'>[pick("You feel your body break apart.", "Your skin rubs off like dust.")]</span>")
if(4,5)
if(prob(base_message_chance / 2)) //reduce spam
to_chat(M, "<span class='userdanger'>[pick("You feel your muscles weakening.", "Some of your skin detaches itself.", "You feel sandy.")]</span>")
Flesh_death(M, A)
/datum/symptom/flesh_death/proc/Flesh_death(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(6,10)
M.take_overall_damage(brute = get_damage, required_status = BODYPART_ORGANIC)
if(chems)
M.reagents.add_reagent_list(list(/datum/reagent/toxin/heparin = 2, /datum/reagent/toxin/lipolicide = 2))
if(zombie)
if(ishuman(A.affected_mob))
if(!A.affected_mob.getorganslot(ORGAN_SLOT_ZOMBIE))
var/obj/item/organ/zombie_infection/ZI = new()
ZI.Insert(M)
return 1
@@ -5,7 +5,7 @@
resistance = 0
stage_speed = 0
transmittable = 0
level = 0 //not obtainable
level = -1 //not obtainable
base_message_chance = 20 //here used for the overlays
symptom_delay_min = 1
symptom_delay_max = 1
@@ -0,0 +1,66 @@
/*
//////////////////////////////////////
Heart Disease
A bit stealthy
Slightly resistant
Quite slow
small transmission penalty
max level
Bonus
heart attacks
//////////////////////////////////////
*/
/datum/symptom/heartattack
name = "Heart Disease"
desc = "This disease infiltrates the host's heart, causing cardiac arrest after a long incubation period"
stealth = 2
resistance = 1
stage_speed = -6
transmittable = -2
level = 9
severity = 6
symptom_delay_min = 1
symptom_delay_max = 1
var/heartattack = FALSE
threshold_desc = "<b>Transmission 10:</b> When the victim has a heart attack, their heart will pop right out of their chest, and attack!.<br>\
<b>Stealth 2:</b> The disease is somewhat less noticable to the host."
/datum/symptom/heartattack/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["transmittable"] >= 10)
heartattack = TRUE
if(A.properties["stealth"] >= 2)
suppress_warning = TRUE
/datum/symptom/heartattack/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/carbon/M = A.affected_mob
if(suppress_warning && M.can_heartattack())
if(prob(2))
to_chat(M, "<span class='warning'>[pick("Your chest aches.", "You need to sit down.", "You feel out of breath.")]</span>")
else if(prob(2) && M.can_heartattack())
to_chat(M, "<span class='userdanger'>[pick("Your chest hurts!.", "You feel like your heart skipped a beat!")]</span>")
if(A.stage == 5)
if(M.getorgan(/obj/item/organ/heart) && M.can_heartattack())
if(prob(1) && prob(50))
M.set_heartattack(TRUE)
to_chat(M, "<span class='userdanger'>Your heart stops!</span>")
if(heartattack)
heartattack(M, A)
/datum/symptom/heartattack/proc/heartattack(mob/living/M, datum/disease/advance/A)
var/obj/item/organ/heart/heart = M.getorganslot(ORGAN_SLOT_HEART)
if(M.getorgan(/obj/item/organ/heart))
heart.Remove(M)
qdel(heart)
to_chat(M, "<span class='userdanger'>Your heart bursts out of your chest! It looks furious!</span>")
new /mob/living/simple_animal/hostile/heart(M.loc)
@@ -0,0 +1,73 @@
/datum/symptom/lubefeet
name = "Ducatopod"
desc = "The host now sweats industrial lubricant from their feet, lubing tiles they walk on. Combine with Pierrot's throat for the penultimate form of torture."
stealth = -4
resistance = -2
stage_speed = 4
transmittable = 1
level = 9
severity = 3
symptom_delay_min = 1
symptom_delay_max = 3
var/morelube = FALSE
var/clownshoes = TRUE
threshold_desc = "<b>Transmission 10:</b> The host sweats even more profusely, lubing almost every tile they walk over<br>\
<b>Resistance 12:</b> The host's feet turn into a pair of clown shoes."
/datum/symptom/lubefeet/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["transmission"] >= 10)
morelube = TRUE
if(A.properties["resistance"] >= 12)
clownshoes = TRUE
/datum/symptom/lubefeet/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2)
if(prob(15))
to_chat(M, "<span class='notice'>Your feet begin to sweat profusely...</span>")
if(3, 4)
to_chat(M, "<span class='danger'>You slide about inside your shoes!</span>")
if(A.stage == 4 || A.stage == 5)
if(morelube)
makelube(M, 40)
else
makelube(M, 20)
if(5)
to_chat(M, "<span class='danger'>You slide about inside your shoes!</span>")
if(A.stage == 4 || A.stage == 5)
if(morelube)
makelube(M, 99)
else
makelube(M, 50)
if(clownshoes)
give_clown_shoes(A)
/datum/symptom/lubefeet/proc/makelube(mob/living/carbon/M, chance)
if(prob(chance))
var/turf/open/OT = get_turf(M)
if(istype(OT))
to_chat(M, "<span class='danger'>The lube pools into a puddle!</span>")
OT.MakeSlippery(TURF_WET_LUBE, min_wet_time = 20 SECONDS, wet_time_to_add = 10 SECONDS)
/datum/symptom/lubefeet/End(datum/disease/advance/A)
..()
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/M = A.affected_mob
if(istype(M.shoes, /obj/item/clothing/shoes/clown_shoes))
REMOVE_TRAIT(M.shoes, TRAIT_NODROP, DISEASE_TRAIT)
/datum/symptom/lubefeet/proc/give_clown_shoes(datum/disease/advance/A)
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/M = A.affected_mob
if(!istype(M.shoes, /obj/item/clothing/shoes/clown_shoes))
if(!M.dropItemToGround(M.shoes))
qdel(M.shoes)
var/obj/item/clothing/C = new /obj/item/clothing/shoes/clown_shoes(M)
ADD_TRAIT(C, TRAIT_NODROP, DISEASE_TRAIT)
M.equip_to_slot_or_del(C, SLOT_SHOES)
return
@@ -0,0 +1,79 @@
/datum/symptom/pierrot
name = "Pierrot's Throat"
desc = "Causes the host to honk randomly"
stealth = -1
resistance = 3
stage_speed = 1
transmittable = 2
level = 0
severity = 1
symptom_delay_min = 2
symptom_delay_max = 15
var/honkspread = FALSE
var/clownmask = FALSE
var/clumsy = FALSE
threshold_desc = "<b>Transmission 10:</b> There's a rare chance the disease is spread everytime the host honks.<br>\
<b>Resistance 10:</b> The host grows a peculiar clown mask.<br>\
<b>Resistance 15:</b> Host becomes clumsy, similar to a clown."
/datum/symptom/pierrot/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["transmission"] >= 10)
honkspread = TRUE
if(A.properties["resistance"] >= 10)
clownmask = TRUE
if(A.properties["resistance"] >= 15)
clumsy = TRUE
/datum/symptom/pierrot/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1)
if(prob(30))
to_chat(M, "<span class='danger'>You feel a little silly.</span>")
if(2)
if(prob(30))
to_chat(M, "<span class='danger'>You start seeing rainbows.</span>")
if(3)
if(prob(30))
to_chat(M, "<span class='danger'>Your thoughts are interrupted by a loud <b>HONK!</b></span>")
playsound(M, 'sound/items/bikehorn.ogg', 50, 1)
if(4, 5)
if(clumsy)
if(!HAS_TRAIT(M, TRAIT_CLUMSY))
to_chat(M, "<span class='notice'>You feel dumber.</span>")
ADD_TRAIT(M, TRAIT_CLUMSY, DISEASE_TRAIT)
if(prob(30))
M.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ))
if(A.stage == 5)
if(clownmask)
give_clown_mask(A)
if(prob(5))
playsound(M.loc, 'sound/items/bikehorn.ogg', 50, 1)
if(honkspread && prob(25))
A.spread(1)
/datum/symptom/pierrot/End(datum/disease/advance/A)
..()
if(!A.affected_mob.job == "Clown")
to_chat(A.affected_mob, "<span class='notice'>You feel less dumb.</span>")
REMOVE_TRAIT(A.affected_mob, TRAIT_CLUMSY, DISEASE_TRAIT)
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/M = A.affected_mob
if(istype(M.wear_mask, /obj/item/clothing/mask/gas/clown_hat))
REMOVE_TRAIT(M.wear_mask, TRAIT_NODROP, DISEASE_TRAIT)
/datum/symptom/pierrot/proc/give_clown_mask(datum/disease/advance/A)
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/M = A.affected_mob
if(!istype(M.wear_mask, /obj/item/clothing/mask/gas/clown_hat))
if(!M.dropItemToGround(M.wear_mask))
qdel(M.wear_mask)
var/obj/item/clothing/C = new /obj/item/clothing/mask/gas/clown_hat(M)
ADD_TRAIT(C, TRAIT_NODROP, DISEASE_TRAIT)
M.equip_to_slot_or_del(C, SLOT_WEAR_MASK)
return
@@ -0,0 +1,51 @@
/datum/symptom/radiation
name = "Iraddiant Cells"
desc = "Causes the cells in the host's body to give off harmful radiation."
stealth = -1
resistance = 2
stage_speed = -1
transmittable = 2
level = 8
severity = 4
symptom_delay_min = 1
symptom_delay_max = 4
var/fastrads = FALSE
var/radothers = FALSE
threshold_desc = "<b>Transmission 12:</b> Makes the host irradiate others around them as well.<br>\
<b>Speed 8:</b> Host takes radiation damage faster."
/datum/symptom/radiation/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["transmission"] >= 10)
radothers = TRUE
if(A.properties["speed"] >= 8)
fastrads = TRUE
/datum/symptom/radiation/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1)
if(prob(10))
to_chat(M, "<span class='notice'>You feel off...</span>")
if(2, 3)
if(prob(50))
to_chat(M, "<span class='danger'>You feel like the atoms inside you are beginning to split...</span>")
if(4, 5)
if(fastrads)
radiate(M, 80)
else
radiate(M, 40)
if(radothers && A.stage == 5)
if(prob(40))
M.visible_message("<span class='danger'>[M] glows green for a moment!</span>", \
"<span class='userdanger'>You feel a massive wave of pain flow through you!</span>")
radiation_pulse(M, 20)
/datum/symptom/radiation/proc/radiate(mob/living/carbon/M, chance)
if(prob(chance))
to_chat(M, "<span class='danger'>You feel a wave of pain throughout your body!</span>")
M.radiation += 4
@@ -63,8 +63,8 @@ BONUS
name = "Revitiligo"
desc = "The virus causes increased production of skin pigment cells, making the host's skin grow darker over time."
stealth = -1
resistance = 3
stealth = 1
resistance = 2
stage_speed = 1
transmittable = 2
level = 5
+50 -51
View File
@@ -1,51 +1,50 @@
/*
//////////////////////////////////////
Sneezing
Very Noticable.
Increases resistance.
Doesn't increase stage speed.
Very transmissible.
Low Level.
Bonus
Forces a spread type of AIRBORNE
with extra range!
//////////////////////////////////////
*/
/datum/symptom/sneeze
name = "Sneezing"
desc = "The virus causes irritation of the nasal cavity, making the host sneeze occasionally."
stealth = -2
resistance = 3
stage_speed = 0
transmittable = 4
level = 1
severity = 1
symptom_delay_min = 5
symptom_delay_max = 35
threshold_desc = "<b>Transmission 9:</b> Increases sneezing range, spreading the virus over a larger area.<br>\
<b>Stealth 4:</b> The symptom remains hidden until active."
/datum/symptom/sneeze/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["transmittable"] >= 9) //longer spread range
power = 2
if(A.properties["stealth"] >= 4)
suppress_warning = TRUE
/datum/symptom/sneeze/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3)
if(!suppress_warning)
M.emote("sniff")
else
M.emote("sneeze")
A.spread(4 + power)
/*
//////////////////////////////////////
Sneezing
Very Noticable.
Increases resistance.
Doesn't increase stage speed.
Very transmissible.
Low Level.
Bonus
Forces a spread type of AIRBORNE
with extra range!
//////////////////////////////////////
*/
/datum/symptom/sneeze
name = "Sneezing"
desc = "The virus causes irritation of the nasal cavity, making the host sneeze occasionally."
stealth = -2
resistance = 3
stage_speed = 0
transmittable = 4
level = 1
severity = 1
symptom_delay_min = 5
symptom_delay_max = 35
threshold_desc = "<b>Transmission 9:</b> The host will sneeze periodically, spreading the disease. <br>\
<b>Stealth 4:</b> The symptom remains hidden until active."
/datum/symptom/sneeze/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["stealth"] >= 4)
suppress_warning = TRUE
/datum/symptom/sneeze/Activate(datum/disease/advance/A)
if(!..())
return
if(!A.properties["transmittable"] >= 9)
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3)
if(!suppress_warning)
M.emote("sniff")
else
M.emote("sneeze")
A.spread(4 + power)
@@ -10,7 +10,7 @@
var/stage_speed = 0
var/transmittable = 0
// The type level of the symptom. Higher is harder to generate.
var/level = 0
var/level = -1
// The severity level of the symptom. Higher is more dangerous.
var/severity = 0
// The hash tag for our diseases, we will add it up with our other symptoms to get a unique id! ID MUST BE UNIQUE!!!
@@ -66,6 +66,9 @@
new_symp.id = id
new_symp.neutered = neutered
return new_symp
/datum/symptom/proc/OnDeath(datum/disease/advance/A)
return !neutered
/datum/symptom/proc/generate_threshold_desc()
return
@@ -46,3 +46,61 @@ BONUS
stage_speed = 5
transmittable = 3
level = 3
/*
//////////////////////////////////////
Viral aggressive metabolism
Somewhat increased stealth.
Abysmal resistance.
Increased stage speed.
Poor transmitability.
Medium Level.
Bonus
The virus starts at stage 5, but after a certain time will start curing itself.
Stages still increase naturally with stage speed.
//////////////////////////////////////
*/
/datum/symptom/viralreverse
name = "Viral aggressive metabolism"
desc = "The virus sacrifices its long term survivability to nearly instantly fully spread inside a host. \
The virus will start at the last stage, but will eventually decay and die off by itself."
stealth = 1
resistance = -4
stage_speed = 3
transmittable = -3
level = 3
symptom_delay_min = 1
symptom_delay_max = 1
var/time_to_cure
threshold_desc = "<b>Resistance/Stage Speed:</b> Highest between these determines the amount of time before self-curing.<br>\
<b>Stealth 4</b> Doubles the time before the virus self-cures"
/datum/symptom/viralreverse/Activate(datum/disease/advance/A)
if(!..())
return
if(time_to_cure > 0)
time_to_cure--
else
var/mob/living/M = A.affected_mob
Heal(M, A)
/datum/symptom/viralreverse/proc/Heal(mob/living/M, datum/disease/advance/A)
A.stage -= 1
if(A.stage < 2)
to_chat(M, "<span class='notice'>You suddenly feel healthy.</span>")
A.cure()
/datum/symptom/viralreverse/Start(datum/disease/advance/A)
if(!..())
return
A.stage = 5
if(A.properties["stealth"] >= 4) //more time before it's cured
power = 2
time_to_cure = max(A.properties["resistance"], A.properties["stage_rate"]) * 10 * power
@@ -0,0 +1,110 @@
/datum/symptom/wizarditis
name = "Wizarditis"
desc = "Causes the host to subconciously believe they are in fact, a wizard."
stealth = 1
resistance = -2
stage_speed = -3
transmittable = -1
level = 0
severity = 3
symptom_delay_min = 15
symptom_delay_max = 45
var/teleport = FALSE
var/robes = FALSE
threshold_desc = "<b>Transmission 14:</b> The host teleports occasionally.<br>\
<b>Speed 7:</b> The host grows a set of wizard robes."
/datum/symptom/wizarditis/Start(datum/disease/advance/A)
if(!..())
return
if(A.properties["transmission"] >= 14)
teleport = TRUE
if(A.properties["speed"] >= 7)
robes = TRUE
/datum/symptom/wizarditis/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
switch(A.stage)
if(2)
if(prob(30) && prob(50))
M.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!"))
if(prob(30) && prob(50))
to_chat(M, "<span class='danger'>You feel [pick("that you don't have enough mana", "that the winds of magic are gone", "an urge to summon familiar")].</span>")
if(3)
if(prob(30) && prob(50))
M.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!"))
if(prob(30) && prob(50))
to_chat(M, "<span class='danger'>You feel [pick("the magic bubbling in your veins","that this location gives you a +1 to INT","an urge to summon familiar")].</span>")
if(4)
if(prob(50))
M.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!"))
return
if(robes)
to_chat(M, "<span class='danger'>You feel [pick("the tidal wave of raw power building inside","that this location gives you a +2 to INT and +1 to WIS","an urge to teleport")].</span>")
spawn_wizard_clothes(50, A)
if(prob(20) && teleport)
teleport(A)
return
/datum/symptom/wizarditis/proc/spawn_wizard_clothes(chance = 0, datum/disease/advance/A)
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/H = A.affected_mob
var/obj/item/clothing/C
if(prob(chance))
if(!istype(H.head, /obj/item/clothing/head/wizard))
if(!H.dropItemToGround(H.head))
qdel(H.head)
C = new /obj/item/clothing/head/wizard(H)
ADD_TRAIT(C, TRAIT_NODROP, DISEASE_TRAIT)
H.equip_to_slot_or_del(C, SLOT_HEAD)
return
if(prob(chance))
if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe))
if(!H.dropItemToGround(H.wear_suit))
qdel(H.wear_suit)
C = new /obj/item/clothing/suit/wizrobe(H)
ADD_TRAIT(C, TRAIT_NODROP, DISEASE_TRAIT)
H.equip_to_slot_or_del(C, SLOT_WEAR_SUIT)
return
if(prob(chance))
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal/magic))
if(!H.dropItemToGround(H.shoes))
qdel(H.shoes)
C = new /obj/item/clothing/shoes/sandal/magic(H)
ADD_TRAIT(C, TRAIT_NODROP, DISEASE_TRAIT)
H.equip_to_slot_or_del(C, SLOT_SHOES)
return
else
var/mob/living/carbon/H = A.affected_mob
if(prob(chance))
var/obj/item/staff/S = new(H)
if(!H.put_in_hands(S))
qdel(S)
/datum/symptom/wizarditis/proc/teleport(datum/disease/advance/A)
var/turf/L = get_safe_random_station_turf()
A.affected_mob.say("SCYAR NILA!")
do_teleport(A.affected_mob, L, forceMove = TRUE, channel = TELEPORT_CHANNEL_MAGIC)
playsound(get_turf(A.affected_mob), 'sound/weapons/zapbang.ogg', 50,1)
/datum/symptom/wizarditis/End(datum/disease/advance/A)
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/H = A.affected_mob
if(istype(H.head, /obj/item/clothing/head/wizard))
REMOVE_TRAIT(H.head, TRAIT_NODROP, DISEASE_TRAIT)
if(istype(H.wear_suit, /obj/item/clothing/suit/wizrobe))
REMOVE_TRAIT(H.wear_suit, TRAIT_NODROP, DISEASE_TRAIT)
if(istype(H.shoes, /obj/item/clothing/shoes/sandal/magic))
REMOVE_TRAIT(H.shoes, TRAIT_NODROP, DISEASE_TRAIT)
@@ -467,7 +467,8 @@
/obj/item/reagent_containers/glass/bottle/mutagen = 1,
/obj/item/reagent_containers/glass/bottle/plasma = 1,
/obj/item/reagent_containers/glass/bottle/synaptizine = 1,
/obj/item/reagent_containers/glass/bottle/formaldehyde = 1)
/obj/item/reagent_containers/glass/bottle/formaldehyde = 1,
/obj/item/reagent_containers/glass/bottle/viralbase = 1)
// ----------------------------
// Disk """fridge"""
+4 -1
View File
@@ -48,7 +48,6 @@
/mob/living/proc/spawn_dust(just_ash = FALSE)
new /obj/effect/decal/cleanable/ash(loc)
/mob/living/death(gibbed)
stat = DEAD
unset_machine()
@@ -57,6 +56,10 @@
var/turf/T = get_turf(src)
for(var/obj/item/I in contents)
I.on_mob_death(src, gibbed)
for(var/datum/disease/advance/D in diseases)
for(var/symptom in D.symptoms)
var/datum/symptom/S = symptom
S.OnDeath(D)
if(mind && mind.name && mind.active && !istype(T.loc, /area/ctf))
var/rendered = "<span class='deadsay'><b>[mind.name]</b> has died at <b>[get_area_name(T)]</b>.</span>"
deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE)
@@ -0,0 +1,35 @@
/mob/living/simple_animal/hostile/heart
name = "Heart"
desc = "A living heart. It's angry!."
icon = 'icons/obj/surgery.dmi'
icon_state = "heart-on"
icon_living = "heart-on"
icon_dead = "heart-on"
gender = NEUTER
turns_per_move = 5
speak_emote = list("beats")
emote_see = list("beats")
a_intent = INTENT_HARM
maxHealth = 24
health = 24
speed = -1
harm_intent_damage = 5
melee_damage_lower = 15
melee_damage_upper = 15
response_help = "touches"
response_disarm = "beats"
response_harm = "breaks"
density = FALSE
attacktext = "beats"
ventcrawler = VENTCRAWLER_ALWAYS
attack_sound = 'sound/effects/singlebeat.ogg'
stat_attack = UNCONSCIOUS
attack_same = 1
gold_core_spawnable = HOSTILE_SPAWN
see_in_dark = 8
deathmessage = "falls lifeless."
del_on_death = 1
loot = list(/obj/item/organ/heart)
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 150
maxbodytemp = 500
@@ -1582,6 +1582,22 @@
taste_description = "rainbows"
var/no_mob_color = FALSE
/datum/reagent/consumable/laughter/laughtervirusfood
name = "anomolous virus food"
color = "#ffa6ff" //rgb: 255,166,255
taste_description = "a bad idea"
/datum/reagent/consumable/virus_food/advvirusfood
name = "highly unstable virus food"
color = "#ffffff" //rgb: 255,255,255 ITS PURE WHITE CMON
taste_description = "an EXTREMELY bad idea"
/datum/reagent/consumable/virus_food/viralbase
name = "Experimental viral base"
description = "Recently discovered by Nanotrasen's top scientists after years of research, this substance can be used as the base for extremely rare and extremely dangerous viruses once exposed to uranium."
color = "#fff0da"
taste_description = "tears of scientists"
/datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/M)
if(!no_mob_color)
M.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY)
@@ -2174,4 +2190,4 @@
if(prob(20))
to_chat(M, "<span class = 'notice'>[pick("Headpats feel nice.", "The feeling of a hairball...", "Backrubs would be nice.", "Whats behind those doors?")]</span>")
M.adjustArousalLoss(2)
..()
..()
@@ -229,7 +229,19 @@
var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
if(D)
D.Evolve(level_min, level_max)
/datum/chemical_reaction/virus_food_laughter
name = "Anomolous virus food"
id = "virusfood_laughter"
results = list(/datum/reagent/consumable/laughter/laughtervirusfood = 1)
required_reagents = list(/datum/reagent/consumable/laughter = 5, /datum/reagent/consumable/virus_food = 1)
/datum/chemical_reaction/virus_food_admin
name = "Highly unstable virus Food"
id = "virusfood_admin"
results = list(/datum/reagent/consumable/virus_food/advvirusfood = 1)
required_reagents = list(/datum/reagent/consumable/virus_food/viralbase = 1, /datum/reagent/uranium = 20)
mix_message = "The mixture turns every colour of the rainbow, soon settling on a bright white. There's no way this isn't a good idea."
/datum/chemical_reaction/mix_virus/mix_virus_2
@@ -318,6 +330,23 @@
required_reagents = list("uraniumplasmavirusfood_stable" = 1)
level_min = 8
level_max = 8
/datum/chemical_reaction/mix_virus/mix_virus_13
name = "Mix Virus 13"
id = "mixvirus13"
required_reagents = list(/datum/reagent/consumable/laughter/laughtervirusfood = 1)
level_min = 0
level_max = 0
/datum/chemical_reaction/mix_virus/mix_virus_14
name = "Mix Virus 14"
id = "mixvirus14"
required_reagents = list(/datum/reagent/consumable/virus_food/advvirusfood = 1)
level_min = 9
level_max = 9
/datum/chemical_reaction/mix_virus/rem_virus
@@ -702,4 +731,4 @@
name = "liquid royal blue carpet"
id = "royalbluecarpet"
results = list("royalbluecarpet" = 2)
required_reagents = list("carpet" = 1, "clonexadone" = 1)
required_reagents = list("carpet" = 1, "clonexadone" = 1)
@@ -126,6 +126,11 @@
/obj/item/reagent_containers/glass/beaker/on_reagent_change(changetype)
update_icon()
/obj/item/reagent_containers/glass/bottle/viralbase
name = "Highly potent Viral Base Bottle"
desc = "A small bottle. Contains a trace amount of a substance found by scientists that can be used to create extremely advanced diseases once exposed to uranium."
list_reagents = list(/datum/reagent/consumable/virus_food/viralbase = 1)
/obj/item/reagent_containers/glass/beaker/update_icon()
cut_overlays()
+10
View File
@@ -420,7 +420,10 @@
#include "code\datums\diseases\advance\advance.dm"
#include "code\datums\diseases\advance\presets.dm"
#include "code\datums\diseases\advance\symptoms\beard.dm"
#include "code\datums\diseases\advance\symptoms\beesymptom.dm"
#include "code\datums\diseases\advance\symptoms\braindamage.dm"
#include "code\datums\diseases\advance\symptoms\choking.dm"
#include "code\datums\diseases\advance\symptoms\cockroach.dm"
#include "code\datums\diseases\advance\symptoms\confusion.dm"
#include "code\datums\diseases\advance\symptoms\cough.dm"
#include "code\datums\diseases\advance\symptoms\deafness.dm"
@@ -428,13 +431,18 @@
#include "code\datums\diseases\advance\symptoms\fever.dm"
#include "code\datums\diseases\advance\symptoms\fire.dm"
#include "code\datums\diseases\advance\symptoms\flesh_eating.dm"
#include "code\datums\diseases\advance\symptoms\genetics.dm"
#include "code\datums\diseases\advance\symptoms\hallucigen.dm"
#include "code\datums\diseases\advance\symptoms\headache.dm"
#include "code\datums\diseases\advance\symptoms\heal.dm"
#include "code\datums\diseases\advance\symptoms\heartattack.dm"
#include "code\datums\diseases\advance\symptoms\itching.dm"
#include "code\datums\diseases\advance\symptoms\lubefeet.dm"
#include "code\datums\diseases\advance\symptoms\nanites.dm"
#include "code\datums\diseases\advance\symptoms\narcolepsy.dm"
#include "code\datums\diseases\advance\symptoms\oxygen.dm"
#include "code\datums\diseases\advance\symptoms\pierrot.dm"
#include "code\datums\diseases\advance\symptoms\radiation.dm"
#include "code\datums\diseases\advance\symptoms\sensory.dm"
#include "code\datums\diseases\advance\symptoms\shedding.dm"
#include "code\datums\diseases\advance\symptoms\shivering.dm"
@@ -447,6 +455,7 @@
#include "code\datums\diseases\advance\symptoms\voice_change.dm"
#include "code\datums\diseases\advance\symptoms\vomit.dm"
#include "code\datums\diseases\advance\symptoms\weight.dm"
#include "code\datums\diseases\advance\symptoms\wizarditis.dm"
#include "code\datums\diseases\advance\symptoms\youth.dm"
#include "code\datums\helper_datums\events.dm"
#include "code\datums\helper_datums\getrev.dm"
@@ -2166,6 +2175,7 @@
#include "code\modules\mob\living\simple_animal\guardian\types\standard.dm"
#include "code\modules\mob\living\simple_animal\guardian\types\support.dm"
#include "code\modules\mob\living\simple_animal\hostile\alien.dm"
#include "code\modules\mob\living\simple_animal\hostile\heart.dm"
#include "code\modules\mob\living\simple_animal\hostile\bear.dm"
#include "code\modules\mob\living\simple_animal\hostile\bees.dm"
#include "code\modules\mob\living\simple_animal\hostile\carp.dm"