diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6a9dd763a05..64fe5c0501a 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -666,10 +666,19 @@ BLIND // can't see anything 3 = Report location */ var/list/accessories = list() + + /// List of blacklisted accessory types + var/list/blacklisted_accessory_typecache var/displays_id = 1 var/rolled_down = 0 var/basecolor +/obj/item/clothing/under/Initialize(mapload) + . = ..() + blacklisted_accessory_typecache = typecacheof(list( + /obj/item/clothing/accessory/petcollar // No collars on jumpsuits + )) + /obj/item/clothing/under/rank/New() if(random_sensor) sensor_mode = pick(SENSOR_OFF, SENSOR_LIVING, SENSOR_VITALS, SENSOR_COORDS) @@ -685,11 +694,17 @@ BLIND // can't see anything else return FALSE + if(is_type_in_typecache(A, blacklisted_accessory_typecache)) + to_chat(usr, "[A] doesn't fit on [src].") + return FALSE + if(accessories.len) for(var/obj/item/clothing/accessory/AC in accessories) if((A.slot in list(ACCESSORY_SLOT_UTILITY, ACCESSORY_SLOT_ARMBAND)) && AC.slot == A.slot) + to_chat(usr, "[A] doesn't fit on [src].") return FALSE if(!A.allow_duplicates && AC.type == A.type) + to_chat(usr, "You cannot attach more accessories of this type to [src].") return FALSE /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) @@ -716,8 +731,6 @@ BLIND // can't see anything H.update_inv_w_uniform() return TRUE - else - to_chat(user, "You cannot attach more accessories of this type to [src].") return FALSE