/mob/living/silicon/robot/verb/cmd_show_laws() set category = "Robot Commands" set name = "Show Laws" if(usr.stat == DEAD) return //won't work if dead show_laws() /mob/living/silicon/robot/show_laws(everyone = 0) laws_sanity_check() var/who if (everyone) who = world else who = src if(lawupdate) if (connected_ai) if(connected_ai.stat || connected_ai.control_disabled) to_chat(src, "AI signal lost, unable to sync laws.") else lawsync() to_chat(src, "Laws synced with AI, be sure to note any changes.") else to_chat(src, "No AI selected to sync laws with, disabling lawsync protocol.") lawupdate = 0 to_chat(who, "Obey these laws:") laws.show_laws(who) if (shell) //AI shell to_chat(who, "Remember, you are an AI remotely controlling your shell, other AIs can be ignored.") else if (connected_ai) to_chat(who, "Remember, [connected_ai.name] is your master, other AIs can be ignored.") else if (emagged) to_chat(who, "Remember, you are not required to listen to the AI.") else to_chat(who, "Remember, you are not bound to any AI, you are not required to listen to them.") /mob/living/silicon/robot/proc/lawsync() laws_sanity_check() var/datum/ai_laws/master = connected_ai ? connected_ai.laws : null var/temp if (master) laws.devillaws.len = master.devillaws.len for (var/index = 1, index <= master.devillaws.len, index++) temp = master.devillaws[index] if (length(temp) > 0) laws.devillaws[index] = temp laws.ion.len = master.ion.len for (var/index = 1, index <= master.ion.len, index++) temp = master.ion[index] if (length(temp) > 0) laws.ion[index] = temp laws.hacked.len = master.hacked.len for (var/index = 1, index <= master.hacked.len, index++) temp = master.hacked[index] if (length(temp) > 0) laws.hacked[index] = temp if(master.zeroth_borg) //If the AI has a defined law zero specifically for its borgs, give it that one, otherwise give it the same one. --NEO temp = master.zeroth_borg else temp = master.zeroth laws.zeroth = temp laws.inherent.len = master.inherent.len for (var/index = 1, index <= master.inherent.len, index++) temp = master.inherent[index] if (length(temp) > 0) laws.inherent[index] = temp laws.supplied.len = master.supplied.len for (var/index = 1, index <= master.supplied.len, index++) temp = master.supplied[index] if (length(temp) > 0) laws.supplied[index] = temp picturesync()