anchor.diff:  	smoke.set_up(0, where)
   	smoke.start()
   
  -/obj/machinery/rnd/experimentor/proc/pickWeighted(list/from)
  -	var/result = FALSE
  -	var/counter = 1
  -	while(!result)
  -		var/probtocheck = from[counter]
  -		if(prob(probtocheck))
  -			result = TRUE
  -			return from[counter+1]
  -		if(counter + 2 < from.len)
  -			counter = counter + 2
  -		else
  -			counter = 1
   
   /obj/machinery/rnd/experimentor/proc/experiment(exp,obj/item/exp_on)
   	recentlyExperimented = 1
  
positive.code: 			visible_message("<span class='warning'>[src] malfunctions, spewing toxic waste!</span>")
  			for(var/turf/T in oview(1, src))
  				if(!T.density)
  					if(prob(EFFECT_PROB_VERYHIGH))
  						var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
  						reagentdecal.reagents.add_reagent("radium", 7)
  		else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
  			var/savedName = "[exp_on]"
  			ejectItem(TRUE)
  			var/newPath = pickWeighted(valid_items)
  			loaded_item = new newPath(src)
  			visible_message("<span class='warning'>[src] malfunctions, transforming [savedName] into [loaded_item]!</span>")
  			investigate_log("Experimentor has transformed [savedName] into [loaded_item]", INVESTIGATE_EXPERIMENTOR)
  
negative.code: 
  
  /obj/machinery/rnd/experimentor/proc/SetTypeReactions()
  	for(var/I in typesof(/obj/item))
  		if(istype(I, /obj/item/relic))
  			item_reactions["[I]"] = SCANTYPE_DISCOVER
  		else
  			item_reactions["[I]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE)
  
  		if(ispath(I, /obj/item/stock_parts) || ispath(I, /obj/item/grenade/chem_grenade) || ispath(I, /obj/item/kitchen))
  			var/obj/item/tempCheck = I
  			if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way
  				valid_items["[I]"] += 15
  
  		if(ispath(I, /obj/item/reagent_containers/food))
  			var/obj/item/tempCheck = I
  			if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way
  				valid_items["[I]"] += rand(1,4)
  
  		if(ispath(I, /obj/item/construction/rcd) || ispath(I, /obj/item/grenade) || ispath(I, /obj/item/aicard) || ispath(I, /obj/item/storage/backpack/holding) || ispath(I, /obj/item/slime_extract) || ispath(I, /obj/item/onetankbomb) || ispath(I, /obj/item/transfer_valve))
  			var/obj/item/tempCheck = I
  