anchor.diff:  		flame_range = min (MAX_EX_FLAME_RANGE, flame_range)
   
   	spawn(0)
  -		var/start = world.timeofday
  +		var/start = TimeOfHour
   		if(!epicenter) return
   
   		var/max_range = max(devastation_range, heavy_impact_range, light_impact_range, flame_range)
  +		var/list/cached_exp_block = new
   
   		if(adminlog)
   			message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[epicenter.x];Y=[epicenter.y];Z=[epicenter.z]'>JMP</a>)")
  
positive.code: 				var/turf/Trajectory = T
  				while(Trajectory != epicenter)
  					Trajectory = get_step_towards(Trajectory, epicenter)
  					if(Trajectory.density && Trajectory.explosion_block)
  						dist += Trajectory.explosion_block
  
  					for(var/obj/machinery/door/D in Trajectory)
  						if(D.density && D.explosion_block)
  							dist += D.explosion_block
  
  			var/flame_dist = 0
  //			var/throw_dist = max_range - dist
  
negative.code: 		var/y0 = epicenter.y
  		var/z0 = epicenter.z
  
  		if(config.reactionary_explosions)
  			// Cache the explosion block rating of every turf in the explosion area so
  			//  exploded turfs don't leave the explosion lopsided
  			for(var/turf/T in trange(max_range, epicenter))
  				cached_exp_block[T] = 0
  				if(T.density && T.explosion_block)
  					cached_exp_block[T] += T.explosion_block
  
  				for(var/obj/machinery/door/D in T)
  					if(D.density && D.explosion_block)
  						cached_exp_block[T] += D.explosion_block
  
  		for(var/turf/T in trange(max_range, epicenter))
  
  			var/dist = cheap_hypotenuse(T.x, T.y, x0, y0)
  