anchor.diff:  					on = 0
   
   				m.set_state(!on)
  -
  -			for(var/mob/O in viewers(src)) //tell everyone the operation is done
  +				on = m.on
  +
  +				for(var/mob/O in viewers(src)) //tell everyone the operation is done
  +					if(O != user)
  +						O.show_message(text("\red [user] reprograms [src]. It has been switched to the [on ? "on": "off"] setting."), 1)
  +				user << "\red You finish reprogramming [src]. It has been switched to the [on ? "on": "off"] setting."
  +
  +			update_sprite()
  +			m.busy = 0
  +/obj/structure/breaker/ebreaker/examine(mob/user)
  +	..()
  +	if(locked)
  +		user << "\The [src] appears to be locked."
  +	else
  +		user << "\The [src] appears to be unlocked."
  +	if(!on)
  +		user << "\The [src] is enabled."
  +	else
  +		user << "\The [src] is disabled."
  +
  +/obj/structure/breaker/ebreaker/attackby(obj/item/W, mob/user)
  +	if(istype(W, /obj/item/weapon/card/id))
  +		if(panel_open) //can't lock/unlock if cover is open
  +			return
  +		if(emagged)
  +			user << "\red The [src] does not respond to your commands."
  +			return
  +		if(check_access(W))
  +			if(locked)
  +				locked = 0
  +				user << "\red You unlock the [src]."
  +				return
  +			else
  +				locked = 1
  +				user << "\red You lock the [src]."
  +				return
  +		else
  +			user << "\red Insufficient Access."
  +			return
  +
  +	if(istype(W, /obj/item/weapon/card/emag))
  +		if(panel_open)
  +			return
  +		if(locked)
  +			locked = 0
  +			user << "\red You unlock the [src]."
  +			emagged = 1
  +			update_sprite()
  +			for(var/mob/O in viewers(user))
   				if(O != user)
  -					O.show_message(text("\red [user] reprograms [src]. It has been switched to the [!on ? "on": "off"] setting."), 1)
  -			user << "\red You finish reprogramming [src]. It has been switched to the [!on ? "on": "off"] setting."
  -
  -			if(m.on) //set sprite
  -				icon_state = "ebreaker_on"
  -			else
  -				icon_state = "ebreaker_off"
  -			m.busy = 0+					O << "<span class='danger'> [user] hacked the [src] with [W]!"
  +			return
  +		else
  +			user << "\red You cannot lock the [src] with [W]."
  +			return
  +
  +	if(istype(W, /obj/item/weapon/crowbar))
  +		if(panel_open == 0)
  +			panel_open = 1
  +		else
  +			panel_open = 0
  +		update_sprite()
  +
  +/obj/structure/breaker/ebreaker/proc/update_sprite()
  +	/*
  +	var/sprite_on = "ebreaker_on"
  +	var/sprite_off = "ebreaker_off"
  +	var/sprite_working = "ebreaker_r"
  +	var/sprite_bsod = "ebreaker_bs"
  +	var/sprite_panel = "ebreaker_on
  +
  +	for reference^^
  +	*/
  +	..()
  +
  +	if(panel_open)
  +		icon_state = sprite_panel
  +		return
  +	else if(emagged)
  +		icon_state = sprite_bsod
  +		return
  +	else if(on)
  +		icon_state = sprite_on
  +		return
  +	else
  +		icon_state = sprite_off
  +		return
  +
  +
  
positive.code: 		for(var/obj/structure/cable/C in src.loc)
  			qdel(C)
  
  /////////////////////////
  //  ELECTRONIC BREAKER //
  //  WHAT AM I DOING?!  //
  /////////////////////////
  
  
  /obj/structure/breaker/ebreaker
  
negative.code: 			..()
  
  			m.busy = 1
  			icon_state = sprite_working
  			for(var/mob/O in viewers(m)) //tell everyone something is going on
  				O.show_message(text("\red [src] starts flickering."), 1)
  			user << "\red You start reprogramming [src]. You use your processing power to speed the process up."
  