From aca2af507b7e2f1e157e62ff5a17defc49589c0d Mon Sep 17 00:00:00 2001 From: Alberyk Date: Thu, 6 Jul 2017 17:36:15 -0300 Subject: [PATCH] Updates the coat hanger (#2950) Updates the coat hanger to have far more sprites and hold more types of coats Also fixes #2919 --- code/game/objects/structures/coathanger.dm | 38 +++++++++++---------- icons/obj/coatrack.dmi | Bin 606 -> 3232 bytes 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm index 2b91f87b020..782ee6584e0 100644 --- a/code/game/objects/structures/coathanger.dm +++ b/code/game/objects/structures/coathanger.dm @@ -4,20 +4,27 @@ icon = 'icons/obj/coatrack.dmi' icon_state = "coatrack0" var/obj/item/clothing/suit/coat - var/list/allowed = list(/obj/item/clothing/suit/storage/toggle/labcoat, /obj/item/clothing/suit/storage/det_trench) + var/list/allowed = list(/obj/item/clothing/suit/storage/toggle/labcoat, /obj/item/clothing/suit/storage/det_trench, + /obj/item/clothing/suit/storage/forensics, /obj/item/clothing/suit/storage/trench) /obj/structure/coatrack/attack_hand(mob/user as mob) - user.visible_message("[user] takes [coat] off \the [src].", "You take [coat] off the \the [src]") - if(!user.put_in_active_hand(coat)) - coat.loc = get_turf(user) - coat = null - update_icon() + if (!ishuman(user)) + return + if(user.incapacitated()) + return + if (!user.can_use_hand()) + return + if(coat) + user.visible_message("[user] takes [coat] off \the [src].", "You take [coat] off the \the [src]") + coat.forceMove(get_turf(user)) + user.put_in_hands(coat) + coat = null + update_icon() /obj/structure/coatrack/attackby(obj/item/weapon/W as obj, mob/user as mob) var/can_hang = 0 - for (var/T in allowed) - if(istype(W,T)) - can_hang = 1 + if(is_type_in_list(W, allowed)) + can_hang = 1 if (can_hang && !coat) user.visible_message("[user] hangs [W] on \the [src].", "You hang [W] on the \the [src]") coat = W @@ -29,9 +36,8 @@ /obj/structure/coatrack/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) var/can_hang = 0 - for (var/T in allowed) - if(istype(mover,T)) - can_hang = 1 + if(is_type_in_list(mover, allowed)) + can_hang = 1 if (can_hang && !coat) src.visible_message("[mover] lands on \the [src].") @@ -44,9 +50,5 @@ /obj/structure/coatrack/update_icon() cut_overlays() - if (istype(coat, /obj/item/clothing/suit/storage/toggle/labcoat)) - add_overlay("coat_lab") - if (istype(coat, /obj/item/clothing/suit/storage/toggle/labcoat/cmo)) - add_overlay("coat_cmo") - if (istype(coat, /obj/item/clothing/suit/storage/det_trench)) - add_overlay("coat_det") + if (coat) + add_overlay("coat_[coat.icon_state]") diff --git a/icons/obj/coatrack.dmi b/icons/obj/coatrack.dmi index 5d19abaeee75097440732e75e566fcf7a365c5d9..3f0725fb24db889138eaae9fdeca7126e5ad8e91 100644 GIT binary patch literal 3232 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 Jx^L+f`!6v?!$|-D literal 606 zcmV-k0-^nhP)V=-0C=2JR&a84 z_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DLFr} zq$n{t+dzqnGbOXA7$|1Q#hF%=n41b=W2iJFN@aXXY6)=)a}tw?Q<$8ak4vGlf~%hk z*#7{vVoNb+dQ!~*00BNpL_t(oh3%DF4}%~Kh2=7FGvf9C|JD`Iy$CH?CE0}&_OcVs zmsV|?=C>pS&%Xp9SpY@*34jI>mqiFjRdM+87R{GZQUDcxDh1em*+y#6(vSdm8%`?! zK~C)MQQ5PY3ky9Et+yjm86H>e~UrEfj2{5q?I# z3rO!|!p{N-0)Y9XRJfmPGv#Lxyx#Y#{$2wJ^DT&#KaL{?u+uzq0K