Files
BatrachophrenoandGitHub 387cee9243 Object Examine Text Overhaul (#20923)
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.

Almost certainly a candidate for test merge.

Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-07-21 15:35:14 +00:00

81 lines
2.7 KiB
Plaintext

/obj/item/voice_changer
name = "voice changer"
desc = "A voice scrambling module. If you can see this, report it as a bug on the tracker."
var/voice //If set and item is present in mask/suit, this name will be used for the wearer's speech.
var/active
var/current_accent = ACCENT_CETI
/obj/item/clothing/mask/gas/voice
var/obj/item/voice_changer/changer
origin_tech = list(TECH_ILLEGAL = 4)
/obj/item/clothing/mask/gas/voice/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "This mask can be used to change the owner's voice."
/obj/item/clothing/mask/gas/voice/verb/Toggle_Voice_Changer()
set category = "Object"
set src in usr
changer.active = !changer.active
to_chat(usr, SPAN_NOTICE("You [changer.active ? "enable" : "disable"] the voice-changing module in \the [src]."))
/obj/item/clothing/mask/gas/voice/verb/Set_Voice(name as text)
set category = "Object"
set src in usr
var/voice = sanitize(name, MAX_NAME_LEN)
if(!voice || !length(voice)) return
changer.voice = voice
to_chat(usr, SPAN_NOTICE("You are now mimicking <B>[changer.voice]</B>."))
/obj/item/clothing/mask/gas/voice/verb/Toggle_Accent()
set category = "Object"
set src in usr
var/choice = tgui_input_list(usr, "Please choose an accent to mimick.", "Accent Mimicry", SSrecords.accents)
if(choice)
to_chat(usr, SPAN_NOTICE("You are now mimicking the [choice] accent."))
changer.current_accent = choice
/obj/item/clothing/mask/gas/voice/Initialize()
. = ..()
changer = new(src)
/obj/item/clothing/mask/gas/vaurca/filter/voice
var/obj/item/voice_changer/changer
origin_tech = list(TECH_ILLEGAL = 4)
/obj/item/clothing/mask/gas/vaurca/filter/voice/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "A Lii'draic filter port that allows to change voices."
/obj/item/clothing/mask/gas/vaurca/filter/voice/verb/Toggle_Voice_Changer()
set category = "Object"
set src in usr
changer.active = !changer.active
to_chat(usr, SPAN_NOTICE("You [changer.active ? "enable" : "disable"] the voice-changing module in \the [src]."))
/obj/item/clothing/mask/gas/vaurca/filter/voice/verb/Set_Voice(name as text)
set category = "Object"
set src in usr
var/voice = sanitize(name, MAX_NAME_LEN)
if(!voice || !length(voice)) return
changer.voice = voice
to_chat(usr, SPAN_NOTICE("You are now mimicking <B>[changer.voice]</B>."))
/obj/item/clothing/mask/gas/vaurca/filter/voice/verb/Toggle_Accent()
set category = "Object"
set src in usr
var/choice = tgui_input_list(usr, "Please choose an accent to mimick.", "Accent Mimicry", SSrecords.accents)
if(choice)
to_chat(usr, SPAN_NOTICE("You are now mimicking the [choice] accent."))
changer.current_accent = choice
/obj/item/clothing/mask/gas/vaurca/filter/voice/Initialize()
. = ..()
changer = new(src)