From f5c677299aaab51473d73ca995bea228089c8f7f Mon Sep 17 00:00:00 2001 From: Kyep Date: Tue, 11 Dec 2018 16:19:15 -0800 Subject: [PATCH] law manager, mecha control --- code/modules/mob/living/silicon/ai/ai.dm | 15 ++++++++++++++- code/modules/nano/modules/law_manager.dm | 4 ++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index a6400142086..fb1f930e6fb 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -656,7 +656,20 @@ var/list/ai_verbs_default = list( return if(href_list["ai_take_control"]) //Mech domination + var/obj/mecha/M = locate(href_list["ai_take_control"]) + + if(!M) + return + + var/mech_has_controlbeacon = FALSE + for(var/obj/item/mecha_parts/mecha_tracking/ai_control/A in M.trackers) + mech_has_controlbeacon = TRUE + break + if(!can_dominate_mechs && !mech_has_controlbeacon) + message_admins("Warning: [key_name(usr)] attempted control of a mecha without can_dominate_mechs or a control beacon in the mech.") + return + if(controlled_mech) to_chat(src, "You are already loaded into an onboard computer!") return @@ -670,7 +683,7 @@ var/list/ai_verbs_default = list( to_chat(src, "You aren't in your core!") return if(M) - M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself. + M.transfer_ai(AI_MECH_HACK, src, usr) //Called om the mech itself. else if(href_list["faketrack"]) var/mob/target = locate(href_list["track"]) in GLOB.mob_list diff --git a/code/modules/nano/modules/law_manager.dm b/code/modules/nano/modules/law_manager.dm index 04a98aa25a9..6294d22e99a 100644 --- a/code/modules/nano/modules/law_manager.dm +++ b/code/modules/nano/modules/law_manager.dm @@ -31,6 +31,10 @@ if(..()) return 1 + if(!can_still_topic()) + message_admins("Warning: [key_name(usr)] failed initial can_still_topic in nano_module/law_manager/Topic") + return 1 + if(href_list["set_view"]) current_view = text2num(href_list["set_view"]) return 1