Disease Refactor (#2021)

This commit is contained in:
CitadelStationBot
2017-07-15 11:40:49 -07:00
committed by kevinz000
parent 2ae38397c9
commit f2ac487927
56 changed files with 210 additions and 255 deletions
@@ -1,8 +1,8 @@
/mob/living/carbon/alien/spawn_gibs(with_bodyparts)
if(with_bodyparts)
new /obj/effect/gibspawner/xeno(loc,viruses)
new /obj/effect/gibspawner/xeno(get_turf(src))
else
new /obj/effect/gibspawner/xenobodypartless(loc,viruses)
new /obj/effect/gibspawner/xenobodypartless(get_turf(src))
/mob/living/carbon/alien/gib_animation()
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-a")
@@ -8,9 +8,9 @@
/mob/living/carbon/alien/larva/spawn_gibs(with_bodyparts)
if(with_bodyparts)
new /obj/effect/gibspawner/larva(loc,viruses)
new /obj/effect/gibspawner/larva(get_turf(src))
else
new /obj/effect/gibspawner/larvabodypartless(loc,viruses)
new /obj/effect/gibspawner/larvabodypartless(get_turf(src))
/mob/living/carbon/alien/larva/gib_animation()
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-l")
+3 -2
View File
@@ -716,8 +716,9 @@
var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain)
if(B)
B.damaged_brain = 0
for(var/datum/disease/D in viruses)
if (D.severity != NONTHREAT)
for(var/thing in viruses)
var/datum/disease/D = thing
if(D.severity != NONTHREAT)
D.cure(0)
if(admin_revive)
regenerate_limbs()
@@ -107,11 +107,13 @@
/mob/living/carbon/attack_hand(mob/living/carbon/human/user)
for(var/datum/disease/D in viruses)
for(var/thing in viruses)
var/datum/disease/D = thing
if(D.IsSpreadByTouch())
user.ContractDisease(D)
for(var/datum/disease/D in user.viruses)
for(var/thing in user.viruses)
var/datum/disease/D = thing
if(D.IsSpreadByTouch())
ContractDisease(D)
@@ -124,11 +126,13 @@
/mob/living/carbon/attack_paw(mob/living/carbon/monkey/M)
for(var/datum/disease/D in viruses)
for(var/thing in viruses)
var/datum/disease/D = thing
if(D.IsSpreadByTouch())
M.ContractDisease(D)
for(var/datum/disease/D in M.viruses)
for(var/thing in M.viruses)
var/datum/disease/D = thing
if(D.IsSpreadByTouch())
ContractDisease(D)
@@ -137,7 +141,8 @@
return 0
if(..()) //successful monkey bite.
for(var/datum/disease/D in M.viruses)
for(var/thing in M.viruses)
var/datum/disease/D = thing
ForceContractDisease(D)
return 1
@@ -6,9 +6,9 @@
/mob/living/carbon/human/spawn_gibs(with_bodyparts)
if(with_bodyparts)
new /obj/effect/gibspawner/human(loc, viruses, dna)
new /obj/effect/gibspawner/human(get_turf(src), dna)
else
new /obj/effect/gibspawner/humanbodypartless(loc, viruses, dna)
new /obj/effect/gibspawner/humanbodypartless(get_turf(src), dna)
/mob/living/carbon/human/spawn_dust(just_ash = FALSE)
if(just_ash)
@@ -119,7 +119,8 @@
//Virsuses
if(viruses.len)
stat("Viruses:", null)
for(var/datum/disease/D in viruses)
for(var/thing in viruses)
var/datum/disease/D = thing
stat("*", "[D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]")
+9
View File
@@ -222,6 +222,15 @@
/mob/living/carbon/proc/handle_blood()
return
/mob/living/carbon/handle_diseases()
for(var/thing in viruses)
var/datum/disease/D = thing
if(prob(D.infectivity))
D.spread()
if(stat != DEAD)
D.stage_act()
/mob/living/carbon/proc/handle_changeling()
if(mind && hud_used && hud_used.lingchemdisplay)
if(mind.changeling)
@@ -0,0 +1,10 @@
diff a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm (rejected hunks)
@@ -12,7 +12,7 @@
if(..()) //not dead
handle_blood()
- if(stat != DEAD) // Reagent processing needs to be handled before breathing and such, to prevent edge cases
+ if(stat != DEAD)
handle_organs()
if(stat == DEAD)