anchor.diff:  						shockedby += "\[[time_stamp()]\][usr](ckey:[usr.ckey])"
   						add_logs(usr, src, "electrified")
   						set_electrified(30)
  -						spawn(10)
  -							while (secondsElectrified > 0)
  -								secondsElectrified--
  -								if(secondsElectrified <= 0)
  -									set_electrified(NOT_ELECTRIFIED)
  -								updateUsrDialog()
  -								sleep(10)
  +						addtimer(CALLBACK(src, .proc/electrified_loop), 10)
   				if(6)
   					//electrify door indefinitely
   					if(wires.is_cut(WIRE_SHOCK))
  
positive.code: 		if(!beingcrowbarred) //being fireaxe'd
  			var/obj/item/twohanded/fireaxe/F = I
  			if(F.wielded)
  				spawn(0)
  					if(density)
  						open(2)
  					else
  						close(2)
  			else
  				to_chat(user, "<span class='warning'>You need to be wielding the fire axe to do that!</span>")
  		else
  			spawn(0)
  				if(density)
  					open(2)
  				else
  					close(2)
  
  	if(istype(I, /obj/item/crowbar/power))
  		if(isElectrified())
  
negative.code: 	if(src.secondsMainPowerLost > 0)
  		src.secondsMainPowerLost = 0
  
  /obj/machinery/door/airlock/proc/handlePowerRestore()
  	var/cont = TRUE
  	while (cont)
  		sleep(10)
  		if(QDELETED(src))
  			return
  		cont = FALSE
  		if(secondsMainPowerLost>0)
  			if(!wires.is_cut(WIRE_POWER1) && !wires.is_cut(WIRE_POWER2))
  				secondsMainPowerLost -= 1
  				updateDialog()
  			cont = TRUE
  		if(secondsBackupPowerLost>0)
  			if(!wires.is_cut(WIRE_BACKUP1) && !wires.is_cut(WIRE_BACKUP2))
  				secondsBackupPowerLost -= 1
  				updateDialog()
  			cont = TRUE
  	spawnPowerRestoreRunning = FALSE
  	updateDialog()
  
  /obj/machinery/door/airlock/proc/loseMainPower()
  	if(secondsMainPowerLost <= 0)
  		secondsMainPowerLost = 60
  		if(secondsBackupPowerLost < 10)
  			secondsBackupPowerLost = 10
  	if(!spawnPowerRestoreRunning)
  		spawnPowerRestoreRunning = TRUE
  	INVOKE_ASYNC(src, .proc/handlePowerRestore)
  
  /obj/machinery/door/airlock/proc/loseBackupPower()
  	if(src.secondsBackupPowerLost < 60)
  