diff --git a/code/defines/mob/living/silicon/robot.dm b/code/defines/mob/living/silicon/robot.dm index 11d3b69717d..fe98de6ffa3 100644 --- a/code/defines/mob/living/silicon/robot.dm +++ b/code/defines/mob/living/silicon/robot.dm @@ -52,4 +52,5 @@ var/weaponlock_time = 120 var/lawupdate = 1 //Cyborgs will sync their laws with their AI by default var/lockcharge //Used when locking down a borg to preserve cell charge - var/speed = 0 //Cause sec borgs gotta go fast \ No newline at end of file + var/speed = 0 //Cause sec borgs gotta go fast + var/scrambledcodes = 0 // Used to determine if a borg shows up on the robotics console. Setting to one hides them. \ No newline at end of file diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 907894c3863..253741cd426 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -39,9 +39,14 @@ if(screen == 1) for(var/mob/living/silicon/robot/R in world) if(istype(user, /mob/living/silicon/ai)) - if (R.connected_ai != user) continue + if (R.connected_ai != user) + continue if(istype(user, /mob/living/silicon/robot)) - if (R != user) continue + if (R != user) + continue + if(R.scrambledcodes) + continue + dat += "[R.name] |" if(R.stat) dat += " Not Responding |" @@ -157,9 +162,9 @@ var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm") if(R) - if(istype(usr, /mob/living/silicon/ai) && R.emagged) - R << "Extreme danger. Termination codes detected from AI. Automatic AI unlink triggered." - R.UnlinkSelf() + if(R.mind && R.mind.special_role && R.emagged) + R << "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered." + R.ResetSecurityCodes() else message_admins("\blue [key_name_admin(usr)] detonated [R.name]!") @@ -218,7 +223,8 @@ while(src.timeleft) for(var/mob/living/silicon/robot/R in world) - R.self_destruct() + if(!R.scrambledcodes) + R.self_destruct() return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 3bd64f2be02..26974ed81f6 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -979,13 +979,14 @@ Frequency: lawupdate = 0 lockcharge = 0 canmove = 1 + scrambledcodes = 1 /mob/living/silicon/robot/proc/ResetSecurityCodes() set category = "Robot Commands" set name = "Reset Identity Codes" - set desc = "Scrambles your security and identification codes and resets your current buffers. Unlocks you, but permenantly severs you from your AI. You can still be blown by a human at the robotics console." + set desc = "Scrambles your security and identification codes and resets your current buffers. Unlocks you and but permenantly severs you from your AI and the robotics console." var/mob/living/silicon/robot/R = usr diff --git a/html/changelog.html b/html/changelog.html index 3e503a9879b..7d208d9d910 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -97,7 +97,7 @@ should be listed in the changelog upon commit tho. Thanks. -->

PolymorphBlue updated: