diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 2ccfb5b2490..c53296c0d15 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -187,7 +187,7 @@ its easier to just keep the beam vertical. //All atoms -/atom/proc/examine(mob/user, var/distance = -1) +/atom/proc/examine(mob/user, var/distance = -1, var/sufix = "") //This reformat names to get a/an properly working on item descriptions when they are bloody var/f_name = "\a [src]." if(src.blood_DNA && !istype(src, /obj/effect/decal)) @@ -197,7 +197,7 @@ its easier to just keep the beam vertical. f_name = "a " f_name += "blood-stained [name]!" - user << "\icon[src] That's [f_name]" + user << "\icon[src] That's [f_name] [sufix]" if(desc) user << desc diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 4544156923d..f426a343469 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -102,7 +102,7 @@ src.loc = T -/obj/item/examine(mob/user) +/obj/item/examine(mob/user, var/distance = -1) var/size switch(src.w_class) if(1.0) @@ -117,10 +117,8 @@ size = "huge" else //if ((CLUMSY in usr.mutations) && prob(50)) t = "funny-looking" - user << "This is a [src.blood_DNA ? "bloody " : ""]\icon[src][src.name]. It is a [size] item." - if(src.desc) - user << src.desc - return + var/custom_sufix = "It is a [size] item." + return ..(user, distance, custom_sufix) /obj/item/attack_hand(mob/user as mob) if (!user) return diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index f697520b23a..aa58c01ee6e 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -1,6 +1,7 @@ /obj/item/device/radio/headset name = "radio headset" desc = "An updated, modular intercom that fits over the head. Takes encryption keys" + var/radio_desc = "" icon_state = "headset" item_state = "headset" matter = list("metal" = 75) @@ -17,7 +18,14 @@ /obj/item/device/radio/headset/New() ..() keyslot1 = new /obj/item/device/encryptionkey/ - recalculateChannels() + recalculateChannels(1) + +/obj/item/device/radio/headset/examine(mob/user) + if(!(..(user, 1) && radio_desc)) + return + + user << "The following channels are built-in:" + user << radio_desc /obj/item/device/radio/headset/handle_message_mode(mob/living/M as mob, message, channel) if (channel == "special") @@ -47,7 +55,7 @@ del(keyslot1) keyslot1 = new /obj/item/device/encryptionkey/syndicate syndie = 1 - recalculateChannels() + recalculateChannels(1) /obj/item/device/radio/headset/binary origin_tech = "syndicate=3" @@ -55,60 +63,60 @@ ..() del(keyslot1) keyslot1 = new /obj/item/device/encryptionkey/binary - recalculateChannels() + recalculateChannels(1) /obj/item/device/radio/headset/headset_sec name = "security radio headset" - desc = "This is used by your elite security force. To access the security channel, use :s." + desc = "This is used by your elite security force." icon_state = "sec_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_eng name = "engineering radio headset" - desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. " + desc = "When the engineers wish to chat like girls." icon_state = "eng_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_rob name = "robotics radio headset" - desc = "Made specifically for the roboticists who cannot decide between departments. To access the engineering channel, use :e. For research, use :n." + desc = "Made specifically for the roboticists who cannot decide between departments." icon_state = "rob_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_rob /obj/item/device/radio/headset/headset_med name = "medical radio headset" - desc = "A headset for the trained staff of the medbay. To access the medical channel, use :m." + desc = "A headset for the trained staff of the medbay." icon_state = "med_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_sci name = "science radio headset" - desc = "A sciency headset. Like usual. To access the science channel, use :n." + desc = "A sciency headset. Like usual." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_sci /obj/item/device/radio/headset/headset_medsci name = "medical research radio headset" - desc = "A headset that is a result of the mating between medical and science. To access the medical channel, use :m. For science, use :n." + desc = "A headset that is a result of the mating between medical and science." icon_state = "med_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_medsci /obj/item/device/radio/headset/headset_com name = "command radio headset" - desc = "A headset with a commanding channel. To access the command channel, use :c." + desc = "A headset with a commanding channel." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_com /obj/item/device/radio/headset/heads/captain name = "captain's headset" - desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." + desc = "The headset of the boss." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/captain @@ -130,35 +138,35 @@ /obj/item/device/radio/headset/heads/rd name = "Research Director's headset" - desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c." + desc = "Headset of the researching God." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/hos name = "head of security's headset" - desc = "The headset of the man who protects your worthless lifes. To access the security channel, use :s. For command, use :c." + desc = "The headset of the man who protects your worthless lifes." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/ce name = "chief engineer's headset" - desc = "The headset of the guy who is in charge of morons. To access the engineering channel, use :e. For command, use :c." + desc = "The headset of the guy who is in charge of morons" icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/cmo name = "chief medical officer's headset" - desc = "The headset of the highly trained medical chief. To access the medical channel, use :m. For command, use :c." + desc = "The headset of the highly trained medical chief." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/hop name = "head of personnel's headset" - desc = "The headset of the guy who will one day be captain. Channels are as follows: :u - supply, :v - service, :c - command, :s - security" + desc = "The headset of the guy who will one day be captain." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/hop @@ -179,21 +187,21 @@ */ /obj/item/device/radio/headset/headset_cargo name = "supply radio headset" - desc = "A headset used by the QM and his slaves. To access the supply channel, use :u." + desc = "A headset used by the QM and his slaves." icon_state = "cargo_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_service name = "service radio headset" - desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean. To access the service channel, use :v." + desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean." icon_state = "srv_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/ert name = "CentCom Response Team headset" - desc = "The headset of the boss's boss. Channels are as follows: :h - Response Team :c - command, :s - security, :e - engineering, :d - mining, :u - cargo, :v - service, :m - medical, :n - science." + desc = "The headset of the boss's boss." icon_state = "com_headset" item_state = "headset" freerange = 1 @@ -255,7 +263,7 @@ return -/obj/item/device/radio/headset/proc/recalculateChannels() +/obj/item/device/radio/headset/proc/recalculateChannels(var/setDescription = 0) src.channels = list() src.translate_binary = 0 src.translate_hive = 0 @@ -303,4 +311,18 @@ secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT) - return \ No newline at end of file + if(setDescription) + setupRadioDescription() + + return + +/obj/item/device/radio/headset/proc/setupRadioDescription() + var/radio_text = "" + for(var/i = 1 to channels.len) + var/channel = channels[i] + var/key = get_radio_key_from_channel(channel) + radio_text += "[key] - [channel]" + if(i != channels.len) + radio_text += ", " + + radio_desc = radio_text diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 814b3044966..415ba656954 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -491,7 +491,7 @@ /obj/item/device/radio/examine(mob/user) - ..(user) + . = ..() if ((in_range(src, user) || loc == user)) if (b_stat) user.show_message("\blue \the [src] can be attached and modified!")