-Added advance diseases! Virology can create and mutate advance with different symptoms and effects. Read my comments if you're interested in each symptom.

This isn't done, I still need to add more symptoms and a way for virology to identify and name them.

-Metroids will die in space again.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4987 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2012-10-31 18:04:04 +00:00
parent 59acea8efb
commit 2cefee1282
25 changed files with 1075 additions and 70 deletions
@@ -155,7 +155,7 @@
/mob/living/carbon/metroid/proc/handle_environment(datum/gas_mixture/environment)
if(!environment)
adjustFireLoss(rand(10,20))
adjustToxLoss(rand(10,20))
return
//var/environment_heat_capacity = environment.heat_capacity()
@@ -199,9 +199,9 @@
if(bodytemperature <= (T0C - 50)) // hurt temperature
if(bodytemperature <= 50) // sqrting negative numbers is bad
adjustFireLoss(200)
adjustToxLoss(200)
else
adjustFireLoss(round(sqrt(bodytemperature)) * 2)
adjustToxLoss(round(sqrt(bodytemperature)) * 2)
else
Tempstun = 0
+14 -11
View File
@@ -3,25 +3,28 @@
Put (mob/proc)s here that are in dire need of a code cleanup.
*/
/mob/living/proc/has_disease(var/datum/disease/virus)
/mob/proc/has_disease(var/datum/disease/virus)
for(var/datum/disease/D in viruses)
if(istype(D, virus))
if(D.IsSame(virus))
return 1
return 0
// This proc has some procs that should be extracted from it. I believe we can develop some helper procs from it - Rockdtben
/mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1)
// world << "Contract_disease called by [src] with virus [virus]"
if(stat >=2 || src.resistances.Find(virus.type)) return
if(stat >=2)
return
if(istype(virus, /datum/disease/advance))
var/datum/disease/advance/A = virus
if(A.GetDiseaseID() in resistances)
return
else
if(src.resistances.Find(virus.type))
return
//This gives a chance to re-infect cured/vaccinated mobs
// if(virus.type in resistances)
// if(prob(99.9)) return
// resistances.Remove(virus.type)//the resistance is futile
for(var/datum/disease/D in viruses)
if(istype(D, virus.type))
return // two viruses of the same kind can't infect a body at once!!
if(has_disease(virus))
return
if(force_species_check)
@@ -37,7 +40,7 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
//if(src.virus) < -- this used to replace the current disease. Not anymore!
//src.virus.cure(0)
var/datum/disease/v = new virus.type
var/datum/disease/v = new virus.type(D = virus)
src.viruses += v
v.affected_mob = src
v.strain_data = v.strain_data.Copy()