diff --git a/code/controllers/Processes/weather.dm b/code/controllers/Processes/weather.dm deleted file mode 100644 index 919352313c6..00000000000 --- a/code/controllers/Processes/weather.dm +++ /dev/null @@ -1,54 +0,0 @@ -//Used for all kinds of weather, ex. lavaland ash storms. -// TODO: This could probably be better-integrated with the space manager -var/global/datum/controller/process/weather/weather_master - -/datum/controller/process/weather - var/list/processing_weather = list() - var/list/existing_weather = list() - var/list/eligible_zlevels = list() - -/datum/controller/process/weather/setup() - name = "weather" - schedule_interval = 10 - - for(var/V in subtypesof(/datum/weather)) - var/datum/weather/W = V - existing_weather |= new W - -/datum/controller/process/weather/statProcess() - ..() - stat(null, "[processing_weather.len] weather") - -/datum/controller/process/weather/doWork() - for(var/V in processing_weather) - var/datum/weather/W = V - if(W.aesthetic) - continue - for(var/mob/living/L in mob_list) - if(W.can_impact(L)) - W.impact(L) - SCHECK - for(var/Z in eligible_zlevels) - var/list/possible_weather_for_this_z = list() - for(var/V in existing_weather) - var/datum/weather/WE = V - if(WE.target_z == Z && WE.probability) //Another check so that it doesn't run extra weather - possible_weather_for_this_z[WE] = WE.probability - var/datum/weather/W = pickweight(possible_weather_for_this_z) - run_weather(W.name) - eligible_zlevels -= Z - addtimer(CALLBACK(src, .proc/make_z_eligible, Z), rand(3000, 6000) + W.weather_duration_upper, TIMER_UNIQUE) //Around 5-10 minutes between weathers - -DECLARE_GLOBAL_CONTROLLER(weather, weather_master) - -/datum/controller/process/weather/proc/run_weather(weather_name) - if(!weather_name) - return - for(var/V in existing_weather) - var/datum/weather/W = V - if(W.name == weather_name) - W.telegraph() - SCHECK - -/datum/controller/process/weather/proc/make_z_eligible(zlevel) - eligible_zlevels |= zlevel