diff --git a/code/__DEFINES/progress_display.dm b/code/__DEFINES/progress_display.dm index 7de391c9333..bd07f54e878 100644 --- a/code/__DEFINES/progress_display.dm +++ b/code/__DEFINES/progress_display.dm @@ -39,3 +39,4 @@ #define BUSY_ICON_BAR /image/progdisplay/bar #define BUSY_ICON_UNSKILLED /image/progdisplay/unskilled #define BUSY_ICON_ENERGY /image/progdisplay/energy +#define BUSY_ICON_FACEHUGGER /image/progdisplay/facehugger diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index 37210f1477a..37f2943a0f4 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -271,7 +271,10 @@ /// A utility function for `/datum/strippable_item`s to start unequipping an item from a mob. /datum/strippable_item/proc/start_unequip_mob(obj/item/item, mob/source, mob/user, strip_delay) - if(!do_after(user, strip_delay || item.strip_delay, NONE, source, BUSY_ICON_FRIENDLY)) + var/display_icon = BUSY_ICON_GENERIC + if(istype(item, /obj/item/clothing/mask/facehugger)) + display_icon = BUSY_ICON_FACEHUGGER + if(!do_after(user, strip_delay || item.strip_delay, NONE, source, display_icon)) return FALSE return TRUE diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index 152bafcf868..c7c6391722c 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -260,3 +260,6 @@ /image/progdisplay/energy icon_state = "busy_energy" + +/image/progdisplay/facehugger + icon_state = "busy_facehugger" diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 6d39327ffe2..53434f60987 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -27,7 +27,7 @@ return TRUE if(istype(wear_mask, /obj/item/clothing/mask/facehugger) && H != src) - H.stripPanelUnequip(wear_mask, src, SLOT_WEAR_MASK) + H.stripPanelUnequip(wear_mask, src, SLOT_WEAR_MASK, BUSY_ICON_FACEHUGGER) return TRUE if(health >= get_crit_threshold()) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 0c86358fa4f..cef924ff4b3 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -535,20 +535,21 @@ else if(equipped_item == s_store) . = SLOT_S_STORE -/mob/living/carbon/human/stripPanelUnequip(obj/item/I, mob/M, slot_to_process) +/mob/living/carbon/human/stripPanelUnequip(obj/item/I, mob/M, slot_to_process, display_icon = BUSY_ICON_HOSTILE) if(!I.canStrip(M)) return log_combat(src, M, "attempted to remove [key_name(I)] ([slot_to_process])") M.visible_message(span_danger("[src] tries to remove [M]'s [I.name]."), \ - span_userdanger("[src] tries to remove [M]'s [I.name]."), null, 5) - if(do_after(src, HUMAN_STRIP_DELAY, NONE, M, BUSY_ICON_HOSTILE)) - if(Adjacent(M) && I && I == M.get_item_by_slot(slot_to_process)) - M.dropItemToGround(I) - log_combat(src, M, "removed [key_name(I)] ([slot_to_process])") - if(isidcard(I)) - message_admins("[ADMIN_TPMONTY(src)] took the [I] of [ADMIN_TPMONTY(M)].") - + span_userdanger("[src] tries to remove [M]'s [I.name]."), null, 5) + if(!do_after(src, HUMAN_STRIP_DELAY, NONE, M, display_icon)) + return + if(!Adjacent(M)|| !I || I != M.get_item_by_slot(slot_to_process)) + return + M.dropItemToGround(I) + log_combat(src, M, "removed [key_name(I)] ([slot_to_process])") + if(isidcard(I)) + message_admins("[ADMIN_TPMONTY(src)] took the [I] of [ADMIN_TPMONTY(M)].") /mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE, client/override_client) var/datum/outfit/O = null @@ -564,7 +565,6 @@ return O.equip(src, visualsOnly, override_client) - /mob/living/carbon/human/proc/delete_equipment(save_id = FALSE) for(var/i in contents) if(save_id && istype(i, /obj/item/card/id)) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index a8815a0061a..661d2e08339 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -45,9 +45,6 @@ /mob/living/silicon/put_in_r_hand(obj/item/I) return -/mob/living/silicon/stripPanelUnequip(obj/item/I, mob/M, slot) - return - /mob/living/silicon/med_hud_set_health() return diff --git a/icons/effects/progressicons.dmi b/icons/effects/progressicons.dmi index 659db025d1d..165cd4added 100644 Binary files a/icons/effects/progressicons.dmi and b/icons/effects/progressicons.dmi differ