/mob/living/carbon/verb/give(mob/living/carbon/target in oview(1)) set category = "IC" set name = "Give" if(!iscarbon(target)) //something is bypassing the give arguments, no clue what, adding a sanity check JIC to_chat(usr, "Wait a second... \the [target] HAS NO HANDS! AHH!")//cheesy messages ftw return if(target.incapacitated() || usr.incapacitated() || target.client == null) return var/obj/item/I = get_active_hand() if(!I) to_chat(usr, " You don't have anything in your hand to give to [target.name]") return if((I.flags & NODROP) || (I.flags & ABSTRACT)) to_chat(usr, "That's not exactly something you can give.") return if(target.r_hand == null || target.l_hand == null) var/ans = alert(target,"[usr] wants to give you \a [I]?",,"Yes","No") if(!I || !target) return switch(ans) if("Yes") if(target.incapacitated() || usr.incapacitated()) return if(!Adjacent(target)) to_chat(usr, " You need to stay in reaching distance while giving an object.") to_chat(target, " [usr.name] moved too far away.") return if((I.flags & NODROP) || (I.flags & ABSTRACT)) to_chat(usr, "[I] stays stuck to your hand when you try to give it!") to_chat(target, "[I] stays stuck to [usr.name]'s hand when you try to take it!") return if(I != get_active_hand()) to_chat(usr, " You need to keep the item in your active hand.") to_chat(target, " [usr.name] seem to have given up on giving [I] to you.") return if(target.r_hand != null && target.l_hand != null) to_chat(target, " Your hands are full.") to_chat(usr, " Their hands are full.") return usr.unEquip(I) target.put_in_hands(I) I.add_fingerprint(target) target.visible_message(" [usr.name] handed [I] to [target.name].") I.on_give(usr, target) if("No") target.visible_message(" [usr.name] tried to hand [I] to [target.name] but [target.name] didn't want it.") else to_chat(usr, " [target.name]'s hands are full.")