Merge branch 'master' into upstream-merge-29288

This commit is contained in:
LetterJay
2017-08-14 18:35:28 -05:00
committed by GitHub
931 changed files with 69580 additions and 65154 deletions
+3 -11
View File
@@ -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"]
+36 -36
View File
@@ -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
+33 -32
View 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)