diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 112c3431e52..29910ceaea9 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -32,6 +32,8 @@ build_click(src, client.buildmode, params, A) return + if(alienAI) return + var/list/modifiers = params2list(params) if(modifiers["middle"]) MiddleClickOn(A) diff --git a/code/game/gamemodes/xenos/xenos.dm b/code/game/gamemodes/xenos/xenos.dm index 1477bd12f09..54d63a6948b 100644 --- a/code/game/gamemodes/xenos/xenos.dm +++ b/code/game/gamemodes/xenos/xenos.dm @@ -92,11 +92,13 @@ loc_landmark = sloc O.loc = loc_landmark.loc O.icon_state = "ai-alien" - O.verbs.Remove(,/mob/living/silicon/ai/proc/ai_call_shuttle, \ - /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ - /mob/living/silicon/ai/proc/toggle_camera_light,/mob/living/silicon/ai/verb/pick_icon) + O.verbs.Remove(,/mob/living/silicon/ai/proc/ai_call_shuttle,/mob/living/silicon/ai/proc/ai_camera_track, \ + /mob/living/silicon/ai/proc/ai_camera_list, /mob/living/silicon/ai/proc/ai_network_change, \ + /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ + /mob/living/silicon/ai/proc/toggle_camera_light,/mob/living/silicon/ai/verb/pick_icon) O.laws = new /datum/ai_laws/alienmov O.name = "Alien AI" + O.real_name = name O.alienAI = 1 O.network = list("SS13","Xeno") O.holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo3")) @@ -131,6 +133,7 @@ del(xeno_mind) O.job = "Alien Cyborg" O.name = "Alien Cyborg" + O.real_name = name O.module = new /obj/item/weapon/robot_module/alien/hunter(src) O.hands.icon_state = "standard" O.icon = 'icons/mob/alien.dmi' diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index ce183612028..cb266209f45 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -193,7 +193,10 @@ Class Procs: src.add_fingerprint(usr) return 0 -/obj/machinery/attack_ai(mob/user as mob) +/obj/machinery/attack_ai(var/mob/user as mob) + if(isAI(user)) + var/mob/living/silicon/ai/A = user + if(A.alienAI) return if(isrobot(user)) // For some reason attack_robot doesn't work // This is to stop robots from using cameras to remotely control machines. diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 3c63fb8c271..9de9627b2b1 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -107,7 +107,8 @@ var/list/ai_list = list() if(B.alien) B.brainmob.mind.transfer_to(src) icon_state = "ai-alien" - verbs.Remove(,/mob/living/silicon/ai/proc/ai_call_shuttle, \ + verbs.Remove(,/mob/living/silicon/ai/proc/ai_call_shuttle,/mob/living/silicon/ai/proc/ai_camera_track, \ + /mob/living/silicon/ai/proc/ai_camera_list, /mob/living/silicon/ai/proc/ai_network_change, \ /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ /mob/living/silicon/ai/proc/toggle_camera_light,/mob/living/silicon/ai/verb/pick_icon) laws = new /datum/ai_laws/alienmov