mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-22 04:28:33 +01:00
Merge pull request #14550 from Seris02/resizepickupfix
fix for mob holders disappearing on pickup from inventory
This commit is contained in:
@@ -3,3 +3,57 @@
|
||||
var/held = held_mob
|
||||
dump_mob()
|
||||
held_mob = held
|
||||
|
||||
/obj/item/weapon/holder/attack_hand(mob/living/user as mob) //straight up just copypasted from objects/items.dm with a few things changed (doesn't called dropped unless +actually dropped+)
|
||||
if (!user) return
|
||||
if(anchored)
|
||||
to_chat(user, span("notice", "\The [src] won't budge, you can't pick it up!"))
|
||||
return
|
||||
if (hasorgans(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||
if (user.hand)
|
||||
temp = H.organs_by_name["l_hand"]
|
||||
if(temp && !temp.is_usable())
|
||||
to_chat(user, "<span class='notice'>You try to move your [temp.name], but cannot!</span>")
|
||||
return
|
||||
if(!temp)
|
||||
to_chat(user, "<span class='notice'>You try to use your hand, but realize it is no longer attached!</span>")
|
||||
return
|
||||
if(held_mob == user) return // No picking your own micro self up
|
||||
|
||||
var/old_loc = src.loc
|
||||
if (istype(src.loc, /obj/item/weapon/storage))
|
||||
var/obj/item/weapon/storage/S = src.loc
|
||||
if(!S.remove_from_storage(src))
|
||||
return
|
||||
|
||||
src.pickup(user)
|
||||
src.throwing = 0
|
||||
if (src.loc == user)
|
||||
if(!mob_can_unequip(user, user.get_inventory_slot(src))) //VOREStation Edit
|
||||
return
|
||||
else //VOREStation Edit
|
||||
user.temporarilyRemoveItemFromInventory(src)
|
||||
else
|
||||
if(isliving(src.loc))
|
||||
return
|
||||
|
||||
if(user.put_in_active_hand(src))
|
||||
if(isturf(old_loc))
|
||||
var/obj/effect/temporary_effect/item_pickup_ghost/ghost = new(old_loc)
|
||||
ghost.assumeform(src)
|
||||
ghost.animate_towards(user)
|
||||
else if (old_loc == user) //VOREStation Edit
|
||||
dropInto(user.drop_location())
|
||||
dropped(user)
|
||||
//VORESTATION EDIT START. This handles possessed items.
|
||||
if(src.possessed_voice && src.possessed_voice.len && !(user.ckey in warned_of_possession)) //Is this item possessed?
|
||||
warned_of_possession |= user.ckey
|
||||
tgui_alert_async(user,{"
|
||||
THIS ITEM IS POSSESSED BY A PLAYER CURRENTLY IN THE ROUND. This could be by anomalous means or otherwise.
|
||||
If this is not something you wish to partake in, it is highly suggested you place the item back down.
|
||||
If this is fine to you, ensure that the other player is fine with you doing things to them beforehand!
|
||||
"},"OOC Warning")
|
||||
//VORESTATION EDIT END.
|
||||
return
|
||||
Reference in New Issue
Block a user