From 6fc584518ad3b039e8b04b33ec665660879868e5 Mon Sep 17 00:00:00 2001
From: Ghommie <42542238+Ghommie@users.noreply.github.com>
Date: Fri, 3 Jul 2020 00:07:30 +0200
Subject: [PATCH] Fixing (un)equip penalties from obscured inv slots.
---
code/game/objects/items/storage/fancy.dm | 8 ++++----
code/modules/clothing/gloves/color.dm | 5 +++--
code/modules/mob/mob.dm | 2 +-
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index 821fd52bd1..927a29407c 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -207,18 +207,18 @@
cig_position++
/obj/item/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
- if(!ismob(M))
- return
+ if(M != user || !istype(M))
+ return ..()
var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents
if(cig)
- if(M == user && contents.len > 0 && !user.wear_mask)
+ if(!user.wear_mask && !(SLOT_WEAR_MASK in M.check_obscured_slots()))
var/obj/item/clothing/mask/cigarette/W = cig
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_TAKE, W, M)
M.equip_to_slot_if_possible(W, SLOT_WEAR_MASK)
contents -= W
to_chat(user, "You take \a [W] out of the pack.")
else
- ..()
+ return ..()
else
to_chat(user, "There are no [icon_type]s left in the pack.")
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 1b5cd6c7d2..56d6e7d38f 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -23,14 +23,15 @@
if(iscarbon(target) && proximity)
var/mob/living/carbon/C = target
var/mob/living/carbon/U = user
- var/success = C.equip_to_slot_if_possible(new /obj/item/clothing/gloves/color/yellow/sprayon, ITEM_SLOT_GLOVES, TRUE, TRUE)
+ var/success = C.equip_to_slot_if_possible(new /obj/item/clothing/gloves/color/yellow/sprayon, ITEM_SLOT_GLOVES, TRUE, TRUE, clothing_check = TRUE)
if(success)
if(C == user)
C.visible_message("[U] sprays their hands with glittery rubber!")
else
C.visible_message("[U] sprays glittery rubber on the hands of [C]!")
else
- C.visible_message("The rubber fails to stick to [C]'s hands!")
+ user.visible_message("The rubber fails to stick to [C]'s hands!",
+ "The rubber fails to stick to [C]'s [(SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!")
qdel(src)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 0124249baf..fd9afc91cd 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -227,7 +227,7 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA
var/obj/item/W = get_active_held_item()
if(istype(W))
- if(equip_to_slot_if_possible(W, slot, FALSE, FALSE, FALSE, TRUE))
+ if(equip_to_slot_if_possible(W, slot, FALSE, FALSE, FALSE, FALSE, TRUE))
return TRUE
if(!W)