Files
66b60b4dc1 Migrate hailer to the new attack chain. (#32265)
* Migrate hailer to the new attack chain.

* Apply suggestion from CRUNCH review. Github, please no funny business.

Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
Signed-off-by: Alan <alfalfascout@users.noreply.github.com>

* Add fingerprint to whistle too. Why not.

---------

Signed-off-by: Alan <alfalfascout@users.noreply.github.com>
Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
2026-07-24 19:39:58 +00:00

71 lines
2.4 KiB
Plaintext

#define USE_COOLDOWN 2 SECONDS
/obj/item/hailer
name = "hailer"
desc = "Used by obese officers to save their breath for running."
icon = 'icons/obj/device.dmi'
icon_state = "voice0"
inhand_icon_state = "flashtool"
w_class = WEIGHT_CLASS_TINY
flags = CONDUCT
var/next_use_time
var/spamcheck = FALSE
new_attack_chain = TRUE
/obj/item/hailer/activate_self(mob/living/carbon/user)
if(world.time < next_use_time)
return ..()
if(emagged)
playsound(get_turf(src), 'sound/voice/binsult.ogg', 100, TRUE, vary = 0) // Hueheuheuheuheuheuhe.
user.visible_message(SPAN_WARNING("[user]'s [name] gurgles, \"FUCK YOUR CUNT YOU SHIT EATING CUNT TILL YOU ARE A MASS EATING SHIT CUNT. EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS TO FUCK UP SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FROM THE DEPTHS OF SHIT\""))
else
playsound(get_turf(src), 'sound/voice/halt.ogg', 100, TRUE, vary = 0)
user.visible_message(SPAN_WARNING("[user]'s [name] rasps, \"Halt! Security!\""))
add_fingerprint(user)
next_use_time = world.time + USE_COOLDOWN
return ITEM_INTERACT_COMPLETE
/obj/item/hailer/emag_act(mob/user)
add_fingerprint(user)
if(!emagged)
to_chat(user, SPAN_WARNING("You overload [src]'s voice synthesizer!"))
emagged = TRUE
return TRUE
to_chat(user, SPAN_NOTICE("You load [src]'s voice synthesizer a normal amount."))
emagged = FALSE
return 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"
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/activate_self(mob/user)
if(..())
return ITEM_INTERACT_COMPLETE
if(!COOLDOWN_FINISHED(src, whistle_cooldown))
return ITEM_INTERACT_COMPLETE
add_fingerprint(user)
playsound(src, pick('sound/items/whistle1.ogg', 'sound/items/whistle2.ogg', 'sound/items/whistle3.ogg'), 25)
COOLDOWN_START(src, whistle_cooldown, 4 SECONDS)
return ITEM_INTERACT_COMPLETE