diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index b8d54dacbff..4dc1758066f 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -8,7 +8,7 @@ small = 1 pass_flags = 1 density = 0 - + holder_type = /obj/item/weapon/holder/pai var/network = "SS13" var/obj/machinery/camera/current = null @@ -25,7 +25,11 @@ "Mouse" = "mouse", "Monkey" = "monkey", "Corgi" = "borgi", - "Fox" = "fox" + "Fox" = "fox", + "Parrot" = "parrot", + "Box Bot" = "boxbot", + "Spider Bot" = "spiderbot", + "Fairy" = "fairy" ) var/global/list/possible_say_verbs = list( @@ -461,6 +465,16 @@ src.client.perspective = EYE_PERSPECTIVE src.client.eye = card +// If we are being held, handle removing our holder from their inv. + var/obj/item/weapon/holder/H = loc + if(istype(H)) + var/mob/living/M = H.loc + if(istype(M)) + M.unEquip(H) + H.loc = get_turf(src) + src.loc = get_turf(H) + + // Move us into the card and move the card to the ground //This seems redundant but not including the forced loc setting messes the behavior up. src.loc = card card.loc = get_turf(card) @@ -520,6 +534,31 @@ // No binary for pAIs. /mob/living/silicon/pai/binarycheck() return 0 + +// Handle being picked up. + + +/mob/living/silicon/pai/get_scooped(var/mob/living/carbon/grabber) + var/obj/item/weapon/holder/H = ..() + if(!istype(H)) + return + H.icon_state = "pai-[icon_state]" + H.item_state = "pai-[icon_state]" + H.icon_override = 'icons/mob/in-hand/paiheld.dmi'//I have these in diffrent DMI so i am overriding + grabber.put_in_active_hand(H)//for some reason unless i call this it dosen't work + grabber.update_inv_l_hand() + grabber.update_inv_r_hand() + + return H + +/mob/living/silicon/pai/MouseDrop(atom/over_object) + var/mob/living/carbon/H = over_object + if(!istype(H) || !Adjacent(H)) return ..() + if(H.a_intent == "help") + get_scooped(H) + //return + else + return ..() /mob/living/silicon/pai/on_forcemove(atom/newloc) if(card)