From d77bcd79379e40f5d9f6d065a0fecdede38bc0a5 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Mon, 28 Sep 2015 12:15:16 +0200 Subject: [PATCH] The silicon law manager now only requires the host to be conscious. This should mean that the law manager is available even for carded AIs, even with the wireless interface disabled. Fixes #11139. --- baystation12.dme | 1 + code/modules/mob/living/silicon/subystems.dm | 2 +- code/modules/nano/interaction/base.dm | 2 +- code/modules/nano/interaction/conscious.dm | 7 +++++++ 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 code/modules/nano/interaction/conscious.dm diff --git a/baystation12.dme b/baystation12.dme index 38b9f77d96..2566203ca0 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1338,6 +1338,7 @@ #include "code\modules\nano\nanoui.dm" #include "code\modules\nano\interaction\admin.dm" #include "code\modules\nano\interaction\base.dm" +#include "code\modules\nano\interaction\conscious.dm" #include "code\modules\nano\interaction\contained.dm" #include "code\modules\nano\interaction\default.dm" #include "code\modules\nano\interaction\inventory.dm" diff --git a/code/modules/mob/living/silicon/subystems.dm b/code/modules/mob/living/silicon/subystems.dm index e8909b0b50..21ce3dd31f 100644 --- a/code/modules/mob/living/silicon/subystems.dm +++ b/code/modules/mob/living/silicon/subystems.dm @@ -76,7 +76,7 @@ set name = "Law Manager" set category = "Subystems" - law_manager.ui_interact(usr, state = self_state) + law_manager.ui_interact(usr, state = conscious_state) /******************** * Power Monitor * diff --git a/code/modules/nano/interaction/base.dm b/code/modules/nano/interaction/base.dm index 602185bb8a..99f9e490be 100644 --- a/code/modules/nano/interaction/base.dm +++ b/code/modules/nano/interaction/base.dm @@ -14,7 +14,7 @@ /mob/proc/shared_nano_interaction() if (src.stat || !client) return STATUS_CLOSE // no updates, close the interface - else if (restrained() || lying || stat || stunned || weakened) + else if (restrained() || lying || stat || stunned || weakened) // TODO: Change to incapaciated() on merge return STATUS_UPDATE // update only (orange visibility) return STATUS_INTERACTIVE diff --git a/code/modules/nano/interaction/conscious.dm b/code/modules/nano/interaction/conscious.dm new file mode 100644 index 0000000000..143bc24956 --- /dev/null +++ b/code/modules/nano/interaction/conscious.dm @@ -0,0 +1,7 @@ +/* + This state only checks if user is conscious. +*/ +/var/global/datum/topic_state/conscious_state/conscious_state = new() + +/datum/topic_state/conscious_state/can_use_topic(var/src_object, var/mob/user) + return user.stat == CONSCIOUS ? STATUS_INTERACTIVE : STATUS_CLOSE