anchor.diff:  	invisibility = 101
   
   
  -/turf/simulated/floor/plating/lava/smooth/proc/Spread(probability = 30, prob_loss = 25)
  +/turf/proc/Spread(probability = 30, prob_loss = 25)
   	if(probability <= 0)
   		return
   
   	for(var/turf/simulated/F in orange(1, src))
   
  -		var/turf/simulated/floor/plating/lava/smooth/L = new(F)
  +		var/turf/L = new src.type(F)
   
   		if(L && prob(probability))
   			L.Spread(probability - prob_loss)
  
positive.code: 		if (W.z != target_z || W.connected)
  			continue
  		W.connected = 1
  		var/turf/cur_turf = new /turf/simulated/floor/plating/lava/smooth(get_turf(W))
  		var/turf/target_turf = get_turf(pick(river_nodes))
  
  		var/detouring = 0
  
negative.code: #define RANDOM_LOWER_X 50
  #define RANDOM_LOWER_Y 50
  
  /proc/spawn_rivers(target_z = 5, nodes = 4, turf_type = /turf/simulated/floor/plating/lava/smooth)
  	var/list/river_nodes = list()
  	var/num_spawned = 0
  	while(num_spawned < nodes)
  