diff --git a/modular_doppler/loadout_categories/categories/inhands.dm b/modular_doppler/loadout_categories/categories/inhands.dm index e6bb65a69c4f1..071c98ebc907d 100644 --- a/modular_doppler/loadout_categories/categories/inhands.dm +++ b/modular_doppler/loadout_categories/categories/inhands.dm @@ -30,3 +30,7 @@ /datum/loadout_item/inhand/slimpack name = "Custom Flatpack" item_path = /obj/item/storage/backpack/satchel/flat/empty/custom + +/datum/loadout_item/inhand/aac_device + name = "AAC Device" + item_path = /obj/item/aac_device diff --git a/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_objects.dm b/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_objects.dm new file mode 100644 index 0000000000000..34fb49ffb5aa5 --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_objects.dm @@ -0,0 +1,17 @@ +/* + + />  フ meow! this dm file contains greyscale configs for non-clothing items. + |  _ _| / + /` ミ_xノ + /     | + /  ヽ   ノ + │  | | | +/ ̄|   | | | +( ̄ヽ__ヽ_)__)_) +\二) +*/ + +/datum/greyscale_config/aac_device + name = "AAC Device" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/devices.dmi' + json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/objects/aac_device.json' diff --git a/modular_doppler/modular_cosmetics/GAGS/icons/obj/devices.dmi b/modular_doppler/modular_cosmetics/GAGS/icons/obj/devices.dmi new file mode 100644 index 0000000000000..d081c92b2a504 Binary files /dev/null and b/modular_doppler/modular_cosmetics/GAGS/icons/obj/devices.dmi differ diff --git a/modular_doppler/modular_cosmetics/GAGS/json_configs/objects/aac_device.json b/modular_doppler/modular_cosmetics/GAGS/json_configs/objects/aac_device.json new file mode 100644 index 0000000000000..293bf1c36aa37 --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/json_configs/objects/aac_device.json @@ -0,0 +1,16 @@ +{ + "aac_device": [ + { + "type": "icon_state", + "icon_state": "aac_device_body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "aac_device_screen", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_doppler/modular_items/aac_device.dm b/modular_doppler/modular_items/aac_device.dm new file mode 100644 index 0000000000000..1f069d852f383 --- /dev/null +++ b/modular_doppler/modular_items/aac_device.dm @@ -0,0 +1,30 @@ +/obj/item/aac_device + name = "AAC Device" + desc = "An Augmented and Alternative Communication device designed to facilitate oral communication \ + for people with communicative disabilities." + icon = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/devices.dmi' + icon_state = "aac_device" + w_class = WEIGHT_CLASS_SMALL + obj_flags = UNIQUE_RENAME + slot_flags = ITEM_SLOT_BELT + flags_1 = IS_PLAYER_COLORABLE_1 + greyscale_config = /datum/greyscale_config/aac_device + greyscale_colors = "#FFFFFF#FFFFFF" + +/obj/item/aac_device/attack_self(mob/user) + user.balloon_alert_to_viewers("typing...", "started typing...") + playsound(src, 'modular_doppler/modular_items/sounds/aac_started_type.ogg', 50, TRUE) + var/str = tgui_input_text(user, "What would you like the device to say?", "Say Text", "", MAX_MESSAGE_LEN, encode = FALSE) + if(!str) + user.balloon_alert_to_viewers("stops typing", "stopped typing") + playsound(src, 'modular_doppler/modular_items/sounds/aac_stopped_type.ogg', 50, TRUE) + return + src.say(str) + str = null + +/obj/item/aac_device/item_ctrl_click(mob/user) + var/new_name = reject_bad_name(tgui_input_text(user, "Name your Text-to-Speech device. This matters for displaying it in the chat bar.", "Set TTS Device Name", "", MAX_NAME_LEN)) + if(new_name) + name = "[new_name]'s [initial(name)]" + else + name = initial(name) diff --git a/modular_doppler/modular_items/icons/devices.dmi b/modular_doppler/modular_items/icons/devices.dmi index 07146ded925ed..fde2c9e311e39 100644 Binary files a/modular_doppler/modular_items/icons/devices.dmi and b/modular_doppler/modular_items/icons/devices.dmi differ diff --git a/modular_doppler/modular_items/sounds/aac_started_type.ogg b/modular_doppler/modular_items/sounds/aac_started_type.ogg new file mode 100644 index 0000000000000..3c17e95904421 Binary files /dev/null and b/modular_doppler/modular_items/sounds/aac_started_type.ogg differ diff --git a/modular_doppler/modular_items/sounds/aac_stopped_type.ogg b/modular_doppler/modular_items/sounds/aac_stopped_type.ogg new file mode 100644 index 0000000000000..3a6f66579cd15 Binary files /dev/null and b/modular_doppler/modular_items/sounds/aac_stopped_type.ogg differ diff --git a/modular_doppler/modular_items/tts_device.dm b/modular_doppler/modular_items/tts_device.dm deleted file mode 100644 index b2fbbca04edb0..0000000000000 --- a/modular_doppler/modular_items/tts_device.dm +++ /dev/null @@ -1,36 +0,0 @@ -/obj/item/ttsdevice - name = "TTS Device" - desc = "A small device with a keyboard attached. Anything entered on the keyboard is played out the speaker. \nAlt-click the device to make it beep. \nCtrl-click to name the device." - icon = 'icons/obj/device.dmi' - icon_state = "gangtool-purple" - lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - w_class = WEIGHT_CLASS_SMALL - obj_flags = UNIQUE_RENAME - slot_flags = ITEM_SLOT_BELT - -/obj/item/ttsdevice/attack_self(mob/user) - var/input = stripped_input(user,"What would you like the device to say?", ,"", 500) - if(QDELETED(src) || !user.canUseTopic(src, BE_CLOSE)) - return - if(input) - src.say(input) - input = null - -/obj/item/ttsdevice/AltClick(mob/living/user) - var/noisechoice = input(user, "What noise would you like to make?", "Robot Noises") as null|anything in list("Beep","Buzz","Ping") - if(noisechoice == "Beep") - user.visible_message("[user] has made their TTS beep!", "You make your TTS beep!") - playsound(user, 'sound/machines/twobeep.ogg', 50, 1, -1) - if(noisechoice == "Buzz") - user.visible_message("[user] has made their TTS buzz!", "You make your TTS buzz!") - playsound(user, 'sound/machines/buzz-sigh.ogg', 50, 1, -1) - if(noisechoice == "Ping") - user.visible_message("[user] has made their TTS ping!", "You make your TTS ping!") - playsound(user, 'sound/machines/ping.ogg', 50, 1, -1) - -/obj/item/ttsdevice/CtrlClick(mob/living/user) - var/new_name = input(user, "Name your Text-to-Speech device: \nThis matters for displaying it in the chat bar:", "TTS Device") as text|null - if(new_name) - new_name = reject_bad_name(new_name) - name = "[new_name]'s [initial(name)]" diff --git a/modular_doppler/modular_vending/code/tg_vendors/medical.dm b/modular_doppler/modular_vending/code/tg_vendors/medical.dm new file mode 100644 index 0000000000000..24fd85e015aff --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/medical.dm @@ -0,0 +1,4 @@ +/obj/machinery/vending/medical + products_doppler = list( + /obj/item/aac_device = 5, + ) diff --git a/tgstation.dme b/tgstation.dme index be2a2635135e8..440850f647d56 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6753,6 +6753,7 @@ #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_face.dm" #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_head.dm" #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_neck.dm" +#include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_objects.dm" #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_sets.dm" #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_storage.dm" #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_suit.dm" @@ -6868,6 +6869,7 @@ #include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\datums\crafting\hemophage_recipes.dm" #include "modular_doppler\modular_hydroponics\code\honeysuckle.dm" #include "modular_doppler\modular_hydroponics\code\tea_coffee.dm" +#include "modular_doppler\modular_items\aac_device.dm" #include "modular_doppler\modular_items\bettermed_overrides.dm" #include "modular_doppler\modular_items\conversion_kits.dm" #include "modular_doppler\modular_items\invisible_gear.dm" @@ -6990,6 +6992,7 @@ #include "modular_doppler\modular_vending\code\tg_vendors\clothesmate.dm" #include "modular_doppler\modular_vending\code\tg_vendors\engivend.dm" #include "modular_doppler\modular_vending\code\tg_vendors\games.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\medical.dm" #include "modular_doppler\modular_vending\code\tg_vendors\megaseed.dm" #include "modular_doppler\modular_vending\code\tg_vendors\wardrobes.dm" #include "modular_doppler\modular_weapons\code\gunsets.dm"