anchor.diff:  	else if(issilicon(target))
   		var/mob/living/silicon/S = target
   		//20% chance to actually hit the sensors
  -		if(prob(20))
  +		if(prob(effectchance * diode.rating))
   			S.Weaken(rand(5,10))
   			S << "<span class='warning'>Your sensors were overloaded by a laser!</span>"
   			outmsg = "<span class='notice'>You overload [S] by shining [src] at their sensors.</span>"
  
positive.code: 
  /obj/item/device/laser_pointer/proc/laser_act(var/atom/target, var/mob/living/user)
  	if( !(user in (viewers(7,target))) )
  		return
  	if (!user.IsAdvancedToolUser())
  		user << "<span class='warning'>You don't have the dexterity to do this!</span>"
  
negative.code: 
  /obj/item/device/laser_pointer/New()
  	..()
  	diode = new(src)
  	if(!pointer_icon_state)
  		pointer_icon_state = pick("red_laser","green_laser","blue_laser","purple_laser")
  
  /obj/item/device/laser_pointer/upgraded/New()
  	..()
  	diode = new /obj/item/weapon/stock_parts/micro_laser/ultra
  
  
  
  /obj/item/device/laser_pointer/attack(mob/living/M, mob/user)
  	laser_act(M, user)
  
  /obj/item/device/laser_pointer/attackby(obj/item/W, mob/user)
  	if(istype(W, /obj/item/weapon/stock_parts/micro_laser))
  		if(!diode)
  			user.drop_item()
  			W.loc = src
  			diode = W
  			user << "<span class='notice'>You install a [diode.name] in [src].</span>"
  		else
  			user << "<span class='notice'>[src] already has a cell.</span>"
  
  	else if(istype(W, /obj/item/weapon/screwdriver))
  		if(diode)
  			user << "<span class='notice'>You remove the [diode.name] from the [src].</span>"
  			diode.loc = get_turf(src.loc)
  			diode = null
  			return
  		..()
  	return
  
  /obj/item/device/laser_pointer/afterattack(var/atom/target, var/mob/living/user, flag, params)
  	if(flag)	//we're placing the object on a table or in backpack
  		return
  