CEV-Eris icon indicating copy to clipboard operation
CEV-Eris copied to clipboard

Voidsuits and paramedic armor cannot be unequipped if they have an accessory

Open BigHatLogan-dev opened this issue 3 years ago • 3 comments

My best guess is that it is because voidsuits ~and paramedic armor~ are unequipped by left-clicking and almost all other suits are unequipped using click-and-drag. Based on the code below, it looks like the suit's attack_hand() calls its accessory's attack_hand() procs, which do nothing. Stripping the suit off of another character works.

EDIT: Paramedic armor has the DRAG_AND_DROP_UNEQUIP flag, which means it can still be unequipped.

From code\modules\clothing\clothing_accessories.dm:

/obj/item/clothing/attack_hand(var/mob/user)
	//only forward to the attached accessory if the clothing is equipped (not in a storage)
	if(accessories.len && src.loc == user)
		for(var/obj/item/clothing/accessory/A in accessories)
			A.attack_hand(user)
		return
	return ..()

From code\modules\clothing\accessories\accesory.dm:

/obj/item/clothing/accessory/attack_hand(mob/user as mob)
	if(has_suit)
		return	//we aren't an object on the ground so don't call parent
	..()

BigHatLogan-dev avatar Dec 16 '21 14:12 BigHatLogan-dev

@Humonitarian

SirRichardFrancis avatar Dec 16 '21 14:12 SirRichardFrancis

Could the voidsuit be unequipped with a click and drag?

Humonitarian avatar Dec 16 '21 17:12 Humonitarian

No. For accessories like armor plates, you aren't able to remove it via the Object tab either. It would say "Removing this accessory would ruin it." in the chat log with no effect.

BigHatLogan-dev avatar Dec 16 '21 17:12 BigHatLogan-dev