mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 07:33:34 +01:00
Merge branch 'master' into buttbots2
Conflicts: code/defines/procs/AStar.dm code/modules/mob/living/simple_animal/bot/cleanbot.dm code/modules/mob/living/simple_animal/bot/medbot.dm paradise.dme
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user