From 180bebbc512dc13d664c2cc18f55c0ee9d6ed0ca Mon Sep 17 00:00:00 2001 From: Leo Date: Thu, 30 Jun 2016 21:53:41 -0300 Subject: [PATCH] pAI mulebots no longer stuns people (#18965) * pAI mulebots no longer stun * Makes the pAI insertion a proc so it can be overidden for the mulebot feedback --- .../mob/living/simple_animal/bot/bot.dm | 51 ++++++++++--------- .../mob/living/simple_animal/bot/mulebot.dm | 15 ++++-- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index df86b65a6ef..1fb34fd9e90 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -257,29 +257,7 @@ else user << "Access denied." else if(istype(W, /obj/item/device/paicard)) - if(paicard) - user << "A [paicard] is already inserted!" - else if(allow_pai && !key) - if(!locked && !open) - var/obj/item/device/paicard/card = W - if(card.pai && card.pai.mind) - if(!user.drop_item()) - return - W.forceMove(src) - paicard = card - user.visible_message("[user] inserts [W] into [src]!","You insert [W] into [src].") - paicard.pai.mind.transfer_to(src) - src << "You sense your form change as you are uploaded into [src]." - bot_name = name - name = paicard.pai.name - faction = user.faction - add_logs(user, paicard.pai, "uploaded to [src.bot_name],") - else - user << "[W] is inactive." - else - user << "The personality slot is locked." - else - user << "[src] is not compatible with [W]" + insertpai(user, W) else if(istype(W, /obj/item/weapon/hemostat) && paicard) if(open) user << "Close the access panel before manipulating the personality slot!" @@ -864,6 +842,31 @@ Pass a positive integer as an argument to override a bot's default speed. eject += "
" return eject +/mob/living/simple_animal/bot/proc/insertpai(mob/user, obj/item/device/paicard/card) + if(paicard) + user << "A [paicard] is already inserted!" + else if(allow_pai && !key) + if(!locked && !open) + if(card.pai && card.pai.mind) + if(!user.drop_item()) + return + card.forceMove(src) + paicard = card + user.visible_message("[user] inserts [card] into [src]!","You insert [card] into [src].") + paicard.pai.mind.transfer_to(src) + src << "You sense your form change as you are uploaded into [src]." + bot_name = name + name = paicard.pai.name + faction = user.faction + add_logs(user, paicard.pai, "uploaded to [bot_name],") + return 1 + else + user << "[card] is inactive." + else + user << "The personality slot is locked." + else + user << "[src] is not compatible with [card]" + /mob/living/simple_animal/bot/proc/ejectpai(mob/user = null, announce = 1) if(paicard) if(mind && paicard.pai) @@ -918,4 +921,4 @@ Pass a positive integer as an argument to override a bot's default speed. if(!data_hud_type) return var/datum/atom_hud/datahud = huds[data_hud_type] - datahud.add_hud_to(src) \ No newline at end of file + datahud.add_hud_to(src) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index f1e159a3ec9..2d82b9e4a53 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -639,11 +639,12 @@ var/global/mulebot_count = 0 if(istype(M,/mob/living/silicon/robot)) visible_message("[src] bumps into [M]!") else - add_logs(src, M, "knocked down") - visible_message("[src] knocks over [M]!") - M.stop_pulling() - M.Stun(8) - M.Weaken(5) + if(!paicard) + add_logs(src, M, "knocked down") + visible_message("[src] knocks over [M]!") + M.stop_pulling() + M.Stun(8) + M.Weaken(5) return ..() // called from mob/living/carbon/human/Crossed() @@ -737,6 +738,10 @@ var/global/mulebot_count = 0 unload(get_dir(loc, A)) else ..() + +/mob/living/simple_animal/bot/mulebot/insertpai(mob/user, obj/item/device/paicard/card) + if(..()) + visible_message("[src] safeties are locked on.") #undef SIGH #undef ANNOYED