/obj/effect/equip_e/monkey/process() if (item) item.add_fingerprint(source) if (!( item )) switch(place) if("head") if (!( target.wear_mask )) del(src) return if("l_hand") if (!( target.l_hand )) del(src) return if("r_hand") if (!( target.r_hand )) del(src) return if("back") if (!( target.back )) del(src) return if("handcuff") if (!( target.handcuffed )) del(src) return if("internal") if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && istype(target.back, /obj/item/weapon/tank) && !( target.internal )) ) && !( target.internal ))) del(src) return if (item) for(var/mob/O in viewers(target, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] is trying to put a [] on []", source, item, target), 1) else var/message = null switch(place) if("mask") if(istype(target.wear_mask, /obj/item/clothing)&&!target.wear_mask:canremove) message = text("\red [] fails to take off \a [] from []'s body!", source, target.wear_mask, target) else message = text("\red [] is trying to take off \a [] from []'s head!", source, target.wear_mask, target) if("l_hand") message = text("\red [] is trying to take off a [] from []'s left hand!", source, target.l_hand, target) if("r_hand") message = text("\red [] is trying to take off a [] from []'s right hand!", source, target.r_hand, target) if("back") message = text("\red [] is trying to take off a [] from []'s back!", source, target.back, target) if("handcuff") message = text("\red [] is trying to unhandcuff []!", source, target) if("internal") if (target.internal) message = text("\red [] is trying to remove []'s internals", source, target) else message = text("\red [] is trying to set on []'s internals.", source, target) else for(var/mob/M in viewers(target, null)) M.show_message(message, 1) spawn( 30 ) done() return return /obj/effect/equip_e/monkey/done() if(!source || !target) return if(source.loc != s_loc) return if(target.loc != t_loc) return if(LinkBlocked(s_loc,t_loc)) return if(item && source.get_active_hand() != item) return if ((source.restrained() || source.stat)) return switch(place) if("mask") if (target.wear_mask) if(istype(target.wear_mask, /obj/item/clothing)&& !target.wear_mask:canremove) return var/obj/item/W = target.wear_mask target.u_equip(W) if (target.client) target.client.screen -= W if (W) W.loc = target.loc W.dropped(target) W.layer = initial(W.layer) W.add_fingerprint(source) else if (istype(item, /obj/item/clothing/mask)) source.drop_item() loc = target item.layer = 20 target.wear_mask = item item.loc = target if("l_hand") if (target.l_hand) var/obj/item/W = target.l_hand target.u_equip(W) if (target.client) target.client.screen -= W if (W) W.loc = target.loc W.dropped(target) W.layer = initial(W.layer) W.add_fingerprint(source) else if (istype(item, /obj/item)) source.drop_item() loc = target item.layer = 20 target.l_hand = item item.loc = target if("r_hand") if (target.r_hand) var/obj/item/W = target.r_hand target.u_equip(W) if (target.client) target.client.screen -= W if (W) W.loc = target.loc W.dropped(target) W.layer = initial(W.layer) W.add_fingerprint(source) else if (istype(item, /obj/item)) source.drop_item() loc = target item.layer = 20 target.r_hand = item item.loc = target if("back") if (target.back) var/obj/item/W = target.back target.u_equip(W) if (target.client) target.client.screen -= W if (W) W.loc = target.loc W.dropped(target) W.layer = initial(W.layer) W.add_fingerprint(source) else if ((istype(item, /obj/item) && item.slot_flags & SLOT_BACK )) source.drop_item() loc = target item.layer = 20 target.back = item item.loc = target if("handcuff") if (target.handcuffed) var/obj/item/W = target.handcuffed target.u_equip(W) if (target.client) target.client.screen -= W if (W) W.loc = target.loc W.dropped(target) W.layer = initial(W.layer) W.add_fingerprint(source) else if (istype(item, /obj/item/weapon/handcuffs)) source.drop_item() target.handcuffed = item item.loc = target if("internal") if (target.internal) target.internal.add_fingerprint(source) target.internal = null else if (target.internal) target.internal = null if (!( istype(target.wear_mask, /obj/item/clothing/mask) )) return else if (istype(target.back, /obj/item/weapon/tank)) target.internal = target.back target.internal.add_fingerprint(source) for(var/mob/M in viewers(target, 1)) if ((M.client && !( M.blinded ))) M.show_message(text("[] is now running on internals.", target), 1) else source.regenerate_icons() target.regenerate_icons() del(src) return