diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm
index dec55ed8ff..0f1a7452df 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/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 3eeb5b9417..df5e6a87fd 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 637e0b929c..d838b31aba 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 b468b6b1d1..c3fc942b83 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -447,11 +447,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 dd33f696c9..3183b3b2b4 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 6fcc5c9cec..e67de92773 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 057dc0d192..355660ecec 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 8953753a89..fe038ce3f1 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/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm
index e26dab07b4..3c4ed776b7 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 313d998685..e9001322d3 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 79a23014b0..38e6bdca44 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -439,7 +439,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 096c7b5b2b..e9098f9cec 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 f464fccf91..9ec0fbf120 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -294,32 +294,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.
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index ae134c2415..93ddedebc0 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 60b2d0486e..cec3e2348e 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 93d800807a..34c36883d1 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 3975da18b6..6005709dde 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 7dc4fd17b9..06a988d109 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 88d1248a28..295fc816e2 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)
. = ..()
@@ -193,7 +193,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 ab8aa3e2fd..3f6b4cec8a 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -38,12 +38,12 @@
return ..()
/obj/item/twohanded/kinetic_crusher/examine(mob/living/user)
- ..()
- to_chat(user, "Mark a large creature with the destabilizing force, then hit them in melee to do [force_wielded + detonation_damage] damage.")
- to_chat(user, "Does [force_wielded + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force_wielded + detonation_damage].")
+ . = ..()
+ . += "Mark a large creature with the destabilizing force, then hit them in melee to do [force_wielded + detonation_damage] damage."
+ . += "Does [force_wielded + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force_wielded + detonation_damage]."
for(var/t in trophies)
var/obj/item/crusher_trophy/T = t
- to_chat(user, "It has \a [T] attached, which causes [T.effect_desc()].")
+ . += "It has \a [T] attached, which causes [T.effect_desc()]."
/obj/item/twohanded/kinetic_crusher/attackby(obj/item/I, mob/living/user)
if(istype(I, /obj/item/crowbar))
@@ -202,8 +202,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 b2a2e3357d..f8b155cb9f 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 c735c9d637..00ce37b79a 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 715ecc906a..356c4913b9 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 f97d3612a8..f46f4f785c 100644
--- a/code/modules/mining/fulton.dm
+++ b/code/modules/mining/fulton.dm
@@ -14,7 +14,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 fde856c4fb..054103e8dc 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -645,10 +645,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!")
@@ -1073,8 +1073,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 d0232fc4f0..d98f00ede7 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 5a48538161..a8e867cef0 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -260,8 +260,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 997b117b25..0c8aef51a8 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 69361e8685..c3a33f36f5 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 b158815dac..3e9588d7dd 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 b323f13362..0a24b61b4a 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -862,9 +862,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 d84ba0d7a1..aa3c209016 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 decf8d24eb..48e79a9050 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 4ad7793250..e2d6b095fe 100644
--- a/code/modules/mob/living/brain/posibrain.dm
+++ b/code/modules/mob/living/brain/posibrain.dm
@@ -161,7 +161,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 e66d70f492..1cea4a6e82 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 5634d21775..eba925a659 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,35 +80,37 @@
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"
- msg += common_trait_examine()
+ . += "[t_He] [t_is] visibly tense[resting ? "." : ", and [t_is] standing in combative stance."]"
+
+ var/trait_exam = common_trait_examine()
+ if (!isnull(trait_exam))
+ . += trait_exam
var/datum/component/mood/mood = src.GetComponent(/datum/component/mood)
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"
- msg += "*---------*"
-
- to_chat(user, msg)
- return msg
\ No newline at end of file
+ . += "[t_He] look[p_s()] ecstatic."
+ . += "*---------*"
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 7b0fb74f44..7ae2ca7e26 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,121 +37,115 @@
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 && !(SLOT_S_STORE in obscured))
- 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))]."
//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(length(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
//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
+ . += "[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..."
if(!foundghost)
- msg += " and [t_his] soul has departed"
- msg += "...\n"
+ 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 += "" //Everything below gets this span
+ var/list/msg = list("") //Everything below gets this span
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()
@@ -169,8 +163,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
@@ -334,7 +327,13 @@
if(digitalcamo)
msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly inhuman manner.\n"
- msg += common_trait_examine()
+
+ if (length(msg)) //End of default warning span
+ . += "[msg.Join("")]"
+
+ var/trait_exam = common_trait_examine()
+ if (!isnull(trait_exam))
+ . += trait_exam
var/traitstring = get_trait_string()
if(ishuman(user))
@@ -345,28 +344,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]"
@@ -379,25 +375,22 @@
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"
- msg += "*---------*"
-
- to_chat(user, msg)
- return msg
+ . += "[print_flavor_text()]"
+ . += "*---------*"
/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 fb345e10ba..5e40a5a7eb 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
+ . += ..()
\ 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 c26af70d4a..37107f2d9c 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 0f8687397d..977b3c8403 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -266,8 +266,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 5e56b4180d..9180e2a132 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -1,55 +1,53 @@
/mob/living/silicon/robot/examine(mob/user)
- var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src], a [src.module.name]!\n"
+ . = list("*---------*\nThis is [icon2html(src, user)] \a [src], a [src.module.name]!")
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 += "*---------*"
+ . += "It looks like its system is corrupted and requires a reset."
+ . += "*---------*"
- to_chat(user, msg)
- ..()
- return msg
+ . += ..()
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index a5943aa0e6..1b37167c67 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -206,14 +206,14 @@
return TRUE
/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 3cc8822d02..b7067f8904 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 d7d4d1b9f2..387973b979 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
@@ -165,44 +165,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 52a007e24c..b4865c4337 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 531c513819..b1af34eb02 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 c7b46e6aed..89c4f70f69 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 d31af79c19..2b5b5236ed 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 f78f7f7d82..5ee2549054 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 b9102cf220..de5732941f 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -373,8 +373,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 dbaa8ab5fa..514edf896b 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 5e2798cc8e..5f9c8700bd 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 2001c61e12..7c85a11d2a 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+\\)")
@@ -408,37 +408,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)
+ msg += "It has some punctures in its flesh!"
else
- msg += "It has severe punctures and tears in its flesh!"
- msg += "\n"
+ msg += "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 215b4ec44f..e3daa8e3c1 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -319,7 +319,8 @@
return
face_atom(A)
- A.examine(src)
+ var/list/result = A.examine(src)
+ to_chat(src, result.Join("\n"))
//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 ce2c49cb32..1b3501f78b 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -202,11 +202,11 @@
return TRUE
/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 3106a9e510..4d4dee1b8c 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 8b70fd246c..f83442b137 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 56efec379a..744db1572f 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 5dee122544..47cbbff418 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 725df2fdb8..c68e1ad119 100644
--- a/code/modules/modular_computers/hardware/card_slot.dm
+++ b/code/modules/modular_computers/hardware/card_slot.dm
@@ -117,6 +117,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 1e3c517351..4109b2c3f0 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 b000c353b0..44383822cc 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 276de652bc..e819fe55fd 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 d89bb9edf2..03fc7a2ed2 100644
--- a/code/modules/ninja/suit/suit.dm
+++ b/code/modules/ninja/suit/suit.dm
@@ -149,12 +149,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 1d6326a3ed..c9b7fb7b57 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -90,12 +90,12 @@
/obj/item/paper/examine(mob/user)
- ..()
- to_chat(user, "Alt-click to fold it.")
+ . = ..()
+ . += "Alt-click to fold it."
if(oui_canview(user))
ui.render(user)
else
- to_chat(user, "You're too far away to read it!")
+ . += "You're too far away to read it!"
/obj/item/paper/proc/show_content(mob/user)
user.examinate(src)
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index 6d9c6373ba..7318af0e32 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 b547089aef..ecef5a703a 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 8c51fd31ea..9d01eca0cf 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)
diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm
index 6469a1091b..5986da1ce8 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()
@@ -109,8 +109,8 @@
/obj/structure/sign/picture_frame/examine(mob/user)
if(in_range(src, user) && framed)
framed.show(user)
- else
- ..()
+ return list()
+ return ..()
/obj/structure/sign/picture_frame/attackby(obj/item/I, mob/user, params)
if(can_decon && (istype(I, /obj/item/screwdriver) || istype(I, /obj/item/wrench)))
diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm
index 99e61cf3f0..5682c333c7 100644
--- a/code/modules/photography/photos/photo.dm
+++ b/code/modules/photography/photos/photo.dm
@@ -62,12 +62,11 @@
..()
/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 5fc29cb813..5e3888a8c5 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 bbbf8edae5..2855e3c321 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -94,11 +94,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 b5ee0b2da4..cdbaa29a3b 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)
@@ -393,18 +392,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 a934d08997..28843e14e0 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 7375a3e17a..a9cd97c331 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 974b210648..b1b0d2d718 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -171,14 +171,14 @@
. = ..()
if(active)
if(!bitcoinmining)
- to_chat(user, "[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.")
+ . += "[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's producing a total of [(last_push*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.")
+ . += "[src]'s display states that it's producing a total of [(last_push*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 9f7c3ba05a..82d33e59ff 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 66870d73e8..685030d4e6 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -257,14 +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)
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 3637bf38f7..774f7ba14d 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 4cbb88fe6b..9184c7e4eb 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 9a5486dfe2..f8d25c0c9c 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 96b396243b..026f725e2f 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -86,11 +86,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 a5262da7a3..fd40f437ca 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -139,8 +139,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 5182c96671..bcb212a031 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -309,9 +309,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 25a50f3e03..d1a5f12888 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 47ccb6076f..6d0596b0d7 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -74,9 +74,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
@@ -143,8 +143,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"
@@ -231,8 +231,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
@@ -263,9 +263,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 646b4bd57d..b216d8d536 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
@@ -276,8 +276,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 87bfd578bc..a61654142c 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 4cdfc6d70d..95809f5044 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 eb36438a6c..dc44a1f4ff 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 342ceecbc2..8a9d1c5b6b 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 1eb75e042b..516153cb2f 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 1847f1f722..98cfd877b2 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 153372101e..59394e6e4b 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 631e5ee281..2bd5fb2d9f 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 432b9289dd..85cb544667 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/stimulants
name = "illegal stimpack medipen"
@@ -296,10 +296,10 @@
/obj/item/hypospray/mkii/examine(mob/user)
. = ..()
if(vial)
- to_chat(user, "[vial] has [vial.reagents.total_volume]u remaining.")
+ . += "[vial] has [vial.reagents.total_volume]u remaining."
else
- to_chat(user, "It has no vial loaded in.")
- to_chat(user, "[src] is set to [mode ? "Inject" : "Spray"] contents on application.")
+ . += "It has no vial loaded in."
+ . += "[src] is set to [mode ? "Inject" : "Spray"] contents on application."
/obj/item/hypospray/mkii/proc/unload_hypo(obj/item/I, mob/user)
if((istype(I, /obj/item/reagent_containers/glass/bottle/vial)))
diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm
index 92a4b155d8..8d44a2a406 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 c44ffa4373..0964b67490 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -71,13 +71,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 d85c4bca78..2d40ec64eb 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 dba47a4ac2..88779df447 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 824d033bf4..3b242d28df 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 4d39d956e7..a21fddb6cf 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 2894ce2108..ab0db8c4a7 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 9aa89dcaf5..ae5f2ff7d6 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -70,11 +70,11 @@
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."
/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 e42fc91d47..503bf4ddd0 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/surgery/tools.dm b/code/modules/surgery/tools.dm
index 001ef8d0e6..f4adfd265a 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -30,7 +30,7 @@
/obj/item/retractor/advanced/examine(mob/living/user)
. = ..()
- to_chat(user, " It resembles a [tool_behaviour == TOOL_RETRACTOR ? "retractor" : "hemostat"]. "
/obj/item/retractor/augment
name = "retractor"
@@ -133,7 +133,7 @@
/obj/item/surgicaldrill/advanced/examine(mob/living/user)
. = ..()
- to_chat(user, "")
+ . += ""
/obj/item/surgicaldrill/augment
name = "surgical drill"
@@ -206,7 +206,7 @@
/obj/item/scalpel/advanced/examine(mob/living/user)
. = ..()
- to_chat(user, "")
+ . += ""
/obj/item/scalpel/augment
name = "scalpel"
diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm
index 54bc03bcf3..e4cb090448 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 53f60788fe..31d0a243e7 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 8fe7322579..27da0f6cea 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/code/modules/vore/resizing/holder_micro_vr.dm b/code/modules/vore/resizing/holder_micro_vr.dm
index 8eea2737cf..1f1aacf98d 100644
--- a/code/modules/vore/resizing/holder_micro_vr.dm
+++ b/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)
..()
diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator.dm b/modular_citadel/code/game/gamemodes/gangs/dominator.dm
index c590baf62e..8c1272dcbd 100644
--- a/modular_citadel/code/game/gamemodes/gangs/dominator.dm
+++ b/modular_citadel/code/game/gamemodes/gangs/dominator.dm
@@ -66,18 +66,18 @@
add_overlay("damage")
/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/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm
index 4b0a7ad919..24c8de1b60 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 7f366ecf35..b23e805f92 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()
..()