Merge branch 'master' into upstream-merge-29288
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
|
||||
/mob/proc/HasDisease(datum/disease/D)
|
||||
for(var/datum/disease/DD in viruses)
|
||||
for(var/thing in viruses)
|
||||
var/datum/disease/DD = thing
|
||||
if(D.IsSame(DD))
|
||||
return 1
|
||||
return 0
|
||||
@@ -39,7 +40,7 @@
|
||||
var/datum/disease/DD = new D.type(1, D, 0)
|
||||
viruses += DD
|
||||
DD.affected_mob = src
|
||||
DD.holder = src
|
||||
SSdisease.active_diseases += DD //Add it to the active diseases list, now that it's actually in a mob and being processed.
|
||||
|
||||
//Copy properties over. This is so edited diseases persist.
|
||||
var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars","transformed")
|
||||
@@ -147,6 +148,9 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/CanContractDisease(datum/disease/D)
|
||||
if(dna && (VIRUSIMMUNE in dna.species.species_traits))
|
||||
if(dna && (VIRUSIMMUNE in dna.species.species_traits) && !D.bypasses_immunity)
|
||||
return 0
|
||||
for(var/thing in D.required_organs)
|
||||
if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs)))
|
||||
return 0
|
||||
return ..()
|
||||
@@ -46,21 +46,23 @@
|
||||
var/stage_prob = 4
|
||||
|
||||
//Other
|
||||
var/longevity = 150 //Time in ticks disease stays in objects, Syringes and such are infinite.
|
||||
var/list/viable_mobtypes = list() //typepaths of viable mobs
|
||||
var/mob/living/carbon/affected_mob = null
|
||||
var/atom/movable/holder = null
|
||||
var/list/cures = list() //list of cures if the disease has the CURABLE flag, these are reagent ids
|
||||
var/infectivity = 65
|
||||
var/cure_chance = 8
|
||||
var/carrier = 0 //If our host is only a carrier
|
||||
var/carrier = FALSE //If our host is only a carrier
|
||||
var/bypasses_immunity = FALSE //Does it skip species virus immunity check? Some things may diseases and not viruses
|
||||
var/permeability_mod = 1
|
||||
var/severity = NONTHREAT
|
||||
var/list/required_organs = list()
|
||||
var/needs_all_cures = TRUE
|
||||
var/list/strain_data = list() //dna_spread special bullshit
|
||||
|
||||
|
||||
/datum/disease/Destroy()
|
||||
affected_mob = null
|
||||
SSdisease.active_diseases.Remove(src)
|
||||
return ..()
|
||||
|
||||
/datum/disease/proc/stage_act()
|
||||
var/cure = has_cure()
|
||||
@@ -93,13 +95,16 @@
|
||||
if(!. || (needs_all_cures && . < cures.len))
|
||||
return 0
|
||||
|
||||
/datum/disease/proc/spread(atom/source, force_spread = 0)
|
||||
|
||||
/datum/disease/proc/spread(force_spread = 0)
|
||||
if(!affected_mob)
|
||||
return
|
||||
|
||||
if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread)
|
||||
return
|
||||
|
||||
if(affected_mob)
|
||||
if( affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)) )
|
||||
return
|
||||
if(affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)))
|
||||
return
|
||||
|
||||
var/spread_range = 1
|
||||
|
||||
@@ -109,15 +114,9 @@
|
||||
if(spread_flags & AIRBORNE)
|
||||
spread_range++
|
||||
|
||||
if(!source)
|
||||
if(affected_mob)
|
||||
source = affected_mob
|
||||
else
|
||||
return
|
||||
|
||||
var/turf/T = source.loc
|
||||
var/turf/T = affected_mob.loc
|
||||
if(istype(T))
|
||||
for(var/mob/living/carbon/C in oview(spread_range, source))
|
||||
for(var/mob/living/carbon/C in oview(spread_range, affected_mob))
|
||||
var/turf/V = get_turf(C)
|
||||
if(V)
|
||||
while(TRUE)
|
||||
@@ -129,29 +128,6 @@
|
||||
break
|
||||
V = Temp
|
||||
|
||||
/datum/disease/process()
|
||||
if(!holder)
|
||||
SSdisease.processing -= src
|
||||
return
|
||||
|
||||
if(prob(infectivity))
|
||||
spread(holder)
|
||||
|
||||
if(affected_mob)
|
||||
for(var/datum/disease/D in affected_mob.viruses)
|
||||
if(D != src)
|
||||
if(IsSame(D))
|
||||
qdel(D)
|
||||
|
||||
if(holder == affected_mob)
|
||||
if(affected_mob.stat != DEAD)
|
||||
stage_act()
|
||||
|
||||
if(!affected_mob)
|
||||
if(prob(70))
|
||||
if(--longevity<=0)
|
||||
cure()
|
||||
|
||||
|
||||
/datum/disease/proc/cure()
|
||||
if(affected_mob)
|
||||
@@ -161,20 +137,6 @@
|
||||
remove_virus()
|
||||
qdel(src)
|
||||
|
||||
|
||||
/datum/disease/New()
|
||||
if(required_organs && required_organs.len)
|
||||
if(ishuman(affected_mob))
|
||||
var/mob/living/carbon/human/H = affected_mob
|
||||
for(var/obj/item/organ/O in required_organs)
|
||||
if(!locate(O) in H.bodyparts)
|
||||
if(!locate(O) in H.internal_organs)
|
||||
cure()
|
||||
return
|
||||
|
||||
SSdisease.processing += src
|
||||
|
||||
|
||||
/datum/disease/proc/IsSame(datum/disease/D)
|
||||
if(istype(src, D.type))
|
||||
return 1
|
||||
@@ -191,11 +153,6 @@
|
||||
return type
|
||||
|
||||
|
||||
/datum/disease/Destroy()
|
||||
SSdisease.processing.Remove(src)
|
||||
return ..()
|
||||
|
||||
|
||||
/datum/disease/proc/IsSpreadByTouch()
|
||||
if(spread_flags & CONTACT_FEET || spread_flags & CONTACT_HANDS || spread_flags & CONTACT_GENERAL)
|
||||
return 1
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
if(!(istype(D, /datum/disease/advance)))
|
||||
return 0
|
||||
|
||||
if(src.GetDiseaseID() != D.GetDiseaseID())
|
||||
if(GetDiseaseID() != D.GetDiseaseID())
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
// Mix the symptoms of two diseases (the src and the argument)
|
||||
/datum/disease/advance/proc/Mix(datum/disease/advance/D)
|
||||
if(!(src.IsSame(D)))
|
||||
if(!(IsSame(D)))
|
||||
var/list/possible_symptoms = shuffle(D.symptoms)
|
||||
for(var/datum/symptom/S in possible_symptoms)
|
||||
AddSymptom(S.Copy())
|
||||
@@ -158,7 +158,6 @@
|
||||
return generated
|
||||
|
||||
/datum/disease/advance/proc/Refresh(new_name = FALSE)
|
||||
//to_chat(world, "[src.name] \ref[src] - REFRESH!")
|
||||
GenerateProperties()
|
||||
AssignProperties()
|
||||
id = null
|
||||
@@ -412,7 +411,7 @@
|
||||
D.AssignName(new_name)
|
||||
D.Refresh()
|
||||
|
||||
for(var/datum/disease/advance/AD in SSdisease.processing)
|
||||
for(var/datum/disease/advance/AD in SSdisease.active_diseases)
|
||||
AD.Refresh()
|
||||
|
||||
for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list))
|
||||
@@ -427,13 +426,6 @@
|
||||
name_symptoms += S.name
|
||||
message_admins("[key_name_admin(user)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]")
|
||||
|
||||
/*
|
||||
/mob/verb/test()
|
||||
|
||||
for(var/datum/disease/D in SSdisease.processing)
|
||||
to_chat(src, "<a href='?_src_=vars;Vars=\ref[D]'>[D.name] - [D.holder]</a>")
|
||||
*/
|
||||
|
||||
|
||||
/datum/disease/advance/proc/totalStageSpeed()
|
||||
return properties["stage_rate"]
|
||||
|
||||
@@ -24,45 +24,45 @@ BONUS
|
||||
transmittable = 2
|
||||
level = 1
|
||||
severity = 1
|
||||
base_message_chance = 15
|
||||
symptom_delay_min = 2
|
||||
symptom_delay_max = 15
|
||||
var/infective = FALSE
|
||||
base_message_chance = 15
|
||||
symptom_delay_min = 2
|
||||
symptom_delay_max = 15
|
||||
var/infective = FALSE
|
||||
|
||||
/datum/symptom/cough/Start(datum/disease/advance/A)
|
||||
/datum/symptom/cough/Start(datum/disease/advance/A)
|
||||
..()
|
||||
if(A.properties["stealth"] >= 4)
|
||||
suppress_warning = TRUE
|
||||
if(A.spread_flags &= AIRBORNE) //infect bystanders
|
||||
infective = TRUE
|
||||
if(A.properties["resistance"] >= 3) //strong enough to drop items
|
||||
power = 1.5
|
||||
if(A.properties["resistance"] >= 10) //strong enough to stun (rarely)
|
||||
power = 2
|
||||
if(A.properties["stage_rate"] >= 6) //cough more often
|
||||
symptom_delay_max = 10
|
||||
|
||||
/datum/symptom/cough/Activate(datum/disease/advance/A)
|
||||
if(!..())
|
||||
return
|
||||
var/mob/living/M = A.affected_mob
|
||||
switch(A.stage)
|
||||
if(1, 2, 3)
|
||||
if(prob(base_message_chance) && !suppress_warning)
|
||||
if(A.properties["stealth"] >= 4)
|
||||
suppress_warning = TRUE
|
||||
if(A.spread_flags &= AIRBORNE) //infect bystanders
|
||||
infective = TRUE
|
||||
if(A.properties["resistance"] >= 3) //strong enough to drop items
|
||||
power = 1.5
|
||||
if(A.properties["resistance"] >= 10) //strong enough to stun (rarely)
|
||||
power = 2
|
||||
if(A.properties["stage_rate"] >= 6) //cough more often
|
||||
symptom_delay_max = 10
|
||||
|
||||
/datum/symptom/cough/Activate(datum/disease/advance/A)
|
||||
if(!..())
|
||||
return
|
||||
var/mob/living/M = A.affected_mob
|
||||
switch(A.stage)
|
||||
if(1, 2, 3)
|
||||
if(prob(base_message_chance) && !suppress_warning)
|
||||
to_chat(M, "<span notice='warning'>[pick("You swallow excess mucus.", "You lightly cough.")]</span>")
|
||||
else
|
||||
M.emote("cough")
|
||||
if(power >= 1.5)
|
||||
else
|
||||
M.emote("cough")
|
||||
if(power >= 1.5)
|
||||
var/obj/item/I = M.get_active_held_item()
|
||||
if(I && I.w_class == WEIGHT_CLASS_TINY)
|
||||
M.drop_item()
|
||||
if(power >= 2 && prob(10))
|
||||
to_chat(M, "<span notice='userdanger'>[pick("You have a coughing fit!", "You can't stop coughing!")]</span>")
|
||||
M.Stun(20)
|
||||
M.emote("cough")
|
||||
addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 6)
|
||||
addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 12)
|
||||
addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 18)
|
||||
if(infective)
|
||||
A.spread(A.holder, 1)
|
||||
|
||||
if(power >= 2 && prob(10))
|
||||
to_chat(M, "<span notice='userdanger'>[pick("You have a coughing fit!", "You can't stop coughing!")]</span>")
|
||||
M.Stun(20)
|
||||
M.emote("cough")
|
||||
addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 6)
|
||||
addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 12)
|
||||
addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 18)
|
||||
if(infective)
|
||||
A.spread(1)
|
||||
|
||||
|
||||
@@ -63,14 +63,14 @@ Bonus
|
||||
M.adjust_fire_stacks(1 * power)
|
||||
M.adjustFireLoss(3 * power)
|
||||
if(infective)
|
||||
A.spread(A.holder, 2)
|
||||
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)
|
||||
if(infective)
|
||||
A.spread(A.holder, 4)
|
||||
A.spread(4)
|
||||
return 1
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
diff a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm (rejected hunks)
|
||||
@@ -23,106 +23,43 @@ Bonus
|
||||
transmittable = -3
|
||||
level = 5
|
||||
severity = 0
|
||||
+ symptom_delay_min = 5
|
||||
+ symptom_delay_max = 10
|
||||
+ var/purge_alcohol = FALSE
|
||||
+ var/brain_heal = FALSE
|
||||
|
||||
-/datum/symptom/sensory_restoration/Activate(var/datum/disease/advance/A)
|
||||
+/datum/symptom/sensory_restoration/Start(datum/disease/advance/A)
|
||||
..()
|
||||
+ if(A.properties["resistance"] >= 6) //heal brain damage
|
||||
+ brain_heal = TRUE
|
||||
+ if(A.properties["transmittable"] >= 8) //purge alcohol
|
||||
+ purge_alcohol = TRUE
|
||||
+
|
||||
+/datum/symptom/sensory_restoration/Activate(var/datum/disease/advance/A)
|
||||
+ if(!..())
|
||||
+ return
|
||||
var/mob/living/M = A.affected_mob
|
||||
if(A.stage >= 2)
|
||||
M.restoreEars()
|
||||
|
||||
if(A.stage >= 3)
|
||||
- M.dizziness = 0
|
||||
- M.drowsyness = 0
|
||||
- M.slurring = 0
|
||||
- M.confused = 0
|
||||
- M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3)
|
||||
- if(ishuman(M))
|
||||
- var/mob/living/carbon/human/H = M
|
||||
- H.drunkenness = max(H.drunkenness - 10, 0)
|
||||
+ M.dizziness = max(0, M.dizziness - 2)
|
||||
+ M.drowsyness = max(0, M.drowsyness - 2)
|
||||
+ M.slurring = max(0, M.slurring - 2)
|
||||
+ M.confused = max(0, M.confused - 2)
|
||||
+ if(purge_alcohol)
|
||||
+ M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3)
|
||||
+ if(ishuman(M))
|
||||
+ var/mob/living/carbon/human/H = M
|
||||
+ H.drunkenness = max(H.drunkenness - 5, 0)
|
||||
|
||||
if(A.stage >= 4)
|
||||
- M.drowsyness = max(M.drowsyness-5, 0)
|
||||
+ M.drowsyness = max(0, M.drowsyness - 2)
|
||||
if(M.reagents.has_reagent("mindbreaker"))
|
||||
M.reagents.remove_reagent("mindbreaker", 5)
|
||||
if(M.reagents.has_reagent("histamine"))
|
||||
M.reagents.remove_reagent("histamine", 5)
|
||||
M.hallucination = max(0, M.hallucination - 10)
|
||||
|
||||
- if(A.stage >= 5)
|
||||
- M.adjustBrainLoss(-3)
|
||||
-
|
||||
-/*
|
||||
-//////////////////////////////////////
|
||||
-Sensory-Destruction
|
||||
- noticable.
|
||||
- Lowers resistance
|
||||
- Decreases stage speed tremendously.
|
||||
- Decreases transmittablity tremendously.
|
||||
- the drugs hit them so hard they have to focus on not dying
|
||||
-
|
||||
-Bonus
|
||||
- The body generates Sensory destructive chemicals.
|
||||
- You cannot taste anything anymore.
|
||||
- ethanol for extremely drunk victim
|
||||
- mindbreaker to break the mind
|
||||
- impedrezene to ruin the brain
|
||||
-
|
||||
-//////////////////////////////////////
|
||||
-*/
|
||||
-/datum/symptom/sensory_destruction
|
||||
- name = "Sensory destruction"
|
||||
- stealth = -1
|
||||
- resistance = -2
|
||||
- stage_speed = -3
|
||||
- transmittable = -4
|
||||
- level = 6
|
||||
- severity = 5
|
||||
- var/sleepy = 0
|
||||
- var/sleepy_ticks = 0
|
||||
-
|
||||
-/datum/symptom/sensory_destruction/Activate(var/datum/disease/advance/A)
|
||||
- ..()
|
||||
- var/mob/living/M = A.affected_mob
|
||||
- if(prob(SYMPTOM_ACTIVATION_PROB))
|
||||
- switch(A.stage)
|
||||
- if(1)
|
||||
- to_chat(M, "<span class='warning'>You can't feel anything.</span>")
|
||||
- if(2)
|
||||
- to_chat(M, "<span class='warning'>You feel absolutely hammered.</span>")
|
||||
- if(prob(10))
|
||||
- sleepy_ticks += rand(10,14)
|
||||
- if(3)
|
||||
- M.reagents.add_reagent("ethanol",rand(5,7))
|
||||
- to_chat(M, "<span class='warning'>You try to focus on not dying.</span>")
|
||||
- if(prob(15))
|
||||
- sleepy_ticks += rand(10,14)
|
||||
- if(4)
|
||||
- M.reagents.add_reagent("ethanol",rand(6,10))
|
||||
- to_chat(M, "<span class='warning'>u can count 2 potato!</span>")
|
||||
- if(prob(20))
|
||||
- sleepy_ticks += rand(10,14)
|
||||
- if(5)
|
||||
- M.reagents.add_reagent("ethanol",rand(7,13))
|
||||
- if(prob(25))
|
||||
- sleepy_ticks += rand(10,14)
|
||||
-
|
||||
- if(sleepy_ticks)
|
||||
- if(A.stage>=4)
|
||||
- M.hallucination = min(M.hallucination + 10, 50)
|
||||
- if(A.stage>=5)
|
||||
- if(prob(80))
|
||||
- M.adjustBrainLoss(1)
|
||||
- if(prob(50))
|
||||
- M.drowsyness = max(M.drowsyness, 3)
|
||||
- sleepy++
|
||||
- sleepy_ticks--
|
||||
- else
|
||||
- sleepy = 0
|
||||
-
|
||||
- switch(sleepy) //Works like morphine
|
||||
- if(11)
|
||||
- to_chat(M, "<span class='warning'>You start to feel tired...</span>")
|
||||
- if(12 to 24)
|
||||
- M.drowsyness += 1
|
||||
- if(24 to INFINITY)
|
||||
- M.Sleeping(2, 0)
|
||||
+ if(brain_heal && A.stage >= 5)
|
||||
+ M.adjustBrainLoss(-3)
|
||||
\ No newline at end of file
|
||||
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
//////////////////////////////////////
|
||||
|
||||
Sneezing
|
||||
|
||||
Very Noticable.
|
||||
Increases resistance.
|
||||
Doesn't increase stage speed.
|
||||
Very transmittable.
|
||||
Low Level.
|
||||
|
||||
Bonus
|
||||
Forces a spread type of AIRBORNE
|
||||
with extra range!
|
||||
|
||||
//////////////////////////////////////
|
||||
*/
|
||||
|
||||
/datum/symptom/sneeze
|
||||
name = "Sneezing"
|
||||
stealth = -2
|
||||
resistance = 3
|
||||
stage_speed = 0
|
||||
transmittable = 4
|
||||
level = 1
|
||||
severity = 1
|
||||
/*
|
||||
//////////////////////////////////////
|
||||
|
||||
Sneezing
|
||||
|
||||
Very Noticable.
|
||||
Increases resistance.
|
||||
Doesn't increase stage speed.
|
||||
Very transmittable.
|
||||
Low Level.
|
||||
|
||||
Bonus
|
||||
Forces a spread type of AIRBORNE
|
||||
with extra range!
|
||||
|
||||
//////////////////////////////////////
|
||||
*/
|
||||
|
||||
/datum/symptom/sneeze
|
||||
name = "Sneezing"
|
||||
stealth = -2
|
||||
resistance = 3
|
||||
stage_speed = 0
|
||||
transmittable = 4
|
||||
level = 1
|
||||
severity = 1
|
||||
symptom_delay_min = 5
|
||||
symptom_delay_max = 35
|
||||
|
||||
|
||||
/datum/symptom/sneeze/Start(datum/disease/advance/A)
|
||||
..()
|
||||
..()
|
||||
if(A.properties["transmittable"] >= 9) //longer spread range
|
||||
power = 2
|
||||
if(A.properties["stealth"] >= 4)
|
||||
@@ -41,7 +41,8 @@ Bonus
|
||||
switch(A.stage)
|
||||
if(1, 2, 3)
|
||||
if(!suppress_warning)
|
||||
M.emote("sniff")
|
||||
else
|
||||
M.emote("sneeze")
|
||||
A.spread(A.holder, 4 + power)
|
||||
M.emote("sniff")
|
||||
else
|
||||
M.emote("sneeze")
|
||||
A.spread(5)
|
||||
return
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/datum/symptom/New()
|
||||
var/list/S = SSdisease.list_symptoms
|
||||
for(var/i = 1; i <= S.len; i++)
|
||||
if(src.type == S[i])
|
||||
if(type == S[i])
|
||||
id = "[i]"
|
||||
return
|
||||
CRASH("We couldn't assign an ID!")
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
diff a/code/datums/diseases/advance/symptoms/vision.dm b/code/datums/diseases/advance/symptoms/vision.dm (rejected hunks)
|
||||
@@ -40,7 +40,7 @@ Bonus
|
||||
if(!..())
|
||||
return
|
||||
var/mob/living/carbon/M = A.affected_mob
|
||||
- var/obj/item/organ/eyes = M.getorganslot("eye_sight")
|
||||
+ var/obj/item/organ/eyes/eyes = M.getorganslot("eye_sight")
|
||||
if(istype(eyes))
|
||||
switch(A.stage)
|
||||
if(1, 2)
|
||||
@@ -55,7 +55,7 @@ Bonus
|
||||
M.adjust_eye_damage(5)
|
||||
if(eyes.eye_damage >= 10)
|
||||
M.become_nearsighted()
|
||||
- if(prob(M.eye_damage - 10 + 1))
|
||||
+ if(prob(eyes.eye_damage - 10 + 1))
|
||||
if(!remove_eyes)
|
||||
if(M.become_blind())
|
||||
to_chat(M, "<span class='userdanger'>You go blind!</span>")
|
||||
@@ -1,30 +0,0 @@
|
||||
diff a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm (rejected hunks)
|
||||
@@ -32,7 +32,7 @@ Bonus
|
||||
symptom_delay_min = 25
|
||||
symptom_delay_max = 80
|
||||
var/vomit_blood = FALSE
|
||||
- var/proj_vomit = FALSE
|
||||
+ var/proj_vomit = 0
|
||||
|
||||
/datum/symptom/vomit/Start(datum/disease/advance/A)
|
||||
..()
|
||||
@@ -41,7 +41,7 @@ Bonus
|
||||
if(A.properties["resistance"] >= 7) //blood vomit
|
||||
vomit_blood = TRUE
|
||||
if(A.properties["transmittable"] >= 7) //projectile vomit
|
||||
- proj_vomit = TRUE
|
||||
+ proj_vomit = 5
|
||||
|
||||
/datum/symptom/vomit/Activate(datum/disease/advance/A)
|
||||
if(!..())
|
||||
@@ -52,7 +52,7 @@ Bonus
|
||||
if(prob(base_message_chance) && !suppress_warning)
|
||||
to_chat(M, "<span class='warning'>[pick("You feel nauseous.", "You feel like you're going to throw up!")]</span>")
|
||||
else
|
||||
- Vomit(M)
|
||||
+ vomit(M)
|
||||
|
||||
-/datum/symptom/vomit/proc/Vomit(mob/living/carbon/M)
|
||||
- M.vomit(20, vomit_blood, distance = 5 * proj_vomit)
|
||||
+/datum/symptom/vomit/proc/vomit(mob/living/carbon/M)
|
||||
+ M.vomit(20, vomit_blood, distance = proj_vomit)
|
||||
@@ -7,7 +7,7 @@
|
||||
cure_text = "Ethanol"
|
||||
cures = list("ethanol")
|
||||
agent = "Excess Lepidopticides"
|
||||
viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey)
|
||||
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
||||
desc = "If left untreated subject will regurgitate butterflies."
|
||||
severity = MEDIUM
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
permeability_mod = 1
|
||||
desc = "If left untreated the subject will become very weak, and may vomit often."
|
||||
severity = "Dangerous!"
|
||||
longevity = 1000
|
||||
disease_flags = CAN_CARRY|CAN_RESIST
|
||||
spread_flags = NON_CONTAGIOUS
|
||||
visibility_flags = HIDDEN_PANDEMIC
|
||||
required_organs = list(/obj/item/organ/appendix)
|
||||
bypasses_immunity = TRUE // Immunity is based on not having an appendix; this isn't a virus
|
||||
|
||||
/datum/disease/appendicitis/stage_act()
|
||||
..()
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
cure_text = "Sugar"
|
||||
cures = list("sugar")
|
||||
agent = "Apidae Infection"
|
||||
viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey)
|
||||
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
||||
desc = "If left untreated subject will regurgitate bees."
|
||||
severity = DANGEROUS
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
cure_chance = 15//higher chance to cure, since two reagents are required
|
||||
desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication."
|
||||
required_organs = list(/obj/item/bodypart/head)
|
||||
required_organs = list(/obj/item/organ/brain)
|
||||
severity = DANGEROUS
|
||||
|
||||
/datum/disease/brainrot/stage_act() //Removed toxloss because damaging diseases are pretty horrible. Last round it killed the entire station because the cure didn't work -- Urist -ACTUALLY Removed rather than commented out, I don't see it returning - RR
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
//Absorbs the target DNA.
|
||||
strain_data["dna"] = new affected_mob.dna.type
|
||||
affected_mob.dna.copy_dna(strain_data["dna"])
|
||||
src.carrier = 1
|
||||
src.stage = 4
|
||||
carrier = TRUE
|
||||
stage = 4
|
||||
return
|
||||
|
||||
switch(stage)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
cure_text = "Synaptizine & Sulfur"
|
||||
cures = list("synaptizine","sulfur")
|
||||
agent = "Gravitokinetic Bipotential SADS-"
|
||||
viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey)
|
||||
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
||||
desc = "If left untreated death will occur."
|
||||
severity = BIOHAZARD
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
cures = list("spaceacillin")
|
||||
cure_chance = 10
|
||||
agent = "H13N1 flu virion"
|
||||
viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey)
|
||||
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
||||
permeability_mod = 0.75
|
||||
desc = "If left untreated the subject will feel quite unwell."
|
||||
severity = MEDIUM
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
permeability_mod = 0.75
|
||||
desc = "If left untreated the subject will probably drive others to insanity."
|
||||
severity = MEDIUM
|
||||
longevity = 400
|
||||
|
||||
/datum/disease/pierrot_throat/stage_act()
|
||||
..()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/datum/disease/rhumba_beat/stage_act()
|
||||
..()
|
||||
if(affected_mob.ckey == "rosham")
|
||||
src.cure()
|
||||
cure()
|
||||
return
|
||||
switch(stage)
|
||||
if(2)
|
||||
|
||||
@@ -73,7 +73,6 @@
|
||||
permeability_mod = 1
|
||||
cure_chance = 1
|
||||
disease_flags = CAN_CARRY|CAN_RESIST
|
||||
longevity = 30
|
||||
desc = "Monkeys with this disease will bite humans, causing humans to mutate into a monkey."
|
||||
severity = BIOHAZARD
|
||||
stage_prob = 4
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/datum/disease/tuberculosis
|
||||
form = "Disease"
|
||||
name = "Fungal tuberculosis"
|
||||
max_stages = 5
|
||||
spread_text = "Airborne"
|
||||
@@ -8,8 +9,9 @@
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
cure_chance = 5//like hell are you getting out of hell
|
||||
desc = "A rare highly transmittable virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue."
|
||||
required_organs = list(/obj/item/bodypart/head)
|
||||
required_organs = list(/obj/item/organ/lungs)
|
||||
severity = DANGEROUS
|
||||
bypasses_immunity = TRUE // TB primarily impacts the lungs; it's also bacterial or fungal in nature; viral immunity should do nothing.
|
||||
|
||||
/datum/disease/tuberculosis/stage_act() //it begins
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user