Files
Paradise/code/controllers/Processes/diseases.dm
Tigercat2000 ad2cf86898 -tg- disease1
Wee! Readds Disease1, kills off disease2, and finally removes poop.dmi
(fucking piece of shit)

Needs WAY more testing, most of which I don't know how to do yet, because
I've never used this system. Fun!

Changes:
 - Virus2 has been removed completely.
  - Some symptoms have not been readded. Aka, none of them have been
    readded, I just wanted to get this shit ported.
  - Virology has been updated slightly to mirror -tg-'s boxstation, as the
    virus2 machines are gone.
 - Welcome back, disease1
  - The centrifuge, vials, splicer, analyzer, growerthing, have all been
    replaced by the PanD.E.M.I.C. 2220
  - No symptoms have been completely removed; However, vision symptoms
    have been disabled pending byond 510, and genetics symptoms have been
    disabled until "when I figure out how to fix them".
  - Advanced Mutation Toxin now uses a disease, which turns people from
    species, to slime person, to slime. Slime people are instantly turned
    to a slime.
  - Diseased touch now give people appendicitis. Yes, they VANT YOUR...
    appendix.
  - Virology now has a fridge with the following in it:
    - Antiviral Syringes
    - 1 Rhinovirus culture
    - 1 Flu culture
    - 1 Bottle of Mutagen
    - 1 Bottle of Plasma
    - 1 Bottle of Synaptizine
  - A few more things, which I can't remember and can't look at while writing
    this commit. Sometimes, git hurts.

TODO:
 - Test more shit and figure out how the PanD.E.M.I.C. works/is supposed to
   work.
 - Fix genetics symptoms.
 - Give vampires a less shitty diseased touch.
 - Add appendicitis event.
 -
2016-03-27 21:24:00 -07:00

45 lines
1.2 KiB
Plaintext

var/datum/controller/process/diseases/disease_master
/datum/controller/process/diseases
var/list/currentrun = list()
var/list/processing_diseases = list()
/datum/controller/process/diseases/setup()
name = "disease"
schedule_interval = 20 // every 2 seconds
start_delay = 7
log_startup_progress("Disease controller starting.")
if(disease_master)
qdel(disease_master) //only one mob master
disease_master = src
register_diseases() //register all pre-round diseases created
/datum/controller/process/diseases/statProcess()
..()
stat(null, "[processing_diseases.len] diseases")
/datum/controller/process/diseases/doWork()
src.currentrun = processing_diseases.Copy()
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
while(currentrun.len)
var/datum/disease/thing = currentrun[1]
currentrun.Cut(1, 2)
if(thing)
try
thing.process()
catch(var/exception/e)
catchException(e, thing)
SCHECK
else
catchBadType(thing)
processing_diseases.Remove(thing)
/datum/controller/process/diseases/proc/register_diseases()
for(var/datum/disease/D in world)
if(!processing_diseases.Find(D))
D.register()