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