Stop carded AIs from activating doomsday device (#63347)

This commit is contained in:
RandomGamer123
2021-12-15 22:12:20 -08:00
committed by GitHub
parent 1fbe081711
commit 4af68e54cf
@@ -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, "<span class='small boldannounce'>run -o -a 'selfdestruct'</span>")
sleep(5)
if(QDELETED(owner) || owner_AI.shunted)
if(QDELETED(owner) || !isturf(owner_AI.loc))
active = FALSE
return
to_chat(owner, "<span class='small boldannounce'>Running executable 'selfdestruct'...</span>")
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, "<span class='small boldannounce'>auth 'akjv9c88asdf12nb' [pass]</span>")
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, "<span class='small boldannounce'>Y</span>")
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, "<span class='small boldannounce'>Y</span>")
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, "<span class='small boldannounce'>[pass]</span>")
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)