mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
60 lines
1.9 KiB
Plaintext
60 lines
1.9 KiB
Plaintext
#define VALUE_MESSAGE "Message"
|
|
|
|
/obj/item/device/assembly/speaker
|
|
name = "speaker"
|
|
var/real_name = "speaker" //speakers can be renamed with a pen
|
|
desc = "Used to play pre-recorded messages."
|
|
icon_state = "speaker"
|
|
item_state = "speaker"
|
|
starting_materials = list(MAT_IRON = 800, MAT_GLASS = 100)
|
|
w_type = RECYK_ELECTRONIC
|
|
origin_tech = Tc_MAGNETS + "=1"
|
|
|
|
var/message = "Thank you for using NanoSpeaker!"
|
|
|
|
accessible_values = list(VALUE_MESSAGE = "message;"+VT_TEXT)
|
|
|
|
/obj/item/device/assembly/speaker/activate()
|
|
src.say(message)
|
|
|
|
/obj/item/device/assembly/speaker/attack_self(mob/user as mob)
|
|
var/new_msg = sanitize(input(user,"Enter new message for the [src]","NanoSpeaker Settings",message))
|
|
if(!Adjacent(user) || user.incapacitated())
|
|
return
|
|
|
|
message = new_msg
|
|
|
|
var/datum/language/language
|
|
if(user.stat == DEAD) //ENGAGE SPOOKS!
|
|
language = all_languages["Spooky"]
|
|
src.say("New message: [message]", language)
|
|
|
|
/obj/item/device/assembly/speaker/attackby(obj/item/W as obj, mob/user as mob)
|
|
..()
|
|
if(istype(W,/obj/item/weapon/pen)) //pen
|
|
var/tmp/new_name = sanitize(input(user,"Enter new name for the [src]","NanoSpeaker Settings",name))
|
|
if(!Adjacent(user) || user.incapacitated())
|
|
return
|
|
if(new_name != "")
|
|
name = "[real_name] ([new_name])"
|
|
else
|
|
name = real_name
|
|
|
|
/obj/item/device/assembly/speaker/say(message, var/datum/language/speaking, var/atom/movable/radio=src)
|
|
if(istype(loc, /obj/item/device/assembly_frame)) //When put in assembly frames, the speakers can't be heard.
|
|
var/obj/item/device/assembly_frame/F = loc //This is a workaround
|
|
F.say(message, speaking, radio)
|
|
else
|
|
return ..()
|
|
|
|
/obj/item/device/assembly/speaker/can_speak()
|
|
return 1
|
|
/*
|
|
/obj/item/device/assembly/speaker/proc/say(var/msg=message as text)
|
|
var/tmp/location = get_turf(src)
|
|
for(var/mob/O in hearers(location, null)) //to all living
|
|
O.show_message("<span class='game say'><span class='name'>[src]</span> beeps, \"[msg]\"",2)
|
|
*/
|
|
|
|
#undef VALUE_MESSAGE
|