diff --git a/code/controllers/Processes/turf.dm b/code/controllers/Processes/turf.dm index c93325012c..2ac33f48ba 100644 --- a/code/controllers/Processes/turf.dm +++ b/code/controllers/Processes/turf.dm @@ -2,7 +2,7 @@ var/global/list/turf/processing_turfs = list() /datum/controller/process/turf/setup() name = "turf" - schedule_interval = 30 // every 3 seconds + schedule_interval = 20 // every 2 seconds /datum/controller/process/turf/doWork() for(var/turf/T in processing_turfs) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 4d14bdac04..0ff8136243 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -32,11 +32,19 @@ var/list/global/wall_cache = list() if(!isnull(rmaterialtype)) reinf_material = name_to_material[rmaterialtype] update_material() + processing_turfs |= src +/turf/simulated/wall/Destroy() + processing_turfs -= src + dismantle_wall(null,null,1) + ..() + + /turf/simulated/wall/process() // Calling parent will kill processing - radiate() + if(!radiate()) + return PROCESS_KILL /turf/simulated/wall/bullet_act(var/obj/item/projectile/Proj) if(istype(Proj,/obj/item/projectile/beam)) @@ -238,12 +246,13 @@ var/list/global/wall_cache = list() return 0 /turf/simulated/wall/proc/radiate() - if(!material.radioactivity) + var/total_radiation = material.radioactivity + (reinf_material ? reinf_material.radioactivity / 2 : 0) + if(!total_radiation) return for(var/mob/living/L in range(3,src)) - L.apply_effect(material.radioactivity,IRRADIATE,0) - return + L.apply_effect(total_radiation, IRRADIATE,0) + return total_radiation /turf/simulated/wall/proc/burn(temperature) spawn(2) @@ -265,8 +274,3 @@ var/list/global/wall_cache = list() burn(exposed_temperature) return ..() - -/turf/simulated/wall/Destroy() - processing_turfs -= src - dismantle_wall(null,null,1) - ..()