diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 1f7e35b4061..b8ac3adee01 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -196,8 +196,8 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module)) return if (active || owner_AI.stat == DEAD) return //prevent the AI from activating an already active doomsday or while they are dead - if (owner_AI.shunted) - return //prevent AI from activating doomsday while shunted, fucking abusers + if (!isturf(owner_AI.loc)) + return //prevent AI from activating doomsday while shunted or carded, fucking abusers active = TRUE set_up_us_the_bomb(owner) @@ -207,12 +207,12 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module)) var/pass = prob(10) ? "******" : "hunter2" to_chat(owner, "run -o -a 'selfdestruct'") sleep(5) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, "Running executable 'selfdestruct'...") sleep(rand(10, 30)) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return owner.playsound_local(owner, 'sound/misc/bloblarm.ogg', 50, 0, use_reverb = FALSE) @@ -220,63 +220,63 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module)) to_chat(owner, span_boldannounce("This is a class-3 security violation. This incident will be reported to Central Command.")) for(var/i in 1 to 3) sleep(20) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, span_boldannounce("Sending security report to Central Command.....[rand(0, 9) + (rand(20, 30) * i)]%")) sleep(3) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, "auth 'akjv9c88asdf12nb' [pass]") owner.playsound_local(owner, 'sound/items/timer.ogg', 50, 0, use_reverb = FALSE) sleep(30) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, span_boldnotice("Credentials accepted. Welcome, akjv9c88asdf12nb.")) owner.playsound_local(owner, 'sound/misc/server-ready.ogg', 50, 0, use_reverb = FALSE) sleep(5) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, span_boldnotice("Arm self-destruct device? (Y/N)")) owner.playsound_local(owner, 'sound/misc/compiler-stage1.ogg', 50, 0, use_reverb = FALSE) sleep(20) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, "Y") sleep(15) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, span_boldnotice("Confirm arming of self-destruct device? (Y/N)")) owner.playsound_local(owner, 'sound/misc/compiler-stage2.ogg', 50, 0, use_reverb = FALSE) sleep(10) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, "Y") sleep(rand(15, 25)) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, span_boldnotice("Please repeat password to confirm.")) owner.playsound_local(owner, 'sound/misc/compiler-stage2.ogg', 50, 0, use_reverb = FALSE) sleep(14) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, "[pass]") sleep(40) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return to_chat(owner, span_boldnotice("Credentials accepted. Transmitting arming signal...")) owner.playsound_local(owner, 'sound/misc/server-ready.ogg', 50, 0, use_reverb = FALSE) sleep(30) - if(QDELETED(owner) || owner_AI.shunted) + if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return if (owner_AI.stat != DEAD)