//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /obj/machinery/computer/robotics name = "robotics control" desc = "Used to remotely lockdown or detonate linked Cyborgs." icon = 'icons/obj/computer.dmi' icon_state = "robot" req_access = list(access_robotics) circuit = "/obj/item/weapon/circuitboard/robotics" var/hacking = 0 var/id = 0.0 var/temp = null var/status = 0 var/timeleft = 60 var/stop = 0.0 var/screen = 0 // 0 - Main Menu, 1 - Cyborg Status, 2 - Kill 'em All! -- In text light_color = LIGHT_COLOR_PINK /obj/machinery/computer/robotics/attack_ai(var/mob/user as mob) src.add_hiddenprint(user) return src.attack_hand(user) /obj/machinery/computer/robotics/attack_paw(var/mob/user as mob) return src.attack_hand(user) /obj/machinery/computer/robotics/attack_hand(var/mob/user as mob) if(..()) return if (src.z > 6) to_chat(user, "Unable to establish a connection: You're too far away from the station!") return user.set_machine(src) var/dat if (src.temp) dat = "[src.temp]

Clear Screen" else if(screen == 0) dat += {"

Cyborg Control Console


1. Cyborg Status
2. Emergency Full Destruct
"} if(screen == 1) for(var/mob/living/silicon/robot/R in mob_list) if(istype(user, /mob/living/silicon/ai)) if (R.connected_ai != user) continue if(istype(user, /mob/living/silicon/robot)) if (R != user) continue if(R.scrambledcodes) continue dat += "[R.name] |" if(R.stat) dat += " Not Responding |" else if (!R.canmove) dat += " Locked Down |" else dat += " Operating Normally |" if (!R.canmove) else if(R.cell) dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |" else dat += " No Cell Installed |" if(R.module) dat += " Module Installed ([R.module.name]) |" else dat += " No Module Installed |" if(R.connected_ai) dat += " Slaved to [R.connected_ai.name] |" else dat += " Independent from AI |" if(issilicon(user) && ismalf(user) && !R.emagged) dat += "(Hack) " dat += {"([R.canmove ? "Lockdown" : "Release"]) ([R.modulelock ? "Module-unlock" : "Module-lock"]) (Destroy)
"} dat += "(Return to Main Menu)
" if(screen == 2) if(!src.status) dat += {"
Emergency Robot Self-Destruct
\nStatus: Off
\n
\nCountdown: [src.timeleft]/60 \[Reset\]
\n
\nStart Sequence
\n
\nClose"} else dat = {"Emergency Robot Self-Destruct
\nStatus: Activated
\n
\nCountdown: [src.timeleft]/60 \[Reset\]
\n
\nStop Sequence
\n
\nClose"} dat += "(Return to Main Menu)
" user << browse(dat, "window=computer;size=400x500") onclose(user, "computer") return /obj/machinery/computer/robotics/Topic(href, href_list) if(..()) return 1 else usr.set_machine(src) if (href_list["eject"]) src.temp = {"Destroy Robots?

\[Swipe ID to initiate destruction sequence\]
Cancel"} else if (href_list["eject2"]) var/obj/item/weapon/card/id/I = usr.get_active_hand() if (istype(I, /obj/item/device/pda)) var/obj/item/device/pda/pda = I I = pda.id if (istype(I)) if(src.check_access(I)) if (!status) message_admins("[key_name_admin(usr)] has initiated the global cyborg killswitch!") log_game("[key_name(usr)] has initiated the global cyborg killswitch!") src.status = 1 src.start_sequence() src.temp = null else to_chat(usr, "Access Denied.") else if (href_list["stop"]) src.temp = {" Stop Robot Destruction Sequence?

Yes
No"} else if (href_list["stop2"]) src.stop = 1 src.temp = null src.status = 0 else if (href_list["reset"]) src.timeleft = 60 else if (href_list["temp"]) src.temp = null else if (href_list["screen"]) switch(href_list["screen"]) if("0") screen = 0 if("1") screen = 1 if("2") screen = 2 else if (href_list["killbot"]) if(src.allowed(usr)) var/mob/living/silicon/robot/R = locate(href_list["killbot"]) if(R) if(istype(usr, /mob/living/silicon/ai)) if (R.connected_ai != usr) return if(istype(usr, /mob/living/silicon/robot)) if (R != usr) return if(R.scrambledcodes) return var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm") if(R && istype(R)) if(R.self_destruct()) message_admins("[key_name_admin(usr)] detonated [R.name]!") log_game("[key_name_admin(usr)] detonated [R.name]!") else to_chat(usr, "Access Denied.") else if (href_list["lockbot"]) if(src.allowed(usr)) var/mob/living/silicon/robot/R = locate(href_list["lockbot"]) if(R && istype(R)) if(istype(usr, /mob/living/silicon/ai)) if (R.connected_ai != usr) return if(istype(usr, /mob/living/silicon/robot)) if (R != usr) return if(R.scrambledcodes) return var/choice = input("Are you certain you wish to [R.modulelock ? "module-unlock" : "module-lock"] [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm") if(R && istype(R)) message_admins("[key_name_admin(usr)] [R.modulelock ? "module-unlocked" : "module-locked"] [R.name]!") log_game("[key_name(usr)] [R.modulelock ? "module-unlocked" : "module-locked"] [R.name]!") R.toggle_modulelock() if (R.modulelock) to_chat(R, "Your modules have been remotely locked!") else to_chat(R, "Your modules have been remotely unlocked!") else to_chat(usr, "Access Denied.") else if (href_list["stopbot"]) if(src.allowed(usr)) var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) if(R && istype(R)) // Extra sancheck because of input var references if(istype(usr, /mob/living/silicon/ai)) if (R.connected_ai != usr) return if(istype(usr, /mob/living/silicon/robot)) if (R != usr) return if(R.scrambledcodes) return var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm") if(R && istype(R)) message_admins("[key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!") log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [R.name]!") R.canmove = !R.canmove if (R.lockcharge) // R.cell.charge = R.lockcharge R.lockcharge = !R.lockcharge to_chat(R, "Your lockdown has been lifted!") else R.lockcharge = !R.lockcharge // R.cell.charge = 0 to_chat(R, "You have been locked down!") else to_chat(usr, "Access Denied.") else if (href_list["magbot"]) if(src.allowed(usr)) var/mob/living/silicon/robot/R = locate(href_list["magbot"]) if(istype(usr, /mob/living/silicon/ai)) if (R.connected_ai != usr) return if(istype(usr, /mob/living/silicon/robot)) if (R != usr) return if(R.scrambledcodes) return // whatever weirdness this is supposed to be, but that is how the href gets added, so here it is again if((ismalf(usr) || (usr == R && istraitor(usr))) && !R.emagged) var/choice = input("Are you certain you wish to hack [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm") if(R) if (!hacking) hacking = 1 to_chat(usr, "Beginning override of cyborg safeties. This will take some time, and you cannot hack other borgs during the process.") sleep(600) // message_admins("[key_name_admin(usr)] emagged [R.name] using robotic console!") log_game("[key_name(usr)] emagged [R.name] using robotic console!") R.SetEmagged(TRUE) to_chat(usr, "Hack successful. [R.name] now has access to illegal technology.") if(R.mind.special_role) R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes hacking = 0 else to_chat(usr, "You are already hacking a cyborg.") src.add_fingerprint(usr) src.updateUsrDialog() return /obj/machinery/computer/robotics/proc/start_sequence() do if(src.stop) src.stop = 0 return src.timeleft-- sleep(10) while(src.timeleft) for(var/mob/living/silicon/robot/R in mob_list) if(!R.scrambledcodes) R.self_destruct() return /obj/machinery/computer/robotics/emag(mob/user) ..() req_access = list() if(user) to_chat(user, "You disable the console's access requirement.")