diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index e9caca75..54c36104 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -25,7 +25,7 @@
return ..()
/obj/screen/examine(mob/user)
- return
+ return list()
/obj/screen/orbit()
return
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 71ef48bb..d0abf48f 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -102,9 +102,8 @@
/obj/item/tk_grab/examine(user)
if (focus)
- focus.examine(user)
- else
- ..()
+ return focus.examine(user)
+ return ..()
/obj/item/tk_grab/attack_self(mob/user)
if(!focus)
diff --git a/code/datums/components/armor_plate.dm b/code/datums/components/armor_plate.dm
index 53c8c280..975b52dc 100644
--- a/code/datums/components/armor_plate.dm
+++ b/code/datums/components/armor_plate.dm
@@ -29,21 +29,21 @@
var/obj/item/typecast = upgrade_item
upgrade_name = initial(typecast.name)
-/datum/component/armor_plate/proc/examine(datum/source, mob/user)
+/datum/component/armor_plate/proc/examine(datum/source, mob/user, list/examine_list)
//upgrade_item could also be typecast here instead
if(ismecha(parent))
if(amount)
if(amount < maxamount)
- to_chat(user, "Its armor is enhanced with [amount] [upgrade_name].")
+ examine_list += "Its armor is enhanced with [amount] [upgrade_name]."
else
- to_chat(user, "It's wearing a fearsome carapace entirely composed of [upgrade_name] - its pilot must be an experienced monster hunter.")
+ examine_list += "It's wearing a fearsome carapace entirely composed of [upgrade_name] - its pilot must be an experienced monster hunter."
else
- to_chat(user, "It has attachment points for strapping monster hide on for added protection.")
+ examine_list += "It has attachment points for strapping monster hide on for added protection."
else
if(amount)
- to_chat(user, "It has been strengthened with [amount]/[maxamount] [upgrade_name].")
+ examine_list += "It has been strengthened with [amount]/[maxamount] [upgrade_name]."
else
- to_chat(user, "It can be strengthened with up to [maxamount] [upgrade_name].")
+ examine_list += "It can be strengthened with up to [maxamount] [upgrade_name]."
/datum/component/armor_plate/proc/applyplate(datum/source, obj/item/I, mob/user, params)
if(!istype(I,upgrade_item))
diff --git a/code/datums/components/construction.dm b/code/datums/components/construction.dm
index 3b64d684..01df4475 100644
--- a/code/datums/components/construction.dm
+++ b/code/datums/components/construction.dm
@@ -19,9 +19,9 @@
RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/action)
update_parent(index)
-/datum/component/construction/proc/examine(datum/source, mob/user)
+/datum/component/construction/proc/examine(datum/source, mob/user, list/examine_list)
if(desc)
- to_chat(user, desc)
+ examine_list += desc
/datum/component/construction/proc/on_step()
if(index > steps.len)
diff --git a/code/datums/components/decal.dm b/code/datums/components/decal.dm
index e5547ee0..5300493a 100644
--- a/code/datums/components/decal.dm
+++ b/code/datums/components/decal.dm
@@ -71,5 +71,5 @@
if(strength >= cleanable)
qdel(src)
-/datum/component/decal/proc/examine(datum/source, mob/user)
- to_chat(user, description)
\ No newline at end of file
+/datum/component/decal/proc/examine(datum/source, mob/user, list/examine_list)
+ examine_list += description
\ No newline at end of file
diff --git a/code/datums/components/magnetic_catch.dm b/code/datums/components/magnetic_catch.dm
index fb68b89e..c7e59e0e 100644
--- a/code/datums/components/magnetic_catch.dm
+++ b/code/datums/components/magnetic_catch.dm
@@ -15,8 +15,8 @@
for(var/i in parent)
RegisterSignal(i, COMSIG_MOVABLE_PRE_THROW, .proc/throw_react)
-/datum/component/magnetic_catch/proc/examine(datum/source, mob/user)
- to_chat(user, "It has been installed with inertia dampening to prevent coffee spills.")
+/datum/component/magnetic_catch/proc/examine(datum/source, mob/user, list/examine_list)
+ examine_list += "It has been installed with inertia dampening to prevent coffee spills."
/datum/component/magnetic_catch/proc/crossed_react(datum/source, atom/movable/thing)
RegisterSignal(thing, COMSIG_MOVABLE_PRE_THROW, .proc/throw_react, TRUE)
diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm
index 48fa758d..25094518 100644
--- a/code/datums/components/material_container.dm
+++ b/code/datums/components/material_container.dm
@@ -49,13 +49,13 @@
var/mat_path = possible_mats[id]
materials[id] = new mat_path()
-/datum/component/material_container/proc/OnExamine(datum/source, mob/user)
+/datum/component/material_container/proc/OnExamine(datum/source, mob/user, list/examine_list)
if(show_on_examine)
for(var/I in materials)
var/datum/material/M = materials[I]
var/amt = amount(M.id)
if(amt)
- to_chat(user, "It has [amt] units of [lowertext(M.name)] stored.")
+ examine_list += "It has [amt] units of [lowertext(M.name)] stored."
/datum/component/material_container/proc/OnAttackBy(datum/source, obj/item/I, mob/living/user)
var/list/tc = allowed_typecache
diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm
index ff424dc0..72bf1c36 100644
--- a/code/datums/components/rotation.dm
+++ b/code/datums/components/rotation.dm
@@ -77,9 +77,9 @@
remove_verbs()
. = ..()
-/datum/component/simple_rotation/proc/ExamineMessage(datum/source, mob/user)
+/datum/component/simple_rotation/proc/ExamineMessage(datum/source, mob/user, list/examine_list)
if(rotation_flags & ROTATION_ALTCLICK)
- to_chat(user, "Alt-click to rotate it clockwise.")
+ examine_list += "Alt-click to rotate it clockwise."
/datum/component/simple_rotation/proc/HandRot(datum/source, mob/user, rotation = default_rotation_direction)
if(!can_be_rotated.Invoke(user, rotation) || !can_user_rotate.Invoke(user, rotation))
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 7a024895..551a977a 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -254,18 +254,6 @@
return TRUE
return FALSE
-/atom/proc/get_examine_name(mob/user)
- . = "\a [src]"
- var/list/override = list(gender == PLURAL ? "some" : "a", " ", "[name]")
- if(article)
- . = "[article] [src]"
- override[EXAMINE_POSITION_ARTICLE] = article
- if(SEND_SIGNAL(src, COMSIG_ATOM_GET_EXAMINE_NAME, user, override) & COMPONENT_EXNAME_CHANGED)
- . = override.Join("")
-
-/atom/proc/get_examine_string(mob/user, thats = FALSE)
- . = "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]"
-
/atom/proc/update_icon_state()
/atom/proc/update_overlaysb()
@@ -288,33 +276,51 @@
managed_overlays = new_overlays
add_overlay(new_overlays)
+/atom/proc/get_examine_name(mob/user)
+ . = "\a [src]"
+ var/list/override = list(gender == PLURAL ? "some" : "a", " ", "[name]")
+ if(article)
+ . = "[article] [src]"
+ override[EXAMINE_POSITION_ARTICLE] = article
+
+ var/should_override = FALSE
+
+ if(SEND_SIGNAL(src, COMSIG_ATOM_GET_EXAMINE_NAME, user, override) & COMPONENT_EXNAME_CHANGED)
+ should_override = TRUE
+
+ if(should_override)
+ . = override.Join("")
+
+///Generate the full examine string of this atom (including icon for goonchat)
+/atom/proc/get_examine_string(mob/user, thats = FALSE)
+ return "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]"
+
/atom/proc/examine(mob/user)
- to_chat(user, get_examine_string(user, TRUE))
+ . = list("[get_examine_string(user, TRUE)].")
if(desc)
- to_chat(user, desc)
+ . += desc
if(reagents)
if(reagents.reagents_holder_flags & TRANSPARENT)
- to_chat(user, "It contains:")
- if(reagents.reagent_list.len)
+ . += "It contains:"
+ if(length(reagents.reagent_list))
if(user.can_see_reagents()) //Show each individual reagent
for(var/datum/reagent/R in reagents.reagent_list)
- to_chat(user, "[R.volume] units of [R.name]")
+ . += "[R.volume] units of [R.name]"
else //Otherwise, just show the total volume
var/total_volume = 0
for(var/datum/reagent/R in reagents.reagent_list)
total_volume += R.volume
- to_chat(user, "[total_volume] units of various reagents")
+ . += "[total_volume] units of various reagents"
else
- to_chat(user, "Nothing.")
+ . += "Nothing."
else if(reagents.reagents_holder_flags & AMOUNT_VISIBLE)
if(reagents.total_volume)
- to_chat(user, "It has [reagents.total_volume] unit\s left.")
+ . += "It has [reagents.total_volume] unit\s left."
else
- to_chat(user, "It's empty.")
-
- SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user)
+ . += "It's empty."
+ SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .)
/atom/proc/relaymove(mob/user)
if(buckle_message_cooldown <= world.time)
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 426d23b4..78d79ea7 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -167,7 +167,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
/obj/effect/meteor/examine(mob/user)
if(!(flags_1 & ADMIN_SPAWNED_1) && isliving(user))
SSmedals.UnlockMedal(MEDAL_METEOR, user.client)
- ..()
+ return ..()
/obj/effect/meteor/attackby(obj/item/I, mob/user, params)
if(I.tool_behaviour == TOOL_MINING)
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index aaf03ff1..9e99ed33 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -100,6 +100,10 @@
return
return ..()
+/obj/machinery/sleeper/examine(mob/user)
+ . = ..()
+ . += "Alt-click [src] to [state_open ? "close" : "open"] it."
+
/obj/machinery/sleeper/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state)
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index 306280c8..33325e6b 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -444,22 +444,22 @@ Class Procs:
to_chat(user, "[icon2html(C, user)] \A [C].")
/obj/machinery/examine(mob/user)
- ..()
+ . = ..()
if(stat & BROKEN)
- to_chat(user, "It looks broken and non-functional.")
+ . += "It looks broken and non-functional."
if(!(resistance_flags & INDESTRUCTIBLE))
if(resistance_flags & ON_FIRE)
- to_chat(user, "It's on fire!")
+ . += "It's on fire!"
var/healthpercent = (obj_integrity/max_integrity) * 100
switch(healthpercent)
if(50 to 99)
- to_chat(user, "It looks slightly damaged.")
+ . += "It looks slightly damaged."
if(25 to 50)
- to_chat(user, "It appears heavily damaged.")
+ . += "It appears heavily damaged."
if(0 to 25)
- to_chat(user, "It's falling apart!")
+ . += "It's falling apart!"
if(user.research_scanner && component_parts)
- display_parts(user)
+ . += display_parts(user, TRUE)
//called on machinery construction (i.e from frame to machinery) but not on initialization
/obj/machinery/proc/on_construction()
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index 1a534953..4935c9d4 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -14,8 +14,8 @@
req_access = list(ACCESS_AI_UPLOAD)
/obj/machinery/ai_slipper/examine(mob/user)
- ..()
- to_chat(user, "It has [uses] uses of foam remaining.")
+ . = ..()
+ . += "It has [uses] uses of foam remaining."
/obj/machinery/ai_slipper/power_change()
if(stat & BROKEN)
diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm
index 99200e51..0bbb79e6 100644
--- a/code/game/machinery/aug_manipulator.dm
+++ b/code/game/machinery/aug_manipulator.dm
@@ -11,9 +11,9 @@
var/static/list/style_list_icons = list("standard" = 'icons/mob/augmentation/augments.dmi', "engineer" = 'icons/mob/augmentation/augments_engineer.dmi', "security" = 'icons/mob/augmentation/augments_security.dmi', "mining" = 'icons/mob/augmentation/augments_mining.dmi')
/obj/machinery/aug_manipulator/examine(mob/user)
- ..()
+ . = ..()
if(storedpart)
- to_chat(user, "Alt-click to eject the limb.")
+ . += "Alt-click to eject the limb."
/obj/machinery/aug_manipulator/Initialize()
initial_icon_state = initial(icon_state)
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 2e5af34e..1969fe8b 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -24,10 +24,10 @@
add_overlay("ccharger-o[newlevel]")
/obj/machinery/cell_charger/examine(mob/user)
- ..()
- to_chat(user, "There's [charging ? "a" : "no"] cell in the charger.")
+ . = ..()
+ . += "There's [charging ? "a" : "no"] cell in the charger."
if(charging)
- to_chat(user, "Current charge: [round(charging.percent(), 1)]%.")
+ . += "Current charge: [round(charging.percent(), 1)]%."
/obj/machinery/cell_charger/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stock_parts/cell) && !panel_open)
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 2dd1735e..82b58649 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -95,20 +95,20 @@
to_chat(user, "You flip the write-protect tab to [read_only ? "protected" : "unprotected"].")
/obj/item/disk/data/examine(mob/user)
- ..()
- to_chat(user, "The write-protect tab is set to [read_only ? "protected" : "unprotected"].")
+ . = ..()
+ . += "The write-protect tab is set to [read_only ? "protected" : "unprotected"]."
//Clonepod
/obj/machinery/clonepod/examine(mob/user)
- ..()
+ . = ..()
var/mob/living/mob_occupant = occupant
if(mess)
- to_chat(user, "It's filled with blood and viscera. You swear you can see it moving...")
+ . += "It's filled with blood and viscera. You swear you can see it moving..."
if(is_operational() && mob_occupant)
if(mob_occupant.stat != DEAD)
- to_chat(user, "Current clone cycle is [round(get_completion())]% complete.")
+ . += "Current clone cycle is [round(get_completion())]% complete."
/obj/machinery/clonepod/return_air()
// We want to simulate the clone not being in contact with
diff --git a/code/game/machinery/computer/arcade/orion_trail.dm b/code/game/machinery/computer/arcade/orion_trail.dm
index 12941dea..eb36ee72 100644
--- a/code/game/machinery/computer/arcade/orion_trail.dm
+++ b/code/game/machinery/computer/arcade/orion_trail.dm
@@ -760,13 +760,13 @@
var/active = 0 //if the ship is on
/obj/item/orion_ship/examine(mob/user)
- ..()
+ . = ..()
if(!(in_range(user, src)))
return
if(!active)
- to_chat(user, "There's a little switch on the bottom. It's flipped down.")
+ . += "There's a little switch on the bottom. It's flipped down."
else
- to_chat(user, "There's a little switch on the bottom. It's flipped up.")
+ . += "There's a little switch on the bottom. It's flipped up."
/obj/item/orion_ship/attack_self(mob/user) //Minibomb-level explosion. Should probably be more because of how hard it is to survive the machine! Also, just over a 5-second fuse
if(active)
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index ce0a9b2e..a46a1bb9 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -46,9 +46,9 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
light_color = LIGHT_COLOR_BLUE
/obj/machinery/computer/card/examine(mob/user)
- ..()
+ . = ..()
if(scan || modify)
- to_chat(user, "Alt-click to eject the ID card.")
+ . += "Alt-click to eject the ID card."
/obj/machinery/computer/card/Initialize()
. = ..()
diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm
index 59c96299..018405df 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -99,11 +99,11 @@
stored_research = SSresearch.science_tech
/obj/machinery/computer/scan_consolenew/examine(mob/user)
- ..()
+ . = ..()
if(jokerready < world.time)
- to_chat(user, "JOKER algorithm available.")
+ . += "JOKER algorithm available."
else
- to_chat(user, "JOKER algorithm available in about [round(0.00166666667 * (jokerready - world.time))] minutes.")
+ . += "JOKER algorithm available in about [round(0.00166666667 * (jokerready - world.time))] minutes."
/obj/machinery/computer/scan_consolenew/ui_interact(mob/user, last_change)
. = ..()
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index ee4e5289..9a8e1280 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -24,9 +24,9 @@
light_color = LIGHT_COLOR_RED
/obj/machinery/computer/secure_data/examine(mob/user)
- ..()
+ . = ..()
if(scan)
- to_chat(user, "Alt-click to eject the ID card.")
+ . += "Alt-click to eject the ID card."
/obj/machinery/computer/secure_data/syndie
icon_keyboard = "syndie_key"
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 43fb1e53..96487915 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -8,9 +8,9 @@
var/state = 1
/obj/structure/frame/examine(user)
- ..()
+ . = ..()
if(circuit)
- to_chat(user, "It has \a [circuit] installed.")
+ . += "It has \a [circuit] installed."
/obj/structure/frame/deconstruct(disassembled = TRUE)
@@ -29,7 +29,7 @@
var/list/req_component_names = null // user-friendly names of components
/obj/structure/frame/machine/examine(user)
- ..()
+ . = ..()
if(state == 3 && req_components && req_component_names)
var/hasContent = 0
var/requires = "It requires"
@@ -44,9 +44,9 @@
hasContent = 1
if(hasContent)
- to_chat(user, requires + ".")
+ . += requires + "."
else
- to_chat(user, "It does not require any more components.")
+ . += "It does not require any more components."
/obj/structure/frame/machine/proc/update_namelist()
if(!req_components)
diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm
index 4210435f..97cc0f57 100644
--- a/code/game/machinery/defibrillator_mount.dm
+++ b/code/game/machinery/defibrillator_mount.dm
@@ -24,13 +24,13 @@
. = ..()
/obj/machinery/defibrillator_mount/examine(mob/user)
- ..()
+ . = ..()
if(defib)
- to_chat(user, "There is a defib unit hooked up. Alt-click to remove it.")
+ . += "There is a defib unit hooked up. Alt-click to remove it."
if(GLOB.security_level >= SEC_LEVEL_RED)
- to_chat(user, "Due to a security situation, its locking clamps can be toggled by swiping any ID.")
+ . += "Due to a security situation, its locking clamps can be toggled by swiping any ID."
else
- to_chat(user, "Its locking clamps can be [clamps_locked ? "dis" : ""]engaged by swiping an ID with access.")
+ . += "Its locking clamps can be [clamps_locked ? "dis" : ""]engaged by swiping an ID with access."
/obj/machinery/defibrillator_mount/process()
if(defib && defib.cell && defib.cell.charge < defib.cell.maxcharge && is_operational())
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index f4154eac..f07cf38a 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -148,8 +148,8 @@
var/mode = SINGLE
/obj/item/grenade/barrier/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to toggle modes.")
+ . = ..()
+ . += "Alt-click to toggle modes."
/obj/item/grenade/barrier/AltClick(mob/living/carbon/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm
index 66aa1347..3aad8d87 100644
--- a/code/game/machinery/dish_drive.dm
+++ b/code/game/machinery/dish_drive.dm
@@ -27,9 +27,9 @@
RefreshParts()
/obj/machinery/dish_drive/examine(mob/user)
- ..()
+ . = ..()
if(user.Adjacent(src))
- to_chat(user, "Alt-click it to beam its contents to any nearby disposal bins.")
+ . += "Alt-click it to beam its contents to any nearby disposal bins."
/obj/machinery/dish_drive/attack_hand(mob/living/user)
if(!contents.len)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 11c6be02..7a2f1fd3 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -639,47 +639,47 @@
update_icon(AIRLOCK_CLOSED)
/obj/machinery/door/airlock/examine(mob/user)
- ..()
+ . = ..()
if(obj_flags & EMAGGED)
- to_chat(user, "Its access panel is smoking slightly.")
+ . += "Its access panel is smoking slightly."
if(charge && !panel_open && in_range(user, src))
- to_chat(user, "The maintenance panel seems haphazardly fastened.")
+ . += "The maintenance panel seems haphazardly fastened."
if(charge && panel_open)
- to_chat(user, "Something is wired up to the airlock's electronics!")
+ . += "Something is wired up to the airlock's electronics!"
if(note)
if(!in_range(user, src))
- to_chat(user, "There's a [note.name] pinned to the front. You can't read it from here.")
+ . += "There's a [note.name] pinned to the front. You can't read it from here."
else
- to_chat(user, "There's a [note.name] pinned to the front...")
- note.examine(user)
+ . += "There's a [note.name] pinned to the front..."
+ . += note.examine(user)
if(panel_open)
switch(security_level)
if(AIRLOCK_SECURITY_NONE)
- to_chat(user, "Its wires are exposed!")
+ . += "Its wires are exposed!"
if(AIRLOCK_SECURITY_METAL)
- to_chat(user, "Its wires are hidden behind a welded metal cover.")
+ . += "Its wires are hidden behind a welded metal cover."
if(AIRLOCK_SECURITY_PLASTEEL_I_S)
- to_chat(user, "There is some shredded plasteel inside.")
+ . += "There is some shredded plasteel inside."
if(AIRLOCK_SECURITY_PLASTEEL_I)
- to_chat(user, "Its wires are behind an inner layer of plasteel.")
+ . += "Its wires are behind an inner layer of plasteel."
if(AIRLOCK_SECURITY_PLASTEEL_O_S)
- to_chat(user, "There is some shredded plasteel inside.")
+ . += "There is some shredded plasteel inside."
if(AIRLOCK_SECURITY_PLASTEEL_O)
- to_chat(user, "There is a welded plasteel cover hiding its wires.")
+ . += "There is a welded plasteel cover hiding its wires."
if(AIRLOCK_SECURITY_PLASTEEL)
- to_chat(user, "There is a protective grille over its panel.")
+ . += "There is a protective grille over its panel."
else if(security_level)
if(security_level == AIRLOCK_SECURITY_METAL)
- to_chat(user, "It looks a bit stronger.")
+ . += "It looks a bit stronger."
else
- to_chat(user, "It looks very robust.")
+ . += "It looks very robust."
if(issilicon(user) && (!stat & BROKEN))
- to_chat(user, "Shift-click [src] to [ density ? "open" : "close"] it.")
- to_chat(user, "Ctrl-click [src] to [ locked ? "raise" : "drop"] its bolts.")
- to_chat(user, "Alt-click [src] to [ secondsElectrified ? "un-electrify" : "permanently electrify"] it.")
- to_chat(user, "Ctrl-Shift-click [src] to [ emergency ? "disable" : "enable"] emergency access.")
+ . += "Shift-click [src] to [ density ? "open" : "close"] it."
+ . += "Ctrl-click [src] to [ locked ? "raise" : "drop"] its bolts."
+ . += "Alt-click [src] to [ secondsElectrified ? "un-electrify" : "permanently electrify"] it."
+ . += "Ctrl-Shift-click [src] to [ emergency ? "disable" : "enable"] emergency access."
/obj/machinery/door/airlock/attack_ai(mob/user)
if(!src.canAIControl(user))
diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index cfaa94b8..54774a8f 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -7,8 +7,8 @@
var/unres_sides = 0 //unrestricted sides, or sides of the airlock that will open regardless of access
/obj/item/electronics/airlock/examine(mob/user)
- ..()
- to_chat(user, "Has a neat selection menu for modifying airlock access levels.")
+ . = ..()
+ . += "Has a neat selection menu for modifying airlock access levels."
/obj/item/electronics/airlock/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state)
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 3243986f..3525742c 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -584,14 +584,12 @@
return ..()
/obj/machinery/door/airlock/clockwork/examine(mob/user)
- ..()
- var/gear_text = "The cogwheel is flickering and twisting wildly. Report this to a coder."
+ . = ..()
switch(construction_state)
if(GEAR_SECURE)
- gear_text = "The cogwheel is solidly wrenched to the brass around it."
+ . += "The cogwheel is solidly wrenched to the brass around it."
if(GEAR_LOOSE)
- gear_text = "The cogwheel has been loosened, but remains connected loosely to the door!"
- to_chat(user, gear_text)
+ . += "The cogwheel has been loosened, but remains connected loosely to the door!"
/obj/machinery/door/airlock/clockwork/emp_act(severity)
if(prob(80/severity))
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 0c99fc92..a7d62ea6 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -38,14 +38,14 @@
var/unres_sides = 0 //Unrestricted sides. A bitflag for which direction (if any) can open the door with no access
/obj/machinery/door/examine(mob/user)
- ..()
+ . = ..()
if(red_alert_access)
if(GLOB.security_level >= SEC_LEVEL_RED)
- to_chat(user, "Due to a security threat, its access requirements have been lifted!")
+ . += "Due to a security threat, its access requirements have been lifted!"
else
- to_chat(user, "In the event of a red alert, its access requirements will automatically lift.")
+ . += "In the event of a red alert, its access requirements will automatically lift."
if(!poddoor)
- to_chat(user, "Its maintenance panel is screwed in place.")
+ . += "Its maintenance panel is screwed in place."
/obj/machinery/door/check_access_list(list/access_list)
if(red_alert_access && GLOB.security_level >= SEC_LEVEL_RED)
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index bbd692b8..f5bf8c8a 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -32,15 +32,15 @@
CalculateAffectingAreas()
/obj/machinery/door/firedoor/examine(mob/user)
- ..()
+ . = ..()
if(!density)
- to_chat(user, "It is open, but could be pried closed.")
+ . += "It is open, but could be pried closed."
else if(!welded)
- to_chat(user, "It is closed, but could be pried open. Deconstruction would require it to be welded shut.")
+ . += "It is closed, but could be pried open. Deconstruction would require it to be welded shut."
else if(boltslocked)
- to_chat(user, "It is welded shut. The floor bolts have been locked by screws.")
+ . += "It is welded shut. The floor bolts have been locked by screws."
else
- to_chat(user, "The bolt locks have been unscrewed, but the bolts themselves are still wrenched to the floor.")
+ . += "The bolt locks have been unscrewed, but the bolts themselves are still wrenched to the floor."
/obj/machinery/door/firedoor/proc/CalculateAffectingAreas()
remove_from_areas()
@@ -270,18 +270,18 @@
var/reinforced = 0
/obj/structure/firelock_frame/examine(mob/user)
- ..()
+ . = ..()
switch(constructionStep)
if(CONSTRUCTION_PANEL_OPEN)
- to_chat(user, "It is unbolted from the floor. A small loosely connected metal plate is covering the wires.")
+ . += "It is unbolted from the floor. A small loosely connected metal plate is covering the wires."
if(!reinforced)
- to_chat(user, "It could be reinforced with plasteel.")
+ . += "It could be reinforced with plasteel."
if(CONSTRUCTION_WIRES_EXPOSED)
- to_chat(user, "The maintenance plate has been pried away, and wires are trailing.")
+ . += "The maintenance plate has been pried away, and wires are trailing."
if(CONSTRUCTION_GUTTED)
- to_chat(user, "The maintenance panel is missing wires and the circuit board is loosely connected.")
+ . += "The maintenance panel is missing wires and the circuit board is loosely connected."
if(CONSTRUCTION_NOCIRCUIT)
- to_chat(user, "There are no firelock electronics in the frame. The frame could be cut apart.")
+ . += "There are no firelock electronics in the frame. The frame could be cut apart."
/obj/structure/firelock_frame/update_icon()
..()
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index 8bc5bc7a..7baf5208 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -22,8 +22,8 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
return ..()
/obj/machinery/doppler_array/examine(mob/user)
- ..()
- to_chat(user, "Its dish is facing to the [dir2text(dir)].")
+ . = ..()
+ . += "Its dish is facing to the [dir2text(dir)]."
/obj/machinery/doppler_array/process()
return PROCESS_KILL
@@ -146,4 +146,4 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
/obj/machinery/doppler_array/research/science/Initialize()
. = ..()
- linked_techweb = SSresearch.science_tech
\ No newline at end of file
+ linked_techweb = SSresearch.science_tech
diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm
index 7c92c158..3e2a6183 100644
--- a/code/game/machinery/droneDispenser.dm
+++ b/code/game/machinery/droneDispenser.dm
@@ -129,9 +129,9 @@
break_message = "slowly falls dark, lights stuttering."
/obj/machinery/droneDispenser/examine(mob/user)
- ..()
+ . = ..()
if((mode == DRONE_RECHARGING) && !stat && recharging_text)
- to_chat(user, "[recharging_text]")
+ . += "[recharging_text]"
/obj/machinery/droneDispenser/power_change()
..()
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 530c72be..6f89ce0d 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -196,8 +196,8 @@
var/id = null
/obj/item/wallframe/flasher/examine(mob/user)
- ..()
- to_chat(user, "Its channel ID is '[id]'.")
+ . = ..()
+ . += "Its channel ID is '[id]'."
/obj/item/wallframe/flasher/after_attach(var/obj/O)
..()
diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm
index 8be7becf..63321baa 100644
--- a/code/game/machinery/harvester.dm
+++ b/code/game/machinery/harvester.dm
@@ -181,10 +181,10 @@
container_resist(user)
/obj/machinery/harvester/examine(mob/user)
- ..()
+ . = ..()
if(stat & BROKEN)
return
if(state_open)
- to_chat(user, "[src] must be closed before harvesting.")
+ . += "[src] must be closed before harvesting."
else if(!harvesting)
- to_chat(user, "Alt-click [src] to start harvesting.")
\ No newline at end of file
+ . += "Alt-click [src] to start harvesting."
\ No newline at end of file
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 54b42a14..f03c4bf6 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -201,21 +201,19 @@
update_icon()
/obj/machinery/iv_drip/examine(mob/user)
- ..()
+ . = ..()
if(get_dist(user, src) > 2)
return
-
- to_chat(user, "The IV drip is [mode ? "injecting" : "taking blood"].")
-
+ . += "[src] is [mode ? "injecting" : "taking blood"].\n"
if(beaker)
if(beaker.reagents && beaker.reagents.reagent_list.len)
- to_chat(user, "Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.")
+ . += "\tAttached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.\n"
else
- to_chat(user, "Attached is an empty [beaker.name].")
+ . += "\tAttached is an empty [beaker.name].\n"
else
- to_chat(user, "No chemicals are attached.")
+ . += "\tNo chemicals are attached.\n"
- to_chat(user, "[attached ? attached : "No one"] is attached.")
+ . += "\t[attached ? attached : "No one"] is attached."
#undef IV_TAKING
#undef IV_INJECTING
diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm
index 064328bb..20b59e7a 100644
--- a/code/game/machinery/lightswitch.dm
+++ b/code/game/machinery/lightswitch.dm
@@ -33,8 +33,8 @@
icon_state = "light0"
/obj/machinery/light_switch/examine(mob/user)
- ..()
- to_chat(user, "It is [on? "on" : "off"].")
+ . = ..()
+ . += "It is [on? "on" : "off"]."
/obj/machinery/light_switch/interact(mob/user)
. = ..()
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 4a060bdd..e20c991c 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -815,10 +815,10 @@
T.cp = src
/obj/machinery/turretid/examine(mob/user)
- ..()
+ . = ..()
if(issilicon(user) && (!stat & BROKEN))
- to_chat(user, "Ctrl-click [src] to [ enabled ? "disable" : "enable"] turrets.")
- to_chat(user, "Alt-click [src] to set turrets to [ lethal ? "stun" : "kill"].")
+ . += "Ctrl-click [src] to [ enabled ? "disable" : "enable"] turrets."
+ . += "Alt-click [src] to set turrets to [ lethal ? "stun" : "kill"]."
/obj/machinery/turretid/attackby(obj/item/I, mob/user, params)
if(stat & BROKEN)
diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm
index b5ef38b4..f9fda50d 100644
--- a/code/game/machinery/quantum_pad.dm
+++ b/code/game/machinery/quantum_pad.dm
@@ -30,12 +30,12 @@
return ..()
/obj/machinery/quantumpad/examine(mob/user)
- ..()
- to_chat(user, "It is [ linked_pad ? "currently" : "not"] linked to another pad.")
+ . = ..()
+ . += "It is [ linked_pad ? "currently" : "not"] linked to another pad."
if(!panel_open)
- to_chat(user, "The panel is screwed in, obstructing the linking device.")
+ . += "The panel is screwed in, obstructing the linking device."
else
- to_chat(user, "The linking device is now able to be scanned with a multitool.")
+ . += "The linking device is now able to be scanned with a multitool."
/obj/machinery/quantumpad/RefreshParts()
var/E = 0
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index d91f3541..d6c73ce5 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -40,10 +40,10 @@
butchering.bonus_modifier = amount_produced/5
/obj/machinery/recycler/examine(mob/user)
- ..()
- to_chat(user, "The power light is [(stat & NOPOWER) ? "off" : "on"].")
- to_chat(user, "The safety-mode light is [safety_mode ? "on" : "off"].")
- to_chat(user, "The safety-sensors status light is [obj_flags & EMAGGED ? "off" : "on"].")
+ . = ..()
+ . += "The power light is [(stat & NOPOWER) ? "off" : "on"]."
+ . += "The safety-mode light is [safety_mode ? "on" : "off"]."
+ . += "The safety-sensors status light is [obj_flags & EMAGGED ? "off" : "on"]."
/obj/machinery/recycler/power_change()
..()
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index ce325505..984a911d 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -46,12 +46,12 @@
return ..()
/obj/machinery/space_heater/examine(mob/user)
- ..()
- to_chat(user, "\The [src] is [on ? "on" : "off"], and the hatch is [panel_open ? "open" : "closed"].")
+ . = ..()
+ . += "\The [src] is [on ? "on" : "off"], and the hatch is [panel_open ? "open" : "closed"]."
if(cell)
- to_chat(user, "The charge meter reads [cell ? round(cell.percent(), 1) : 0]%.")
+ . += "The charge meter reads [cell ? round(cell.percent(), 1) : 0]%."
else
- to_chat(user, "There is no power cell installed.")
+ . += "There is no power cell installed."
/obj/machinery/space_heater/update_icon()
if(on)
diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm
index 720e3e61..b674deb9 100644
--- a/code/game/machinery/stasis.dm
+++ b/code/game/machinery/stasis.dm
@@ -17,9 +17,9 @@
var/obj/effect/overlay/vis/mattress_on
/obj/machinery/stasis/examine(mob/user)
- ..()
+ . = ..()
var/turn_on_or_off = stasis_enabled ? "turn off" : "turn on"
- to_chat(user, "Alt-click to [turn_on_or_off] the machine.")
+ . += "Alt-click to [turn_on_or_off] the machine."
/obj/machinery/stasis/proc/play_power_sound()
var/_running = stasis_running()
@@ -139,4 +139,4 @@
unbuckle_mob(occupant)
else
..()
-#undef STASIS_TOGGLE_COOLDOWN
\ No newline at end of file
+#undef STASIS_TOGGLE_COOLDOWN
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index 675c8bce..a722fcaf 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -114,12 +114,11 @@
/obj/machinery/status_display/examine(mob/user)
. = ..()
if (message1 || message2)
- var/list/msg = list("The display says:")
+ . += "The display says:"
if (message1)
- msg += "
\t[html_encode(message1)]"
+ . += "\t[html_encode(message1)]"
if (message2)
- msg += "
\t[html_encode(message2)]"
- to_chat(user, msg.Join())
+ . += "\t[html_encode(message2)]"
// Helper procs for child display types.
/obj/machinery/status_display/proc/display_shuttle_status(obj/docking_port/mobile/shuttle)
@@ -146,9 +145,9 @@
modestr = "
\t[modestr]: [shuttle.getTimerStr()]"
else
modestr = "
\t[modestr]"
- to_chat(user, "The display says:
\t[shuttle.name][modestr]")
+ return "The display says:
\t[shuttle.name][modestr]"
else
- to_chat(user, "The display says:
\tShuttle missing!")
+ return "The display says:
\tShuttle missing!"
/// Evac display which shows shuttle timer or message set by Command.
@@ -195,9 +194,9 @@
/obj/machinery/status_display/evac/examine(mob/user)
. = ..()
if(mode == SD_EMERGENCY)
- examine_shuttle(user, SSshuttle.emergency)
+ . += examine_shuttle(user, SSshuttle.emergency)
else if(!message1 && !message2)
- to_chat(user, "The display is blank.")
+ . += "The display is blank."
/obj/machinery/status_display/evac/receive_signal(datum/signal/signal)
switch(signal.data["command"])
@@ -257,9 +256,9 @@
else
shuttleMsg = "[shuttle.getModeStr()]: [shuttle.getTimerStr()]"
if (shuttleMsg)
- to_chat(user, "The display says:
\t[shuttleMsg]")
+ . += "The display says:
\t[shuttleMsg]"
else
- to_chat(user, "The display is blank.")
+ . += "The display is blank."
/// General-purpose shuttle status display.
@@ -278,9 +277,9 @@
/obj/machinery/status_display/shuttle/examine(mob/user)
. = ..()
if(shuttle_id)
- examine_shuttle(user, SSshuttle.getShuttle(shuttle_id))
+ . += examine_shuttle(user, SSshuttle.getShuttle(shuttle_id))
else
- to_chat(user, "The display is blank.")
+ . += "The display is blank."
/obj/machinery/status_display/shuttle/vv_edit_var(var_name, var_value)
. = ..()
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index d7c2a573..df1f2842 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -99,8 +99,8 @@
return ..()
/obj/machinery/syndicatebomb/examine(mob/user)
- ..()
- to_chat(user, "A digital display on it reads \"[seconds_remaining()]\".")
+ . = ..()
+ . += "A digital display on it reads \"[seconds_remaining()]\"."
/obj/machinery/syndicatebomb/update_icon()
icon_state = "[initial(icon_state)][active ? "-active" : "-inactive"][open_panel ? "-wires" : ""]"
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index 1ebe8cb4..3ff2424d 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -28,7 +28,7 @@
/obj/machinery/transformer/examine(mob/user)
. = ..()
if(cooldown && (issilicon(user) || isobserver(user)))
- to_chat(user, "It will be ready in [DisplayTimeText(cooldown_timer - world.time)].")
+ . += "It will be ready in [DisplayTimeText(cooldown_timer - world.time)]."
/obj/machinery/transformer/Destroy()
QDEL_NULL(countdown)
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index 69e244a6..acc123b5 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -16,8 +16,8 @@
AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood)))
/obj/machinery/washing_machine/examine(mob/user)
- ..()
- to_chat(user, "Alt-click it to start a wash cycle.")
+ . = ..()
+ . += "Alt-click it to start a wash cycle."
/obj/machinery/washing_machine/AltClick(mob/user)
if(!user.canUseTopic(src))
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index d3106d7b..4032f370 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -268,23 +268,23 @@
////////////////////////////////////////////////////////////////////////////////
/obj/mecha/examine(mob/user)
- ..()
+ . = ..()
var/integrity = obj_integrity*100/max_integrity
switch(integrity)
if(85 to 100)
- to_chat(user, "It's fully intact.")
+ . += "It's fully intact."
if(65 to 85)
- to_chat(user, "It's slightly damaged.")
+ . += "It's slightly damaged."
if(45 to 65)
- to_chat(user, "It's badly damaged.")
+ . += "It's badly damaged."
if(25 to 45)
- to_chat(user, "It's heavily damaged.")
+ . += "It's heavily damaged."
else
- to_chat(user, "It's falling apart.")
+ . += "It's falling apart."
if(equipment && equipment.len)
- to_chat(user, "It's equipped with:")
+ . += "It's equipped with:"
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
- to_chat(user, "[icon2html(ME, user)] \A [ME].")
+ . += "[icon2html(ME, user)] \A [ME]."
if(!enclosed)
if(silicon_pilot)
to_chat(user, "[src] appears to be piloting itself...")
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index 652c9f31..af03e9ca 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -30,9 +30,9 @@
AI.remote_control = null
/obj/structure/mecha_wreckage/examine(mob/user)
- ..()
+ . = ..()
if(AI)
- to_chat(user, "The AI recovery beacon is active.")
+ . += "The AI recovery beacon is active."
/obj/structure/mecha_wreckage/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weldingtool))
diff --git a/code/game/objects/effects/countdown.dm b/code/game/objects/effects/countdown.dm
index eea6b6ba..6017e8fc 100644
--- a/code/game/objects/effects/countdown.dm
+++ b/code/game/objects/effects/countdown.dm
@@ -20,7 +20,7 @@
/obj/effect/countdown/examine(mob/user)
. = ..()
- to_chat(user, "This countdown is displaying: [displayed_text].")
+ . += "This countdown is displaying: [displayed_text]."
/obj/effect/countdown/proc/attach(atom/A)
attached_to = A
diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm
index 07ce9871..439ae734 100644
--- a/code/game/objects/effects/decals/cleanable/humans.dm
+++ b/code/game/objects/effects/decals/cleanable/humans.dm
@@ -179,9 +179,7 @@
. += "You recognise the footprints as belonging to:\n"
for(var/shoe in shoe_types)
var/obj/item/clothing/shoes/S = shoe
- . += "[icon2html(initial(S.icon), user)] Some [initial(S.name)].\n"
-
- to_chat(user, .)
+ . += "some [initial(S.name)] [icon2html(initial(S.icon), user)]"
/obj/effect/decal/cleanable/blood/footprints/replace_decal(obj/effect/decal/cleanable/C)
if(blood_state != C.blood_state) //We only replace footprints of the same type as us
diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm
index c009d3ec..9a498c9a 100644
--- a/code/game/objects/effects/glowshroom.dm
+++ b/code/game/objects/effects/glowshroom.dm
@@ -36,7 +36,7 @@
/obj/structure/glowshroom/examine(mob/user)
. = ..()
- to_chat(user, "This is a [generation]\th generation [name]!")
+ . += "This is a [generation]\th generation [name]!"
/obj/structure/glowshroom/Destroy()
if(myseed)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index d24f4b07..ecae0d85 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -187,14 +187,21 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
src.loc = T
/obj/item/examine(mob/user) //This might be spammy. Remove?
- ..()
- var/pronoun
- if(src.gender == PLURAL)
- pronoun = "They are"
+ . = ..()
+
+ . += "[gender == PLURAL ? "They are" : "It is"] a [weightclass2text(w_class)] item."
+
+ if(resistance_flags & INDESTRUCTIBLE)
+ . += "[src] seems extremely robust! It'll probably withstand anything that could happen to it!"
else
- pronoun = "It is"
- var/size = weightclass2text(src.w_class)
- to_chat(user, "[pronoun] a [size] item." )
+ if(resistance_flags & LAVA_PROOF)
+ . += "[src] is made of an extremely heat-resistant material, it'd probably be able to withstand lava!"
+ if(resistance_flags & (ACID_PROOF | UNACIDABLE))
+ . += "[src] looks pretty robust! It'd probably be able to withstand acid!"
+ if(resistance_flags & FREEZE_PROOF)
+ . += "[src] is made of cold-resistant materials."
+ if(resistance_flags & FIRE_PROOF)
+ . += "[src] is made of fire-retardant materials."
if(!user.research_scanner)
return
@@ -229,7 +236,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
else
research_msg += "None"
research_msg += "."
- to_chat(user, research_msg.Join())
+ . += research_msg.Join()
/obj/item/interact(mob/user)
add_fingerprint(user)
diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm
index 2fe5cf47..d1ac96ac 100644
--- a/code/game/objects/items/AI_modules.dm
+++ b/code/game/objects/items/AI_modules.dm
@@ -25,7 +25,7 @@ AI MODULES
materials = list(MAT_GOLD=50)
/obj/item/aiModule/examine(var/mob/user as mob)
- ..()
+ . = ..()
if(Adjacent(user))
show_laws(user)
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 7bef90c0..c7af75a2 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -47,11 +47,11 @@ RLD
/obj/item/construction/examine(mob/user)
. = ..()
- to_chat(user, "It currently holds [matter]/[max_matter] matter-units." )
+ . += "\A [src]. It currently holds [matter]/[max_matter] matter-units."
if(upgrade & RCD_UPGRADE_FRAMES)
- to_chat(user, "It contains the design for machine frames, computer frames and deconstruction." )
+ . += "It contains the design for machine frames, computer frames and deconstruction."
if(upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS)
- to_chat(user, "It contains the design for firelock, air alarm, fire alarm, apc circuits and crap power cells.")
+ . += "It contains the design for firelock, air alarm, fire alarm, apc circuits and crap power cells."
/obj/item/construction/Destroy()
QDEL_NULL(spark_system)
@@ -875,4 +875,4 @@ RLD
#undef GLOW_MODE
#undef LIGHT_MODE
-#undef REMOVE_MODE
\ No newline at end of file
+#undef REMOVE_MODE
diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm
index 63f460f9..16104f0b 100644
--- a/code/game/objects/items/RCL.dm
+++ b/code/game/objects/items/RCL.dm
@@ -79,9 +79,9 @@
..()
/obj/item/twohanded/rcl/examine(mob/user)
- ..()
+ . = ..()
if(loaded)
- to_chat(user, "It contains [loaded.amount]/[max_amount] cables.")
+ . += "It contains [loaded.amount]/[max_amount] cables."
/obj/item/twohanded/rcl/Destroy()
QDEL_NULL(loaded)
diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm
index f0d15cc3..b6196b0c 100644
--- a/code/game/objects/items/RSF.dm
+++ b/code/game/objects/items/RSF.dm
@@ -20,8 +20,8 @@ RSF
w_class = WEIGHT_CLASS_NORMAL
/obj/item/rsf/examine(mob/user)
- ..()
- to_chat(user, "It currently holds [matter]/30 fabrication-units.")
+ . = ..()
+ . += "It currently holds [matter]/30 fabrication-units."
/obj/item/rsf/cyborg
matter = 30
@@ -127,8 +127,8 @@ RSF
w_class = WEIGHT_CLASS_NORMAL
/obj/item/cookiesynth/examine(mob/user)
- ..()
- to_chat(user, "It currently holds [matter]/10 cookie-units.")
+ . = ..()
+ . += "It currently holds [matter]/10 cookie-units."
/obj/item/cookiesynth/attackby()
return
diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm
index 7257da56..1dac4df9 100644
--- a/code/game/objects/items/airlock_painter.dm
+++ b/code/game/objects/items/airlock_painter.dm
@@ -91,9 +91,9 @@
/obj/item/airlock_painter/examine(mob/user)
- ..()
+ . = ..()
if(!ink)
- to_chat(user, "It doesn't have a toner cartridge installed.")
+ . += "It doesn't have a toner cartridge installed."
return
var/ink_level = "high"
if(ink.charges < 1)
@@ -102,8 +102,7 @@
ink_level = "low"
else if((ink.charges/ink.max_charges) > 1) //Over 100% (admin var edit)
ink_level = "dangerously high"
- to_chat(user, "Its ink levels look [ink_level].")
-
+ . += "Its ink levels look [ink_level]."
/obj/item/airlock_painter/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/toner))
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index e53cc5ac..e93bfb99 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -46,10 +46,10 @@
/obj/item/bodybag/bluespace/examine(mob/user)
- ..()
+ . = ..()
if(contents.len)
var/s = contents.len == 1 ? "" : "s"
- to_chat(user, "You can make out the shape[s] of [contents.len] object[s] through the fabric.")
+ . += "You can make out the shape[s] of [contents.len] object[s] through the fabric."
/obj/item/bodybag/bluespace/Destroy()
for(var/atom/movable/A in contents)
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index f8d705fc..88d7b99a 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -122,6 +122,9 @@
user.visible_message("[src] fizzles and sparks. It seems like it's out of charges.")
playsound(src, 'sound/effects/light_flicker.ogg', 100, 1)
+/obj/item/card/emag/examine(mob/user)
+ . = ..()
+ . += "It has [uses ? uses : "no"] charges left."
/obj/item/card/emagfake
desc = "It's a card with a magnetic strip attached to some circuitry. Closer inspection shows that this card is a poorly made replica, with a \"DonkCo\" logo stamped on the back."
@@ -173,9 +176,9 @@
return
/obj/item/card/id/examine(mob/user)
- ..()
+ . = ..()
if(mining_points)
- to_chat(user, "There's [mining_points] mining equipment redemption point\s loaded onto this card.")
+ . += "There's [mining_points] mining equipment redemption point\s loaded onto this card."
/obj/item/card/id/GetAccess()
return access
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 939fe1a6..ebb8e120 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -951,18 +951,18 @@ CIGARETTE PACKETS ARE IN FANCY.DM
user.show_message("You quench the flame.", 1)
/obj/item/bong/examine(mob/user)
- ..()
+ . = ..()
if(!reagents.total_volume)
- to_chat(user, "The bowl is empty.")
+ . += "The bowl is empty."
else if (reagents.total_volume > 80)
- to_chat(user, "The bowl is filled to the brim.")
+ . += "The bowl is filled to the brim."
else if (reagents.total_volume > 40)
- to_chat(user, "The bowl has plenty weed in it.")
+ . += "The bowl has plenty weed in it."
else
- to_chat(user, "The bowl has some weed in it.")
+ . += "The bowl has some weed in it."
- to_chat(user, "Ctrl+Shift-click to empty.")
- to_chat(user, "Alt-click to extinguish.")
+ . += "Ctrl+Shift-click to empty."
+ . += "Alt-click to extinguish."
/obj/item/bong/ignition_effect(atom/A, mob/user)
if(firecharges)
diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm
index 26c13263..8106733a 100644
--- a/code/game/objects/items/circuitboards/circuitboard.dm
+++ b/code/game/objects/items/circuitboards/circuitboard.dm
@@ -56,7 +56,7 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
M.RefreshParts()
/obj/item/circuitboard/machine/examine(mob/user)
- ..()
+ . = ..()
if(LAZYLEN(req_components))
var/list/nice_list = list()
for(var/B in req_components)
@@ -64,4 +64,4 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
if(!ispath(A))
continue
nice_list += list("[req_components[A]] [initial(A.name)]")
- to_chat(user,"Required components: [english_list(nice_list)].")
+ . += "Required components: [english_list(nice_list)]."
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index afbf2630..81231eb7 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -73,8 +73,8 @@
return ..()
/obj/item/circuitboard/computer/card/minor/examine(user)
- ..()
- to_chat(user, "Currently set to \"[dept_list[target_dept]]\".")
+ . = ..()
+ . += "Currently set to \"[dept_list[target_dept]]\"."
//obj/item/circuitboard/computer/shield
// name = "Shield Control (Computer Board)"
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 64ec1883..c65c269a 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -434,8 +434,8 @@
return ..()
/obj/item/circuitboard/machine/smartfridge/examine(mob/user)
- ..()
- to_chat(user, "[src] is set to [fridges_name_paths[build_path]]. You can use a screwdriver to reconfigure it.")
+ . = ..()
+ . += "[src] is set to [fridges_name_paths[build_path]]. You can use a screwdriver to reconfigure it."
/obj/item/circuitboard/machine/biogenerator
name = "Biogenerator (Machine Board)"
@@ -780,7 +780,7 @@
/obj/item/circuitboard/machine/public_nanite_chamber/examine(mob/user)
. = ..()
- to_chat(user, "Cloud ID is currently set to [cloud_id].")
+ . += "Cloud ID is currently set to [cloud_id]."
/obj/item/circuitboard/machine/nanite_program_hub
name = "Nanite Program Hub (Machine Board)"
@@ -941,9 +941,9 @@
needs_anchored = FALSE
/obj/item/circuitboard/machine/dish_drive/examine(mob/user)
- ..()
- to_chat(user, "Its suction function is [suction ? "enabled" : "disabled"]. Use it in-hand to switch.")
- to_chat(user, "Its disposal auto-transmit function is [transmit ? "enabled" : "disabled"]. Alt-click it to switch.")
+ . = ..()
+ . += "Its suction function is [suction ? "enabled" : "disabled"]. Use it in-hand to switch."
+ . += "Its disposal auto-transmit function is [transmit ? "enabled" : "disabled"]. Alt-click it to switch."
/obj/item/circuitboard/machine/dish_drive/attack_self(mob/living/user)
suction = !suction
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 56b9a440..6e1bac03 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -667,10 +667,10 @@
/obj/item/toy/crayon/spraycan/examine(mob/user)
. = ..()
if(charges_left)
- to_chat(user, "It has [charges_left] use\s left.")
+ . += "It has [charges_left] use\s left."
else
- to_chat(user, "It is empty.")
- to_chat(user, "Alt-click [src] to [ is_capped ? "take the cap off" : "put the cap on"].")
+ . += "It is empty."
+ . += "Alt-click [src] to [ is_capped ? "take the cap off" : "put the cap on"]."
/obj/item/toy/crayon/spraycan/afterattack(atom/target, mob/user, proximity, params)
if(!proximity)
@@ -831,7 +831,7 @@
/obj/item/toy/crayon/spraycan/gang/examine(mob/user)
. = ..()
if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user))
- to_chat(user, "This spraycan has been specially modified with a stage 2 nozzle kit, making it faster.")
+ . += "This spraycan has been specially modified with a stage 2 nozzle kit, making it faster."
/obj/item/toy/crayon/spraycan/infinite
name = "infinite spraycan"
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 505d2c07..c4b86f04 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -103,12 +103,11 @@ GLOBAL_LIST_EMPTY(PDAs)
/obj/item/pda/examine(mob/user)
. = ..()
- var/dat = id ? "Alt-click to remove the id." : ""
+ . += id ? "Alt-click to remove the id." : ""
if(inserted_item && (!isturf(loc)))
- dat += "\nCtrl-click to remove [inserted_item]."
+ . += "Ctrl-click to remove [inserted_item]."
if(LAZYLEN(GLOB.pda_reskins))
- dat += "\nCtrl-shift-click it to reskin it."
- to_chat(user, dat)
+ . += "Ctrl-shift-click it to reskin it."
/obj/item/pda/Initialize()
. = ..()
@@ -1137,4 +1136,4 @@ GLOBAL_LIST_EMPTY(PDAs)
#undef PDA_OVERLAY_ID
#undef PDA_OVERLAY_ITEM
#undef PDA_OVERLAY_LIGHT
-#undef PDA_OVERLAY_PAI
\ No newline at end of file
+#undef PDA_OVERLAY_PAI
diff --git a/code/game/objects/items/devices/compressionkit.dm b/code/game/objects/items/devices/compressionkit.dm
index 4db815dc..73535b76 100644
--- a/code/game/objects/items/devices/compressionkit.dm
+++ b/code/game/objects/items/devices/compressionkit.dm
@@ -12,9 +12,9 @@
var/mode = 0
/obj/item/compressionkit/examine(mob/user)
- ..()
- to_chat(user, "It has [charges] charges left. Recharge with bluespace crystals.")
- to_chat(user, "Use in-hand to swap toggle compress/expand mode (expand mode not yet implemented).")
+ . = ..()
+ . += "It has [charges] charges left. Recharge with bluespace crystals."
+ . += "Use in-hand to swap toggle compress/expand mode (expand mode not yet implemented)."
/obj/item/compressionkit/attack_self(mob/user)
if(mode == 0)
diff --git a/code/game/objects/items/devices/doorCharge.dm b/code/game/objects/items/devices/doorCharge.dm
index 9b009da7..8def1d5c 100644
--- a/code/game/objects/items/devices/doorCharge.dm
+++ b/code/game/objects/items/devices/doorCharge.dm
@@ -35,8 +35,8 @@
return ..()
/obj/item/doorCharge/examine(mob/user)
- ..()
+ . = ..()
if(user.mind && user.mind.has_antag_datum(/datum/antagonist/traitor)) //No nuke ops because the device is excluded from nuclear
- to_chat(user, "A small explosive device that can be used to sabotage airlocks to cause an explosion upon opening. To apply, remove the airlock's maintenance panel and place it within.")
+ . += "A small explosive device that can be used to sabotage airlocks to cause an explosion upon opening. To apply, remove the airlock's maintenance panel and place it within."
else
- to_chat(user, "A small, suspicious object that feels lukewarm when held.")
+ . += "A small, suspicious object that feels lukewarm when held."
diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
index b909e7a1..97392ca7 100644
--- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
+++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
@@ -16,11 +16,11 @@
maptext = "[circuits]"
/obj/item/electroadaptive_pseudocircuit/examine(mob/user)
- ..()
+ . = ..()
if(iscyborg(user))
- to_chat(user, "It has material for [circuits] circuit[circuits == 1 ? "" : "s"]. Use the pseudocircuit on existing circuits to gain material.")
- to_chat(user, "Serves as a substitute for fire/air alarm, firelock, and APC electronics.")
- to_chat(user, "It can also be used on an APC with no power cell to fabricate a low-capacity cell at a high power cost.")
+ . += "It has material for [circuits] circuit[circuits == 1 ? "" : "s"]. Use the pseudocircuit on existing circuits to gain material."
+ . += "Serves as a substitute for fire/air alarm, firelock, and APC electronics."
+ . += "It can also be used on an APC with no power cell to fabricate a low-capacity cell at a high power cost."
/obj/item/electroadaptive_pseudocircuit/proc/adapt_circuit(mob/living/silicon/robot/R, circuit_cost = 0)
if(QDELETED(R) || !istype(R))
diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm
index 73db32eb..bf9c5dac 100644
--- a/code/game/objects/items/devices/forcefieldprojector.dm
+++ b/code/game/objects/items/devices/forcefieldprojector.dm
@@ -52,9 +52,9 @@
qdel(F)
/obj/item/forcefield_projector/examine(mob/user)
- ..()
+ . = ..()
var/percent_charge = round((shield_integrity/max_shield_integrity)*100)
- to_chat(user, "It is currently sustaining [LAZYLEN(current_fields)]/[max_fields] fields, and it's [percent_charge]% charged.")
+ . += "It is currently sustaining [LAZYLEN(current_fields)]/[max_fields] fields, and it's [percent_charge]% charged."
/obj/item/forcefield_projector/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index fe6fecbb..9d03ab47 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -65,28 +65,28 @@
current_tick_amount = 0
/obj/item/geiger_counter/examine(mob/user)
- ..()
+ . = ..()
if(!scanning)
- return 1
- to_chat(user, "Alt-click it to clear stored radiation levels.")
+ return
+ . += "Alt-click it to clear stored radiation levels."
if(obj_flags & EMAGGED)
- to_chat(user, "The display seems to be incomprehensible.")
- return 1
+ . += "The display seems to be incomprehensible."
+ return
switch(radiation_count)
if(-INFINITY to RAD_LEVEL_NORMAL)
- to_chat(user, "Ambient radiation level count reports that all is well.")
+ . += "Ambient radiation level count reports that all is well."
if(RAD_LEVEL_NORMAL + 1 to RAD_LEVEL_MODERATE)
- to_chat(user, "Ambient radiation levels slightly above average.")
+ . += "Ambient radiation levels slightly above average."
if(RAD_LEVEL_MODERATE + 1 to RAD_LEVEL_HIGH)
- to_chat(user, "Ambient radiation levels above average.")
+ . += "Ambient radiation levels above average."
if(RAD_LEVEL_HIGH + 1 to RAD_LEVEL_VERY_HIGH)
- to_chat(user, "Ambient radiation levels highly above average.")
+ . += "Ambient radiation levels highly above average."
if(RAD_LEVEL_VERY_HIGH + 1 to RAD_LEVEL_CRITICAL)
- to_chat(user, "Ambient radiation levels nearing critical level.")
+ . += "Ambient radiation levels nearing critical level."
if(RAD_LEVEL_CRITICAL + 1 to INFINITY)
- to_chat(user, "Ambient radiation levels above critical level!")
+ . += "Ambient radiation levels above critical level!"
- to_chat(user, "The last radiation amount detected was [last_tick_amount]")
+ . += "The last radiation amount detected was [last_tick_amount]"
/obj/item/geiger_counter/update_icon()
if(!scanning)
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index c08c19a8..7675e913 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -14,8 +14,8 @@ GLOBAL_LIST_EMPTY(GPS_list)
var/global_mode = TRUE //If disabled, only GPS signals of the same Z level are shown
/obj/item/gps/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to switch it [tracking ? "off":"on"].")
+ . = ..()
+ . += "Alt-click to switch it [tracking ? "off":"on"]."
/obj/item/gps/Initialize()
. = ..()
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index c0fdf6a6..072aa173 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -73,8 +73,8 @@
..()
/obj/item/lightreplacer/examine(mob/user)
- ..()
- to_chat(user, status_string())
+ . = ..()
+ . += status_string()
/obj/item/lightreplacer/attackby(obj/item/W, mob/user, params)
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 2cef4f41..87d7b5e5 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -33,11 +33,11 @@
var/mode = 0
/obj/item/multitool/examine(mob/user)
- ..()
+ . = ..()
if(selected_io)
- to_chat(user, "Activate [src] to detach the data wire.")
+ . += "Activate [src] to detach the data wire."
if(buffer)
- to_chat(user, "Its buffer contains [buffer].")
+ . += "Its buffer contains [buffer]."
/obj/item/multitool/suicide_act(mob/living/carbon/user)
user.visible_message("[user] puts the [src] to [user.p_their()] chest. It looks like [user.p_theyre()] trying to pulse [user.p_their()] heart off!")
diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm
index 567cb0c7..2d0af2cf 100644
--- a/code/game/objects/items/devices/pipe_painter.dm
+++ b/code/game/objects/items/devices/pipe_painter.dm
@@ -26,5 +26,5 @@
paint_color = input("Which colour do you want to use?","Pipe painter") in GLOB.pipe_paint_colors
/obj/item/pipe_painter/examine(mob/user)
- ..()
- to_chat(user, "It is set to [paint_color].")
+ . = ..()
+ . += "It is set to [paint_color]."
diff --git a/code/game/objects/items/devices/quantum_keycard.dm b/code/game/objects/items/devices/quantum_keycard.dm
index 37079722..fc9ccdda 100644
--- a/code/game/objects/items/devices/quantum_keycard.dm
+++ b/code/game/objects/items/devices/quantum_keycard.dm
@@ -10,12 +10,12 @@
var/obj/machinery/quantumpad/qpad
/obj/item/quantum_keycard/examine(mob/user)
- ..()
+ . = ..()
if(qpad)
- to_chat(user, "It's currently linked to a quantum pad.")
- to_chat(user, "Alt-click to unlink the keycard.")
+ . += "It's currently linked to a quantum pad."
+ . += "Alt-click to unlink the keycard."
else
- to_chat(user, "Insert [src] into an active quantum pad to link it.")
+ . += "Insert [src] into an active quantum pad to link it."
/obj/item/quantum_keycard/AltClick(mob/living/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index 9adc0488..4d91fee9 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -21,7 +21,7 @@
for(var/i in channels)
examine_text_list += "[GLOB.channel_tokens[i]] - [lowertext(i)]"
- to_chat(user, "It can access the following channels; [jointext(examine_text_list, ", ")].")
+ . += "It can access the following channels; [jointext(examine_text_list, ", ")]."
/obj/item/encryptionkey/syndicate
name = "syndicate encryption key"
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 3578ecd2..8bea8f4e 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -32,7 +32,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
return TOXLOSS
/obj/item/radio/headset/examine(mob/user)
- ..()
+ . = ..()
if(item_flags & IN_INVENTORY && loc == user)
// construction of frequency description
@@ -45,12 +45,12 @@ GLOBAL_LIST_INIT(channel_tokens, list(
avail_chans += "use [MODE_TOKEN_DEPARTMENT] or [GLOB.channel_tokens[channels[i]]] for [lowertext(channels[i])]"
else
avail_chans += "use [GLOB.channel_tokens[channels[i]]] for [lowertext(channels[i])]"
- to_chat(user, "A small screen on the headset displays the following available frequencies:\n[english_list(avail_chans)].")
+ . += "A small screen on the headset displays the following available frequencies:\n[english_list(avail_chans)]."
if(command)
- to_chat(user, "Alt-click to toggle the high-volume mode.")
+ . += "Alt-click to toggle the high-volume mode."
else
- to_chat(user, "A small screen on the headset flashes, it's too small to read without holding or wearing the headset.")
+ . += "A small screen on the headset flashes, it's too small to read without holding or wearing the headset."
/obj/item/radio/headset/Initialize()
. = ..()
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 50116423..7be28be0 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -49,11 +49,11 @@
return ..()
/obj/item/radio/intercom/examine(mob/user)
- ..()
+ . = ..()
if(!unfastened)
- to_chat(user, "It's screwed and secured to the wall.")
+ . += "It's screwed and secured to the wall."
else
- to_chat(user, "It's unscrewed from the wall, and can be detached.")
+ . += "It's unscrewed from the wall, and can be detached."
/obj/item/radio/intercom/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/screwdriver))
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 9815ba0e..a1d032a2 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -319,11 +319,11 @@
/obj/item/radio/examine(mob/user)
- ..()
+ . = ..()
if (unscrewed)
- to_chat(user, "It can be attached and modified.")
+ . += "It can be attached and modified."
else
- to_chat(user, "It cannot be modified or attached.")
+ . += "It cannot be modified or attached."
/obj/item/radio/attackby(obj/item/W, mob/user, params)
add_fingerprint(user)
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 779aef86..22d2a2f8 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -533,7 +533,7 @@ GENE SCANNER
/obj/item/analyzer/examine(mob/user)
. = ..()
- to_chat(user, "Alt-click [src] to activate the barometer function.")
+ . += "Alt-click [src] to activate the barometer function."
/obj/item/analyzer/suicide_act(mob/living/carbon/user)
user.visible_message("[user] begins to analyze [user.p_them()]self with [src]! The display shows that [user.p_theyre()] dead!")
@@ -841,4 +841,4 @@ GENE SCANNER
display += copytext(temp, 1 + i*DNA_MUTATION_BLOCKS, DNA_MUTATION_BLOCKS*(1+i) + 1)
- to_chat(user, "- [mut_name] > [display]")
\ No newline at end of file
+ to_chat(user, "- [mut_name] > [display]")
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index ae17100f..132888a7 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -29,9 +29,8 @@
/obj/item/taperecorder/examine(mob/user)
- ..()
- to_chat(user, "The wire panel is [open_panel ? "opened" : "closed"].")
-
+ . = ..()
+ . += "The wire panel is [open_panel ? "opened" : "closed"]."
/obj/item/taperecorder/attackby(obj/item/I, mob/user, params)
if(!mytape && istype(I, /obj/item/tape))
diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm
index 2b60b343..d54cf4b1 100644
--- a/code/game/objects/items/extinguisher.dm
+++ b/code/game/objects/items/extinguisher.dm
@@ -106,11 +106,11 @@
return ..()
/obj/item/extinguisher/examine(mob/user)
- ..()
- to_chat(user, "The safety is [safety ? "on" : "off"].")
+ . = ..()
+ . += "The safety is [safety ? "on" : "off"]."
if(reagents.total_volume)
- to_chat(user, "You can loose its screws to empty it.")
+ . += "You can loose its screws to empty it."
/obj/item/extinguisher/proc/AttemptRefill(atom/target, mob/user)
if(istype(target, tanktype) && target.Adjacent(user))
diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm
index fd51ecf2..d9525ab9 100644
--- a/code/game/objects/items/flamethrower.dm
+++ b/code/game/objects/items/flamethrower.dm
@@ -145,9 +145,9 @@
update_icon()
/obj/item/flamethrower/examine(mob/user)
- ..()
+ . = ..()
if(ptank)
- to_chat(user, "\The [src] has \a [ptank] attached. Alt-click to remove it.")
+ . += "\The [src] has \a [ptank] attached. Alt-click to remove it."
/obj/item/flamethrower/proc/toggle_igniter(mob/user)
if(!ptank)
diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm
index d4c843a3..75b6acfe 100644
--- a/code/game/objects/items/grenades/chem_grenade.dm
+++ b/code/game/objects/items/grenades/chem_grenade.dm
@@ -27,19 +27,19 @@
/obj/item/grenade/chem_grenade/examine(mob/user)
display_timer = (stage == READY && !nadeassembly) //show/hide the timer based on assembly state
- ..()
+ . = ..()
if(user.can_see_reagents())
var/count = 0
if(beakers.len)
- to_chat(user, "You scan the grenade and detect the following reagents:")
+ . += "You scan the grenade and detect the following reagents:"
for(var/obj/item/reagent_containers/glass/G in beakers)
var/textcount = thtotext(++count)
for(var/datum/reagent/R in G.reagents.reagent_list)
- to_chat(user, "[R.volume] units of [R.name] in the [textcount] beaker.")
+ . += "[R.volume] units of [R.name] in the [textcount] beaker."
if(beakers.len == 1)
- to_chat(user, "You detect no second beaker in the grenade.")
+ . += "You detect no second beaker in the grenade."
else
- to_chat(user, "You scan the grenade, but detect nothing.")
+ . += "You scan the grenade, but detect nothing."
/obj/item/grenade/chem_grenade/attack_self(mob/user)
diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm
index f5c4b14f..1725d84d 100644
--- a/code/game/objects/items/grenades/ghettobomb.dm
+++ b/code/game/objects/items/grenades/ghettobomb.dm
@@ -56,5 +56,5 @@
qdel(src)
/obj/item/grenade/iedcasing/examine(mob/user)
- ..()
- to_chat(user, "You can't tell when it will explode!")
+ . = ..()
+ . += "You can't tell when it will explode!"
diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm
index f77def74..4f3dab80 100644
--- a/code/game/objects/items/grenades/grenade.dm
+++ b/code/game/objects/items/grenades/grenade.dm
@@ -47,12 +47,12 @@
/obj/item/grenade/examine(mob/user)
- ..()
+ . = ..()
if(display_timer)
if(det_time > 1)
- to_chat(user, "The timer is set to [DisplayTimeText(det_time)].")
+ . += "The timer is set to [DisplayTimeText(det_time)]."
else
- to_chat(user, "\The [src] is set for instant detonation.")
+ . += "\The [src] is set for instant detonation."
/obj/item/grenade/attack_self(mob/user)
diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm
index c6f246ab..b5c7af4b 100644
--- a/code/game/objects/items/his_grace.dm
+++ b/code/game/objects/items/his_grace.dm
@@ -52,23 +52,23 @@
return
/obj/item/his_grace/examine(mob/user)
- ..()
+ . = ..()
if(awakened)
switch(bloodthirst)
if(HIS_GRACE_SATIATED to HIS_GRACE_PECKISH)
- to_chat(user, "[src] isn't very hungry. Not yet.")
+ . += "[src] isn't very hungry. Not yet."
if(HIS_GRACE_PECKISH to HIS_GRACE_HUNGRY)
- to_chat(user, "[src] would like a snack.")
+ . += "[src] would like a snack."
if(HIS_GRACE_HUNGRY to HIS_GRACE_FAMISHED)
- to_chat(user, "[src] is quite hungry now.")
+ . += "[src] is quite hungry now."
if(HIS_GRACE_FAMISHED to HIS_GRACE_STARVING)
- to_chat(user, "[src] is openly salivating at the sight of you. Be careful.")
+ . += "[src] is openly salivating at the sight of you. Be careful."
if(HIS_GRACE_STARVING to HIS_GRACE_CONSUME_OWNER)
- to_chat(user, "You walk a fine line. [src] is very close to devouring you.")
+ . += "You walk a fine line. [src] is very close to devouring you."
if(HIS_GRACE_CONSUME_OWNER to HIS_GRACE_FALL_ASLEEP)
- to_chat(user, "[src] is shaking violently and staring directly at you.")
+ . += "[src] is shaking violently and staring directly at you."
else
- to_chat(user, "[src] is latched closed.")
+ . += "[src] is latched closed."
/obj/item/his_grace/relaymove(mob/living/user) //Allows changelings, etc. to climb out of Him after they revive, provided He isn't active
if(!awakened)
diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm
index 5aae3b10..d74a611f 100644
--- a/code/game/objects/items/hot_potato.dm
+++ b/code/game/objects/items/hot_potato.dm
@@ -81,9 +81,9 @@
/obj/item/hot_potato/examine(mob/user)
. = ..()
if(active)
- to_chat(user, "[src] is flashing red-hot! You should probably get rid of it!")
+ . += "[src] is flashing red-hot! You should probably get rid of it!"
if(show_timer)
- to_chat(user, "[src]'s timer looks to be at [DisplayTimeText(activation_time - world.time)]!")
+ . += "[src]'s timer looks to be at [DisplayTimeText(activation_time - world.time)]!"
/obj/item/hot_potato/equipped(mob/user)
. = ..()
diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm
index bbd2e674..19dbf4fe 100644
--- a/code/game/objects/items/inducer.dm
+++ b/code/game/objects/items/inducer.dm
@@ -155,13 +155,13 @@
/obj/item/inducer/examine(mob/living/M)
- ..()
+ . = ..()
if(cell)
- to_chat(M, "Its display shows: [DisplayEnergy(cell.charge)].")
+ . += "Its display shows: [DisplayEnergy(cell.charge)]."
else
- to_chat(M,"Its display is dark.")
+ . += "Its display is dark."
if(opened)
- to_chat(M,"Its battery compartment is open.")
+ . += "Its battery compartment is open."
/obj/item/inducer/update_icon()
cut_overlays()
diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm
index 7524fc90..ac1e2848 100644
--- a/code/game/objects/items/mop.dm
+++ b/code/game/objects/items/mop.dm
@@ -118,8 +118,8 @@
reagents.add_reagent(refill_reagent, refill_rate)
/obj/item/mop/advanced/examine(mob/user)
- ..()
- to_chat(user, "The condenser switch is set to [refill_enabled ? "ON" : "OFF"].")
+ . = ..()
+ . += "The condenser switch is set to [refill_enabled ? "ON" : "OFF"]."
/obj/item/mop/advanced/Destroy()
if(refill_enabled)
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index a73be6e1..41b6f052 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -43,17 +43,17 @@
..()
/obj/item/pet_carrier/examine(mob/user)
- ..()
+ . = ..()
if(occupants.len)
for(var/V in occupants)
var/mob/living/L = V
- to_chat(user, "It has [L] inside.")
+ . += "It has [L] inside."
else
- to_chat(user, "It has nothing inside.")
+ . += "It has nothing inside."
if(user.canUseTopic(src))
- to_chat(user, "Activate it in your hand to [open ? "close" : "open"] its door.")
+ . += "Activate it in your hand to [open ? "close" : "open"] its door."
if(!open)
- to_chat(user, "Alt-click to [locked ? "unlock" : "lock"] its door.")
+ . += "Alt-click to [locked ? "unlock" : "lock"] its door."
/obj/item/pet_carrier/attack_self(mob/living/user)
if(open)
diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm
index bd301c36..72d27ae5 100644
--- a/code/game/objects/items/pneumaticCannon.dm
+++ b/code/game/objects/items/pneumaticCannon.dm
@@ -55,17 +55,15 @@
return automatic
/obj/item/pneumatic_cannon/examine(mob/user)
- ..()
- var/list/out = list()
+ . = ..()
if(!in_range(user, src))
- out += "You'll need to get closer to see any more."
+ . += "You'll need to get closer to see any more."
return
for(var/obj/item/I in loadedItems)
- out += "[icon2html(I, user)] It has \a [I] loaded."
+ . += "[icon2html(I, user)] It has \a [I] loaded."
CHECK_TICK
if(tank)
- out += "[icon2html(tank, user)] It has \a [tank] mounted onto it."
- to_chat(user, out.Join("
"))
+ . += "[icon2html(tank, user)] It has \a [tank] mounted onto it."
/obj/item/pneumatic_cannon/attackby(obj/item/W, mob/user, params)
if(user.a_intent == INTENT_HARM)
diff --git a/code/game/objects/items/powerfist.dm b/code/game/objects/items/powerfist.dm
index f02e92bb..27ed0f82 100644
--- a/code/game/objects/items/powerfist.dm
+++ b/code/game/objects/items/powerfist.dm
@@ -20,12 +20,12 @@
/obj/item/melee/powerfist/examine(mob/user)
- ..()
+ . = ..()
if(!in_range(user, src))
- to_chat(user, "You'll need to get closer to see any more.")
+ . += "You'll need to get closer to see any more."
return
if(tank)
- to_chat(user, "[icon2html(tank, user)] It has \a [tank] mounted onto it.")
+ . += "[icon2html(tank, user)] It has \a [tank] mounted onto it."
/obj/item/melee/powerfist/attackby(obj/item/W, mob/user, params)
diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm
index 8582725c..c9dee6d6 100644
--- a/code/game/objects/items/religion.dm
+++ b/code/game/objects/items/religion.dm
@@ -16,9 +16,9 @@
var/warcry
/obj/item/banner/examine(mob/user)
- ..()
+ . = ..()
if(inspiration_available)
- to_chat(user, "Activate it in your hand to inspire nearby allies of this banner's allegiance!")
+ . += "Activate it in your hand to inspire nearby allies of this banner's allegiance!"
/obj/item/banner/attack_self(mob/living/carbon/human/user)
if(!inspiration_available)
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index ea944083..52064e05 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -76,23 +76,23 @@
. = ..()
/obj/item/stack/examine(mob/user)
- ..()
+ . = ..()
if (is_cyborg)
if(singular_name)
- to_chat(user, "There is enough energy for [get_amount()] [singular_name]\s.")
+ . += "There is enough energy for [get_amount()] [singular_name]\s."
else
- to_chat(user, "There is enough energy for [get_amount()].")
+ . += "There is enough energy for [get_amount()]."
return
if(singular_name)
if(get_amount()>1)
- to_chat(user, "There are [get_amount()] [singular_name]\s in the stack.")
+ . += "There are [get_amount()] [singular_name]\s in the stack."
else
- to_chat(user, "There is [get_amount()] [singular_name] in the stack.")
+ . += "There is [get_amount()] [singular_name] in the stack."
else if(get_amount()>1)
- to_chat(user, "There are [get_amount()] in the stack.")
+ . += "There are [get_amount()] in the stack."
else
- to_chat(user, "There is [get_amount()] in the stack.")
- to_chat(user, "Alt-click to take a custom amount.")
+ . += "There is [get_amount()] in the stack."
+ . += "Alt-click to take a custom amount."
/obj/item/stack/proc/get_amount()
if(is_cyborg)
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 3a853865..127796be 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -764,9 +764,9 @@ obj/item/storage/belt/slut/ComponentInitialize()
STR.can_hold = typecacheof(fitting_swords)
/obj/item/storage/belt/sabre/examine(mob/user)
- ..()
+ . = ..()
if(length(contents))
- to_chat(user, "Alt-click it to quickly draw the blade.")
+ . += "Alt-click it to quickly draw the blade."
/obj/item/storage/belt/sabre/AltClick(mob/user)
if(!iscarbon(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index e3955fa2..408d8d55 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -37,12 +37,12 @@
icon_state = "[icon_type]box"
/obj/item/storage/fancy/examine(mob/user)
- ..()
+ . = ..()
if(fancy_open)
if(length(contents) == 1)
- to_chat(user, "There is one [icon_type] left.")
+ . += "There is one [icon_type] left."
else
- to_chat(user, "There are [contents.len <= 0 ? "no" : "[contents.len]"] [icon_type]s left.")
+ . += "There are [contents.len <= 0 ? "no" : "[contents.len]"] [icon_type]s left."
/obj/item/storage/fancy/attack_self(mob/user)
fancy_open = !fancy_open
@@ -144,8 +144,8 @@
STR.can_hold = typecacheof(list(/obj/item/clothing/mask/cigarette, /obj/item/lighter))
/obj/item/storage/fancy/cigarettes/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to extract contents.")
+ . = ..()
+ . += "Alt-click to extract contents."
/obj/item/storage/fancy/cigarettes/AltClick(mob/living/carbon/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm
index 7da0c000..b14cd852 100644
--- a/code/game/objects/items/storage/lockbox.dm
+++ b/code/game/objects/items/storage/lockbox.dm
@@ -106,10 +106,10 @@
STR.can_hold = typecacheof(list(/obj/item/clothing/accessory/medal))
/obj/item/storage/lockbox/medal/examine(mob/user)
- ..()
+ . = ..()
var/locked = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED)
if(!locked)
- to_chat(user, "Alt-click to [open ? "close":"open"] it.")
+ . += "Alt-click to [open ? "close":"open"] it."
/obj/item/storage/lockbox/medal/AltClick(mob/user)
if(user.canUseTopic(src, BE_CLOSE))
@@ -195,4 +195,4 @@
/obj/item/storage/lockbox/medal/medical/PopulateContents()
for(var/i in 1 to 3)
- new /obj/item/clothing/accessory/medal/ribbon/medical_doctor(src)
\ No newline at end of file
+ new /obj/item/clothing/accessory/medal/ribbon/medical_doctor(src)
diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm
index a6ee4b92..20e9f0d3 100644
--- a/code/game/objects/items/storage/secure.dm
+++ b/code/game/objects/items/storage/secure.dm
@@ -31,8 +31,8 @@
STR.max_combined_w_class = 14
/obj/item/storage/secure/examine(mob/user)
- ..()
- to_chat(user, text("The service panel is currently [open ? "unscrewed" : "screwed shut"]."))
+ . = ..()
+ . += "The service panel is currently [open ? "unscrewed" : "screwed shut"]."
/obj/item/storage/secure/attackby(obj/item/W, mob/user, params)
if(SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED))
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 33a9fbef..a2435d6f 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -90,9 +90,9 @@
. = ..()
var/obj/item/stock_parts/cell/copper_top = get_cell()
if(copper_top)
- to_chat(user, "\The [src] is [round(copper_top.percent())]% charged.")
+ . += "\The [src] is [round(copper_top.percent())]% charged."
else
- to_chat(user, "\The [src] does not have a power source installed.")
+ . += "\The [src] does not have a power source installed."
/obj/item/melee/baton/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stock_parts/cell))
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index d409e405..f763fe87 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -74,15 +74,15 @@
/obj/item/tank/examine(mob/user)
var/obj/icon = src
- ..()
+ . = ..()
if (istype(src.loc, /obj/item/assembly))
icon = src.loc
if(!in_range(src, user))
if (icon == src)
- to_chat(user, "If you want any more information you'll need to get closer.")
+ . += "If you want any more information you'll need to get closer."
return
- to_chat(user, "The pressure gauge reads [round(src.air_contents.return_pressure(),0.01)] kPa.")
+ . += "The pressure gauge reads [round(src.air_contents.return_pressure(),0.01)] kPa."
var/celsius_temperature = src.air_contents.temperature-T0C
var/descriptive
@@ -100,7 +100,7 @@
else
descriptive = "furiously hot"
- to_chat(user, "It feels [descriptive].")
+ . += "It feels [descriptive]."
/obj/item/tank/blob_act(obj/structure/blob/B)
if(B && B.loc == loc)
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 9b622a14..9177602f 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -220,8 +220,8 @@
/obj/item/weldingtool/examine(mob/user)
- ..()
- to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].")
+ . = ..()
+ . += "It contains [get_fuel()] unit\s of fuel out of [max_fuel]."
/obj/item/weldingtool/is_hot()
return welding * heat
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 91c86cb9..5b58d186 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -148,8 +148,8 @@
var/bullets = 7
/obj/item/toy/gun/examine(mob/user)
- ..()
- to_chat(user, "There [bullets == 1 ? "is" : "are"] [bullets] cap\s left.")
+ . = ..()
+ . += "There [bullets == 1 ? "is" : "are"] [bullets] cap\s left."
/obj/item/toy/gun/attackby(obj/item/toy/ammo/gun/A, mob/user, params)
@@ -204,8 +204,8 @@
src.icon_state = text("357OLD-[]", src.amount_left)
/obj/item/toy/ammo/gun/examine(mob/user)
- ..()
- to_chat(user, "There [amount_left == 1 ? "is" : "are"] [amount_left] cap\s left.")
+ . = ..()
+ . += "There [amount_left == 1 ? "is" : "are"] [amount_left] cap\s left."
/*
* Toy swords
@@ -1098,8 +1098,8 @@
to_chat(user, "The cogwheels are already turning!")
/obj/item/toy/clockwork_watch/examine(mob/user)
- ..()
- to_chat(user, "Station Time: [STATION_TIME_TIMESTAMP("hh:mm:ss")]")
+ . = ..()
+ . += "Station Time: [STATION_TIME_TIMESTAMP("hh:mm:ss")]"
/*
* Toy Dagger
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index 9c038f3e..46c1506f 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -521,9 +521,9 @@
AddComponent(/datum/component/jousting)
/obj/item/twohanded/spear/examine(mob/user)
- ..()
+ . = ..()
if(explosive)
- to_chat(user, "Use in your hands to activate the attached explosive.
Alt-click to set your war cry.
Right-click in combat mode to wield")
+ . += "Use in your hands to activate the attached explosive.
Alt-click to set your war cry.
Right-click in combat mode to wield"
/obj/item/twohanded/spear/update_icon()
if(explosive)
diff --git a/code/game/objects/items/vending_items.dm b/code/game/objects/items/vending_items.dm
index e13089d5..2964d312 100644
--- a/code/game/objects/items/vending_items.dm
+++ b/code/game/objects/items/vending_items.dm
@@ -30,14 +30,14 @@
name = "\improper [machine_name] restocking unit"
/obj/item/vending_refill/examine(mob/user)
- ..()
+ . = ..()
var/num = get_part_rating()
if (num == INFINITY)
- to_chat(user, "It's sealed tight, completely full of supplies.")
+ . += "It's sealed tight, completely full of supplies."
else if (num == 0)
- to_chat(user, "It's empty!")
+ . += "It's empty!"
else
- to_chat(user, "It can restock [num] item\s.")
+ . += "It can restock [num] item\s."
/obj/item/vending_refill/get_part_rating()
if (!products || !contraband || !premium)
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 4c716a4f..2fa53e04 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -125,10 +125,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
qdel(src) //If this ever happens, it's because you lost an arm
/obj/item/claymore/highlander/examine(mob/user)
- ..()
- to_chat(user, "It has [!notches ? "nothing" : "[notches] notches"] scratched into the blade.")
+ . = ..()
+ . += "It has [!notches ? "nothing" : "[notches] notches"] scratched into the blade."
if(nuke_disk)
- to_chat(user, "It's holding the nuke disk!")
+ . += "It's holding the nuke disk!"
/obj/item/claymore/highlander/attack(mob/living/target, mob/living/user)
. = ..()
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index a31a5966..7b8fdbd5 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -224,11 +224,11 @@
.["Modify armor values"] = "?_src_=vars;[HrefToken()];modarmor=[REF(src)]"
/obj/examine(mob/user)
- ..()
+ . = ..()
if(obj_flags & UNIQUE_RENAME)
- to_chat(user, "Use a pen on it to rename it or change its description.")
+ . += "Use a pen on it to rename it or change its description."
if(unique_reskin && (!current_skin || always_reskinnable))
- to_chat(user, "Alt-click it to reskin it.")
+ . += "Alt-click it to reskin it."
/obj/AltClick(mob/user)
. = ..()
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index 05b774b8..b25e5815 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -88,15 +88,15 @@
structureclimber = null
/obj/structure/examine(mob/user)
- ..()
+ . = ..()
if(!(resistance_flags & INDESTRUCTIBLE))
if(resistance_flags & ON_FIRE)
- to_chat(user, "It's on fire!")
+ . += "It's on fire!"
if(broken)
- to_chat(user, "It appears to be broken.")
+ . += "It appears to be broken."
var/examine_status = examine_status(user)
if(examine_status)
- to_chat(user, examine_status)
+ . += examine_status
/obj/structure/proc/examine_status(mob/user) //An overridable proc, mostly for falsewalls.
var/healthpercent = (obj_integrity/max_integrity) * 100
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 8ec25845..5b9a7649 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -39,7 +39,7 @@
/obj/structure/AIcore/latejoin_inactive/examine(mob/user)
. = ..()
- to_chat(user, "Its transmitter seems to be [active? "on" : "off"].")
+ . += "Its transmitter seems to be [active? "on" : "off"]."
/obj/structure/AIcore/latejoin_inactive/proc/is_available() //If people still manage to use this feature to spawn-kill AI latejoins ahelp them.
if(!available)
diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm
index 30c80a25..e7faf1e6 100644
--- a/code/game/objects/structures/beds_chairs/bed.dm
+++ b/code/game/objects/structures/beds_chairs/bed.dm
@@ -23,9 +23,9 @@
var/bolts = TRUE
/obj/structure/bed/examine(mob/user)
- ..()
+ . = ..()
if(bolts)
- to_chat(user, "It's held together by a couple of bolts.")
+ . += "It's held together by a couple of bolts."
/obj/structure/bed/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
@@ -148,8 +148,8 @@
..()
/obj/item/roller/robo/examine(mob/user)
- ..()
- to_chat(user, "The dock is [loaded ? "loaded" : "empty"].")
+ . = ..()
+ . += "The dock is [loaded ? "loaded" : "empty"]."
/obj/item/roller/robo/deploy_roller(mob/user, atom/location)
if(loaded)
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index 88d141a9..74036dab 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -15,10 +15,10 @@
layer = OBJ_LAYER
/obj/structure/chair/examine(mob/user)
- ..()
- to_chat(user, "It's held together by a couple of bolts.")
+ . = ..()
+ . += "It's held together by a couple of bolts."
if(!has_buckled_mobs())
- to_chat(user, "Drag your sprite to sit in it.")
+ . += "Drag your sprite to sit in it."
/obj/structure/chair/Initialize()
. = ..()
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 3008e98c..3eb9a933 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -292,13 +292,13 @@ LINEN BINS
var/obj/item/hidden = null
/obj/structure/bedsheetbin/examine(mob/user)
- ..()
+ . = ..()
if(amount < 1)
- to_chat(user, "There are no bed sheets in the bin.")
+ . += "There are no sheets in the bin."
else if(amount == 1)
- to_chat(user, "There is one bed sheet in the bin.")
+ . += "There is one sheet in the bin."
else
- to_chat(user, "There are [amount] bed sheets in the bin.")
+ . += "There are [amount] sheets in the bin."
/obj/structure/bedsheetbin/update_icon()
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index f097d290..dff74ef8 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -85,22 +85,22 @@
add_overlay("unlocked")
/obj/structure/closet/examine(mob/user)
- ..()
+ . = ..()
if(welded)
- to_chat(user, "It's welded shut.")
+ . += "It's welded shut."
if(anchored)
- to_chat(user, "It is bolted to the ground.")
+ . += "It is bolted to the ground."
if(opened)
- to_chat(user, "The parts are welded together.")
+ . += "The parts are welded together."
else if(secure && !opened)
else if(broken)
- to_chat(user, "The lock is screwed in.")
+ . += "The lock is screwed in."
else if(secure)
- to_chat(user, "Alt-click to [locked ? "unlock" : "lock"].")
+ . += "Alt-click to [locked ? "unlock" : "lock"]."
if(isliving(user))
var/mob/living/L = user
if(HAS_TRAIT(L, TRAIT_SKITTISH))
- to_chat(user, "Ctrl-Shift-click [src] to jump inside.")
+ . += "Ctrl-Shift-click [src] to jump inside."
/obj/structure/closet/CanPass(atom/movable/mover, turf/target)
if(wall_mounted)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
index 563028e3..c84d97ab 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
@@ -5,9 +5,9 @@
var/registered_name = null
/obj/structure/closet/secure_closet/personal/examine(mob/user)
- ..()
+ . = ..()
if(registered_name)
- to_chat(user, "The display reads, \"Owned by [registered_name]\".")
+ . += "The display reads, \"Owned by [registered_name]\"."
/obj/structure/closet/secure_closet/personal/check_access(obj/item/card/id/I)
. = ..()
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 77ab1acc..9493efa1 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -38,14 +38,14 @@
return ..()
/obj/structure/displaycase/examine(mob/user)
- ..()
+ . = ..()
if(alert)
- to_chat(user, "Hooked up with an anti-theft system.")
+ . += "Hooked up with an anti-theft system."
if(showpiece)
- to_chat(user, "There's [showpiece] inside.")
+ . += "There's [showpiece] inside."
if(trophy_message)
- to_chat(user, "The plaque reads:")
- to_chat(user, trophy_message)
+ . += "The plaque reads:"
+ . += trophy_message
/obj/structure/displaycase/proc/dump()
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 31e8b347..0f7a4432 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -26,28 +26,28 @@
..()
/obj/structure/door_assembly/examine(mob/user)
- ..()
+ . = ..()
var/doorname = ""
if(created_name)
doorname = ", written on it is '[created_name]'"
switch(state)
if(AIRLOCK_ASSEMBLY_NEEDS_WIRES)
if(anchored)
- to_chat(user, "The anchoring bolts are wrenched in place, but the maintenance panel lacks wiring.")
+ . += "The anchoring bolts are wrenched in place, but the maintenance panel lacks wiring."
else
- to_chat(user, "The assembly is welded together, but the anchoring bolts are unwrenched.")
+ . += "The assembly is welded together, but the anchoring bolts are unwrenched."
if(AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
- to_chat(user, "The maintenance panel is wired, but the circuit slot is empty.")
+ . += "The maintenance panel is wired, but the circuit slot is empty."
if(AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
- to_chat(user, "The circuit is connected loosely to its slot, but the maintenance panel is unscrewed and open.")
+ . += "The circuit is connected loosely to its slot, but the maintenance panel is unscrewed and open."
if(!mineral && !glass && !noglass)
- to_chat(user, "There is a small paper placard on the assembly[doorname]. There are empty slots for glass windows and mineral covers.")
+ . += "There is a small paper placard on the assembly[doorname]. There are empty slots for glass windows and mineral covers."
else if(!mineral && glass && !noglass)
- to_chat(user, "There is a small paper placard on the assembly[doorname]. There are empty slots for mineral covers.")
+ . += "There is a small paper placard on the assembly[doorname]. There are empty slots for mineral covers."
else if(mineral && !glass && !noglass)
- to_chat(user, "There is a small paper placard on the assembly[doorname]. There are empty slots for glass windows.")
+ . += "There is a small paper placard on the assembly[doorname]. There are empty slots for glass windows."
else
- to_chat(user, "There is a small paper placard on the assembly[doorname].")
+ . += "There is a small paper placard on the assembly[doorname]."
/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/pen))
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index 7d1b19d6..e9fdad3c 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -22,8 +22,8 @@
stored_extinguisher = new /obj/item/extinguisher(src)
/obj/structure/extinguisher_cabinet/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to [opened ? "close":"open"] it.")
+ . = ..()
+ . += "Alt-click to [opened ? "close":"open"] it."
/obj/structure/extinguisher_cabinet/Destroy()
if(stored_extinguisher)
diff --git a/code/game/objects/structures/femur_breaker.dm b/code/game/objects/structures/femur_breaker.dm
index e3002a8f..73312851 100644
--- a/code/game/objects/structures/femur_breaker.dm
+++ b/code/game/objects/structures/femur_breaker.dm
@@ -23,24 +23,14 @@
var/current_action = 0 // What's currently happening to the femur breaker
/obj/structure/femur_breaker/examine(mob/user)
- ..()
-
- var/msg = ""
-
- msg += "It is [anchored ? "secured to the floor." : "unsecured."]
"
-
+ . = ..()
+ . += "It is [anchored ? "secured to the floor." : "unsecured."]"
if (slat_status == BREAKER_SLAT_RAISED)
- msg += "The breaker slat is in a neutral position."
+ . += "The breaker slat is in a neutral position."
else
- msg += "The breaker slat is lowered, and must be raised."
-
+ . += "The breaker slat is lowered, and must be raised."
if (LAZYLEN(buckled_mobs))
- msg += "
"
- msg += "Someone appears to be strapped in. You can help them unbuckle, or activate the femur breaker."
-
- to_chat(user, msg)
-
- return msg
+ . += "Someone appears to be strapped in. You can help them unbuckle, or activate the femur breaker."
/obj/structure/femur_breaker/attack_hand(mob/user)
add_fingerprint(user)
diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm
index 19103c71..35891fa6 100644
--- a/code/game/objects/structures/fence.dm
+++ b/code/game/objects/structures/fence.dm
@@ -29,13 +29,12 @@
update_cut_status()
/obj/structure/fence/examine(mob/user)
- .=..()
-
+ . = ..()
switch(hole_size)
if(MEDIUM_HOLE)
- user.show_message("There is a large hole in \the [src].")
+ . += "There is a large hole in \the [src]."
if(LARGE_HOLE)
- user.show_message("\The [src] has been completely cut through.")
+ . += "\The [src] has been completely cut through."
/obj/structure/fence/end
icon_state = "end"
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index eba82a56..ce36d334 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -16,16 +16,16 @@
. = ..()
switch(state)
if(GIRDER_REINF)
- to_chat(user, "The support struts are screwed in place.")
+ . += "The support struts are screwed in place."
if(GIRDER_REINF_STRUTS)
- to_chat(user, "The support struts are unscrewed and the inner grille is intact.")
+ . += "The support struts are unscrewed and the inner grille is intact."
if(GIRDER_NORMAL)
if(can_displace)
- to_chat(user, "The bolts are wrenched in place.")
+ . += "The bolts are wrenched in place."
if(GIRDER_DISPLACED)
- to_chat(user, "The bolts are loosened, but the screws are holding [src] together.")
+ . += "The bolts are loosened, but the screws are holding [src] together."
if(GIRDER_DISASSEMBLED)
- to_chat(user, "[src] is disassembled! You probably shouldn't be able to see this examine message.")
+ . += "[src] is disassembled! You probably shouldn't be able to see this examine message."
/obj/structure/girder/attackby(obj/item/W, mob/user, params)
add_fingerprint(user)
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 460059ff..06673b32 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -37,11 +37,11 @@
icon_state = "grille50_[rand(0,3)]"
/obj/structure/grille/examine(mob/user)
- ..()
+ . = ..()
if(anchored)
- to_chat(user, "It's secured in place with screws. The rods look like they could be cut through.")
- if(!anchored)
- to_chat(user, "The anchoring screws are unscrewed. The rods look like they could be cut through.")
+ . += "It's secured in place with screws. The rods look like they could be cut through."
+ else
+ . += "The anchoring screws are unscrewed. The rods look like they could be cut through."
/obj/structure/grille/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
switch(the_rcd.mode)
diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm
index 8714722f..3b4bbea5 100644
--- a/code/game/objects/structures/guillotine.dm
+++ b/code/game/objects/structures/guillotine.dm
@@ -34,29 +34,22 @@
. = ..()
/obj/structure/guillotine/examine(mob/user)
- ..()
-
- var/msg = ""
-
- msg += "It is [anchored ? "wrenched to the floor." : "unsecured. A wrench should fix that."]
"
+ . = ..()
+ . += "It is [anchored ? "wrenched to the floor." : "unsecured. A wrench should fix that."]"
if (blade_status == GUILLOTINE_BLADE_RAISED)
- msg += "The blade is raised, ready to fall, and"
+ var/msg = "The blade is raised, ready to fall, and"
if (blade_sharpness >= GUILLOTINE_DECAP_MIN_SHARP)
msg += " looks sharp enough to decapitate without any resistance."
else
msg += " doesn't look particularly sharp. Perhaps a whetstone can be used to sharpen it."
+ . += msg
else
- msg += "The blade is hidden inside the stocks."
+ . += "The blade is hidden inside the stocks."
if (LAZYLEN(buckled_mobs))
- msg += "
"
- msg += "Someone appears to be strapped in. You can help them out, or you can harm them by activating the guillotine."
-
- to_chat(user, msg)
-
- return msg
+ . += "Someone appears to be strapped in. You can help them out, or you can harm them by activating the guillotine."
/obj/structure/guillotine/attack_hand(mob/user)
add_fingerprint(user)
diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm
index b6ad8e27..6be29727 100644
--- a/code/game/objects/structures/holosign.dm
+++ b/code/game/objects/structures/holosign.dm
@@ -108,8 +108,8 @@
var/buzzcd = 0
/obj/structure/holosign/barrier/medical/examine(mob/user)
- ..()
- to_chat(user,"The biometric scanners are [force_allaccess ? "off" : "on"].")
+ . = ..()
+ . += "The biometric scanners are [force_allaccess ? "off" : "on"]."
/obj/structure/holosign/barrier/medical/CanPass(atom/movable/mover, turf/target)
icon_state = "holo_medical"
diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index a6ba6424..bc4183f8 100644
--- a/code/game/objects/structures/lattice.dm
+++ b/code/game/objects/structures/lattice.dm
@@ -18,11 +18,11 @@
// flags = CONDUCT_1
/obj/structure/lattice/examine(mob/user)
- ..()
- deconstruction_hints(user)
+ . = ..()
+ . += deconstruction_hints(user)
/obj/structure/lattice/proc/deconstruction_hints(mob/user)
- to_chat(user, "The rods look like they could be cut. There's space for more rods or a tile.")
+ return "The rods look like they could be cut. There's space for more rods or a tile."
/obj/structure/lattice/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm
index e1480b32..0ae0e294 100644
--- a/code/game/objects/structures/life_candle.dm
+++ b/code/game/objects/structures/life_candle.dm
@@ -55,9 +55,9 @@
/obj/structure/life_candle/examine(mob/user)
. = ..()
if(linked_minds.len)
- to_chat(user, "[src] is active, and linked to [linked_minds.len] souls.")
+ . += "[src] is active, and linked to [linked_minds.len] souls."
else
- to_chat(user, "It is static, still, unmoving.")
+ . += "It is static, still, unmoving."
/obj/structure/life_candle/process()
if(!linked_minds.len)
diff --git a/code/game/objects/structures/medkit.dm b/code/game/objects/structures/medkit.dm
index 4d063031..16137cf2 100644
--- a/code/game/objects/structures/medkit.dm
+++ b/code/game/objects/structures/medkit.dm
@@ -26,8 +26,8 @@
stored_medkit = new /obj/item/storage/firstaid/regular(src)
/obj/structure/medkit_cabinet/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to [opened ? "close":"open"] it.")
+ . = ..()
+ . += "Alt-click to [opened ? "close":"open"] it."
/obj/structure/medkit_cabinet/Destroy()
if(stored_medkit)
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index c590fcff..7230367c 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -161,8 +161,8 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
..()
/obj/structure/bodycontainer/morgue/examine(mob/user)
- ..()
- to_chat(user, "The speaker is [beeper ? "enabled" : "disabled"]. Alt-click to toggle it.")
+ . = ..()
+ . += "The speaker is [beeper ? "enabled" : "disabled"]. Alt-click to toggle it."
/obj/structure/bodycontainer/morgue/AltClick(mob/user)
..()
diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm
index e3862ed9..a4619050 100644
--- a/code/game/objects/structures/plasticflaps.dm
+++ b/code/game/objects/structures/plasticflaps.dm
@@ -15,9 +15,9 @@
/obj/structure/plasticflaps/examine(mob/user)
. = ..()
if(anchored)
- to_chat(user, "[src] are screwed to the floor.")
+ . += "[src] are screwed to the floor."
else
- to_chat(user, "[src] are no longer screwed to the floor, and the flaps can be cut apart.")
+ . += "[src] are no longer screwed to the floor, and the flaps can be cut apart."
/obj/structure/plasticflaps/screwdriver_act(mob/living/user, obj/item/W)
if(..())
diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm
index 889cdab3..15de7e37 100644
--- a/code/game/objects/structures/reflector.dm
+++ b/code/game/objects/structures/reflector.dm
@@ -35,14 +35,14 @@
can_rotate = FALSE
/obj/structure/reflector/examine(mob/user)
- ..()
+ . = ..()
if(finished)
- to_chat(user, "It is set to [rotation_angle] degrees, and the rotation is [can_rotate ? "unlocked" : "locked"].")
+ . += "It is set to [rotation_angle] degrees, and the rotation is [can_rotate ? "unlocked" : "locked"]."
if(!admin)
if(can_rotate)
- to_chat(user, "Alt-click to adjust its direction.")
+ . += "Alt-click to adjust its direction."
else
- to_chat(user, "Use screwdriver to unlock the rotation.")
+ . += "Use screwdriver to unlock the rotation."
/obj/structure/reflector/proc/setAngle(new_angle)
if(can_rotate)
diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm
index 84a382c7..adb9984f 100644
--- a/code/game/objects/structures/showcase.dm
+++ b/code/game/objects/structures/showcase.dm
@@ -131,12 +131,11 @@
//Feedback is given in examine because showcases can basically have any sprite assigned to them
/obj/structure/showcase/examine(mob/user)
- ..()
-
+ . = ..()
switch(deconstruction_state)
if(SHOWCASE_CONSTRUCTED)
- to_chat(user, "The showcase is fully constructed.")
+ . += "The showcase is fully constructed."
if(SHOWCASE_SCREWDRIVERED)
- to_chat(user, "The showcase has its screws loosened.")
+ . += "The showcase has its screws loosened."
else
- to_chat(user, "If you see this, something is wrong.")
+ . += "If you see this, something is wrong."
diff --git a/code/game/objects/structures/spirit_board.dm b/code/game/objects/structures/spirit_board.dm
index c35d16ab..4a9a1bdc 100644
--- a/code/game/objects/structures/spirit_board.dm
+++ b/code/game/objects/structures/spirit_board.dm
@@ -12,7 +12,7 @@
/obj/structure/spirit_board/examine()
desc = "[initial(desc)] The planchette is sitting at \"[planchette]\"."
- ..()
+ return ..()
/obj/structure/spirit_board/attack_hand(mob/user)
. = ..()
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 31b229a9..a2216580 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -35,11 +35,11 @@
canSmoothWith = list(/obj/structure/table, /obj/structure/table/reinforced)
/obj/structure/table/examine(mob/user)
- ..()
- deconstruction_hints(user)
+ . = ..()
+ . += deconstruction_hints(user)
/obj/structure/table/proc/deconstruction_hints(mob/user)
- to_chat(user, "The top is screwed on, but the main bolts are also visible.")
+ return "The top is screwed on, but the main bolts are also visible."
/obj/structure/table/update_icon()
if(smooth)
@@ -486,8 +486,8 @@
max_integrity = 20
/obj/structure/rack/examine(mob/user)
- ..()
- to_chat(user, "It's held together by a couple of bolts.")
+ . = ..()
+ . += "It's held together by a couple of bolts."
/obj/structure/rack/CanPass(atom/movable/mover, turf/target)
if(src.density == 0) //Because broken racks -Agouri |TODO: SPRITE!|
@@ -591,4 +591,4 @@
", "You assemble \a [R].")
R.add_fingerprint(user)
qdel(src)
- building = FALSE
\ No newline at end of file
+ building = FALSE
diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm
index ffc2c344..b3c19334 100644
--- a/code/game/objects/structures/traps.dm
+++ b/code/game/objects/structures/traps.dm
@@ -38,7 +38,7 @@
if(user.mind && user.mind in immune_minds)
return
if(get_dist(user, src) <= 1)
- to_chat(user, "You reveal [src]!")
+ . += "You reveal [src]!"
flare()
/obj/structure/trap/proc/flare()
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 5466775b..c5518842 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -31,21 +31,21 @@
/obj/structure/window/examine(mob/user)
- ..()
+ . = ..()
if(reinf)
if(anchored && state == WINDOW_SCREWED_TO_FRAME)
- to_chat(user, "The window is screwed to the frame.")
+ . += "The window is screwed to the frame."
else if(anchored && state == WINDOW_IN_FRAME)
- to_chat(user, "The window is unscrewed but pried into the frame.")
+ . += "The window is unscrewed but pried into the frame."
else if(anchored && state == WINDOW_OUT_OF_FRAME)
- to_chat(user, "The window is out of the frame, but could be pried in. It is screwed to the floor.")
+ . += "The window is out of the frame, but could be pried in. It is screwed to the floor."
else if(!anchored)
- to_chat(user, "The window is unscrewed from the floor, and could be deconstructed by wrenching.")
+ . += "The window is unscrewed from the floor, and could be deconstructed by wrenching."
else
if(anchored)
- to_chat(user, "The window is screwed to the floor.")
+ . += "The window is screwed to the floor."
else
- to_chat(user, "The window is unscrewed from the floor, and could be deconstructed by wrenching.")
+ . += "The window is unscrewed from the floor, and could be deconstructed by wrenching."
/obj/structure/window/Initialize(mapload, direct)
. = ..()
diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm
index 9553ff05..17b8d876 100644
--- a/code/game/turfs/simulated/floor/fancy_floor.dm
+++ b/code/game/turfs/simulated/floor/fancy_floor.dm
@@ -19,8 +19,8 @@
tiled_dirt = FALSE
/turf/open/floor/wood/examine(mob/user)
- ..()
- to_chat(user, "There's a few screws and a small crack visible.")
+ . = ..()
+ . += "There's a few screws and a small crack visible."
/turf/open/floor/wood/screwdriver_act(mob/living/user, obj/item/I)
if(..())
@@ -183,8 +183,8 @@
tiled_dirt = FALSE
/turf/open/floor/carpet/examine(mob/user)
- ..()
- to_chat(user, "There's a small crack on the edge of it.")
+ . = ..()
+ . += "There's a small crack on the edge of it."
/turf/open/floor/carpet/Initialize()
. = ..()
diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm
index 6e896b5e..f9376c06 100644
--- a/code/game/turfs/simulated/floor/light_floor.dm
+++ b/code/game/turfs/simulated/floor/light_floor.dm
@@ -14,8 +14,8 @@
/turf/open/floor/light/examine(mob/user)
- ..()
- to_chat(user, "There's a small crack on the edge of it.")
+ . = ..()
+ . += "There's a small crack on the edge of it."
/turf/open/floor/light/Initialize()
. = ..()
diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm
index 884e4c65..658c1a77 100644
--- a/code/game/turfs/simulated/floor/plasteel_floor.dm
+++ b/code/game/turfs/simulated/floor/plasteel_floor.dm
@@ -5,8 +5,8 @@
burnt_states = list("floorscorched1", "floorscorched2")
/turf/open/floor/plasteel/examine(mob/user)
- ..()
- to_chat(user, "There's a small crack on the edge of it.")
+ . = ..()
+ . += "There's a small crack on the edge of it."
/turf/open/floor/plasteel/update_icon()
if(!..())
diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm
index 036f54c7..47db413e 100644
--- a/code/game/turfs/simulated/floor/plating.dm
+++ b/code/game/turfs/simulated/floor/plating.dm
@@ -20,14 +20,14 @@
var/attachment_holes = TRUE
/turf/open/floor/plating/examine(mob/user)
- ..()
+ . = ..()
if(broken || burnt)
- to_chat(user, "It looks like the dents could be welded smooth.")
+ . += "It looks like the dents could be welded smooth."
return
if(attachment_holes)
- to_chat(user, "There are a few attachment holes for a new tile or reinforcement rods.")
+ . += "There are a few attachment holes for a new tile or reinforcement rods."
else
- to_chat(user, "You might be able to build ontop of it with some tiles...")
+ . += "You might be able to build ontop of it with some tiles..."
/turf/open/floor/plating/Initialize()
if (!broken_states)
diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm
index 0c54a340..edc47ede 100644
--- a/code/game/turfs/simulated/floor/reinf_floor.dm
+++ b/code/game/turfs/simulated/floor/reinf_floor.dm
@@ -13,8 +13,8 @@
tiled_dirt = FALSE
/turf/open/floor/engine/examine(mob/user)
- ..()
- to_chat(user, "The reinforcement rods are wrenched firmly in place.")
+ . = ..()
+ . += "The reinforcement rods are wrenched firmly in place."
/turf/open/floor/engine/airless
initial_gas_mix = "TEMP=2.7"
diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm
index 4fd923dd..1b2e9801 100644
--- a/code/game/turfs/simulated/wall/reinf_walls.dm
+++ b/code/game/turfs/simulated/wall/reinf_walls.dm
@@ -17,19 +17,19 @@
/turf/closed/wall/r_wall/deconstruction_hints(mob/user)
switch(d_state)
if(INTACT)
- to_chat(user, "The outer grille is fully intact.")
+ return "The outer grille is fully intact."
if(SUPPORT_LINES)
- to_chat(user, "The outer grille has been cut, and the support lines are screwed securely to the outer cover.")
+ return "The outer grille has been cut, and the support lines are screwed securely to the outer cover."
if(COVER)
- to_chat(user, "The support lines have been unscrewed, and the metal cover is welded firmly in place.")
+ return "The support lines have been unscrewed, and the metal cover is welded firmly in place."
if(CUT_COVER)
- to_chat(user, "The metal cover has been sliced through, and is connected loosely to the girder.")
+ return "The metal cover has been sliced through, and is connected loosely to the girder."
if(ANCHOR_BOLTS)
- to_chat(user, "The outer cover has been pried away, and the bolts anchoring the support rods are wrenched in place.")
+ return "The outer cover has been pried away, and the bolts anchoring the support rods are wrenched in place."
if(SUPPORT_RODS)
- to_chat(user, "The bolts anchoring the support rods have been loosened, but are still welded firmly to the girder.")
+ return "The bolts anchoring the support rods have been loosened, but are still welded firmly to the girder."
if(SHEATH)
- to_chat(user, "The support rods have been sliced through, and the outer sheath is connected loosely to the girder.")
+ return "The support rods have been sliced through, and the outer sheath is connected loosely to the girder."
/turf/closed/wall/r_wall/devastate_wall()
new sheet_type(src, sheet_amount)
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 42bd0c61..53830fc2 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -73,11 +73,11 @@
var/list/dent_decals
/turf/closed/wall/examine(mob/user)
- ..()
+ . = ..()
deconstruction_hints(user)
/turf/closed/wall/proc/deconstruction_hints(mob/user)
- to_chat(user, "The outer plating is welded firmly in place.")
+ return "The outer plating is welded firmly in place."
/turf/closed/wall/attack_tk()
return
diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm
index 028af313..2901659c 100644
--- a/code/modules/admin/sound_emitter.dm
+++ b/code/modules/admin/sound_emitter.dm
@@ -34,15 +34,15 @@
return
/obj/effect/sound_emitter/examine(mob/user)
- ..()
+ . = ..()
if(!isobserver(user))
return
- to_chat(user, "Sound File: [sound_file ? sound_file : "None chosen"]")
- to_chat(user, "Mode: [motus_operandi]")
- to_chat(user, "Range: [emitter_range]")
- to_chat(user, "Sound is playing at [sound_volume]% volume.")
+ . += "Sound File: [sound_file ? sound_file : "None chosen"]"
+ . += "Mode: [motus_operandi]"
+ . += "Range: [emitter_range]"
+ . += "Sound is playing at [sound_volume]% volume."
if(user.client.holder)
- to_chat(user, "Alt-click it to quickly activate it!")
+ . += "Alt-click it to quickly activate it!"
//ATTACK GHOST IGNORING PARENT RETURN VALUE
/obj/effect/sound_emitter/attack_ghost(mob/user)
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index b8bda0db..2f5ef65e 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -606,16 +606,16 @@ Congratulations! You are now trained for invasive xenobiology research!"}
. = ..()
/obj/item/abductor_baton/examine(mob/user)
- ..()
+ . = ..()
switch(mode)
if(BATON_STUN)
- to_chat(user, "The baton is in stun mode.")
+ . += "The baton is in stun mode."
if(BATON_SLEEP)
- to_chat(user, "The baton is in sleep inducement mode.")
+ . += "The baton is in sleep inducement mode."
if(BATON_CUFF)
- to_chat(user, "The baton is in restraining mode.")
+ . += "The baton is in restraining mode."
if(BATON_PROBE)
- to_chat(user, "The baton is in probing mode.")
+ . += "The baton is in probing mode."
/obj/item/radio/headset/abductor
name = "alien headset"
diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm
index d32e38c1..33e8497e 100644
--- a/code/modules/antagonists/blob/blob/overmind.dm
+++ b/code/modules/antagonists/blob/blob/overmind.dm
@@ -170,9 +170,9 @@ GLOBAL_LIST_EMPTY(blob_nodes)
add_points(0)
/mob/camera/blob/examine(mob/user)
- ..()
+ . = ..()
if(blob_reagent_datum)
- to_chat(user, "Its chemical is [blob_reagent_datum.name].")
+ . += "Its chemical is [blob_reagent_datum.name]."
/mob/camera/blob/update_health_hud()
if(blob_core)
diff --git a/code/modules/antagonists/blob/blob/theblob.dm b/code/modules/antagonists/blob/blob/theblob.dm
index dc7aa821..b37c0076 100644
--- a/code/modules/antagonists/blob/blob/theblob.dm
+++ b/code/modules/antagonists/blob/blob/theblob.dm
@@ -243,18 +243,19 @@
else
return ..()
-/obj/structure/blob/proc/chemeffectreport(mob/user)
+/obj/structure/blob/proc/chemeffectreport()
+ . = list()
if(overmind)
- to_chat(user, "Material: [overmind.blob_reagent_datum.name].")
- to_chat(user, "Material Effects: [overmind.blob_reagent_datum.analyzerdescdamage]")
- to_chat(user, "Material Properties: [overmind.blob_reagent_datum.analyzerdesceffect]
")
+ . += "Material: [overmind.blob_reagent_datum.name]."
+ . += "Material Effects: [overmind.blob_reagent_datum.analyzerdescdamage]"
+ . += "Material Properties: [overmind.blob_reagent_datum.analyzerdesceffect]
"
else
- to_chat(user, "No Material Detected!
")
+ . += "No Material Detected!
"
-/obj/structure/blob/proc/typereport(mob/user)
- to_chat(user, "Blob Type: [uppertext(initial(name))]")
- to_chat(user, "Health: [obj_integrity]/[max_integrity]")
- to_chat(user, "Effects: [scannerreport()]")
+/obj/structure/blob/proc/typereport()
+ . = list("Blob Type: [uppertext(initial(name))]")
+ . += "Health: [obj_integrity]/[max_integrity]"
+ . += "Effects: [scannerreport()]"
/obj/structure/blob/attack_animal(mob/living/simple_animal/M)
if(ROLE_BLOB in M.faction) //sorry, but you can't kill the blob as a blobbernaut
@@ -310,20 +311,20 @@
return B
/obj/structure/blob/examine(mob/user)
- ..()
+ . = ..()
var/datum/atom_hud/hud_to_check = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
if(user.research_scanner || hud_to_check.hudusers[user])
- to_chat(user, "Your HUD displays an extensive report...
")
+ . += "Your HUD displays an extensive report...
"
if(overmind)
- to_chat(user, "Progress to Critical Mass: [overmind.blobs_legit.len]/[overmind.blobwincount].")
+ . += "Progress to Critical Mass: [overmind.blobs_legit.len]/[overmind.blobwincount]."
else
- to_chat(user, "Core neutralized. Critical mass no longer attainable.")
- chemeffectreport(user)
- typereport(user)
+ . += "Core neutralized. Critical mass no longer attainable."
+ . += chemeffectreport()
+ . += typereport()
else
if(isobserver(user) && overmind)
- to_chat(user, "Progress to Critical Mass: [overmind.blobs_legit.len]/[overmind.blobwincount].")
- to_chat(user, "It seems to be made of [get_chem_name()].")
+ . += "Progress to Critical Mass: [overmind.blobs_legit.len]/[overmind.blobwincount]."
+ . += "It seems to be made of [get_chem_name()]."
/obj/structure/blob/proc/scannerreport()
return "A generic blob. Looks like someone forgot to override this proc, adminhelp this."
diff --git a/code/modules/antagonists/clockcult/clock_effect.dm b/code/modules/antagonists/clockcult/clock_effect.dm
index b9de95b0..5fbfa032 100644
--- a/code/modules/antagonists/clockcult/clock_effect.dm
+++ b/code/modules/antagonists/clockcult/clock_effect.dm
@@ -21,5 +21,5 @@
/obj/effect/clockwork/examine(mob/user)
if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc)
desc = clockwork_desc
- ..()
+ . = ..()
desc = initial(desc)
\ No newline at end of file
diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm b/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm
index 34a986aa..c18e4679 100644
--- a/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm
+++ b/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm
@@ -6,6 +6,7 @@
/obj/effect/clockwork/overlay/examine(mob/user)
if(linked)
linked.examine(user)
+ return ..()
/obj/effect/clockwork/overlay/ex_act()
return FALSE
diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
index 6eedffb1..b05fcad6 100644
--- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
+++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
@@ -191,15 +191,15 @@
..()
/obj/effect/clockwork/sigil/transmission/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
var/structure_number = 0
for(var/obj/structure/destructible/clockwork/powered/P in range(SIGIL_ACCESS_RANGE, src))
structure_number++
- to_chat(user, "It is storing [DisplayPower(get_clockwork_power())] of shared power, \
- and [structure_number] clockwork structure[structure_number == 1 ? " is":"s are"] in range.")
+ . += "It is storing [DisplayPower(get_clockwork_power())] of shared power, \
+ and [structure_number] clockwork structure[structure_number == 1 ? " is":"s are"] in range."
if(iscyborg(user))
- to_chat(user, "You can recharge from the [sigil_name] by crossing it.")
+ . += "You can recharge from the [sigil_name] by crossing it."
/obj/effect/clockwork/sigil/transmission/sigil_effects(mob/living/L)
if(is_servant_of_ratvar(L))
@@ -280,13 +280,13 @@
can_dust = FALSE
/obj/effect/clockwork/sigil/vitality/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "It has access to [GLOB.ratvar_awakens ? "INFINITE":GLOB.clockwork_vitality] units of vitality.")
+ . += "It has access to [GLOB.ratvar_awakens ? "INFINITE":GLOB.clockwork_vitality] units of vitality."
if(GLOB.ratvar_awakens)
- to_chat(user, "It can revive Servants at no cost!")
+ . += "It can revive Servants at no cost!"
else
- to_chat(user, "It can revive Servants at a cost of [revive_cost] vitality.")
+ . += "It can revive Servants at a cost of [revive_cost] vitality."
/obj/effect/clockwork/sigil/vitality/sigil_effects(mob/living/L)
if((is_servant_of_ratvar(L) && L.suiciding) || sigil_active)
diff --git a/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm b/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm
index 5cf7ab79..36aaa277 100644
--- a/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm
+++ b/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm
@@ -53,9 +53,9 @@
return TRUE
/obj/effect/clockwork/spatial_gateway/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "It has [uses] use\s remaining.")
+ . += "It has [uses] use\s remaining."
//ATTACK GHOST IGNORING PARENT RETURN VALUE
/obj/effect/clockwork/spatial_gateway/attack_ghost(mob/user)
diff --git a/code/modules/antagonists/clockcult/clock_item.dm b/code/modules/antagonists/clockcult/clock_item.dm
index f403b6f9..7c8e877f 100644
--- a/code/modules/antagonists/clockcult/clock_item.dm
+++ b/code/modules/antagonists/clockcult/clock_item.dm
@@ -20,5 +20,5 @@
/obj/item/clockwork/examine(mob/user)
if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc)
desc = clockwork_desc
- ..()
+ . = ..()
desc = initial(desc)
diff --git a/code/modules/antagonists/clockcult/clock_items/clock_components.dm b/code/modules/antagonists/clockcult/clock_items/clock_components.dm
index 561d49e9..a9307f15 100644
--- a/code/modules/antagonists/clockcult/clock_items/clock_components.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clock_components.dm
@@ -12,7 +12,7 @@
/obj/item/clockwork/component/examine(mob/user)
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "You can activate this in your hand to break it down for power.")
+ . += "You can activate this in your hand to break it down for power."
/obj/item/clockwork/component/attack_self(mob/living/user)
if(is_servant_of_ratvar(user))
@@ -181,9 +181,9 @@
pixel_y = rand(-sprite_shift, sprite_shift)
/obj/item/clockwork/alloy_shards/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "Can be consumed by a replica fabricator as a source of power.")
+ . += "Can be consumed by a replica fabricator as a source of power."
/obj/item/clockwork/alloy_shards/proc/replace_name_desc()
name = "replicant alloy shard"
diff --git a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm
index a004714e..386a463a 100644
--- a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm
@@ -27,11 +27,11 @@
armour_penetration = initial(armour_penetration)
/obj/item/clockwork/weapon/ratvarian_spear/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "Attacks on living non-Servants will generate [bonus_burn] units of vitality.")
+ . += "Attacks on living non-Servants will generate [bonus_burn] units of vitality."
if(!iscyborg(user))
- to_chat(user, "Throwing the spear will do massive damage, break the spear, and knock down the target.")
+ . += "Throwing the spear will do massive damage, break the spear, and knock down the target."
/obj/item/clockwork/weapon/ratvarian_spear/attack(mob/living/target, mob/living/carbon/human/user)
. = ..()
diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
index a4866751..d7646c55 100644
--- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
@@ -139,15 +139,15 @@
adjust_clockwork_power(0.1) //Slabs serve as very weak power generators on their own (no, not enough to justify spamming them)
/obj/item/clockwork/slab/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
if(LAZYLEN(quickbound))
for(var/i in 1 to quickbound.len)
if(!quickbound[i])
continue
var/datum/clockwork_scripture/quickbind_slot = quickbound[i]
- to_chat(user, "Quickbind button: [initial(quickbind_slot.name)].")
- to_chat(user, "Available power: [DisplayPower(get_clockwork_power())].")
+ . += "Quickbind button: [initial(quickbind_slot.name)]."
+ . += "Available power: [DisplayPower(get_clockwork_power())]."
//Slab actions; Hierophant, Quickbind
/obj/item/clockwork/slab/ui_action_click(mob/user, action)
diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm
index 12af249b..f5509289 100644
--- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm
+++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm
@@ -28,7 +28,7 @@
/obj/item/clockwork/construct_chassis/examine(mob/user)
clockwork_desc = "[clockwork_desc]
[construct_desc]"
- ..()
+ . = ..()
clockwork_desc = initial(clockwork_desc)
//ATTACK HAND IGNORING PARENT RETURN VALUE
diff --git a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm
index 741b251a..0365ae63 100644
--- a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm
+++ b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm
@@ -44,16 +44,16 @@
speed_multiplier = initial(speed_multiplier)
/obj/item/clockwork/replica_fabricator/examine(mob/living/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "Can be used to replace walls, floors, tables, windows, windoors, and airlocks with Clockwork variants.")
- to_chat(user, "Can construct Clockwork Walls on Clockwork Floors and deconstruct Clockwork Walls to Clockwork Floors.")
+ . += "Can be used to replace walls, floors, tables, windows, windoors, and airlocks with Clockwork variants."
+ . += "Can construct Clockwork Walls on Clockwork Floors and deconstruct Clockwork Walls to Clockwork Floors."
if(uses_power)
- to_chat(user, "It can consume floor tiles, rods, metal, and plasteel for power at rates of 2:[DisplayPower(POWER_ROD)], 1:[DisplayPower(POWER_ROD)], 1:[DisplayPower(POWER_METAL)], \
- and 1:[DisplayPower(POWER_PLASTEEL)], respectively.")
- to_chat(user, "It can also consume brass sheets for power at a rate of 1:[DisplayPower(POWER_FLOOR)].")
- to_chat(user, "Use it in-hand to produce 5 brass sheets at a cost of [DisplayPower(POWER_WALL_TOTAL)] power.")
- to_chat(user, "It has access to [DisplayPower(get_clockwork_power())] of power.")
+ . += "It can consume floor tiles, rods, metal, and plasteel for power at rates of 2:[DisplayPower(POWER_ROD)], 1:[DisplayPower(POWER_ROD)], 1:[DisplayPower(POWER_METAL)], \
+ and 1:[DisplayPower(POWER_PLASTEEL)], respectively."
+ . += "It can also consume brass sheets for power at a rate of 1:[DisplayPower(POWER_FLOOR)]."
+ . += "Use it in-hand to produce 5 brass sheets at a cost of [DisplayPower(POWER_WALL_TOTAL)] power."
+ . += "It has access to [DisplayPower(get_clockwork_power())] of power."
/obj/item/clockwork/replica_fabricator/attack_self(mob/living/user)
if(is_servant_of_ratvar(user))
diff --git a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm
index d47bf4f3..d84338fa 100644
--- a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm
+++ b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm
@@ -39,7 +39,7 @@
/obj/item/mmi/posibrain/soul_vessel/examine(mob/user)
if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc)
desc = clockwork_desc
- ..()
+ . = ..()
desc = initial(desc)
/obj/item/mmi/posibrain/soul_vessel/transfer_personality(mob/candidate)
diff --git a/code/modules/antagonists/clockcult/clock_mobs.dm b/code/modules/antagonists/clockcult/clock_mobs.dm
index 6268d15d..9bdf03cb 100644
--- a/code/modules/antagonists/clockcult/clock_mobs.dm
+++ b/code/modules/antagonists/clockcult/clock_mobs.dm
@@ -57,7 +57,7 @@
msg += "[addendum]\n"
msg += "*---------*"
- to_chat(user, msg)
+ return list(msg)
/mob/living/simple_animal/hostile/clockwork/proc/examine_info() //Override this on a by-mob basis to have unique examine info
return
diff --git a/code/modules/antagonists/clockcult/clock_structure.dm b/code/modules/antagonists/clockcult/clock_structure.dm
index 300e85e3..13da9c5a 100644
--- a/code/modules/antagonists/clockcult/clock_structure.dm
+++ b/code/modules/antagonists/clockcult/clock_structure.dm
@@ -43,10 +43,10 @@
var/can_see_clockwork = is_servant_of_ratvar(user) || isobserver(user)
if(can_see_clockwork && clockwork_desc)
desc = clockwork_desc
- ..()
+ . = ..()
desc = initial(desc)
if(unanchored_icon)
- to_chat(user, "[src] is [anchored ? "":"not "]secured to the floor.")
+ . += "[src] is [anchored ? "":"not "]secured to the floor."
/obj/structure/destructible/clockwork/examine_status(mob/user)
if(is_servant_of_ratvar(user) || isobserver(user))
@@ -155,12 +155,12 @@
var/inactive_icon = null //icon_state while process() isn't being called
/obj/structure/destructible/clockwork/powered/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
if(!can_access_clockwork_power(src))
- to_chat(user, "It has no access to the power network! Create a sigil of transmission nearby.")
+ . += "It has no access to the power network! Create a sigil of transmission nearby."
else
- to_chat(user, "It has access to [DisplayPower(get_clockwork_power())] of power.")
+ . += "It has access to [DisplayPower(get_clockwork_power())] of power."
/obj/structure/destructible/clockwork/powered/Destroy()
SSfastprocess.processing -= src
diff --git a/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm b/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm
index 00a3406d..d09e568f 100644
--- a/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm
@@ -16,16 +16,16 @@
return ..()
/obj/structure/destructible/clockwork/trap/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "It's wired to:")
+ . += "It's wired to:"
if(!wired_to.len)
- to_chat(user, "Nothing.")
+ . += "Nothing."
else
for(var/V in wired_to)
var/obj/O = V
var/distance = get_dist(src, O)
- to_chat(user, "[O] ([distance == 0 ? "same tile" : "[distance] tiles [dir2text(get_dir(src, O))]"])")
+ . += "[O] ([distance == 0 ? "same tile" : "[distance] tiles [dir2text(get_dir(src, O))]"])"
/obj/structure/destructible/clockwork/trap/wrench_act(mob/living/user, obj/item/I)
if(!is_servant_of_ratvar(user))
diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm
index 56b36d13..04da424f 100644
--- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm
@@ -223,34 +223,34 @@
/obj/structure/destructible/clockwork/massive/celestial_gateway/examine(mob/user)
icon_state = "spatial_gateway" //cheat wildly by pretending to have an icon
- ..()
+ . = ..()
icon_state = initial(icon_state)
if(is_servant_of_ratvar(user) || isobserver(user))
if(!active)
- to_chat(user, "Time until the Ark's activation: [DisplayTimeText(get_arrival_time())]")
+ . += "Time until the Ark's activation: [DisplayTimeText(get_arrival_time())]"
else
if(grace_period)
- to_chat(user, "Crew grace period time remaining: [DisplayTimeText(get_arrival_time())]")
+ . += "Crew grace period time remaining: [DisplayTimeText(get_arrival_time())]"
else
- to_chat(user, "Time until Ratvar's arrival: [DisplayTimeText(get_arrival_time())]")
+ . += "Time until Ratvar's arrival: [DisplayTimeText(get_arrival_time())]"
switch(progress_in_seconds)
if(-INFINITY to GATEWAY_REEBE_FOUND)
- to_chat(user, "The Ark is feeding power into the bluespace field.")
+ . += "The Ark is feeding power into the bluespace field."
if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING)
- to_chat(user, "The field is ripping open a copy of itself in Ratvar's prison.")
+ . += "The field is ripping open a copy of itself in Ratvar's prison."
if(GATEWAY_RATVAR_COMING to INFINITY)
- to_chat(user, "With the bluespace field established, Ratvar is preparing to come through!")
+ . += "With the bluespace field established, Ratvar is preparing to come through!"
else
if(!active)
- to_chat(user, "Whatever it is, it doesn't seem to be active.")
+ . += "Whatever it is, it doesn't seem to be active."
else
switch(progress_in_seconds)
if(-INFINITY to GATEWAY_REEBE_FOUND)
- to_chat(user, "You see a swirling bluespace anomaly steadily growing in intensity.")
+ . += "You see a swirling bluespace anomaly steadily growing in intensity."
if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING)
- to_chat(user, "The anomaly is stable, and you can see flashes of something from it.")
+ . += "The anomaly is stable, and you can see flashes of something from it."
if(GATEWAY_RATVAR_COMING to INFINITY)
- to_chat(user, "The anomaly is stable! Something is coming through!")
+ . += "The anomaly is stable! Something is coming through!"
/obj/structure/destructible/clockwork/massive/celestial_gateway/process()
if(seconds_until_activation == -1) //we never do anything
diff --git a/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm b/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm
index cb13fdd6..058bd9d2 100644
--- a/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm
@@ -21,9 +21,9 @@
toggle(1)
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "It requires [DisplayPower(hierophant_cost)] to broadcast over the Hierophant Network, and [DisplayPower(gateway_cost)] to open a Spatial Gateway.")
+ . += "It requires [DisplayPower(hierophant_cost)] to broadcast over the Hierophant Network, and [DisplayPower(gateway_cost)] to open a Spatial Gateway."
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/can_be_unfasten_wrench(mob/user, silent)
if(active)
diff --git a/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm b/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm
index 7654c020..68f62035 100644
--- a/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm
@@ -47,16 +47,16 @@
STOP_PROCESSING(SSprocessing, src)
/obj/structure/destructible/clockwork/heralds_beacon/examine(mob/user)
- ..()
+ . = ..()
if(isobserver(user) || is_servant_of_ratvar(user))
if(!available)
if(!GLOB.ratvar_approaches)
- to_chat(user, "It can no longer be activated.")
+ . += "It can no longer be activated."
else
- to_chat(user, "It has been activated!")
+ . += "It has been activated!"
else
- to_chat(user, "There are [time_remaining] second[time_remaining != 1 ? "s" : ""] remaining to vote.")
- to_chat(user, "There are [voters.len]/[votes_needed] votes to activate the beacon!")
+ . += "There are [time_remaining] second[time_remaining != 1 ? "s" : ""] remaining to vote."
+ . += "There are [voters.len]/[votes_needed] votes to activate the beacon!"
/obj/structure/destructible/clockwork/heralds_beacon/attack_hand(mob/living/user)
. = ..()
diff --git a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
index df123144..9b4ac808 100644
--- a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
@@ -17,9 +17,9 @@
var/mania_cost = 150
/obj/structure/destructible/clockwork/powered/mania_motor/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
- to_chat(user, "It requires [DisplayPower(mania_cost)] to run.")
+ . += "It requires [DisplayPower(mania_cost)] to run."
/obj/structure/destructible/clockwork/powered/mania_motor/forced_disable(bad_effects)
if(active)
diff --git a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm
index df0083e8..bf50ed2b 100644
--- a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm
@@ -25,8 +25,8 @@
return ..()
/obj/structure/destructible/clockwork/ocular_warden/examine(mob/user)
- ..()
- to_chat(user, "[target ? "It's fixated on [target]!" : "Its gaze is wandering aimlessly."]")
+ . = ..()
+ . += "[target ? "It's fixated on [target]!" : "Its gaze is wandering aimlessly."]"
/obj/structure/destructible/clockwork/ocular_warden/hulk_damage()
return 25
diff --git a/code/modules/antagonists/clockcult/clock_structures/stargazer.dm b/code/modules/antagonists/clockcult/clock_structures/stargazer.dm
index 57f83c55..fbaee799 100644
--- a/code/modules/antagonists/clockcult/clock_structures/stargazer.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/stargazer.dm
@@ -25,11 +25,11 @@
. = ..()
/obj/structure/destructible/clockwork/stargazer/examine(mob/user)
- ..()
+ . = ..()
if(is_servant_of_ratvar(user))
- to_chat(user, "Generates [DisplayPower(STARGAZER_POWER)] per second while viewing starlight within [STARGAZER_RANGE] tiles.")
+ . += "Generates [DisplayPower(STARGAZER_POWER)] per second while viewing starlight within [STARGAZER_RANGE] tiles."
if(star_light_star_bright)
- to_chat(user, "[is_servant_of_ratvar(user) ? "It can see starlight!" : "It's shining brilliantly!"]")
+ . += "[is_servant_of_ratvar(user) ? "It can see starlight!" : "It's shining brilliantly!"]"
/obj/structure/destructible/clockwork/stargazer/process()
star_light_star_bright = check_starlight()
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index 50d24821..eedc03c6 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -651,7 +651,7 @@
/obj/item/melee/blood_magic/manipulator/examine(mob/user)
. = ..()
if(iscultist(user))
- to_chat(user, "The [name] currently has [uses] blood charges left.")
+ . += "The [name] currently has [uses] blood charges left."
/obj/item/melee/blood_magic/manipulator/afterattack(atom/target, mob/living/carbon/human/user, proximity)
if(proximity)
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 54f803a0..747cb4b4 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -134,10 +134,11 @@
AddComponent(/datum/component/butchering, 50, 80)
/obj/item/twohanded/required/cult_bastard/examine(mob/user)
+ . = ..()
if(contents.len)
- desc+="
There are [contents.len] souls trapped within the sword's core."
+ . += "
There are [contents.len] souls trapped within the sword's core."
else
- desc+="
The sword appears to be quite lifeless."
+ . += "
The sword appears to be quite lifeless."
/obj/item/twohanded/required/cult_bastard/can_be_pulled(user)
return FALSE
@@ -572,11 +573,11 @@
var/uses = 4
/obj/item/cult_shift/examine(mob/user)
- ..()
+ . = ..()
if(uses)
- to_chat(user, "It has [uses] use\s remaining.")
+ . += "It has [uses] use\s remaining."
else
- to_chat(user, "It seems drained.")
+ . += "It seems drained."
/obj/item/cult_shift/proc/handle_teleport_grab(turf/T, mob/user)
var/mob/living/carbon/C = user
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
index 0dd6b08c..f38f379a 100644
--- a/code/modules/antagonists/cult/cult_structures.dm
+++ b/code/modules/antagonists/cult/cult_structures.dm
@@ -29,10 +29,10 @@
/obj/structure/destructible/cult/examine(mob/user)
- ..()
- to_chat(user, "\The [src] is [anchored ? "":"not "]secured to the floor.")
+ . = ..()
+ . += "\The [src] is [anchored ? "":"not "]secured to the floor."
if((iscultist(user) || isobserver(user)) && cooldowntime > world.time)
- to_chat(user, "The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].")
+ . += "The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)]."
/obj/structure/destructible/cult/examine_status(mob/user)
if(iscultist(user) || isobserver(user))
diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm
index a9c77567..805b6f82 100644
--- a/code/modules/antagonists/cult/ritual.dm
+++ b/code/modules/antagonists/cult/ritual.dm
@@ -15,12 +15,12 @@ This file contains the cult dagger and rune list code
GLOB.rune_types[initial(R.cultist_name)] = R //Uses the cultist name for displaying purposes
/obj/item/melee/cultblade/dagger/examine(mob/user)
- ..()
+ . = ..()
if(iscultist(user) || isobserver(user))
- to_chat(user, "The scriptures of the Geometer. Allows the scribing of runes and access to the knowledge archives of the cult of Nar'Sie.")
- to_chat(user, "Striking a cult structure will unanchor or reanchor it.")
- to_chat(user, "Striking another cultist with it will purge holy water from them.")
- to_chat(user, "Striking a noncultist, however, will tear their flesh.")
+ . += "The scriptures of the Geometer. Allows the scribing of runes and access to the knowledge archives of the cult of Nar'Sie."
+ . += "Striking a cult structure will unanchor or reanchor it."
+ . += "Striking another cultist with it will purge holy water from them."
+ . += "Striking a noncultist, however, will tear their flesh."
/obj/item/melee/cultblade/dagger/attack(mob/living/M, mob/living/user)
if(iscultist(M))
diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm
index df696a97..c878774d 100644
--- a/code/modules/antagonists/cult/runes.dm
+++ b/code/modules/antagonists/cult/runes.dm
@@ -48,13 +48,13 @@ Runes can either be invoked by one's self or with many different cultists. Each
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "cult_runes", I)
/obj/effect/rune/examine(mob/user)
- ..()
+ . = ..()
if(iscultist(user) || user.stat == DEAD) //If they're a cultist or a ghost, tell them the effects
- to_chat(user, "Name: [cultist_name]")
- to_chat(user, "Effects: [capitalize(cultist_desc)]")
- to_chat(user, "Required Acolytes: [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]")
+ . += "Name: [cultist_name]"
+ . += "Effects: [capitalize(cultist_desc)]"
+ . += "Required Acolytes: [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]"
if(req_keyword && keyword)
- to_chat(user, "Keyword: [keyword]")
+ . += "Keyword: [keyword]"
/obj/effect/rune/attackby(obj/I, mob/user, params)
if(istype(I, /obj/item/melee/cultblade/dagger) && iscultist(user))
@@ -530,10 +530,10 @@ structure_check() searches for nearby cultist structures required for the invoca
var/static/revives_used = -SOULS_TO_REVIVE // Cultists get one "free" revive
/obj/effect/rune/raise_dead/examine(mob/user)
- ..()
+ . = ..()
if(iscultist(user) || user.stat == DEAD)
var/revive_number = LAZYLEN(GLOB.sacrificed) - revives_used
- to_chat(user, "Revives Remaining: [revive_number]")
+ . += "Revives Remaining: [revive_number]"
/obj/effect/rune/raise_dead/invoke(var/list/invokers)
var/turf/T = get_turf(src)
@@ -627,11 +627,11 @@ structure_check() searches for nearby cultist structures required for the invoca
GLOB.wall_runes += src
/obj/effect/rune/wall/examine(mob/user)
- ..()
+ . = ..()
if(density && iscultist(user))
var/datum/timedevent/TMR = active_timers[1]
if(TMR)
- to_chat(user, "The air above this rune has hardened into a barrier that will last [DisplayTimeText(TMR.timeToRun - world.time)].")
+ . += "The air above this rune has hardened into a barrier that will last [DisplayTimeText(TMR.timeToRun - world.time)]."
/obj/effect/rune/wall/Destroy()
GLOB.wall_runes -= src
diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm
index 1df81a79..2c968d4b 100644
--- a/code/modules/antagonists/devil/true_devil/_true_devil.dm
+++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm
@@ -64,26 +64,25 @@
/mob/living/carbon/true_devil/examine(mob/user)
- var/msg = "*---------*\nThis is [icon2html(src, user)] [src]!\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] [src]!")
//Left hand items
for(var/obj/item/I in held_items)
if(!(I.item_flags & ABSTRACT))
- msg += "It is holding [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))].\n"
+ . += "It is holding [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]."
//Braindead
if(!client && stat != DEAD)
- msg += "The devil seems to be in deep contemplation.\n"
+ . += "The devil seems to be in deep contemplation."
//Damaged
if(stat == DEAD)
- msg += "The hellfire seems to have been extinguished, for now at least.\n"
+ . += "The hellfire seems to have been extinguished, for now at least."
else if(health < (maxHealth/10))
- msg += "You can see hellfire inside its gaping wounds.\n"
+ . += "You can see hellfire inside its gaping wounds."
else if(health < (maxHealth/2))
- msg += "You can see hellfire inside its wounds.\n"
- msg += "*---------*"
- to_chat(user, msg)
+ . += "You can see hellfire inside its wounds."
+ . += "*---------*"
/mob/living/carbon/true_devil/IsAdvancedToolUser()
return 1
diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm
index 4d378af7..434ecabf 100644
--- a/code/modules/antagonists/disease/disease_mob.dm
+++ b/code/modules/antagonists/disease/disease_mob.dm
@@ -98,14 +98,14 @@ the new instance inside the host to be updated to the template's stats.
/mob/camera/disease/examine(mob/user)
- ..()
+ . = ..()
if(isobserver(user))
- to_chat(user, "[src] has [points]/[total_points] adaptation points.")
- to_chat(user, "[src] has the following unlocked:")
+ . += "[src] has [points]/[total_points] adaptation points."
+ . += "[src] has the following unlocked:"
for(var/A in purchased_abilities)
var/datum/disease_ability/B = A
if(istype(B))
- to_chat(user, "[B.name]")
+ . += "[B.name]"
/mob/camera/disease/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
return
diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm
index 12f8d228..ad2eb479 100644
--- a/code/modules/antagonists/morph/morph.dm
+++ b/code/modules/antagonists/morph/morph.dm
@@ -52,12 +52,11 @@
/mob/living/simple_animal/hostile/morph/examine(mob/user)
if(morphed)
- form.examine(user) // Refactor examine to return desc so it's static? Not sure if worth it
+ . = form.examine(user)
if(get_dist(user,src)<=3)
- to_chat(user, "It doesn't look quite right...")
+ . += "It doesn't look quite right..."
else
- ..()
- return
+ . = ..()
/mob/living/simple_animal/hostile/morph/med_hud_set_health()
if(morphed && !isliving(form))
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index add3c1d9..69b4f7e9 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -55,9 +55,9 @@
/obj/machinery/nuclearbomb/examine(mob/user)
. = ..()
if(exploding)
- to_chat(user, "It is in the process of exploding. Perhaps reviewing your affairs is in order.")
+ . += "It is in the process of exploding. Perhaps reviewing your affairs is in order."
if(timing)
- to_chat(user, "There are [get_time_left()] seconds until detonation.")
+ . += "There are [get_time_left()] seconds until detonation."
/obj/machinery/nuclearbomb/selfdestruct
name = "station self-destruct terminal"
@@ -472,9 +472,9 @@
/obj/machinery/nuclearbomb/beer/examine(mob/user)
. = ..()
if(keg.reagents.total_volume)
- to_chat(user, "It has [keg.reagents.total_volume] unit\s left.")
+ . += "It has [keg.reagents.total_volume] unit\s left."
else
- to_chat(user, "It's empty.")
+ . += "It's empty."
/obj/machinery/nuclearbomb/beer/attackby(obj/item/W, mob/user, params)
if(W.is_refillable())
@@ -615,7 +615,7 @@ This is here to make the tiles around the station mininuke change when it's arme
var/captain = user.mind && user.mind.assigned_role == "Captain"
var/nukie = user.mind && user.mind.has_antag_datum(/datum/antagonist/nukeop)
if(ghost || captain || nukie)
- to_chat(user, "The serial numbers on [src] are incorrect.")
+ . += "The serial numbers on [src] are incorrect."
/obj/item/disk/nuclear/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/claymore/highlander) && !fake)
diff --git a/code/modules/antagonists/nukeop/equipment/pinpointer.dm b/code/modules/antagonists/nukeop/equipment/pinpointer.dm
index 538feba0..db9ff4e6 100644
--- a/code/modules/antagonists/nukeop/equipment/pinpointer.dm
+++ b/code/modules/antagonists/nukeop/equipment/pinpointer.dm
@@ -2,7 +2,7 @@
var/mode = TRACK_NUKE_DISK
/obj/item/pinpointer/nuke/examine(mob/user)
- ..()
+ . = ..()
var/msg = "Its tracking indicator reads "
switch(mode)
if(TRACK_NUKE_DISK)
@@ -13,10 +13,10 @@
msg += "\"vasvygengbefuvc\"."
else
msg = "Its tracking indicator is blank."
- to_chat(user, msg)
+ . += msg
for(var/obj/machinery/nuclearbomb/bomb in GLOB.machines)
if(bomb.timing)
- to_chat(user, "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()].")
+ . += "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()]."
/obj/item/pinpointer/nuke/process()
..()
diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm
index cea36186..74593190 100644
--- a/code/modules/antagonists/revenant/revenant.dm
+++ b/code/modules/antagonists/revenant/revenant.dm
@@ -368,11 +368,11 @@
scatter()
/obj/item/ectoplasm/revenant/examine(mob/user)
- ..()
+ . = ..()
if(inert)
- to_chat(user, "It seems inert.")
+ . += "It seems inert."
else if(reforming)
- to_chat(user, "It is shifting and distorted. It would be wise to destroy this.")
+ . += "It is shifting and distorted. It would be wise to destroy this."
/obj/item/ectoplasm/revenant/proc/reform()
if(QDELETED(src) || QDELETED(revenant) || inert)
diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm
index 02d78035..aba45b67 100644
--- a/code/modules/antagonists/wizard/equipment/soulstone.dm
+++ b/code/modules/antagonists/wizard/equipment/soulstone.dm
@@ -38,12 +38,12 @@
. = ..()
if(usability || iscultist(user, TRUE) || iswizard(user) || isobserver(user))
if (old_shard)
- to_chat(user, "A soulstone, used to capture a soul, either from dead humans or from freed shades.")
+ . += "A soulstone, used to capture a soul, either from dead humans or from freed shades."
else
- to_chat(user, "A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades.")
- to_chat(user, "The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade.")
+ . += "A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades."
+ . += "The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade."
if(spent)
- to_chat(user, "This shard is spent; it is now just a creepy rock.")
+ . += "This shard is spent; it is now just a creepy rock."
/obj/item/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle.
for(var/mob/living/simple_animal/shade/A in src)
diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index 750c258c..338e50cc 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -549,11 +549,11 @@
var/list/categories = list()
/obj/item/spellbook/examine(mob/user)
- ..()
+ . = ..()
if(owner)
- to_chat(user, "There is a small signature on the front cover: \"[owner]\".")
+ . += "There is a small signature on the front cover: \"[owner]\"."
else
- to_chat(user, "It appears to have no author.")
+ . += "It appears to have no author."
/obj/item/spellbook/Initialize()
. = ..()
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 2e4d877d..1348fcdf 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -112,9 +112,8 @@
return TRUE
/obj/item/assembly/examine(mob/user)
- ..()
- to_chat(user, "\The [src] [secured? "is secured and ready to be used!" : "can be attached to other things."]")
-
+ . = ..()
+ . += "\The [src] [secured? "is secured and ready to be used!" : "can be attached to other things."]"
/obj/item/assembly/attack_self(mob/user)
if(!user)
diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm
index 04b4e3ed..1c9c1a02 100644
--- a/code/modules/assembly/doorcontrol.dm
+++ b/code/modules/assembly/doorcontrol.dm
@@ -8,9 +8,9 @@
var/cooldown = FALSE //Door cooldowns
/obj/item/assembly/control/examine(mob/user)
- ..()
+ . = ..()
if(id)
- to_chat(user, "Its channel ID is '[id]'.")
+ . += "Its channel ID is '[id]'."
/obj/item/assembly/control/activate()
cooldown = TRUE
diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm
index 782d729c..3fca066f 100644
--- a/code/modules/assembly/health.dm
+++ b/code/modules/assembly/health.dm
@@ -11,8 +11,8 @@
var/alarm_health = HEALTH_THRESHOLD_CRIT
/obj/item/assembly/health/examine(mob/user)
- ..()
- to_chat(user, "Use a multitool to swap between \"detect death\" mode and \"detect critical state\" mode.")
+ . = ..()
+ . += "Use a multitool to swap between \"detect death\" mode and \"detect critical state\" mode."
/obj/item/assembly/health/activate()
if(!..())
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index fc60cf2f..a023e0e3 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -38,8 +38,8 @@
. = ..()
/obj/item/assembly/infra/examine(mob/user)
- ..()
- to_chat(user, "The infrared trigger is [on?"on":"off"].")
+ . = ..()
+ . += "The infrared trigger is [on?"on":"off"]."
/obj/item/assembly/infra/activate()
if(!..())
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index c87b4ba7..c67b7947 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -9,8 +9,8 @@
/obj/item/assembly/mousetrap/examine(mob/user)
- ..()
- to_chat(user, "The pressure plate is [armed?"primed":"safe"].")
+ . = ..()
+ . += "The pressure plate is [armed?"primed":"safe"]."
/obj/item/assembly/mousetrap/activate()
if(..())
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index fc109f38..329ea85c 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -21,8 +21,8 @@
. = ..()
/obj/item/assembly/prox_sensor/examine(mob/user)
- ..()
- to_chat(user, "The proximity sensor is [timing ? "arming" : (scanning ? "armed" : "disarmed")].")
+ . = ..()
+ . += "The proximity sensor is [timing ? "arming" : (scanning ? "armed" : "disarmed")]."
/obj/item/assembly/prox_sensor/activate()
if(!..())
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index b4f35641..66da7c76 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -169,8 +169,8 @@ Code:
return TRUE
/obj/item/assembly/signaler/receiver/examine(mob/user)
- ..()
- to_chat(user, "The radio receiver is [on?"on":"off"].")
+ . = ..()
+ . += "The radio receiver is [on?"on":"off"]."
/obj/item/assembly/signaler/receiver/receive_signal(datum/signal/signal)
if(!on)
@@ -206,4 +206,4 @@ Code:
/obj/item/assembly/signaler/cyborg/attackby(obj/item/W, mob/user, params)
return
/obj/item/assembly/signaler/cyborg/screwdriver_act(mob/living/user, obj/item/I)
- return
\ No newline at end of file
+ return
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 5e3a237c..a5c62989 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -31,8 +31,8 @@
. = ..()
/obj/item/assembly/timer/examine(mob/user)
- ..()
- to_chat(user, "The timer is [timing ? "counting down from [time]":"set for [time] seconds"].")
+ . = ..()
+ . += "The timer is [timing ? "counting down from [time]":"set for [time] seconds"]."
/obj/item/assembly/timer/activate()
if(!..())
diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm
index e7b4932e..b54b18eb 100644
--- a/code/modules/assembly/voice.dm
+++ b/code/modules/assembly/voice.dm
@@ -22,8 +22,8 @@
"voice sensor")
/obj/item/assembly/voice/examine(mob/user)
- ..()
- to_chat(user, "Use a multitool to swap between \"inclusive\", \"exclusive\", \"recognizer\", and \"voice sensor\" mode.")
+ . = ..()
+ . += "Use a multitool to swap between \"inclusive\", \"exclusive\", \"recognizer\", and \"voice sensor\" mode."
/obj/item/assembly/voice/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)
. = ..()
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index 2db7d5f7..365cc738 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -222,11 +222,11 @@
. = ..()
switch(buildstage)
if(0)
- to_chat(user, "It is missing air alarm electronics.")
+ . += "It is missing air alarm electronics."
if(1)
- to_chat(user, "It is missing wiring.")
+ . += "It is missing wiring."
if(2)
- to_chat(user, "Alt-click to [locked ? "unlock" : "lock"] the interface.")
+ . += "Alt-click to [locked ? "unlock" : "lock"] the interface."
/obj/machinery/airalarm/ui_status(mob/user)
if(user.has_unlimited_silicon_privilege && aidisabled)
diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm
index 3c2b2007..e531be20 100644
--- a/code/modules/atmospherics/machinery/atmosmachinery.dm
+++ b/code/modules/atmospherics/machinery/atmosmachinery.dm
@@ -42,11 +42,11 @@ Pipelines + Other Objects -> Pipe network
var/on = FALSE
/obj/machinery/atmospherics/examine(mob/user)
- ..()
+ . = ..()
if(is_type_in_list(src, GLOB.ventcrawl_machinery) && isliving(user))
var/mob/living/L = user
if(L.ventcrawler)
- to_chat(L, "Alt-click to crawl through it.")
+ . += "Alt-click to crawl through it."
/obj/machinery/atmospherics/New(loc, process = TRUE, setdir)
if(!isnull(setdir))
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
index 1de5b933..b95b15ef 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
@@ -30,8 +30,8 @@ Thus, the two variables affect pump operation are set in New():
/obj/machinery/atmospherics/components/binary/pump/examine(mob/user)
. = ..()
- to_chat(user,"You can hold Ctrl and click on it to toggle it on and off.")
- to_chat(user,"You can hold Alt and click on it to maximize its pressure.")
+ . += "You can hold Ctrl and click on it to toggle it on and off."
+ . += "You can hold Alt and click on it to maximize its pressure."
/obj/machinery/atmospherics/components/binary/pump/CtrlClick(mob/user)
var/area/A = get_area(src)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
index f2d13062..194231b1 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
@@ -31,8 +31,8 @@ Thus, the two variables affect pump operation are set in New():
/obj/machinery/atmospherics/components/binary/volume_pump/examine(mob/user)
. = ..()
- to_chat(user,"You can hold Ctrl and click on it to toggle it on and off.")
- to_chat(user,"You can hold Alt and click on it to maximize its pressure.")
+ . += "You can hold Ctrl and click on it to toggle it on and off."
+ . += "You can hold Alt and click on it to maximize its pressure."
if(overclocked)
to_chat(user,"Its warning light is on" + (on ? " and it's spewing gas!" : "."))
@@ -234,4 +234,4 @@ Thus, the two variables affect pump operation are set in New():
else
overclocked = FALSE
to_chat(user, "The pump quiets down as you turn its limiters back on.")
- return TRUE
\ No newline at end of file
+ return TRUE
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
index 6f8774c4..7ac329be 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
@@ -14,8 +14,8 @@
/obj/machinery/atmospherics/components/trinary/filter/examine(mob/user)
. = ..()
- to_chat(user,"You can hold Ctrl and click on it to toggle it on and off.")
- to_chat(user,"You can hold Alt and click on it to maximize its pressure.")
+ . += "You can hold Ctrl and click on it to toggle it on and off."
+ . += "You can hold Alt and click on it to maximize its pressure."
/obj/machinery/atmospherics/components/trinary/filter/CtrlClick(mob/user)
var/area/A = get_area(src)
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
index fc866c3d..9e4deaf3 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
@@ -16,8 +16,8 @@
//node 3 is the outlet, nodes 1 & 2 are intakes
/obj/machinery/atmospherics/components/trinary/mixer/examine(mob/user)
. = ..()
- to_chat(user,"You can hold Ctrl and click on it to toggle it on and off.")
- to_chat(user,"You can hold Alt and click on it to maximize its pressure.")
+ . += "You can hold Ctrl and click on it to toggle it on and off."
+ . += "You can hold Alt and click on it to maximize its pressure."
/obj/machinery/atmospherics/components/trinary/mixer/CtrlClick(mob/user)
var/area/A = get_area(src)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index f94e023b..2ec683e9 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -262,14 +262,14 @@
open_machine()
/obj/machinery/atmospherics/components/unary/cryo_cell/examine(mob/user)
- ..()
+ . = ..()
if(occupant)
if(on)
- to_chat(user, "Someone's inside [src]!")
+ . += "Someone's inside [src]!"
else
- to_chat(user, "You can barely make out a form floating in [src].")
+ . += "You can barely make out a form floating in [src]."
else
- to_chat(user, "[src] seems empty.")
+ . += "[src] seems empty."
/obj/machinery/atmospherics/components/unary/cryo_cell/MouseDrop_T(mob/target, mob/user)
if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser())
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index 5b37242c..75f2a60f 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -424,9 +424,9 @@
return FALSE
/obj/machinery/atmospherics/components/unary/vent_pump/examine(mob/user)
- ..()
+ . = ..()
if(welded)
- to_chat(user, "It seems welded shut.")
+ . += "It seems welded shut."
/obj/machinery/atmospherics/components/unary/vent_pump/power_change()
..()
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index 2a9f6d92..14b27bd4 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -305,9 +305,9 @@
return FALSE
/obj/machinery/atmospherics/components/unary/vent_scrubber/examine(mob/user)
- ..()
+ . = ..()
if(welded)
- to_chat(user, "It seems welded shut.")
+ . += "It seems welded shut."
/obj/machinery/atmospherics/components/unary/vent_scrubber/can_crawl_through()
return !welded
diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm
index 5a9f7fa4..f258eb64 100644
--- a/code/modules/atmospherics/machinery/other/meter.dm
+++ b/code/modules/atmospherics/machinery/other/meter.dm
@@ -111,8 +111,8 @@
. = "The connect error light is blinking."
/obj/machinery/meter/examine(mob/user)
- ..()
- to_chat(user, status())
+ . = ..()
+ . += status()
/obj/machinery/meter/wrench_act(mob/user, obj/item/I)
to_chat(user, "You begin to unfasten \the [src]...")
diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm
index adb17b4e..c90d388a 100644
--- a/code/modules/atmospherics/machinery/other/miner.dm
+++ b/code/modules/atmospherics/machinery/other/miner.dm
@@ -33,9 +33,9 @@
set_active(active) //Force overlay update.
/obj/machinery/atmospherics/miner/examine(mob/user)
- ..()
+ . = ..()
if(broken)
- to_chat(user, "Its debug output is printing \"[broken_message]\".")
+ . += "Its debug output is printing \"[broken_message]\"."
/obj/machinery/atmospherics/miner/proc/check_operation()
if(!active)
diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
index 24f1e0b6..7e313fd7 100644
--- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
+++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
@@ -88,10 +88,10 @@
replace_tank(user, TRUE)
/obj/machinery/portable_atmospherics/examine(mob/user)
- ..()
+ . = ..()
if(holding)
- to_chat(user, "\The [src] contains [holding]. Alt-click [src] to remove it.")
- to_chat(user, "Click [src] with another gas tank to hot swap [holding].")
+ . += "\The [src] contains [holding]. Alt-click [src] to remove it."
+ . += "Click [src] with another gas tank to hot swap [holding]."
/obj/machinery/portable_atmospherics/proc/replace_tank(mob/living/user, close_valve, obj/item/tank/new_tank)
if(holding)
diff --git a/code/modules/cargo/export_scanner.dm b/code/modules/cargo/export_scanner.dm
index 6a294c9e..06173335 100644
--- a/code/modules/cargo/export_scanner.dm
+++ b/code/modules/cargo/export_scanner.dm
@@ -12,9 +12,9 @@
var/obj/machinery/computer/cargo/cargo_console = null
/obj/item/export_scanner/examine(user)
- ..()
+ . = ..()
if(!cargo_console)
- to_chat(user, "[src] is not currently linked to a cargo console.")
+ . += "[src] is not currently linked to a cargo console."
/obj/item/export_scanner/afterattack(obj/O, mob/user, proximity)
. = ..()
diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm
index 3c82722f..915d671f 100644
--- a/code/modules/cargo/supplypod_beacon.dm
+++ b/code/modules/cargo/supplypod_beacon.dm
@@ -45,11 +45,11 @@
update_status()
/obj/item/supplypod_beacon/examine(user)
- ..()
+ . = ..()
if(!express_console)
- to_chat(user, "[src] is not currently linked to a Express Supply console.")
+ . += "[src] is not currently linked to a Express Supply console."
else
- to_chat(user, "Alt-click to unlink it from the Express Supply console.")
+ . += "Alt-click to unlink it from the Express Supply console."
/obj/item/supplypod_beacon/Destroy()
if(express_console)
@@ -61,7 +61,7 @@
express_console.beacon = null
express_console = null
update_status(SP_UNLINK)
- update_status(SP_UNREADY)
+ update_status(SP_UNREADY)
/obj/item/supplypod_beacon/proc/link_console(obj/machinery/computer/cargo/express/C, mob/living/user)
if (C.beacon)//if new console has a beacon, then...
@@ -91,5 +91,5 @@
if(new_beacon_name)
name += " ([tag])"
return
- else
+ else
return ..()
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 2492ef3e..0706f77e 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -136,9 +136,9 @@
user.vv_edit_var(variable, user_vars_to_edit[variable])
/obj/item/clothing/examine(mob/user)
- ..()
+ . = ..()
if(damaged_clothes)
- to_chat(user, "It looks damaged!")
+ . += "It looks damaged!"
GET_COMPONENT(pockets, /datum/component/storage)
if(pockets)
var/list/how_cool_are_your_threads = list("")
@@ -153,7 +153,7 @@
if(pockets.silent)
how_cool_are_your_threads += "Adding or removing items from [src] makes no noise.\n"
how_cool_are_your_threads += ""
- to_chat(user, how_cool_are_your_threads.Join())
+ . += how_cool_are_your_threads.Join()
/obj/item/clothing/obj_break(damage_flag)
if(!damaged_clothes)
@@ -405,4 +405,4 @@ BLIND // can't see anything
to_chat(M, "Your species cannot wear [src].")
return FALSE
- return TRUE
\ No newline at end of file
+ return TRUE
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 513cfd3e..225d75f4 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -23,9 +23,9 @@
return BRUTELOSS
/obj/item/clothing/glasses/examine(mob/user)
- ..()
+ . = ..()
if(glass_colour_type && ishuman(user))
- to_chat(user, "Alt-click to toggle its colors.")
+ . += "Alt-click to toggle its colors."
/obj/item/clothing/glasses/visor_toggling()
..()
@@ -335,7 +335,7 @@
desc = replacetext(desc, "person", "man")
else if(user.gender == FEMALE)
desc = replacetext(desc, "person", "woman")
- ..()
+ . = ..()
desc = desk
/obj/item/clothing/glasses/thermal/eyepatch
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 362e245f..fcac7874 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -90,8 +90,8 @@
new /obj/item/reagent_containers/food/drinks/flask/det(src)
/obj/item/clothing/head/fedora/det_hat/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to take a candy corn.")
+ . = ..()
+ . += "Alt-click to take a candy corn."
/obj/item/clothing/head/fedora/det_hat/AltClick(mob/user)
if(user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index cdd506bd..a87b0f30 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -41,8 +41,8 @@
usr.update_inv_head() //so our mob-overlays update
/obj/item/clothing/head/soft/examine(mob/user)
- ..()
- to_chat(user, "Alt-click the cap to flip it [flipped ? "forwards" : "backwards"].")
+ . = ..()
+ . += "Alt-click the cap to flip it [flipped ? "forwards" : "backwards"]."
/obj/item/clothing/head/soft/red
name = "red cap"
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index c1b2d9e2..bf98035b 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -30,8 +30,8 @@
adjustmask(user)
/obj/item/clothing/mask/breath/examine(mob/user)
- ..()
- to_chat(user, "Alt-click [src] to adjust it.")
+ . = ..()
+ . += "Alt-click [src] to adjust it."
/obj/item/clothing/mask/breath/medical
desc = "A close-fitting sterile mask that can be connected to an air supply."
diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm
index b6348948..979db7e0 100644
--- a/code/modules/clothing/shoes/bananashoes.dm
+++ b/code/modules/clothing/shoes/bananashoes.dm
@@ -38,8 +38,8 @@
to_chat(user, "You cannot retrieve any bananium from the prototype shoes.")
/obj/item/clothing/shoes/clown_shoes/banana_shoes/examine(mob/user)
- ..()
- to_chat(user, "The shoes are [on ? "enabled" : "disabled"].")
+ . = ..()
+ . += "The shoes are [on ? "enabled" : "disabled"]."
/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user)
GET_COMPONENT(bananium, /datum/component/material_container)
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 6e4833d4..53cdd733 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -40,9 +40,8 @@
return clothing_flags & NOSLIP
/obj/item/clothing/shoes/magboots/examine(mob/user)
- ..()
- to_chat(user, "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"].")
-
+ . = ..()
+ . += "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"]."
/obj/item/clothing/shoes/magboots/advance
desc = "Advanced magnetic boots that have a lighter magnetic pull, placing less burden on the wearer."
diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm
index b105b722..123927bb 100644
--- a/code/modules/clothing/spacesuits/flightsuit.dm
+++ b/code/modules/clothing/spacesuits/flightsuit.dm
@@ -799,10 +799,10 @@
to_chat(targ, "[icon2html(src, targ)]|[message]")
/obj/item/clothing/suit/space/hardsuit/flightsuit/examine(mob/user)
- ..()
- to_chat(user, "SUIT: [locked ? "LOCKED" : "UNLOCKED"]")
- to_chat(user, "FLIGHTPACK: [deployedpack ? "ENGAGED" : "DISENGAGED"] FLIGHTSHOES : [deployedshoes ? "ENGAGED" : "DISENGAGED"] HELMET : [suittoggled ? "ENGAGED" : "DISENGAGED"]")
- to_chat(user, "Its maintainence panel is [maint_panel ? "OPEN" : "CLOSED"]")
+ . = ..()
+ . += "SUIT: [locked ? "LOCKED" : "UNLOCKED"]"
+ . += "FLIGHTPACK: [deployedpack ? "ENGAGED" : "DISENGAGED"] FLIGHTSHOES : [deployedshoes ? "ENGAGED" : "DISENGAGED"] HELMET : [suittoggled ? "ENGAGED" : "DISENGAGED"]"
+ . += "Its maintainence panel is [maint_panel ? "OPEN" : "CLOSED"]"
/obj/item/clothing/suit/space/hardsuit/flightsuit/Destroy()
dropped()
diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm
index 5d534e00..7d91b2f7 100644
--- a/code/modules/clothing/suits/toggles.dm
+++ b/code/modules/clothing/suits/toggles.dm
@@ -120,8 +120,8 @@
A.UpdateButtonIcon()
/obj/item/clothing/suit/toggle/examine(mob/user)
- ..()
- to_chat(user, "Alt-click on [src] to toggle the [togglename].")
+ . = ..()
+ . += "Alt-click on [src] to toggle the [togglename]."
//Hardsuit toggle code
/obj/item/clothing/suit/space/hardsuit/Initialize()
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index 9692290b..422be6e3 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -137,23 +137,23 @@
/obj/item/clothing/under/examine(mob/user)
- ..()
+ . = ..()
if(can_adjust)
if(adjusted == ALT_STYLE)
- to_chat(user, "Alt-click on [src] to wear it normally.")
+ . += "Alt-click on [src] to wear it normally."
else
- to_chat(user, "Alt-click on [src] to wear it casually.")
+ . += "Alt-click on [src] to wear it casually."
if (has_sensor == BROKEN_SENSORS)
- to_chat(user, "Its sensors appear to be shorted out.")
+ . += "Its sensors appear to be shorted out."
else if(has_sensor > NO_SENSORS)
switch(sensor_mode)
if(SENSOR_OFF)
- to_chat(user, "Its sensors appear to be disabled.")
+ . += "Its sensors appear to be disabled."
if(SENSOR_LIVING)
- to_chat(user, "Its binary life sensors appear to be enabled.")
+ . += "Its binary life sensors appear to be enabled."
if(SENSOR_VITALS)
- to_chat(user, "Its vital tracker appears to be enabled.")
+ . += "Its vital tracker appears to be enabled."
if(SENSOR_COORDS)
- to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.")
+ . += "Its vital tracker and tracking beacon appear to be enabled."
if(attached_accessory)
- to_chat(user, "\A [attached_accessory] is attached to it.")
\ No newline at end of file
+ . += "\A [attached_accessory] is attached to it."
diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm
index 6535e40d..dc5372cf 100644
--- a/code/modules/clothing/under/accessories.dm
+++ b/code/modules/clothing/under/accessories.dm
@@ -73,10 +73,10 @@
to_chat(user, "[src] will be worn [above_suit ? "above" : "below"] your suit.")
/obj/item/clothing/accessory/examine(mob/user)
- ..()
- to_chat(user, "\The [src] can be attached to a uniform. Alt-click to remove it once attached.")
+ . = ..()
+ . += "\The [src] can be attached to a uniform. Alt-click to remove it once attached."
if(initial(above_suit))
- to_chat(user, "\The [src] can be worn above or below your suit. Alt-click to toggle.")
+ . += "\The [src] can be worn above or below your suit. Alt-click to toggle."
/obj/item/clothing/accessory/waistcoat
name = "waistcoat"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 7b7b1f53..a65c23fe 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -612,8 +612,9 @@
var/extinguish_cooldown = 100
var/extinguishes_left = 5
/obj/item/clothing/under/plasmaman/examine(mob/user)
- ..()
- to_chat(user, "There are [extinguishes_left] extinguisher charges left in this suit.")
+ . = ..()
+ . += "There are [extinguishes_left] extinguisher charges left in this suit."
+
/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
if(!istype(H))
return
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index b4782390..f9cd1256 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -193,9 +193,9 @@
log = list()
/obj/item/detective_scanner/examine(mob/user)
- ..()
+ . = ..()
if(LAZYLEN(log) && !scanning)
- to_chat(user, "Alt-click to clear scanner logs.")
+ . += "Alt-click to clear scanner logs."
/obj/item/detective_scanner/proc/displayDetectiveScanResults(mob/living/user)
// No need for can-use checks since the action button should do proper checks
diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm
index 8f77af58..a95bd2fd 100644
--- a/code/modules/events/holiday/vday.dm
+++ b/code/modules/events/holiday/vday.dm
@@ -138,6 +138,7 @@
name = "valentine - To: [recipient] From: [sender]"
/obj/item/valentine/examine(mob/user)
+ . = ..()
if(in_range(user, src) || isobserver(user))
if( !(ishuman(user) || isobserver(user) || issilicon(user)) )
user << browse("[name][stars(message)]", "window=[name]")
@@ -146,7 +147,7 @@
user << browse("[name][message]", "window=[name]")
onclose(user, "[name]")
else
- to_chat(user, "It is too far away.")
+ . += "It is too far away."
/obj/item/valentine/attack_self(mob/user)
user.examinate(src)
diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm
index c4372244..8b53d7df 100644
--- a/code/modules/events/spacevine.dm
+++ b/code/modules/events/spacevine.dm
@@ -292,7 +292,7 @@
add_atom_colour("#ffffff", FIXED_COLOUR_PRIORITY)
/obj/structure/spacevine/examine(mob/user)
- ..()
+ . = ..()
var/text = "This one is a"
if(mutations.len)
for(var/A in mutations)
@@ -301,7 +301,7 @@
else
text += " normal"
text += " vine."
- to_chat(user, text)
+ . += text
/obj/structure/spacevine/Destroy()
for(var/datum/spacevine_mutation/SM in mutations)
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 3eeb5b94..df5e6a87 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -22,7 +22,7 @@
var/customname = "custom"
/obj/item/reagent_containers/food/snacks/customizable/examine(mob/user)
- ..()
+ . = ..()
var/ingredients_listed = ""
for(var/obj/item/reagent_containers/food/snacks/ING in ingredients)
ingredients_listed += "[ING.name], "
@@ -33,7 +33,7 @@
size = "big"
if(ingredients.len>8)
size = "monster"
- to_chat(user, "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)].")
+ . += "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)]."
/obj/item/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user, params)
if(!istype(I, /obj/item/reagent_containers/food/snacks/customizable) && istype(I, /obj/item/reagent_containers/food/snacks))
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index 7eea6fb9..44cf59d2 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -151,15 +151,15 @@ All foods are distributed among various categories. Use common sense.
return 0
/obj/item/reagent_containers/food/snacks/examine(mob/user)
- ..()
+ . = ..()
if(bitecount == 0)
return
else if(bitecount == 1)
- to_chat(user, "[src] was bitten by someone!")
+ . += "[src] was bitten by someone!"
else if(bitecount <= 3)
- to_chat(user, "[src] was bitten [bitecount] times!")
+ . += "[src] was bitten [bitecount] times!"
else
- to_chat(user, "[src] was bitten multiple times!")
+ . += "[src] was bitten multiple times!"
/obj/item/reagent_containers/food/snacks/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 9b870027..b8797783 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -449,11 +449,11 @@
if (pancakeCount)
var/obj/item/reagent_containers/food/snacks/S = contents[pancakeCount]
bitecount = S.bitecount
- ..()
+ . = ..()
if (pancakeCount)
for(var/obj/item/reagent_containers/food/snacks/pancakes/ING in contents)
ingredients_listed += "[ING.name], "
- to_chat(user, "It contains [contents.len?"[ingredients_listed]":"no ingredient, "]on top of a [initial(name)].")
+ . += "It contains [contents.len?"[ingredients_listed]":"no ingredient, "]on top of a [initial(name)]."
bitecount = originalBites
/obj/item/reagent_containers/food/snacks/pancakes/attackby(obj/item/I, mob/living/user, params)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
index 0755fdc7..ff803b5f 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
@@ -67,9 +67,9 @@ God bless America.
fry_speed = oil_efficiency
/obj/machinery/deepfryer/examine()
- ..()
+ . = ..()
if(frying)
- to_chat(usr, "You can make out \a [frying] in the oil.")
+ . += "You can make out \a [frying] in the oil."
/obj/machinery/deepfryer/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/reagent_containers/pill))
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index 6fcc5c9c..e67de927 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -53,20 +53,20 @@
/obj/machinery/microwave/examine(mob/user)
. = ..()
if(!operating)
- to_chat(user, "Alt-click [src] to turn it on.")
+ . += "Alt-click [src] to turn it on."
if(!in_range(user, src) && !issilicon(user) && !isobserver(user))
- to_chat(user, "You're too far away to examine [src]'s contents and display!")
+ . += "You're too far away to examine [src]'s contents and display!"
return
if(operating)
- to_chat(user, "\The [src] is operating.")
+ . += "\The [src] is operating."
return
if(length(ingredients))
if(issilicon(user))
- to_chat(user, "\The [src] camera shows:")
+ . += "\The [src] camera shows:"
else
- to_chat(user, "\The [src] contains:")
+ . += "\The [src] contains:"
var/list/items_counts = new
for(var/i in ingredients)
if(istype(i, /obj/item/stack))
@@ -76,14 +76,14 @@
var/atom/movable/AM = i
items_counts[AM.name]++
for(var/O in items_counts)
- to_chat(user, "- [items_counts[O]]x [O].")
+ . += "- [items_counts[O]]x [O]."
else
- to_chat(user, "\The [src] is empty.")
+ . += "\The [src] is empty."
if(!(stat & (NOPOWER|BROKEN)))
- to_chat(user, "The status display reads:")
- to_chat(user, "- Capacity: [max_n_of_items] items.")
- to_chat(user, "- Cook time reduced by [(efficiency - 1) * 25]%.")
+ . += "The status display reads:"
+ . += "- Capacity: [max_n_of_items] items."
+ . += "- Cook time reduced by [(efficiency - 1) * 25]%."
/obj/machinery/microwave/update_icon()
if(broken)
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index d0bdbb8b..7c2b6719 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -319,9 +319,9 @@
pizza_preferences = list()
/obj/item/pizzabox/infinite/examine(mob/user)
- ..()
+ . = ..()
if(isobserver(user))
- to_chat(user, "This pizza box is anomalous, and will produce infinite pizza.")
+ . += "This pizza box is anomalous, and will produce infinite pizza."
/obj/item/pizzabox/infinite/attack_self(mob/living/user)
QDEL_NULL(pizza)
diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm
index 8953753a..fe038ce3 100644
--- a/code/modules/games/cas.dm
+++ b/code/modules/games/cas.dm
@@ -107,14 +107,14 @@
var/buffertext = "A funny bit of text."
/obj/item/toy/cards/singlecard/cas/examine(mob/user)
- ..()
+ . = ..()
if (flipped)
- to_chat(user, "The card is face down.")
+ . += "The card is face down."
else if (blank)
- to_chat(user, "The card is blank. Write on it with a pen.")
+ . += "The card is blank. Write on it with a pen."
else
- to_chat(user, "The card reads: [name]")
- to_chat(user, "Alt-click to flip it.")
+ . += "The card reads: [name]"
+ . += "Alt-click to flip it."
/obj/item/toy/cards/singlecard/cas/Flip()
set name = "Flip Card"
diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm
index ac3886b8..a0696e1f 100644
--- a/code/modules/goonchat/browserOutput.dm
+++ b/code/modules/goonchat/browserOutput.dm
@@ -1,3 +1,4 @@
+
/*********************************
For the main html chat area
*********************************/
@@ -8,6 +9,8 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
//On client, created on login
/datum/chatOutput
var/client/owner //client ref
+ var/total_checks = 0
+ var/last_check = 0
var/loaded = FALSE // Has the client loaded the browser output area?
var/list/messageQueue //If they haven't loaded chat, this is where messages will go until they do
var/cookieSent = FALSE // Has the client sent a cookie for analysis
@@ -150,6 +153,18 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
//Called by client, sent data to investigate (cookie history so far)
/datum/chatOutput/proc/analyzeClientData(cookie = "")
+ //Spam check
+ if(world.time > last_check + (3 SECONDS))
+ last_check = world.time
+ total_checks = 0
+
+ total_checks += 1
+
+ if(total_checks > SPAM_TRIGGER_AUTOMUTE)
+ message_admins("[key_name(owner)] kicked for goonchat topic spam")
+ qdel(owner)
+ return
+
if(!cookie)
return
@@ -158,13 +173,22 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
if (connData && islist(connData) && connData.len > 0 && connData["connData"])
connectionHistory = connData["connData"] //lol fuck
var/list/found = new()
- for(var/i in connectionHistory.len to 1 step -1)
+ if(connectionHistory.len > 5)
+ message_admins("[key_name(src.owner)] was kicked for an invalid ban cookie)")
+ qdel(owner)
+ return
+
+ for(var/i in min(connectionHistory.len, 5) to 1 step -1)
+ if(QDELETED(owner))
+ //he got cleaned up before we were done
+ return
var/list/row = src.connectionHistory[i]
if (!row || row.len < 3 || (!row["ckey"] || !row["compid"] || !row["ip"])) //Passed malformed history object
return
if (world.IsBanned(row["ckey"], row["ip"], row["compid"], real_bans_only=TRUE))
found = row
break
+ CHECK_TICK
//Uh oh this fucker has a history of playing on a banned account!!
if (found.len > 0)
@@ -253,4 +277,10 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
if(Master.current_runlevel == RUNLEVEL_INIT || !SSchat?.initialized)
to_chat_immediate(target, message, handle_whitespace)
return
- SSchat.queue(target, message, handle_whitespace)
\ No newline at end of file
+ SSchat.queue(target, message, handle_whitespace)
+
+/datum/chatOutput/proc/swaptolightmode() //Dark mode light mode stuff. Yell at KMC if this breaks! (See darkmode.dm for documentation)
+ owner.force_white_theme()
+
+/datum/chatOutput/proc/swaptodarkmode()
+ owner.force_dark_theme()
diff --git a/code/modules/goonchat/browserassets/js/browserOutput.js b/code/modules/goonchat/browserassets/js/browserOutput.js
index 06e735d1..823ad107 100644
--- a/code/modules/goonchat/browserassets/js/browserOutput.js
+++ b/code/modules/goonchat/browserassets/js/browserOutput.js
@@ -30,7 +30,7 @@ var opts = {
'scrollSnapTolerance': 10, //If within x pixels of bottom
'clickTolerance': 10, //Keep focus if outside x pixels of mousedown position on mouseup
'imageRetryDelay': 50, //how long between attempts to reload images (in ms)
- 'imageRetryLimit': 50, //how many attempts should we make?
+ 'imageRetryLimit': 50, //how many attempts should we make?
'popups': 0, //Amount of popups opened ever
'wasd': false, //Is the user in wasd mode?
'priorChatHeight': 0, //Thing for height-resizing detection
@@ -173,7 +173,7 @@ function byondDecode(message) {
// The replace for + is because FOR SOME REASON, BYOND replaces spaces with a + instead of %20, and a plus with %2b.
// Marvelous.
message = message.replace(/\+/g, "%20");
- try {
+ try {
// This is a workaround for the above not always working when BYOND's shitty url encoding breaks. (byond bug id:2399401)
if (decodeURIComponent) {
message = decodeURIComponent(message);
@@ -993,7 +993,7 @@ $(function() {
$messages.empty();
opts.messageCount = 0;
});
-
+
$('#changeColorPreset').click(function() {
opts.colorPreset = (opts.colorPreset+1) % colorPresets.length;
updateColorPreset();
diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm
index e26dab07..3c4ed776 100644
--- a/code/modules/hydroponics/beekeeping/beebox.dm
+++ b/code/modules/hydroponics/beekeeping/beebox.dm
@@ -123,26 +123,25 @@
/obj/structure/beebox/examine(mob/user)
- ..()
+ . = ..()
if(!queen_bee)
- to_chat(user, "There is no queen bee! There won't bee any honeycomb without a queen!")
+ . += "There is no queen bee! There won't bee any honeycomb without a queen!"
var/half_bee = get_max_bees()*0.5
if(half_bee && (bees.len >= half_bee))
- to_chat(user, "This place is aBUZZ with activity... there are lots of bees!")
+ . += "This place is aBUZZ with activity... there are lots of bees!"
- to_chat(user, "[bee_resources]/100 resource supply.")
- to_chat(user, "[bee_resources]% towards a new honeycomb.")
- to_chat(user, "[bee_resources*2]% towards a new bee.")
+ . += "[bee_resources]/100 resource supply."
+ . += "[bee_resources]% towards a new honeycomb."
+ . += "[bee_resources*2]% towards a new bee."
if(honeycombs.len)
var/plural = honeycombs.len > 1
- to_chat(user, "There [plural? "are" : "is"] [honeycombs.len] uncollected honeycomb[plural ? "s":""] in the apiary.")
+ . += "There [plural? "are" : "is"] [honeycombs.len] uncollected honeycomb[plural ? "s":""] in the apiary."
if(honeycombs.len >= get_max_honeycomb())
- to_chat(user, "There's no room for more honeycomb!")
-
+ . += "There's no room for more honeycomb!"
/obj/structure/beebox/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/honey_frame))
diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm
index 83fc18dc..f253c06b 100644
--- a/code/modules/hydroponics/fermenting_barrel.dm
+++ b/code/modules/hydroponics/fermenting_barrel.dm
@@ -16,7 +16,7 @@
/obj/structure/fermenting_barrel/examine(mob/user)
. = ..()
- to_chat(user, "It is currently [open?"open, letting you pour liquids in.":"closed, letting you draw liquids from the tap."]")
+ . += "It is currently [open?"open, letting you pour liquids in.":"closed, letting you draw liquids from the tap."]"
/obj/structure/fermenting_barrel/proc/makeWine(obj/item/reagent_containers/food/snacks/grown/fruit)
if(fruit.reagents)
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 8695bf2c..ec023728 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -440,7 +440,7 @@
to_chat(user, "You flip the write-protect tab to [src.read_only ? "protected" : "unprotected"].")
/obj/item/disk/plantgene/examine(mob/user)
- ..()
+ . = ..()
if(gene && (istype(gene, /datum/plant_gene/core/potency)))
- to_chat(user,"Percent is relative to potency, not maximum volume of the plant.")
- to_chat(user, "The write-protect tab is set to [src.read_only ? "protected" : "unprotected"].")
+ . += "Percent is relative to potency, not maximum volume of the plant."
+ . += "The write-protect tab is set to [src.read_only ? "protected" : "unprotected"]."
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 45df4ba8..6961a1cb 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -56,11 +56,11 @@
return 0
/obj/item/reagent_containers/food/snacks/grown/examine(user)
- ..()
+ . = ..()
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
if(T.examine_line)
- to_chat(user, T.examine_line)
+ . += T.examine_line
/obj/item/reagent_containers/food/snacks/grown/attackby(obj/item/O, mob/user, params)
..()
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 6a02254d..3167c495 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -319,33 +319,31 @@
/obj/machinery/hydroponics/examine(user)
- ..()
+ . = ..()
if(myseed)
- to_chat(user, "It has [myseed.plantname] planted.")
+ . += "It has [myseed.plantname] planted."
if (dead)
- to_chat(user, "It's dead!")
+ . += "It's dead!"
else if (harvest)
- to_chat(user, "It's ready to harvest.")
+ . += "It's ready to harvest."
else if (plant_health <= (myseed.endurance / 2))
- to_chat(user, "It looks unhealthy.")
+ . += "It looks unhealthy."
else
- to_chat(user, "It's empty.")
+ . += "It's empty."
if(!self_sustaining)
- to_chat(user, "Water: [waterlevel]/[maxwater].")
- to_chat(user, "Nutrient: [nutrilevel]/[maxnutri].")
+ . += "Water: [waterlevel]/[maxwater]."
+ . += "Nutrient: [nutrilevel]/[maxnutri]."
if(self_sufficiency_progress > 0)
var/percent_progress = round(self_sufficiency_progress * 100 / self_sufficiency_req)
- to_chat(user, "Treatment for self-sustenance are [percent_progress]% complete.")
+ . += "Treatment for self-sustenance are [percent_progress]% complete."
else
- to_chat(user, "It doesn't require any water or nutrients.")
+ . += "It doesn't require any water or nutrients."
if(weedlevel >= 5)
- to_chat(user, "It's filled with weeds!")
+ . += "It's filled with weeds!"
if(pestlevel >= 5)
- to_chat(user, "It's filled with tiny worms!")
- to_chat(user, "" )
-
+ . += "It's filled with tiny worms!"
/obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient, this happens.
dead = 0
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index 6b620b48..c9d164c6 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -70,16 +70,16 @@
/obj/item/electronic_assembly/examine(mob/user)
. = ..()
if(can_anchor)
- to_chat(user, "The anchoring bolts [anchored ? "are" : "can be"] wrenched in place and the maintenance panel [opened ? "can be" : "is"] screwed in place.")
+ . += "The anchoring bolts [anchored ? "are" : "can be"] wrenched in place and the maintenance panel [opened ? "can be" : "is"] screwed in place."
else
- to_chat(user, "The maintenance panel [opened ? "can be" : "is"] screwed in place.")
+ . += "The maintenance panel [opened ? "can be" : "is"] screwed in place."
if((isobserver(user) && ckeys_allowed_to_scan[user.ckey]) || IsAdminGhost(user))
- to_chat(user, "You can scan this circuit.")
+ . += "You can scan this circuit."
for(var/I in assembly_components)
var/obj/item/integrated_circuit/IC = I
- IC.external_examine(user)
+ . += IC.external_examine(user)
if(opened)
interact(user)
diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm
index 60b2d048..cec3e234 100644
--- a/code/modules/integrated_electronics/core/integrated_circuit.dm
+++ b/code/modules/integrated_electronics/core/integrated_circuit.dm
@@ -26,8 +26,8 @@
var/displayed_name = ""
var/demands_object_input = FALSE
var/can_input_object_when_closed = FALSE
-
-
+
+
/*
Integrated circuits are essentially modular machines. Each circuit has a specific function, and combining them inside Electronic Assemblies allows
a creative player the means to solve many problems. Circuits are held inside an electronic assembly, and are wired using special tools.
@@ -35,8 +35,8 @@ a creative player the means to solve many problems. Circuits are held inside an
/obj/item/integrated_circuit/examine(mob/user)
interact(user)
- external_examine(user)
. = ..()
+ . += external_examine(user)
// Can be called via electronic_assembly/attackby()
/obj/item/integrated_circuit/proc/additem(var/obj/item/I, var/mob/living/user)
@@ -62,7 +62,7 @@ a creative player the means to solve many problems. Circuits are held inside an
// This should be used when someone is examining from an 'outside' perspective, e.g. reading a screen or LED.
/obj/item/integrated_circuit/proc/external_examine(mob/user)
- any_examine(user)
+ return any_examine(user)
/obj/item/integrated_circuit/proc/any_examine(mob/user)
return
diff --git a/code/modules/integrated_electronics/subtypes/memory.dm b/code/modules/integrated_electronics/subtypes/memory.dm
index 93d80080..34c36883 100644
--- a/code/modules/integrated_electronics/subtypes/memory.dm
+++ b/code/modules/integrated_electronics/subtypes/memory.dm
@@ -19,7 +19,7 @@
. = ..()
/obj/item/integrated_circuit/memory/examine(mob/user)
- ..()
+ . = ..()
var/i
for(i = 1, i <= outputs.len, i++)
var/datum/integrated_io/O = outputs[i]
@@ -30,7 +30,7 @@
data = "[d]"
else if(!isnull(O.data))
data = O.data
- to_chat(user, "\The [src] has [data] saved to address [i].")
+ . += "\The [src] has [data] saved to address [i]."
/obj/item/integrated_circuit/memory/do_work()
for(var/i = 1 to inputs.len)
diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm
index 3975da18..6005709d 100644
--- a/code/modules/integrated_electronics/subtypes/output.dm
+++ b/code/modules/integrated_electronics/subtypes/output.dm
@@ -23,7 +23,7 @@
if(displayed_name && displayed_name != name)
shown_label = " labeled '[displayed_name]'"
- to_chat(user, "There is \a [src][shown_label], which displays [!isnull(stuff_to_display) ? "'[stuff_to_display]'" : "nothing"].")
+ return "There is \a [src][shown_label], which displays [!isnull(stuff_to_display) ? "'[stuff_to_display]'" : "nothing"]."
/obj/item/integrated_circuit/output/screen/do_work()
var/datum/integrated_io/I = inputs[1]
@@ -345,14 +345,13 @@
set_pin_data(IC_INPUT, 1, FALSE)
/obj/item/integrated_circuit/output/led/external_examine(mob/user)
- var/text_output = "There is "
+ . = "There is "
if(name == displayed_name)
- text_output += "\an [name]"
+ . += "\an [name]"
else
- text_output += "\an ["\improper[name]"] labeled '[displayed_name]'"
- text_output += " which is currently [get_pin_data(IC_INPUT, 1) ? "lit *" : "unlit"]."
- to_chat(user, text_output)
+ . += "\an ["\improper[name]"] labeled '[displayed_name]'"
+ . += " which is currently [get_pin_data(IC_INPUT, 1) ? "lit *" : "unlit"]."
/obj/item/integrated_circuit/output/diagnostic_hud
name = "AR interface"
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index d4904069..e67ce367 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -25,18 +25,18 @@
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book) //Things allowed in the bookcase
/obj/structure/bookcase/examine(mob/user)
- ..()
+ . = ..()
if(!anchored)
- to_chat(user, "The bolts on the bottom are unsecured.")
+ . += "The bolts on the bottom are unsecured."
if(anchored)
- to_chat(user, "It's secured in place with bolts.")
+ . += "It's secured in place with bolts."
switch(state)
if(0)
- to_chat(user, "There's a small crack visible on the back panel.")
+ . += "There's a small crack visible on the back panel."
if(1)
- to_chat(user, "There's space inside for a wooden shelf.")
+ . += "There's space inside for a wooden shelf."
if(2)
- to_chat(user, "There's a small crack visible on the shelf.")
+ . += "There's a small crack visible on the shelf."
/obj/structure/bookcase/Initialize(mapload)
. = ..()
diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm
index cf872cc8..84edffa4 100644
--- a/code/modules/library/soapstone.dm
+++ b/code/modules/library/soapstone.dm
@@ -16,7 +16,7 @@
/obj/item/soapstone/examine(mob/user)
. = ..()
if(remaining_uses != -1)
- to_chat(user, "It has [remaining_uses] uses left.")
+ . += "It has [remaining_uses] uses left."
/obj/item/soapstone/afterattack(atom/target, mob/user, proximity)
. = ..()
@@ -194,7 +194,7 @@
update_icon()
/obj/structure/chisel_message/examine(mob/user)
- ..()
+ . = ..()
ui_interact(user)
/obj/structure/chisel_message/Destroy()
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index eb70ab82..291db256 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -40,7 +40,7 @@
return ..()
/obj/item/twohanded/kinetic_crusher/examine(mob/living/user)
- . =..()
+ . = ..()
. += "Mark a large creature with the destabilizing force, then hit them in melee to do [force + detonation_damage] damage."
. += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]."
for(var/t in trophies)
@@ -201,8 +201,8 @@
var/denied_type = /obj/item/crusher_trophy
/obj/item/crusher_trophy/examine(mob/living/user)
- ..()
- to_chat(user, "Causes [effect_desc()] when attached to a kinetic crusher.")
+ . = ..()
+ . += "Causes [effect_desc()] when attached to a kinetic crusher."
/obj/item/crusher_trophy/proc/effect_desc()
return "errors"
diff --git a/code/modules/mining/equipment/lazarus_injector.dm b/code/modules/mining/equipment/lazarus_injector.dm
index b2a2e335..f8b155cb 100644
--- a/code/modules/mining/equipment/lazarus_injector.dm
+++ b/code/modules/mining/equipment/lazarus_injector.dm
@@ -59,8 +59,8 @@
malfunctioning = 1
/obj/item/lazarus_injector/examine(mob/user)
- ..()
+ . = ..()
if(!loaded)
- to_chat(user, "[src] is empty.")
+ . += "[src] is empty."
if(malfunctioning)
- to_chat(user, "The display on [src] seems to be flickering.")
+ . += "The display on [src] seems to be flickering."
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index c735c9d6..00ce37b7 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -36,9 +36,9 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
update_icon()
/obj/item/stack/marker_beacon/examine(mob/user)
- ..()
- to_chat(user, "Use in-hand to place a [singular_name].")
- to_chat(user, "Alt-click to select a color. Current color is [picked_color].")
+ . = ..()
+ . += "Use in-hand to place a [singular_name]."
+ . += "Alt-click to select a color. Current color is [picked_color]."
/obj/item/stack/marker_beacon/update_icon()
icon_state = "[initial(icon_state)][lowertext(picked_color)]"
@@ -93,8 +93,8 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
qdel(src)
/obj/structure/marker_beacon/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to select a color. Current color is [picked_color].")
+ . = ..()
+ . += "Alt-click to select a color. Current color is [picked_color]."
/obj/structure/marker_beacon/update_icon()
while(!picked_color || !GLOB.marker_beacon_colors[picked_color])
diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm
index 9b055519..1b659f47 100644
--- a/code/modules/mining/equipment/survival_pod.dm
+++ b/code/modules/mining/equipment/survival_pod.dm
@@ -33,8 +33,8 @@
/obj/item/survivalcapsule/examine(mob/user)
. = ..()
get_template()
- to_chat(user, "This capsule has the [template.name] stored.")
- to_chat(user, template.description)
+ . += "This capsule has the [template.name] stored."
+ . += template.description
/obj/item/survivalcapsule/attack_self()
//Can't grab when capsule is New() because templates aren't loaded then
diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm
index af8860c0..fd366670 100644
--- a/code/modules/mining/fulton.dm
+++ b/code/modules/mining/fulton.dm
@@ -15,7 +15,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
/obj/item/extraction_pack/examine()
. = ..()
- usr.show_message("It has [uses_left] use\s remaining.", 1)
+ . += "It has [uses_left] use\s remaining."
/obj/item/extraction_pack/attack_self(mob/user)
var/list/possible_beacons = list()
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index a25ce336..8790e171 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -664,10 +664,10 @@
total_mass_on = 5
/obj/item/melee/transforming/cleaving_saw/examine(mob/user)
- ..()
- to_chat(user, "It is [active ? "open, and will cleave enemies in a wide arc":"closed, and can be used for rapid consecutive attacks that cause beastly enemies to bleed"].
\
+ . = ..()
+ . += "It is [active ? "open, and will cleave enemies in a wide arc":"closed, and can be used for rapid consecutive attacks that cause beastly enemies to bleed"].
\
Both modes will build up existing bleed effects, doing a burst of high damage if the bleed is built up high enough.
\
- Transforming it immediately after an attack causes the next attack to come out faster.")
+ Transforming it immediately after an attack causes the next attack to come out faster."
/obj/item/melee/transforming/cleaving_saw/suicide_act(mob/user)
user.visible_message("[user] is [active ? "closing [src] on [user.p_their()] neck" : "opening [src] into [user.p_their()] chest"]! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -1103,8 +1103,8 @@
var/friendly_fire_check = FALSE //if the blasts we make will consider our faction against the faction of hit targets
/obj/item/hierophant_club/examine(mob/user)
- ..()
- to_chat(user, "The[beacon ? " beacon is not currently":"re is a beacon"] attached.")
+ . = ..()
+ . += "The[beacon ? " beacon is not currently":"re is a beacon"] attached."
/obj/item/hierophant_club/suicide_act(mob/living/user)
say("Xverwpsgexmrk...", forced = "hierophant club suicide")
diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm
index 8fdc50d2..65cac24d 100644
--- a/code/modules/mining/machine_silo.dm
+++ b/code/modules/mining/machine_silo.dm
@@ -181,8 +181,8 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
flick("silo_active", src)
/obj/machinery/ore_silo/examine(mob/user)
- ..()
- to_chat(user, "[src] can be linked to techfabs, circuit printers and protolathes with a multitool.")
+ . = ..()
+ . += "[src] can be linked to techfabs, circuit printers and protolathes with a multitool."
/datum/ore_silo_log
var/name // for VV
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 3a0d6e87..ca34d560 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -296,8 +296,8 @@
..()
/obj/item/card/mining_point_card/examine(mob/user)
- ..()
- to_chat(user, "There's [points] point\s on the card.")
+ . = ..()
+ . += "There's [points] point\s on the card."
///Conscript kit
/obj/item/card/mining_access_card
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index 15ff372c..3834ffea 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -68,22 +68,22 @@
check_friendly_fire = 0
/mob/living/simple_animal/hostile/mining_drone/examine(mob/user)
- ..()
+ . = ..()
var/t_He = p_they(TRUE)
var/t_him = p_them()
var/t_s = p_s()
if(health < maxHealth)
if(health >= maxHealth * 0.5)
- to_chat(user, "[t_He] look[t_s] slightly dented.")
+ . += "[t_He] look[t_s] slightly dented."
else
- to_chat(user, "[t_He] look[t_s] severely dented!")
- to_chat(user, "Using a mining scanner on [t_him] will instruct [t_him] to drop stored ore. [max(0, LAZYLEN(contents) - 1)] Stored Ore\n\
- Field repairs can be done with a welder.")
+ . += "[t_He] look[t_s] severely dented!"
+ . += "Using a mining scanner on [t_him] will instruct [t_him] to drop stored ore. [max(0, LAZYLEN(contents) - 1)] Stored Ore\n\
+ Field repairs can be done with a welder."
if(stored_gun && stored_gun.max_mod_capacity)
- to_chat(user, "[stored_gun.get_remaining_mod_capacity()]% mod capacity remaining.")
+ . += "[stored_gun.get_remaining_mod_capacity()]% mod capacity remaining."
for(var/A in stored_gun.get_modkits())
var/obj/item/borg/upgrade/modkit/M = A
- to_chat(user, "There is \a [M] installed, using [M.cost]% capacity.")
+ . += "There is \a [M] installed, using [M.cost]% capacity."
/mob/living/simple_animal/hostile/mining_drone/welder_act(mob/living/user, obj/item/I)
. = TRUE
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 7028c42a..952b4992 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -348,9 +348,9 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
pixel_y = rand(0,8)-8
/obj/item/coin/examine(mob/user)
- ..()
+ . = ..()
if(value)
- to_chat(user, "It's worth [value] credit\s.")
+ . += "It's worth [value] credit\s."
/obj/item/coin/gold
name = "gold coin"
diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm
index e8775482..ed104d9e 100644
--- a/code/modules/mining/satchel_ore_boxdm.dm
+++ b/code/modules/mining/satchel_ore_boxdm.dm
@@ -29,7 +29,7 @@
/obj/structure/ore_box/examine(mob/living/user)
if(Adjacent(user) && istype(user))
show_contents(user)
- . = ..()
+ return ..()
/obj/structure/ore_box/attack_hand(mob/user)
. = ..()
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index ae1cfc1b..bc4e5a0d 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -836,9 +836,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
change_mob_type( /mob/living/carbon/human , null, null, TRUE) //always delmob, ghosts shouldn't be left lingering
/mob/dead/observer/examine(mob/user)
- ..()
+ . = ..()
if(!invisibility)
- to_chat(user, "It seems extremely obvious.")
+ . += "It seems extremely obvious."
/mob/dead/observer/proc/set_invisibility(value)
invisibility = value
diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm
index d84ba0d7..aa3c2090 100644
--- a/code/modules/mob/living/brain/MMI.dm
+++ b/code/modules/mob/living/brain/MMI.dm
@@ -188,17 +188,17 @@
qdel(src)
/obj/item/mmi/examine(mob/user)
- ..()
+ . = ..()
if(brainmob)
var/mob/living/brain/B = brainmob
if(!B.key || !B.mind || B.stat == DEAD)
- to_chat(user, "The MMI indicates the brain is completely unresponsive.")
+ . += "The MMI indicates the brain is completely unresponsive."
else if(!B.client)
- to_chat(user, "The MMI indicates the brain is currently inactive; it might change.")
+ . += "The MMI indicates the brain is currently inactive; it might change."
else
- to_chat(user, "The MMI indicates the brain is active.")
+ . += "The MMI indicates the brain is active."
/obj/item/mmi/relaymove(mob/user)
return //so that the MMI won't get a warning about not being able to move if it tries to move
diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm
index 1b421054..0451cf09 100644
--- a/code/modules/mob/living/brain/brain_item.dm
+++ b/code/modules/mob/living/brain/brain_item.dm
@@ -157,7 +157,7 @@
-/obj/item/organ/brain/examine(mob/user)//BUG_PROBABLE_CAUSE to_chats changed to . +=
+/obj/item/organ/brain/examine(mob/user)
. = ..()
if(user.suiciding)
diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm
index 9e0bb042..0b5f6f75 100644
--- a/code/modules/mob/living/brain/posibrain.dm
+++ b/code/modules/mob/living/brain/posibrain.dm
@@ -147,7 +147,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
else
msg = "[dead_message]"
- to_chat(user, msg)
+ . += msg
/obj/item/mmi/posibrain/Initialize()
. = ..()
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index 15f989b2..fedce4f5 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -71,16 +71,16 @@
Leap(M)
/obj/item/clothing/mask/facehugger/examine(mob/user)
- ..()
+ . = ..()
if(!real)//So that giant red text about probisci doesn't show up.
return
switch(stat)
if(DEAD,UNCONSCIOUS)
- to_chat(user, "[src] is not moving.")
+ . += "[src] is not moving."
if(CONSCIOUS)
- to_chat(user, "[src] seems to be active!")
+ . += "[src] seems to be active!"
if (sterile)
- to_chat(user, "It looks like the proboscis has been removed.")
+ . += "It looks like the proboscis has been removed."
/obj/item/clothing/mask/facehugger/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm
index b36a2b95..bef8895e 100644
--- a/code/modules/mob/living/carbon/examine.dm
+++ b/code/modules/mob/living/carbon/examine.dm
@@ -6,39 +6,39 @@
var/t_has = p_have()
var/t_is = p_are()
- var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src]!\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] \a [src]!")
if (handcuffed)
- msg += "[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!\n"
+ . += "[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!"
if (head)
- msg += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head. \n"
+ . += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head."
if (wear_mask)
- msg += "[t_He] [t_is] wearing [wear_mask.get_examine_string(user)] on [t_his] face.\n"
+ . += "[t_He] [t_is] wearing [wear_mask.get_examine_string(user)] on [t_his] face."
if (wear_neck)
- msg += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck.\n"
+ . += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck."
for(var/obj/item/I in held_items)
if(!(I.item_flags & ABSTRACT))
- msg += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))].\n"
+ . += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))]."
if (back)
- msg += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back.\n"
+ . += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back."
var/appears_dead = 0
if (stat == DEAD)
appears_dead = 1
if(getorgan(/obj/item/organ/brain))
- msg += "[t_He] [t_is] limp and unresponsive, with no signs of life.\n"
+ . += "[t_He] [t_is] limp and unresponsive, with no signs of life."
else if(get_bodypart(BODY_ZONE_HEAD))
- msg += "It appears that [t_his] brain is missing...\n"
+ . += "It appears that [t_his] brain is missing..."
var/list/missing = get_missing_limbs()
for(var/t in missing)
if(t==BODY_ZONE_HEAD)
- msg += "[t_His] [parse_zone(t)] is missing!\n"
+ . += "[t_His] [parse_zone(t)] is missing!"
continue
- msg += "[t_His] [parse_zone(t)] is missing!\n"
+ . += "[t_His] [parse_zone(t)] is missing!"
- msg += ""
+ var/list/msg = list("")
var/temp = getBruteLoss()
if(!(user == src && src.hal_screwyhud == SCREWYHUD_HEALTHY)) //fake healthy
if(temp)
@@ -80,34 +80,34 @@
msg += ""
+ . += msg.Join("")
+
if(!appears_dead)
if(stat == UNCONSCIOUS)
- msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n"
+ . += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep."
else if(InCritical())
- msg += "[t_His] breathing is shallow and labored.\n"
+ . += "[t_His] breathing is shallow and labored."
if(digitalcamo)
- msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly unsimian manner.\n"
+ . += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly unsimian manner."
if(combatmode)
- msg += "[t_He] [t_is] visibly tense[resting ? "." : ", and [t_is] standing in combative stance."]\n"
+ . += "[t_He] [t_is] visibly tense[resting ? "." : ", and [t_is] standing in combative stance."]"
GET_COMPONENT_FROM(mood, /datum/component/mood, src)
if(mood)
switch(mood.shown_mood)
if(-INFINITY to MOOD_LEVEL_SAD4)
- msg += "[t_He] look[p_s()] depressed.\n"
+ . += "[t_He] look[p_s()] depressed."
if(MOOD_LEVEL_SAD4 to MOOD_LEVEL_SAD3)
- msg += "[t_He] look[p_s()] very sad.\n"
+ . += "[t_He] look[p_s()] very sad."
if(MOOD_LEVEL_SAD3 to MOOD_LEVEL_SAD2)
- msg += "[t_He] look[p_s()] a bit down.\n"
+ . += "[t_He] look[p_s()] a bit down."
if(MOOD_LEVEL_HAPPY2 to MOOD_LEVEL_HAPPY3)
- msg += "[t_He] look[p_s()] quite happy.\n"
+ . += "[t_He] look[p_s()] quite happy."
if(MOOD_LEVEL_HAPPY3 to MOOD_LEVEL_HAPPY4)
- msg += "[t_He] look[p_s()] very happy.\n"
+ . += "[t_He] look[p_s()] very happy."
if(MOOD_LEVEL_HAPPY4 to INFINITY)
- msg += "[t_He] look[p_s()] ecstatic.\n"
- SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, msg)
- msg += "*---------*"
- to_chat(user, msg)
- return msg
+ . += "[t_He] look[p_s()] ecstatic."
+ SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .)
+ . += "*---------*"
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 03259bd2..f155ff62 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -13,7 +13,7 @@
if(HAS_TRAIT(L, TRAIT_PROSOPAGNOSIA))
obscure_name = TRUE
- var/msg = "*---------*\nThis is [!obscure_name ? name : "Unknown"]!\n"
+ . = list("*---------*\nThis is [!obscure_name ? name : "Unknown"]!")
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
@@ -22,11 +22,11 @@
var/mob/living/carbon/human/H = src
var/datum/species/pref_species = H.dna.species
if(get_visible_name() == "Unknown") // same as flavor text, but hey it works.
- msg += "You can't make out what species they are.\n"
+ . += "You can't make out what species they are."
else if(skipface)
- msg += "You can't make out what species they are.\n"
+ . += "You can't make out what species they are."
else
- msg += "[t_He] [t_is] a [H.dna.custom_species ? H.dna.custom_species : pref_species.name]!\n"
+ . += "[t_He] [t_is] a [H.dna.custom_species ? H.dna.custom_species : pref_species.name]!"
//uniform
if(w_uniform && !(SLOT_W_UNIFORM in obscured))
@@ -37,126 +37,117 @@
if(U.attached_accessory)
accessory_msg += " with [icon2html(U.attached_accessory, user)] \a [U.attached_accessory]"
- msg += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_msg].\n"
+ . += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_msg]."
//head
if(head)
- msg += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head.\n"
+ . += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head."
//suit/armor
if(wear_suit)
- msg += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)].\n"
+ . += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)]."
//suit/armor storage
if(s_store)
- msg += "[t_He] [t_is] carrying [s_store.get_examine_string(user)] on [t_his] [wear_suit.name].\n"
+ . += "[t_He] [t_is] carrying [s_store.get_examine_string(user)] on [t_his] [wear_suit.name]."
//back
if(back)
- msg += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back.\n"
+ . += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back."
//Hands
for(var/obj/item/I in held_items)
if(!(I.item_flags & ABSTRACT))
- msg += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))].\n"
+ . += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))]."
GET_COMPONENT(FR, /datum/component/forensics)
//gloves
if(gloves && !(SLOT_GLOVES in obscured))
- msg += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands.\n"
+ . += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands."
else if(FR && length(FR.blood_DNA))
var/hand_number = get_num_arms(FALSE)
if(hand_number)
- msg += "[t_He] [t_has] [hand_number > 1 ? "" : "a"] blood-stained hand[hand_number > 1 ? "s" : ""]!\n"
-
- //handcuffed?
-
+ . += "[t_He] [t_has] [hand_number > 1 ? "" : "a"] blood-stained hand[hand_number > 1 ? "s" : ""]!"
//handcuffed?
if(handcuffed)
if(istype(handcuffed, /obj/item/restraints/handcuffs/cable))
- msg += "[t_He] [t_is] [icon2html(handcuffed, user)] restrained with cable!\n"
+ . += "[t_He] [t_is] [icon2html(handcuffed, user)] restrained with cable!"
else
- msg += "[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!\n"
+ . += "[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!"
//belt
if(belt)
- msg += "[t_He] [t_has] [belt.get_examine_string(user)] about [t_his] waist.\n"
+ . += "[t_He] [t_has] [belt.get_examine_string(user)] about [t_his] waist."
//shoes
if(shoes && !(SLOT_SHOES in obscured))
- msg += "[t_He] [t_is] wearing [shoes.get_examine_string(user)] on [t_his] feet.\n"
+ . += "[t_He] [t_is] wearing [shoes.get_examine_string(user)] on [t_his] feet."
//mask
if(wear_mask && !(SLOT_WEAR_MASK in obscured))
- msg += "[t_He] [t_has] [wear_mask.get_examine_string(user)] on [t_his] face.\n"
+ . += "[t_He] [t_has] [wear_mask.get_examine_string(user)] on [t_his] face."
if (wear_neck && !(SLOT_NECK in obscured))
- msg += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck.\n"
+ . += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck."
//eyes
if(!(SLOT_GLASSES in obscured))
if(glasses)
- msg += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes.\n"
+ . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes."
else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES))
- msg += "[t_His] eyes are glowing an unnatural red!\n"
+ . += "[t_His] eyes are glowing an unnatural red!"
//ears
if(ears && !(SLOT_EARS in obscured))
- msg += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] ears.\n"
+ . += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] ears."
//ID
if(wear_id)
- msg += "[t_He] [t_is] wearing [wear_id.get_examine_string(user)].\n"
+ . += "[t_He] [t_is] wearing [wear_id.get_examine_string(user)]."
//Status effects
- msg += status_effect_examines()
+ var/effects_exam = status_effect_examines()
+ if(!isnull(effects_exam))
+ . += effects_exam
//Can be picked up?
if(can_be_held)
- msg += "[t_He] might be able to be picked up with Alt+Click!\n"
+ . += "[t_He] might be able to be picked up with Alt+Click!\n"
//CIT CHANGES START HERE - adds genital details to examine text
if(LAZYLEN(internal_organs))
for(var/obj/item/organ/genital/dicc in internal_organs)
if(istype(dicc) && dicc.is_exposed())
- msg += "[dicc.desc]\n"
+ . += "[dicc.desc]"
- msg += attempt_vr(src,"examine_bellies",args) //vore Code
+ var/cursed_stuff = attempt_vr(src,"examine_bellies",args) //vore Code
+ if(!isnull(cursed_stuff))
+ . += cursed_stuff
//END OF CIT CHANGES
//Jitters
switch(jitteriness)
if(300 to INFINITY)
- msg += "[t_He] [t_is] convulsing violently!\n"
+ . += "[t_He] [t_is] convulsing violently!"
if(200 to 300)
- msg += "[t_He] [t_is] extremely jittery.\n"
+ . += "[t_He] [t_is] extremely jittery."
if(100 to 200)
- msg += "[t_He] [t_is] twitching ever so slightly.\n"
+ . += "[t_He] [t_is] twitching ever so slightly."
var/appears_dead = 0
if(stat == DEAD || (HAS_TRAIT(src, TRAIT_FAKEDEATH)))
appears_dead = 1
if(suiciding)
- msg += "[t_He] appear[p_s()] to have committed suicide... there is no hope of recovery.\n"
+ . += "[t_He] appear[p_s()] to have committed suicide... there is no hope of recovery."
if(hellbound)
- msg += "[t_His] soul seems to have been ripped out of [t_his] body. Revival is impossible.\n"
- msg += "[t_He] [t_is] limp and unresponsive; there are no signs of life"
- if(getorgan(/obj/item/organ/brain))
- if(!key)
- var/foundghost = 0
- if(mind)
- for(var/mob/dead/observer/G in GLOB.player_list)
- if(G.mind == mind)
- foundghost = 1
- if (G.can_reenter_corpse == 0)
- foundghost = 0
- break
- if(!foundghost)
- msg += " and [t_his] soul has departed"
- msg += "...\n"
+ . += "[t_His] soul seems to have been ripped out of [t_his] body. Revival is impossible."
+ if(getorgan(/obj/item/organ/brain) && !key && !get_ghost(FALSE, TRUE))
+ . += "[t_He] [t_is] limp and unresponsive; there are no signs of life and [t_his] soul has departed..."
+ else
+ . += "[t_He] [t_is] limp and unresponsive; there are no signs of life..."
if(get_bodypart(BODY_ZONE_HEAD) && !getorgan(/obj/item/organ/brain))
- msg += "It appears that [t_his] brain is missing...\n"
+ . += "It appears that [t_his] brain is missing..."
var/temp = getBruteLoss() //no need to calculate each of these twice
- msg += ""
+ var/list/msg = list()
var/list/missing = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
var/list/disabled = list()
@@ -176,8 +167,7 @@
if(!(BP.get_damage(include_stamina = FALSE) >= BP.max_damage)) //Stamina is disabling the limb
damage_text = "limp and lifeless"
else
- var/more_brute = BP.brute_dam >= BP.burn_dam
- damage_text = more_brute ? "broken and mangled" : "burnt and blistered"
+ damage_text = (BP.brute_dam >= BP.burn_dam) ? BP.heavy_brute_msg : BP.heavy_burn_msg
msg += "[capitalize(t_his)] [BP.name] is [damage_text]!\n"
//stores missing limbs
@@ -341,6 +331,9 @@
if(digitalcamo)
msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly inhuman manner.\n"
+ if (length(msg))
+ . += "[msg.Join("")]"
+
var/traitstring = get_trait_string()
if(ishuman(user))
var/mob/living/carbon/human/H = user
@@ -350,29 +343,25 @@
if(perpname)
var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.general)
if(R)
- msg += "Rank: [R.fields["rank"]]
"
- msg += "\[Front photo\] "
- msg += "\[Side photo\]
"
+ . += "Rank: [R.fields["rank"]]\n\[Front photo\]\[Side photo\]"
if(istype(H.glasses, /obj/item/clothing/glasses/hud/health) || istype(CIH, /obj/item/organ/cyberimp/eyes/hud/medical))
var/cyberimp_detect
for(var/obj/item/organ/cyberimp/CI in internal_organs)
if(CI.status == ORGAN_ROBOTIC && !CI.syndicate_implant)
- cyberimp_detect += "[name] is modified with a [CI.name].
"
+ cyberimp_detect += "[name] is modified with a [CI.name]."
if(cyberimp_detect)
- msg += "Detected cybernetic modifications:
"
- msg += cyberimp_detect
+ . += "Detected cybernetic modifications:"
+ . += cyberimp_detect
if(R)
var/health_r = R.fields["p_stat"]
- msg += "\[[health_r]\]"
+ . += "\[[health_r]\]"
health_r = R.fields["m_stat"]
- msg += "\[[health_r]\]
"
+ . += "\[[health_r]\]"
R = find_record("name", perpname, GLOB.data_core.medical)
if(R)
- msg += "\[Medical evaluation\]
"
+ . += "\[Medical evaluation\]"
if(traitstring)
- msg += "Detected physiological traits:
"
- msg += "[traitstring]
"
-
+ . += "Detected physiological traits:\n[traitstring]"
if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(CIH, /obj/item/organ/cyberimp/eyes/hud/security))
@@ -384,26 +373,23 @@
if(R)
criminal = R.fields["criminal"]
- msg += "Criminal status: \[[criminal]\]\n"
- msg += "Security record: \[View\] "
- msg += "\[Add crime\] "
- msg += "\[View comment log\] "
- msg += "\[Add comment\]\n"
+ . += jointext(list("Criminal status: \[[criminal]\]",
+ "Security record: \[View\]",
+ "\[Add crime\]",
+ "\[View comment log\]",
+ "\[Add comment\]"), "")
else if(isobserver(user) && traitstring)
- msg += "Traits: [traitstring]
"
+ . += "Traits: [traitstring]"
if(print_flavor_text())
if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation.
- msg += "...?
"
+ . += "...?"
else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either.
- msg += "...?
"
+ . += "...?"
else
- msg += "[print_flavor_text()]\n"
+ . += "[print_flavor_text()]"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, msg)
- msg += "*---------*"
-
- to_chat(user, msg)
- return msg
+ . += "*---------*"
/mob/living/proc/status_effect_examines(pronoun_replacement) //You can include this in any mob's examine() to show the examine texts of status effects!
var/list/dat = list()
diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm
index 62f2dbe9..15976394 100644
--- a/code/modules/mob/living/silicon/ai/examine.dm
+++ b/code/modules/mob/living/silicon/ai/examine.dm
@@ -1,26 +1,24 @@
/mob/living/silicon/ai/examine(mob/user)
- var/msg = "*---------*\nThis is [icon2html(src, user)] [src]!\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] [src]!")
if (stat == DEAD)
- msg += "It appears to be powered-down.\n"
+ . += "It appears to be powered-down."
else
- msg += ""
+ . += ""
if (getBruteLoss())
if (getBruteLoss() < 30)
- msg += "It looks slightly dented.\n"
+ . += "It looks slightly dented."
else
- msg += "It looks severely dented!\n"
+ . += "It looks severely dented!"
if (getFireLoss())
if (getFireLoss() < 30)
- msg += "It looks slightly charred.\n"
+ . += "It looks slightly charred."
else
- msg += "Its casing is melted and heat-warped!\n"
- msg += ""
+ . += "Its casing is melted and heat-warped!"
+ . += ""
if(deployed_shell)
- msg += "The wireless networking light is blinking.\n"
+ . += "The wireless networking light is blinking."
else if (!shunted && !client)
- msg += "[src]Core.exe has stopped responding! NTOS is searching for a solution to the problem...\n"
- msg += "*---------*"
+ . += "[src]Core.exe has stopped responding! NTOS is searching for a solution to the problem..."
+ . += "*---------*"
+ . += ..()
- to_chat(user, msg)
- ..()
- return msg
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/examine.dm b/code/modules/mob/living/silicon/examine.dm
index c26af70d..37107f2d 100644
--- a/code/modules/mob/living/silicon/examine.dm
+++ b/code/modules/mob/living/silicon/examine.dm
@@ -1,4 +1,6 @@
/mob/living/silicon/examine(mob/user) //Displays a silicon's laws to ghosts
+ . = ..()
if(laws && isobserver(user))
- to_chat(user, "[src] has the following laws:")
- laws.show_laws(user)
\ No newline at end of file
+ . += "[src] has the following laws:"
+ for(var/law in laws.get_law_list(include_zeroth = TRUE))
+ . += law
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index c298d89c..f4859ab2 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -268,8 +268,8 @@
return TRUE
/mob/living/silicon/pai/examine(mob/user)
- ..()
- to_chat(user, "A personal AI in holochassis mode. Its master ID string seems to be [master].")
+ . = ..()
+ . += "A personal AI in holochassis mode. Its master ID string seems to be [master]."
/mob/living/silicon/pai/Life()
if(stat == DEAD)
diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm
index e12cbba0..c49ee6cc 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -1,55 +1,52 @@
/mob/living/silicon/robot/examine(mob/user)
- var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src]!\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] \a [src], a [src.module.name] unit!")
if(desc)
- msg += "[desc]\n"
+ . += "[desc]"
var/obj/act_module = get_active_held_item()
if(act_module)
- msg += "It is holding [icon2html(act_module, user)] \a [act_module].\n"
- msg += status_effect_examines()
- msg += ""
- if (src.getBruteLoss())
- if (src.getBruteLoss() < maxHealth*0.5)
- msg += "It looks slightly dented.\n"
+ . += "It is holding [icon2html(act_module, user)] \a [act_module]."
+ var/effects_exam = status_effect_examines()
+ if(!isnull(effects_exam))
+ . += effects_exam
+ if (getBruteLoss())
+ if (getBruteLoss() < maxHealth*0.5)
+ . += "It looks slightly dented."
else
- msg += "It looks severely dented!\n"
+ . += "It looks severely dented!"
if (getFireLoss() || getToxLoss())
var/overall_fireloss = getFireLoss() + getToxLoss()
if (overall_fireloss < maxHealth * 0.5)
- msg += "It looks slightly charred.\n"
+ . += "It looks slightly charred."
else
- msg += "It looks severely burnt and heat-warped!\n"
- if (src.health < -maxHealth*0.5)
- msg += "It looks barely operational.\n"
- if (src.fire_stacks < 0)
- msg += "It's covered in water.\n"
- else if (src.fire_stacks > 0)
- msg += "It's coated in something flammable.\n"
- msg += ""
+ . += "It looks slightly charred."
+ if (health < -maxHealth*0.5)
+ . += "It looks barely operational."
+ if (fire_stacks < 0)
+ . += "It's covered in water."
+ else if (fire_stacks > 0)
+ . += "It's coated in something flammable."
if(opened)
- msg += "Its cover is open and the power cell is [cell ? "installed" : "missing"].\n"
+ . += "Its cover is open and the power cell is [cell ? "installed" : "missing"]."
else
- msg += "Its cover is closed[locked ? "" : ", and looks unlocked"].\n"
+ . += "Its cover is closed[locked ? "" : ", and looks unlocked"]."
if(cell && cell.charge <= 0)
- msg += "Its battery indicator is blinking red!\n"
+ . += "Its battery indicator is blinking red!"
if(is_servant_of_ratvar(src) && get_dist(user, src) <= 1 && !stat) //To counter pseudo-stealth by using headlamps
- msg += "Its eyes are glowing a blazing yellow!\n"
+ . += "Its eyes are glowing a blazing yellow!"
switch(stat)
if(CONSCIOUS)
if(shell)
- msg += "It appears to be an [deployed ? "active" : "empty"] AI shell.\n"
+ . += "It appears to be an [deployed ? "active" : "empty"] AI shell."
else if(!client)
- msg += "It appears to be in stand-by mode.\n" //afk
+ . += "It appears to be in stand-by mode." //afk
if(UNCONSCIOUS)
- msg += "It doesn't seem to be responding.\n"
+ . += "It doesn't seem to be responding."
if(DEAD)
- msg += "It looks like its system is corrupted and requires a reset.\n"
- msg += "*---------*"
-
- to_chat(user, msg)
- ..()
- return msg
+ . += "It looks like its system is corrupted and requires a reset."
+ . += "*---------*"
+ . += ..()
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index b1095b12..ef4d9aef 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -209,14 +209,14 @@
to_chat(user, "You need to open maintenance panel first!")
/mob/living/simple_animal/bot/examine(mob/user)
- ..()
+ . = ..()
if(health < maxHealth)
if(health > maxHealth/3)
- to_chat(user, "[src]'s parts look loose.")
+ . += "[src]'s parts look loose."
else
- to_chat(user, "[src]'s parts look very loose!")
+ . += "[src]'s parts look very loose!"
else
- to_chat(user, "[src] is in pristine condition.")
+ . += "[src] is in pristine condition."
/mob/living/simple_animal/bot/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
if(amount>0 && prob(10))
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index ae0592d7..a5223b47 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -69,18 +69,13 @@
/mob/living/simple_animal/hostile/construct/examine(mob/user)
var/t_He = p_they(TRUE)
var/t_s = p_s()
- var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src]!\n"
- msg += "[desc]\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] \a [src]!\n[desc]")
if(health < maxHealth)
- msg += ""
if(health >= maxHealth/2)
- msg += "[t_He] look[t_s] slightly dented.\n"
+ . += "[t_He] look[t_s] slightly dented."
else
- msg += "[t_He] look[t_s] severely dented!\n"
- msg += ""
- msg += "*---------*"
-
- to_chat(user, msg)
+ . += "[t_He] look[t_s] severely dented!"
+ . += "*---------*"
/mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/M)
if(isconstruct(M)) //is it a construct?
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
index c9ac7377..f22e7b1d 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
@@ -171,44 +171,43 @@
/mob/living/simple_animal/drone/examine(mob/user)
- var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src]!\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] \a [src]!")
//Hands
for(var/obj/item/I in held_items)
if(!(I.item_flags & ABSTRACT))
- msg += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))].\n"
+ . += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]."
//Internal storage
if(internal_storage && !(internal_storage.item_flags & ABSTRACT))
- msg += "It is holding [internal_storage.get_examine_string(user)] in its internal storage.\n"
+ . += "It is holding [internal_storage.get_examine_string(user)] in its internal storage."
//Cosmetic hat - provides no function other than looks
if(head && !(head.item_flags & ABSTRACT))
- msg += "It is wearing [head.get_examine_string(user)] on its head.\n"
+ . += "It is wearing [head.get_examine_string(user)] on its head."
//Braindead
if(!client && stat != DEAD)
- msg += "Its status LED is blinking at a steady rate.\n"
+ . += "Its status LED is blinking at a steady rate."
//Hacked
if(hacked)
- msg += "Its display is glowing red!\n"
+ . += "Its display is glowing red!"
//Damaged
if(health != maxHealth)
if(health > maxHealth * 0.33) //Between maxHealth and about a third of maxHealth, between 30 and 10 for normal drones
- msg += "Its screws are slightly loose.\n"
+ . += "Its screws are slightly loose."
else //otherwise, below about 33%
- msg += "Its screws are very loose!\n"
+ . += "Its screws are very loose!"
//Dead
if(stat == DEAD)
if(client)
- msg += "A message repeatedly flashes on its display: \"REBOOT -- REQUIRED\".\n"
+ . += "A message repeatedly flashes on its display: \"REBOOT -- REQUIRED\"."
else
- msg += "A message repeatedly flashes on its display: \"ERROR -- OFFLINE\".\n"
- msg += "*---------*"
- to_chat(user, msg)
+ . += "A message repeatedly flashes on its display: \"ERROR -- OFFLINE\"."
+ . += "*---------*"
/mob/living/simple_animal/drone/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt maintenance drones.
diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
index a43d4b6d..019bcfd3 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
@@ -18,18 +18,16 @@
/mob/living/simple_animal/hostile/guardian/dextrous/examine(mob/user)
if(dextrous)
- var/msg = "*---------*\nThis is [icon2html(src)] \a [src]!\n"
- msg += "[desc]\n"
+ . = list("*---------*\nThis is [icon2html(src)] \a [src]!\n[desc]")
for(var/obj/item/I in held_items)
if(!(I.item_flags & ABSTRACT))
- msg += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))].\n"
+ . += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]."
if(internal_storage && !(internal_storage.item_flags & ABSTRACT))
- msg += "It is holding [internal_storage.get_examine_string(user)] in its internal storage.\n"
- msg += "*---------*"
- to_chat(user, msg)
+ . += "It is holding [internal_storage.get_examine_string(user)] in its internal storage."
+ . += "*---------*"
else
- ..()
+ return ..()
/mob/living/simple_animal/hostile/guardian/dextrous/Recall(forced)
if(!summoner || loc == summoner || (cooldown > world.time && !forced))
diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
index 531c5138..b1af34eb 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
@@ -90,6 +90,6 @@
detonate(user)
/obj/guardian_bomb/examine(mob/user)
- stored_obj.examine(user)
+ . = stored_obj.examine(user)
if(get_dist(user,src)<=2)
- to_chat(user, "It glows with a strange light!")
+ . += "It glows with a strange light!"
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index c7b46e6a..89c4f70f 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -77,11 +77,9 @@
/mob/living/simple_animal/hostile/poison/bees/examine(mob/user)
- ..()
-
+ . = ..()
if(!beehome)
- to_chat(user, "This bee is homeless!")
-
+ . += "This bee is homeless!"
/mob/living/simple_animal/hostile/poison/bees/proc/generate_bee_visuals()
cut_overlays()
@@ -295,7 +293,7 @@
forceMove(beehome.drop_location())
else
..()
-
+
/mob/living/simple_animal/hostile/poison/bees/short
desc = "These bees seem unstable and won't survive for long."
diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
index d31af79c..2b5b5236 100644
--- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
@@ -130,7 +130,7 @@
qdel(copy)
/mob/living/simple_animal/hostile/boss/paper_wizard/copy/examine(mob/user)
- ..()
+ . = ..()
qdel(src) //I see through your ruse!
//fancy effects
diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm
index f78f7f7d..5ee25490 100644
--- a/code/modules/mob/living/simple_animal/hostile/illusion.dm
+++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm
@@ -44,9 +44,8 @@
/mob/living/simple_animal/hostile/illusion/examine(mob/user)
if(parent_mob)
- parent_mob.examine(user)
- else
- return ..()
+ return parent_mob.examine(user)
+ return ..()
/mob/living/simple_animal/hostile/illusion/AttackingTarget()
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index b88db1fa..94339b6a 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -375,8 +375,8 @@ Difficulty: Very Hard
/obj/machinery/anomalous_crystal/examine(mob/user)
. = ..()
if(isobserver(user))
- to_chat(user, observer_desc)
- to_chat(user, "It is activated by [activation_method].")
+ . += observer_desc
+ . += "It is activated by [activation_method]."
/obj/machinery/anomalous_crystal/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode)
..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index e488d68b..151e28d9 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -38,11 +38,11 @@
var/static/mutable_appearance/cap_dead
/mob/living/simple_animal/hostile/mushroom/examine(mob/user)
- ..()
+ . = ..()
if(health >= maxHealth)
- to_chat(user, "It looks healthy.")
+ . += "It looks healthy."
else
- to_chat(user, "It looks like it's been roughed up.")
+ . += "It looks like it's been roughed up."
/mob/living/simple_animal/hostile/mushroom/Life()
..()
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index a588f1ca..487185e1 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -119,9 +119,9 @@
/mob/living/simple_animal/parrot/examine(mob/user)
- ..()
+ . = ..()
if(stat)
- to_chat(user, pick("This parrot is no more.", "This is a late parrot.", "This is an ex-parrot."))
+ . += pick("This parrot is no more.", "This is a late parrot.", "This is an ex-parrot.")
/mob/living/simple_animal/parrot/death(gibbed)
if(held_item)
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index 9bc274c2..023af30d 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -61,7 +61,7 @@
var/mood = "" // To show its face
var/mutator_used = FALSE //So you can't shove a dozen mutators into a single slime
var/force_stasis = FALSE
-
+
do_footstep = TRUE
var/static/regex/slime_name_regex = new("\\w+ (baby|adult) slime \\(\\d+\\)")
@@ -411,37 +411,32 @@
return
/mob/living/simple_animal/slime/examine(mob/user)
-
- var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src]!\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] \a [src]!")
if (src.stat == DEAD)
- msg += "It is limp and unresponsive.\n"
+ . += "It is limp and unresponsive."
else
if (stat == UNCONSCIOUS) // Slime stasis
- msg += "It appears to be alive but unresponsive.\n"
- if (src.getBruteLoss())
- msg += ""
- if (src.getBruteLoss() < 40)
- msg += "It has some punctures in its flesh!"
+ . += "It appears to be alive but unresponsive."
+ if (getBruteLoss())
+ if (getBruteLoss() < 40)
+ . += "It has some punctures in its flesh!"
else
- msg += "It has severe punctures and tears in its flesh!"
- msg += "\n"
+ . += "It has severe punctures and tears in its flesh!"
switch(powerlevel)
if(2 to 3)
- msg += "It is flickering gently with a little electrical activity.\n"
+ . += "It is flickering gently with a little electrical activity."
if(4 to 5)
- msg += "It is glowing gently with moderate levels of electrical activity.\n"
+ . += "It is glowing gently with moderate levels of electrical activity."
if(6 to 9)
- msg += "It is glowing brightly with high levels of electrical activity.\n"
+ . += "It is glowing brightly with high levels of electrical activity."
if(10)
- msg += "It is radiating with massive levels of electrical activity!\n"
+ . += "It is radiating with massive levels of electrical activity!"
- msg += "*---------*"
- to_chat(user, msg)
- return
+ . += "*---------*"
/mob/living/simple_animal/slime/proc/discipline_slime(mob/user)
if(stat)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index f8f94d3f..c7ce6577 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -319,9 +319,8 @@
face_atom(A)
var/list/result = A.examine(src)
- if(result != null)
- to_chat(src, result.Join("\n"))
- SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A)
+ to_chat(src, result.Join("\n"))
+ SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A)
//same as above
//note: ghosts can point, this is intended
diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm
index 580374c5..daaf8a9e 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -187,11 +187,11 @@
return 1
/obj/item/modular_computer/examine(mob/user)
- ..()
+ . = ..()
if(obj_integrity <= integrity_failure)
- to_chat(user, "It is heavily damaged!")
+ . += "It is heavily damaged!"
else if(obj_integrity < max_integrity)
- to_chat(user, "It is damaged.")
+ . += "It is damaged."
/obj/item/modular_computer/update_icon()
cut_overlays()
diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm
index 3106a9e5..4d4dee1b 100644
--- a/code/modules/modular_computers/computers/item/laptop.dm
+++ b/code/modules/modular_computers/computers/item/laptop.dm
@@ -22,9 +22,9 @@
var/slowdown_open = TRUE
/obj/item/modular_computer/laptop/examine(mob/user)
- ..()
+ . = ..()
if(screen_on)
- to_chat(user, "Alt-click to close it.")
+ . += "Alt-click to close it."
/obj/item/modular_computer/laptop/Initialize()
. = ..()
diff --git a/code/modules/modular_computers/computers/machinery/console_presets.dm b/code/modules/modular_computers/computers/machinery/console_presets.dm
index 8b70fd24..f83442b1 100644
--- a/code/modules/modular_computers/computers/machinery/console_presets.dm
+++ b/code/modules/modular_computers/computers/machinery/console_presets.dm
@@ -47,8 +47,8 @@
_has_ai = TRUE
/obj/machinery/modular_computer/console/preset/research/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to eject the intelliCard.")
+ . = ..()
+ . += "Alt-click to eject the intelliCard."
/obj/machinery/modular_computer/console/preset/research/install_programs()
var/obj/item/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD]
@@ -67,8 +67,8 @@
_has_printer = TRUE
/obj/machinery/modular_computer/console/preset/command/examine(mob/user)
- ..()
- to_chat(user, "Alt-click [src] to eject the identification card.")
+ . = ..()
+ . += "Alt-click [src] to eject the identification card."
/obj/machinery/modular_computer/console/preset/command/install_programs()
var/obj/item/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD]
diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm
index 56efec37..744db157 100644
--- a/code/modules/modular_computers/hardware/_hardware.dm
+++ b/code/modules/modular_computers/hardware/_hardware.dm
@@ -76,11 +76,11 @@
/obj/item/computer_hardware/examine(var/mob/user)
. = ..()
if(damage > damage_failure)
- to_chat(user, "It seems to be severely damaged!")
+ . += "It seems to be severely damaged!"
else if(damage > damage_malfunction)
- to_chat(user, "It seems to be damaged!")
+ . += "It seems to be damaged!"
else if(damage)
- to_chat(user, "It seems to be slightly damaged.")
+ . += "It seems to be slightly damaged."
// Component-side compatibility check.
/obj/item/computer_hardware/proc/can_install(obj/item/modular_computer/M, mob/living/user = null)
diff --git a/code/modules/modular_computers/hardware/ai_slot.dm b/code/modules/modular_computers/hardware/ai_slot.dm
index 5dee1225..47cbbff4 100644
--- a/code/modules/modular_computers/hardware/ai_slot.dm
+++ b/code/modules/modular_computers/hardware/ai_slot.dm
@@ -11,9 +11,9 @@
/obj/item/computer_hardware/ai_slot/examine(mob/user)
- ..()
+ . = ..()
if(stored_card)
- to_chat(user, "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it.")
+ . += "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it."
/obj/item/computer_hardware/ai_slot/on_install(obj/item/modular_computer/M, mob/living/user = null)
M.add_verb(device_type)
diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm
index 3952ac1a..7eef8eb1 100644
--- a/code/modules/modular_computers/hardware/card_slot.dm
+++ b/code/modules/modular_computers/hardware/card_slot.dm
@@ -106,6 +106,6 @@
return
/obj/item/computer_hardware/card_slot/examine(mob/user)
- ..()
+ . = ..()
if(stored_card || stored_card2)
- to_chat(user, "There appears to be something loaded in the card slots.")
+ . += "There appears to be something loaded in the card slots."
diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm
index 1e3c5173..4109b2c3 100644
--- a/code/modules/modular_computers/hardware/hard_drive.dm
+++ b/code/modules/modular_computers/hardware/hard_drive.dm
@@ -19,8 +19,8 @@
store_file(new/datum/computer_file/program/filemanager(src)) // File manager, allows text editor functions and basic file manipulation.
/obj/item/computer_hardware/hard_drive/examine(user)
- ..()
- to_chat(user, "It has [max_capacity] GQ of storage capacity.")
+ . = ..()
+ . += "It has [max_capacity] GQ of storage capacity."
/obj/item/computer_hardware/hard_drive/diagnostics(var/mob/user)
..()
@@ -121,7 +121,7 @@
return ..()
/obj/item/computer_hardware/hard_drive/Initialize()
- . = ..()
+ . = ..()
install_default_programs()
diff --git a/code/modules/modular_computers/hardware/printer.dm b/code/modules/modular_computers/hardware/printer.dm
index b000c353..44383822 100644
--- a/code/modules/modular_computers/hardware/printer.dm
+++ b/code/modules/modular_computers/hardware/printer.dm
@@ -13,8 +13,8 @@
to_chat(user, "Paper level: [stored_paper]/[max_paper].")
/obj/item/computer_hardware/printer/examine(mob/user)
- ..()
- to_chat(user, "Paper level: [stored_paper]/[max_paper].")
+ . = ..()
+ . += "Paper level: [stored_paper]/[max_paper]."
/obj/item/computer_hardware/printer/proc/print_text(var/text_to_print, var/paper_title = "")
diff --git a/code/modules/ninja/suit/gloves.dm b/code/modules/ninja/suit/gloves.dm
index 276de652..e819fe55 100644
--- a/code/modules/ninja/suit/gloves.dm
+++ b/code/modules/ninja/suit/gloves.dm
@@ -78,6 +78,6 @@
candrain=!candrain
/obj/item/clothing/gloves/space_ninja/examine(mob/user)
- ..()
+ . = ..()
if(HAS_TRAIT_FROM(src, TRAIT_NODROP, NINJA_SUIT_TRAIT))
- to_chat(user, "The energy drain mechanism is [candrain?"active":"inactive"].")
+ . += "The energy drain mechanism is [candrain?"active":"inactive"]."
diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm
index ac1ef3b9..4976533a 100644
--- a/code/modules/ninja/suit/suit.dm
+++ b/code/modules/ninja/suit/suit.dm
@@ -148,12 +148,12 @@ Contents:
/obj/item/clothing/suit/space/space_ninja/examine(mob/user)
- ..()
+ . = ..()
if(s_initialized && user == affecting)
- to_chat(user, "All systems operational. Current energy capacity: [DisplayEnergy(cell.charge)].\n\
+ . += "All systems operational. Current energy capacity: [DisplayEnergy(cell.charge)].\n\
The CLOAK-tech device is [stealth?"active":"inactive"].\n\
There are [s_bombs] smoke bomb\s remaining.\n\
- There are [a_boost] adrenaline booster\s remaining.")
+ There are [a_boost] adrenaline booster\s remaining."
/obj/item/clothing/suit/space/space_ninja/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/initialize_ninja_suit))
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 37877ffb..5da735d0 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -63,8 +63,8 @@
/obj/item/paper/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to fold it.")
+ . = ..()
+ . += "Alt-click to fold it."
var/datum/asset/assets = get_asset_datum(/datum/asset/spritesheet/simple/paper)
assets.send(user)
@@ -77,7 +77,7 @@
user << browse("[name][stars(info)]
[stamps]", "window=[name]")
onclose(user, "[name]")
else
- to_chat(user, "You're too far away to read it!")
+ . += "You're too far away to read it!"
/obj/item/paper/verb/rename()
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index 59c84b8c..088f695b 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -116,11 +116,11 @@
return ..()
/obj/item/paper_bin/examine(mob/user)
- ..()
+ . = ..()
if(total_paper)
- to_chat(user, "It contains " + (total_paper > 1 ? "[total_paper] papers" : " one paper")+".")
+ . += "It contains [total_paper > 1 ? "[total_paper] papers" : " one paper"]."
else
- to_chat(user, "It doesn't contain anything.")
+ . += "It doesn't contain anything."
/obj/item/paper_bin/update_icon()
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index 40920cc1..849e8621 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -118,8 +118,8 @@
H.emote("scream")
/obj/item/paper/examine(mob/user)
- ..()
- to_chat(user, "Alt-click [src] to fold it into a paper plane.")
+ . = ..()
+ . += "Alt-click [src] to fold it into a paper plane."
/obj/item/paper/AltClick(mob/living/carbon/user, obj/item/I)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user), NO_TK))
diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm
index 2b031fed..03d702cf 100644
--- a/code/modules/photography/camera/camera.dm
+++ b/code/modules/photography/camera/camera.dm
@@ -43,7 +43,7 @@
/obj/item/camera/examine(mob/user)
. = ..()
- to_chat(user, "Alt-click to change its focusing, allowing you to set how big of an area it will capture.")
+ . += "Alt-click to change its focusing, allowing you to set how big of an area it will capture."
/obj/item/camera/AltClick(mob/user)
if(!user.canUseTopic(src, BE_CLOSE))
@@ -81,8 +81,8 @@
..()
/obj/item/camera/examine(mob/user)
- ..()
- to_chat(user, "It has [pictures_left] photos left.")
+ . = ..()
+ . += "It has [pictures_left] photos left."
//user can be atom or mob
/obj/item/camera/proc/can_target(atom/target, mob/user, prox_flag)
@@ -211,4 +211,4 @@
picture.caption = caption
p.set_picture(picture, TRUE, TRUE)
if(CONFIG_GET(flag/picture_logging_camera))
- picture.log_to_file()
\ No newline at end of file
+ picture.log_to_file()
diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm
index 081c6240..b7f3066a 100644
--- a/code/modules/photography/photos/frame.dm
+++ b/code/modules/photography/photos/frame.dm
@@ -40,8 +40,8 @@
/obj/item/wallframe/picture/examine(mob/user)
if(user.is_holding(src) && displayed)
displayed.show(user)
- else
- ..()
+ return list()
+ return ..()
/obj/item/wallframe/picture/update_icon()
cut_overlays()
diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm
index b6a3f537..a061a270 100644
--- a/code/modules/photography/photos/photo.dm
+++ b/code/modules/photography/photos/photo.dm
@@ -62,12 +62,12 @@
..()
/obj/item/photo/examine(mob/user)
- ..()
+ . = ..()
if(in_range(src, user))
show(user)
else
- to_chat(user, "You need to get closer to get a good look at this photo!")
+ . += "You need to get closer to get a good look at this photo!"
/obj/item/photo/proc/show(mob/user)
if(!istype(picture) || !picture.picture_image)
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 75b7fe51..ad59211f 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -243,33 +243,33 @@
addtimer(CALLBACK(src, .proc/update), 5)
/obj/machinery/power/apc/examine(mob/user)
- ..()
+ . = ..()
if(stat & BROKEN)
return
if(opened)
if(has_electronics && terminal)
- to_chat(user, "The cover is [opened==APC_COVER_REMOVED?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"].")
+ . += "The cover is [opened==APC_COVER_REMOVED?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]."
else
- to_chat(user, "It's [ !terminal ? "not" : "" ] wired up.")
- to_chat(user, "The electronics are[!has_electronics?"n't":""] installed.")
+ . += "It's [ !terminal ? "not" : "" ] wired up."
+ . += "The electronics are[!has_electronics?"n't":""] installed."
if(user.Adjacent(src) && integration_cog)
- to_chat(user, "[src]'s innards have been replaced by strange brass machinery!")
+ . += "[src]'s innards have been replaced by strange brass machinery!"
else
if (stat & MAINT)
- to_chat(user, "The cover is closed. Something is wrong with it. It doesn't work.")
+ . += "The cover is closed. Something is wrong with it. It doesn't work."
else if (malfhack)
- to_chat(user, "The cover is broken. It may be hard to force it open.")
+ . += "The cover is broken. It may be hard to force it open."
else
- to_chat(user, "The cover is closed.")
+ . += "The cover is closed."
if(integration_cog && is_servant_of_ratvar(user))
- to_chat(user, "There is an integration cog installed!")
+ . += "There is an integration cog installed!"
- to_chat(user, "Alt-Click the APC to [ locked ? "unlock" : "lock"] the interface.")
+ . += "Alt-Click the APC to [ locked ? "unlock" : "lock"] the interface."
if(issilicon(user))
- to_chat(user, "Ctrl-Click the APC to switch the breaker [ operating ? "off" : "on"].")
+ . += "Ctrl-Click the APC to switch the breaker [ operating ? "off" : "on"]."
// update the APC icon to show the three base states
// also add overlays for indicator lights
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index f30bafcd..e87adf58 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -93,11 +93,11 @@
return power_used
/obj/item/stock_parts/cell/examine(mob/user)
- ..()
+ . = ..()
if(rigged)
- to_chat(user, "This power cell seems to be faulty!")
+ . += "This power cell seems to be faulty!"
else
- to_chat(user, "The charge meter reads [round(src.percent() )]%.")
+ . += "The charge meter reads [round(src.percent() )]%."
/obj/item/stock_parts/cell/suicide_act(mob/user)
user.visible_message("[user] is licking the electrodes of [src]! It looks like [user.p_theyre()] trying to commit suicide!")
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index f995993e..d4b3cbad 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -66,22 +66,21 @@
return cell
/obj/structure/light_construct/examine(mob/user)
- ..()
+ . = ..()
switch(src.stage)
if(1)
- to_chat(user, "It's an empty frame.")
+ . += "It's an empty frame."
if(2)
- to_chat(user, "It's wired.")
+ . += "It's wired."
if(3)
- to_chat(user, "The casing is closed.")
+ . += "The casing is closed."
if(cell_connectors)
if(cell)
- to_chat(user, "You see [cell] inside the casing.")
+ . += "You see [cell] inside the casing."
else
- to_chat(user, "The casing has no power cell for backup power.")
+ . += "The casing has no power cell for backup power."
else
- to_chat(user, "This casing doesn't support power cells for backup power.")
- return
+ . += "This casing doesn't support power cells for backup power."
/obj/structure/light_construct/attackby(obj/item/W, mob/user, params)
add_fingerprint(user)
@@ -394,18 +393,18 @@
// examine verb
/obj/machinery/light/examine(mob/user)
- ..()
+ . = ..()
switch(status)
if(LIGHT_OK)
- to_chat(user, "It is turned [on? "on" : "off"].")
+ . += "It is turned [on? "on" : "off"]."
if(LIGHT_EMPTY)
- to_chat(user, "The [fitting] has been removed.")
+ . += "The [fitting] has been removed."
if(LIGHT_BURNED)
- to_chat(user, "The [fitting] is burnt out.")
+ . += "The [fitting] is burnt out."
if(LIGHT_BROKEN)
- to_chat(user, "The [fitting] has been smashed.")
+ . += "The [fitting] has been smashed."
if(cell)
- to_chat(user, "Its backup power charge meter reads [round((cell.charge / cell.maxcharge) * 100, 0.1)]%.")
+ . += "Its backup power charge meter reads [round((cell.charge / cell.maxcharge) * 100, 0.1)]%."
diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm
index c0efe594..6b0ab6cb 100644
--- a/code/modules/power/monitor.dm
+++ b/code/modules/power/monitor.dm
@@ -27,8 +27,8 @@
is_secret_monitor = TRUE
/obj/machinery/computer/monitor/secret/examine(mob/user)
- ..()
- to_chat(user, "It's operating system seems quite outdated... It doesn't seem like it'd be compatible with the latest remote NTOS monitoring systems.")
+ . = ..()
+ . += "It's operating system seems quite outdated... It doesn't seem like it'd be compatible with the latest remote NTOS monitoring systems."
/obj/machinery/computer/monitor/Initialize()
. = ..()
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 5d4a31e9..d11acd02 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -56,8 +56,8 @@
soundloop.stop()
/obj/machinery/power/port_gen/examine(mob/user)
- ..()
- to_chat(user, "It is[!active?"n't":""] running.")
+ . = ..()
+ . += "It is[!active?"n't":""] running."
/obj/machinery/power/port_gen/pacman
name = "\improper P.A.C.M.A.N.-type portable generator"
@@ -99,10 +99,10 @@
consumption = consumption_coeff
/obj/machinery/power/port_gen/pacman/examine(mob/user)
- ..()
- to_chat(user, "The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle.")
+ . = ..()
+ . += "The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle."
if(crit_fail)
- to_chat(user, "The generator seems to have broken down.")
+ . += "The generator seems to have broken down."
/obj/machinery/power/port_gen/pacman/HasFuel()
if(sheets >= 1 / (time_per_sheet / power_output) - sheet_left)
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 07a5ce95..021b5fea 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -170,14 +170,14 @@
. = ..()
if(active)
if(!bitcoinmining)
- to_chat(user, "[src]'s display states that it has stored [DisplayPower(stored_power)], and processing [DisplayPower(RAD_COLLECTOR_OUTPUT)].")
+ . += "[src]'s display states that it has stored [DisplayPower(stored_power)], and is processing [DisplayPower((RAD_COLLECTOR_OUTPUT)*((60 SECONDS)/SSmachines.wait))] per minute.
The plasma within it's tank is being irradiated into tritium."
else
- to_chat(user, "[src]'s display states that it has stored a total of [stored_power*RAD_COLLECTOR_MINING_CONVERSION_RATE], and producing [RAD_COLLECTOR_OUTPUT*RAD_COLLECTOR_MINING_CONVERSION_RATE] research points per minute.")
+ . += "[src]'s display states that it's producing a total of [(stored_power*RAD_COLLECTOR_MINING_CONVERSION_RATE)*((60 SECONDS)/SSmachines.wait)] research points per minute.
The tritium and oxygen within it's tank is being combusted into carbon dioxide."
else
if(!bitcoinmining)
- to_chat(user,"[src]'s display displays the words: \"Power production mode. Please insert Plasma. Use a multitool to change production modes.\"")
+ . += "[src]'s display displays the words: \"Power production mode. Please insert Plasma. Use a multitool to change production modes.\""
else
- to_chat(user,"[src]'s display displays the words: \"Research point production mode. Please insert Tritium and Oxygen. Use a multitool to change production modes.\"")
+ . += "[src]'s display displays the words: \"Research point production mode. Please insert Tritium and Oxygen. Use a multitool to change production modes.\""
/obj/machinery/power/rad_collector/obj_break(damage_flag)
if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1))
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index ac2f2647..09fb3ad4 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -36,15 +36,14 @@
var/strength = null
/obj/structure/particle_accelerator/examine(mob/user)
- ..()
-
+ . = ..()
switch(construction_state)
if(PA_CONSTRUCTION_UNSECURED)
- to_chat(user, "Looks like it's not attached to the flooring.")
+ . += "Looks like it's not attached to the flooring."
if(PA_CONSTRUCTION_UNWIRED)
- to_chat(user, "It is missing some cables.")
+ . += "It is missing some cables."
if(PA_CONSTRUCTION_PANEL_OPEN)
- to_chat(user, "The panel is open.")
+ . += "The panel is open."
/obj/structure/particle_accelerator/Destroy()
construction_state = PA_CONSTRUCTION_UNSECURED
diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm
index 3748d8c7..73e09050 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -257,15 +257,14 @@
popup.open()
/obj/machinery/particle_accelerator/control_box/examine(mob/user)
- ..()
+ . = ..()
switch(construction_state)
if(PA_CONSTRUCTION_UNSECURED)
- to_chat(user, "Looks like it's not attached to the flooring.")
+ . += "Looks like it's not attached to the flooring."
if(PA_CONSTRUCTION_UNWIRED)
- to_chat(user, "It is missing some cables.")
+ . += "It is missing some cables."
if(PA_CONSTRUCTION_PANEL_OPEN)
- to_chat(user, "The panel is open.")
-
+ . += "The panel is open."
/obj/machinery/particle_accelerator/control_box/attackby(obj/item/W, mob/user, params)
var/did_something = FALSE
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 3637bf38..774f7ba1 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -39,9 +39,9 @@
var/obj/machinery/power/terminal/terminal = null
/obj/machinery/power/smes/examine(user)
- ..()
+ . = ..()
if(!terminal)
- to_chat(user, "This SMES has no power terminal!")
+ . += "This SMES has no power terminal!"
/obj/machinery/power/smes/Initialize()
. = ..()
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index 31dda76e..4b983131 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -187,17 +187,11 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
return ..()
/obj/machinery/power/supermatter_crystal/examine(mob/user)
- ..()
- if(!ishuman(user))
- return
-
- var/range = HALLUCINATION_RANGE(power)
- for(var/mob/living/carbon/human/H in viewers(range, src))
- if(H != user)
- continue
- if(!istype(H.glasses, /obj/item/clothing/glasses/meson))
- to_chat(H, "You get headaches just from looking at it.")
- return
+ . = ..()
+ if (iscarbon(user))
+ var/mob/living/carbon/C = user
+ if (!istype(C.glasses, /obj/item/clothing/glasses/meson) && (get_dist(user, src) < HALLUCINATION_RANGE(power)))
+ . += "You get headaches just from looking at it."
/obj/machinery/power/supermatter_crystal/proc/get_status()
var/turf/T = get_turf(src)
diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm
index bbad3e08..5ddbbc42 100644
--- a/code/modules/power/tesla/energy_ball.dm
+++ b/code/modules/power/tesla/energy_ball.dm
@@ -71,9 +71,9 @@
energy = 0 // ensure we dont have miniballs of miniballs
/obj/singularity/energy_ball/examine(mob/user)
- ..()
+ . = ..()
if(orbiting_balls.len)
- to_chat(user, "The amount of orbiting mini-balls is [orbiting_balls.len].")
+ . += "The amount of orbiting mini-balls is [orbiting_balls.len]."
/obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index b0f9a7b4..9d670a91 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -83,11 +83,11 @@
qdel(src)
/obj/item/gun/examine(mob/user)
- ..()
+ . = ..()
if(pin)
- to_chat(user, "It has \a [pin] installed.")
+ . += "It has \a [pin] installed."
else
- to_chat(user, "It doesn't have a firing pin installed, and won't fire.")
+ . += "It doesn't have a firing pin installed, and won't fire."
/obj/item/gun/equipped(mob/living/user, slot)
. = ..()
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 1117bc10..31f6b3dd 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -140,8 +140,8 @@
/obj/item/gun/ballistic/examine(mob/user)
- ..()
- to_chat(user, "It has [get_ammo()] round\s remaining.")
+ . = ..()
+ . += "It has [get_ammo()] round\s remaining."
/obj/item/gun/ballistic/proc/get_ammo(countchambered = 1)
var/boolets = 0 //mature var names for mature people
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index c307a8db..7ac4c8cd 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -320,9 +320,9 @@
pin = /obj/item/firing_pin
/obj/item/gun/ballistic/automatic/l6_saw/examine(mob/user)
- ..()
+ . = ..()
if(cover_open && magazine)
- to_chat(user, "It seems like you could use an empty hand to remove the magazine.")
+ . += "It seems like you could use an empty hand to remove the magazine."
/obj/item/gun/ballistic/automatic/l6_saw/attack_self(mob/user)
cover_open = !cover_open
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index f455e0f1..3c0d2800 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -81,8 +81,8 @@
return boolets
/obj/item/gun/ballistic/revolver/examine(mob/user)
- ..()
- to_chat(user, "[get_ammo(0,0)] of those are live rounds.")
+ . = ..()
+ . += "[get_ammo(0,0)] of those are live rounds."
/obj/item/gun/ballistic/revolver/detective
name = "\improper .38 Mars Special"
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 43295baf..ff51adfa 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -72,9 +72,9 @@
chambered = AC
/obj/item/gun/ballistic/shotgun/examine(mob/user)
- ..()
+ . = ..()
if (chambered)
- to_chat(user, "A [chambered.BB ? "live" : "spent"] one is in the chamber.")
+ . += "A [chambered.BB ? "live" : "spent"] one is in the chamber."
/obj/item/gun/ballistic/shotgun/lethal
mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal
@@ -139,8 +139,8 @@
. = ..()
/obj/item/gun/ballistic/shotgun/boltaction/examine(mob/user)
- ..()
- to_chat(user, "The bolt is [bolt_open ? "open" : "closed"].")
+ . = ..()
+ . += "The bolt is [bolt_open ? "open" : "closed"]."
/obj/item/gun/ballistic/shotgun/boltaction/enchanted
name = "enchanted bolt action rifle"
@@ -228,8 +228,8 @@
. = ..()
/obj/item/gun/ballistic/shotgun/automatic/combat/compact/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to toggle the stock.")
+ . = ..()
+ . += "Alt-click to toggle the stock."
/obj/item/gun/ballistic/shotgun/automatic/combat/compact/proc/toggle_stock(mob/living/user)
stock = !stock
@@ -260,9 +260,8 @@
var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to pump it.")
. = ..()
+ . += "Alt-click to pump it."
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/Initialize()
. = ..()
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index a4ec979a..6dd37062 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -61,12 +61,12 @@
cut_overlays()
/obj/item/gun/energy/kinetic_accelerator/examine(mob/user)
- ..()
+ . = ..()
if(max_mod_capacity)
- to_chat(user, "[get_remaining_mod_capacity()]% mod capacity remaining.")
+ . += "[get_remaining_mod_capacity()]% mod capacity remaining."
for(var/A in get_modkits())
var/obj/item/borg/upgrade/modkit/M = A
- to_chat(user, "There is \a [M] installed, using [M.cost]% capacity.")
+ . += "There is \a [M] installed, using [M.cost]% capacity."
/obj/item/gun/energy/kinetic_accelerator/crowbar_act(mob/living/user, obj/item/I)
. = TRUE
@@ -270,8 +270,8 @@
var/minebot_exclusive = FALSE
/obj/item/borg/upgrade/modkit/examine(mob/user)
- ..()
- to_chat(user, "Occupies [cost]% of mod capacity.")
+ . = ..()
+ . += "Occupies [cost]% of mod capacity."
/obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user)
if(istype(A, /obj/item/gun/energy/kinetic_accelerator) && !issilicon(user))
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index eabdf50e..eeb272f8 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -135,9 +135,9 @@
AddComponent(/datum/component/butchering, 25, 105, 0, 'sound/weapons/plasma_cutter.ogg')
/obj/item/gun/energy/plasmacutter/examine(mob/user)
- ..()
+ . = ..()
if(cell)
- to_chat(user, "[src] is [round(cell.percent())]% charged.")
+ . += "[src] is [round(cell.percent())]% charged."
/obj/item/gun/energy/plasmacutter/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/stack/sheet/mineral/plasma))
diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm
index 465b8b64..d5815205 100644
--- a/code/modules/projectiles/guns/magic/wand.dm
+++ b/code/modules/projectiles/guns/magic/wand.dm
@@ -18,8 +18,8 @@
return ..()
/obj/item/gun/magic/wand/examine(mob/user)
- ..()
- to_chat(user, "Has [charges] charge\s remaining.")
+ . = ..()
+ . += "Has [charges] charge\s remaining."
/obj/item/gun/magic/wand/update_icon()
icon_state = "[initial(icon_state)][charges ? "" : "-drained"]"
diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm
index 28a78be3..5a8c5a06 100644
--- a/code/modules/projectiles/guns/misc/grenade_launcher.dm
+++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm
@@ -13,8 +13,8 @@
materials = list(MAT_METAL=2000)
/obj/item/gun/grenadelauncher/examine(mob/user)
- ..()
- to_chat(user, "[grenades.len] / [max_grenades] grenades loaded.")
+ . = ..()
+ . += "[grenades.len] / [max_grenades] grenades loaded."
/obj/item/gun/grenadelauncher/attackby(obj/item/I, mob/user, params)
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index 3e4b800b..15290c3a 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -30,8 +30,8 @@
recharge_newshot()
/obj/item/gun/syringe/examine(mob/user)
- ..()
- to_chat(user, "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining.")
+ . = ..()
+ . += "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
/obj/item/gun/syringe/attack_self(mob/living/user)
if(!syringes.len)
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index b34ceb50..772fff94 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -88,20 +88,21 @@
return ..()
/obj/machinery/chem_dispenser/examine(mob/user)
- ..()
+ . = ..()
if(panel_open)
- to_chat(user, "[src]'s maintenance hatch is open!")
+ . += "[src]'s maintenance hatch is open!"
if(in_range(user, src) || isobserver(user))
- to_chat(user, "The status display reads:
Recharging [recharge_amount] power units per interval.
Power efficiency increased by [(powerefficiency*1000)-100]%.")
+ . += "The status display reads:
Recharging [recharge_amount] power units per interval.
Power efficiency increased by [(powerefficiency*1000)-100]%."
switch(macrotier)
if(1)
- to_chat(user, "Macro granularity at 5u.")
+ . += "Macro granularity at 5u."
if(2)
- to_chat(user, "Macro granularity at 3u.")
+ . += "Macro granularity at 3u."
if(3)
- to_chat(user, "Macro granularity at 2u.")
+ . += "Macro granularity at 2u."
if(4)
- to_chat(user, "Macro granularity at 1u.")
+ . += "Macro granularity at 1u."
+
/obj/machinery/chem_dispenser/process()
if (recharge_counter >= 4)
if(!is_operational())
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 1847f1f7..98cfd877 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -191,27 +191,27 @@
/obj/machinery/reagentgrinder/examine(mob/user)
. = ..()
if(!in_range(user, src) && !issilicon(user) && !isobserver(user))
- to_chat(user, "You're too far away to examine [src]'s contents and display!")
+ . += "You're too far away to examine [src]'s contents and display!"
return
if(operating)
- to_chat(user, "\The [src] is operating.")
+ . += "\The [src] is operating."
return
if(beaker || length(holdingitems))
- to_chat(user, "\The [src] contains:")
+ . += "\The [src] contains:"
if(beaker)
- to_chat(user, "- \A [beaker].")
+ . += "- \A [beaker]."
for(var/i in holdingitems)
var/obj/item/O = i
- to_chat(user, "- \A [O.name].")
+ . += "- \A [O.name]."
if(!(stat & (NOPOWER|BROKEN)))
- to_chat(user, "The status display reads:")
- to_chat(user, "- Grinding reagents at [speed*100]%.")
+ . += "The status display reads:"
+ . += "- Grinding reagents at [speed*100]%."
if(beaker)
for(var/datum/reagent/R in beaker.reagents.reagent_list)
- to_chat(user, "- [R.volume] units of [R.name].")
+ . += "- [R.volume] units of [R.name]."
/obj/machinery/reagentgrinder/proc/eject(mob/user)
for(var/i in holdingitems)
diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm
index 89380399..9dda7256 100644
--- a/code/modules/reagents/chemistry/recipes/special.dm
+++ b/code/modules/reagents/chemistry/recipes/special.dm
@@ -173,7 +173,7 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related
/obj/item/paper/secretrecipe/examine(mob/user) //Extra secret
if(isobserver(user))
- return
+ return list()
. = ..()
/obj/item/paper/secretrecipe/Initialize()
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index 828a4be6..cca05d66 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -124,9 +124,8 @@ Borg Hypospray
return
/obj/item/reagent_containers/borghypo/examine(mob/user)
- usr = user
- ..()
- DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this
+ . = ..()
+ . += DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this
/obj/item/reagent_containers/borghypo/proc/DescribeContents()
var/empty = 1
@@ -134,11 +133,11 @@ Borg Hypospray
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
- to_chat(usr, "It currently has [R.volume] unit\s of [R.name] stored.")
+ . += "It currently has [R.volume] unit\s of [R.name] stored."
empty = 0
if(empty)
- to_chat(usr, "It is currently empty! Allow some time for the internal syntheszier to produce more.")
+ . += "It is currently empty! Allow some time for the internal syntheszier to produce more."
/obj/item/reagent_containers/borghypo/hacked
icon_state = "borghypo_s"
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index ef1e7c06..4381be1a 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -121,11 +121,11 @@
icon_state = "[initial(icon_state)]0"
/obj/item/reagent_containers/hypospray/medipen/examine()
- ..()
+ . = ..()
if(reagents && reagents.reagent_list.len)
- to_chat(usr, "It is currently loaded.")
+ . += "It is currently loaded."
else
- to_chat(usr, "It is spent.")
+ . += "It is spent."
/obj/item/reagent_containers/hypospray/medipen/stimpack //goliath kiting
name = "stimpack medipen"
diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm
index 713b6a62..df895572 100644
--- a/code/modules/reagents/reagent_containers/rags.dm
+++ b/code/modules/reagents/reagent_containers/rags.dm
@@ -23,7 +23,7 @@
/obj/item/reagent_containers/rag/examine(mob/user)
. = ..()
if(reagents.total_volume)
- to_chat(user, "Alt-Click to squeeze the liquids out of it.")
+ . += "Alt-Click to squeeze the liquids out of it."
/obj/item/reagent_containers/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity)
. = ..()
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 8c451c80..e34041ed 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -142,13 +142,13 @@
var/paper_cups = 25 //Paper cups left from the cooler
/obj/structure/reagent_dispensers/water_cooler/examine(mob/user)
- ..()
+ . = ..()
if (paper_cups > 1)
- to_chat(user, "There are [paper_cups] paper cups left.")
+ . += "There are [paper_cups] paper cups left."
else if (paper_cups == 1)
- to_chat(user, "There is one paper cup left.")
+ . += "There is one paper cup left."
else
- to_chat(user, "There are no paper cups left.")
+ . += "There are no paper cups left."
/obj/structure/reagent_dispensers/water_cooler/attack_hand(mob/living/user)
. = ..()
diff --git a/code/modules/recycling/disposal/pipe_sorting.dm b/code/modules/recycling/disposal/pipe_sorting.dm
index d85c4bca..2d40ec64 100644
--- a/code/modules/recycling/disposal/pipe_sorting.dm
+++ b/code/modules/recycling/disposal/pipe_sorting.dm
@@ -50,13 +50,13 @@
sortTypes |= n
/obj/structure/disposalpipe/sorting/mail/examine(mob/user)
- ..()
+ . = ..()
if(sortTypes.len)
- to_chat(user, "It is tagged with the following tags:")
+ . += "It is tagged with the following tags:"
for(var/t in sortTypes)
- to_chat(user, "\t[GLOB.TAGGERLOCATIONS[t]].")
+ . += "\t[GLOB.TAGGERLOCATIONS[t]]."
else
- to_chat(user, "It has no sorting tags set.")
+ . += "It has no sorting tags set."
/obj/structure/disposalpipe/sorting/mail/attackby(obj/item/I, mob/user, params)
diff --git a/code/modules/research/nanites/nanite_hijacker.dm b/code/modules/research/nanites/nanite_hijacker.dm
index dba47a4a..88779df4 100644
--- a/code/modules/research/nanites/nanite_hijacker.dm
+++ b/code/modules/research/nanites/nanite_hijacker.dm
@@ -18,7 +18,7 @@
/obj/item/nanite_hijacker/examine(mob/user)
. = ..()
if(disk)
- to_chat(user, "Alt-click [src] to eject the disk.")
+ . += "Alt-click [src] to eject the disk."
/obj/item/nanite_hijacker/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/disk/nanite_program))
diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm
index 60dd78cf..46d8f297 100644
--- a/code/modules/research/nanites/nanite_remote.dm
+++ b/code/modules/research/nanites/nanite_remote.dm
@@ -22,7 +22,7 @@
/obj/item/nanite_remote/examine(mob/user)
. = ..()
if(locked)
- to_chat(user, "Alt-click to unlock.")
+ . += "Alt-click to unlock."
/obj/item/nanite_remote/AltClick(mob/user)
. = ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm
index 4d39d956..a21fddb6 100644
--- a/code/modules/research/xenobiology/crossbreeding/industrial.dm
+++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm
@@ -13,8 +13,8 @@ Industrial extracts:
var/itemamount = 1 //How many items to spawn
/obj/item/slimecross/industrial/examine(mob/user)
- ..()
- to_chat(user, "It currently has [plasmaabsorbed] units of plasma floating inside the outer shell, out of [plasmarequired] units.")
+ . = ..()
+ . += "It currently has [plasmaabsorbed] units of plasma floating inside the outer shell, out of [plasmarequired] units."
/obj/item/slimecross/industrial/proc/do_after_spawn(obj/item/spawned)
return
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index d7af9295..2299d5f5 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -18,9 +18,9 @@
var/recurring = FALSE
/obj/item/slime_extract/examine(mob/user)
- ..()
+ . = ..()
if(Uses > 1)
- to_chat(user,"It has [Uses] uses remaining.")
+ . += "It has [Uses] uses remaining."
/obj/item/slime_extract/attackby(obj/item/O, mob/user)
if(istype(O, /obj/item/slimepotion/enhancer))
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index 24631f01..408133d2 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -76,13 +76,13 @@
var/heavy_burn_msg = "peeling away"
/obj/item/bodypart/examine(mob/user)
- ..()
+ . = ..()
if(brute_dam > DAMAGE_PRECISION)
- to_chat(user, "This limb has [brute_dam > 30 ? "severe" : "minor"] bruising.")
+ . += "This limb has [brute_dam > 30 ? "severe" : "minor"] bruising."
if(burn_dam > DAMAGE_PRECISION)
- to_chat(user, "This limb has [burn_dam > 30 ? "severe" : "minor"] burns.")
+ . += "This limb has [burn_dam > 30 ? "severe" : "minor"] burns."
if(broken == TRUE)
- to_chat(user, "This limb is broken.")
+ . += "This limb is broken."
/obj/item/bodypart/blob_act()
take_damage(max_damage)
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index 44864dd9..09ba9ca7 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -38,8 +38,8 @@
transform = matrix(-1, 0, 0, 0, 1, 0)
/obj/item/organ/cyberimp/arm/examine(mob/user)
- ..()
- to_chat(user, "[src] is assembled in the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.")
+ . = ..()
+ . += "[src] is assembled in the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it."
/obj/item/organ/cyberimp/arm/screwdriver_act(mob/living/user, obj/item/I)
. = ..()
diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm
index 54bc03bc..e4cb0904 100644
--- a/code/modules/vehicles/_vehicle.dm
+++ b/code/modules/vehicles/_vehicle.dm
@@ -32,17 +32,17 @@
generate_actions()
/obj/vehicle/examine(mob/user)
- ..()
+ . = ..()
if(resistance_flags & ON_FIRE)
- to_chat(user, "It's on fire!")
+ . += "It's on fire!"
var/healthpercent = obj_integrity/max_integrity * 100
switch(healthpercent)
if(50 to 99)
- to_chat(user, "It looks slightly damaged.")
+ . += "It looks slightly damaged."
if(25 to 50)
- to_chat(user, "It appears heavily damaged.")
+ . += "It appears heavily damaged."
if(0 to 25)
- to_chat(user, "It's falling apart!")
+ . += "It's falling apart!"
/obj/vehicle/proc/is_key(obj/item/I)
return I? (key_type_exact? (I.type == key_type) : istype(I, key_type)) : FALSE
diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm
index 9d313e9b..c398b528 100644
--- a/code/modules/vehicles/pimpin_ride.dm
+++ b/code/modules/vehicles/pimpin_ride.dm
@@ -29,9 +29,9 @@
icon_state = "upgrade"
/obj/vehicle/ridden/janicart/examine(mob/user)
- ..()
+ . = ..()
if(floorbuffer)
- to_chat(user, "It has been upgraded with a floor buffer.")
+ . += "It has been upgraded with a floor buffer."
/obj/vehicle/ridden/janicart/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/storage/bag/trash))
diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm
index 955f0671..25f54d88 100644
--- a/code/modules/vehicles/ridden.dm
+++ b/code/modules/vehicles/ridden.dm
@@ -15,9 +15,9 @@
. = ..()
if(key_type)
if(!inserted_key)
- to_chat(user, "Put a key inside it by clicking it with the key.")
+ . += "Put a key inside it by clicking it with the key."
else
- to_chat(user, "Alt-click [src] to remove the key.")
+ . += "Alt-click [src] to remove the key."
/obj/vehicle/ridden/generate_action_type(actiontype)
var/datum/action/vehicle/ridden/A = ..()
diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator.dm b/modular_citadel/code/game/gamemodes/gangs/dominator.dm
index 5ad740ed..38ac4567 100644
--- a/modular_citadel/code/game/gamemodes/gangs/dominator.dm
+++ b/modular_citadel/code/game/gamemodes/gangs/dominator.dm
@@ -67,18 +67,18 @@
icon_state = "dominator-broken"
/obj/machinery/dominator/examine(mob/user)
- ..()
+ . = ..()
if(stat & BROKEN)
return
if(gang && gang.domination_time != NOT_DOMINATING)
if(gang.domination_time > world.time)
- to_chat(user, "Hostile Takeover in progress. Estimated [gang.domination_time_remaining()] seconds remain.")
+ . += "Hostile Takeover in progress. Estimated [gang.domination_time_remaining()] seconds remain."
else
- to_chat(user, "Hostile Takeover of [station_name()] successful. Have a great day.")
+ . += "Hostile Takeover of [station_name()] successful. Have a great day."
else
- to_chat(user, "System on standby.")
- to_chat(user, "System Integrity: [round((obj_integrity/max_integrity)*100,1)]%")
+ . += "System on standby."
+ . += "System Integrity: [round((obj_integrity/max_integrity)*100,1)]%"
/obj/machinery/dominator/process()
..()
diff --git a/modular_citadel/code/game/objects/ids.dm b/modular_citadel/code/game/objects/ids.dm
index 89a3c0f0..76469547 100644
--- a/modular_citadel/code/game/objects/ids.dm
+++ b/modular_citadel/code/game/objects/ids.dm
@@ -42,8 +42,8 @@
update_icon()
/obj/item/card/id/knight/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to recolor it.")
+ . = ..()
+ . += "Alt-click to recolor it."
//=================================================
diff --git a/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm b/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm
index 033057ba..2be99436 100644
--- a/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm
+++ b/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm
@@ -101,8 +101,8 @@
update_light()
/obj/item/melee/transforming/energy/sword/cx/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to recolor it.")
+ . = ..()
+ . += "Alt-click to recolor it."
/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file)
. = ..()
@@ -231,8 +231,8 @@
return ..()
/obj/item/toy/sword/cx/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to recolor it.")
+ . = ..()
+ . += "Alt-click to recolor it."
/////////////////////////////////////////////////////
// HYPEREUTACTIC Blades /////////////////////////
@@ -335,9 +335,9 @@
. += blade_inhand
/obj/item/twohanded/dualsaber/hypereutactic/examine(mob/user)
- ..()
+ . = ..()
if(!hacked)
- to_chat(user, "Alt-click to recolor it.")
+ . += "Alt-click to recolor it."
/obj/item/twohanded/dualsaber/hypereutactic/rainbow_process()
. = ..()
@@ -389,4 +389,4 @@
/obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow
name = "\improper Hyper-Euclidean Reciprocating Trigonometric Zweihander"
desc = "A custom-built toy with fancy rainbow lights built-in."
- hacked = TRUE
\ No newline at end of file
+ hacked = TRUE
diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm
index db7f1217..55a41acc 100644
--- a/modular_citadel/code/modules/arousal/toys/dildos.dm
+++ b/modular_citadel/code/modules/arousal/toys/dildos.dm
@@ -93,9 +93,9 @@
pixel_x = rand(-7,7)
/obj/item/dildo/examine(mob/user)
- ..()
+ . = ..()
if(can_customize)
- user << "Alt-Click \the [src.name] to customize it."
+ . += "Alt-Click \the [src.name] to customize it."
/obj/item/dildo/random//totally random
name = "random dildo"//this name will show up in vendors and shit so you know what you're vending(or don't, i guess :^))
diff --git a/modular_citadel/code/modules/clothing/clothing.dm b/modular_citadel/code/modules/clothing/clothing.dm
index 7f366ecf..b23e805f 100644
--- a/modular_citadel/code/modules/clothing/clothing.dm
+++ b/modular_citadel/code/modules/clothing/clothing.dm
@@ -80,9 +80,9 @@
user.regenerate_icons()
/obj/item/clothing/examine(mob/user)
- ..()
+ . = ..()
if(hasprimary | hassecondary | hastertiary)
- to_chat(user, "Alt-click to recolor it.") // so people don't "OOC how do you use polychromic clothes????"
+ . += "Alt-click to recolor it."
/obj/item/clothing/Initialize()
..()
diff --git a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm
index 49eb089a..b1b351b3 100644
--- a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm
+++ b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm
@@ -20,9 +20,9 @@
. = ..()
if(combattoggle_redir)
if(world.time >= nextadrenalinepop)
- to_chat(user, "The built-in adrenaline injector is ready for use.")
+ . += "The built-in adrenaline injector is ready for use."
else
- to_chat(user, "[DisplayTimeText(nextadrenalinepop - world.time)] left before the adrenaline injector can be used again.")
+ . += "[DisplayTimeText(nextadrenalinepop - world.time)] left before the adrenaline injector can be used again."
/obj/item/clothing/glasses/phantomthief/syndicate/proc/injectadrenaline(mob/user, combatmodestate)
if(istype(user))
diff --git a/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm b/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm
index 423bc536..d85b10fa 100644
--- a/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm
+++ b/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm
@@ -172,5 +172,5 @@
update_light()
/obj/item/clothing/suit/space/hardsuit/lavaknight/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to recolor it.")
\ No newline at end of file
+ . = ..()
+ . += "Alt-click to recolor it."
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm
index 8786eb6d..2115c478 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm
@@ -176,9 +176,9 @@
/obj/item/gun/ballistic/automatic/magrifle_e/examine(mob/user)
. = ..()
if(cell)
- to_chat(user, "[src]'s cell is [round(cell.charge / cell.maxcharge, 0.1) * 100]% full.")
+ . += "[src]'s cell is [round(cell.charge / cell.maxcharge, 0.1) * 100]% full."
else
- to_chat(user, "[src] doesn't seem to have a cell!")
+ . += "[src] doesn't seem to have a cell!"
/obj/item/gun/ballistic/automatic/magrifle_e/can_shoot()
if(QDELETED(cell))
@@ -239,9 +239,9 @@
/obj/item/gun/ballistic/automatic/pistol/mag_e/examine(mob/user)
. = ..()
if(cell)
- to_chat(user, "[src]'s cell is [round(cell.charge / cell.maxcharge, 0.1) * 100]% full.")
+ . += "[src]'s cell is [round(cell.charge / cell.maxcharge, 0.1) * 100]% full."
else
- to_chat(user, "[src] doesn't seem to have a cell!")
+ . += "[src] doesn't seem to have a cell!"
/obj/item/gun/ballistic/automatic/pistol/mag_e/can_shoot()
if(QDELETED(cell))
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
index 1e0e0afc..e40ccfe6 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
@@ -218,8 +218,8 @@
body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1)
update_icon()
/obj/item/gun/ballistic/automatic/AM4B/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to recolor it.")
+ . = ..()
+ . += "Alt-click to recolor it."
/obj/item/ammo_box/magazine/toy/AM4C
name = "foam force AM4-C magazine"
diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
index fa0e6403..14773e19 100644
--- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
+++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
@@ -94,8 +94,8 @@
update_icon()
/obj/item/gun/energy/pumpaction/examine(mob/user) //so people don't ask HOW TO CHANGE FIRING MODE
- ..()
- to_chat(user, "Alt-click to change firing modes.")
+ . = ..()
+ . += "Alt-click to change firing modes."
/obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file) //ammo counter for inhands
. = ..()
diff --git a/modular_citadel/code/modules/vore/resizing/holder_micro_vr.dm b/modular_citadel/code/modules/vore/resizing/holder_micro_vr.dm
index 8eea2737..1f1aacf9 100644
--- a/modular_citadel/code/modules/vore/resizing/holder_micro_vr.dm
+++ b/modular_citadel/code/modules/vore/resizing/holder_micro_vr.dm
@@ -10,8 +10,9 @@
pixel_y = 0 // Override value from parent.
/obj/item/holder/micro/examine(var/mob/user)
+ . = list()
for(var/mob/living/M in contents)
- M.examine(user)
+ . += M.examine(user)
/obj/item/holder/MouseDrop(mob/M as mob)
..()