anchor.diff:  			active_apc = null
   		to_chat(usr, "<span class='robot notice'>[icon2html(src, usr)] Connected to APC in [APC.area]. Interface request sent.</span>")
   		log_activity("remotely accessed APC in [APC.area]")
  -		APC.interact(usr, GLOB.not_incapacitated_state)
  +		APC.ui_interact(usr, state = GLOB.not_incapacitated_state)
   		playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
   		message_admins("[key_name_admin(usr)] remotely accessed [APC] from [src] at [get_area(src)].")
   		log_game("[key_name(usr)] remotely accessed [APC] from [src] at [get_area(src)].")
  
positive.code: 	req_access = list(ACCESS_ENGINE)
  	circuit = /obj/item/circuitboard/computer/apc_control
  	light_color = LIGHT_COLOR_YELLOW
  	var/list/apcs //APCs the computer has access to
  	var/mob/living/operator //Who's operating the computer right now
  	var/obj/machinery/power/apc/active_apc //The APC we're using right now
  	var/list/result_filters //For sorting the results
  
negative.code: 			dat += "<b>Name:</b> <a href='?src=[REF(src)];name_filter=1'>[result_filters["Name"] ? result_filters["Name"] : "None set"]</a><br>"
  			dat += "<b>Charge:</b> <a href='?src=[REF(src)];above_filter=1'>\>[result_filters["Charge Above"] ? result_filters["Charge Above"] : "NaN"]%</a> and <a href='?src=[REF(src)];below_filter=1'>\<[result_filters["Charge Below"] ? result_filters["Charge Below"] : "NaN"]%</a><br>"
  			dat += "<b>Accessible:</b> <a href='?src=[REF(src)];access_filter=1'>[result_filters["Responsive"] ? "Non-Responsive Only" : "All"]</a><br><br>"
  			for(var/A in GLOB.apcs_list)
  				if(check_apc(A))
  					var/obj/machinery/power/apc/APC = A
  					if(result_filters["Name"] && !findtext(APC.name, result_filters["Name"]) && !findtext(APC.area.name, result_filters["Name"]))
  						continue
  					if(result_filters["Charge Above"] && (!APC.cell || (APC.cell && (APC.cell.charge / APC.cell.maxcharge) < result_filters["Charge Above"] / 100)))
  						continue
  					if(result_filters["Charge Below"] && APC.cell && (APC.cell.charge / APC.cell.maxcharge) > result_filters["Charge Below"] / 100)
  						continue
  					if(result_filters["Responsive"] && !APC.aidisabled)
  						continue
  					dat += "<a href='?src=[REF(src)];access_apc=[REF(APC)]'>[A]</a><br>\
  					<b>Charge:</b> [APC.cell ? "[DisplayEnergy(APC.cell.charge)] / [DisplayEnergy(APC.cell.maxcharge)] ([round((APC.cell.charge / APC.cell.maxcharge) * 100)]%)" : "No Powercell Installed"]<br>\
  					<b>Area:</b> [APC.area]<br>\
  					[APC.aidisabled || APC.panel_open ? "<font color='#FF0000'>APC does not respond to interface query.</font>" : "<font color='#00FF00'>APC responds to interface query.</font>"]<br><br>"
  			dat += "<a href='?src=[REF(src)];check_logs=1'>Check Logs</a><br>"
  			dat += "<a href='?src=[REF(src)];log_out=1'>Log Out</a><br>"
  			if(obj_flags & EMAGGED)
  