diff --git a/code/modules/clothing/masks/misc_masks.dm b/code/modules/clothing/masks/misc_masks.dm index b26f2dc893f..810173d286e 100644 --- a/code/modules/clothing/masks/misc_masks.dm +++ b/code/modules/clothing/masks/misc_masks.dm @@ -378,7 +378,69 @@ actions_types = list(/datum/action/item_action/adjust) /obj/item/clothing/mask/bandana/attack_self__legacy__attackchain(mob/user) - adjustmask(user) + if(slot_flags & ITEM_SLOT_MASK || slot_flags & ITEM_SLOT_HEAD) + adjustmask(user) + +/obj/item/clothing/mask/bandana/examine(mob/user) + . = ..() + if(slot_flags & ITEM_SLOT_NECK) + . += "Alt-click to untie it to wear as a mask!" + else + . += "Alt-click to tie it up to wear on your neck!" + + +/obj/item/clothing/mask/bandana/AltClick(mob/user) + if(!iscarbon(user)) + return + + var/mob/living/carbon/char = user + if((char.get_item_by_slot(ITEM_SLOT_NECK) == src) || (char.get_item_by_slot(ITEM_SLOT_MASK) == src) || (char.get_item_by_slot(ITEM_SLOT_HEAD) == src)) + to_chat(user, ("You can't tie [src] while wearing it!")) + return + + if(slot_flags & ITEM_SLOT_NECK) + icon = initial(icon) + flags_inv = initial(flags_inv) + flags_cover = initial(flags_cover) + slot_flags = initial(slot_flags) + icon_state = replacetext(icon_state, "_neck", "") + dyeable = initial(dyeable) + can_toggle = initial(can_toggle) + + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/mask.dmi', + "Unathi" = 'icons/mob/clothing/species/unathi/mask.dmi', + "Tajaran" = 'icons/mob/clothing/species/tajaran/mask.dmi', + "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/mask.dmi', + "Grey" = 'icons/mob/clothing/species/grey/mask.dmi', + "Drask" = 'icons/mob/clothing/species/drask/mask.dmi' + ) + actions_types = list(/datum/action/item_action/adjust) + var/datum/action/item_action/adjust/act = new(src) + if(loc == user) + act.Grant(user) + to_chat(user, ("You untie the neckercheif.")) + else + icon = 'icons/obj/clothing/neck.dmi' + flags_inv = FALSE + flags_cover = FALSE + slot_flags = ITEM_SLOT_NECK + if(up) + icon_state = replacetext(icon_state, "_up", "") + up = FALSE + icon_state += "_neck" + dyeable = FALSE + can_toggle = FALSE + + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/neck.dmi', + "Grey" = 'icons/mob/clothing/species/grey/neck.dmi', + ) + actions_types = list() + for(var/datum/action/item_action/adjust/act in actions) + act.Remove(user) + qdel(act) + to_chat(user, ("You tie [src] up like a neckerchief.")) /obj/item/clothing/mask/bandana/red name = "red bandana" diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 4e9d4ff1a61..0a02e6b6f37 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index fd1e22cb72f..d977ae229dc 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/clothing/species/grey/neck.dmi b/icons/mob/clothing/species/grey/neck.dmi new file mode 100644 index 00000000000..22f32dd41a0 Binary files /dev/null and b/icons/mob/clothing/species/grey/neck.dmi differ diff --git a/icons/mob/clothing/species/vox/neck.dmi b/icons/mob/clothing/species/vox/neck.dmi index e49ab4e91f6..a964cd6e851 100644 Binary files a/icons/mob/clothing/species/vox/neck.dmi and b/icons/mob/clothing/species/vox/neck.dmi differ diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index dc6419550b8..24929d5ef88 100644 Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ