diff --git a/code/datums/action.dm b/code/datums/action.dm index c828d613f76..52e96b4d63b 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -349,6 +349,9 @@ /datum/action/item_action/laugh_track name = "Laugh Track" +/datum/action/item_action/whistle + name = "Whistle" + /datum/action/item_action/floor_buffer name = "Toggle Floor Buffer" desc = "Movement speed is decreased while active." diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 69abb44dfd7..0c600bbe646 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -213,7 +213,8 @@ /obj/item/clothing/mask/holo_cigar = 100, /obj/item/storage/box/syndie_kit/chameleon = 50, //costumes! /obj/item/storage/backpack/satchel_flat = 50, - /obj/item/book_of_babel = 50 + /obj/item/book_of_babel = 50, + /obj/item/clothing/mask/whistle = 50 ) /obj/effect/spawner/lootdrop/trade_sol/minerals diff --git a/code/game/objects/items/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm index b8bf9dd3939..88129529ca6 100644 --- a/code/game/objects/items/devices/whistle.dm +++ b/code/game/objects/items/devices/whistle.dm @@ -31,3 +31,28 @@ emagged = TRUE #undef USE_COOLDOWN + +/obj/item/clothing/mask/whistle + name = "whistle" + desc = "A metal pea-whistle. Can be blown while held, or worn in the mouth." + icon_state = "whistle" + item_state = "whistle" + w_class = WEIGHT_CLASS_TINY + flags = CONDUCT + body_parts_covered = null + actions_types = list(/datum/action/item_action/whistle) + COOLDOWN_DECLARE(whistle_cooldown) + 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' + ) + +/obj/item/clothing/mask/whistle/attack_self(mob/user) + if(!COOLDOWN_FINISHED(src, whistle_cooldown)) + return + + playsound(src, pick('sound/items/whistle1.ogg', 'sound/items/whistle2.ogg', 'sound/items/whistle3.ogg'), 25) + COOLDOWN_START(src, whistle_cooldown, 4 SECONDS) diff --git a/code/game/objects/mail.dm b/code/game/objects/mail.dm index bf6e788c7e7..993a07b82e4 100644 --- a/code/game/objects/mail.dm +++ b/code/game/objects/mail.dm @@ -58,6 +58,7 @@ icon_state = "mail_sec" possible_contents = list(/obj/item/reagent_containers/food/snacks/donut/sprinkles, /obj/item/megaphone, + /obj/item/clothing/mask/whistle, /obj/item/poster/random_official, /obj/item/restraints/handcuffs/pinkcuffs, /obj/item/restraints/legcuffs/bola/energy, diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index b369679984e..eb96e1da770 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/species/grey/mask.dmi b/icons/mob/clothing/species/grey/mask.dmi index 7a9e7d2c767..97ab44555d3 100644 Binary files a/icons/mob/clothing/species/grey/mask.dmi and b/icons/mob/clothing/species/grey/mask.dmi differ diff --git a/icons/mob/clothing/species/tajaran/mask.dmi b/icons/mob/clothing/species/tajaran/mask.dmi index db1885960a7..0cb0cda683d 100644 Binary files a/icons/mob/clothing/species/tajaran/mask.dmi and b/icons/mob/clothing/species/tajaran/mask.dmi differ diff --git a/icons/mob/clothing/species/unathi/mask.dmi b/icons/mob/clothing/species/unathi/mask.dmi index 3351c20b642..e84f2d5c116 100644 Binary files a/icons/mob/clothing/species/unathi/mask.dmi and b/icons/mob/clothing/species/unathi/mask.dmi differ diff --git a/icons/mob/clothing/species/vox/mask.dmi b/icons/mob/clothing/species/vox/mask.dmi index 6827ce5ea87..7b0b5f8281d 100644 Binary files a/icons/mob/clothing/species/vox/mask.dmi and b/icons/mob/clothing/species/vox/mask.dmi differ diff --git a/icons/mob/clothing/species/vulpkanin/mask.dmi b/icons/mob/clothing/species/vulpkanin/mask.dmi index 3ead9dc9358..fb1556aa5a1 100644 Binary files a/icons/mob/clothing/species/vulpkanin/mask.dmi and b/icons/mob/clothing/species/vulpkanin/mask.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index aa2a63edab1..e4581d18ab6 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/sound/items/whistle1.ogg b/sound/items/whistle1.ogg new file mode 100644 index 00000000000..7a006e4a14d Binary files /dev/null and b/sound/items/whistle1.ogg differ diff --git a/sound/items/whistle2.ogg b/sound/items/whistle2.ogg new file mode 100644 index 00000000000..fc4f123b412 Binary files /dev/null and b/sound/items/whistle2.ogg differ diff --git a/sound/items/whistle3.ogg b/sound/items/whistle3.ogg new file mode 100644 index 00000000000..8ff69150cfd Binary files /dev/null and b/sound/items/whistle3.ogg differ