Fix modsuits and defibs (#93373)

## About The Pull Request

Fixes #93359

Caused by #93165

Inventory screen elements were no longer considered reachable, which
broke mousedrop handing on objects that check "is dragging into
inventory slot"

I don't know the best way to fix this yet but I figured the next best
thing would be to make all of these use the `drag_pickup` element, which
skips this reach-ability check

Thus I refactored it slightly to accommodate for items which should
contextually not be drag-pick-up-abble and bam, works like a charm

## Changelog

🆑 Melbert
fix: Dragging defibs and modsuits off your back works again
/🆑

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
This commit is contained in:
MrMelbert
2025-10-11 18:17:23 -04:00
committed by GitHub
co-authored by ArcaneMusic Xander3359
parent 4bdce87fee
commit da10322dc1
16 changed files with 73 additions and 130 deletions
@@ -257,13 +257,12 @@
// chest maybe because getting slammed in the chest would knock it off your face while dead
AddComponent(/datum/component/knockoff, knockoff_chance = 40, target_zones = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST), slots_knockoffable = slot_flags)
/obj/item/clothing/mask/facehugger/allow_attack_hand_drop(mob/living/carbon/human/user)
if(!real || sterile || user.get_organ_by_type(/obj/item/organ/body_egg/alien_embryo))
/obj/item/clothing/mask/facehugger/can_mob_unequip(mob/user)
if(!real || sterile || stat == DEAD || user.get_organ_by_type(/obj/item/organ/body_egg/alien_embryo))
return ..()
if(istype(user) && ishuman(loc) && stat != DEAD)
if(user == loc && user.get_item_by_slot(slot_flags) == src)
to_chat(user, span_userdanger("[src] is latched on too tight! Get help or wait for it to let go!"))
return FALSE
if(user.get_item_by_slot(slot_flags) == src)
to_chat(user, span_userdanger("[src] is latched on too tight! Get help or wait for it to let go!"))
return FALSE
return ..()
/obj/item/clothing/mask/facehugger/mouse_drop_dragged(atom/over, mob/user, src_location, over_location, params)