From 4423d03f2ff4d3948d753c6d3b7069adfa8da078 Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Sun, 11 Feb 2024 22:58:20 +0100 Subject: [PATCH] Adds examine boxes. (#18370) * Adds examine boxes. * lint * what kind of dreams did you dream? * unlimited * midgardsormr * sdsd * fixes --------- Co-authored-by: Matt Atlas --- code/__DEFINES/_macros.dm | 3 + code/_onclick/hud/ability_screen_objects.dm | 8 +-- code/datums/ai_laws.dm | 16 ++++++ code/game/atoms.dm | 26 ++++++--- code/game/gamemodes/cult/items/talisman.dm | 4 +- code/game/gamemodes/cult/items/tome.dm | 8 +-- code/game/gamemodes/cult/runes/rune.dm | 10 ++-- code/game/gamemodes/cult/structures/pylon.dm | 10 ++-- code/game/gamemodes/nuclear/pinpointer.dm | 4 +- .../devices/disposable_teleporter.dm | 4 +- code/game/machinery/CableLayer.dm | 4 +- code/game/machinery/OpTable.dm | 4 +- code/game/machinery/alarm.dm | 6 +- code/game/machinery/atmoalter/meter.dm | 14 ++--- code/game/machinery/bots/bots.dm | 7 +-- code/game/machinery/cell_charger.dm | 8 +-- code/game/machinery/cloning.dm | 4 +- code/game/machinery/computer/arcade_orion.dm | 4 +- code/game/machinery/computer/guestpass.dm | 12 ++-- code/game/machinery/constructable_frame.dm | 22 ++++---- code/game/machinery/cryo.dm | 4 +- code/game/machinery/cryopod.dm | 4 +- code/game/machinery/doors/airlock.dm | 14 ++--- code/game/machinery/doors/brigdoors.dm | 7 ++- code/game/machinery/doors/door.dm | 12 ++-- code/game/machinery/doors/firedoor.dm | 29 +++++----- code/game/machinery/doppler_array.dm | 4 +- code/game/machinery/firealarm.dm | 4 +- code/game/machinery/floodlight.dm | 8 +-- code/game/machinery/floorlayer.dm | 4 +- code/game/machinery/gumball.dm | 4 +- code/game/machinery/hologram.dm | 6 +- code/game/machinery/iv_drip.dm | 24 ++++---- code/game/machinery/lightswitch.dm | 4 +- code/game/machinery/machinery.dm | 4 +- code/game/machinery/portable_turret.dm | 4 +- code/game/machinery/recharger.dm | 4 +- code/game/machinery/rechargestation.dm | 4 +- code/game/machinery/spaceheater.dm | 9 ++- code/game/machinery/stargazer.dm | 4 +- code/game/machinery/status_display.dm | 4 +- code/game/machinery/vending_items.dm | 6 +- .../effects/decals/Cleanable/humans.dm | 6 +- .../game/objects/effects/plastic_explosive.dm | 4 +- code/game/objects/items.dm | 14 ++--- code/game/objects/items/airbubble.dm | 10 ++-- code/game/objects/items/bodybag.dm | 6 +- code/game/objects/items/contraband.dm | 4 +- code/game/objects/items/defib.dm | 6 +- code/game/objects/items/devices/aicard.dm | 4 +- .../items/devices/augment_implanter.dm | 6 +- code/game/objects/items/devices/auto_cpr.dm | 12 ++-- code/game/objects/items/devices/dociler.dm | 4 +- code/game/objects/items/devices/flash.dm | 6 +- code/game/objects/items/devices/geiger.dm | 6 +- .../game/objects/items/devices/holowarrant.dm | 4 +- .../items/devices/lighting/flashlight.dm | 8 +-- .../objects/items/devices/lightreplacer.dm | 6 +- .../objects/items/devices/magnetic_lock.dm | 8 +-- code/game/objects/items/devices/modkit.dm | 4 +- .../objects/items/devices/paint_sprayer.dm | 4 +- .../objects/items/devices/personal_shield.dm | 5 +- .../objects/items/devices/pipe_painter.dm | 4 +- .../objects/items/devices/radio/beacon.dm | 4 +- .../objects/items/devices/radio/headset.dm | 6 +- .../game/objects/items/devices/radio/radio.dm | 6 +- code/game/objects/items/devices/spy_bug.dm | 10 ++-- .../objects/items/devices/suit_cooling.dm | 18 +++--- code/game/objects/items/devices/tvcamera.dm | 6 +- code/game/objects/items/ipc_overloaders.dm | 10 ++-- code/game/objects/items/knitting.dm | 4 +- code/game/objects/items/paintkit.dm | 4 +- code/game/objects/items/recharger_backpack.dm | 4 +- code/game/objects/items/skrell.dm | 8 +-- code/game/objects/items/spirit_board.dm | 4 +- code/game/objects/items/stacks/stack.dm | 6 +- code/game/objects/items/stacks/wrap.dm | 4 +- code/game/objects/items/toys.dm | 4 +- code/game/objects/items/weapons/RFD.dm | 18 +++--- .../items/weapons/cards_ids_syndicate.dm | 4 +- .../objects/items/weapons/cigs_lighters.dm | 4 +- .../weapons/circuitboards/circuitboard.dm | 11 ++-- .../circuitboards/machinery/unary_atmos.dm | 4 +- .../objects/items/weapons/cloaking_device.dm | 6 +- code/game/objects/items/weapons/ecigs.dm | 34 +++++------ .../objects/items/weapons/extinguisher.dm | 16 +++--- .../objects/items/weapons/flamethrower.dm | 10 ++-- .../items/weapons/grenades/chem_grenade.dm | 4 +- .../objects/items/weapons/grenades/grenade.dm | 6 +- .../items/weapons/material/twohanded.dm | 10 ++-- code/game/objects/items/weapons/mop.dm | 4 +- code/game/objects/items/weapons/policetape.dm | 8 +-- .../objects/items/weapons/storage/boxes.dm | 6 +- .../objects/items/weapons/storage/fancy.dm | 6 +- .../game/objects/items/weapons/storage/mre.dm | 4 +- .../objects/items/weapons/storage/secure.dm | 4 +- .../objects/items/weapons/storage/storage.dm | 4 +- code/game/objects/items/weapons/stunbaton.dm | 6 +- code/game/objects/items/weapons/syndie.dm | 4 +- .../objects/items/weapons/tanks/jetpack.dm | 8 +-- .../objects/items/weapons/tanks/tank_types.dm | 12 ++-- .../game/objects/items/weapons/tanks/tanks.dm | 4 +- .../objects/items/weapons/teleportation.dm | 6 +- code/game/objects/items/weapons/tools.dm | 14 ++--- code/game/objects/items/weapons/traps.dm | 13 +++-- code/game/objects/objs.dm | 6 +- .../structures/barricades/_barricade.dm | 14 ++--- .../objects/structures/barricades/metal.dm | 8 +-- .../objects/structures/barricades/plasteel.dm | 9 ++- code/game/objects/structures/bedsheet_bin.dm | 9 ++- code/game/objects/structures/bonfire.dm | 12 ++-- .../structures/crates_lockers/closets.dm | 18 +++--- code/game/objects/structures/crystals.dm | 4 +- code/game/objects/structures/door_assembly.dm | 4 +- code/game/objects/structures/girders.dm | 12 ++-- code/game/objects/structures/gore/core.dm | 10 ++-- code/game/objects/structures/gore/nest.dm | 10 ++-- code/game/objects/structures/janicart.dm | 6 +- code/game/objects/structures/mop_bucket.dm | 4 +- code/game/objects/structures/noticeboard.dm | 2 +- code/game/objects/structures/railing.dm | 12 ++-- code/game/objects/structures/safe.dm | 6 +- code/game/objects/structures/sarcophagus.dm | 6 +- code/game/objects/structures/simple_doors.dm | 4 +- .../objects/structures/vr/_remote_chair.dm | 4 +- code/game/objects/structures/window.dm | 18 +++--- code/game/turfs/simulated/floor.dm | 4 +- code/game/turfs/simulated/walls.dm | 12 ++-- code/modules/assembly/assembly.dm | 6 +- code/modules/assembly/holder.dm | 6 +- code/modules/assembly/infrared.dm | 5 +- code/modules/assembly/mousetrap.dm | 4 +- .../binary_devices/oxyregenerator.dm | 4 +- .../components/unary/cold_sink.dm | 4 +- .../components/unary/heat_source.dm | 4 +- .../components/unary/vent_pump.dm | 8 +-- .../components/unary/vent_scrubber.dm | 8 +-- code/modules/atmospherics/components/valve.dm | 4 +- code/modules/battlemonsters/items/card.dm | 5 +- code/modules/cargo/delivery/backpack.dm | 4 +- code/modules/cargo/delivery/package.dm | 10 ++-- code/modules/clothing/clothing.dm | 10 ++-- code/modules/clothing/clothing_accessories.dm | 4 +- code/modules/clothing/head/helmet.dm | 6 +- code/modules/clothing/shoes/magboots.dm | 4 +- code/modules/clothing/spacesuits/breaches.dm | 4 +- .../spacesuits/rig/modules/modules.dm | 8 +-- code/modules/clothing/spacesuits/rig/rig.dm | 8 +-- .../spacesuits/rig/rig_construction.dm | 4 +- code/modules/clothing/spacesuits/syndi.dm | 10 ++-- code/modules/clothing/spacesuits/void/void.dm | 8 +-- .../clothing/under/accessories/badges.dm | 4 +- .../clothing/under/accessories/holster.dm | 6 +- .../machinery/cooking_machines/_appliance.dm | 15 +++-- .../machinery/cooking_machines/_cooker.dm | 10 ++-- .../machinery/cooking_machines/_mixer.dm | 4 +- .../machinery/cooking_machines/container.dm | 10 ++-- .../machinery/cooking_machines/fryer.dm | 4 +- code/modules/cooking/machinery/gibber.dm | 4 +- code/modules/cooking/plates.dm | 10 ++-- code/modules/custom_ka/core.dm | 14 ++--- code/modules/customitems/item_defines.dm | 17 +++--- code/modules/economy/cash.dm | 8 ++- code/modules/games/cards.dm | 6 +- .../heavy_vehicle/components/_components.dm | 7 ++- .../modules/heavy_vehicle/components/frame.dm | 20 +++---- code/modules/heavy_vehicle/components/head.dm | 4 +- .../heavy_vehicle/components/remote.dm | 10 ++-- .../heavy_vehicle/equipment/_equipment.dm | 6 +- .../heavy_vehicle/equipment/utility.dm | 4 +- code/modules/heavy_vehicle/mecha.dm | 21 +++---- .../modules/hydroponics/beekeeping/beehive.dm | 16 +++--- .../hydroponics/beekeeping/honey_extractor.dm | 6 +- code/modules/hydroponics/beekeeping/net.dm | 6 +- code/modules/hydroponics/beekeeping/smoker.dm | 4 +- code/modules/hydroponics/seed_packets.dm | 4 +- code/modules/hydroponics/trays/tray.dm | 22 ++++---- .../integrated_electronics/core/assemblies.dm | 4 +- .../core/integrated_circuit.dm | 17 +----- .../integrated_electronics/subtypes/memory.dm | 4 +- .../integrated_electronics/subtypes/output.dm | 8 ++- code/modules/makeshift/makeshift_reagents.dm | 4 +- code/modules/mining/drilling/drill.dm | 14 ++--- code/modules/mining/mine_items.dm | 14 ++--- code/modules/mining/mine_turfs.dm | 18 +++--- code/modules/mining/minebot.dm | 6 +- code/modules/mining/ore_detector.dm | 4 +- code/modules/mining/ore_satchel.dm | 4 +- code/modules/mining/satchel_ore_boxdm.dm | 13 ++--- code/modules/mob/living/bot/bot.dm | 4 +- code/modules/mob/living/carbon/brain/MMI.dm | 4 +- .../mob/living/carbon/brain/posibrain.dm | 21 +++---- .../mob/living/carbon/human/examine.dm | 8 +-- .../mob/living/carbon/slime/examine.dm | 21 +++---- .../living/carbon/slime/slime_extractor.dm | 6 +- code/modules/mob/living/silicon/ai/examine.dm | 45 +++++++-------- .../modules/mob/living/silicon/pai/examine.dm | 26 ++++----- .../mob/living/silicon/robot/drone/drone.dm | 3 - .../silicon/robot/drone/drone_manufacturer.dm | 4 +- .../mob/living/silicon/robot/examine.dm | 43 +++++++------- .../mob/living/silicon/robot/inventory.dm | 5 +- .../mob/living/silicon/robot/items/gripper.dm | 9 ++- .../silicon/robot/items/inductive_charger.dm | 4 +- .../items/portable_destructive_analyzer.dm | 4 +- .../silicon/robot/items/robot_inflatables.dm | 6 +- .../living/silicon/robot/items/robot_parts.dm | 31 +++++----- .../constructs/constructs/cult_construct.dm | 6 +- .../living/simple_animal/friendly/capybara.dm | 4 +- .../mob/living/simple_animal/friendly/cat.dm | 12 ++-- .../simple_animal/friendly/spiderbot.dm | 2 +- .../simple_animal/hostile/icarus_drone.dm | 6 +- .../mob/living/simple_animal/hostile/morph.dm | 4 +- .../mob/living/simple_animal/simple_animal.dm | 11 ++-- .../computers/modular_computer/damage.dm | 10 ++-- .../modular_computers/hardware/hardware.dm | 8 +-- code/modules/multiz/turfs/open_space.dm | 4 +- code/modules/organs/internal/brain.dm | 6 +- code/modules/organs/organ.dm | 4 +- code/modules/organs/organ_external.dm | 7 +-- code/modules/organs/subtypes/machine.dm | 10 ++-- code/modules/organs/subtypes/standard.dm | 14 ++--- code/modules/organs/subtypes/vaurca.dm | 4 +- code/modules/overmap/contacts/tracker.dm | 4 +- .../overmap/exoplanets/decor/objs/pit.dm | 4 +- .../overmap/ship_weaponry/_ship_ammunition.dm | 6 +- .../overmap/ship_weaponry/_ship_gun.dm | 4 +- .../overmap/ships/computers/sensors.dm | 10 ++-- code/modules/paperwork/folders.dm | 4 +- code/modules/paperwork/paper.dm | 8 +-- code/modules/paperwork/paper_bundle.dm | 5 +- code/modules/paperwork/paperbin.dm | 14 +---- code/modules/paperwork/photography.dm | 11 ++-- code/modules/power/apc.dm | 18 +++--- code/modules/power/breaker_box.dm | 6 +- code/modules/power/cable.dm | 6 +- code/modules/power/cell.dm | 10 ++-- code/modules/power/lights/construction.dm | 14 ++--- code/modules/power/lights/fixtures.dm | 12 ++-- code/modules/power/portgen.dm | 22 ++++---- code/modules/power/singularity/emitter.dm | 10 ++-- .../particle_accelerator.dm | 31 ++++------ code/modules/power/smes.dm | 8 +-- code/modules/power/smes_construction.dm | 10 ++-- code/modules/power/tesla/energy_ball.dm | 4 +- code/modules/projectiles/ammunition.dm | 8 +-- .../projectiles/ammunition/ammo_pile.dm | 4 +- code/modules/projectiles/gun.dm | 13 ++--- code/modules/projectiles/guns/alien.dm | 4 +- code/modules/projectiles/guns/energy.dm | 5 +- .../modules/projectiles/guns/energy/mining.dm | 6 +- .../projectiles/guns/energy/modular.dm | 12 ++-- .../projectiles/guns/launcher/crossbow.dm | 21 ++++--- .../guns/launcher/grenade_launcher.dm | 6 +- .../projectiles/guns/launcher/pneumatic.dm | 25 +++++---- .../projectiles/guns/launcher/rocket.dm | 4 +- code/modules/projectiles/guns/projectile.dm | 10 ++-- .../projectiles/guns/projectile/automatic.dm | 6 +- .../projectiles/guns/projectile/dartgun.dm | 6 +- .../projectiles/guns/projectile/improvised.dm | 56 ++++++++++++------- .../projectiles/guns/projectile/revolver.dm | 6 +- .../projectiles/guns/projectile/rifle.dm | 10 ++-- .../projectiles/guns/projectile/shotgun.dm | 4 +- .../modules/projectiles/modular/laser_base.dm | 12 ++-- code/modules/reagents/dispenser/cartridge.dm | 10 ++-- code/modules/reagents/dispenser/dispenser2.dm | 4 +- .../reagents/reagent_containers/blood_pack.dm | 5 +- .../reagents/reagent_containers/borghydro.dm | 5 +- .../reagents/reagent_containers/dropper.dm | 6 +- .../reagent_containers/food/drinks.dm | 12 ++-- .../reagent_containers/food/sandwich.dm | 4 +- .../reagent_containers/food/snacks.dm | 12 ++-- .../reagents/reagent_containers/glass.dm | 14 ++--- .../reagents/reagent_containers/hypospray.dm | 6 +- .../reagents/reagent_containers/inhaler.dm | 6 +- .../reagent_containers/inhaler_advanced.dm | 14 ++--- .../reagents/reagent_containers/spray.dm | 8 +-- .../reagent_containers/welding_backpack.dm | 6 +- code/modules/reagents/reagent_dispenser.dm | 10 ++-- code/modules/recycling/sortingmachinery.dm | 12 ++-- code/modules/research/research.dm | 16 +++--- code/modules/research/weaponsanalyzer.dm | 7 +-- .../tools/suspension_generator.dm | 6 +- .../tools/tools_coresampler.dm | 4 +- code/modules/shieldgen/shield_diffuser.dm | 4 +- .../artifacts/items/lich_phylactery.dm | 6 +- .../spell_system/artifacts/items/poppet.dm | 4 +- code/modules/tables/tables.dm | 8 +-- code/modules/telesci/telepad.dm | 4 +- code/modules/telesci/telesci_computer.dm | 4 +- code/modules/vehicles/cargo_train.dm | 8 +-- code/modules/vehicles/train.dm | 6 +- html/changelogs/mattatlas-toil.yml | 42 ++++++++++++++ .../tajara/circus/adhomian_circus_items.dm | 6 +- .../exoplanets/adhomai/adhomai_minefield.dm | 4 +- .../tgui-panel/styles/tgchat/chat-dark.scss | 14 +++++ .../tgui-panel/styles/tgchat/chat-light.scss | 14 +++++ 296 files changed, 1317 insertions(+), 1257 deletions(-) create mode 100644 html/changelogs/mattatlas-toil.yml diff --git a/code/__DEFINES/_macros.dm b/code/__DEFINES/_macros.dm index 351ac9aed1e..b8939d01c67 100644 --- a/code/__DEFINES/_macros.dm +++ b/code/__DEFINES/_macros.dm @@ -30,6 +30,9 @@ #define SPAN_HIGHDANGER(X) (FONT_LARGE(SPAN_DANGER(X))) +/// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. +#define EXAMINE_BLOCK(str) ("
" + str + "
") + #define FONT_SIZE_SMALL "10px" #define FONT_SIZE_NORMAL "13px" #define FONT_SIZE_LARGE "16px" diff --git a/code/_onclick/hud/ability_screen_objects.dm b/code/_onclick/hud/ability_screen_objects.dm index 1e9d6c5e4b5..fd6192d25e4 100644 --- a/code/_onclick/hud/ability_screen_objects.dm +++ b/code/_onclick/hud/ability_screen_objects.dm @@ -326,10 +326,10 @@ if(my_mob.client) toggle_open(2) //forces the icons to refresh on screen -/obj/screen/ability/obj_based/psionic/examine(mob/user) - to_chat(user, SPAN_NOTICE("This ability is [connected_power.name].")) - to_chat(user, SPAN_NOTICE("[connected_power.desc]")) - return TRUE +/obj/screen/ability/obj_based/psionic/get_examine_text(mob/user) + . = ..() + . += SPAN_NOTICE("This ability is [connected_power.name].") + . += SPAN_NOTICE("[connected_power.desc]") /// Technomancer. /obj/screen/ability/obj_based/technomancer diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index a3c324e54cf..87ad9699a64 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -237,6 +237,22 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen if(ismob(who) && M.vr_mob) to_chat(M.vr_mob, "[law.get_index()]. [law.law]") +/datum/ai_laws/proc/get_laws(var/who) + . = list() + sort_laws() + for(var/datum/ai_law/law in sorted_laws) + if(law == zeroth_law_borg) + continue + var/mob/M = who + if(law == zeroth_law) + . += "[law.get_index()]. [law.law]" + if(ismob(who) && M.vr_mob) + . += "[law.get_index()]. [law.law]" + else + . += "[law.get_index()]. [law.law]" + if(ismob(who) && M.vr_mob) + . += "[law.get_index()]. [law.law]" + /******************** * Stating Laws * ********************/ diff --git a/code/game/atoms.dm b/code/game/atoms.dm index d8ad1186ced..e61605137fe 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -261,8 +261,18 @@ // Examination code for all atoms. // Returns TRUE, the caller always expects TRUE -// This is used rather than SHOULD_CALL_PARENT as it enforces that subtypes of a type that explicitly returns still call parent +// This is used rather than SHOULD_CALL_PARENT as it enforces that subtypes of a type that explicitly returns still call parent. +// You should usually be overriding get_examine_text(), unless you need special examine behaviour. /atom/proc/examine(mob/user, distance, is_adjacent, infix = "", suffix = "") + var/list/examine_strings = get_examine_text(user, distance, is_adjacent, infix, suffix) + if(!length(examine_strings)) + crash_with("Examine called with no examine strings on [src].") + to_chat(user, EXAMINE_BLOCK(examine_strings.Join("\n"))) + return TRUE + +// This proc is what you should usually override to get things to show up inside the examine box. +/atom/proc/get_examine_text(mob/user, distance, is_adjacent, infix = "", suffix = "") + . = list() var/f_name = "\a [src]. [infix]" if(src.blood_DNA && !istype(src, /obj/effect/decal)) if(gender == PLURAL) @@ -274,28 +284,26 @@ else f_name += "oil-stained [name][infix]." - to_chat(user, "[icon2html(src, user)] That's [f_name] [suffix]") // Object name. I.e. "This is an Object. It is a normal-sized item." + . += "[icon2html(src, user)] That's [f_name] [suffix]" // Object name. I.e. "This is an Object. It is a normal-sized item." if(src.desc) - to_chat(user, src.desc) // Object description. + . += src.desc // Object description. // Extra object descriptions examination code. if(desc_extended || desc_info || (desc_antag && player_is_antag(user.mind))) // Checks if the object has a extended description, a mechanics description, and/or an antagonist description (and if the user is an antagonist). - to_chat(user, FONT_SMALL(SPAN_NOTICE("\[?\] This object has additional examine information available. \[Show In Chat\]"))) // If any of the above are true, show that the object has more information available. + . += FONT_SMALL(SPAN_NOTICE("\[?\] This object has additional examine information available. \[Show In Chat\]")) // If any of the above are true, show that the object has more information available. if(desc_extended) // If the item has a extended description, show that it is available. - to_chat(user, FONT_SMALL("- This object has an extended description.")) + . += FONT_SMALL("- This object has an extended description.") if(desc_info) // If the item has a description regarding game mechanics, show that it is available. - to_chat(user, FONT_SMALL(SPAN_NOTICE("- This object has additional information about mechanics."))) + . += FONT_SMALL(SPAN_NOTICE("- This object has additional information about mechanics.")) if(desc_antag && player_is_antag(user.mind)) // If the item has an antagonist description and the user is an antagonist, show that it is available. - to_chat(user, FONT_SMALL(SPAN_ALERT("- This object has additional information for antagonists."))) + . += FONT_SMALL(SPAN_ALERT("- This object has additional information for antagonists.")) if(ishuman(user)) var/mob/living/carbon/human/H = user if(H.glasses) H.glasses.glasses_examine_atom(src, H) - return TRUE - // Same as examine(), but without the "this object has more info" thing and with the extra information instead. /atom/proc/examine_fluff(mob/user, distance, is_adjacent, infix = "", suffix = "") var/f_name = "\a [src][infix]." diff --git a/code/game/gamemodes/cult/items/talisman.dm b/code/game/gamemodes/cult/items/talisman.dm index 95e930656db..e0e16b5ebe3 100644 --- a/code/game/gamemodes/cult/items/talisman.dm +++ b/code/game/gamemodes/cult/items/talisman.dm @@ -15,13 +15,13 @@ QDEL_NULL(rune) return ..() -/obj/item/paper/talisman/examine(mob/user) +/obj/item/paper/talisman/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(iscultist(user) && rune) var/network_text = "" if(network) network_text = " This spell's network tag reads: [SPAN_CULT(network)]." - to_chat(user, "The spell inscription reads: [SPAN_CULT(rune.name)].[network_text]") + . += "The spell inscription reads: [SPAN_CULT(rune.name)].[network_text]" /obj/item/paper/talisman/attack_self(mob/living/user) if(iscultist(user)) diff --git a/code/game/gamemodes/cult/items/tome.dm b/code/game/gamemodes/cult/items/tome.dm index 8c22c6bf39f..1ff90ff11d4 100644 --- a/code/game/gamemodes/cult/items/tome.dm +++ b/code/game/gamemodes/cult/items/tome.dm @@ -96,13 +96,13 @@ if(do_after(scribe, 3 SECONDS)) create_rune(scribe, chosen_rune, target_turf) -/obj/item/book/tome/examine(mob/user) +/obj/item/book/tome/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(iscultist(user) || isobserver(user)) - to_chat(user, "The scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though.") - to_chat(user, SPAN_WARNING("\[?\] This tome contains arcane knowledge of the Geometer's runes. \[Read Tome\]")) + . += "The scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though." + . += SPAN_WARNING("\[?\] This tome contains arcane knowledge of the Geometer's runes. \[Read Tome\]") else - to_chat(user, "An old, dusty tome with frayed edges and a sinister looking cover.") + . += "An old, dusty tome with frayed edges and a sinister looking cover." /obj/item/book/tome/Topic(href, href_list) if(href_list["read_tome"]) diff --git a/code/game/gamemodes/cult/runes/rune.dm b/code/game/gamemodes/cult/runes/rune.dm index bf411a108ac..02cc98fb6cc 100644 --- a/code/game/gamemodes/cult/runes/rune.dm +++ b/code/game/gamemodes/cult/runes/rune.dm @@ -22,14 +22,14 @@ QDEL_NULL(rune) return ..() -/obj/effect/rune/examine(mob/user) +/obj/effect/rune/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(iscultist(user) || isobserver(user)) - to_chat(user, rune.get_cultist_fluff_text()) - to_chat(user, "This rune [rune.can_be_talisman() ? SPAN_CULT("can") : "[SPAN_CULT("cannot")]"] be turned into a talisman.") - to_chat(user, "This rune [rune.can_memorize() ? SPAN_CULT("can") : "[SPAN_CULT("cannot")]"] be memorized to be scribed without a tome.") + . += rune.get_cultist_fluff_text() + . += "This rune [rune.can_be_talisman() ? SPAN_CULT("can") : "[SPAN_CULT("cannot")]"] be turned into a talisman." + . += "This rune [rune.can_memorize() ? SPAN_CULT("can") : "[SPAN_CULT("cannot")]"] be memorized to be scribed without a tome." else - to_chat(user, rune.get_normal_fluff_text()) + . += rune.get_normal_fluff_text() /obj/effect/rune/attackby(obj/I, mob/user) if(istype(I, /obj/item/book/tome) && iscultist(user)) diff --git a/code/game/gamemodes/cult/structures/pylon.dm b/code/game/gamemodes/cult/structures/pylon.dm index 9984075df48..c59e6d69033 100644 --- a/code/game/gamemodes/cult/structures/pylon.dm +++ b/code/game/gamemodes/cult/structures/pylon.dm @@ -62,18 +62,18 @@ lang = new /datum/language/cultcommon() update_icon() -/obj/structure/cult/pylon/examine(var/mob/user) +/obj/structure/cult/pylon/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(damagetaken) switch(damagetaken) if(1 to 8) - to_chat(user, SPAN_WARNING("It has very faint hairline fractures.")) + . += SPAN_WARNING("It has very faint hairline fractures.") if(8 to 20) - to_chat(user, SPAN_WARNING("It has several cracks across its surface.")) + . += SPAN_WARNING("It has several cracks across its surface.") if(20 to 30) - to_chat(user, SPAN_WARNING("It is chipped and deeply cracked, it may shatter with much more pressure.")) + . += SPAN_WARNING("It is chipped and deeply cracked, it may shatter with much more pressure.") if(30 to INFINITY) - to_chat(user, SPAN_WARNING("It is almost cleaved in two, the pylon looks like it will fall to shards under its own weight.")) + . += SPAN_WARNING("It is almost cleaved in two, the pylon looks like it will fall to shards under its own weight.") /obj/structure/cult/pylon/Move() diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 93cc6cbff19..1d621b4d04a 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -48,11 +48,11 @@ icon_state = "pinonfar" return TRUE -/obj/item/pinpointer/examine(mob/user) +/obj/item/pinpointer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() for(var/obj/machinery/nuclearbomb/bomb in SSmachinery.machinery) if(bomb.timing) - to_chat(user, "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]") + . += "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]" /obj/item/pinpointer/Destroy() active = 0 diff --git a/code/game/gamemodes/technomancer/devices/disposable_teleporter.dm b/code/game/gamemodes/technomancer/devices/disposable_teleporter.dm index 35d240099a7..c9b394b97a6 100644 --- a/code/game/gamemodes/technomancer/devices/disposable_teleporter.dm +++ b/code/game/gamemodes/technomancer/devices/disposable_teleporter.dm @@ -22,9 +22,9 @@ one has been provided to allow you to leave your hideout." uses = 1 -/obj/item/disposable_teleporter/examine(mob/user) +/obj/item/disposable_teleporter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "[uses] uses remaining.") + . += "[uses] uses remaining." /obj/item/disposable_teleporter/attack_self(mob/user as mob) if(!uses) diff --git a/code/game/machinery/CableLayer.dm b/code/game/machinery/CableLayer.dm index e4107c54c91..273c17cdda2 100644 --- a/code/game/machinery/CableLayer.dm +++ b/code/game/machinery/CableLayer.dm @@ -55,9 +55,9 @@ return TRUE return cable.attackby(O, user) -/obj/machinery/cablelayer/examine(mob/user) +/obj/machinery/cablelayer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "\The [src]'s cable reel has [cable.amount] length\s left.") + . += SPAN_NOTICE("\The [src]'s cable reel has [cable.amount] length\s left.") /obj/machinery/cablelayer/proc/load_cable(var/obj/item/stack/cable_coil/CC) if(istype(CC) && CC.amount) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 3a47eb7b681..5c7409f5e13 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -118,9 +118,9 @@ patient.reset_view(null) -/obj/machinery/optable/examine(var/mob/user) +/obj/machinery/optable/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("The neural suppressors are switched [suppressing ? "on" : "off"].")) + . += SPAN_NOTICE("The neural suppressors are switched [suppressing ? "on" : "off"].") /obj/machinery/optable/ex_act(severity) switch(severity) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 0f095987a5d..0223ab761d4 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -1008,12 +1008,12 @@ pixel_x = 10; ..() queue_icon_update() -/obj/machinery/alarm/examine(mob/user) +/obj/machinery/alarm/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (buildstage < 2) - to_chat(user, "It is not wired.") + . += SPAN_WARNING("It is not wired.") if (buildstage < 1) - to_chat(user, "The circuit is missing.") + . += SPAN_WARNING("The circuit is missing.") /* AIR ALARM CIRCUIT Just a object used in constructing air alarms diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index af8de48b833..14caa958dc8 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -62,27 +62,27 @@ ) radio_connection.post_signal(src, signal) -/obj/machinery/meter/examine(mob/user, distance, is_adjacent) +/obj/machinery/meter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/t = "A gas flow meter. " - if(distance > 3 && !(istype(user, /mob/living/silicon/ai))) - t += "You are too far away to read it." + if(distance > 3 && !isAI(user)) + t += SPAN_WARNING("You are too far away to read it.") else if(stat & (NOPOWER|BROKEN)) - t += "The display is off." + t += SPAN_WARNING("The display is off.") else if(src.target) var/datum/gas_mixture/environment = target.return_air() if(environment) t += "The pressure gauge reads [round(environment.return_pressure(), 0.01)] kPa; [round(environment.temperature,0.01)]K ([round(environment.temperature-T0C,0.01)]°C)" else - t += "The sensor error light is blinking." + t += SPAN_WARNING("The sensor error light is blinking.") else - t += "The connect error light is blinking." + t += SPAN_WARNING("The connect error light is blinking.") - to_chat(user, t) + . += t /obj/machinery/meter/Click() diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 9497f96e1b0..4dde27d308e 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -53,14 +53,13 @@ log_and_message_admins("emagged [src]'s inner circuits") return 1 -/obj/machinery/bot/examine(mob/user) +/obj/machinery/bot/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (src.health < maxhealth) if (src.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!") - return + . += "[src]'s parts look very loose!" /obj/machinery/bot/attackby(obj/item/W as obj, mob/user as mob) if(W.isscrewdriver()) diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 036e0a18cc4..55e2234e90c 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -39,15 +39,15 @@ add_overlay("cell-o2") add_overlay("[icon_state]-o[charge_level]") -/obj/machinery/cell_charger/examine(mob/user, distance, is_adjacent) +/obj/machinery/cell_charger/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 5) - return TRUE + return if(charging) - to_chat(user, "There's \a [charging.name] in the charger. Current charge: [charging.percent()]%.") + . += "There's \a [charging.name] in the charger. Current charge: [charging.percent()]%." else - to_chat(user, SPAN_WARNING("The charger is empty.")) + . += SPAN_WARNING("The charger is empty.") /obj/machinery/cell_charger/attackby(obj/item/W, mob/user) if(stat & BROKEN) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index d7711ea29d5..b11544bc5d8 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -432,9 +432,9 @@ read_only = !read_only to_chat(user, "You flip the write-protect tab to [read_only ? "protected" : "unprotected"].") -/obj/item/disk/data/examine(mob/user) +/obj/item/disk/data/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, text("The write-protect tab is set to [read_only ? "protected" : "unprotected"].")) + . += "The write-protect tab is set to [read_only ? "protected" : "unprotected"]." /* * Diskette Box diff --git a/code/game/machinery/computer/arcade_orion.dm b/code/game/machinery/computer/arcade_orion.dm index d231445a9b6..6acd6c3e4b3 100644 --- a/code/game/machinery/computer/arcade_orion.dm +++ b/code/game/machinery/computer/arcade_orion.dm @@ -500,11 +500,11 @@ w_class = ITEMSIZE_SMALL var/active = 0 //if the ship is on -/obj/item/orion_ship/examine(mob/user, distance, is_adjacent) +/obj/item/orion_ship/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 1) return - to_chat(user, SPAN_NOTICE("There's a little switch on the bottom. It's flipped [active ? "up" : "down"].")) + . += SPAN_NOTICE("There's a little switch on the bottom. It's flipped [active ? "up" : "down"].") /obj/item/orion_ship/attack_self(mob/user) if(active) diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 775bfdf6399..db54335fec0 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -17,17 +17,17 @@ else return temp_access -/obj/item/card/id/guest/examine(mob/user) +/obj/item/card/id/guest/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(world.time > expiration_time) - to_chat(usr, "This pass expired at: [worldtime2text(expiration_time)].") + . += SPAN_WARNING("This pass expired at: [worldtime2text(expiration_time)].") else - to_chat(usr, "This pass expires at: [worldtime2text(expiration_time)].") + . += "This pass expires at: [worldtime2text(expiration_time)]." - to_chat(usr, "It grants access to the following areas:") + . += "It grants access to the following areas:" for(var/A in temp_access) - to_chat(usr, "[get_access_desc(A)]") - to_chat(usr, "Issuing reason: [reason].") + . += "[get_access_desc(A)]" + . += "Issuing reason: [reason]." /obj/item/card/id/guest/Initialize(mapload, duration) . = ..(mapload) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 229a0c65312..1c2fa8a7b82 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -23,25 +23,25 @@ var/state = 1 var/pitch_toggle = 1 -/obj/machinery/constructable_frame/examine(mob/user) +/obj/machinery/constructable_frame/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(state) if(BLUEPRINT_STATE) - to_chat(user, FONT_SMALL(SPAN_NOTICE("Click on \the [src] to finalize its direction."))) - to_chat(user, FONT_SMALL(SPAN_WARNING("Use a wirecutter or a plasma cutter to disassemble \the [src]."))) + . += FONT_SMALL(SPAN_NOTICE("Click on \the [src] to finalize its direction.")) + . += FONT_SMALL(SPAN_WARNING("Use a wirecutter or a plasma cutter to disassemble \the [src].")) if(WIRING_STATE) - to_chat(user, FONT_SMALL(SPAN_NOTICE("Add cable coil to wire \the [src]."))) - to_chat(user, FONT_SMALL(SPAN_WARNING("Use a wrench or a plasma cutter to disassemble \the [src]."))) + . += FONT_SMALL(SPAN_NOTICE("Add cable coil to wire \the [src].")) + . += FONT_SMALL(SPAN_WARNING("Use a wrench or a plasma cutter to disassemble \the [src].")) if(CIRCUITBOARD_STATE) - to_chat(user, FONT_SMALL(SPAN_NOTICE("Add the desired circuitboard."))) - to_chat(user, FONT_SMALL(SPAN_WARNING("Use a wirecutter to remove the cables."))) + . += FONT_SMALL(SPAN_NOTICE("Add the desired circuitboard.")) + . += FONT_SMALL(SPAN_WARNING("Use a wirecutter to remove the cables.")) if(COMPONENT_STATE) - to_chat(user, FONT_SMALL(SPAN_NOTICE("Add the required components. Use the screwdriver to complete the machine."))) - to_chat(user, FONT_SMALL(SPAN_WARNING("Use a crowbar to pry out the circuitboard and the components out."))) + . += FONT_SMALL(SPAN_NOTICE("Add the required components. Use the screwdriver to complete the machine.")) + . += FONT_SMALL(SPAN_WARNING("Use a crowbar to pry out the circuitboard and the components out.")) if(machine_description) - to_chat(user, FONT_SMALL(SPAN_NOTICE(machine_description))) + . += FONT_SMALL(SPAN_NOTICE(machine_description)) if(components_description) - to_chat(user, FONT_SMALL(SPAN_NOTICE(components_description))) + . += FONT_SMALL(SPAN_NOTICE(components_description)) /obj/machinery/constructable_frame/proc/update_component_desc() var/D diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 0509095110d..7c0952a83d9 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -69,11 +69,11 @@ node = target break -/obj/machinery/atmospherics/unary/cryo_cell/examine(mob/user, distance, is_adjacent) +/obj/machinery/atmospherics/unary/cryo_cell/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(beaker) - to_chat(user, SPAN_NOTICE("It is loaded with a beaker.")) + . += SPAN_NOTICE("It is loaded with a beaker.") if(occupant) occupant.examine(arglist(args)) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 7e8c040a688..9ffbf2811f9 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -297,10 +297,10 @@ GLOBAL_LIST_EMPTY(frozen_crew) update_icon() find_control_computer() -/obj/machinery/cryopod/examine(mob/user, distance, is_adjacent) +/obj/machinery/cryopod/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(occupant) - to_chat(user, SPAN_NOTICE("[occupant] [occupant.get_pronoun("is")] inside \the [initial(name)].")) + . += SPAN_NOTICE("[occupant] [occupant.get_pronoun("is")] inside \the [initial(name)].") /obj/machinery/cryopod/can_hold_dropped_items() return FALSE diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 4a09d02def4..6c6d6ab7647 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -2060,19 +2060,19 @@ About the new airlock wires panel: src.lock() return -/obj/machinery/door/airlock/examine(mob/user) +/obj/machinery/door/airlock/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (bolt_cut_state == BOLTS_EXPOSED) - to_chat(user, "The bolt cover has been cut open.") + . += SPAN_WARNING("The bolt cover has been cut open.") if (bolt_cut_state == BOLTS_CUT) - to_chat(user, "The door bolts have been cut.") + . += SPAN_WARNING("The door bolts have been cut.") if(bracer) - to_chat(user, "\The [bracer] is installed on \the [src], preventing it from opening.") - to_chat(user, bracer.health) + . += SPAN_WARNING("\The [bracer] is installed on \the [src], preventing it from opening.") + . += bracer.health if(p_open) - to_chat(user, "\The [src]'s maintenance panel has been unscrewed and is hanging open.") + . += SPAN_NOTICE("\The [src]'s maintenance panel has been unscrewed and is hanging open.") if(islist(access_by_level) || islist(req_one_access_by_level)) - to_chat(user, SPAN_NOTICE("This airlock changes access requirements depending on the level.")) + . += SPAN_NOTICE("This airlock changes access requirements depending on the level.") /obj/machinery/door/airlock/emag_act(var/remaining_charges) . = ..() diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index ca77b6022ac..c9369d988de 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -56,14 +56,15 @@ stat |= BROKEN update_icon() -/obj/machinery/door_timer/examine(mob/user) +/obj/machinery/door_timer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - if(stat & (NOPOWER|BROKEN)) return + if(stat & (NOPOWER|BROKEN)) + return if(src.timing) var/second = round(timeleft() % 60) var/minute = round((timeleft() - second) / 60) - to_chat(user, "Time remaining: [minute]:[second]") + . += "Time remaining: [minute]:[second]" //Main door timer loop, if it's timing and time is >0 reduce time by 1. // if it's less than 0, open door, reset timer diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index e9b0bcbcc11..5d2c838004d 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -402,16 +402,14 @@ update_icon() return - -/obj/machinery/door/examine(mob/user) +/obj/machinery/door/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(src.health < src.maxhealth / 4) - to_chat(user, SPAN_WARNING("\The [src] looks like it's about to break!")) + . += SPAN_WARNING("\The [src] looks like it's about to break!") else if(src.health < src.maxhealth / 2) - to_chat(user, SPAN_WARNING("\The [src] looks seriously damaged!")) + . += SPAN_WARNING("\The [src] looks seriously damaged!") else if(src.health < src.maxhealth * 3/4) - to_chat(user, SPAN_WARNING("\The [src] shows signs of damage!")) - + . += SPAN_WARNING("\The [src] shows signs of damage!") /obj/machinery/door/proc/set_broken() stat |= BROKEN @@ -419,14 +417,12 @@ update_icon() return - /obj/machinery/door/emp_act(severity) . = ..() if(prob(20/severity) && (istype(src,/obj/machinery/door/airlock) || istype(src,/obj/machinery/door/window)) ) open() - /obj/machinery/door/ex_act(severity) var/bolted = 0 if (istype(src, /obj/machinery/door/airlock)) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 491801eb799..856724f38dd 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -148,44 +148,41 @@ /obj/machinery/door/firedoor/get_material() return SSmaterials.get_material_by_name(DEFAULT_WALL_MATERIAL) -/obj/machinery/door/firedoor/examine(mob/user, distance, is_adjacent) +/obj/machinery/door/firedoor/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!is_adjacent || !density) return if(pdiff >= FIREDOOR_MAX_PRESSURE_DIFF) - to_chat(user, SPAN_DANGER("Current pressure differential is [pdiff] kPa. Opening door will likely result in injury.")) + . += SPAN_DANGER("Current pressure differential is [pdiff] kPa. Opening door will likely result in injury.") - to_chat(user, "Sensor readings:") + . += "Sensor readings:" for(var/index = 1; index <= tile_info.len; index++) - var/o = "  " switch(index) if(1) - o += "NORTH: " + . += "NORTH: " if(2) - o += "SOUTH: " + . += "SOUTH: " if(3) - o += "EAST: " + . += "EAST: " if(4) - o += "WEST: " + . += "WEST: " if(tile_info[index] == null) - o += "DATA UNAVAILABLE" - to_chat(user, o) + . += "DATA UNAVAILABLE" continue var/celsius = convert_k2c(tile_info[index][1]) var/pressure = tile_info[index][2] - o += "" - o += "[celsius]°C " - o += "" - o += "[pressure]kPa" - to_chat(user, o) + . += "" + . += "[celsius]°C " + . += "" + . += "[pressure]kPa" if(islist(users_to_open) && users_to_open.len) var/users_to_open_string = users_to_open[1] if(users_to_open.len >= 2) for(var/i = 2 to users_to_open.len) users_to_open_string += ", [users_to_open[i]]" - to_chat(user, "These people have opened \the [src] during an alert: [users_to_open_string].") + . += "These people have opened \the [src] during an alert: [users_to_open_string]." /obj/machinery/door/firedoor/CollidedWith(atom/AM) if(p_open || operating) diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 9554f98037d..b534efa61ad 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -19,9 +19,9 @@ var/list/doppler_arrays = list() doppler_arrays -= src return ..() -/obj/machinery/doppler_array/examine(mob/user) +/obj/machinery/doppler_array/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("\The [src] is [active ? "listening for explosions" : "[SPAN_WARNING("inactive")]"].")) + . += SPAN_NOTICE("\The [src] is [active ? "listening for explosions" : "[SPAN_WARNING("inactive")]"].") /obj/machinery/doppler_array/attack_hand(mob/user) active = !active diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 689be996ed3..3c4e65179a0 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -20,12 +20,12 @@ ///looping sound datum for our fire alarm siren. var/datum/looping_sound/firealarm/soundloop -/obj/machinery/firealarm/examine(mob/user) +/obj/machinery/firealarm/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if((stat & (NOPOWER|BROKEN)) || buildstage != 2) return - to_chat(user, "The current alert level is [get_security_level()].") + . += "The current alert level is [get_security_level()]." /obj/machinery/firealarm/update_icon() cut_overlays() diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index a13f7d4c6e9..59eb8b0d3b7 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -19,15 +19,15 @@ . = ..() cell = new /obj/item/cell(src) -/obj/machinery/floodlight/examine(mob/user) +/obj/machinery/floodlight/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(cell) if(!cell.charge) - to_chat(user, SPAN_WARNING("The installed [cell.name] is completely flat!")) + . += SPAN_WARNING("The installed [cell.name] is completely flat!") return - to_chat(user, SPAN_NOTICE("The installed [cell.name] has [Percent(cell.charge, cell.maxcharge)]% charge remaining.")) + . += SPAN_NOTICE("The installed [cell.name] has [Percent(cell.charge, cell.maxcharge)]% charge remaining.") else - to_chat(user, SPAN_WARNING("\The [src] has no cell installed!")) + . += SPAN_WARNING("\The [src] has no cell installed!") /obj/machinery/floodlight/update_icon() cut_overlays() diff --git a/code/game/machinery/floorlayer.dm b/code/game/machinery/floorlayer.dm index 7d6c72b0533..1f421f6bc40 100644 --- a/code/game/machinery/floorlayer.dm +++ b/code/game/machinery/floorlayer.dm @@ -62,7 +62,7 @@ T = tgui_input_list(user, "Choose which set of tiles you want \the [src] to lay.", "Tiles", contents) return TRUE -/obj/machinery/floorlayer/examine(mob/user) +/obj/machinery/floorlayer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/dismantle = mode["dismantle"] var/laying = mode["laying"] @@ -70,7 +70,7 @@ var/number = 0 if (T) number = T.get_amount() - to_chat(user, SPAN_NOTICE("\The [src] has [number] tile\s, dismantle is [dismantle ? "on" : "off"], laying is [laying ? "on" : "off"], collect is [collect ? "on" : "off"].")) + . += SPAN_NOTICE("\The [src] has [number] tile\s, dismantle is [dismantle ? "on" : "off"], laying is [laying ? "on" : "off"], collect is [collect ? "on" : "off"].") /obj/machinery/floorlayer/proc/reset() on = FALSE diff --git a/code/game/machinery/gumball.dm b/code/game/machinery/gumball.dm index a3ce1555eed..7d9cad18da2 100644 --- a/code/game/machinery/gumball.dm +++ b/code/game/machinery/gumball.dm @@ -29,9 +29,9 @@ update_icon() -/obj/machinery/gumballmachine/examine(mob/user) +/obj/machinery/gumballmachine/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("\The [src] costs [gumprice] credits to use.")) + . += SPAN_NOTICE("\The [src] costs [gumprice] credits to use.") /obj/machinery/gumballmachine/update_icon() switch(amountleft) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 8a7128c7eb7..fbc5ddfefd0 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -81,13 +81,13 @@ Possible to do for anyone motivated enough: var/area/A = get_area(src) holopad_id = "[A.name] ([src.x]-[src.y]-[src.z])" -/obj/machinery/hologram/holopad/examine(mob/user) +/obj/machinery/hologram/holopad/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(connected_pad) if(established_connection) - to_chat(user, SPAN_NOTICE("\The [src] is currently in a call with a holopad with ID: [connected_pad.holopad_id]")) + . += SPAN_NOTICE("\The [src] is currently in a call with a holopad with ID: [connected_pad.holopad_id]") else - to_chat(user, SPAN_NOTICE("\The [src] is currently pending connection with a holopad with ID: [connected_pad.holopad_id]")) + . += SPAN_NOTICE("\The [src] is currently pending connection with a holopad with ID: [connected_pad.holopad_id]") /obj/machinery/hologram/holopad/update_icon(var/recurse = TRUE) if(LAZYLEN(active_holograms) || has_established_connection()) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 173af9cbdbb..1acf847edc1 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -683,30 +683,30 @@ transfer_amount = amount to_chat(usr, SPAN_NOTICE("Transfer rate set to [src.transfer_amount] u/sec.")) -/obj/machinery/iv_drip/examine(mob/user, distance, is_adjacent) +/obj/machinery/iv_drip/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 2) return - to_chat(user, SPAN_NOTICE("[src] is [mode ? "injecting" : "taking blood"] at a rate of [src.transfer_amount] u/sec, the automatic injection stop mode is [toggle_stop ? "on" : "off"]. The Emergency Positive Pressure \ - system is [epp ? "on" : "off"].")) + . += SPAN_NOTICE("[src] is [mode ? "injecting" : "taking blood"] at a rate of [src.transfer_amount] u/sec, the automatic injection stop mode is [toggle_stop ? "on" : "off"]. The Emergency Positive Pressure \ + system is [epp ? "on" : "off"].") if(attached) - to_chat(user, SPAN_NOTICE("\The [src] is attached to [attached]'s [vein.name].")) + . += SPAN_NOTICE("\The [src] is attached to [attached]'s [vein.name].") if(beaker) if(LAZYLEN(beaker.reagents.reagent_volumes)) - to_chat(user, SPAN_NOTICE("Attached is [icon2html(beaker, user)] \a [beaker] with [adv_scan ? "[beaker.reagents.total_volume] units of primarily [beaker.reagents.get_primary_reagent_name()]" : "some liquid"].")) + . += SPAN_NOTICE("Attached is [icon2html(beaker, user)] \a [beaker] with [adv_scan ? "[beaker.reagents.total_volume] units of primarily [beaker.reagents.get_primary_reagent_name()]" : "some liquid"].") else - to_chat(user, SPAN_NOTICE("Attached is [icon2html(beaker, user)] \a [beaker]. It is empty.")) + . += SPAN_NOTICE("Attached is [icon2html(beaker, user)] \a [beaker]. It is empty.") else - to_chat(user, SPAN_NOTICE("No chemicals are attached.")) + . += SPAN_NOTICE("No chemicals are attached.") if(tank) - to_chat(user, SPAN_NOTICE("Installed is [icon2html(tank, user)] [is_loose ? "\a [tank] sitting loose" : "\a [tank] secured"] on the stand. The meter shows [round(tank.air_contents.return_pressure())]kPa, \ - with the pressure set to [round(tank.distribute_pressure)]kPa. The valve is [valve_open ? "open" : "closed"].")) + . += SPAN_NOTICE("Installed is [icon2html(tank, user)] [is_loose ? "\a [tank] sitting loose" : "\a [tank] secured"] on the stand. The meter shows [round(tank.air_contents.return_pressure())]kPa, \ + with the pressure set to [round(tank.distribute_pressure)]kPa. The valve is [valve_open ? "open" : "closed"].") else - to_chat(user, SPAN_NOTICE("No gas tank installed.")) + . += SPAN_NOTICE("No gas tank installed.") if(breath_mask) - to_chat(user, SPAN_NOTICE("\The [src] has [icon2html(breath_mask, user)] \a [breath_mask] installed. [breather ? breather : "No one"] is wearing it.")) + . += SPAN_NOTICE("\The [src] has [icon2html(breath_mask, user)] \a [breath_mask] installed. [breather ? breather : "No one"] is wearing it.") else - to_chat(user, SPAN_NOTICE("No breath mask installed.")) + . += SPAN_NOTICE("No breath mask installed.") /obj/machinery/iv_drip/RefreshParts() ..() diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index c59b93362da..c6ed1b0c35d 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -37,10 +37,10 @@ else if (light_range) set_light(FALSE) -/obj/machinery/light_switch/examine(mob/user, distance, is_adjacent) +/obj/machinery/light_switch/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "A light switch. It is [on? "on" : "off"].") + . += "It is [on ? "on" : "off"]." /obj/machinery/light_switch/attack_hand(mob/user) playsound(src, /singleton/sound_category/switch_sound, 30) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 90a61c3089f..5d442d1dc65 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -170,10 +170,10 @@ Class Procs: return ..() -/obj/machinery/examine(mob/user, distance, is_adjacent) +/obj/machinery/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(signaler && is_adjacent) - to_chat(user, SPAN_WARNING("\The [src] has a hidden signaler attached to it.")) + . += SPAN_WARNING("\The [src] has a hidden signaler attached to it.") // /obj/machinery/proc/process_all() // /* Uncomment this if/when you need component processing diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index d78de3369dc..d699b15039f 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -79,7 +79,7 @@ var/old_angle = 0 -/obj/machinery/porta_turret/examine(mob/user) +/obj/machinery/porta_turret/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/msg = "" if(!health) @@ -92,7 +92,7 @@ msg += SPAN_NOTICE("\The [src] is slightly damaged!") else msg += SPAN_GOOD("\The [src] is not damaged!") - to_chat(user, msg) + . += msg /obj/machinery/porta_turret/crescent enabled = FALSE diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index a656b4bbd14..194504378dc 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -32,9 +32,9 @@ var/portable = 1 var/list/chargebars -/obj/machinery/recharger/examine(mob/user, distance, is_adjacent) +/obj/machinery/recharger/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "There is [charging ? "\a [charging]" : "nothing"] in [src].") + . += "There is [charging ? "\a [charging]" : "nothing"] in [src]." if (charging && distance <= 3) var/obj/item/cell/C = charging.get_cell() if (istype(C) && user.client && (!user.progressbars || !user.progressbars[src])) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 39dfcdbbda2..790c0841e3f 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -110,9 +110,9 @@ D.upgrade_cooldown = world.time + 1 MINUTE D.master_matrix.apply_upgrades(D) -/obj/machinery/recharge_station/examine(mob/user) +/obj/machinery/recharge_station/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "The charge meter reads: [round(chargepercentage())]%.") + . += "The charge meter reads: [round(chargepercentage())]%." /obj/machinery/recharge_station/proc/chargepercentage() if(!cell) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 93dbcded365..0a3960d31a0 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -36,14 +36,13 @@ if(panel_open) add_overlay("sheater-open") -/obj/machinery/space_heater/examine(mob/user) +/obj/machinery/space_heater/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - - to_chat(user, "The heater is [on ? "on" : "off"] and the hatch is [panel_open ? "open" : "closed"].") + . += "The heater is [on ? "on" : "off"] and the hatch is [panel_open ? "open" : "closed"]." if(panel_open) - to_chat(user, "The power cell is [cell ? "installed" : "missing"].") + . += "The power cell is [cell ? "installed" : "missing"]." else - to_chat(user, "The charge meter reads [cell ? round(cell.percent(),1) : 0]%") + . += "The charge meter reads [cell ? round(cell.percent(),1) : 0]%" return /obj/machinery/space_heater/powered() diff --git a/code/game/machinery/stargazer.dm b/code/game/machinery/stargazer.dm index 872dcae64aa..04441f224e3 100644 --- a/code/game/machinery/stargazer.dm +++ b/code/game/machinery/stargazer.dm @@ -14,10 +14,10 @@ star_system_image = image(icon, null, "stargazer_[SSatlas.current_sector.name]", EFFECTS_ABOVE_LIGHTING_LAYER) power_change() -/obj/machinery/stargazer/examine(mob/user) +/obj/machinery/stargazer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!(stat & BROKEN) && !(stat & NOPOWER)) - to_chat(user, SPAN_NOTICE("\The [src] shows the current sector to be [SSatlas.current_sector.name].")) + . += SPAN_NOTICE("\The [src] shows the current sector to be [SSatlas.current_sector.name].") /obj/machinery/stargazer/power_change() ..() diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index b7785ff4318..9008e125fda 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -137,10 +137,10 @@ return 1 return 0 -/obj/machinery/status_display/examine(mob/user) +/obj/machinery/status_display/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(mode != STATUS_DISPLAY_BLANK && mode != STATUS_DISPLAY_ALERT) - to_chat(user, "The display says:
\t[sanitize(message1)]
\t[sanitize(message2)]") + . += "The display says:
\t[sanitize(message1)]
\t[sanitize(message2)]" /obj/machinery/status_display/proc/set_message(m1, m2) if(m1) diff --git a/code/game/machinery/vending_items.dm b/code/game/machinery/vending_items.dm index c6c5f223d70..7fe06ced116 100644 --- a/code/game/machinery/vending_items.dm +++ b/code/game/machinery/vending_items.dm @@ -13,12 +13,12 @@ w_class = ITEMSIZE_NORMAL var/charges = 0 -/obj/item/device/vending_refill/examine(mob/user) +/obj/item/device/vending_refill/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(charges > 0) - to_chat(user, "It can restock [charges] item(s).") + . += "It can restock [charges] item(s)." else - to_chat(user, "It's empty!") + . += SPAN_WARNING("It's empty!") /obj/item/device/vending_refill/proc/restock_inventory(var/obj/machinery/vending/vendor) if(vendor) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 3bfd4ab4505..7e0cbde42ea 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -58,7 +58,7 @@ if (dries) animate(src, color = "#000000", time = drytime, loop = 0, flags = ANIMATION_RELATIVE) -/obj/effect/decal/cleanable/blood/examine() +/obj/effect/decal/cleanable/blood/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) if(dries && world.time > (bleed_time + drytime)) name = dryname desc = drydesc @@ -189,9 +189,9 @@ else icon_state = "writing1" -/obj/effect/decal/cleanable/blood/writing/examine(mob/user) +/obj/effect/decal/cleanable/blood/writing/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It reads: \"[message]\"") + . += "It reads: \"[message]\"" /obj/effect/decal/cleanable/blood/gibs name = "gibs" diff --git a/code/game/objects/effects/plastic_explosive.dm b/code/game/objects/effects/plastic_explosive.dm index 5cfd547d7c7..0ed64727486 100644 --- a/code/game/objects/effects/plastic_explosive.dm +++ b/code/game/objects/effects/plastic_explosive.dm @@ -37,10 +37,10 @@ pixel_x = pixel_shifts[1] pixel_y = pixel_shifts[2] -/obj/effect/plastic_explosive/examine(mob/user, distance, is_adjacent) +/obj/effect/plastic_explosive/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, SPAN_WARNING("It is set to blow in [round((parent.detonate_time - world.time) / 10)] seconds.")) + . += SPAN_WARNING("It is set to blow in [round((parent.detonate_time - world.time) / 10)] seconds.") /obj/effect/plastic_explosive/attack_hand(mob/living/user) to_chat(user, SPAN_WARNING("\The [src] is solidly attached, it doesn't budge!")) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 01b836f97f0..dbadd0a588c 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -323,18 +323,18 @@ I.forceMove(T) -/obj/item/examine(mob/user, distance) +/obj/item/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) var/size switch(src.w_class) - if (5.0 to INFINITY) + if (ITEMSIZE_HUGE to INFINITY) size = "huge" - if (4.0 to 5.0) + if (ITEMSIZE_LARGE to ITEMSIZE_HUGE) size = "bulky" - if (3.0 to 4.0) + if (ITEMSIZE_NORMAL to ITEMSIZE_LARGE) size = "normal-sized" - if (2.0 to 3.0) + if (ITEMSIZE_SMALL to ITEMSIZE_NORMAL) size = "small" - if (0 to 2.0) + if (0 to ITEMSIZE_SMALL) size = "tiny" //Changed this switch to ranges instead of tiered values, to cope with granularity and also //things outside its range ~Nanako @@ -342,7 +342,7 @@ . = ..(user, distance, "", "It is a [size] item.") var/datum/component/armor/armor_component = GetComponent(/datum/component/armor) if(armor_component) - to_chat(user, FONT_SMALL(SPAN_NOTICE("\[?\] This item has armor values. \[Show Armor Values\]"))) + . += FONT_SMALL(SPAN_NOTICE("\[?\] This item has armor values. \[Show Armor Values\]")) /obj/item/Topic(href, href_list) if(href_list["examine_armor"]) diff --git a/code/game/objects/items/airbubble.dm b/code/game/objects/items/airbubble.dm index 5945dcc210b..9c7ede86eef 100644 --- a/code/game/objects/items/airbubble.dm +++ b/code/game/objects/items/airbubble.dm @@ -82,16 +82,16 @@ slowdown = 0 // Examine to see tank pressure -/obj/structure/closet/airbubble/examine(mob/user) +/obj/structure/closet/airbubble/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!isnull(internal_tank)) - to_chat(user, "\The [src] has [internal_tank] attached, that displays [round(internal_tank.air_contents.return_pressure() ? internal_tank.air_contents.return_pressure() : 0)] KPa.") + . += "\The [src] has [internal_tank] attached, that displays [round(internal_tank.air_contents.return_pressure() ? internal_tank.air_contents.return_pressure() : 0)] KPa." else - to_chat(user, "\The [src] has no tank attached.") + . += "\The [src] has no tank attached." if (cell) - to_chat(user, "\The [src] has [cell] attached, the charge meter reads [round(cell.percent())]%.") + . += "\The [src] has [cell] attached, the charge meter reads [round(cell.percent())]%." else - to_chat(user, "[src] has no power cell installed.") + . += "[src] has no power cell installed." /obj/structure/closet/airbubble/can_open() if(zipped) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index da2e29470c2..8bd7523b7ff 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -234,11 +234,11 @@ return airtank ..() -/obj/structure/closet/body_bag/cryobag/examine(mob/user, distance, is_adjacent) +/obj/structure/closet/body_bag/cryobag/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user,"The stasis meter shows '[stasis_power]x'.") + . += "The stasis meter shows '[stasis_power]x'." if(is_adjacent && length(contents)) //The bag's rather thick and opaque from a distance. - to_chat(user, "You peer into \the [src].") + . += "You peer into \the [src]." for(var/mob/living/L in contents) L.examine(arglist(args)) diff --git a/code/game/objects/items/contraband.dm b/code/game/objects/items/contraband.dm index 92d5a363e58..7c6a405ae63 100644 --- a/code/game/objects/items/contraband.dm +++ b/code/game/objects/items/contraband.dm @@ -124,10 +124,10 @@ w_class = ITEMSIZE_TINY volume = 50 -/obj/item/reagent_containers/powder/examine(mob/user) +/obj/item/reagent_containers/powder/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(reagents) - to_chat(user, SPAN_NOTICE("There's about [reagents.total_volume] unit\s here.")) + . += SPAN_NOTICE("There's about [reagents.total_volume] unit\s here.") /obj/item/reagent_containers/powder/Initialize() . = ..() diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 38b2c6d6599..b92f71b3cca 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -62,12 +62,12 @@ overlays = new_overlays -/obj/item/defibrillator/examine(mob/user) +/obj/item/defibrillator/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(bcell) - to_chat(user, "The charge meter is showing [bcell.percent()]% charge left.") + . += "The charge meter is showing [bcell.percent()]% charge left." else - to_chat(user, "There is no cell inside.") + . += "There is no cell inside." /obj/item/defibrillator/ui_action_click() toggle_paddles() diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index d41b1f3eb71..1bf8974fa5e 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -9,7 +9,7 @@ var/flush = 0 var/mob/living/silicon/ai/carded_ai -/obj/item/aicard/examine(mob/user) +/obj/item/aicard/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/message = "Status of [carded_ai] is: " if(!carded_ai) @@ -20,7 +20,7 @@ message += SPAN_NOTICE("active.") else message += SPAN_WARNING("inactive.") - to_chat(user, message) + . += message /obj/item/aicard/attack(mob/living/silicon/decoy/M as mob, mob/user as mob, var/target_zone) if (!istype (M, /mob/living/silicon/decoy)) diff --git a/code/game/objects/items/devices/augment_implanter.dm b/code/game/objects/items/devices/augment_implanter.dm index cf0adb93e5a..a6e153bcf5c 100644 --- a/code/game/objects/items/devices/augment_implanter.dm +++ b/code/game/objects/items/devices/augment_implanter.dm @@ -15,12 +15,12 @@ if(!augment_type) augment_type = new new_augment(src) -/obj/item/device/augment_implanter/examine(mob/user) +/obj/item/device/augment_implanter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(augment_type) - to_chat(user, FONT_SMALL(SPAN_NOTICE("\The [augment_type] can be seen floating inside \the [src]'s biogel."))) + . += FONT_SMALL(SPAN_NOTICE("\The [augment_type] can be seen floating inside \the [src]'s biogel.")) else - to_chat(user, FONT_SMALL(SPAN_WARNING("It is spent."))) + . += FONT_SMALL(SPAN_WARNING("It is spent.")) /obj/item/device/augment_implanter/afterattack(mob/living/L, mob/user, proximity) if(!proximity) diff --git a/code/game/objects/items/devices/auto_cpr.dm b/code/game/objects/items/devices/auto_cpr.dm index 003c19e4095..56c97b8e710 100644 --- a/code/game/objects/items/devices/auto_cpr.dm +++ b/code/game/objects/items/devices/auto_cpr.dm @@ -477,17 +477,17 @@ playsound(usr, 'sound/machines/click.ogg', 50) update_icon() -/obj/item/auto_cpr/examine(mob/user, distance, is_adjacent) +/obj/item/auto_cpr/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!is_adjacent) return - to_chat(user, SPAN_NOTICE("\The [src]'s [EPP] is currently [epp_mode ? "on" : "off"], while the Auto CPR is [cpr_mode ? "on" : "off"].")) + . += SPAN_NOTICE("\The [src]'s [EPP] is currently [epp_mode ? "on" : "off"], while the Auto CPR is [cpr_mode ? "on" : "off"].") if(battery) - to_chat(user, SPAN_NOTICE("It currently has a battery with [battery.percent()]% charge.")) + . += SPAN_NOTICE("It currently has a battery with [battery.percent()]% charge.") if(tank) - to_chat(user, SPAN_NOTICE("It has [icon2html(tank, user)] \the [tank] installed. The meter shows [round(tank.air_contents.return_pressure())]kPa, \ - with the pressure set to [round(tank.distribute_pressure)]kPa.[epp_active ? " The [EPP] is active." : ""]")) + . += SPAN_NOTICE("It has [icon2html(tank, user)] \the [tank] installed. The meter shows [round(tank.air_contents.return_pressure())]kPa, \ + with the pressure set to [round(tank.distribute_pressure)]kPa.[epp_active ? " The [EPP] is active." : ""]") if(breath_mask) - to_chat(user, SPAN_NOTICE("It has [icon2html(breath_mask, user)] \the [breath_mask] installed.")) + . += SPAN_NOTICE("It has [icon2html(breath_mask, user)] \the [breath_mask] installed.") #undef EPP diff --git a/code/game/objects/items/devices/dociler.dm b/code/game/objects/items/devices/dociler.dm index a3b4da2d30d..809220fc4d9 100644 --- a/code/game/objects/items/devices/dociler.dm +++ b/code/game/objects/items/devices/dociler.dm @@ -12,9 +12,9 @@ var/loaded = 1 var/mode = "completely" -/obj/item/device/dociler/examine(var/mob/user) +/obj/item/device/dociler/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It is currently set to [mode] docile mode.") + . += "It is currently set to [mode] docile mode." /obj/item/device/dociler/attack_self(var/mob/user) if(mode == "somewhat") diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 920908f279e..942589cac69 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -17,13 +17,13 @@ var/last_use = 0 -/obj/item/device/flash/examine(mob/user, distance) +/obj/item/device/flash/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!broken) var/num_charges = max(0, max_charges - times_used) - to_chat(user, SPAN_NOTICE("The charge indicator shows [num_charges] charge[num_charges == 1 ? "" : "s"] remain[num_charges == 1 ? "s" : ""].")) + . += SPAN_NOTICE("The charge indicator shows [num_charges] charge[num_charges == 1 ? "" : "s"] remain[num_charges == 1 ? "s" : ""].") else - to_chat(user, SPAN_WARNING("\The [src]'s bulb is burnt out!")) + . += SPAN_WARNING("\The [src]'s bulb is burnt out!") /obj/item/device/flash/proc/clumsy_check(mob/user) if(user && (user.is_clumsy()) && prob(50)) diff --git a/code/game/objects/items/devices/geiger.dm b/code/game/objects/items/devices/geiger.dm index 9014a0b7f91..78b9a4dca4e 100644 --- a/code/game/objects/items/devices/geiger.dm +++ b/code/game/objects/items/devices/geiger.dm @@ -33,13 +33,13 @@ radiation_count = SSradiation.get_rads_at_turf(get_turf(src)) update_icon() -/obj/item/device/geiger/examine(mob/user) +/obj/item/device/geiger/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/msg = "[scanning ? "ambient" : "stored"] Radiation level: [radiation_count ? radiation_count : "0"] IU/s." if(radiation_count > RAD_LEVEL_LOW) - to_chat(user, SPAN_WARNING("[msg]")) + . += SPAN_WARNING("[msg]") else - to_chat(user, SPAN_NOTICE("[msg]")) + . += SPAN_NOTICE("[msg]") /obj/item/device/geiger/attack_self(mob/user) scanning = !scanning diff --git a/code/game/objects/items/devices/holowarrant.dm b/code/game/objects/items/devices/holowarrant.dm index 25722447585..0d8d0f0fba7 100644 --- a/code/game/objects/items/devices/holowarrant.dm +++ b/code/game/objects/items/devices/holowarrant.dm @@ -21,10 +21,10 @@ unload_warrant() return ..() -/obj/item/device/holowarrant/examine(mob/user, distance, is_adjacent) +/obj/item/device/holowarrant/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(selected_warrant) - to_chat(user, "It's a holographic warrant for '[selected_warrant.name]'.") + . += "It's a holographic warrant for '[selected_warrant.name]'." /obj/item/device/holowarrant/attack_self(mob/living/user as mob) if(!LAZYLEN(SSrecords.warrants)) diff --git a/code/game/objects/items/devices/lighting/flashlight.dm b/code/game/objects/items/devices/lighting/flashlight.dm index 8b9241ec590..204bd31140d 100644 --- a/code/game/objects/items/devices/lighting/flashlight.dm +++ b/code/game/objects/items/devices/lighting/flashlight.dm @@ -124,14 +124,14 @@ M.update_inv_r_ear() M.update_inv_head() -/obj/item/device/flashlight/examine(mob/user, distance, is_adjacent) +/obj/item/device/flashlight/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(power_use && brightness_level) - to_chat(user, SPAN_NOTICE("\The [src] is set to [brightness_level].")) + . += SPAN_NOTICE("\The [src] is set to [brightness_level].") if(cell) - to_chat(user, SPAN_NOTICE("\The [src] has \a [cell] attached. It has [round(cell.percent())]% charge remaining.")) + . += SPAN_NOTICE("\The [src] has \a [cell] attached. It has [round(cell.percent())]% charge remaining.") if(light_wedge && isturf(loc)) - to_chat(user, FONT_SMALL(SPAN_NOTICE("\The [src] is facing [dir2text(dir)]."))) + . += FONT_SMALL(SPAN_NOTICE("\The [src] is facing [dir2text(dir)].")) /obj/item/device/flashlight/attack_self(mob/user) if(always_on) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index f18ce37c793..f0dbacaa7e6 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -72,12 +72,12 @@ failmsg = "The [name]'s refill light blinks red." ..() -/obj/item/device/lightreplacer/examine(mob/user, distance, is_adjacent) +/obj/item/device/lightreplacer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 2) - to_chat(user, "It has [uses] lights remaining.") + . += "It has [uses] lights remaining." if (store_broken) - to_chat(user, "It is storing [stored()]/[max_stored] broken lights.") + . += "It is storing [stored()]/[max_stored] broken lights." /obj/item/device/lightreplacer/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/material) && W.get_material_name() == "glass") diff --git a/code/game/objects/items/devices/magnetic_lock.dm b/code/game/objects/items/devices/magnetic_lock.dm index eed357706c6..ec54e2877bd 100644 --- a/code/game/objects/items/devices/magnetic_lock.dm +++ b/code/game/objects/items/devices/magnetic_lock.dm @@ -76,17 +76,17 @@ status = STATUS_ACTIVE attach(newtarget) -/obj/item/device/magnetic_lock/examine(mob/user) +/obj/item/device/magnetic_lock/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (status == STATUS_BROKEN) - to_chat(user, "It looks broken!") + . += "It looks broken!" else if (powercell) var/power = round(powercell.charge / powercell.maxcharge * 100) - to_chat(user, "The powercell is at [power]% charge.") + . += "The powercell is at [power]% charge." else - to_chat(user, "It has no powercell to power it!") + . += "It has no powercell to power it!" /obj/item/device/magnetic_lock/attack_hand(var/mob/user) add_fingerprint(user) diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index 913708e1d20..71b8bfa88f2 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -69,9 +69,9 @@ user.drop_from_inventory(src,O) qdel(src) -/obj/item/device/modkit/examine(mob/user) +/obj/item/device/modkit/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It looks as though it modifies voidsuits to fit [target_species] users.") + . += "It looks as though it modifies voidsuits to fit [target_species] users." /obj/item/device/modkit/tajaran name = "tajaran voidsuit modification kit" diff --git a/code/game/objects/items/devices/paint_sprayer.dm b/code/game/objects/items/devices/paint_sprayer.dm index 26de453f444..6994521e504 100644 --- a/code/game/objects/items/devices/paint_sprayer.dm +++ b/code/game/objects/items/devices/paint_sprayer.dm @@ -289,9 +289,9 @@ playsound(get_turf(src), 'sound/effects/spray3.ogg', 30, 1, -6) return . -/obj/item/device/paint_sprayer/examine(mob/user) +/obj/item/device/paint_sprayer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It is configured to produce the '[decal]' decal with a direction of '[paint_dir]' using [paint_colour] paint.") + . += "It is configured to produce the '[SPAN_NOTICE(decal)]' decal with a direction of '[SPAN_NOTICE(paint_dir)]' using [SPAN_NOTICE(paint_colour)] paint." /obj/item/device/paint_sprayer/verb/choose_colour() set name = "Choose Colour" diff --git a/code/game/objects/items/devices/personal_shield.dm b/code/game/objects/items/devices/personal_shield.dm index c6e4cfab8ec..d2e5b3b9c35 100644 --- a/code/game/objects/items/devices/personal_shield.dm +++ b/code/game/objects/items/devices/personal_shield.dm @@ -13,10 +13,11 @@ var/upkeep_cost = 2 var/obj/aura/personal_shield/device/shield -/obj/item/device/personal_shield/examine(mob/user, distance, is_adjacent) +/obj/item/device/personal_shield/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, SPAN_NOTICE("\The [src] has [cell.charge] charge remaining. Shield upkeep costs [upkeep_cost] charge, and blocking a shot costs [charge_per_shot] charge.")) + . += SPAN_NOTICE("\The [src] has [cell.charge] charge remaining.") + . += SPAN_NOTICE("Shield upkeep costs [upkeep_cost] charge, and blocking a shot costs [SPAN_NOTICE(charge_per_shot)] charge.") /obj/item/device/personal_shield/Initialize() . = ..() diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 1daf45c43bf..a5c46b0e5de 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -31,6 +31,6 @@ /obj/item/device/pipe_painter/attack_self(var/mob/user) mode = tgui_input_list(user, "Which colour do you want to use?", "Pipe Painter", modes, mode) -/obj/item/device/pipe_painter/examine(var/mob/user) +/obj/item/device/pipe_painter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It is in [mode] mode.") + . += "It is in [mode] mode." diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 52a4159b280..15f1ac80a2e 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -17,10 +17,10 @@ GLOBAL_LIST_EMPTY(teleportbeacons) GLOB.teleportbeacons -= src return ..() -/obj/item/device/radio/beacon/examine(mob/user) +/obj/item/device/radio/beacon/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(anchored) - to_chat(user, SPAN_NOTICE("It's been secured to the ground with anchoring screws.")) + . += SPAN_NOTICE("It's been secured to the ground with anchoring screws.") /obj/item/device/radio/beacon/attack_hand(mob/user) if(anchored) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index dde58f63a13..75a51b47678 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -56,14 +56,14 @@ /obj/item/device/radio/headset/list_channels(var/mob/user) return list_secure_channels() -/obj/item/device/radio/headset/examine(mob/user, distance, is_adjacent) +/obj/item/device/radio/headset/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!(is_adjacent && radio_desc)) return - to_chat(user, "The following channels are available:") - to_chat(user, radio_desc) + . += "The following channels are available:" + . += radio_desc /obj/item/device/radio/headset/setupRadioDescription() if(translate_binary || translate_hivenet) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 09914685d8f..e83540ddf4f 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -515,13 +515,13 @@ var/global/list/default_interrogation_channels = list( return get_hearers_in_view(canhear_range, src) -/obj/item/device/radio/examine(mob/user, distance, is_adjacent) +/obj/item/device/radio/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(show_modify_on_examine && (distance <= 1)) if (b_stat) - user.show_message("\The [src] can be attached and modified!") + . += SPAN_NOTICE("\The [src] can be attached and modified!") else - user.show_message("\The [src] can not be modified or attached!") + . += SPAN_NOTICE("\The [src] can not be modified or attached!") /obj/item/device/radio/attackby(obj/item/W as obj, mob/user as mob) ..() diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm index 669ea861ba4..97bf2621448 100644 --- a/code/game/objects/items/devices/spy_bug.dm +++ b/code/game/objects/items/devices/spy_bug.dm @@ -25,11 +25,11 @@ camera = new(src) become_hearing_sensitive(ROUNDSTART_TRAIT) -/obj/item/device/spy_bug/examine(mob/user, distance) +/obj/item/device/spy_bug/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 0) - to_chat(user, "It's a tiny camera, microphone, and transmission device in a happy union.") - to_chat(user, "Needs to be both configured and brought in contact with monitor device to be fully functional.") + . += "It's a tiny camera, microphone, and transmission device in a happy union." + . += "Needs to be both configured and brought in contact with monitor device to be fully functional." /obj/item/device/spy_bug/attack_self(mob/user) radio.set_broadcasting(!radio.get_broadcasting()) @@ -68,10 +68,10 @@ radio = new(src) become_hearing_sensitive(ROUNDSTART_TRAIT) -/obj/item/device/spy_monitor/examine(mob/user, distance) +/obj/item/device/spy_monitor/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "The time '12:00' is blinking in the corner of the screen and \the [src] looks very cheaply made.") + . += "The time '12:00' is blinking in the corner of the screen and \the [src] looks very cheaply made." /obj/item/device/spy_monitor/attack_self(mob/user) if(operating) diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index f7809efd6a6..23d32ce2ffc 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -210,7 +210,7 @@ M.update_inv_back() M.update_inv_s_store() -/obj/item/device/suit_cooling_unit/examine(mob/user, distance) +/obj/item/device/suit_cooling_unit/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!distance <= 1) @@ -218,26 +218,26 @@ if(on) if(attached_to_suit(src.loc)) - to_chat(user, SPAN_NOTICE("It's switched on and running.")) + . += SPAN_NOTICE("It's switched on and running.") else if(ishuman(loc)) var/mob/living/carbon/human/H = loc if(H.species.flags & ACCEPTS_COOLER) - to_chat(user, SPAN_NOTICE("It's switched on and running, connected to the cooling systems of [H].")) + . += SPAN_NOTICE("It's switched on and running, connected to the cooling systems of [H].") else - to_chat(user, SPAN_NOTICE("It's switched on, but not attached to anything.")) + . += SPAN_NOTICE("It's switched on, but not attached to anything.") else - to_chat(user, SPAN_NOTICE("It is switched off.")) + . += SPAN_NOTICE("It is switched off.") if(cover_open) if(cell) - to_chat(user, SPAN_NOTICE("The panel is open, exposing \the [cell].")) + . += SPAN_NOTICE("The panel is open, exposing \the [cell].") else - to_chat(user, SPAN_NOTICE("The panel is open.")) + . += SPAN_NOTICE("The panel is open.") if(cell) - to_chat(user, SPAN_NOTICE("The charge meter reads [round(cell.percent())]%.")) + . += SPAN_NOTICE("The charge meter reads [round(cell.percent())]%.") else - to_chat(user, SPAN_NOTICE("It doesn't have a power cell installed.")) + . += SPAN_NOTICE("It doesn't have a power cell installed.") /obj/item/device/suit_cooling_unit/no_cell celltype = null diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm index 9146459ac83..1402c94d115 100644 --- a/code/game/objects/items/devices/tvcamera.dm +++ b/code/game/objects/items/devices/tvcamera.dm @@ -25,10 +25,10 @@ GLOB.listening_objects += src . = ..() -/obj/item/device/tvcamera/examine(mob/user) +/obj/item/device/tvcamera/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "Video feed is currently: [camera.status ? "Online" : "Offline"]") - to_chat(user, "Audio feed is currently: [radio.get_broadcasting() ? "Online" : "Offline"]") + . += "Video feed is currently: [camera.status ? "Online" : "Offline"]" + . += "Audio feed is currently: [radio.get_broadcasting() ? "Online" : "Offline"]" /obj/item/device/tvcamera/attack_self(mob/user) add_fingerprint(user) diff --git a/code/game/objects/items/ipc_overloaders.dm b/code/game/objects/items/ipc_overloaders.dm index eea2fe8abc6..0a93a29697f 100644 --- a/code/game/objects/items/ipc_overloaders.dm +++ b/code/game/objects/items/ipc_overloaders.dm @@ -31,13 +31,13 @@ else icon_state = "[initial(icon_state)]-[initial(uses)-uses]" -/obj/item/ipc_overloader/examine(mob/user, distance, is_adjacent) +/obj/item/ipc_overloader/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(uses) - to_chat(user, SPAN_NOTICE("It has [uses] uses left.")) + . += SPAN_NOTICE("It has [uses] uses left.") else - to_chat(user, SPAN_WARNING("It's totally spent.")) + . += SPAN_WARNING("It's totally spent.") /obj/item/ipc_overloader/attack_self(mob/user) if(!uses) @@ -271,11 +271,11 @@ icon_state = "box" return ..() -/obj/item/storage/overloader/examine(mob/user) +/obj/item/storage/overloader/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/obj/item/ipc_overloader/overloader = locate() in contents if(overloader) - to_chat(user, SPAN_NOTICE("This one has a [overloader.name] inside.")) + . += SPAN_NOTICE("This one has a [overloader.name] inside.") /obj/item/storage/overloader/open(mob/user) ..() diff --git a/code/game/objects/items/knitting.dm b/code/game/objects/items/knitting.dm index 07a4332b40e..47c31e65f32 100644 --- a/code/game/objects/items/knitting.dm +++ b/code/game/objects/items/knitting.dm @@ -39,11 +39,11 @@ QDEL_NULL(ball) return ..() -/obj/item/knittingneedles/examine(mob/user, distance, is_adjacent) +/obj/item/knittingneedles/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(ball) - to_chat(user, "There is \the [ball] between the needles.") + . += "There is \the [ball] between the needles." /obj/item/knittingneedles/update_icon() if(working) diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm index 9991ab5860f..cba80f4969f 100644 --- a/code/game/objects/items/paintkit.dm +++ b/code/game/objects/items/paintkit.dm @@ -7,9 +7,9 @@ var/new_icon_file var/uses = 1 // Uses before the kit deletes itself. -/obj/item/device/kit/examine() +/obj/item/device/kit/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(usr, "It has [uses] use\s left.") + . += "It has [uses] use\s left." /obj/item/device/kit/use(var/amt, var/mob/user) uses -= amt diff --git a/code/game/objects/items/recharger_backpack.dm b/code/game/objects/items/recharger_backpack.dm index c1200f4da3a..bfb31091931 100644 --- a/code/game/objects/items/recharger_backpack.dm +++ b/code/game/objects/items/recharger_backpack.dm @@ -17,10 +17,10 @@ //To update the icon based on the power cell charge we spawn with update_icon() -/obj/item/recharger_backpack/examine(mob/user) +/obj/item/recharger_backpack/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(powersupply) - to_chat(user, SPAN_NOTICE("The backpack display shows that the installed power cell is at [round(powersupply.percent())]%.")) + . += SPAN_NOTICE("The backpack display shows that the installed power cell is at [round(powersupply.percent())]%.") /obj/item/recharger_backpack/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/cell) && !powersupply) diff --git a/code/game/objects/items/skrell.dm b/code/game/objects/items/skrell.dm index dc1d53fb469..a32d932bac3 100644 --- a/code/game/objects/items/skrell.dm +++ b/code/game/objects/items/skrell.dm @@ -15,9 +15,9 @@ . = ..() pick_constellation() -/obj/item/stellascope/examine(mob/user) +/obj/item/stellascope/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "\The [src] displays the \"[selected_constellation]\".") + . += "\The [src] displays the \"[selected_constellation]\"." /obj/item/stellascope/throw_impact(atom/hit_atom) ..() @@ -92,10 +92,10 @@ STOP_PROCESSING(SSprocessing, src) return ..() -/obj/item/skrell_projector/examine(mob/user) +/obj/item/skrell_projector/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(selected_world && working) - to_chat(user, "\The [src] displays a hologram of [selected_world].") + . += "\The [src] displays a hologram of [selected_world]." /obj/item/skrell_projector/attack_self(mob/user as mob) working = !working diff --git a/code/game/objects/items/spirit_board.dm b/code/game/objects/items/spirit_board.dm index ea0b255d1dd..f7b0ce575d3 100644 --- a/code/game/objects/items/spirit_board.dm +++ b/code/game/objects/items/spirit_board.dm @@ -7,9 +7,9 @@ var/planchette = "A" var/lastuser = null -/obj/item/spirit_board/examine(mob/user) +/obj/item/spirit_board/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "The planchette is sitting at \"[planchette]\".") + . += "The planchette is sitting at \"[planchette]\"." /obj/item/spirit_board/attack_hand(mob/user) if(!isturf(loc)) //so if you want to play the use the board, you need to put it down somewhere diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 0e28c7c7526..1649c0343ce 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -70,14 +70,14 @@ else icon_state = "[initial(icon_state)]_3" -/obj/item/stack/examine(mob/user, distance, is_adjacent) +/obj/item/stack/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(!iscoil()) if(!uses_charge) - to_chat(user, "There [src.amount == 1 ? "is" : "are"] [src.amount] [src.singular_name]\s in the stack.") + . += "There [src.amount == 1 ? "is" : "are"] [src.amount] [src.singular_name]\s in the stack." else - to_chat(user, "You have enough charge to produce [get_amount()].") + . += "You have enough charge to produce [get_amount()]." /obj/item/stack/attack_self(mob/user) list_recipes(user, recipes) diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index df7f5f46575..3682878eb3a 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -61,10 +61,10 @@ to_chat(user, SPAN_WARNING("This object is far too large to wrap!")) return -/obj/item/stack/wrapping_paper/examine(mob/user, distance, is_adjacent) +/obj/item/stack/wrapping_paper/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "There [amount == 1 ? "is" : "are"] about [amount] [singular_name]\s of paper left!") + . += "There [amount == 1 ? "is" : "are"] about [amount] [singular_name]\s of paper left!" /obj/item/stack/wrapping_paper/attack(mob/target, mob/user) if(!ishuman(target)) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 701422fccb4..e845fce151c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -409,10 +409,10 @@ attack_verb = list("attacked", "struck", "hit") var/dart_count = 5 -/obj/item/toy/crossbow/examine(mob/user, distance, is_adjacent) +/obj/item/toy/crossbow/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 2 && dart_count) - to_chat(user, "\The [src] is loaded with [dart_count] foam dart\s.") + . += "\The [src] is loaded with [dart_count] foam dart\s." /obj/item/toy/crossbow/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/toy/ammo/crossbow)) diff --git a/code/game/objects/items/weapons/RFD.dm b/code/game/objects/items/weapons/RFD.dm index e46954a868c..da5766256f8 100644 --- a/code/game/objects/items/weapons/RFD.dm +++ b/code/game/objects/items/weapons/RFD.dm @@ -61,10 +61,10 @@ /obj/item/rfd/proc/can_use(var/mob/user,var/turf/T) return (user.Adjacent(T) && user.get_active_hand() == src && !user.stat && !user.restrained()) -/obj/item/rfd/examine(var/mob/user) +/obj/item/rfd/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(loc == user) - to_chat(user, "It currently holds [stored_matter]/30 matter units.") + . += "It currently holds [stored_matter]/30 matter units." /obj/item/rfd/attack_self(mob/user) //Change the mode @@ -538,13 +538,13 @@ /obj/item/rfd/transformer/attack_self(mob/user) return -/obj/item/rfd/transformer/examine(var/mob/user) +/obj/item/rfd/transformer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(loc == user) if(malftransformermade) - to_chat(user, "There is already a transformer machine made!") + . += "There is already a transformer machine made!" else - to_chat(user, "It is ready to deploy a transformer machine.") + . += "It is ready to deploy a transformer machine." /obj/item/rfd/transformer/afterattack(atom/A, mob/user as mob, proximity) @@ -671,11 +671,11 @@ "Omni Gas Filter" = PIPE_OMNI_FILTER ) -/obj/item/rfd/piping/examine(mob/user) +/obj/item/rfd/piping/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, FONT_SMALL(SPAN_NOTICE("Change pipe category by ALT-clicking, change pipe selection by using in-hand."))) - to_chat(user, SPAN_NOTICE("Selected pipe category: [selected_mode]")) - to_chat(user, SPAN_NOTICE("Selected pipe: [pipe_examine]")) + . += FONT_SMALL(SPAN_NOTICE("Change pipe category by ALT-clicking, change pipe selection by using in-hand.")) + . += SPAN_NOTICE("Selected pipe category: [selected_mode].") + . += SPAN_NOTICE("Selected pipe: [pipe_examine].") /obj/item/rfd/piping/afterattack(atom/A, mob/user, proximity) if(!proximity || !isturf(A)) diff --git a/code/game/objects/items/weapons/cards_ids_syndicate.dm b/code/game/objects/items/weapons/cards_ids_syndicate.dm index d1155455c2e..b0565190d2c 100644 --- a/code/game/objects/items/weapons/cards_ids_syndicate.dm +++ b/code/game/objects/items/weapons/cards_ids_syndicate.dm @@ -20,11 +20,11 @@ unset_registered_user(registered_user) return ..() -/obj/item/card/id/syndicate/examine(mob/user, distance, is_adjacent) +/obj/item/card/id/syndicate/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(user == registered_user) - to_chat(user, FONT_SMALL(SPAN_NOTICE("It is at [charge]/[initial(charge)] charge."))) + . += FONT_SMALL(SPAN_NOTICE("It is at [charge]/[initial(charge)] charge.")) /obj/item/card/id/syndicate/process() if(electronic_warfare) diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 46c51a68980..31980513c47 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -1024,10 +1024,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/trash/cigbutt/roll icon_state = "rollbutt" -/obj/item/clothing/mask/smokable/cigarette/rolled/examine(mob/user) +/obj/item/clothing/mask/smokable/cigarette/rolled/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(filter) - to_chat(user, "Capped off one end with a filter.") + . += "It's capped off one end with a filter." /obj/item/clothing/mask/smokable/cigarette/rolled/update_icon() . = ..() diff --git a/code/game/objects/items/weapons/circuitboards/circuitboard.dm b/code/game/objects/items/weapons/circuitboards/circuitboard.dm index f993e826728..97c574ae783 100644 --- a/code/game/objects/items/weapons/circuitboards/circuitboard.dm +++ b/code/game/objects/items/weapons/circuitboards/circuitboard.dm @@ -22,19 +22,20 @@ var/list/req_components var/contain_parts = 1 -/obj/item/circuitboard/examine(mob/user) +/obj/item/circuitboard/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() + if(build_path) var/obj/machine = new build_path // instantiate to get the name and desc - to_chat(user, FONT_SMALL(SPAN_NOTICE("This circuitboard will build a [capitalize_first_letters(machine.name)]: [machine.desc]"))) + . += FONT_SMALL(SPAN_NOTICE("This circuitboard will build a [capitalize_first_letters(machine.name)]: [machine.desc]")) if(board_type == BOARD_COMPUTER) // does not have build components, only goes into a frame - to_chat(user, SPAN_NOTICE("This board is used inside a computer frame.")) + . += SPAN_NOTICE("This board is used inside a computer frame.") else if(req_components) - to_chat(user, SPAN_NOTICE("To build this machine, you will require:")) + . += SPAN_NOTICE("To build this machine, you will require:") for(var/I in req_components) if(req_components[I] > 0) var/obj/component = new I // instantiate to get the name - to_chat(user, SPAN_NOTICE("- [num2text(req_components[I])] [capitalize_first_letters(component.name)]")) + . += SPAN_NOTICE("- [num2text(req_components[I])] [capitalize_first_letters(component.name)]") //Called when the circuitboard is used to contruct a new machine. /obj/item/circuitboard/proc/construct(var/obj/machinery/M) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm b/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm index f63fa7940c2..bf205108c46 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm @@ -14,9 +14,9 @@ user.visible_message("\The [user] adjusts the jumper on the [src]'s port configuration pins.", "You adjust the jumper on the port configuration pins. Now set to [dir2text(machine_dir)].") return -/obj/item/circuitboard/unary_atmos/examine() +/obj/item/circuitboard/unary_atmos/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(usr, "The jumper is connecting the [dir2text(machine_dir)] pins.") + . += "The jumper is connecting the [dir2text(machine_dir)] pins." /obj/item/circuitboard/unary_atmos/construct(var/obj/machinery/atmospherics/unary/U) //TODO: Move this stuff into the relevant constructor when pipe/construction.dm is cleaned up. diff --git a/code/game/objects/items/weapons/cloaking_device.dm b/code/game/objects/items/weapons/cloaking_device.dm index e7d928b2868..414c8026ae0 100644 --- a/code/game/objects/items/weapons/cloaking_device.dm +++ b/code/game/objects/items/weapons/cloaking_device.dm @@ -138,12 +138,12 @@ return ..() -/obj/item/cloaking_device/examine(mob/user) +/obj/item/cloaking_device/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (!cell) - to_chat(user, "It needs a power cell to function.") + . += SPAN_WARNING("It needs a power cell to function.") else - to_chat(user, "It has [cell.percent()]% power remaining") + . += SPAN_NOTICE("It has [cell.percent()]% power remaining.") /obj/item/cloaking_device/process() if (!cell || !cell.checked_use(power_usage*CELLRATE)) diff --git a/code/game/objects/items/weapons/ecigs.dm b/code/game/objects/items/weapons/ecigs.dm index 064c8f33076..2a86e3f57ec 100644 --- a/code/game/objects/items/weapons/ecigs.dm +++ b/code/game/objects/items/weapons/ecigs.dm @@ -42,12 +42,12 @@ icon_empty = "ccigoff" icon_on = "ccigon" -/obj/item/clothing/mask/smokable/ecig/simple/examine(mob/user) +/obj/item/clothing/mask/smokable/ecig/simple/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(ec_cartridge) - to_chat(user, SPAN_NOTICE("There are [round(ec_cartridge.reagents.total_volume, 1)] unit\s of liquid remaining.")) + . += SPAN_NOTICE("There are [round(ec_cartridge.reagents.total_volume, 1)] unit\s of liquid remaining.") else - to_chat(user, SPAN_NOTICE("There's no cartridge connected.")) + . += SPAN_NOTICE("There's no cartridge connected.") /obj/item/clothing/mask/smokable/ecig/util name = "electronic cigarette" @@ -61,20 +61,20 @@ . = ..() color = pick(ecig_colors) -/obj/item/clothing/mask/smokable/ecig/util/examine(mob/user) +/obj/item/clothing/mask/smokable/ecig/util/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(ec_cartridge) - to_chat(user, SPAN_NOTICE("There are [round(ec_cartridge.reagents.total_volume, 1)] unit\s of liquid remaining.")) + . += SPAN_NOTICE("There are [round(ec_cartridge.reagents.total_volume, 1)] unit\s of liquid remaining.") else - to_chat(user, SPAN_NOTICE("There's no cartridge connected.")) + . += SPAN_NOTICE("There's no cartridge connected.") if(cig_cell) - to_chat(user, SPAN_NOTICE("The power meter shows that there's about [round(cig_cell.percent(), 5)]% power remaining.")) + . += SPAN_NOTICE("The power meter shows that there's about [round(cig_cell.percent(), 5)]% power remaining.") else - to_chat(user, SPAN_NOTICE("There's no power cell connected.")) + . += SPAN_NOTICE("There's no power cell connected.") if(active) - to_chat(user, SPAN_NOTICE("It is currently turned on.")) + . += SPAN_NOTICE("It is currently turned on.") else - to_chat(user, SPAN_NOTICE("It is currently turned off.")) + . += SPAN_NOTICE("It is currently turned off.") /obj/item/clothing/mask/smokable/ecig/deluxe name = "deluxe electronic cigarette" @@ -85,16 +85,16 @@ icon_on = "pcigon" cell_type = /obj/item/cell/device/high -/obj/item/clothing/mask/smokable/ecig/deluxe/examine(mob/user) +/obj/item/clothing/mask/smokable/ecig/deluxe/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(ec_cartridge) - to_chat(user, SPAN_NOTICE("There are [round(ec_cartridge.reagents.total_volume, 1)] unit\s of liquid remaining.")) + . += SPAN_NOTICE("There are [round(ec_cartridge.reagents.total_volume, 1)] unit\s of liquid remaining.") else - to_chat(user, SPAN_NOTICE("There's no cartridge connected.")) + . += SPAN_NOTICE("There's no cartridge connected.") if(cig_cell) - to_chat(user, SPAN_NOTICE("The power meter shows that there's about [round(cig_cell.percent(), 1)]% power remaining.")) + . += SPAN_NOTICE("The power meter shows that there's about [round(cig_cell.percent(), 1)]% power remaining.") else - to_chat(user, SPAN_NOTICE("There's no power cell connected.")) + . += SPAN_NOTICE("There's no power cell connected.") /obj/item/clothing/mask/smokable/ecig/proc/deactivate() active = FALSE @@ -248,9 +248,9 @@ volume = 20 atom_flags = ATOM_FLAG_OPEN_CONTAINER -/obj/item/reagent_containers/ecig_cartridge/examine(mob/user) +/obj/item/reagent_containers/ecig_cartridge/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "The cartridge has [reagents.total_volume] unit\s of liquid remaining.") + . += SPAN_NOTICE("The cartridge has [reagents.total_volume] unit\s of liquid remaining.") //flavours /obj/item/reagent_containers/ecig_cartridge/blank diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 19709eb0f04..7b8fb5c0392 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -56,21 +56,21 @@ to_chat(user,"\The reagents inside [src] are already secured!") return -/obj/item/reagent_containers/extinguisher_refill/examine(mob/user, distance) //Copied from inhalers. +/obj/item/reagent_containers/extinguisher_refill/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!distance <= 2) return if(is_open_container()) if(LAZYLEN(reagents?.reagent_volumes)) - to_chat(user,"It contains [round(reagents.total_volume, accuracy)] units of non-aerosol mix.") + . += SPAN_NOTICE("It contains [round(reagents.total_volume, accuracy)] units of non-aerosol mix.") else - to_chat(user,"It is empty.") + . += SPAN_NOTICE("It is empty.") else if(LAZYLEN(reagents?.reagent_volumes)) - to_chat(user,"The reagents are secured in the aerosol mix.") + . += SPAN_NOTICE("The reagents are secured in the aerosol mix.") else - to_chat(user,"The cartridge seems spent.") + . += SPAN_NOTICE("The cartridge seems spent.") /obj/item/reagent_containers/extinguisher_refill/filled name = "extinguisher refiller (monoammonium phosphate)" @@ -128,11 +128,11 @@ reagents.add_reagent(/singleton/reagent/toxin/fertilizer/monoammoniumphosphate, max_water) ..() -/obj/item/extinguisher/examine(mob/user, distance) +/obj/item/extinguisher/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 0) - to_chat(user,"\The [src] contains [src.reagents.total_volume] units of reagents.") - to_chat(user,"The safety is [safety ? "on" : "off"].") + . += SPAN_NOTICE("\The [src] contains [src.reagents.total_volume] units of reagents.") + . += SPAN_NOTICE("The safety is [safety ? "on" : "off"].") return /obj/item/extinguisher/attack(mob/living/M, mob/living/user, target_zone) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index d308cbda362..50322a759b0 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -34,17 +34,17 @@ welding_tool.forceMove(src) update_icon() -/obj/item/flamethrower/examine(mob/user, distance, is_adjacent) +/obj/item/flamethrower/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(gas_tank) - to_chat(user, SPAN_NOTICE("Release pressure is set to [throw_amount] kPa. The tank has about [round(gas_tank.air_contents.return_pressure(), 10)] kPa left in it.")) + . += SPAN_NOTICE("Release pressure is set to [throw_amount] kPa. The tank has about [round(gas_tank.air_contents.return_pressure(), 10)] kPa left in it.") else - to_chat(user, SPAN_WARNING("It has no gas tank installed.")) + . += SPAN_WARNING("It has no gas tank installed.") if(igniter) - to_chat(user, SPAN_NOTICE("It has \an [igniter] installed.")) + . += SPAN_NOTICE("It has \an [igniter] installed.") else - to_chat(user, SPAN_WARNING("It has no igniter installed.")) + . += SPAN_WARNING("It has no igniter installed.") /obj/item/flamethrower/Destroy() QDEL_NULL(welding_tool) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 19c9eea958d..79a02681dab 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -111,10 +111,10 @@ else to_chat(user, "\The [W] is empty.") -/obj/item/grenade/chem_grenade/examine(mob/user) +/obj/item/grenade/chem_grenade/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(detonator) - to_chat(user, "With attached [detonator.name]") + . += "With attached [detonator.name]" /obj/item/grenade/chem_grenade/activate(mob/user as mob) if(active) return diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index b6f2bdf0c3c..b95370f3399 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -30,15 +30,15 @@ return 0 return 1 -/obj/item/grenade/examine(mob/user, distance, is_adjacent) +/obj/item/grenade/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 0) if(det_time > 1) - to_chat(user, "The timer is set to [det_time/10] seconds.") + . += SPAN_NOTICE("The timer is set to [det_time/10] seconds.") return if(det_time == null) return - to_chat(user, "\The [src] is set for instant detonation.") + . += SPAN_NOTICE("\The [src] is set for instant detonation.") /obj/item/grenade/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/gun/launcher/grenade)) diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index 6c080525465..604cc0be846 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -263,10 +263,10 @@ QDEL_NULL(explosive) return ..() -/obj/item/material/twohanded/spear/examine(mob/user) +/obj/item/material/twohanded/spear/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(explosive) - to_chat(user, "It has \the [explosive] strapped to it.") + . += "It has \the [explosive] strapped to it." /obj/item/material/twohanded/spear/attackby(var/obj/item/I, var/mob/living/user) if(istype(I, /obj/item/organ/external/head)) @@ -472,12 +472,12 @@ RemoveFuel(FuelToRemove) -/obj/item/material/twohanded/chainsaw/examine(mob/user, distance, is_adjacent) +/obj/item/material/twohanded/chainsaw/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "A heavy-duty chainsaw meant for cutting wood. Contains [round(REAGENT_VOLUME(reagents, fuel_type))] unit\s of fuel.") + . += "A heavy-duty chainsaw meant for cutting wood. Contains [round(REAGENT_VOLUME(reagents, fuel_type))] unit\s of fuel." if(powered) - to_chat(user, SPAN_NOTICE("It is currently powered on.")) + . += SPAN_NOTICE("It is currently powered on.") /obj/item/material/twohanded/chainsaw/attack(mob/M as mob, mob/living/user as mob) . = ..() diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 0b0d2a9b1e9..32e8f9ec175 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -111,6 +111,6 @@ if(reagents.total_volume < 30) reagents.add_reagent(refill_reagent, refill_rate) -/obj/item/mop/advanced/examine(mob/user) +/obj/item/mop/advanced/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("\The condenser switch is set to [refill_enabled ? "ON" : "OFF"].")) + . += SPAN_NOTICE("\The condenser switch is set to [refill_enabled ? "ON" : "OFF"].") diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm index 5c538bfd5c2..67930e06cb9 100644 --- a/code/game/objects/items/weapons/policetape.dm +++ b/code/game/objects/items/weapons/policetape.dm @@ -31,10 +31,10 @@ var/list/tape_roll_applications = list() var/crumpled = 0 var/icon_base -/obj/item/tape/examine(mob/user, distance, is_adjacent) +/obj/item/tape/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(LAZYLEN(crumplers) && is_adjacent) - to_chat(user, SPAN_WARNING("\The [initial(name)] has been crumpled by [english_list(crumplers)].")) + . += SPAN_WARNING("\The [initial(name)] has been crumpled by [english_list(crumplers)].") /obj/item/taperoll/police name = "police tape" @@ -90,10 +90,10 @@ var/list/tape_roll_applications = list() icon_base = "engineering" var/shield_marker = FALSE -/obj/item/tape/engineering/examine(mob/user, distance) +/obj/item/tape/engineering/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(shield_marker) - to_chat(user, SPAN_NOTICE("This strip of tape has been modified to serve as a marker for emergency shield generators to lock onto.")) + . += SPAN_NOTICE("This strip of tape has been modified to serve as a marker for emergency shield generators to lock onto.") /obj/item/tape/engineering/attackby(obj/item/W, mob/user) if(W.ismultitool()) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 269d3dc37aa..5612a2979b5 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -90,13 +90,13 @@ damage(damage) ..() -/obj/item/storage/box/examine(var/mob/user) +/obj/item/storage/box/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (health < maxHealth) if (health >= (maxHealth * 0.5)) - to_chat(user, SPAN_WARNING("It is slightly torn.")) + . += SPAN_WARNING("It is slightly torn.") else - to_chat(user, SPAN_DANGER("It is full of tears and holes.")) + . += SPAN_DANGER("It is full of tears and holes.") // BubbleWrap - A box can be folded up to make card /obj/item/storage/box/attack_self(mob/user as mob) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 331a5b05811..d23ad124cd3 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -73,14 +73,14 @@ update_icon() . = ..() -/obj/item/storage/box/fancy/examine(mob/user) +/obj/item/storage/box/fancy/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!icon_type || !storage_type) return if(contents.len <= 0) - to_chat(user, "There are no [src.icon_type]s left in the [src.storage_type].") + . += "There are no [src.icon_type]s left in the [src.storage_type]." else - to_chat(user, "There [src.contents.len == 1 ? "is" : "are"] [src.contents.len] [src.icon_type]\s left in \the [src.storage_type].") + . += "There [src.contents.len == 1 ? "is" : "are"] [src.contents.len] [src.icon_type]\s left in \the [src.storage_type]." /* * Donut Box diff --git a/code/game/objects/items/weapons/storage/mre.dm b/code/game/objects/items/weapons/storage/mre.dm index 96f82f01c36..8b87eebafb7 100644 --- a/code/game/objects/items/weapons/storage/mre.dm +++ b/code/game/objects/items/weapons/storage/mre.dm @@ -35,9 +35,9 @@ MRE Stuff /obj/item/storage/mre/attack_self(mob/user) open(user) -/obj/item/storage/box/fancy/mre/examine(mob/user) +/obj/item/storage/box/fancy/mre/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, meal_desc) + . += meal_desc /obj/item/storage/box/fancy/mre/menu2 name = "\improper MRE, menu 2" diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index de93e173b54..a1156690e59 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -28,10 +28,10 @@ max_storage_space = 16 use_sound = 'sound/items/storage/briefcase.ogg' -/obj/item/storage/secure/examine(mob/user, distance, is_adjacent) +/obj/item/storage/secure/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, text("The service panel is [src.open ? "open" : "closed"].")) + . += "The service panel is [src.open ? "open" : "closed"]." /obj/item/storage/secure/attackby(obj/item/W as obj, mob/user as mob) if(locked) diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 91787291946..19a1d7a1d3c 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -94,10 +94,10 @@ QDEL_NULL(closer) return ..() -/obj/item/storage/examine(mob/user) +/obj/item/storage/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(isobserver(user)) - to_chat(user, "It contains: [counting_english_list(contents)]") + . += "It contains: [counting_english_list(contents)]" /obj/item/storage/MouseDrop(obj/over_object) if(!canremove) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index b38d2188077..c19b2fc7dda 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -59,14 +59,14 @@ else set_light(0) -/obj/item/melee/baton/examine(mob/user, distance) +/obj/item/melee/baton/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!distance <= 1) return if(bcell) - to_chat(user, "The baton is [round(bcell.percent())]% charged.") + . += "The baton is [round(bcell.percent())]% charged." else - to_chat(user, "The baton does not have a power source installed.") + . += "The baton does not have a power source installed." /obj/item/melee/baton/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/cell)) diff --git a/code/game/objects/items/weapons/syndie.dm b/code/game/objects/items/weapons/syndie.dm index c43bda6ab12..786ecf7045a 100644 --- a/code/game/objects/items/weapons/syndie.dm +++ b/code/game/objects/items/weapons/syndie.dm @@ -120,10 +120,10 @@ var/recharge_time = 1 MINUTE var/when_recharge = 0 -/obj/item/syndie/teleporter/examine(mob/user, distance) +/obj/item/syndie/teleporter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!ready_to_use && burglars.is_antagonist(user.mind)) - to_chat(user, SPAN_NOTICE("Charging: [num2loadingbar(world.time / when_recharge)]")) + . += SPAN_NOTICE("Charging: [num2loadingbar(world.time / when_recharge)]") /obj/item/syndie/teleporter/set_initial_maptext() held_maptext = SMALL_FONTS(7, "Ready") diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 4ed94a43876..5bbb718d6c0 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -45,10 +45,10 @@ var/volume_rate = 500 //Needed for borg jetpack transfer action_button_name = "Toggle Jetpack" -/obj/item/tank/jetpack/examine(mob/user) +/obj/item/tank/jetpack/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(air_contents.total_moles < 5) - to_chat(user, "The meter on \the [src] indicates you are almost out of gas!") + . += SPAN_NOTICE("The meter on \the [src] indicates you are almost out of gas!") /obj/item/tank/jetpack/verb/toggle_rockets() set name = "Toggle Jetpack Stabilization" @@ -187,10 +187,6 @@ holder = null . = ..() -/obj/item/tank/jetpack/rig/examine() - to_chat(usr, "It's a jetpack. If you can see this, report it on the bug tracker.") - return TRUE - /obj/item/tank/jetpack/rig/allow_thrust(num, mob/living/user as mob) if(!(src.on)) diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 80c9ee91d39..791e16200f2 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -21,10 +21,10 @@ /obj/item/tank/oxygen/adjust_initial_gas() air_contents.adjust_gas(GAS_OXYGEN, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) -/obj/item/tank/oxygen/examine(mob/user, distance, is_adjacent) +/obj/item/tank/oxygen/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if((is_adjacent) && air_contents.gas[GAS_OXYGEN] < 10) - to_chat(user, text("The meter on \the [src] indicates you are almost out of oxygen!")) + . += SPAN_WARNING("The meter on \the [src] indicates you are almost out of oxygen!") /obj/item/tank/oxygen/yellow desc = "A tank of oxygen, this one is yellow." @@ -76,10 +76,10 @@ /obj/item/tank/air/adjust_initial_gas() air_contents.adjust_multi(GAS_OXYGEN, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD, GAS_NITROGEN, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD) -/obj/item/tank/air/examine(mob/user, distance, is_adjacent) +/obj/item/tank/air/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if((is_adjacent) && air_contents.gas[GAS_OXYGEN] < 1 && loc==user) - to_chat(user, "The meter on the [src.name] indicates you are almost out of air!") + . += SPAN_WARNING("The meter on the [src.name] indicates you are almost out of air!") /* * Phoron @@ -148,10 +148,10 @@ /obj/item/tank/emergency_oxygen/adjust_initial_gas() air_contents.adjust_gas(GAS_OXYGEN, (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) -/obj/item/tank/emergency_oxygen/examine(mob/user, distance, is_adjacent) +/obj/item/tank/emergency_oxygen/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if((is_adjacent) && air_contents.gas[GAS_OXYGEN] < 0.2 && loc==user) - to_chat(user, text("The meter on the [src.name] indicates you are almost out of air!")) + . += SPAN_WARNING("The meter on the [src.name] indicates you are almost out of air!") /obj/item/tank/emergency_oxygen/engi name = "extended-capacity emergency oxygen tank" diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index fa9e4ec1047..26630fd84e5 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -47,7 +47,7 @@ return ..() -/obj/item/tank/examine(mob/user, distance, is_adjacent) +/obj/item/tank/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 0) var/celsius_temperature = air_contents.temperature - T0C @@ -65,7 +65,7 @@ descriptive = "room temperature" else descriptive = "cold" - to_chat(user, "\The [src] feels [descriptive].") + . += SPAN_NOTICE("\The [src] feels [descriptive].") /obj/item/tank/attackby(obj/item/W as obj, mob/user as mob) ..() diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index cac7ce21fce..e4922c82829 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -158,13 +158,13 @@ Frequency: var/max_portals = 2 -/obj/item/hand_tele/examine(mob/user, distance) +/obj/item/hand_tele/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(linked_pad) var/area/A = get_area(linked_pad) - to_chat(user, SPAN_NOTICE("\The [src] is linked to a teleportation pad in [A.name]")) + . += SPAN_NOTICE("\The [src] is linked to a teleportation pad in [A.name]") else - to_chat(user, SPAN_WARNING("\The [src] isn't linked to any teleportation pads!")) + . += SPAN_WARNING("\The [src] isn't linked to any teleportation pads!") /obj/item/hand_tele/set_initial_maptext() held_maptext = SMALL_FONTS(7, "Ready") diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 93aba450b13..50ecfd806eb 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -339,10 +339,10 @@ STOP_PROCESSING(SSprocessing, src) return ..() -/obj/item/weldingtool/examine(mob/user, distance, is_adjacent) +/obj/item/weldingtool/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 0) - to_chat(user, text("[icon2html(src, user)] [] contains []/[] units of fuel!", src.name, get_fuel(),src.max_fuel )) + . += "It contains [get_fuel()]/[max_fuel] units of fuel." /obj/item/weldingtool/attackby(obj/item/W, mob/user) if(W.isscrewdriver()) @@ -795,10 +795,10 @@ tools[tool] = image('icons/obj/tools.dmi', icon_state = "[icon_state]-[tool]") . = ..() -/obj/item/combitool/examine(var/mob/user) +/obj/item/combitool/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(tools.len) - to_chat(user, "It has the following fittings: [english_list(tools)].") + . += "It has the following fittings: [english_list(tools)]." /obj/item/combitool/iswrench() return current_tool == "wrench" @@ -854,12 +854,12 @@ /obj/item/powerdrill/set_initial_maptext() held_maptext = SMALL_FONTS(7, "S") -/obj/item/powerdrill/examine(var/mob/user) +/obj/item/powerdrill/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(tools.len) - to_chat(user, "It has the following fittings:") + . += "It has the following fittings:" for(var/tool in tools) - to_chat(user, "- [tool][tools[current_tool] == tool ? " (selected)" : ""]") + . += "- [tool][tools[current_tool] == tool ? " (selected)" : ""]" /obj/item/powerdrill/MouseEntered(location, control, params) . = ..() diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm index 73b1a11b4b4..4265277272b 100644 --- a/code/game/objects/items/weapons/traps.dm +++ b/code/game/objects/items/weapons/traps.dm @@ -195,17 +195,17 @@ /obj/item/trap/animal/update_icon() icon_state = "[icon_base][deployed]" -/obj/item/trap/animal/examine(mob/user) +/obj/item/trap/animal/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(captured) var/datum/L = captured.resolve() if (L) - to_chat(user, "[L] is trapped inside!") + . += SPAN_WARNING("[L] is trapped inside!") return else if(deployed) - to_chat(user, SPAN_WARNING("It's set up and ready to capture something.")) + . += SPAN_WARNING("It's set up and ready to capture something.") else - to_chat(user, "\The [src] is empty and un-deployed.") + . += SPAN_NOTICE("\The [src] is empty and un-deployed.") /obj/item/trap/animal/Crossed(atom/movable/AM) if(!deployed || !anchored) @@ -796,10 +796,11 @@ victim.visible_message(SPAN_ALERT("You notice something written on a plate inside the trap:
")+SPAN_BAD(message)) -/obj/item/trap/punji/examine(mob/user, distance) +/obj/item/trap/punji/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(src.message && distance < 3) - to_chat(user, SPAN_ALERT("You notice something written on a plate inside the trap:
")+SPAN_BAD(message)) + . += SPAN_ALERT("You notice something written on a plate inside the trap:") + . += SPAN_BAD(message) /obj/item/trap/punji/verb/hide_under() set src in oview(1) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index e000adfd28e..bfb33490395 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -239,12 +239,12 @@ return ..() -/obj/examine(mob/user) +/obj/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if((obj_flags & OBJ_FLAG_ROTATABLE) || (obj_flags & OBJ_FLAG_ROTATABLE_ANCHORED)) - to_chat(user, SPAN_SUBTLE("Can be rotated with alt-click.")) + . += SPAN_SUBTLE("Can be rotated with alt-click.") if(contaminated) - to_chat(user, SPAN_ALIEN("\The [src] has been contaminated!")) + . += SPAN_ALIEN("\The [src] has been contaminated!") // whether mobs can unequip and drop items into us or not /obj/proc/can_hold_dropped_items() diff --git a/code/game/objects/structures/barricades/_barricade.dm b/code/game/objects/structures/barricades/_barricade.dm index ee8994f4e65..e2b2812fa9e 100644 --- a/code/game/objects/structures/barricades/_barricade.dm +++ b/code/game/objects/structures/barricades/_barricade.dm @@ -31,20 +31,20 @@ update_icon() starting_maxhealth = maxhealth -/obj/structure/barricade/examine(mob/user) +/obj/structure/barricade/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_INFO("It is recommended to stand flush to a barricade or one tile away for maximum efficiency.")) + . += SPAN_INFO("It is recommended to stand flush to a barricade or one tile away for maximum efficiency.") if(is_wired) - to_chat(user, SPAN_INFO("There is a length of wire strewn across the top of this barricade.")) + . += SPAN_INFO("There is a length of wire strewn across the top of this barricade.") switch(damage_state) if(BARRICADE_DMG_NONE) - to_chat(user, SPAN_INFO("It appears to be in good shape.")) + . += SPAN_INFO("It appears to be in good shape.") if(BARRICADE_DMG_SLIGHT) - to_chat(user, SPAN_WARNING("It's slightly damaged, but still very functional.")) + . += SPAN_WARNING("It's slightly damaged, but still very functional.") if(BARRICADE_DMG_MODERATE) - to_chat(user, SPAN_WARNING("It's quite beat up, but it's holding together.")) + . += SPAN_WARNING("It's quite beat up, but it's holding together.") if(BARRICADE_DMG_HEAVY) - to_chat(user, SPAN_WARNING("It's crumbling apart, just a few more blows will tear it apart!")) + . += SPAN_WARNING("It's crumbling apart, just a few more blows will tear it apart!") /obj/structure/barricade/update_icon() overlays.Cut() diff --git a/code/game/objects/structures/barricades/metal.dm b/code/game/objects/structures/barricades/metal.dm index 87d3d0834bc..4d0d0c8582a 100644 --- a/code/game/objects/structures/barricades/metal.dm +++ b/code/game/objects/structures/barricades/metal.dm @@ -14,15 +14,15 @@ can_wire = TRUE var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines -/obj/structure/barricade/metal/examine(mob/user) +/obj/structure/barricade/metal/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(build_state) if(BARRICADE_BSTATE_SECURED) - to_chat(user, SPAN_INFO("The protection panel is still tighly screwed in place.")) + . += SPAN_INFO("The protection panel is still tighly screwed in place.") if(BARRICADE_BSTATE_UNSECURED) - to_chat(user, SPAN_INFO("The protection panel has been removed, you can see the anchor bolts.")) + . += SPAN_INFO("The protection panel has been removed, you can see the anchor bolts.") if(BARRICADE_BSTATE_MOVABLE) - to_chat(user, SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.")) + . += SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.") /obj/structure/barricade/metal/attackby(obj/item/W, mob/user) if(W.iswelder()) diff --git a/code/game/objects/structures/barricades/plasteel.dm b/code/game/objects/structures/barricades/plasteel.dm index ff9f8bf6992..f13c454b394 100644 --- a/code/game/objects/structures/barricades/plasteel.dm +++ b/code/game/objects/structures/barricades/plasteel.dm @@ -42,16 +42,15 @@ else return 0 -/obj/structure/barricade/plasteel/examine(mob/user) +/obj/structure/barricade/plasteel/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - switch(build_state) if(BARRICADE_BSTATE_SECURED) - to_chat(user, SPAN_INFO("The protection panel is still tighly screwed in place.")) + . += SPAN_INFO("The protection panel is still tighly screwed in place.") if(BARRICADE_BSTATE_UNSECURED) - to_chat(user, SPAN_INFO("The protection panel has been removed, you can see the anchor bolts.")) + . += SPAN_INFO("The protection panel has been removed, you can see the anchor bolts.") if(BARRICADE_BSTATE_MOVABLE) - to_chat(user, SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.")) + . += SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.") /obj/structure/barricade/plasteel/weld_cade(obj/item/W, mob/user) busy = TRUE diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 5a3ff45cef2..a4c9f39be97 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -376,16 +376,15 @@ LINEN BINS var/obj/item/hidden = null -/obj/structure/bedsheetbin/examine(mob/user) +/obj/structure/bedsheetbin/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - if(amount < 1) - to_chat(user, "There are no bed sheets in the bin.") + . += "There are no bed sheets in the bin." return if(amount == 1) - to_chat(user, "There is one bed sheet in the bin.") + . += "There is one bed sheet in the bin." return - to_chat(user, "There are [amount] bed sheets in the bin.") + . += "There are [amount] bed sheets in the bin." /obj/structure/bedsheetbin/update_icon() diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm index 30ffa8d0e80..f04c53eb064 100644 --- a/code/game/objects/structures/bonfire.dm +++ b/code/game/objects/structures/bonfire.dm @@ -32,22 +32,22 @@ GLOBAL_LIST_EMPTY(total_active_bonfires) GLOB.total_active_bonfires -= src . = ..() -/obj/structure/bonfire/examine(mob/user, distance, is_adjacent) +/obj/structure/bonfire/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 2) return if(on_fire) switch(fuel) if(0 to 200) - to_chat(user, "\The [src] is burning weakly.") + . += "\The [src] is burning weakly." if(200 to 600) - to_chat(user, "\The [src] is gently burning.") + . += "\The [src] is gently burning." if(600 to 900) - to_chat(user, "\The [src] is burning steadily.") + . += "\The [src] is burning steadily." if(900 to 1300) - to_chat(user, "The flames are dancing wildly!") + . += "The flames are dancing wildly!" if(1300 to 2000) - to_chat(user, "The fire is roaring!") + . += "The fire is roaring!" /obj/structure/bonfire/update_icon() if(on_fire) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index bc888dbaa26..e6794df2ff4 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -90,30 +90,30 @@ /obj/structure/closet/proc/content_info(mob/user, content_size) if(!content_size) - to_chat(user, "\The [src] is empty.") + . = "\The [src] is empty." else if(storage_capacity > content_size*4) - to_chat(user, "\The [src] is barely filled.") + . = "\The [src] is barely filled." else if(storage_capacity > content_size*2) - to_chat(user, "\The [src] is less than half full.") + . = "\The [src] is less than half full." else if(storage_capacity > content_size) - to_chat(user, "\The [src] still has some free space.") + . = "\The [src] still has some free space." else - to_chat(user, "\The [src] is full.") + . = "\The [src] is full." -/obj/structure/closet/examine(mob/user, distance, is_adjacent) +/obj/structure/closet/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1 && !src.opened) var/content_size = 0 for(var/obj/item/I in contents) if(!I.anchored) content_size += Ceiling(I.w_class/2) - content_info(user, content_size) + . += content_info(user, content_size) if(!src.opened && isobserver(user)) - to_chat(user, "It contains: [counting_english_list(contents)]") + . += "It contains: [counting_english_list(contents)]" if(src.opened && linked_teleporter && is_adjacent) - to_chat(user, FONT_SMALL(SPAN_NOTICE("There appears to be a device attached to the interior backplate of \the [src]..."))) + . += FONT_SMALL(SPAN_NOTICE("There appears to be a device attached to the interior backplate of \the [src]...")) /obj/structure/closet/proc/stored_weight() var/content_size = 0 diff --git a/code/game/objects/structures/crystals.dm b/code/game/objects/structures/crystals.dm index dde09371dc2..5bb747e5835 100644 --- a/code/game/objects/structures/crystals.dm +++ b/code/game/objects/structures/crystals.dm @@ -27,7 +27,7 @@ if(our_creator) creator = our_creator -/obj/structure/reagent_crystal/examine(mob/user) +/obj/structure/reagent_crystal/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/state var/current_damage = health / initial(health) @@ -40,7 +40,7 @@ state = SPAN_WARNING("The crystal has scratches and deeper grooves on its surface.") if(0.8 to 1) state = SPAN_NOTICE("The crystal looks structurally sound.") - to_chat(user, state) + . += state /obj/structure/reagent_crystal/proc/take_damage(var/damage) health -= damage diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 14e99640db1..591541fb7da 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -31,9 +31,9 @@ . = ..() update_state() -/obj/structure/door_assembly/examine(mob/user) +/obj/structure/door_assembly/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It is currently facing [dir2text(dir)].") + . += "It is currently facing [dir2text(dir)]." /obj/structure/door_assembly/door_assembly_generic base_name = "airlock" diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index bd83eaf810f..0be32dee5f3 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -18,20 +18,20 @@ var/reinforcing = 0 var/plating = FALSE -/obj/structure/girder/examine(mob/user, distance, infix, suffix) +/obj/structure/girder/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/state var/current_damage = health / initial(health) switch(current_damage) if(0 to 0.2) - state = "The support struts are collapsing!" + state = SPAN_DANGER("The support struts are collapsing!") if(0.2 to 0.4) - state = "The support struts are warped!" + state = SPAN_WARNING("The support struts are warped!") if(0.4 to 0.8) - state = "The support struts are dented, but holding together." + state = SPAN_NOTICE("The support struts are dented, but holding together.") if(0.8 to 1) - state = "The support struts look completely intact." - to_chat(user, state) + state = SPAN_NOTICE("The support struts look completely intact.") + . += state /obj/structure/girder/displaced name = "displaced girder" diff --git a/code/game/objects/structures/gore/core.dm b/code/game/objects/structures/gore/core.dm index f04df944274..95c511fbc82 100644 --- a/code/game/objects/structures/gore/core.dm +++ b/code/game/objects/structures/gore/core.dm @@ -13,18 +13,18 @@ . = ..() health = maxHealth -/obj/structure/gore/examine(mob/user, distance, is_adjacent) +/obj/structure/gore/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 2) var/health_div = health / maxHealth if(health_div >= 0.9) - to_chat(user, SPAN_NOTICE("\The [src] appears completely intact.")) + . += SPAN_NOTICE("\The [src] appears completely intact.") else if(health_div >= 0.7) - to_chat(user, SPAN_NOTICE("\The [src] is starting to tear somewhat.")) + . += SPAN_NOTICE("\The [src] is starting to tear somewhat.") else if(health_div >= 0.4) - to_chat(user, SPAN_WARNING("\The [src] is starting to fall apart.")) + . += SPAN_WARNING("\The [src] is starting to fall apart.") else - to_chat(user, SPAN_WARNING("\The [src] is barely holding itself together!")) + . += SPAN_WARNING("\The [src] is barely holding itself together!") /obj/structure/gore/proc/healthcheck() if(health <= 0) diff --git a/code/game/objects/structures/gore/nest.dm b/code/game/objects/structures/gore/nest.dm index 3afc18124d3..32aec2a9d9d 100644 --- a/code/game/objects/structures/gore/nest.dm +++ b/code/game/objects/structures/gore/nest.dm @@ -13,18 +13,18 @@ . = ..() health = maxHealth -/obj/structure/bed/nest/examine(mob/user, distance, is_adjacent) +/obj/structure/bed/nest/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 2) var/health_div = health / maxHealth if(health_div >= 0.9) - to_chat(user, SPAN_NOTICE("\The [src] appears completely intact.")) + . += SPAN_NOTICE("\The [src] appears completely intact.") else if(health_div >= 0.7) - to_chat(user, SPAN_NOTICE("\The [src] is starting to tear somewhat.")) + . += SPAN_NOTICE("\The [src] is starting to tear somewhat.") else if(health_div >= 0.4) - to_chat(user, SPAN_WARNING("\The [src] is starting to fall apart.")) + . += SPAN_WARNING("\The [src] is starting to fall apart.") else - to_chat(user, SPAN_WARNING("\The [src] is barely holding itself together!")) + . += SPAN_WARNING("\The [src] is barely holding itself together!") /obj/structure/bed/nest/update_icon() return diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 36752503cb4..c448097d4e1 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -88,14 +88,14 @@ /obj/structure/janitorialcart/proc/get_short_status() return "Contents: [english_list(contents)]" -/obj/structure/janitorialcart/examine(mob/user, distance, is_adjacent) +/obj/structure/janitorialcart/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) if (mybucket) var/contains = mybucket.reagents.total_volume - to_chat(user, "[icon2html(src, user)] The bucket contains [contains] unit\s of liquid!") + . += "[icon2html(src, user)] The bucket contains [contains] unit\s of liquid!" else - to_chat(user, "[icon2html(src, user)] There is no bucket mounted on it!") + . += "[icon2html(src, user)] There is no bucket mounted on it!" //everything else is visible, so doesn't need to be mentioned diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm index 626c8cb316e..0248b6486f9 100644 --- a/code/game/objects/structures/mop_bucket.dm +++ b/code/game/objects/structures/mop_bucket.dm @@ -18,10 +18,10 @@ GLOB.janitorial_supplies -= src return ..() -/obj/structure/mopbucket/examine(mob/user, distance, is_adjacent) +/obj/structure/mopbucket/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "Contains [reagents.total_volume] unit\s of water.") + . += "It contains [reagents.total_volume] unit\s of water." /obj/structure/mopbucket/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/mop)) diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index 44ea88f3efc..8e9802f116e 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -34,7 +34,7 @@ // Since Topic() never seems to interact with usr on more than a superficial // level, it should be fine to let anyone mess with the board other than ghosts. -/obj/structure/noticeboard/examine(mob/user, distance, is_adjacent) +/obj/structure/noticeboard/examine(mob/user, distance, is_adjacent, infix, suffix) if(is_adjacent) var/dat = "Noticeboard
" for(var/obj/item/paper/P in src) diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index a5ee93a8fa1..9ff031cf8fd 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -71,18 +71,18 @@ R.update_icon() return ..() -/obj/structure/railing/examine(mob/user) +/obj/structure/railing/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(health < maxhealth) switch(health / maxhealth) if(0.0 to 0.5) - to_chat(user, SPAN_WARNING("It looks severely damaged!")) + . += SPAN_WARNING("It looks severely damaged!") if(0.25 to 0.5) - to_chat(user, SPAN_WARNING("It looks damaged!")) + . += SPAN_WARNING("It looks damaged!") if(0.5 to 1.0) - to_chat(user, SPAN_NOTICE("It has a few scrapes and dents.")) - to_chat(user, FONT_SMALL(SPAN_NOTICE("\The [src] is [density ? "closed" : "open"] to passage."))) - to_chat(user, FONT_SMALL(SPAN_NOTICE("\The [src] is [anchored ? "" : "not"] screwed to the floor."))) + . += SPAN_NOTICE("It has a few scrapes and dents.") + . += FONT_SMALL(SPAN_NOTICE("\The [src] is [density ? "closed" : "open"] to passage.")) + . += FONT_SMALL(SPAN_NOTICE("\The [src] is [anchored ? "" : "not"] screwed to the floor.")) /obj/structure/railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(istype(mover,/obj/item/projectile)) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index c98836e4ca8..d7a6b1e7323 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -44,13 +44,13 @@ FLOOR SAFES space += I.w_class I.forceMove(src) -/obj/structure/safe/examine(mob/user) +/obj/structure/safe/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(broken) - to_chat(user, SPAN_WARNING("\The [src]'s locking system has been drilled open!")) + . += SPAN_WARNING("\The [src]'s locking system has been drilled open!") else if(time_to_drill < 300 SECONDS) var/time_left = max(round(time_to_drill / 10), 0) - to_chat(user, SPAN_WARNING("There are only [time_left] second\s of drilling left until \the [src] is broken!")) + . += SPAN_WARNING("There are only [time_left] second\s of drilling left until \the [src] is broken!") /obj/structure/safe/Destroy() if(drill) diff --git a/code/game/objects/structures/sarcophagus.dm b/code/game/objects/structures/sarcophagus.dm index f945bd32cd2..a89d3dd94c7 100644 --- a/code/game/objects/structures/sarcophagus.dm +++ b/code/game/objects/structures/sarcophagus.dm @@ -7,12 +7,12 @@ anchored = 0 var/open = FALSE -/obj/structure/sarcophagus/examine(mob/user) +/obj/structure/sarcophagus/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!open) - to_chat(user, "\The [src]'s lid is closed shut.") + . += "\The [src]'s lid is closed shut." else - to_chat(user, "\The [src]'s lid is open.") + . += "\The [src]'s lid is open." /obj/structure/sarcophagus/Initialize() . = ..() diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm index c462be99ddc..07e33f0b78a 100644 --- a/code/game/objects/structures/simple_doors.dm +++ b/code/game/objects/structures/simple_doors.dm @@ -58,10 +58,10 @@ lock = null return ..() -/obj/structure/simple_door/examine(mob/user) +/obj/structure/simple_door/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(lock) - to_chat(user, "It appears to have a lock.") + . += SPAN_NOTICE("It appears to have a lock.") /obj/structure/simple_door/CollidedWith(atom/user) ..() diff --git a/code/game/objects/structures/vr/_remote_chair.dm b/code/game/objects/structures/vr/_remote_chair.dm index c2a1f6233c8..78513c239e5 100644 --- a/code/game/objects/structures/vr/_remote_chair.dm +++ b/code/game/objects/structures/vr/_remote_chair.dm @@ -17,10 +17,10 @@ STOP_PROCESSING(SSprocessing, src) return ..() -/obj/structure/bed/stool/chair/remote/examine(mob/user) +/obj/structure/bed/stool/chair/remote/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(portable_type) - to_chat(user, FONT_SMALL(SPAN_NOTICE("Can be packed up by using a wrench on it."))) + . += FONT_SMALL(SPAN_NOTICE("Can be packed up by using a wrench on it.")) /obj/structure/bed/stool/chair/remote/update_icon() return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 83518b0894b..5a5720fe7c8 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -33,28 +33,28 @@ atmos_canpass = CANPASS_PROC -/obj/structure/window/examine(mob/user) +/obj/structure/window/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(health == maxhealth) - to_chat(user, SPAN_NOTICE("It looks fully intact.")) + . += SPAN_NOTICE("It looks fully intact.") else var/perc = health / maxhealth if(perc > 0.75) - to_chat(user, SPAN_NOTICE("It has a few cracks.")) + . += SPAN_NOTICE("It has a few cracks.") else if(perc > 0.5) - to_chat(user, SPAN_WARNING("It looks slightly damaged.")) + . += SPAN_WARNING("It looks slightly damaged.") else if(perc > 0.25) - to_chat(user, SPAN_WARNING("It looks moderately damaged.")) + . += SPAN_WARNING("It looks moderately damaged.") else - to_chat(user, SPAN_DANGER("It looks heavily damaged.")) + . += SPAN_DANGER("It looks heavily damaged.") if(silicate) if (silicate < 30) - to_chat(user, SPAN_NOTICE("It has a thin layer of silicate.")) + . += SPAN_NOTICE("It has a thin layer of silicate.") else if (silicate < 70) - to_chat(user, SPAN_NOTICE("It is covered in silicate.")) + . += SPAN_NOTICE("It is covered in silicate.") else - to_chat(user, SPAN_NOTICE("There is a thick layer of silicate covering it.")) + . += SPAN_NOTICE("There is a thick layer of silicate covering it.") /obj/structure/window/proc/update_nearby_icons() SSicon_smooth.add_to_queue_neighbors(src) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 1be669c8752..0de988c20c5 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -20,7 +20,7 @@ heat_capacity = 10000 var/lava = 0 -/turf/simulated/floor/examine(mob/user, distance, infix, suffix) +/turf/simulated/floor/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(flooring) var/list/can_remove_with = list() @@ -37,7 +37,7 @@ if(flooring.flags & TURF_REMOVE_WELDER) can_remove_with += "welding tools" if(length(can_remove_with)) - to_chat(user, SPAN_NOTICE("\The [src] can be removed with: [english_list(can_remove_with)].")) + . += SPAN_NOTICE("\The [src] can be removed with: [english_list(can_remove_with)].") /turf/simulated/floor/is_plating() return !flooring diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 2aea1535d12..40fa92a509f 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -131,22 +131,22 @@ ..(newtype) //Appearance -/turf/simulated/wall/examine(mob/user) +/turf/simulated/wall/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!damage) - to_chat(user, SPAN_NOTICE("It looks fully intact.")) + . += SPAN_NOTICE("It looks fully intact.") else var/dam = damage / material.integrity if(dam <= 0.3) - to_chat(user, SPAN_WARNING("It looks slightly damaged.")) + . += SPAN_WARNING("It looks slightly damaged.") else if(dam <= 0.6) - to_chat(user, SPAN_WARNING("It looks moderately damaged.")) + . += SPAN_WARNING("It looks moderately damaged.") else - to_chat(user, SPAN_DANGER("It looks heavily damaged.")) + . += SPAN_DANGER("It looks heavily damaged.") if(locate(/obj/effect/overlay/wallrot) in src) - to_chat(user, SPAN_WARNING("There is fungus growing on [src].")) + . += SPAN_WARNING("There is fungus growing on [src].") //Damage diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 2ef1f7b0477..14a7f6d4141 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -108,13 +108,13 @@ return -/obj/item/device/assembly/examine(mob/user, distance, is_adjacent) +/obj/item/device/assembly/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1 || loc == user) if(secured) - to_chat(user, "\The [src] is ready!") + . += "\The [src] is ready!" else - to_chat(user, "\The [src] can be attached!") + . += "\The [src] can be attached!" /obj/item/device/assembly/attack_self(mob/user) diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 33a5aee9c87..546a3361e57 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -76,13 +76,13 @@ if(master) master.update_icon() -/obj/item/device/assembly_holder/examine(mob/user, distance, is_adjacent) +/obj/item/device/assembly_holder/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1 || src.loc == user) if (src.secured) - to_chat(user, SPAN_NOTICE("\The [src] is ready!")) + . += SPAN_NOTICE("\The [src] is ready!") else - to_chat(user, SPAN_NOTICE("\The [src] can be attached!")) + . += SPAN_NOTICE("\The [src] can be attached!") /obj/item/device/assembly_holder/HasProximity(atom/movable/AM as mob|obj) if(a_left) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 16524fd5296..c7e921cf14f 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -58,11 +58,10 @@ to_chat(user, SPAN_NOTICE("You rotate \the [src] to face [direction_text].")) QDEL_NULL(first) -/obj/item/device/assembly/infra/examine(mob/user) +/obj/item/device/assembly/infra/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/direction_text = dir2text(dir) - to_chat(user, SPAN_NOTICE("It is facing [direction_text].")) - + . += SPAN_NOTICE("It is facing [direction_text].") /obj/item/device/assembly/infra/process() diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 4fb5a490851..61b5b75d8c9 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -13,10 +13,10 @@ matter = list(DEFAULT_WALL_MATERIAL = 100) var/armed = FALSE -/obj/item/device/assembly/mousetrap/examine(mob/user) +/obj/item/device/assembly/mousetrap/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(armed) - to_chat(user, "It looks like it's armed.") + . += "It looks like it's armed." /obj/item/device/assembly/mousetrap/update_icon() icon_state = armed ? "mousetraparmed" : "mousetrap" diff --git a/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm b/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm index 7e2427362ff..8c0290c7f08 100644 --- a/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm +++ b/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm @@ -53,9 +53,9 @@ power_rating *= initial(power_rating) ..() -/obj/machinery/atmospherics/binary/oxyregenerator/examine(user) +/obj/machinery/atmospherics/binary/oxyregenerator/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user,"Its outlet port is to the [dir2text(dir)]") + . += "Its outlet port is to the [dir2text(dir)]." /obj/machinery/atmospherics/binary/oxyregenerator/attackby(obj/item/O as obj, mob/user as mob) if(O.iswrench()) diff --git a/code/modules/atmospherics/components/unary/cold_sink.dm b/code/modules/atmospherics/components/unary/cold_sink.dm index 0bb8e90d267..add19e545c2 100644 --- a/code/modules/atmospherics/components/unary/cold_sink.dm +++ b/code/modules/atmospherics/components/unary/cold_sink.dm @@ -181,7 +181,7 @@ return ..() -/obj/machinery/atmospherics/unary/freezer/examine(mob/user) +/obj/machinery/atmospherics/unary/freezer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(panel_open) - to_chat(user, "The maintenance hatch is open.") + . += "The maintenance hatch is open." diff --git a/code/modules/atmospherics/components/unary/heat_source.dm b/code/modules/atmospherics/components/unary/heat_source.dm index 8b371f6ede3..ab255fa5585 100644 --- a/code/modules/atmospherics/components/unary/heat_source.dm +++ b/code/modules/atmospherics/components/unary/heat_source.dm @@ -169,7 +169,7 @@ return ..() -/obj/machinery/atmospherics/unary/heater/examine(mob/user) +/obj/machinery/atmospherics/unary/heater/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(panel_open) - to_chat(user, "The maintenance hatch is open.") + . += "The maintenance hatch is open." diff --git a/code/modules/atmospherics/components/unary/vent_pump.dm b/code/modules/atmospherics/components/unary/vent_pump.dm index 7d83fc01bfa..9698c2d10b1 100644 --- a/code/modules/atmospherics/components/unary/vent_pump.dm +++ b/code/modules/atmospherics/components/unary/vent_pump.dm @@ -416,14 +416,14 @@ else return ..() -/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user, distance, is_adjacent) +/obj/machinery/atmospherics/unary/vent_pump/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W") + . += "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s at [round(last_power_draw)] W." else - to_chat(user, "You are too far away to read the gauge.") + . += "You are too far away to read the gauge." if(welded) - to_chat(user, "It seems welded shut.") + . += "It seems welded shut." /obj/machinery/atmospherics/unary/vent_pump/power_change() var/old_stat = stat diff --git a/code/modules/atmospherics/components/unary/vent_scrubber.dm b/code/modules/atmospherics/components/unary/vent_scrubber.dm index 3df33f5c9f5..b3de367f47d 100644 --- a/code/modules/atmospherics/components/unary/vent_scrubber.dm +++ b/code/modules/atmospherics/components/unary/vent_scrubber.dm @@ -417,11 +417,11 @@ return ..() -/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user, distance, is_adjacent) +/obj/machinery/atmospherics/unary/vent_scrubber/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W") + . += "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s at [round(last_power_draw)] W." else - to_chat(user, "You are too far away to read the gauge.") + . += "You are too far away to read the gauge." if(welded) - to_chat(user, "It seems welded shut.") + . += "It seems welded shut." diff --git a/code/modules/atmospherics/components/valve.dm b/code/modules/atmospherics/components/valve.dm index 34bfc2d7dae..78668e0378f 100644 --- a/code/modules/atmospherics/components/valve.dm +++ b/code/modules/atmospherics/components/valve.dm @@ -324,6 +324,6 @@ qdel(src) return TRUE -/obj/machinery/atmospherics/valve/examine(mob/user) +/obj/machinery/atmospherics/valve/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It is [open ? "open" : "closed"].") + . += "It is [open ? "open" : "closed"]." diff --git a/code/modules/battlemonsters/items/card.dm b/code/modules/battlemonsters/items/card.dm index 22fa9185a47..a1394d0d9df 100644 --- a/code/modules/battlemonsters/items/card.dm +++ b/code/modules/battlemonsters/items/card.dm @@ -164,12 +164,11 @@ transform = M -/obj/item/battle_monsters/card/examine(mob/user, distance, is_adjacent) - +/obj/item/battle_monsters/card/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(facedown && src.loc != user) - to_chat(user, SPAN_NOTICE("You can't examine \the [src] while it's face down!")) + . += SPAN_NOTICE("You can't examine \the [src] while it's face down!") return if(trap_datum) diff --git a/code/modules/cargo/delivery/backpack.dm b/code/modules/cargo/delivery/backpack.dm index 4635b85366b..cccb627b723 100644 --- a/code/modules/cargo/delivery/backpack.dm +++ b/code/modules/cargo/delivery/backpack.dm @@ -17,10 +17,10 @@ QDEL_LIST(contained_packages) return ..() -/obj/item/cargo_backpack/examine(mob/user, distance) +/obj/item/cargo_backpack/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(length(contained_packages)) - to_chat(user, FONT_SMALL(SPAN_NOTICE("\[?\] There are some packages loaded. \[Show Package Data\]"))) + . += FONT_SMALL(SPAN_NOTICE("\[?\] There are some packages loaded. \[Show Package Data\]")) /obj/item/cargo_backpack/Topic(href, href_list) if(href_list["show_package_data"]) diff --git a/code/modules/cargo/delivery/package.dm b/code/modules/cargo/delivery/package.dm index 13a0734f6c8..b559d499ef2 100644 --- a/code/modules/cargo/delivery/package.dm +++ b/code/modules/cargo/delivery/package.dm @@ -35,7 +35,7 @@ delivery_point_sector = delivery_point.delivery_sector delivery_point_coordinates = "[delivery_point.x]-[delivery_point.y]" -/obj/item/cargo_package/examine(mob/user, distance) +/obj/item/cargo_package/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(delivery_point_id) var/delivery_site = "Unknown" @@ -43,8 +43,8 @@ var/obj/effect/overmap/visitable/delivery_sector = delivery_point_sector.resolve() if(delivery_sector) delivery_site = delivery_sector.name - to_chat(user, SPAN_NOTICE("The label on the package reads: SITE: [delivery_site] | COORD: [delivery_point_coordinates] | ID: [delivery_point_id]")) - to_chat(user, SPAN_NOTICE("The price tag on the package reads: [pay_amount]电")) + . += SPAN_NOTICE("The label on the package reads: SITE: [delivery_site] | COORD: [delivery_point_coordinates] | ID: [delivery_point_id]") + . += SPAN_NOTICE("The price tag on the package reads: [pay_amount]电.") /obj/item/cargo_package/do_additional_pickup_checks(var/mob/living/carbon/human/user) if(!ishuman(user)) @@ -132,10 +132,10 @@ var/obj/structure/cargo_receptacle/selected_delivery_point = pick(eligible_delivery_points) setup_delivery_point(selected_delivery_point) -/obj/item/cargo_package/offship/examine(mob/user, distance) +/obj/item/cargo_package/offship/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!delivery_point_id) - to_chat(user, SPAN_NOTICE("Delivery site still being calculated, please check back later!")) + . += SPAN_NOTICE("Delivery site still being calculated, please check back later!") /obj/item/cargo_package/offship/to_horizon horizon_delivery = TRUE diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 60895022d65..59d0354c3de 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -1204,18 +1204,18 @@ M.update_inv_w_uniform() playsound(M, /singleton/sound_category/rustle_sound, 15, 1, -5) -/obj/item/clothing/under/examine(mob/user, distance, is_adjacent) +/obj/item/clothing/under/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(has_sensor) switch(src.sensor_mode) if(SUIT_SENSOR_OFF) - to_chat(user, "Its sensors appear to be disabled.") + . += "Its sensors appear to be disabled." if(SUIT_SENSOR_BINARY) - to_chat(user, "Its binary life sensors appear to be enabled.") + . += "Its binary life sensors appear to be enabled." if(SUIT_SENSOR_VITAL) - to_chat(user, "Its vitals tracker appears to be enabled.") + . += "Its vitals tracker appears to be enabled." if(SUIT_SENSOR_TRACKING) - to_chat(user, "Its vitals tracker and tracking beacon appear to be enabled.") + . += "Its vitals tracker and tracking beacon appear to be enabled." /obj/item/clothing/under/proc/set_sensors(mob/user as mob) var/mob/M = user diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm index ad33c7f265a..0d9873d0053 100644 --- a/code/modules/clothing/clothing_accessories.dm +++ b/code/modules/clothing/clothing_accessories.dm @@ -91,11 +91,11 @@ return main_ear -/obj/item/clothing/examine(mob/user, distance, is_adjacent) +/obj/item/clothing/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(LAZYLEN(accessories)) for(var/obj/item/clothing/accessory/A in accessories) - to_chat(user, SPAN_NOTICE("\A [A] [A.gender == PLURAL ? "are" : "is"] attached to it.")) + . += SPAN_NOTICE("\A [A] [A.gender == PLURAL ? "are" : "is"] attached to it.") /obj/item/clothing/equipped(mob/user, slot, assisted_equip) . = ..() diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index a452d1610e6..1654458127d 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -98,11 +98,11 @@ else to_chat(usr, SPAN_NOTICE("Camera deactivated.")) -/obj/item/clothing/head/helmet/space/examine(mob/user, distance, is_adjacent) +/obj/item/clothing/head/helmet/space/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if((distance <= 1) && camera) - to_chat(user, FONT_SMALL(SPAN_NOTICE("To toggle the helmet camera, right click the helmet and press Toggle Helmet Camera."))) - to_chat(user, "This helmet has a built-in camera. It's [!ispath(camera) && camera.status ? "" : "in"]active.") + . += FONT_SMALL(SPAN_NOTICE("To toggle the helmet camera, right click the helmet and press Toggle Helmet Camera.")) + . += "This helmet has a built-in camera. It's [!ispath(camera) && camera.status ? "" : "in"]active." /obj/item/clothing/head/helmet/hos name = "head of security helmet" diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index e2a6a8f2885..ab658a48800 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -105,12 +105,12 @@ if (.) INVOKE_ASYNC(src, PROC_REF(update_wearer)) -/obj/item/clothing/shoes/magboots/examine(mob/user) +/obj/item/clothing/shoes/magboots/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/state = "disabled" if(item_flags & ITEM_FLAG_NO_SLIP) state = "enabled" - to_chat(user, "Its mag-pulse traction system appears to be [state].") + . += "Its mag-pulse traction system appears to be [state]." /obj/item/clothing/shoes/magboots/hegemony name = "hegemony magboots" diff --git a/code/modules/clothing/spacesuits/breaches.dm b/code/modules/clothing/spacesuits/breaches.dm index 4fe229ec66e..a890b24feb6 100644 --- a/code/modules/clothing/spacesuits/breaches.dm +++ b/code/modules/clothing/spacesuits/breaches.dm @@ -223,11 +223,11 @@ var/global/list/breach_burn_descriptors = list( ..() -/obj/item/clothing/suit/space/examine(mob/user) +/obj/item/clothing/suit/space/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(can_breach && breaches && breaches.len) for(var/datum/breach/B in breaches) - to_chat(user, "It has \a [B.descriptor].") + . += "It has \a [B.descriptor]." /obj/item/clothing/suit/space/get_pressure_weakness(pressure) . = ..() diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm index 897b7b87b70..324504dfdcb 100644 --- a/code/modules/clothing/spacesuits/rig/modules/modules.dm +++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm @@ -61,15 +61,15 @@ var/list/stat_rig_module/stat_modules = new() var/category // Use for restricting modules for specific suits, to specialize -/obj/item/rig_module/examine(mob/user) +/obj/item/rig_module/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(damage) if(0) - to_chat(user, SPAN_NOTICE("It is undamaged.")) + . += SPAN_NOTICE("It is undamaged.") if(1) - to_chat(user, SPAN_WARNING("It is badly damaged.")) + . += SPAN_WARNING("It is badly damaged.") if(2) - to_chat(user, SPAN_DANGER("It is almost completely destroyed.")) + . += SPAN_DANGER("It is almost completely destroyed.") /obj/item/rig_module/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/nanopaste)) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 5137c0daa45..028166cb990 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -102,17 +102,17 @@ var/allowed_module_types = MODULE_GENERAL // All rigs by default should have access to general var/list/species_restricted = list(BODYTYPE_HUMAN,BODYTYPE_TAJARA,BODYTYPE_UNATHI, BODYTYPE_SKRELL, BODYTYPE_IPC, BODYTYPE_IPC_BISHOP, BODYTYPE_IPC_ZENGHU) -/obj/item/rig/examine() +/obj/item/rig/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(wearer) for(var/obj/item/piece in list(helmet,gloves,chest,boots)) if(!piece || piece.loc != wearer) continue - to_chat(usr, "[icon2html(piece, usr)] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed.") + . += "[icon2html(piece, usr)] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed." if(src.loc == usr) - to_chat(usr, "The maintenance panel is [open ? "open" : "closed"].") - to_chat(usr, "Hardsuit systems are [offline ? "offline" : "online"].") + . += "The maintenance panel is [open ? "open" : "closed"]." + . += "Hardsuit systems are [offline ? "offline" : "online"]." /obj/item/rig/Initialize() . = ..() diff --git a/code/modules/clothing/spacesuits/rig/rig_construction.dm b/code/modules/clothing/spacesuits/rig/rig_construction.dm index ecf19d138fc..6cc4890f946 100644 --- a/code/modules/clothing/spacesuits/rig/rig_construction.dm +++ b/code/modules/clothing/spacesuits/rig/rig_construction.dm @@ -35,10 +35,10 @@ . = ..() -/obj/item/rig_assembly/examine(mob/user, distance) +/obj/item/rig_assembly/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(construct) - to_chat(user, construct.get_desc()) + . += construct.get_desc() /obj/item/rig_assembly/MouseEntered(location, control, params) . = ..() diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 2c42cd09992..8da055468d5 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -48,10 +48,10 @@ item_state = "softsuit_helmet" contained_sprite = TRUE -/obj/item/clothing/head/helmet/space/syndicate/covert/examine(mob/user, distance) +/obj/item/clothing/head/helmet/space/syndicate/covert/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, SPAN_NOTICE("This helmet has extra armor compared to a normal softsuit helmet.")) + . += SPAN_NOTICE("This helmet has extra armor compared to a normal softsuit helmet.") /obj/item/clothing/suit/space/syndicate/covert name = "softsuit" @@ -62,10 +62,10 @@ item_state = "softsuit" contained_sprite = TRUE -/obj/item/clothing/suit/space/syndicate/covert/examine(mob/user, distance) - ..() +/obj/item/clothing/suit/space/syndicate/covert/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() if(distance <= 1) - to_chat(user, SPAN_NOTICE("This suit has extra armor compared to a normal softsuit.")) + . += SPAN_NOTICE("This suit has extra armor compared to a normal softsuit.") //Green syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/green diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 14bc25148be..7d80791cc68 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -93,16 +93,16 @@ var/obj/item/tank/tank = null // Deployable tank, if any. var/obj/item/device/suit_cooling_unit/cooler = null // Deployable suit cooler, if any -/obj/item/clothing/suit/space/void/examine(mob/user, distance, is_adjacent) +/obj/item/clothing/suit/space/void/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/list/part_list = new for(var/obj/item/I in list(helmet,boots,tank,cooler)) part_list += "\a [I]" - to_chat(user, "\The [src] has [english_list(part_list)] installed.") + . += "\The [src] has [english_list(part_list)] installed." if(tank && distance <= 1) - to_chat(user, SPAN_NOTICE("The wrist-mounted pressure gauge reads [max(round(tank.air_contents.return_pressure()),0)] kPa remaining in \the [tank].")) + . += SPAN_NOTICE("The wrist-mounted pressure gauge reads [max(round(tank.air_contents.return_pressure()),0)] kPa remaining in \the [tank].") if (cooler && distance <= 1) - to_chat(user, SPAN_NOTICE("The mounted cooler's battery charge reads [round(cooler.cell.percent())]%")) + . += SPAN_NOTICE("The mounted cooler's battery charge reads [round(cooler.cell.percent())]%") /obj/item/clothing/suit/space/void/refit_for_species(var/target_species) ..() diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm index f6389081852..043c5a72381 100644 --- a/code/modules/clothing/under/accessories/badges.dm +++ b/code/modules/clothing/under/accessories/badges.dm @@ -589,9 +589,9 @@ var/credit_score = 5 var/species_tag = "" -/obj/item/clothing/accessory/badge/passport/nralakk/examine(mob/user) +/obj/item/clothing/accessory/badge/passport/nralakk/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("The passport displays the owner's social credit score as: [credit_score].")) + . += SPAN_NOTICE("The passport displays the owner's social credit score as: [credit_score].") /obj/item/clothing/accessory/badge/passport/nralakk/update_icon() icon_state = "[initial(icon_state)][open ? "_o[species_tag]" : ""]" diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm index 79e45969e91..2a12405e515 100644 --- a/code/modules/clothing/under/accessories/holster.dm +++ b/code/modules/clothing/under/accessories/holster.dm @@ -98,12 +98,12 @@ if (holstered) holstered.emp_act(severity) -/obj/item/clothing/accessory/holster/examine(mob/user) +/obj/item/clothing/accessory/holster/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (holstered) - to_chat(user, "A [holstered] is holstered here.") + . += "A [holstered] is holstered here." else - to_chat(user, "It is empty.") + . += "It is empty." /obj/item/clothing/accessory/holster/on_attached(obj/item/clothing/under/S, mob/user) ..() diff --git a/code/modules/cooking/machinery/cooking_machines/_appliance.dm b/code/modules/cooking/machinery/cooking_machines/_appliance.dm index 8aff68aa929..bd8d24ced46 100644 --- a/code/modules/cooking/machinery/cooking_machines/_appliance.dm +++ b/code/modules/cooking/machinery/cooking_machines/_appliance.dm @@ -71,21 +71,20 @@ qdel(CI) return ..() -/obj/machinery/appliance/examine(mob/user, distance, is_adjacent) +/obj/machinery/appliance/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - list_contents(user) - return TRUE + . += list_contents(user) /obj/machinery/appliance/proc/list_contents(var/mob/user) + . = list() if (isemptylist(cooking_objs)) - to_chat(user, SPAN_NOTICE("It is empty.")) + . = SPAN_NOTICE("It is empty.") return - var/string = "Contains...
    " + . = "Contains...
      " for (var/datum/cooking_item/CI in cooking_objs) - string += "
    • \a [CI.container.label(null, CI.combine_target)], [report_progress(CI)]
    • " - string += "
    " - to_chat(user, string) + . += "\a [CI.container.label(null, CI.combine_target)], [report_progress(CI)]" + . += "
" /obj/machinery/appliance/proc/report_progress(var/datum/cooking_item/CI) if (!CI || !CI.max_cookwork) diff --git a/code/modules/cooking/machinery/cooking_machines/_cooker.dm b/code/modules/cooking/machinery/cooking_machines/_cooker.dm index 0ef550aa706..170e2a53203 100644 --- a/code/modules/cooking/machinery/cooking_machines/_cooker.dm +++ b/code/modules/cooking/machinery/cooking_machines/_cooker.dm @@ -18,17 +18,17 @@ var/temperature = T20C var/starts_with = list() -/obj/machinery/appliance/cooker/examine(mob/user, distance, is_adjacent) +/obj/machinery/appliance/cooker/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (is_adjacent) if (!stat) if (temperature < min_temp) - to_chat(user, SPAN_WARNING("[src] is still heating up and is too cold to cook anything yet.")) + . += SPAN_WARNING("[src] is still heating up and is too cold to cook anything yet.") else - to_chat(user, SPAN_NOTICE("It is running at [round(get_efficiency(), 0.1)]% efficiency!")) - to_chat(user, "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C") + . += SPAN_NOTICE("It is running at [round(get_efficiency(), 0.1)]% efficiency!") + . += "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C" else - to_chat(user, SPAN_WARNING("It is switched off.")) + . += SPAN_WARNING("It is switched off.") /obj/machinery/appliance/cooker/MouseEntered(location, control, params) . = ..() diff --git a/code/modules/cooking/machinery/cooking_machines/_mixer.dm b/code/modules/cooking/machinery/cooking_machines/_mixer.dm index 1138278542f..ced401e4354 100644 --- a/code/modules/cooking/machinery/cooking_machines/_mixer.dm +++ b/code/modules/cooking/machinery/cooking_machines/_mixer.dm @@ -17,9 +17,9 @@ fundamental differences idle_power_usage = 50 appliancetype = 0 -/obj/machinery/appliance/mixer/examine(mob/user, distance, is_adjacent) +/obj/machinery/appliance/mixer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("It is currently set to make a [selected_option]")) + . += SPAN_NOTICE("It is currently set to make a [selected_option]") /obj/machinery/appliance/mixer/Initialize() . = ..() diff --git a/code/modules/cooking/machinery/cooking_machines/container.dm b/code/modules/cooking/machinery/cooking_machines/container.dm index 845338be40b..5ece7806291 100644 --- a/code/modules/cooking/machinery/cooking_machines/container.dm +++ b/code/modules/cooking/machinery/cooking_machines/container.dm @@ -38,12 +38,12 @@ . = ..() update_icon() -/obj/item/reagent_containers/cooking_container/examine(var/mob/user) +/obj/item/reagent_containers/cooking_container/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(length(contents)) - to_chat(user, SPAN_NOTICE(get_content_info())) + . += SPAN_NOTICE(get_content_info()) if(reagents.total_volume) - to_chat(user, SPAN_NOTICE(get_reagent_info())) + . += SPAN_NOTICE(get_reagent_info()) /obj/item/reagent_containers/cooking_container/proc/get_content_info() var/string = "It contains:
  • " @@ -296,10 +296,10 @@ volume = 15 // for things like jelly sandwiches etc max_space = 25 -/obj/item/reagent_containers/cooking_container/board/examine(mob/user) +/obj/item/reagent_containers/cooking_container/board/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(length(contents) || reagents?.total_volume) - to_chat(user, SPAN_NOTICE("To attempt cooking; click and hold, then drag this onto your character")) + . += SPAN_NOTICE("To attempt cooking: click and hold, then drag this onto your character.") /obj/item/reagent_containers/cooking_container/board/MouseDrop(var/obj/over_obj) if(over_obj != usr || use_check(usr)) diff --git a/code/modules/cooking/machinery/cooking_machines/fryer.dm b/code/modules/cooking/machinery/cooking_machines/fryer.dm index 1cd3f6ae477..8f96b19af9d 100644 --- a/code/modules/cooking/machinery/cooking_machines/fryer.dm +++ b/code/modules/cooking/machinery/cooking_machines/fryer.dm @@ -25,10 +25,10 @@ var/datum/reagents/oil var/optimal_oil = 9000//90 litres of cooking oil -/obj/machinery/appliance/cooker/fryer/examine(mob/user, distance, is_adjacent) +/obj/machinery/appliance/cooker/fryer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (is_adjacent) - to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]") + . += "The oil gauge displays: [oil.total_volume]u/[optimal_oil]." /obj/machinery/appliance/cooker/fryer/Initialize() . = ..() diff --git a/code/modules/cooking/machinery/gibber.dm b/code/modules/cooking/machinery/gibber.dm index 67a7734a3ba..25a1566bae1 100644 --- a/code/modules/cooking/machinery/gibber.dm +++ b/code/modules/cooking/machinery/gibber.dm @@ -77,9 +77,9 @@ return startgibbing(user) -/obj/machinery/gibber/examine() +/obj/machinery/gibber/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(usr, "The safety guard is [emagged ? SPAN_DANGER("disabled") : "enabled"].") + . += "The safety guard is [emagged ? SPAN_DANGER("disabled") : "enabled"]." /obj/machinery/gibber/emag_act(var/remaining_charges, var/mob/user) emagged = !emagged diff --git a/code/modules/cooking/plates.dm b/code/modules/cooking/plates.dm index 67b351dd58d..0d0aee67463 100644 --- a/code/modules/cooking/plates.dm +++ b/code/modules/cooking/plates.dm @@ -19,10 +19,10 @@ Plates that can hold your cooking stuff atom_flags = ATOM_FLAG_OPEN_CONTAINER var/grease = FALSE -/obj/item/reagent_containers/bowl/examine(mob/user, distance) +/obj/item/reagent_containers/bowl/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(grease) - to_chat(user, SPAN_WARNING("\The [name] looks a little unclean.")) + . += SPAN_WARNING("\The [name] looks a little unclean.") /obj/item/reagent_containers/bowl/attackby(obj/item/W, mob/user) if(istype(W,/obj/item/material/kitchen/utensil)) @@ -111,11 +111,11 @@ Plates that can hold your cooking stuff qdel(holding) return ..() -/obj/item/reagent_containers/bowl/plate/examine(mob/user, distance) +/obj/item/reagent_containers/bowl/plate/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(holding) - to_chat(user, "It looks like there is \a [SPAN_INFO(holding.name)] on \the [src].") - to_chat(user, SPAN_INFO(" - [holding.desc]")) + . += "It looks like there is \a [SPAN_INFO(holding.name)] on \the [src]." + . += SPAN_INFO(" - [holding.desc]") /obj/item/reagent_containers/bowl/plate/attackby(obj/item/I, mob/user) if((istype(I, /obj/item/reagent_containers/food/snacks) || istype(I, /obj/item/trash)) && !holding) diff --git a/code/modules/custom_ka/core.dm b/code/modules/custom_ka/core.dm index 20db06358d4..84e7e920843 100644 --- a/code/modules/custom_ka/core.dm +++ b/code/modules/custom_ka/core.dm @@ -79,23 +79,23 @@ item_state = initial(item_state) update_held_icon() -/obj/item/gun/custom_ka/examine(var/mob/user) +/obj/item/gun/custom_ka/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(installed_upgrade_chip) - to_chat(user,"It is equipped with \the [installed_barrel], \the [installed_cell], and \the [installed_upgrade_chip].") + . += "It is equipped with \the [installed_barrel], \the [installed_cell], and \the [installed_upgrade_chip]." else if(installed_barrel) - to_chat(user,"It is equipped with \the [installed_barrel] and \the [installed_cell]. It has space for an upgrade chip.") + . += "It is equipped with \the [installed_barrel] and \the [installed_cell]. It has space for an upgrade chip." else if(installed_cell) - to_chat(user,"It is equipped with \the [installed_cell]. The assembly lacks a barrel installation.") + . += "It is equipped with \the [installed_cell]. The assembly lacks a barrel installation." if(installed_barrel) if(custom_name) - to_chat(user,"[custom_name] is written crudely in pen across the side, covering up the offical designation.") + . += "[custom_name] is written crudely in pen across the side, covering up the offical designation." else - to_chat(user,"The official designation \"[official_name]\" is etched neatly on the side.") + . += "The official designation \"[official_name]\" is etched neatly on the side." if(installed_cell) - to_chat(user, "It has [get_ammo()] shots remaining.") + . += "It has [get_ammo()] shots remaining." /obj/item/gun/custom_ka/get_ammo() if(!installed_cell || !installed_cell.stored_charge) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index e01914f7af7..ec8d83a3cef 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -162,10 +162,10 @@ All custom items with worn sprites must follow the contained sprite system: http icon_state = "corvo_cigarette" item_state = "corvo_cigarette" -/obj/item/clothing/mask/fluff/corvo_cigarette/examine(mob/user, distance, is_adjacent) +/obj/item/clothing/mask/fluff/corvo_cigarette/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, "It is [active ? "on" : "off"].") + . += "It is [active ? "on" : "off"]." /obj/item/clothing/suit/storage/fluff/sonorous_mantle //Maraziite Throw Over - Sonorous Zouzoror - sleepywolf @@ -474,9 +474,10 @@ All custom items with worn sprites must follow the contained sprite system: http w_class = ITEMSIZE_NORMAL var/has_spear = TRUE -/obj/item/fluff/tokash_spear/examine(mob/user, distance, is_adjacent) +/obj/item/fluff/tokash_spear/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() if(distance <= 1 && has_spear) - to_chat(user, "It currently holds an old looking spearhead.") + . += "It currently holds an old looking spearhead." /obj/item/fluff/tokash_spear/update_icon() if(has_spear) @@ -1640,10 +1641,10 @@ All custom items with worn sprites must follow the contained sprite system: http STOP_PROCESSING(SSprocessing, src) return ..() -/obj/item/fluff/nasira_burner/examine(mob/user) +/obj/item/fluff/nasira_burner/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(lit) - to_chat(user, "\The [src] is currently lit.") + . += "\The [src] is currently lit." /obj/item/fluff/nasira_burner/proc/light(var/lighting_text) if(!lit) @@ -1854,11 +1855,11 @@ All custom items with worn sprites must follow the contained sprite system: http add_overlay("card_spin_fx") addtimer(CALLBACK(src, PROC_REF(finish_selection), usr), 3 SECONDS) -/obj/item/fluff/ielia_tarot/examine(mob/user, distance, is_adjacent) +/obj/item/fluff/ielia_tarot/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) if(first_card && second_card && third_card) - to_chat(user, "The following constellations are displayed on the starfinder: [first_card], [second_card], and [third_card].") + . += "The following constellations are displayed on the starfinder: [first_card], [second_card], and [third_card]." /obj/item/fluff/ielia_tarot/proc/finish_selection(var/mob/user) cut_overlays() diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm index 73b649688a2..88d25ff5c8e 100644 --- a/code/modules/economy/cash.dm +++ b/code/modules/economy/cash.dm @@ -175,10 +175,12 @@ drop_sound = 'sound/items/drop/card.ogg' pickup_sound = 'sound/items/pickup/card.ogg' -/obj/item/spacecash/ewallet/examine(mob/user, distance, is_adjacent) +/obj/item/spacecash/ewallet/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - if (distance > 2 && user!=src.loc) return - to_chat(user, "Charge card's owner: [src.owner_name]. Credit chips remaining: [src.worth].") + if(distance > 2 && user != loc) + return + . += SPAN_NOTICE("The charge card's owner is [src.owner_name].") + . += SPAN_NOTICE("It has [src.worth]电 left.") /obj/item/spacecash/ewallet/c2000 worth = 2000 diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 7b70c61e270..d5316598600 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -274,13 +274,13 @@ update_icon() user.visible_message("\The [user] [concealed ? "conceals" : "reveals"] their hand.") -/obj/item/hand/examine(mob/user) +/obj/item/hand/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if((!concealed || src.loc == user) && cards.len) if(cards.len > 1) - to_chat(user, "It contains: ") + . += "It contains: " for(var/datum/playingcard/P in cards) - to_chat(user, "The [P.name]. [P.desc ? "[P.desc]" : ""]") + . += "The [P.name]. [P.desc ? "[P.desc]" : ""]" /obj/item/hand/update_icon(var/direction = 0) diff --git a/code/modules/heavy_vehicle/components/_components.dm b/code/modules/heavy_vehicle/components/_components.dm index d8835389386..03db5ac1c8e 100644 --- a/code/modules/heavy_vehicle/components/_components.dm +++ b/code/modules/heavy_vehicle/components/_components.dm @@ -33,12 +33,12 @@ for(var/obj/item/thing in contents) thing.emp_act(severity) -/obj/item/mech_component/examine(mob/user) +/obj/item/mech_component/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(ready_to_install()) - to_chat(user, SPAN_NOTICE("It is ready for installation.")) + . += SPAN_NOTICE("It is ready for installation.") else - show_missing_parts(user) + . = show_missing_parts(user) /obj/item/mech_component/set_dir() ..(SOUTH) @@ -47,6 +47,7 @@ return /obj/item/mech_component/proc/return_diagnostics(var/mob/user) + . = list() to_chat(user, SPAN_NOTICE("[capitalize_first_letters(src.name)]:")) to_chat(user, SPAN_NOTICE(" - Integrity: [round(((max_damage - total_damage) / max_damage) * 100, 0.1)]%" )) diff --git a/code/modules/heavy_vehicle/components/frame.dm b/code/modules/heavy_vehicle/components/frame.dm index 871e31ecf8e..be8f058c841 100644 --- a/code/modules/heavy_vehicle/components/frame.dm +++ b/code/modules/heavy_vehicle/components/frame.dm @@ -39,26 +39,26 @@ QDEL_NULL(body) . = ..() -/obj/structure/heavy_vehicle_frame/examine(mob/user) +/obj/structure/heavy_vehicle_frame/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!arms) - to_chat(user, SPAN_WARNING("It is missing some manipulators.")) + . += SPAN_WARNING("It is missing some manipulators.") if(!legs) - to_chat(user, SPAN_WARNING("It is missing a means of propulsion.")) + . += SPAN_WARNING("It is missing a means of propulsion.") if(!head) - to_chat(user, SPAN_WARNING("It is missing some sensors.")) + . += SPAN_WARNING("It is missing some sensors.") if(!body) - to_chat(user, SPAN_WARNING("It is missing a chassis.")) + . += SPAN_WARNING("It is missing a chassis.") if(is_wired == FRAME_WIRED) - to_chat(user, SPAN_WARNING("Its wiring is unadjusted.")) + . += SPAN_WARNING("Its wiring is unadjusted.") else if(!is_wired) - to_chat(user, SPAN_WARNING("It has not yet been wired.")) + . += SPAN_WARNING("It has not yet been wired.") if(is_reinforced == FRAME_REINFORCED) - to_chat(user, SPAN_WARNING("It has not had its internal reinforcement secured.")) + . += SPAN_WARNING("It has not had its internal reinforcement secured.") else if(is_reinforced == FRAME_REINFORCED_SECURE) - to_chat(user, SPAN_WARNING("It has not had its internal reinforcement welded in.")) + . += SPAN_WARNING("It has not had its internal reinforcement welded in.") else if(!is_reinforced) - to_chat(user, SPAN_WARNING("It does not have any internal reinforcement.")) + . += SPAN_WARNING("It does not have any internal reinforcement.") /obj/structure/heavy_vehicle_frame/Topic(href, href_list) . = ..() diff --git a/code/modules/heavy_vehicle/components/head.dm b/code/modules/heavy_vehicle/components/head.dm index dc8ba1a4748..a1387adfbf6 100644 --- a/code/modules/heavy_vehicle/components/head.dm +++ b/code/modules/heavy_vehicle/components/head.dm @@ -108,9 +108,9 @@ var/list/installed_software = list() var/max_installed_software = 2 -/obj/item/mech_component/control_module/examine(mob/user) +/obj/item/mech_component/control_module/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("It has [max_installed_software - LAZYLEN(installed_software)] empty slot\s remaining out of [max_installed_software].")) + . += SPAN_NOTICE("It has [max_installed_software - LAZYLEN(installed_software)] empty slot\s remaining out of [max_installed_software].") /obj/item/mech_component/control_module/Topic(href, href_list) . = ..() diff --git a/code/modules/heavy_vehicle/components/remote.dm b/code/modules/heavy_vehicle/components/remote.dm index 9790b048740..7d48eab4feb 100644 --- a/code/modules/heavy_vehicle/components/remote.dm +++ b/code/modules/heavy_vehicle/components/remote.dm @@ -9,12 +9,12 @@ var/hardpoint_lock = FALSE // Whether mechs that receive this upgrade gets locked var/dummy_path = /mob/living/simple_animal/spiderbot -/obj/item/remote_mecha/examine(mob/user) +/obj/item/remote_mecha/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, FONT_SMALL(SPAN_WARNING("This exosuit upgrade cannot be undone if applied!"))) + . += FONT_SMALL(SPAN_WARNING("This exosuit upgrade cannot be undone if applied!")) if(Adjacent(user)) var/message = "Applying \the [src] will [hardpoint_lock ? "" : "not"] lock the hardpoints[hardpoint_lock ? ", preventing further modification" : ""]." - to_chat(user, FONT_SMALL(SPAN_NOTICE(message))) + . += FONT_SMALL(SPAN_NOTICE(message)) /obj/item/remote_mecha/penal name = "penal exosuit remote upgrade" @@ -22,10 +22,10 @@ mech_remote_network = REMOTE_PRISON_MECH hardpoint_lock = TRUE -/obj/item/remote_mecha/penal/examine(mob/user, distance, is_adjacent) +/obj/item/remote_mecha/penal/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, FONT_SMALL(SPAN_NOTICE("Applying \the [src] will additionally add the mech to the security penal network, where they can remotely monitor and shut it down."))) + . += FONT_SMALL(SPAN_NOTICE("Applying \the [src] will additionally add the mech to the security penal network, where they can remotely monitor and shut it down.")) /obj/item/remote_mecha/ai name = "AI exosuit remote upgrade" diff --git a/code/modules/heavy_vehicle/equipment/_equipment.dm b/code/modules/heavy_vehicle/equipment/_equipment.dm index bcb34294151..88a383bd81c 100644 --- a/code/modules/heavy_vehicle/equipment/_equipment.dm +++ b/code/modules/heavy_vehicle/equipment/_equipment.dm @@ -17,14 +17,14 @@ var/require_adjacent = TRUE var/active = FALSE //For gear that has an active state (ie, floodlights) -/obj/item/mecha_equipment/examine(mob/user, distance) +/obj/item/mecha_equipment/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(length(restricted_hardpoints)) var/hardpoints = english_list(restricted_hardpoints, and_text = ", ") - to_chat(user, SPAN_NOTICE("Exosuit Mounts: [hardpoints]")) + . += SPAN_NOTICE("Exosuit Mounts: [hardpoints]") if(length(restricted_software)) var/software = english_list(restricted_software, and_text = ", ") - to_chat(user, SPAN_NOTICE("Exosuit Software Requirement: [software]")) + . += SPAN_NOTICE("Exosuit Software Requirement: [software]") /obj/item/mecha_equipment/attack() //Generally it's not desired to be able to attack with items return 0 diff --git a/code/modules/heavy_vehicle/equipment/utility.dm b/code/modules/heavy_vehicle/equipment/utility.dm index ce537620383..22eb232df12 100644 --- a/code/modules/heavy_vehicle/equipment/utility.dm +++ b/code/modules/heavy_vehicle/equipment/utility.dm @@ -304,7 +304,7 @@ /obj/item/material/drill_head/proc/get_durability_percentage() return (durability * 100) / (2 * material.integrity) -/obj/item/material/drill_head/examine(mob/user, distance) +/obj/item/material/drill_head/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/percentage = get_durability_percentage() var/descriptor = "looks close to breaking" @@ -317,7 +317,7 @@ if(percentage > 95) descriptor = "shows no wear" - to_chat(user, SPAN_NOTICE("It [descriptor].")) + . += SPAN_NOTICE("It [descriptor].") /obj/item/mecha_equipment/drill name = "drill" diff --git a/code/modules/heavy_vehicle/mecha.dm b/code/modules/heavy_vehicle/mecha.dm index 055afc12f63..cede65cd8da 100644 --- a/code/modules/heavy_vehicle/mecha.dm +++ b/code/modules/heavy_vehicle/mecha.dm @@ -133,29 +133,30 @@ /mob/living/heavy_vehicle/IsAdvancedToolUser() return 1 -/mob/living/heavy_vehicle/examine(var/mob/user) +/mob/living/heavy_vehicle/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = list() if(!user || !user.client) return TRUE - to_chat(user, "That's \a [src].") + . += "That's \a [src]." if(desc) to_chat(user, desc) if(LAZYLEN(pilots) && (!hatch_closed || body.pilot_coverage < 100 || body.transparent_cabin)) if(length(pilots) == 0) - to_chat(user, "It has no pilot.") + . += "It has no pilot." else for(var/pilot in pilots) - if(istype(pilot, /mob)) + if(ismob(pilot)) var/mob/M = pilot - to_chat(user, "It is being piloted by [M.name].") + . += "It is being piloted by [M.name]." else - to_chat(user, "It is being piloted by [pilot].") + . += "It is being piloted by [pilot]." if(hardpoints.len) - to_chat(user, "It has the following hardpoints:") + . += "It has the following hardpoints:" for(var/hardpoint in hardpoints) var/obj/item/I = hardpoints[hardpoint] - to_chat(user, "- [hardpoint]: [istype(I) ? "[I]" : "nothing"].") + . += "- [hardpoint]: [istype(I) ? "[I]" : "nothing"]." else - to_chat(user, "It has no visible hardpoints.") + . += "It has no visible hardpoints." for(var/obj/item/mech_component/thing in list(arms, legs, head, body)) if(!thing) @@ -170,7 +171,7 @@ damage_string = "badly damaged" if(4) damage_string = "destroyed" - to_chat(user, "Its [thing.name] [thing.gender == PLURAL ? "are" : "is"] [damage_string].") + . += "Its [thing.name] [thing.gender == PLURAL ? "are" : "is"] [damage_string]." /mob/living/heavy_vehicle/Topic(href,href_list[]) if (href_list["examine"]) diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm index 29d084808dc..347196691b5 100644 --- a/code/modules/hydroponics/beekeeping/beehive.dm +++ b/code/modules/hydroponics/beekeeping/beehive.dm @@ -46,23 +46,23 @@ if(81 to 100) add_overlay("bees3") -/obj/machinery/beehive/examine(mob/user, distance, is_adjacent) +/obj/machinery/beehive/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("\The [src] is holding [frames]/[maxFrames] frames.")) + . += SPAN_NOTICE("\The [src] is holding [frames]/[maxFrames] frames.") if(is_adjacent) if(bee_count) if(closed) - to_chat(user, FONT_SMALL(SPAN_NOTICE("You can hear buzzing from within \the [src]."))) + . += FONT_SMALL(SPAN_NOTICE("You can hear buzzing from within \the [src].")) else - to_chat(user, FONT_SMALL(SPAN_WARNING("The lid is open. The bees can't grow and produce honey until it's closed!"))) - to_chat(user, FONT_SMALL(SPAN_NOTICE("You can see bees buzzing around within \the [src]."))) + . += FONT_SMALL(SPAN_WARNING("The lid is open. The bees can't grow and produce honey until it's closed!")) + . += FONT_SMALL(SPAN_NOTICE("You can see bees buzzing around within \the [src].")) else if(closed) - to_chat(user, FONT_SMALL(SPAN_NOTICE("\The [src] lies silent."))) + . += FONT_SMALL(SPAN_NOTICE("\The [src] lies silent.")) else - to_chat(user, FONT_SMALL(SPAN_NOTICE("You can see bees buzzing around within \the [src]."))) + . += FONT_SMALL(SPAN_NOTICE("You can see bees buzzing around within \the [src].")) if(honeycombs / 100 > 1) - to_chat(user, SPAN_NOTICE("\The [src] has a frame full of honeycombs which you can harvest.")) + . += SPAN_NOTICE("\The [src] has a frame full of honeycombs which you can harvest.") /obj/machinery/beehive/attackby(obj/item/I, mob/user) if(I.iscrowbar()) diff --git a/code/modules/hydroponics/beekeeping/honey_extractor.dm b/code/modules/hydroponics/beekeeping/honey_extractor.dm index 63739b7c4c7..94c7c6e8eeb 100644 --- a/code/modules/hydroponics/beekeeping/honey_extractor.dm +++ b/code/modules/hydroponics/beekeeping/honey_extractor.dm @@ -8,11 +8,11 @@ var/obj/item/honey_frame/contained_frame var/honey = 0 -/obj/machinery/honey_extractor/examine(var/mob/user) +/obj/machinery/honey_extractor/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(contained_frame) - to_chat(user, SPAN_NOTICE("It's holding \the [contained_frame].")) - to_chat(user, SPAN_NOTICE("It contains [honey] units of honey for collection.")) + . += SPAN_NOTICE("It's holding \the [contained_frame].") + . += SPAN_NOTICE("It contains [honey] units of honey for collection.") /obj/machinery/honey_extractor/attackby(obj/item/I, mob/user) if(contained_frame) diff --git a/code/modules/hydroponics/beekeeping/net.dm b/code/modules/hydroponics/beekeeping/net.dm index 23d9eb5ccb6..ad08558721f 100644 --- a/code/modules/hydroponics/beekeeping/net.dm +++ b/code/modules/hydroponics/beekeeping/net.dm @@ -8,12 +8,12 @@ var/caught_bees = 0 var/feralbees -/obj/item/bee_net/examine(mob/user) +/obj/item/bee_net/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(caught_bees) - to_chat(user, SPAN_NOTICE("It contains [caught_bees] bees.")) + . += SPAN_NOTICE("It contains [caught_bees] bees.") else - to_chat(user, SPAN_NOTICE("It is empty.")) + . += SPAN_NOTICE("It is empty.") /obj/item/bee_net/attack_self(mob/user) var/turf/T = get_step(get_turf(user), user.dir) diff --git a/code/modules/hydroponics/beekeeping/smoker.dm b/code/modules/hydroponics/beekeeping/smoker.dm index 6b3c7bf737f..51f936ad4d7 100644 --- a/code/modules/hydroponics/beekeeping/smoker.dm +++ b/code/modules/hydroponics/beekeeping/smoker.dm @@ -9,10 +9,10 @@ w_class = ITEMSIZE_LARGE var/max_fuel = 60 -/obj/item/bee_smoker/examine(mob/user, distance, is_adjacent) +/obj/item/bee_smoker/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, SPAN_NOTICE("It has [get_fuel()]/[max_fuel] welding fuel left.")) + . += SPAN_NOTICE("It has [get_fuel()]/[max_fuel] welding fuel left.") /obj/item/bee_smoker/Initialize() . = ..() diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm index 016ba574d8f..912330978a8 100644 --- a/code/modules/hydroponics/seed_packets.dm +++ b/code/modules/hydroponics/seed_packets.dm @@ -69,10 +69,10 @@ GLOBAL_LIST_EMPTY(plant_seed_sprites) sm.Blend(so, ICON_OVERLAY) return sm -/obj/item/seeds/examine(mob/user) +/obj/item/seeds/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(seed && !seed.roundstart) - to_chat(user, "It's tagged as variety #[seed.uid].") + . += "It's tagged as variety #[seed.uid]." /obj/item/seeds/cutting name = SEED_NOUN_CUTTINGS diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 7a0d7da4ed3..8255c9890f9 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -622,31 +622,29 @@ else if(dead) remove_dead(user) -/obj/machinery/portable_atmospherics/hydroponics/examine(mob/user, distance, is_adjacent) - +/obj/machinery/portable_atmospherics/hydroponics/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - if(!seed) - to_chat(usr, "[src] is empty.") + . += "[src] is empty." return - to_chat(usr, "[seed.display_name] are growing here.") + . += "[seed.display_name] are growing here." if(!is_adjacent) return - to_chat(usr, "Water: [round(waterlevel,0.1)]/100") - to_chat(usr, "Nutrient: [round(nutrilevel,0.1)]/10") + . += "The water gauge displays [round(waterlevel,0.1)]/100." + . += "The nutrient gauge displays [round(nutrilevel,0.1)]/10." if(weedlevel >= 5) - to_chat(usr, "\The [src] is infested with weeds!") + . += "\The [src] is infested with weeds!" if(pestlevel >= 5) - to_chat(usr, "\The [src] is infested with tiny worms!") + . += "\The [src] is infested with tiny worms!" if(dead) - to_chat(usr, "The plant is dead.") + . += "The plant is dead." else if(health <= (seed.get_trait(TRAIT_ENDURANCE)/ 2)) - to_chat(usr, "The plant looks unhealthy.") + . += "The plant looks unhealthy." if(mechanical) var/turf/T = loc @@ -674,7 +672,7 @@ light_string = "a light level of [light_available] lumens" - to_chat(usr, "The tray's sensor suite is reporting [light_string] and a temperature of [environment.temperature]K.") + . += "The tray's sensor suite is reporting [light_string] and a temperature of [environment.temperature]K." /obj/machinery/portable_atmospherics/hydroponics/verb/close_lid_verb() set name = "Toggle Tray Lid" diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 5e790e5f672..b7d18ba6af6 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -182,11 +182,11 @@ for(var/obj/item/integrated_circuit/part in contents) . |= part.GetAccess() -/obj/item/device/electronic_assembly/examine(mob/user, distance, is_adjacent) +/obj/item/device/electronic_assembly/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) for(var/obj/item/integrated_circuit/IC in contents) - 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 722cb2eb92f..00386526209 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -8,27 +8,12 @@ a creative player the means to solve many problems. Circuits are held inside an external_examine(user) . = ..() -// This should be used when someone is examining while the case is opened. -/obj/item/integrated_circuit/proc/internal_examine(mob/user) - to_chat(user, "This board has [inputs.len] input pin\s, [outputs.len] output pin\s and [activators.len] activation pin\s.") - for(var/datum/integrated_io/I in inputs) - if(I.linked.len) - to_chat(user, "The '[I]' is connected to [I.get_linked_to_desc()].") - for(var/datum/integrated_io/O in outputs) - if(O.linked.len) - to_chat(user, "The '[O]' is connected to [O.get_linked_to_desc()].") - for(var/datum/integrated_io/activate/A in activators) - if(A.linked.len) - to_chat(user, "The '[A]' is connected to [A.get_linked_to_desc()].") - any_examine(user) - interact(user) - // 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) /obj/item/integrated_circuit/proc/any_examine(mob/user) - return + . = list() /obj/item/integrated_circuit/Initialize() displayed_name = name diff --git a/code/modules/integrated_electronics/subtypes/memory.dm b/code/modules/integrated_electronics/subtypes/memory.dm index b579ded1471..a21d459f10b 100644 --- a/code/modules/integrated_electronics/subtypes/memory.dm +++ b/code/modules/integrated_electronics/subtypes/memory.dm @@ -23,7 +23,7 @@ complexity = number_of_pins . = ..() -/obj/item/integrated_circuit/memory/storage/examine(mob/user) +/obj/item/integrated_circuit/memory/storage/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/i for (i in 1 to outputs.len) @@ -35,7 +35,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/storage/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 f0f48e6de99..a84dedc7518 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -18,10 +18,11 @@ stuff_to_display = null /obj/item/integrated_circuit/output/screen/any_examine(mob/user) + . = ..() if (displayed_name) - to_chat(user, "There is a little screen labeled '[displayed_name]', which displays [!isnull(stuff_to_display) ? "'[stuff_to_display]'" : "nothing"].") + . += "There is a little screen labeled '[displayed_name]', which displays [!isnull(stuff_to_display) ? "'[stuff_to_display]'" : "nothing"]." else - to_chat(user, "There is an unlabelled little screen, which displays [!isnull(stuff_to_display) ? "'[stuff_to_display]'" : "nothing"].") + . += "There is an unlabelled little screen, 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] @@ -302,6 +303,7 @@ push_data() /obj/item/integrated_circuit/output/led/any_examine(mob/user) + . = ..() var/text_output = list() var/initial_name = initial(name) @@ -312,7 +314,7 @@ else text_output += "\an ["\improper[initial_name]"] labeled '[name]'" text_output += " which is currently [get_pin_data(IC_INPUT, 1) ? "lit [color_name]" : "unlit."]" - to_chat(user,jointext(text_output,null)) + . += jointext(text_output,null) /obj/item/integrated_circuit/output/led/red name = "red LED" diff --git a/code/modules/makeshift/makeshift_reagents.dm b/code/modules/makeshift/makeshift_reagents.dm index 67ebf4777ae..54a593c86ef 100644 --- a/code/modules/makeshift/makeshift_reagents.dm +++ b/code/modules/makeshift/makeshift_reagents.dm @@ -29,10 +29,10 @@ . = ..() create_reagents(180) -/obj/structure/chemkit/examine(mob/user) +/obj/structure/chemkit/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(analyzer) - to_chat(user, SPAN_NOTICE("The analyzer displays that the temperature is [round(reagents.get_temperature() - T0C,0.1)]C.")) + . += SPAN_NOTICE("The analyzer displays that the temperature is [round(reagents.get_temperature() - T0C,0.1)]C.") /obj/structure/chemkit/verb/phase_filter() set name = "Set Phase Filter" diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index cbb05569a39..3359bb755e7 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -176,20 +176,20 @@ system_error("Resource field depleted.") update_icon() -/obj/machinery/mining/drill/examine(mob/user, distance, is_adjacent) +/obj/machinery/mining/drill/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(need_player_check) - to_chat(user, SPAN_WARNING("The drill error light is flashing. The cell panel is [panel_open ? "open" : "closed"].")) + . += SPAN_WARNING("The drill error light is flashing. The cell panel is [panel_open ? "open" : "closed"].") else - to_chat(user, "The drill is [active ? "active" : "inactive"] and the cell panel is [panel_open ? "open" : "closed"].") + . += "The drill is [active ? "active" : "inactive"] and the cell panel is [panel_open ? "open" : "closed"]." if(panel_open) - to_chat(user, "The power cell is [cell ? "installed" : "missing"].") - to_chat(user, "The cell charge meter reads [cell ? round(cell.percent(),1) : 0]%.") + . += "The power cell is [cell ? "installed" : "missing"]." + . += "The cell charge meter reads [cell ? round(cell.percent(),1) : 0]%." if(is_adjacent) if(attached_satchel) - to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a [attached_satchel] attached to it."))) + . += FONT_SMALL(SPAN_NOTICE("It has a [attached_satchel] attached to it.")) if(current_error) - to_chat(user, FONT_SMALL(SPAN_WARNING("The error display reads \"[current_error]\"."))) + . += FONT_SMALL(SPAN_WARNING("The error display reads \"[current_error]\".")) return /obj/machinery/mining/drill/proc/activate_light(var/lights = DRILL_LIGHT_IDLE) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 3e53ae13526..747027e8168 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -850,12 +850,12 @@ emagged = TRUE update_icon() -/obj/item/lazarus_injector/examine(mob/user) +/obj/item/lazarus_injector/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!loaded) - to_chat(user, SPAN_INFO("\The [src] is empty.")) + . += SPAN_INFO("\The [src] is empty.") if(malfunctioning || emagged) - to_chat(user, SPAN_INFO("The display on \the [src] seems to be flickering.")) + . += SPAN_INFO("The display on \the [src] seems to be flickering.") /**********************Point Transfer Card**********************/ @@ -876,9 +876,9 @@ to_chat(user, SPAN_INFO("There's no points left on \the [src].")) ..() -/obj/item/card/mining_point_card/examine(mob/user) +/obj/item/card/mining_point_card/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("There's [points] point\s on the card.")) + . += SPAN_NOTICE("There's [points] point\s on the card.") /**********************"Fultons"**********************/ @@ -896,9 +896,9 @@ var/list/total_extraction_beacons = list() var/uses_left = 3 origin_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4, TECH_ENGINEERING = 4) -/obj/item/extraction_pack/examine(mob/user) +/obj/item/extraction_pack/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("It has [uses_left] uses remaining.")) + . += SPAN_NOTICE("It has [uses_left] uses remaining.") /obj/item/extraction_pack/attack_self(mob/user) var/list/possible_beacons = list() diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 6e22c28f87b..f4bc7e2ac6e 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -94,27 +94,27 @@ var/list/mineral_can_smooth_with = list( return INITIALIZE_HINT_NORMAL -/turf/simulated/mineral/examine(mob/user) +/turf/simulated/mineral/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(mineral) switch(mined_ore) if(0) - to_chat(user, SPAN_INFO("It is ripe with [mineral.display_name].")) + . += SPAN_INFO("It is ripe with [mineral.display_name].") if(1) - to_chat(user, SPAN_INFO("Its [mineral.display_name] looks a little depleted.")) + . += SPAN_INFO("Its [mineral.display_name] looks a little depleted.") if(2) - to_chat(user, SPAN_INFO("Its [mineral.display_name] looks very depleted!")) + . += SPAN_INFO("Its [mineral.display_name] looks very depleted!") else - to_chat(user, SPAN_INFO("It is devoid of any valuable minerals.")) + . += SPAN_INFO("It is devoid of any valuable minerals.") switch(emitter_blasts_taken) if(0) - to_chat(user, SPAN_INFO("It is in pristine condition.")) + . += SPAN_INFO("It is in pristine condition.") if(1) - to_chat(user, SPAN_INFO("It appears a little damaged.")) + . += SPAN_INFO("It appears a little damaged.") if(2) - to_chat(user, SPAN_INFO("It is crumbling!")) + . += SPAN_INFO("It is crumbling!") if(3) - to_chat(user, SPAN_INFO("It looks ready to collapse at any moment!")) + . += SPAN_INFO("It looks ready to collapse at any moment!") /turf/simulated/mineral/ex_act(severity) switch(severity) diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index e3ec7ca8cb7..3ecaf70b025 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -46,10 +46,10 @@ update_icon() density = FALSE -/mob/living/silicon/robot/drone/mining/examine(mob/user) +/mob/living/silicon/robot/drone/mining/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(health_upgrade) - to_chat(user, SPAN_NOTICE("\The [src] appears to have a reinforced chassis.")) + . += SPAN_NOTICE("\The [src] appears to have a reinforced chassis.") if(ranged_upgrade || drill_upgrade) var/output_text = "\The [src]'s lights indicates it has" if(ranged_upgrade && drill_upgrade) @@ -58,7 +58,7 @@ output_text += " a stationbound class KA mounted to it." else if(drill_upgrade) output_text += " a jackhammer drill mounted to it." - to_chat(user, SPAN_NOTICE(output_text)) + . += SPAN_NOTICE(output_text) /mob/living/silicon/robot/drone/mining/request_player() if(too_many_active_drones()) diff --git a/code/modules/mining/ore_detector.dm b/code/modules/mining/ore_detector.dm index 3633d987523..36a6755deb1 100644 --- a/code/modules/mining/ore_detector.dm +++ b/code/modules/mining/ore_detector.dm @@ -24,10 +24,10 @@ var/list/ore_names -/obj/item/ore_detector/examine(mob/user, distance) +/obj/item/ore_detector/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, FONT_SMALL(SPAN_NOTICE("Alt-click to set the ore you wish to search for."))) + . += FONT_SMALL(SPAN_NOTICE("Alt-click to set the ore you wish to search for.")) /obj/item/ore_detector/Destroy() deactivate() diff --git a/code/modules/mining/ore_satchel.dm b/code/modules/mining/ore_satchel.dm index 4343e828b4e..19e47b6b65f 100644 --- a/code/modules/mining/ore_satchel.dm +++ b/code/modules/mining/ore_satchel.dm @@ -11,10 +11,10 @@ var/linked_beacon = FALSE // can't hold an actual beacon beclause storage code a shit var/linked_beacon_uses = 3 // to hold the amount of uses the beacon had, storage code a shit. -/obj/item/storage/bag/ore/examine(mob/user, distance, is_adjacent) +/obj/item/storage/bag/ore/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent && linked_beacon) - to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a warp extraction pack inside."))) + . += FONT_SMALL(SPAN_NOTICE("It has a warp extraction pack inside.")) /obj/item/storage/bag/ore/drone // this used to be 400. The inventory system FUCKING DIED at this. diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 3936854e052..554ff978321 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -71,10 +71,10 @@ else stored_ore[O.name] = 1 -/obj/structure/ore_box/examine(mob/user, distance, is_adjacent) +/obj/structure/ore_box/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() // Borgs can now check contents too. - if((!istype(user, /mob/living/carbon/human)) && (!istype(user, /mob/living/silicon/robot))) + if(!ishuman(user) && !isrobot(user)) return if(!is_adjacent) //Can only check the contents of ore boxes if you can physically reach them. return @@ -82,20 +82,19 @@ add_fingerprint(user) if(warp_core) - to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a warp extraction beacon signaller attached to it."))) + . += FONT_SMALL(SPAN_NOTICE("It has a warp extraction beacon signaller attached to it.")) if(!length(contents)) - to_chat(user, SPAN_NOTICE("It is empty.")) + . += SPAN_NOTICE("It is empty.") return if(world.time > last_update + 10) update_ore_count() last_update = world.time - to_chat(user, SPAN_NOTICE("It holds:")) + . += SPAN_NOTICE("It holds:") for(var/ore in stored_ore) - to_chat(user, SPAN_NOTICE("- [stored_ore[ore]] [ore]")) - return + . += SPAN_NOTICE("- [stored_ore[ore]] [ore]") /obj/structure/ore_box/verb/empty_box() set name = "Empty Ore Box" diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm index ace42ab4e11..f78326173c8 100644 --- a/code/modules/mob/living/bot/bot.dm +++ b/code/modules/mob/living/bot/bot.dm @@ -50,10 +50,10 @@ QDEL_NULL(access_scanner) return ..() -/mob/living/bot/examine(mob/user, distance, infix, suffix) +/mob/living/bot/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(pAI) - to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a pAI piloting it."))) + . += FONT_SMALL(SPAN_NOTICE("It has a pAI piloting it.")) /mob/living/bot/Life() ..() diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index d88d4d7915a..0717e3fdf3c 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -74,10 +74,10 @@ extra_examine_info = "The braincase is sealed and ready for use. The only thing that will undo the seal is a circular saw, and that will destroy the brain inside." update_icon() -/obj/item/device/mmi/examine(mob/user, distance) +/obj/item/device/mmi/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(extra_examine_info) - to_chat(user, SPAN_NOTICE(extra_examine_info)) + . += SPAN_NOTICE(extra_examine_info) /obj/item/device/mmi/attackby(obj/item/I, mob/user) switch(cradle_state) diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 4e837eb8b6a..a05b6ca9bb0 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -72,27 +72,24 @@ visible_message(SPAN_NOTICE("\The [src] chimes quietly.")) return ..() -/obj/item/device/mmi/digital/posibrain/examine(mob/user) - if(!..(user)) - return +/obj/item/device/mmi/digital/posibrain/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() - var/msg = "*---------*\nThis is [icon2html(src, user)] \a [src]!\n[desc]\n" - msg += "" + . += "*---------*\nThis is [icon2html(src, user)] \a [src]!\n[desc]\n" + . += "" if(brainmob?.key) switch(brainmob.stat) if(CONSCIOUS) if(!src.brainmob.client) - msg += "It appears to be in stand-by mode.\n" //afk + . += "It appears to be in stand-by mode.\n" //afk if(UNCONSCIOUS) - msg += "It doesn't seem to be responsive.\n" + . += "It doesn't seem to be responsive.\n" if(DEAD) - msg += "It appears to be completely inactive.\n" + . += "It appears to be completely inactive.\n" else - msg += "It appears to be completely inactive.\n" - msg += "*---------*" - to_chat(user, msg) - return TRUE + . += "It appears to be completely inactive.\n" + . += "*---------*" /obj/item/device/mmi/digital/posibrain/ready_for_use(var/mob/user) if(!brainmob) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 8bf11e64dda..f2c86cc63ca 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -32,7 +32,8 @@ else to_chat(user, "[get_pronoun("He")] [get_pronoun("has")] a pulse!") -/mob/living/carbon/human/examine(mob/user, distance, is_adjacent) +/mob/living/carbon/human/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = list() var/skipbody = get_covered_body_parts() var/skipbody_thick = get_covered_body_parts(TRUE) var/skipitems = get_covered_clothes() @@ -404,12 +405,11 @@ pose = addtext(pose,".") //Makes sure all emotes end with a period. msg += "\n[get_pronoun("He")] [pose]" - to_chat(user, msg.Join()) + . += msg.Join() + if(Adjacent(user)) INVOKE_ASYNC(src, PROC_REF(examine_pulse), user) - return TRUE - //Helper procedure. Called by /mob/living/carbon/human/examine() and /mob/living/carbon/human/Topic() to determine HUD access to security and medical records. /proc/hasHUD(mob/M, hudtype) if(ishuman(M)) diff --git a/code/modules/mob/living/carbon/slime/examine.dm b/code/modules/mob/living/carbon/slime/examine.dm index bb3732bf655..a540822261f 100644 --- a/code/modules/mob/living/carbon/slime/examine.dm +++ b/code/modules/mob/living/carbon/slime/examine.dm @@ -1,25 +1,22 @@ -/mob/living/carbon/slime/examine(mob/user) +/mob/living/carbon/slime/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - var/msg = "" if(src.stat == DEAD) - msg += span("deadsay", "It is limp and unresponsive.\n") + . += span("deadsay", "It is limp and unresponsive.\n") else if(src.getBruteLoss()) if(src.getBruteLoss() < 40) - msg += SPAN_WARNING("It has some punctures in its flesh!\n") + . += SPAN_WARNING("It has some punctures in its flesh!\n") else - msg += SPAN_DANGER("It has severe punctures and tears in its flesh!\n") + . += SPAN_DANGER("It has severe punctures and tears in its flesh!\n") switch(powerlevel) if(2 to 3) - msg += SPAN_NOTICE("It is flickering gently with a little electrical activity.\n") + . += SPAN_NOTICE("It is flickering gently with a little electrical activity.\n") if(4 to 5) - msg += SPAN_NOTICE("It is glowing gently with moderate levels of electrical activity.\n") + . += SPAN_NOTICE("It is glowing gently with moderate levels of electrical activity.\n") if(6 to 9) - msg += SPAN_WARNING("It is glowing brightly with high levels of electrical activity.\n") + . += SPAN_WARNING("It is glowing brightly with high levels of electrical activity.\n") if(10) - msg += SPAN_DANGER("It is radiating with massive levels of electrical activity!\n") + . += SPAN_DANGER("It is radiating with massive levels of electrical activity!\n") - msg += "*---------*" - to_chat(user, msg) - return + . += "*---------*" diff --git a/code/modules/mob/living/carbon/slime/slime_extractor.dm b/code/modules/mob/living/carbon/slime/slime_extractor.dm index 96cb3412d79..0e90027933b 100644 --- a/code/modules/mob/living/carbon/slime/slime_extractor.dm +++ b/code/modules/mob/living/carbon/slime/slime_extractor.dm @@ -19,11 +19,11 @@ /obj/item/stack/cable_coil{amount = 5} ) -/obj/machinery/slime_extractor/examine(mob/user) +/obj/machinery/slime_extractor/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, FONT_SMALL(SPAN_NOTICE("It can hold [slime_limit] slime\s at a time."))) + . += FONT_SMALL(SPAN_NOTICE("It can hold [slime_limit] slime\s at a time.")) if(length(extract_slimes)) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is currently processing [length(extract_slimes)] slime\s."))) + . += FONT_SMALL(SPAN_WARNING("It is currently processing [length(extract_slimes)] slime\s.")) /obj/machinery/slime_extractor/update_icon() cut_overlays() diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index 2a13f2428bd..c7a6ab6b2c8 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -1,44 +1,39 @@ -/mob/living/silicon/ai/examine(mob/user) - if(!..(user)) - return TRUE - - var/msg = "" +/mob/living/silicon/ai/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() if (src.stat == DEAD) - msg += "It appears to be powered-down.\n" + . += "It appears to be powered-down." else - msg += "" + . += "" if (src.getBruteLoss()) if (src.getBruteLoss() < 30) - msg += "It looks slightly dented.\n" + . += "It looks slightly dented." else - msg += "It looks severely dented!\n" + . += "It looks severely dented!" if (src.getFireLoss()) if (src.getFireLoss() < 30) - msg += "It looks slightly charred.\n" + . += "It looks slightly charred." else - msg += "Its casing is melted and heat-warped!\n" + . += "Its casing is melted and heat-warped!" if (src.getOxyLoss() && (ai_restore_power_routine != 0 && !APU_power)) if (src.getOxyLoss() > 175) - msg += "It seems to be running on backup power. Its display is blinking a \"BACKUP POWER CRITICAL\" warning.\n" + . += "It seems to be running on backup power. Its display is blinking a \"BACKUP POWER CRITICAL\" warning." else if(src.getOxyLoss() > 100) - msg += "It seems to be running on backup power. Its display is blinking a \"BACKUP POWER LOW\" warning.\n" + . += "It seems to be running on backup power. Its display is blinking a \"BACKUP POWER LOW\" warning." else - msg += "It seems to be running on backup power.\n" + . += "It seems to be running on backup power." if (src.stat == UNCONSCIOUS) - msg += "It is non-responsive and displaying the text: \"RUNTIME: Sensory Overload, stack 26/3\".\n" - msg += "" - msg += "*---------*" + . += "It is non-responsive and displaying the text: \"RUNTIME: Sensory Overload, stack 26/3\"." + . += "" + . += "*---------*" if(hardware && (hardware.owner == src)) - msg += "
    " - msg += hardware.get_examine_desc() - to_chat(user, msg) - user.showLaws(src) - return TRUE + . += "
    " + . += hardware.get_examine_desc() + . += user.examine_laws(src) -/mob/proc/showLaws(var/mob/living/silicon/S) +/mob/proc/examine_laws(var/mob/living/silicon/S) return -/mob/abstract/observer/showLaws(var/mob/living/silicon/S) +/mob/abstract/observer/examine_laws(var/mob/living/silicon/S) if(antagHUD || is_admin(src)) - S.laws.show_laws(src) + return S.laws.get_laws(src) diff --git a/code/modules/mob/living/silicon/pai/examine.dm b/code/modules/mob/living/silicon/pai/examine.dm index 19a866bcdcd..8930ccfca53 100644 --- a/code/modules/mob/living/silicon/pai/examine.dm +++ b/code/modules/mob/living/silicon/pai/examine.dm @@ -1,19 +1,19 @@ -/mob/living/silicon/pai/examine(mob/user, distance, is_adjacent) - . = ..(user, distance, is_adjacent, infix = ", personal AI") - - var/msg = "" +/mob/living/silicon/pai/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..(user, distance, is_adjacent, ", personal AI", suffix) switch(src.stat) if(CONSCIOUS) - if(!src.client) msg += "\nIt appears to be in stand-by mode." //afk - if(UNCONSCIOUS) msg += "\nIt doesn't seem to be responding." - if(DEAD) msg += "\nIt looks completely unsalvageable." - msg += "\n*---------*" + if(!src.client) + . += "\nIt appears to be in stand-by mode." //afk + if(UNCONSCIOUS) + . += "\nIt doesn't seem to be responding." + if(DEAD) + . += "\nIt looks completely unsalvageable." + . += "\n*---------*" - if(print_flavor_text()) msg += "\n[print_flavor_text()]\n" + if(print_flavor_text()) + . += "\n[print_flavor_text()]\n" if (pose) - if( findtext(pose,".",length(pose)) == 0 && findtext(pose,"!",length(pose)) == 0 && findtext(pose,"?",length(pose)) == 0 ) + if(findtext(pose,".",length(pose)) == 0 && findtext(pose,"!",length(pose)) == 0 && findtext(pose,"?",length(pose)) == 0 ) pose = addtext(pose,".") //Makes sure all emotes end with a period. - msg += "\nIt [pose]" - - to_chat(user, msg) + . += "\nIt [pose]" diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index fcff977b337..162ddad79f5 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -576,9 +576,6 @@ /mob/living/silicon/robot/drone/self_destruct() gib() -/mob/living/silicon/robot/drone/examine(mob/user) - . = ..() - /mob/living/silicon/robot/drone/self_diagnosis() if(!is_component_functioning("diagnosis unit")) return null diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index e5a65c5e6fb..4470371a1e3 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -63,10 +63,10 @@ if(drone_progress >= 100) visible_message(SPAN_NOTICE("\The [src] voices a strident beep, indicating a drone chassis is prepared.")) -/obj/machinery/drone_fabricator/examine(mob/user) +/obj/machinery/drone_fabricator/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(produce_drones && drone_progress >= 100 && istype(user,/mob/abstract) && GLOB.config.allow_drone_spawn && count_drones() < GLOB.config.max_maint_drones) - to_chat(user, SPAN_NOTICE("A drone is prepared. use 'Ghost Spawner' from the Ghost tab to spawn as a maintenance drone.")) + . += SPAN_NOTICE("A drone is prepared. use 'Ghost Spawner' from the Ghost tab to spawn as a maintenance drone.") /obj/machinery/drone_fabricator/proc/create_drone(var/client/player, var/drone_tag) if(stat & NOPOWER) diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index 736007e3fb6..f3f635b727f 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -1,50 +1,45 @@ -/mob/living/silicon/robot/examine(mob/user, distance, is_adjacent) +/mob/living/silicon/robot/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) var/custom_infix = custom_name ? ", [mod_type] [braintype]" : "" . = ..(user, distance, is_adjacent, infix = custom_infix) - var/msg = "" + . += describe_all_modules() // describe modules - msg += "\n" - msg += describe_all_modules() // describe modules - msg += "\n" - - msg += "" + . += "" if(getBruteLoss()) if(getBruteLoss() < 75) - 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() < 75) - msg += "It looks slightly charred.\n" + . += "It looks slightly charred." else - msg += "It looks severely burnt and heat-warped!\n" - msg += "" + . += "It looks severely burnt and heat-warped!" + . += "" 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.\n" + . += "Its cover is closed." if(!has_power) - msg += "It appears to be running on backup power.\n" + . += "It appears to be running on backup power." switch(stat) if(CONSCIOUS) - if(!client) msg += "It appears to be in stand-by mode.\n" //afk + if(!client) + . += "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 completely unsalvageable.\n" - msg += "*---------*" + . += "It looks completely unsalvageable." + . += "*---------*" if(print_flavor_text()) - msg += "\n[print_flavor_text()]\n" + . += "\n[print_flavor_text()]\n" if(pose) if(findtext(pose, ".", length(pose)) == 0 && findtext(pose, "!", length(pose)) == 0 && findtext(pose, "?", length(pose)) == 0 ) pose = addtext(pose, ".") //Makes sure all emotes end with a period. - msg += "\nIt [pose]" - - to_chat(user, msg) - user.showLaws(src) + . += "\nIt [pose]" + . += user.examine_laws(src) diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index a1c9db106a5..7856ff22d4a 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -287,14 +287,13 @@ var/list/index_module = list(module_state_1,module_state_2,module_state_3) var/result = " Hardpoint [slot] holds " result += (index_module[slot]) ? "[icon2html(index_module[slot], viewers(get_turf(src)))] [index_module[slot]]." : "nothing." - result += "\n" return result /mob/living/silicon/robot/proc/describe_all_modules() - var/result="It has three tool hardpoints.\n" + var/result="It has three tool hardpoints." for (var/x = 1; x <=3; x++) result += describe_module(x) var/selected = get_selected_module() if (selected) - result += "\nThe activity light on hardpoint [selected] is on.\n" + result += "The activity light on hardpoint [selected] is on." return result diff --git a/code/modules/mob/living/silicon/robot/items/gripper.dm b/code/modules/mob/living/silicon/robot/items/gripper.dm index d481277a5ec..8011f5ab1d3 100644 --- a/code/modules/mob/living/silicon/robot/items/gripper.dm +++ b/code/modules/mob/living/silicon/robot/items/gripper.dm @@ -35,10 +35,15 @@ var/force_holder -/obj/item/gripper/examine(var/mob/user) +/obj/item/gripper/examine(mob/user) . = ..() if(wrapped) - to_chat(user, SPAN_NOTICE("It is holding \the [wrapped]")) + wrapped.examine(user) + +/obj/item/gripper/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() + if(wrapped) + . += SPAN_NOTICE("It is holding \the [wrapped].") /proc/grippersafety(var/obj/item/gripper/G) if(!G || !G.wrapped)//The object must have been lost diff --git a/code/modules/mob/living/silicon/robot/items/inductive_charger.dm b/code/modules/mob/living/silicon/robot/items/inductive_charger.dm index 2a4fa6b4478..42fd3c4228e 100644 --- a/code/modules/mob/living/silicon/robot/items/inductive_charger.dm +++ b/code/modules/mob/living/silicon/robot/items/inductive_charger.dm @@ -103,10 +103,10 @@ if(ispath(cell)) cell = new cell(src) -/obj/item/inductive_charger/handheld/examine(mob/user, distance) +/obj/item/inductive_charger/handheld/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(cell) - to_chat(user, SPAN_NOTICE("Cell Charge: [cell.percent()]%")) + . += SPAN_NOTICE("Cell Charge: [cell.percent()]%") /obj/item/inductive_charger/handheld/get_cell() return cell diff --git a/code/modules/mob/living/silicon/robot/items/portable_destructive_analyzer.dm b/code/modules/mob/living/silicon/robot/items/portable_destructive_analyzer.dm index 1937b19b9c1..ea5f7ef0f68 100644 --- a/code/modules/mob/living/silicon/robot/items/portable_destructive_analyzer.dm +++ b/code/modules/mob/living/silicon/robot/items/portable_destructive_analyzer.dm @@ -16,10 +16,10 @@ . = ..() files = new /datum/research/techonly(src) //Setup the research data holder. -/obj/item/portable_destructive_analyzer/examine(mob/user, distance, is_adjacent) +/obj/item/portable_destructive_analyzer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(loaded_item && is_adjacent) - to_chat(user, SPAN_NOTICE("It is holding \a [loaded_item].")) + . += SPAN_NOTICE("It is holding \a [loaded_item].") /obj/item/portable_destructive_analyzer/attack_self(mob/user) var/response = alert(user, "Analyzing the item inside will *DESTROY* the item for good.\n\ diff --git a/code/modules/mob/living/silicon/robot/items/robot_inflatables.dm b/code/modules/mob/living/silicon/robot/items/robot_inflatables.dm index 807ebb1aec4..bbaf4f7c671 100644 --- a/code/modules/mob/living/silicon/robot/items/robot_inflatables.dm +++ b/code/modules/mob/living/silicon/robot/items/robot_inflatables.dm @@ -19,10 +19,10 @@ stored_walls = max_walls stored_doors = max_doors -/obj/item/inflatable_dispenser/examine(mob/user) +/obj/item/inflatable_dispenser/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("It has [stored_walls] wall segment\s and [stored_doors] door segment\s stored.")) - to_chat(user, SPAN_NOTICE("It is set to deploy [mode ? "doors" : "walls"]")) + . += SPAN_NOTICE("It has [stored_walls] wall segment\s and [stored_doors] door segment\s stored.") + . += SPAN_NOTICE("It is set to deploy [mode ? "doors" : "walls"]") /obj/item/inflatable_dispenser/attack_self(mob/user) if(!deploying) diff --git a/code/modules/mob/living/silicon/robot/items/robot_parts.dm b/code/modules/mob/living/silicon/robot/items/robot_parts.dm index b6bb54e5f06..2da2c5f456e 100644 --- a/code/modules/mob/living/silicon/robot/items/robot_parts.dm +++ b/code/modules/mob/living/silicon/robot/items/robot_parts.dm @@ -28,13 +28,13 @@ else name = "robot [initial(name)]" -/obj/item/robot_parts/examine(mob/user, distance, is_adjacent) +/obj/item/robot_parts/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - report_missing_parts(user) + . = report_missing_parts(user) /obj/item/robot_parts/proc/report_missing_parts(var/mob/user) - return + . = list() /obj/item/robot_parts/l_arm name = "left arm" @@ -98,18 +98,19 @@ update_icon() /obj/item/robot_parts/robot_suit/report_missing_parts(var/mob/user) + . = ..() if(!head) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking a functional head."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking a functional head.")) if(!chest) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking a functional chest."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking a functional chest.")) if(!l_arm) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking a functional left arm."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking a functional left arm.")) if(!r_arm) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking a functional right arm."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking a functional right arm.")) if(!l_leg) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking a functional left leg."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking a functional left leg.")) if(!r_leg) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking a functional right leg."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking a functional right leg.")) /obj/item/robot_parts/robot_suit/equipped/Initialize() . = ..() @@ -321,10 +322,11 @@ return ..() /obj/item/robot_parts/chest/report_missing_parts(var/mob/user) + . = ..() if(!cell) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking a functional cell."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking a functional cell.")) if(!wires) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking wiring."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking wiring.")) /obj/item/robot_parts/chest/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/cell)) @@ -349,12 +351,13 @@ return ..() /obj/item/robot_parts/head/report_missing_parts(var/mob/user) + . = ..() var/law_manager_msg = "Its lawing circuits are [law_manager ? "enabled" : "disabled"]." - to_chat(user, SPAN_NOTICE(law_manager_msg)) + . += SPAN_NOTICE(law_manager_msg) if(!left_flash) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking its left flash."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking its left flash.")) if(!right_flash) - to_chat(user, FONT_SMALL(SPAN_WARNING("It is lacking its right flash."))) + . += FONT_SMALL(SPAN_WARNING("It is lacking its right flash.")) /obj/item/robot_parts/head/attackby(obj/item/W, mob/user) ..() diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm index 5c193d470d3..9ae2f344726 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm @@ -103,13 +103,13 @@ return return ..() -/mob/living/simple_animal/construct/examine(mob/user) +/mob/living/simple_animal/construct/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(health < maxHealth) if(health >= maxHealth / 2) - to_chat(user, SPAN_WARNING("It looks slightly dented.")) + . += SPAN_WARNING("It looks slightly dented.") else - to_chat(user, SPAN_WARNING("It looks severely dented!")) + . += SPAN_WARNING("It looks severely dented!") /mob/living/simple_animal/construct/UnarmedAttack(var/atom/A, var/proximity) if(istype(A, /obj/effect/rune)) diff --git a/code/modules/mob/living/simple_animal/friendly/capybara.dm b/code/modules/mob/living/simple_animal/friendly/capybara.dm index 2572211bc5d..1cc7ea80249 100644 --- a/code/modules/mob/living/simple_animal/friendly/capybara.dm +++ b/code/modules/mob/living/simple_animal/friendly/capybara.dm @@ -32,10 +32,10 @@ addtimer(CALLBACK(src, PROC_REF(pet_response)), rand(2 SECONDS, 5 SECONDS)) ..() -/mob/living/simple_animal/capybara/examine(mob/user) +/mob/living/simple_animal/capybara/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(stat == DEAD) - to_chat(user, "How can someone kill such a friendly creature?") + . += "How can someone kill such a friendly creature?" /mob/living/simple_animal/capybara/proc/pet_response(mob/M) if(!stat && M) diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 8e54df73966..9442301968e 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -293,10 +293,10 @@ befriend_job = "Chief Medical Officer" holder_type = /obj/item/holder/cat/black -/mob/living/simple_animal/cat/fluff/examine(mob/user) +/mob/living/simple_animal/cat/fluff/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(stat == DEAD) - to_chat(user, "Oh no, [name] is dead! What kind of monster would do this?") + . += "Oh no, [name] is dead! What kind of monster would do this?" /mob/living/simple_animal/cat/kitten name = "kitten" @@ -309,10 +309,10 @@ gender = NEUTER holder_type = /obj/item/holder/cat/kitten -/mob/living/simple_animal/cat/kitten/examine(mob/user) +/mob/living/simple_animal/cat/kitten/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(stat == DEAD) - to_chat(user, "It's a dead kitten! What kind of monster would do this?") + . += "It's a dead kitten! What kind of monster would do this?" /mob/living/simple_animal/cat/fluff/bones name = "Bones" @@ -356,7 +356,7 @@ can_nap = TRUE holder_type = /obj/item/holder/cat/crusher -/mob/living/simple_animal/cat/crusher/examine(mob/user) +/mob/living/simple_animal/cat/crusher/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(stat == DEAD) - to_chat(user, "Crusher's dead. How could this have happened? She counted on you!") + . += "Crusher's dead. How could this have happened? She counted on you!" diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 85ddd9b92cf..b665ee447bc 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -311,7 +311,7 @@ to_chat(src, "There is nothing of interest to take.") return 0 -/mob/living/simple_animal/spiderbot/examine(mob/user) +/mob/living/simple_animal/spiderbot/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(src.held_item) to_chat(user, "It is carrying [icon2html(src.held_item, user)] \a [src.held_item].") diff --git a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm index 3e966f0f234..88eac125f88 100644 --- a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm @@ -98,13 +98,13 @@ has_loot = FALSE qdel(src) -/mob/living/simple_animal/hostile/icarus_drone/examine(mob/user) +/mob/living/simple_animal/hostile/icarus_drone/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(malfunctioning) if(hostile_drone) - to_chat(user, SPAN_WARNING("It's completely lit up, and its targetting vanes are deployed.")) + . += SPAN_WARNING("It's completely lit up, and its targetting vanes are deployed.") else - to_chat(user, SPAN_WARNING("Most of its lights are off, and its targetting vanes are retracted.")) + . += SPAN_WARNING("Most of its lights are off, and its targetting vanes are retracted.") /mob/living/simple_animal/hostile/icarus_drone/Allow_Spacemove(var/check_drift = 0) return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/morph.dm b/code/modules/mob/living/simple_animal/hostile/morph.dm index 624cb87c653..73306cf90b5 100644 --- a/code/modules/mob/living/simple_animal/hostile/morph.dm +++ b/code/modules/mob/living/simple_animal/hostile/morph.dm @@ -100,9 +100,7 @@ /mob/living/simple_animal/hostile/morph/examine(mob/user, distance, is_adjacent) if(morphed) - . = form.examine(user) - if(distance <= 2) - to_chat(user, SPAN_WARNING("It doesn't look quite right...")) + return form.examine(user) else return ..() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 514348ffc2f..63d4944a7f5 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -217,15 +217,14 @@ src.client.screen = null ..() -/mob/living/simple_animal/examine(mob/user) - . = ..() - +/mob/living/simple_animal/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() if (stat == DEAD) - to_chat(user, "It looks dead.") + . += "It looks dead." if (health < maxHealth * 0.5) - to_chat(user, "It looks badly wounded.") + . += "It looks badly wounded." else if (health < maxHealth) - to_chat(user, "It looks wounded.") + . += "It looks wounded." /mob/living/simple_animal/can_name(var/mob/living/M) if(named) diff --git a/code/modules/modular_computers/computers/modular_computer/damage.dm b/code/modules/modular_computers/computers/modular_computer/damage.dm index e0b9576937a..c25f162c2d4 100644 --- a/code/modules/modular_computers/computers/modular_computer/damage.dm +++ b/code/modules/modular_computers/computers/modular_computer/damage.dm @@ -1,13 +1,13 @@ -/obj/item/modular_computer/examine(mob/user, distance, is_adjacent) +/obj/item/modular_computer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, FONT_SMALL(SPAN_NOTICE("It contains the following hardware:"))) + . += FONT_SMALL(SPAN_NOTICE("It contains the following hardware:")) for(var/obj/CH in get_all_components()) - to_chat(user, FONT_SMALL(SPAN_NOTICE(" - [capitalize_first_letters(CH.name)]"))) + . += FONT_SMALL(SPAN_NOTICE(" - [capitalize_first_letters(CH.name)]")) if(damage > broken_damage) - to_chat(user, SPAN_DANGER("It is heavily damaged!")) + . += SPAN_DANGER("It is heavily damaged!") else if(damage) - to_chat(user, SPAN_WARNING("It is damaged.")) + . += SPAN_WARNING("It is damaged.") /obj/item/modular_computer/proc/break_apart(msg = TRUE) if(msg) diff --git a/code/modules/modular_computers/hardware/hardware.dm b/code/modules/modular_computers/hardware/hardware.dm index ef391d8dfc0..416acaf775d 100644 --- a/code/modules/modular_computers/hardware/hardware.dm +++ b/code/modules/modular_computers/hardware/hardware.dm @@ -84,14 +84,14 @@ // Good to go. return TRUE -/obj/item/computer_hardware/examine(var/mob/user) +/obj/item/computer_hardware/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(damage > damage_failure) - to_chat(user, SPAN_DANGER("It seems to be severely damaged!")) + . += SPAN_DANGER("It seems to be severely damaged!") else if(damage > damage_malfunction) - to_chat(user, SPAN_WARNING("It seems to be damaged!")) + . += SPAN_WARNING("It seems to be damaged!") else if(damage) - to_chat(user, SPAN_WARNING("It seems to be slightly damaged.")) + . += SPAN_WARNING("It seems to be slightly damaged.") // Damages the component. Contains necessary checks. Negative damage "heals" the component. /obj/item/computer_hardware/proc/take_damage(var/amount) diff --git a/code/modules/multiz/turfs/open_space.dm b/code/modules/multiz/turfs/open_space.dm index e5311834d91..ea81d6880ce 100644 --- a/code/modules/multiz/turfs/open_space.dm +++ b/code/modules/multiz/turfs/open_space.dm @@ -207,13 +207,13 @@ for(var/obj/O in src) O.hide(0) -/turf/simulated/open/examine(mob/user, distance, is_adjacent, infix, suffix) +/turf/simulated/open/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 2) var/depth = 1 for(var/T = GetBelow(src); isopenspace(T); T = GetBelow(T)) depth += 1 - to_chat(user, "It is about [depth] level\s deep.") + . += "It is about [depth] level\s deep." /turf/simulated/open/is_open() diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index 0face7ab338..9c1bf982ece 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -207,12 +207,12 @@ to_chat(brainmob, "You feel slightly disoriented. That's normal when you're just a [initial(src.name)].") callHook("debrain", list(brainmob)) -/obj/item/organ/internal/brain/examine(mob/user) // -- TLE +/obj/item/organ/internal/brain/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(brainmob && brainmob.client)//if thar be a brain inside... the brain. - to_chat(user, "You can feel the small spark of life still left in this one.") + . += "You can feel the small spark of life still left in this one." else - to_chat(user, "This one seems particularly lifeless. Perhaps it will regain some of its luster later..") + . += "This one seems particularly lifeless. Perhaps it will regain some of its luster later.." /obj/item/organ/internal/brain/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/surgery/surgicaldrill)) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 08192ae7af3..4a4917ddf8f 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -211,10 +211,10 @@ INITIALIZE_IMMEDIATE(/obj/item/organ) /obj/item/organ/proc/clear_surge_effects() return -/obj/item/organ/examine(mob/user) +/obj/item/organ/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(status & ORGAN_DEAD) - to_chat(user, "The decay has set in.") + . += "The decay has set in." /obj/item/organ/proc/handle_germ_effects() //** Handle the effects of infections diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 52a8992ad54..1e553d27a06 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -235,14 +235,13 @@ return //no eating the limb until everything's been removed return ..() -/obj/item/organ/external/examine(mob/user, distance, is_adjacent) +/obj/item/organ/external/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) for(var/obj/item/I in contents) if(istype(I, /obj/item/organ)) continue - to_chat(usr, "There is \a [I] sticking out of it.") - return + . += "There is \a [I] sticking out of it." /obj/item/organ/external/attackby(obj/item/W as obj, mob/user as mob) switch(stage) @@ -869,7 +868,7 @@ Note that amputating the affected organ does in fact remove the infection from t return null /obj/item/organ/external/proc/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] soaking through the clothes on their [src]!" + return "[owner.get_pronoun("has")] [blood_type] soaking through the clothes on [owner.get_pronoun("his")] [src]!" //Updating wounds. Handles wound natural I had some free spachealing, internal bleedings and infections /obj/item/organ/external/proc/update_wounds() diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm index 9bc9d0a24df..da0ef48748f 100644 --- a/code/modules/organs/subtypes/machine.dm +++ b/code/modules/organs/subtypes/machine.dm @@ -230,12 +230,12 @@ robotize() . = ..() -/obj/item/organ/internal/ipc_tag/examine(mob/user) +/obj/item/organ/internal/ipc_tag/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("Serial Autogeneration: [auto_generate ? "Yes" : "No"]")) - to_chat(user, SPAN_NOTICE("Serial Number: [serial_number]")) - to_chat(user, SPAN_NOTICE("Ownership Info: [ownership_info]")) - to_chat(user, SPAN_NOTICE("Citizenship Info: [citizenship_info]")) + . += SPAN_NOTICE("Serial Autogeneration: [auto_generate ? "Yes" : "No"]") + . += SPAN_NOTICE("Serial Number: [serial_number]") + . += SPAN_NOTICE("Ownership Info: [ownership_info]") + . += SPAN_NOTICE("Citizenship Info: [citizenship_info]") /obj/item/organ/internal/ipc_tag/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/ipc_tag_scanner)) diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index 1a78b5aa5d0..72c334ad204 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -25,7 +25,7 @@ return UPPER_TORSO /obj/item/organ/external/chest/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] running down their thighs!" + return "[owner.get_pronoun("has")] [blood_type] running down [owner.get_pronoun("his")] thighs!" /obj/item/organ/external/groin name = "lower body" @@ -65,7 +65,7 @@ return UPPER_TORSO /obj/item/organ/external/groin/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] running down their thighs!" + return "[owner.get_pronoun("has")] [blood_type] running down [owner.get_pronoun("his")] thighs!" /obj/item/organ/external/arm limb_name = BP_L_ARM @@ -88,7 +88,7 @@ return ARMS /obj/item/organ/external/arm/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] running down their sleeves!" + return "[owner.get_pronoun("has")] [blood_type] running down [owner.get_pronoun("his")] sleeves!" /obj/item/organ/external/arm/right limb_name = BP_R_ARM @@ -122,7 +122,7 @@ return LEGS /obj/item/organ/external/leg/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] pooling at their feet!" + return "[owner.get_pronoun("has")] [blood_type] pooling at [owner.get_pronoun("his")] feet!" /obj/item/organ/external/leg/right limb_name = BP_R_LEG @@ -153,7 +153,7 @@ return LEGS /obj/item/organ/external/foot/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] pooling at their feet!" + return "[owner.get_pronoun("has")] [blood_type] pooling at [owner.get_pronoun("his")] feet!" /obj/item/organ/external/foot/removed() if(owner) @@ -190,7 +190,7 @@ return ARMS /obj/item/organ/external/hand/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] running down their sleeves!" + return "[owner.get_pronoun("has")] [blood_type] running down [owner.get_pronoun("his")] sleeves!" /obj/item/organ/external/hand/take_damage(brute, burn, damage_flags, used_weapon, list/forbidden_limbs, silent) . = ..() @@ -237,7 +237,7 @@ return HEAD /obj/item/organ/external/head/covered_bleed_report(var/blood_type) - return "[owner.get_pronoun("has")] [blood_type] running down their neck!" + return "[owner.get_pronoun("has")] [blood_type] running down [owner.get_pronoun("his")] neck!" /obj/item/organ/external/head/removed() if(owner) diff --git a/code/modules/organs/subtypes/vaurca.dm b/code/modules/organs/subtypes/vaurca.dm index 1a23ea9dedc..59bc730e16e 100644 --- a/code/modules/organs/subtypes/vaurca.dm +++ b/code/modules/organs/subtypes/vaurca.dm @@ -337,7 +337,7 @@ return ..() -/obj/item/organ/internal/vaurca/preserve/examine(mob/user, distance, is_adjacent) +/obj/item/organ/internal/vaurca/preserve/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) var/celsius_temperature = air_contents.temperature - T0C @@ -355,7 +355,7 @@ descriptive = "room temperature" else descriptive = "cold" - to_chat(user, "\The [src] feels [descriptive].") + . += "\The [src] feels [descriptive]." /obj/item/organ/internal/vaurca/preserve/attackby(obj/item/W as obj, mob/user as mob) ..() diff --git a/code/modules/overmap/contacts/tracker.dm b/code/modules/overmap/contacts/tracker.dm index 05dc5634172..45a933431b5 100644 --- a/code/modules/overmap/contacts/tracker.dm +++ b/code/modules/overmap/contacts/tracker.dm @@ -18,6 +18,6 @@ /obj/item/ship_tracker/proc/on_update_icon() icon_state = enabled ? "enabled" : "disabled" -/obj/item/ship_tracker/examine(var/mob/user) +/obj/item/ship_tracker/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It appears to be [enabled ? "enabled" : "disabled"]") + . += "It appears to be [enabled ? "enabled" : "disabled"]" diff --git a/code/modules/overmap/exoplanets/decor/objs/pit.dm b/code/modules/overmap/exoplanets/decor/objs/pit.dm index b0235222eb5..b5a42fd43b6 100644 --- a/code/modules/overmap/exoplanets/decor/objs/pit.dm +++ b/code/modules/overmap/exoplanets/decor/objs/pit.dm @@ -163,9 +163,9 @@ /obj/structure/gravemarker/cross icon_state = "cross" -/obj/structure/gravemarker/examine(mob/user) +/obj/structure/gravemarker/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It says: '[message]'") + . += "It says: '[message]'." /obj/structure/gravemarker/random/Initialize() generate() diff --git a/code/modules/overmap/ship_weaponry/_ship_ammunition.dm b/code/modules/overmap/ship_weaponry/_ship_ammunition.dm index ba41c63ea6f..9b9592eed78 100644 --- a/code/modules/overmap/ship_weaponry/_ship_ammunition.dm +++ b/code/modules/overmap/ship_weaponry/_ship_ammunition.dm @@ -53,13 +53,13 @@ return return ..() -/obj/item/ship_ammunition/examine(mob/user, distance, is_adjacent) +/obj/item/ship_ammunition/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(written_message) if(distance > 3) - to_chat(user, "It has something written on it, but you'd need to get closer to tell what the writing says.") + . += "It has something written on it, but you'd need to get closer to tell what the writing says." else - to_chat(user, "It has a message written on the casing: [written_message]") + . += "It has a message written on the casing: [written_message]." /obj/item/ship_ammunition/do_additional_pickup_checks(var/mob/user) if(ammunition_flags & SHIP_AMMO_FLAG_VERY_HEAVY) diff --git a/code/modules/overmap/ship_weaponry/_ship_gun.dm b/code/modules/overmap/ship_weaponry/_ship_gun.dm index 762c8684489..e4127af9109 100644 --- a/code/modules/overmap/ship_weaponry/_ship_gun.dm +++ b/code/modules/overmap/ship_weaponry/_ship_gun.dm @@ -88,9 +88,9 @@ else //At roundstart, weapons start with 0 damage, so it'd be 0 / 1000 * 100 -> 0 return "It looks to be in tip top shape and not damaged at all." -/obj/machinery/ship_weapon/examine(mob/user) +/obj/machinery/ship_weapon/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, get_damage_description()) + . += get_damage_description() /obj/machinery/ship_weapon/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/device/multitool)) diff --git a/code/modules/overmap/ships/computers/sensors.dm b/code/modules/overmap/ships/computers/sensors.dm index 8a04db4fedf..434218447af 100644 --- a/code/modules/overmap/ships/computers/sensors.dm +++ b/code/modules/overmap/ships/computers/sensors.dm @@ -468,16 +468,16 @@ if(heat_percentage > 85) add_overlay("sensors-effect-hot") -/obj/machinery/shipsensors/examine(mob/user) +/obj/machinery/shipsensors/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(health <= 0) - to_chat(user, "\The [src] is wrecked.") + . += "\The [src] is wrecked." else if(health < max_health * 0.25) - to_chat(user, "\The [src] looks like it's about to break!") + . += "\The [src] looks like it's about to break!" else if(health < max_health * 0.5) - to_chat(user, "\The [src] looks seriously damaged!") + . += "\The [src] looks seriously damaged!" else if(health < max_health * 0.75) - to_chat(user, "\The [src] shows signs of damage!") + . += "\The [src] shows signs of damage!" /obj/machinery/shipsensors/bullet_act(var/obj/item/projectile/Proj) take_damage(Proj.get_structure_damage()) diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 192750cd5dc..5199a2886ee 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -165,9 +165,9 @@ else icon_state = "envelope[contents.len > 0]" -/obj/item/folder/envelope/examine(mob/user) +/obj/item/folder/envelope/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "The seal is [sealed ? "intact" : "broken"].") + . += "The seal is [sealed ? "intact" : "broken"]." /obj/item/folder/envelope/proc/sealcheck(user) var/ripperoni = alert("Are you sure you want to break the seal on \the [src]?", "Confirmation","Yes", "No") diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 64dd29241aa..5ebb6498a82 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -100,17 +100,17 @@ if(new_text) free_space -= length(strip_html_properly(new_text)) -/obj/item/paper/examine(mob/user, distance, is_adjacent) +/obj/item/paper/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (old_name && (icon_state == "paper_plane" || icon_state == "paper_swan")) - to_chat(user, SPAN_NOTICE("You're going to have to unfold it before you can read it.")) + . += SPAN_NOTICE("You're going to have to unfold it before you can read it.") return if(name != initial(name)) - to_chat(user,"It's titled '[name]'.") + . += "It's titled '[name]'." if(distance <= 1) show_content(user) else - to_chat(user, SPAN_NOTICE("You have to go closer if you want to read it.")) + . += SPAN_NOTICE("You have to go closer if you want to read it.") /obj/item/paper/proc/show_content(mob/user, forceshow) simple_asset_ensure_is_sent(user, /datum/asset/simple/paper) diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index e2206af6341..4f8c1cb8f6f 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -91,13 +91,12 @@ else to_chat(user, "You must hold \the [P] steady to burn \the [src].") -/obj/item/paper_bundle/examine(mob/user, distance, is_adjacent) +/obj/item/paper_bundle/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) src.show_content(user) else - to_chat(user, "It is too far away.") - return + . += "It is too far away." /obj/item/paper_bundle/proc/show_content(mob/user as mob) var/dat diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 51ff8daffaf..a375bc6aca2 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -84,22 +84,14 @@ to_chat(user, "You put [i] in [src].") papers.Add(i) amount++ - /* if(istype(O, /obj/item/paper_pack)) WIP written in. - var/obj/item/paper_bundle/j = O - amount += j.amount - to_chat(user, "You add paper from [j] into [src].") - user.drop_from_inventory(j,get_turf(src)) - qdel(j) - */ - -/obj/item/paper_bin/examine(mob/user, distance, is_adjacent) +/obj/item/paper_bin/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(amount) - to_chat(user, "There " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin.") + . += "There " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin." else - to_chat(user, "There are no papers in the bin.") + . += "There are no papers in the bin." /obj/item/paper_bin/update_icon() diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 7c04e268a6e..89193a6354a 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -58,14 +58,13 @@ var/global/photo_count = 0 scribble = txt ..() -/obj/item/photo/examine(mob/user, distance, is_adjacent) +/obj/item/photo/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) show(user) - to_chat(user, "[picture_desc]") + . += "[picture_desc]" else - to_chat(user, "You are too far away to discern its contents.") - + . += "You are too far away to discern its contents." /obj/item/photo/proc/show(mob/user as mob) send_rsc(user, img, "tmp_photo_[id].png") @@ -150,10 +149,10 @@ var/global/photo_count = 0 var/icon_off = "camera_off" var/size = 3 -/obj/item/device/camera/examine(mob/user, distance, is_adjacent) +/obj/item/device/camera/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, SPAN_NOTICE("It has [pictures_left] photos left.")) + . += SPAN_NOTICE("It has [pictures_left] photos left.") /obj/item/device/camera/verb/change_size() set name = "Set Photo Focus" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index c22a7e3f4b2..e5d38475d88 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -535,29 +535,29 @@ if (!mapload) addtimer(CALLBACK(src, PROC_REF(update)), 5, TIMER_UNIQUE) -/obj/machinery/power/apc/examine(mob/user, distance, is_adjacent) +/obj/machinery/power/apc/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) if(stat & BROKEN) - to_chat(user, "Looks broken.") + . += SPAN_WARNING("It looks broken.") return if(opened) if(has_electronics && terminal) - to_chat(user, "The cover is [opened==COVER_REMOVED?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"].") + . += "The cover is [opened==COVER_REMOVED?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]." else if (has_electronics == HAS_ELECTRONICS_NONE && terminal) - to_chat(user, "There are some wires but not any electronics.") + . += "There are some wires but not any electronics." else if (has_electronics != HAS_ELECTRONICS_NONE && !terminal) - to_chat(user, "Electronics are installed but not wired.") + . += "Electronics are installed but not wired." else /* if (has_electronics == HAS_ELECTRONICS_NONE && !terminal) */ - to_chat(user, "There are no electronics nor connected wires.") + . += "There are no electronics nor connected wires." else if (stat & MAINT) - to_chat(user, "The cover is closed. Something wrong with it: it doesn't work.") + . += SPAN_WARNING("The cover is closed. Something wrong with it: it doesn't work.") else if (hacker) - to_chat(user, "The cover is locked.") + . += "The cover is locked." else - to_chat(user, "The cover is closed.") + . += "The cover is closed." // update the APC icon to show the three base states diff --git a/code/modules/power/breaker_box.dm b/code/modules/power/breaker_box.dm index 0feeaa2cc8c..02700629b7f 100644 --- a/code/modules/power/breaker_box.dm +++ b/code/modules/power/breaker_box.dm @@ -40,12 +40,12 @@ /obj/machinery/power/breakerbox/activated/LateInitialize() set_state(1) -/obj/machinery/power/breakerbox/examine(mob/user) +/obj/machinery/power/breakerbox/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(on) - to_chat(user, SPAN_GOOD("It seems to be online.")) + . += SPAN_GOOD("It seems to be online.") else - to_chat(user, SPAN_BAD("It seems to be offline.")) + . += SPAN_BAD("It seems to be offline.") /obj/machinery/power/breakerbox/attack_ai(mob/user) if(!ai_can_interact(user)) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index c501b7ae042..d78f3ec7057 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -657,12 +657,12 @@ By design, d1 is the smallest direction and d2 is the highest w_class = ITEMSIZE_SMALL slot_flags = SLOT_BELT -/obj/item/stack/cable_coil/examine(mob/user) +/obj/item/stack/cable_coil/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!uses_charge) - to_chat(user, "There [src.amount == 1 ? "is" : "are"] [src.amount] [src.singular_name]\s of cable in the coil.") + . += "There [src.amount == 1 ? "is" : "are"] [src.amount] [src.singular_name]\s of cable in the coil." else - to_chat(user, "You have enough charge to produce [get_amount()].") + . += "You have enough charge to produce [get_amount()]." /obj/item/stack/cable_coil/verb/make_restraint() set name = "Make Cable Restraints" diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index a15af386222..a92ad7d55f7 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -81,16 +81,18 @@ return amount_used -/obj/item/cell/examine(mob/user, distance, is_adjacent) +/obj/item/cell/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - if(distance > 1) return if(maxcharge <= 2500) - to_chat(user, "[desc]\nThe manufacturer's label states this cell has a power rating of [maxcharge]J, and that you should not swallow it.\nThe charge meter reads [round(src.percent() )]%.") + . += "[desc]" + . += "The manufacturer's label states this cell has a power rating of [maxcharge]J, and that you should not swallow it." + . += "The charge meter reads [round(src.percent() )]%." else - to_chat(user, "This power cell has an exciting chrome finish, as it is an uber-capacity cell type! It has a power rating of [maxcharge]J!\nThe charge meter reads [round(src.percent() )]%.") + . += "This power cell has an exciting chrome finish, as it is an uber-capacity cell type! It has a power rating of [maxcharge]J!" + . += "The charge meter reads [round(src.percent() )]%." /obj/item/cell/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/reagent_containers/syringe)) diff --git a/code/modules/power/lights/construction.dm b/code/modules/power/lights/construction.dm index 6ff19a67afa..b488fc3616f 100644 --- a/code/modules/power/lights/construction.dm +++ b/code/modules/power/lights/construction.dm @@ -28,24 +28,24 @@ QDEL_NULL(cell) return ..() -/obj/machinery/light_construct/examine(mob/user, distance, is_adjacent) +/obj/machinery/light_construct/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) switch(stage) if(1) - to_chat(user, SPAN_NOTICE("It's an empty frame.")) + . += SPAN_NOTICE("It's an empty frame.") if(2) - to_chat(user, SPAN_NOTICE("It's wired.")) + . += SPAN_NOTICE("It's wired.") if(3) - to_chat(user, SPAN_NOTICE("The casing is closed.")) + . += SPAN_NOTICE("The casing is closed.") if (cell_connectors) if (cell) - to_chat(user, SPAN_NOTICE("You see [cell] inside the casing.")) + . += SPAN_NOTICE("You see [cell] inside the casing.") else - to_chat(user, SPAN_NOTICE("The casing has no power cell installed.")) + . += SPAN_NOTICE("The casing has no power cell installed.") else - to_chat(user, SPAN_WARNING("This casing doesn't support a backup power cell.")) + . += SPAN_WARNING("This casing doesn't support a backup power cell.") /obj/machinery/light_construct/attackby(obj/item/W, mob/living/user) add_fingerprint(user) diff --git a/code/modules/power/lights/fixtures.dm b/code/modules/power/lights/fixtures.dm index b911f8e60c6..50d56249d70 100644 --- a/code/modules/power/lights/fixtures.dm +++ b/code/modules/power/lights/fixtures.dm @@ -383,19 +383,19 @@ return TRUE // examine verb -/obj/machinery/light/examine(mob/user) +/obj/machinery/light/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(status) if(LIGHT_OK) - to_chat(user, "It is turned [!(stat & POWEROFF) ? "on" : "off"].") + . += "It is turned [!(stat & POWEROFF) ? "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, "The charge meter reads [round((cell.charge / cell.maxcharge) * 100, 0.1)]%.") + . += "The charge meter reads [round((cell.charge / cell.maxcharge) * 100, 0.1)]%." // attack with item - insert light (if right type), otherwise try to break the light diff --git a/code/modules/power/portgen.dm b/code/modules/power/portgen.dm index 661a8e80e74..91c27252fda 100644 --- a/code/modules/power/portgen.dm +++ b/code/modules/power/portgen.dm @@ -66,13 +66,13 @@ icon_state = "[base_icon]_[active]" return ..() -/obj/machinery/power/portgen/examine(mob/user, distance, is_adjacent) +/obj/machinery/power/portgen/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(active) - to_chat(user, SPAN_NOTICE("The generator is on.")) + . += SPAN_NOTICE("The generator is on.") else - to_chat(user, SPAN_NOTICE("The generator is off.")) + . += SPAN_NOTICE("The generator is off.") /obj/machinery/power/portgen/emp_act(severity) . = ..() @@ -159,12 +159,14 @@ power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2)) -/obj/machinery/power/portgen/basic/examine(mob/user, distance, is_adjacent) +/obj/machinery/power/portgen/basic/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "\The [src] appears to be producing [power_gen*power_output] W.") - to_chat(user, "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper.") - if(IsBroken()) to_chat(user, SPAN_WARNING("\The [src] seems to have broken down.")) - if(overheating) to_chat(user, SPAN_DANGER("\The [src] is overheating!")) + . += "\The [src] appears to be producing [power_gen*power_output] W." + . += "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper." + if(IsBroken()) + . += SPAN_WARNING("\The [src] seems to have broken down.") + if(overheating) + . += SPAN_DANGER("\The [src] is overheating!") /obj/machinery/power/portgen/basic/HasFuel() var/needed_sheets = power_output / time_per_sheet @@ -489,9 +491,9 @@ create_reagents(coolant_volume) ..() -/obj/machinery/power/portgen/basic/fusion/examine(mob/user, distance, is_adjacent) +/obj/machinery/power/portgen/basic/fusion/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "The auxilary tank shows [reagents.total_volume]u of liquid in it.") + . += "The auxilary tank shows [reagents.total_volume]u of liquid in it." /obj/machinery/power/portgen/basic/fusion/UseFuel() if(reagents.has_reagent(coolant_reagent)) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 118e388d16b..f94cd86ce76 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -35,17 +35,17 @@ var/datum/effect_system/sparks/spark_system -/obj/machinery/power/emitter/examine(mob/user, distance, is_adjacent) +/obj/machinery/power/emitter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(state) if(EMITTER_LOOSE) - to_chat(user, SPAN_NOTICE("\The [src] isn't attached to anything and is not ready to fire.")) + . += SPAN_NOTICE("\The [src] isn't attached to anything and is not ready to fire.") if(EMITTER_BOLTED) - to_chat(user, SPAN_NOTICE("\The [src] is bolted to the floor, but not yet ready to fire.")) + . += SPAN_NOTICE("\The [src] is bolted to the floor, but not yet ready to fire.") if(EMITTER_WELDED) - to_chat(user, SPAN_WARNING("\The [src] is bolted and welded to the floor, and ready to fire.")) + . += SPAN_WARNING("\The [src] is bolted and welded to the floor, and ready to fire.") if(is_adjacent) - to_chat(user, SPAN_NOTICE("The shot counter display reads: [shot_counter]")) + . += SPAN_NOTICE("The shot counter display reads: [shot_counter] shots.") /obj/machinery/power/emitter/Destroy() if(special_emitter) diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index 59ce087c689..5c50cab0ca3 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -83,20 +83,17 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin icon_state = "end_cap" reference = "end_cap" -/obj/structure/particle_accelerator/examine(mob/user) +/obj/structure/particle_accelerator/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() switch(construction_state) if(0) - desc = "[initial(desc)] Looks like it's not attached to the flooring." + . += "Looks like it's not attached to the flooring." if(1) - desc = "[initial(desc)] It's missing some cables." + . += "It's missing some cables." if(2) - desc = "[initial(desc)] The panel is open." + . += "The panel is open." if(3) - desc = "[initial(desc)] It seems completely assembled." - if(powered) - desc = initial(desc) - . = ..() - return + . += "It seems completely assembled." /obj/structure/particle_accelerator/attackby(obj/item/W, mob/user) if(istool(W)) @@ -237,21 +234,17 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin /obj/machinery/particle_accelerator/update_icon() return -/obj/machinery/particle_accelerator/examine(mob/user) +/obj/machinery/particle_accelerator/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() switch(construction_state) if(0) - desc = "[initial(desc)] Looks like it's not attached to the flooring." + . += "Looks like it's not attached to the flooring." if(1) - desc = "[initial(desc)] It's missing some cables." + . += "It's missing some cables." if(2) - desc = "[initial(desc)] The panel is open." + . += "The panel is open." if(3) - desc = "[initial(desc)] It seems completely assembled." - if(powered) - desc = initial(desc) - . = ..() - return - + . += "It seems completely assembled." /obj/machinery/particle_accelerator/attackby(obj/item/W, mob/user) if(istool(W)) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index a843c17e2d4..25549421162 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -123,17 +123,17 @@ if(!should_be_mapped) warning("Non-buildable or Non-magical SMES at [src.x]X [src.y]Y [src.z]Z") -/obj/machinery/power/smes/examine(mob/user) +/obj/machinery/power/smes/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_badly_damaged()) - to_chat(user, SPAN_DANGER("\The [src] is damaged to the point of non-function!")) + . += SPAN_DANGER("\The [src] is damaged to the point of non-function!") if(open_hatch) - to_chat(user, SPAN_SUBTLE("The maintenance hatch is open.")) + . += SPAN_SUBTLE("The maintenance hatch is open.") if (max_coils > 1 && Adjacent(user)) var/list/coils = list() for(var/obj/item/smes_coil/C in component_parts) coils += C - to_chat(user, "The [max_coils] coil slots contain: [counting_english_list(coils)]") + . += "The [max_coils] coil slots contain: [counting_english_list(coils)]." /obj/machinery/power/smes/proc/can_function() if(is_badly_damaged()) diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index 98bf160cb8e..65177393f69 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -15,14 +15,12 @@ var/ChargeCapacity = 5000000 var/IOCapacity = 250000 -/obj/item/smes_coil/examine(mob/user, distance, is_adjacent) +/obj/item/smes_coil/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, "The label reads:\ -
    Only certified professionals are allowed to handle and install this component.
    \ - Charge capacity: [ChargeCapacity/1000000] MJ
    \ - Input/Output rating: [IOCapacity/1000] kW
    ", - trailing_newline = FALSE) + . += "The label reads: Only certified professionals are allowed to handle and install this component." + . += "Charge capacity: [ChargeCapacity/1000000] MJ." + . += "Input/Output rating: [IOCapacity/1000] kW." // 20% Charge Capacity, 60% I/O Capacity. Used for substation/outpost SMESs. /obj/item/smes_coil/weak diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 833145bf378..2199e1077f2 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -69,10 +69,10 @@ else ..() -/obj/singularity/energy_ball/examine(mob/user) +/obj/singularity/energy_ball/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(orbiting_balls.len) - to_chat(user, "There are [orbiting_balls.len] energy balls orbiting \the [src].") + . += "There are [orbiting_balls.len] energy balls orbiting \the [src]." /obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 91da77cfec4..69177bc1a33 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -78,10 +78,10 @@ if(spent_icon && !BB) icon_state = spent_icon -/obj/item/ammo_casing/examine(mob/user) +/obj/item/ammo_casing/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (!BB) - to_chat(user, "This one is spent.") + . += "This one is spent." //Gun loading types #define SINGLE_CASING 1 //The gun only accepts ammo_casings. ammo_magazines should never have this as their mag_type. @@ -181,9 +181,9 @@ else recyclable = FALSE -/obj/item/ammo_magazine/examine(mob/user) +/obj/item/ammo_magazine/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "There [(stored_ammo.len == 1)? "is" : "are"] [stored_ammo.len] round\s left!") + . += "There [(stored_ammo.len == 1)? "is" : "are"] [stored_ammo.len] round\s left!" //magazine icon state caching (caching lists are in SSicon_cache) diff --git a/code/modules/projectiles/ammunition/ammo_pile.dm b/code/modules/projectiles/ammunition/ammo_pile.dm index 9f1f0423fa2..8c09c4a4c50 100644 --- a/code/modules/projectiles/ammunition/ammo_pile.dm +++ b/code/modules/projectiles/ammunition/ammo_pile.dm @@ -27,10 +27,10 @@ add_ammo(C) addtimer(CALLBACK(src, PROC_REF(check_ammo)), 5) // if we don't have any ammo in 5 deciseconds, we're an empty pile, which is worthless, so self-delete -/obj/item/ammo_pile/examine(mob/user, distance, is_adjacent) +/obj/item/ammo_pile/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, SPAN_NOTICE("It contains [length(ammo)] rounds.")) + . += SPAN_NOTICE("It contains [length(ammo)] rounds.") /obj/item/ammo_pile/attack() return diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 27162d0b987..af9d8a23d5d 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -664,24 +664,23 @@ suppressor = null update_icon() -/obj/item/gun/examine(mob/user, distance, is_adjacent) +/obj/item/gun/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 1) return if(markings) - to_chat(user, SPAN_NOTICE("It has [markings] [markings == 1 ? "notch" : "notches"] carved into the stock.")) + . += SPAN_NOTICE("It has [markings] [markings == 1 ? "notch" : "notches"] carved into the stock.") if(needspin) if(pin) - to_chat(user, "\The [pin] is installed in the trigger mechanism.") + . += "\The [pin] is installed in the trigger mechanism." pin.examine_info(user) // Allows people to check the current firemode of their wireless-control firing pin. Returns nothing if there's no wireless-control firing pin. 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." if(firemodes.len > 1) var/datum/firemode/current_mode = firemodes[sel_mode] - to_chat(user, "The fire selector is set to [current_mode.name].") + . += "The fire selector is set to [current_mode.name]." if(has_safety) - to_chat(user, "The safety is [safety() ? "on" : "off"].") - return TRUE + . += "The safety is [safety() ? "on" : "off"]." /obj/item/gun/proc/switch_firemodes() if(!firemodes.len) diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index b7dabf58483..fb8b22c4d8e 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -34,11 +34,11 @@ if (spikes < max_spikes) addtimer(CALLBACK(src, PROC_REF(regen_spike)), spike_gen_time, TIMER_UNIQUE) -/obj/item/gun/launcher/spikethrower/examine(mob/user, distance, is_adjacent) +/obj/item/gun/launcher/spikethrower/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 1) return - to_chat(user, "It has [spikes] spike\s remaining.") + . += "It has [spikes] spike\s remaining." /obj/item/gun/launcher/spikethrower/update_icon() icon_state = "spikethrower[spikes]" diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 49d2c6989ae..fe76d1036e3 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -227,13 +227,12 @@ if(recharger) disconnect() -/obj/item/gun/energy/examine(mob/user, distance, is_adjacent) +/obj/item/gun/energy/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 1) return var/shots_remaining = round(power_supply.charge / charge_cost) - to_chat(user, "Has [shots_remaining] shot\s remaining.") - return + . += "It has [shots_remaining] shot\s remaining." /obj/item/gun/energy/update_icon() if(charge_meter && power_supply && power_supply.maxcharge) diff --git a/code/modules/projectiles/guns/energy/mining.dm b/code/modules/projectiles/guns/energy/mining.dm index a9181445189..e71da06513b 100644 --- a/code/modules/projectiles/guns/energy/mining.dm +++ b/code/modules/projectiles/guns/energy/mining.dm @@ -21,13 +21,13 @@ charge_cost = 666.66 // 15 shots on a high cap cell needspin = FALSE -/obj/item/gun/energy/plasmacutter/examine(mob/user, distance, is_adjacent) +/obj/item/gun/energy/plasmacutter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) if(power_supply) - to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a [capitalize_first_letters(power_supply.name)] installed as its power supply."))) + . += FONT_SMALL(SPAN_NOTICE("It has a [capitalize_first_letters(power_supply.name)] installed as its power supply.")) else - to_chat(user, FONT_SMALL(SPAN_WARNING("It has no power supply installed."))) + . += FONT_SMALL(SPAN_WARNING("It has no power supply installed.")) /obj/item/gun/energy/plasmacutter/attackby(obj/item/I, mob/user) if(I.isscrewdriver()) diff --git a/code/modules/projectiles/guns/energy/modular.dm b/code/modules/projectiles/guns/energy/modular.dm index bc616d9d0e4..c9526d2896d 100644 --- a/code/modules/projectiles/guns/energy/modular.dm +++ b/code/modules/projectiles/guns/energy/modular.dm @@ -30,19 +30,19 @@ var/named = 0 var/described = 0 -/obj/item/gun/energy/laser/prototype/examine(mob/user, distance, is_adjacent) - . = ..(user) +/obj/item/gun/energy/laser/prototype/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() if(distance > 1) return if(gun_mods.len) for(var/obj/item/laser_components/modifier/modifier in gun_mods) - to_chat(user, "You can see \the [modifier] attached.") + . += "You can see \a [modifier] attached." if(capacitor) - to_chat(user, "You can see \the [capacitor] attached.") + . += "You can see \a [capacitor] attached." if(focusing_lens) - to_chat(user, "You can see \the [focusing_lens] attached.") + . += "You can see \a [focusing_lens] attached." if(modulator) - to_chat(user, "You can see \the [modulator] attached.") + . += "You can see \a [modulator] attached." /obj/item/gun/energy/laser/prototype/attackby(var/obj/item/D, var/mob/user) if(!D.isscrewdriver()) diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm index ccd05de5912..46f651e9747 100644 --- a/code/modules/projectiles/guns/launcher/crossbow.dm +++ b/code/modules/projectiles/guns/launcher/crossbow.dm @@ -219,14 +219,19 @@ /obj/item/crossbowframe/update_icon() icon_state = "crossbowframe[buildstate]" -/obj/item/crossbowframe/examine(mob/user) +/obj/item/crossbowframe/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(buildstate) - if(1) to_chat(user, "It has a loose rod frame in place.") - if(2) to_chat(user, "It has a steel backbone welded in place.") - if(3) to_chat(user, "It has a steel backbone and a cell mount installed.") - if(4) to_chat(user, "It has a steel backbone, plastic limbs and a cell mount installed.") - if(5) to_chat(user, "It has a steel cable loosely strung across the limbs.") + if(1) + . += "It has a loose rod frame in place." + if(2) + . += "It has a steel backbone welded in place." + if(3) + . += "It has a steel backbone and a cell mount installed." + if(4) + . += "It has a steel backbone, plastic limbs and a cell mount installed." + if(5) + . += "It has a steel cable loosely strung across the limbs." /obj/item/crossbowframe/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/stack/rods)) @@ -368,6 +373,6 @@ else icon_state = "rxb" -/obj/item/gun/launcher/crossbow/RFD/examine(var/user) +/obj/item/gun/launcher/crossbow/RFD/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It currently holds [stored_matter]/[max_stored_matter] matter-units.") + . += "It currently holds [stored_matter]/[max_stored_matter] matter-units." diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm index 573db9d3e55..b64dd1b60ab 100644 --- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm @@ -43,12 +43,12 @@ to_chat(M, SPAN_WARNING("You pump [src], but the magazine is empty.")) update_icon() -/obj/item/gun/launcher/grenade/examine(mob/user, distance, is_adjacent) +/obj/item/gun/launcher/grenade/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, SPAN_NOTICE("It has [get_ammo()] grenade\s remaining.")) + . += SPAN_NOTICE("It has [get_ammo()] grenade\s remaining.") if(chambered) - to_chat(user, SPAN_NOTICE("\A [chambered] is chambered.")) + . += SPAN_NOTICE("\A [chambered] is chambered.") /obj/item/gun/launcher/grenade/proc/load(obj/item/grenade/G, mob/user) if(!can_load_grenade_type(G, user)) diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index f8d75e70405..0595b0635e8 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -100,15 +100,15 @@ item_storage.remove_from_storage(launched, src) return launched -/obj/item/gun/launcher/pneumatic/examine(mob/user, distance, is_adjacent) +/obj/item/gun/launcher/pneumatic/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 2) return - to_chat(user, "The valve is dialed to [pressure_setting]%.") + . += "The valve is dialed to [pressure_setting]%." if(tank) - to_chat(user, "The tank dial reads [tank.air_contents.return_pressure()] kPa.") + . += "The tank dial reads [tank.air_contents.return_pressure()] kPa." else - to_chat(user, "Nothing is attached to the tank valve!") + . += "Nothing is attached to the tank valve!" /obj/item/gun/launcher/pneumatic/update_release_force(obj/item/projectile) if(tank) @@ -152,14 +152,19 @@ /obj/item/cannonframe/update_icon() icon_state = "pneumatic[buildstate]" -/obj/item/cannonframe/examine(mob/user) +/obj/item/cannonframe/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(buildstate) - if(1) to_chat(user, "It has a pipe segment installed.") - if(2) to_chat(user, "It has a pipe segment welded in place.") - if(3) to_chat(user, "It has an outer chassis installed.") - if(4) to_chat(user, "It has an outer chassis welded in place.") - if(5) to_chat(user, "It has a transfer valve installed.") + if(1) + . += "It has a pipe segment installed." + if(2) + . += "It has a pipe segment welded in place." + if(3) + . += "It has an outer chassis installed." + if(4) + . += "It has an outer chassis welded in place." + if(5) + . += "It has a transfer valve installed." /obj/item/cannonframe/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/pipe)) diff --git a/code/modules/projectiles/guns/launcher/rocket.dm b/code/modules/projectiles/guns/launcher/rocket.dm index 3fbfba325e6..ee1337a185f 100644 --- a/code/modules/projectiles/guns/launcher/rocket.dm +++ b/code/modules/projectiles/guns/launcher/rocket.dm @@ -19,10 +19,10 @@ var/max_rockets = 1 var/list/rockets = new/list() -/obj/item/gun/launcher/rocket/examine(mob/user, distance, is_adjacent) +/obj/item/gun/launcher/rocket/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, "[rockets.len] / [max_rockets] rockets.") + . += "[rockets.len] / [max_rockets] rockets." /obj/item/gun/launcher/rocket/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/ammo_casing/rocket)) diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index aeadfe86562..b9b03f009b5 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -288,17 +288,17 @@ ammo_magazine = null update_icon() //make sure to do this after unsetting ammo_magazine -/obj/item/gun/projectile/examine(mob/user, distance, is_adjacent) +/obj/item/gun/projectile/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 1) return if(jam_num) - to_chat(user, "It looks jammed.") + . += "It looks jammed." if(ammo_magazine) - to_chat(user, "It has \a [ammo_magazine] loaded.") + . += "It has \a [ammo_magazine] loaded." if(suppressed) - to_chat(user, "It has a suppressor attached.") - to_chat(user, "Has [get_ammo()] round\s remaining.") + . += "It has a suppressor attached." + . += "Has [get_ammo()] round\s remaining." return /obj/item/gun/projectile/get_ammo() diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index a1918fae771..84571edf7a1 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -404,12 +404,12 @@ else icon_state = "carbine-empty" -/obj/item/gun/projectile/automatic/rifle/z8/examine(mob/user) +/obj/item/gun/projectile/automatic/rifle/z8/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(launcher.chambered) - to_chat(user, "\The [launcher] has \a [launcher.chambered] loaded.") + . += "\The [launcher] has \a [launcher.chambered] loaded." else - to_chat(user, "\The [launcher] is empty.") + . += "\The [launcher] is empty." /obj/item/gun/projectile/automatic/rifle/jingya name = "burst rifle" diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm index 63aec77f817..16714d2d1fd 100644 --- a/code/modules/projectiles/guns/projectile/dartgun.dm +++ b/code/modules/projectiles/guns/projectile/dartgun.dm @@ -97,14 +97,14 @@ if(istype(dart)) fill_dart(dart) -/obj/item/gun/projectile/dartgun/examine(mob/user) +/obj/item/gun/projectile/dartgun/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (beakers.len) - to_chat(user, "[src] contains:") + . += "[src] contains:" for(var/obj/item/reagent_containers/glass/beaker/B in beakers) for(var/_R in B.reagents.reagent_volumes) var/singleton/reagent/R = GET_SINGLETON(_R) - to_chat(user, "[B.reagents.reagent_volumes[_R]] units of [R.name]") + . += "[B.reagents.reagent_volumes[_R]] units of [R.name]" /obj/item/gun/projectile/dartgun/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/reagent_containers/glass)) diff --git a/code/modules/projectiles/guns/projectile/improvised.dm b/code/modules/projectiles/guns/projectile/improvised.dm index 6848b174e18..9e296bcda5b 100644 --- a/code/modules/projectiles/guns/projectile/improvised.dm +++ b/code/modules/projectiles/guns/projectile/improvised.dm @@ -52,14 +52,19 @@ else ..() -/obj/item/gun/projectile/shotgun/improvised/examine(mob/user) +/obj/item/gun/projectile/shotgun/improvised/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(fail_chance) - if(1) to_chat(user, "All craftsmanship is of the highest quality.") - if(2 to 25) to_chat(user, "All craftsmanship is of high quality.") - if(26 to 50) to_chat(user, "All craftsmanship is of average quality.") - if(51 to 75) to_chat(user, "All craftsmanship is of low quality.") - if(100) to_chat(user, "All craftsmanship is of the lowest quality.") + if(1) + . += "All craftsmanship is of the highest quality." + if(2 to 25) + . += "All craftsmanship is of high quality." + if(26 to 50) + . += "All craftsmanship is of average quality." + if(51 to 75) + . += "All craftsmanship is of low quality." + if(100) + . += "All craftsmanship is of the lowest quality." /obj/item/gun/projectile/shotgun/improvised/sawn name = "sawn-off improvised shotgun" @@ -89,12 +94,15 @@ /obj/item/receivergun/update_icon() icon_state = "ishotgun[buildstate]" -/obj/item/receivergun/examine(mob/user) +/obj/item/receivergun/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(buildstate) - if(1) to_chat(user, "It has a pipe segment installed.") - if(2) to_chat(user, "It has a stock installed.") - if(3) to_chat(user, "Its pieces are held together by tape roll.") + if(1) + . += "It has a pipe segment installed." + if(2) + . += "It has a stock installed." + if(3) + . += "Its pieces are held together by tape roll." /obj/item/receivergun/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/pipe)) @@ -155,24 +163,32 @@ /obj/item/gun/projectile/improvised_handgun/loaded magazine_type = /obj/item/ammo_magazine/c45m -/obj/item/gun/projectile/improvised_handgun/examine(mob/user) +/obj/item/gun/projectile/improvised_handgun/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(jam_chance) - if(1) to_chat(user, "All craftsmanship is of the highest quality.") - if(2 to 25) to_chat(user, "All craftsmanship is of high quality.") - if(26 to 50) to_chat(user, "All craftsmanship is of average quality.") - if(51 to 75) to_chat(user, "All craftsmanship is of low quality.") - if(100) to_chat(user, "All craftsmanship is of the lowest quality.") + if(1) + . += "All craftsmanship is of the highest quality." + if(2 to 25) + . += "All craftsmanship is of high quality." + if(26 to 50) + . += "All craftsmanship is of average quality." + if(51 to 75) + . += "All craftsmanship is of low quality." + if(100) + . += "All craftsmanship is of the lowest quality." /obj/item/stock/update_icon() icon_state = "ipistol[buildstate]" -/obj/item/stock/examine(mob/user) +/obj/item/stock/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(buildstate) - if(1) to_chat(user, "It is carved in the shape of a pistol handle.") - if(2) to_chat(user, "It has a receiver installed.") - if(3) to_chat(user, "It has a pipe installed.") + if(1) + . += "It is carved in the shape of a pistol handle." + if(2) + . += "It has a receiver installed." + if(3) + . += "It has a pipe installed." /obj/item/stock/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/material/hatchet)) diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 371ddcaba3c..2ef8a080751 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -248,15 +248,15 @@ if(rand(1,max_shells) > loaded.len) chamber_offset = rand(0,max_shells - loaded.len) -/obj/item/gun/projectile/revolver/lemat/examine(mob/user) +/obj/item/gun/projectile/revolver/lemat/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(secondary_loaded) var/to_print for(var/round in secondary_loaded) to_print += round - to_chat(user, "\The [src] has a secondary barrel loaded with \a [to_print]") + . += "\The [src] has a secondary barrel loaded with \a [to_print]." else - to_chat(user, "\The [src] has a secondary barrel that is empty.") + . += "\The [src] has a secondary barrel that is empty." /obj/item/gun/projectile/revolver/adhomian name = "adhomian service revolver" diff --git a/code/modules/projectiles/guns/projectile/rifle.dm b/code/modules/projectiles/guns/projectile/rifle.dm index 0752d50fa02..4375fa39cdf 100644 --- a/code/modules/projectiles/guns/projectile/rifle.dm +++ b/code/modules/projectiles/guns/projectile/rifle.dm @@ -99,17 +99,17 @@ ammo_magazine.stored_ammo -= AC chambered = AC -/obj/item/gun/projectile/shotgun/pump/rifle/pipegun/examine(mob/user) +/obj/item/gun/projectile/shotgun/pump/rifle/pipegun/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() switch(jam_chance) if(10 to 20) - to_chat(user, SPAN_NOTICE("\The [src] is starting to accumulate fouling. Might want to grab a rag.")) + . += SPAN_NOTICE("\The [src] is starting to accumulate fouling. Might want to grab a rag.") if(20 to 40) - to_chat(user, SPAN_WARNING("\The [src] looks reasonably fouled up. Maybe you should clean it with a rag.")) + . += SPAN_WARNING("\The [src] looks reasonably fouled up. Maybe you should clean it with a rag.") if(40 to 80) - to_chat(user, SPAN_WARNING("\The [src] is starting to look quite gunked up. You should clean it with a rag.")) + . += SPAN_WARNING("\The [src] is starting to look quite gunked up. You should clean it with a rag.") if(80 to INFINITY) - to_chat(user, SPAN_DANGER("\The [src] is completely fouled. You're going to be extremely lucky to get a shot off. Clean it with a rag.")) + . += SPAN_DANGER("\The [src] is completely fouled. You're going to be extremely lucky to get a shot off. Clean it with a rag.") /obj/item/gun/projectile/shotgun/pump/rifle/pipegun/attackby(obj/item/A, mob/user) if(istype(A, /obj/item/reagent_containers/glass/rag)) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index b305fd4fdea..ce7308996f7 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -273,7 +273,7 @@ fire_sound = 'sound/weapons/gunshot/gunshot_pistol.ogg' origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2, TECH_ILLEGAL = 2) -/obj/item/gun/projectile/shotgun/foldable/cameragun/examine(mob/user, distance, ...) +/obj/item/gun/projectile/shotgun/foldable/cameragun/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) - to_chat(user, SPAN_NOTICE("Upon closer inspection, this is not a camera at all, but a 9mm firearm concealed inside the shell of one, which can be deployed by pressing a button.")) + . += SPAN_NOTICE("Upon closer inspection, this is not a camera at all, but a 9mm firearm concealed inside the shell of one, which can be deployed by pressing a button.") diff --git a/code/modules/projectiles/modular/laser_base.dm b/code/modules/projectiles/modular/laser_base.dm index cf341d3ef46..f7d144c5498 100644 --- a/code/modules/projectiles/modular/laser_base.dm +++ b/code/modules/projectiles/modular/laser_base.dm @@ -44,11 +44,11 @@ var/criticality repair_item = /obj/item/weldingtool -/obj/item/laser_components/modifier/examine(mob/user, distance, is_adjacent) +/obj/item/laser_components/modifier/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) if(malus > base_malus) - to_chat(user, "\The [src] appears damaged.") + . += "\The [src] appears damaged." /obj/item/laser_components/modifier/degrade(var/increment = 1) if(increment) @@ -85,10 +85,10 @@ return 1 return 0 -/obj/item/laser_components/capacitor/examine(mob/user, distance, is_adjacent) +/obj/item/laser_components/capacitor/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1 && condition > 0) - to_chat(user, "\The [src] appears damaged.") + . += "\The [src] appears damaged." /obj/item/laser_components/capacitor/proc/small_fail(var/mob/user, var/obj/item/gun/energy/laser/prototype/prototype) return @@ -118,10 +118,10 @@ return 1 return 0 -/obj/item/laser_components/focusing_lens/examine(mob/user, distance, is_adjacent) +/obj/item/laser_components/focusing_lens/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1 && condition > 0) - to_chat(user, "\The [src] appears damaged.") + . += "\The [src] appears damaged." /obj/item/laser_components/modulator name = "laser modulator" diff --git a/code/modules/reagents/dispenser/cartridge.dm b/code/modules/reagents/dispenser/cartridge.dm index c486f061ae5..2fc646a356f 100644 --- a/code/modules/reagents/dispenser/cartridge.dm +++ b/code/modules/reagents/dispenser/cartridge.dm @@ -44,15 +44,15 @@ var/mutable_appearance/lid = mutable_appearance(icon, lid_icon) add_overlay(lid) -/obj/item/reagent_containers/chem_disp_cartridge/examine(mob/user) +/obj/item/reagent_containers/chem_disp_cartridge/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It has a capacity of [volume] units.") + . += "It has a capacity of [volume] units." if(reagents.total_volume <= 0) - to_chat(user, "It is empty.") + . += "It is empty." else - to_chat(user, "It contains [reagents.total_volume] units of liquid.") + . += "It contains [reagents.total_volume] units of liquid." if(!is_open_container()) - to_chat(user, "The cap is sealed.") + . += "The cap is sealed." /obj/item/reagent_containers/chem_disp_cartridge/verb/verb_set_label(L as text) set name = "Set Cartridge Label" diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm index 6f686c617e8..594891566eb 100644 --- a/code/modules/reagents/dispenser/dispenser2.dm +++ b/code/modules/reagents/dispenser/dispenser2.dm @@ -39,9 +39,9 @@ for(var/type in spawn_cartridges) add_cartridge(new type(src)) -/obj/machinery/chemical_dispenser/examine(mob/user) +/obj/machinery/chemical_dispenser/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It has [cartridges.len] cartridges installed, and has space for [DISPENSER_MAX_CARTRIDGES - cartridges.len] more.") + . += "It has [cartridges.len] cartridges installed, and has space for [DISPENSER_MAX_CARTRIDGES - cartridges.len] more." /obj/machinery/chemical_dispenser/proc/add_cartridge(obj/item/reagent_containers/chem_disp_cartridge/C, mob/user) if(!istype(C)) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index e130185374f..bff4fbbea2b 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -155,11 +155,10 @@ attached_mob = null STOP_PROCESSING(SSprocessing, src) -/obj/item/reagent_containers/blood/examine(mob/user, distance, is_adjacent) +/obj/item/reagent_containers/blood/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (distance <= 2 && vampire_marks) - to_chat(user, SPAN_WARNING("There are teeth marks on it.")) - return + . += SPAN_WARNING("There are sharp, canine-like teeth marks on it.") /obj/item/reagent_containers/blood/attackby(obj/item/P as obj, mob/user as mob) ..() diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 62586a331cd..1ee22ca30e8 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -126,14 +126,13 @@ to_chat(usr, SPAN_NOTICE("Synthesizer is now producing '[R.name]'.")) update_icon() -/obj/item/reagent_containers/hypospray/borghypo/examine(mob/user, distance, is_adjacent) +/obj/item/reagent_containers/hypospray/borghypo/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - if (distance > 2) return var/singleton/reagent/R = GET_SINGLETON(reagent_ids[mode]) - to_chat(user, SPAN_NOTICE("It is currently producing [R.name] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left.")) + . += SPAN_NOTICE("It is currently producing [R.name] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left.") /obj/item/reagent_containers/hypospray/borghypo/service name = "cyborg drink synthesizer" diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 73fb5e6db58..8302512a905 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -102,12 +102,12 @@ worn_overlay = null update_held_icon() -/obj/item/reagent_containers/dropper/examine(mob/user) +/obj/item/reagent_containers/dropper/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(LAZYLEN(reagents.reagent_volumes)) - to_chat(user, SPAN_NOTICE("\The [src] is holding [reagents.total_volume] units out of [volume]. Current transfer is [amount_per_transfer_from_this] units.")) + . += SPAN_NOTICE("\The [src] is holding [reagents.total_volume] units out of [volume]. Current transfer is [amount_per_transfer_from_this] units.") else - to_chat(user, SPAN_NOTICE("It is empty.")) + . += SPAN_NOTICE("It is empty.") /obj/item/reagent_containers/dropper/electronic_pipette name = "electronic pipette" diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index e5348ee8a36..c140d63d90b 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -84,20 +84,20 @@ If you add a drink with an empty icon sprite, ensure it is in the same folder, e return 1 return ..() -/obj/item/reagent_containers/food/drinks/examine(mob/user, distance, is_adjacent) +/obj/item/reagent_containers/food/drinks/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (distance > 1) return if(!reagents || reagents.total_volume == 0) - to_chat(user, "\The [src] is empty!") + . += "\The [src] is empty!" else if (reagents.total_volume <= volume * 0.25) - to_chat(user, "\The [src] is almost empty!") + . += "\The [src] is almost empty!" else if (reagents.total_volume <= volume * 0.66) - to_chat(user, "\The [src] is half full!") + . += "\The [src] is half full!" else if (reagents.total_volume <= volume * 0.90) - to_chat(user, "\The [src] is almost full!") + . += "\The [src] is almost full!" else - to_chat(user, "\The [src] is full!") + . += "\The [src] is full!" //////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/reagents/reagent_containers/food/sandwich.dm b/code/modules/reagents/reagent_containers/food/sandwich.dm index 76a1f372e65..32546006cc9 100644 --- a/code/modules/reagents/reagent_containers/food/sandwich.dm +++ b/code/modules/reagents/reagent_containers/food/sandwich.dm @@ -69,10 +69,10 @@ QDEL_LIST(ingredients) return ..() -/obj/item/reagent_containers/food/snacks/csandwich/examine(mob/user) +/obj/item/reagent_containers/food/snacks/csandwich/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() var/obj/item/O = pick(contents) - to_chat(user, SPAN_NOTICE("You think you can see [O.name] in there.")) + . += SPAN_NOTICE("You think you can see [O.name] in there.") /obj/item/reagent_containers/food/snacks/csandwich/roll name = "roll" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index b5fded1c00b..f0834c33c5d 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -141,21 +141,21 @@ return 1 -/obj/item/reagent_containers/food/snacks/examine(mob/user, distance) +/obj/item/reagent_containers/food/snacks/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 1) return if (coating) var/singleton/reagent/coating_reagent = GET_SINGLETON(coating) - to_chat(user, SPAN_NOTICE("It's coated in [coating_reagent.name]!")) - if (bitecount==0) + . += SPAN_NOTICE("It's coated in [coating_reagent.name]!") + if (!bitecount) return else if (bitecount==1) - to_chat(user, SPAN_NOTICE("\The [src] was bitten by someone!")) + . += SPAN_NOTICE("\The [src] was bitten by someone!") else if (bitecount<=3) - to_chat(user, SPAN_NOTICE("\The [src] was bitten [bitecount] time\s!")) + . += SPAN_NOTICE("\The [src] was bitten [bitecount] time\s!") else - to_chat(user, SPAN_NOTICE("\The [src] was bitten multiple times!")) + . += SPAN_NOTICE("\The [src] was bitten multiple times!") /obj/item/reagent_containers/food/snacks/attackby(obj/item/W, mob/living/user) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index eea2a868efe..47c07441f68 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -24,27 +24,27 @@ . = ..() AddComponent(/datum/component/base_name, name) -/obj/item/reagent_containers/glass/examine(mob/user, distance, is_adjacent) +/obj/item/reagent_containers/glass/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 2) return if(LAZYLEN(reagents.reagent_volumes)) - to_chat(user, SPAN_NOTICE("It contains [round(reagents.total_volume, accuracy)] units of a reagent.")) + . += SPAN_NOTICE("It contains [round(reagents.total_volume, accuracy)] units of a reagent.") for(var/_T in reagents.reagent_volumes) var/singleton/reagent/T = GET_SINGLETON(_T) if(T.reagent_state == LIQUID) - to_chat(user, SPAN_NOTICE("You see something liquid in the beaker.")) + . += SPAN_NOTICE("You see something liquid in the beaker.") break // to stop multiple messages of this if(T.reagent_state == GAS) - to_chat(user, SPAN_NOTICE("You see something gaseous in the beaker.")) + . += SPAN_NOTICE("You see something gaseous in the beaker.") break if(T.reagent_state == SOLID) - to_chat(user, SPAN_NOTICE("You see something solid in the beaker.")) + . += SPAN_NOTICE("You see something solid in the beaker.") break else - to_chat(user, SPAN_NOTICE("It is empty.")) + . += SPAN_NOTICE("It is empty.") if(!is_open_container()) - to_chat(user, SPAN_NOTICE("An airtight lid seals it completely.")) + . += SPAN_NOTICE("An airtight lid seals it completely.") /obj/item/reagent_containers/glass/get_additional_forensics_swab_info() var/list/additional_evidence = ..() diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 2f7a20b56e6..002bcd08ab3 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -187,12 +187,12 @@ add_overlay(reagent_overlay) update_held_icon() -/obj/item/reagent_containers/hypospray/autoinjector/examine(mob/user) +/obj/item/reagent_containers/hypospray/autoinjector/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(LAZYLEN(reagents.reagent_volumes)) - to_chat(user, SPAN_NOTICE("It is currently loaded.")) + . += SPAN_NOTICE("It is currently loaded.") else - to_chat(user, SPAN_NOTICE("It is empty.")) + . += SPAN_NOTICE("It is empty.") /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline diff --git a/code/modules/reagents/reagent_containers/inhaler.dm b/code/modules/reagents/reagent_containers/inhaler.dm index 5423ac4dd9b..b5276ab8e3e 100644 --- a/code/modules/reagents/reagent_containers/inhaler.dm +++ b/code/modules/reagents/reagent_containers/inhaler.dm @@ -146,12 +146,12 @@ add_overlay(reagent_overlay) update_held_icon() -/obj/item/reagent_containers/inhaler/examine(mob/user) +/obj/item/reagent_containers/inhaler/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(LAZYLEN(reagents.reagent_volumes)) - to_chat(user, "It is currently loaded.") + . += "It is currently loaded." else - to_chat(user, "It is spent.") + . += "It is spent." /obj/item/reagent_containers/inhaler/dexalin name_label = "dexalin" diff --git a/code/modules/reagents/reagent_containers/inhaler_advanced.dm b/code/modules/reagents/reagent_containers/inhaler_advanced.dm index 694bbd89968..eb287c62a74 100644 --- a/code/modules/reagents/reagent_containers/inhaler_advanced.dm +++ b/code/modules/reagents/reagent_containers/inhaler_advanced.dm @@ -32,7 +32,7 @@ filling.color = reagents.get_color() add_overlay(filling) -/obj/item/reagent_containers/personal_inhaler_cartridge/examine(mob/user, distance, is_adjacent) +/obj/item/reagent_containers/personal_inhaler_cartridge/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if (distance > 2) @@ -40,14 +40,14 @@ if(is_open_container()) if(LAZYLEN(reagents.reagent_volumes)) - to_chat(user,"It contains [round(reagents.total_volume, accuracy)] units of non-aerosol mix.") + . += "It contains [round(reagents.total_volume, accuracy)] units of non-aerosol mix." else - to_chat(user,"It is empty.") + . += "It is empty." else if(LAZYLEN(reagents.reagent_volumes)) - to_chat(user,"The reagents are secured in the aerosol mix.") + . += "The reagents are secured in the aerosol mix." else - to_chat(user,"The cartridge seems spent.") + . += "The cartridge seems spent." /obj/item/reagent_containers/personal_inhaler_cartridge/attack_self(mob/user as mob) if(is_open_container()) @@ -101,12 +101,12 @@ origin_tech = list(TECH_BIO = 2, TECH_MATERIAL = 2) var/eject_when_empty = FALSE -/obj/item/personal_inhaler/examine(mob/user, distance, is_adjacent) +/obj/item/personal_inhaler/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 2) return if(stored_cartridge) - to_chat(user,"\The [stored_cartridge] is attached to \the [src].") + . += "\The [stored_cartridge] is attached to \the [src]." /obj/item/personal_inhaler/update_icon() cut_overlays() diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 63010139ddd..f0b50ec8988 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -113,10 +113,10 @@ spray_size = next_in_list(spray_size, spray_sizes) to_chat(user, SPAN_NOTICE("You adjusted the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray, with a [spray_size] lane spray.")) -/obj/item/reagent_containers/spray/examine(mob/user, distance, is_adjacent) +/obj/item/reagent_containers/spray/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, "[round(reagents.total_volume)] units left.") + . += "[round(reagents.total_volume)] units left." /obj/item/reagent_containers/spray/verb/empty() @@ -171,10 +171,10 @@ safety = 1 reagents_to_add = list(/singleton/reagent/capsaicin/condensed = 40) -/obj/item/reagent_containers/spray/pepper/examine(mob/user, distance, is_adjacent) +/obj/item/reagent_containers/spray/pepper/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(is_adjacent) - to_chat(user, "The safety is [safety ? "on" : "off"].") + . += "The safety is [safety ? "on" : "off"]." /obj/item/reagent_containers/spray/pepper/AltClick() return //No altclick functionality for pepper spray diff --git a/code/modules/reagents/reagent_containers/welding_backpack.dm b/code/modules/reagents/reagent_containers/welding_backpack.dm index d886dcf3f57..7e702d328cc 100644 --- a/code/modules/reagents/reagent_containers/welding_backpack.dm +++ b/code/modules/reagents/reagent_containers/welding_backpack.dm @@ -15,7 +15,7 @@ drop_sound = 'sound/items/drop/backpack.ogg' pickup_sound = 'sound/items/pickup/backpack.ogg' -/obj/item/reagent_containers/weldpack/examine(mob/user, distance) +/obj/item/reagent_containers/weldpack/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(ishuman(loc) && user != loc) // what if we want to sneak some reagents out of somewhere? return @@ -23,9 +23,9 @@ var/fuel_volume = REAGENT_VOLUME(reagents, /singleton/reagent/fuel) if(!fuel_volume) fuel_volume = 0 - to_chat(user, SPAN_NOTICE("\The [src] has [reagents.total_volume]u of reagents in it, [fuel_volume]u of which is fuel.")) + . += SPAN_NOTICE("\The [src] has [reagents.total_volume]u of reagents in it, [fuel_volume]u of which is fuel.") else - to_chat(user, SPAN_WARNING("\The [src] is empty!")) + . += SPAN_WARNING("\The [src] is empty!") /obj/item/reagent_containers/weldpack/attackby(obj/item/W, mob/user) if(W.iswrench()) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 840c09dd987..96d8dc55341 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -21,11 +21,11 @@ src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT desc_info = "" -/obj/structure/reagent_dispensers/examine(mob/user, distance, is_adjacent) +/obj/structure/reagent_dispensers/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 2) return - to_chat(user,"It contains [reagents.total_volume] units of reagents.") + . += "It contains [reagents.total_volume] units of reagents." /obj/structure/reagent_dispensers/verb/set_APTFT() //set amount_per_transfer_from_this set name = "Set transfer amount" @@ -128,14 +128,14 @@ var/obj/item/device/assembly_holder/rig = null reagents_to_add = list(/singleton/reagent/fuel = 1000) -/obj/structure/reagent_dispensers/fueltank/examine(mob/user, distance, is_adjacent) +/obj/structure/reagent_dispensers/fueltank/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 2) return if (is_leaking) - to_chat(user, "Fuel faucet is wrenched open, leaking the fuel!") + . += "Fuel faucet is wrenched open, leaking the fuel!" if(rig) - to_chat(user, "There is some kind of device rigged to the tank.") + . += "There is some kind of device rigged to the tank." /obj/structure/reagent_dispensers/fueltank/attack_hand(mob/user) if (rig) diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 8cc7c31a100..3baa48a62f5 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -108,13 +108,13 @@ I.pixel_y = -3 add_overlay(I) -/obj/structure/bigDelivery/examine(mob/user, distance, is_adjacent) +/obj/structure/bigDelivery/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 4) if(sortTag) - to_chat(user, "It is labeled \"[sortTag]\"") + . += "It is labeled \"[sortTag]\"." if(examtext) - to_chat(user, "It has a note attached which reads, \"[examtext]\"") + . += "It has a note attached which reads, \"[examtext]\"." /obj/item/smallDelivery desc = "A small wrapped package." @@ -228,13 +228,13 @@ I.pixel_y = -3 add_overlay(I) -/obj/item/smallDelivery/examine(mob/user, distance, is_adjacent) +/obj/item/smallDelivery/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 4) if(sortTag) - to_chat(user, "It is labeled \"[sortTag]\"") + . += "It is labeled \"[sortTag]\"." if(examtext) - to_chat(user, "It has a note attached which reads, \"[examtext]\"") + . += "It has a note attached which reads, \"[examtext]\"." /obj/structure/bigDelivery/Destroy() if(wrapped) //sometimes items can disappear. For example, bombs. --rastaf0 diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index f01fcd4cca1..b01964f8dbc 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -255,14 +255,14 @@ GLOBAL_LIST_EMPTY(designs_imprinter_categories) pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) -/obj/item/disk/tech_disk/examine(mob/user, distance) +/obj/item/disk/tech_disk/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) if(stored) - to_chat(user, FONT_SMALL("It is storing the following tech:")) - to_chat(user, FONT_SMALL(" - [stored.name]: Level - [stored.level] | Progress - [stored.next_level_progress]/[stored.next_level_threshold]")) + . += FONT_SMALL("It is storing the following tech:") + . += FONT_SMALL(" - [stored.name]: Level - [stored.level] | Progress - [stored.next_level_progress]/[stored.next_level_threshold]") else - to_chat(user, FONT_SMALL("It doesn't have any tech stored.")) + . += FONT_SMALL("It doesn't have any tech stored.") /obj/item/disk/design_disk name = "component design disk" @@ -279,11 +279,11 @@ GLOBAL_LIST_EMPTY(designs_imprinter_categories) pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) -/obj/item/disk/design_disk/examine(mob/user, distance) +/obj/item/disk/design_disk/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 1) if(blueprint) - to_chat(user, FONT_SMALL("It is storing the following design:")) - to_chat(user, FONT_SMALL(" - [blueprint.name]")) + . += FONT_SMALL("It is storing the following design:") + . += FONT_SMALL(" - [blueprint.name]") else - to_chat(user, FONT_SMALL("It doesn't have any blueprint stored.")) + . += FONT_SMALL("It doesn't have any blueprint stored.") diff --git a/code/modules/research/weaponsanalyzer.dm b/code/modules/research/weaponsanalyzer.dm index 87d32967a08..d2a922307e8 100644 --- a/code/modules/research/weaponsanalyzer.dm +++ b/code/modules/research/weaponsanalyzer.dm @@ -17,12 +17,9 @@ /obj/item/stock_parts/console_screen = 1 ) -/obj/machinery/weapons_analyzer/examine(mob/user) +/obj/machinery/weapons_analyzer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - var/name_of_thing = "" - if(item) - name_of_thing = item.name - to_chat(user, SPAN_NOTICE("It has [name_of_thing ? "[name_of_thing]" : "nothing"] attached.")) + . += SPAN_NOTICE("It has [item ? "[item.name]" : "nothing"] attached.") /obj/machinery/weapons_analyzer/attackby(var/obj/item/I, var/mob/user as mob) if(!I || !user || !ishuman(user)) diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm index 2e8a213a261..104865be4ab 100644 --- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm @@ -167,10 +167,10 @@ var/field_type = "chlorine" var/victim_number //number of mobs it affected, needed for generator powerdraw calc -/obj/effect/suspension_field/examine(mob/user) +/obj/effect/suspension_field/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, SPAN_NOTICE("You can see something floating inside it:")) - to_chat(user, SPAN_NOTICE(english_list(contents))) + . += SPAN_NOTICE("You can see something floating inside it:") + . += SPAN_NOTICE(english_list(contents)) /obj/effect/suspension_field/Initialize() . = ..() diff --git a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm index 3e87cc010de..fa9349fdc88 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm @@ -23,10 +23,10 @@ w_class = ITEMSIZE_TINY var/obj/item/sample -/obj/item/device/core_sampler/examine(mob/user, distance, is_adjacent) +/obj/item/device/core_sampler/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance <= 2) - to_chat(user, SPAN_NOTICE("This one is [sample ? "full" : "empty"].")) + . += SPAN_NOTICE("This one is [sample ? "full" : "empty"].") /obj/item/device/core_sampler/proc/sample_item(var/item_to_sample, var/mob/user) var/datum/geosample/geo_data diff --git a/code/modules/shieldgen/shield_diffuser.dm b/code/modules/shieldgen/shield_diffuser.dm index 43cdd92a75d..2c67eb83bb2 100644 --- a/code/modules/shieldgen/shield_diffuser.dm +++ b/code/modules/shieldgen/shield_diffuser.dm @@ -49,9 +49,9 @@ update_icon() to_chat(user, "You turn \the [src] [diffuser_enabled ? "on" : "off"].") -/obj/machinery/shield_diffuser/examine(mob/user) +/obj/machinery/shield_diffuser/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "It is [diffuser_enabled ? "diffuser_enabled" : "disabled"].") + . += "It is [diffuser_enabled ? "diffuser_enabled" : "disabled"]." /obj/machinery/shield_diffuser/power_change() ..() diff --git a/code/modules/spell_system/artifacts/items/lich_phylactery.dm b/code/modules/spell_system/artifacts/items/lich_phylactery.dm index 36a22eac1cd..62370bd1940 100644 --- a/code/modules/spell_system/artifacts/items/lich_phylactery.dm +++ b/code/modules/spell_system/artifacts/items/lich_phylactery.dm @@ -22,12 +22,12 @@ lich = null return ..() -/obj/item/phylactery/examine(mob/user) +/obj/item/phylactery/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(!lich) - to_chat(user, "The heart is inert.") + . += "The heart is inert." else - to_chat(user, "The heart is pulsing slowly.") + . += "The heart is pulsing slowly." /obj/item/phylactery/attackby(var/obj/item/I, var/mob/user) ..() diff --git a/code/modules/spell_system/artifacts/items/poppet.dm b/code/modules/spell_system/artifacts/items/poppet.dm index ef168a6a5f1..fb6aceb3fa0 100644 --- a/code/modules/spell_system/artifacts/items/poppet.dm +++ b/code/modules/spell_system/artifacts/items/poppet.dm @@ -15,10 +15,10 @@ to_chat(target, "The strange presence vanishes away...") return ..() -/obj/item/poppet/examine(mob/user) +/obj/item/poppet/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(countenance) - to_chat(user, "It is modeled after a [countenance].") + . += "It is modeled after a [countenance]." /obj/item/poppet/afterattack(var/atom/A, var/mob/user, var/proximity) diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index e82bf03bd9f..112e48cf7d3 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -99,16 +99,16 @@ T.queue_icon_update() return ..() -/obj/structure/table/examine(mob/user) +/obj/structure/table/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(health < maxhealth) switch(health / maxhealth) if(0.0 to 0.5) - to_chat(user, "It looks severely damaged!") + . += "It looks severely damaged!" if(0.25 to 0.5) - to_chat(user, "It looks damaged!") + . += "It looks damaged!" if(0.5 to 1.0) - to_chat(user, "It has a few scrapes and dents.") + . += "It has a few scrapes and dents." /obj/structure/table/attackby(obj/item/W, mob/user) if(reinforced && W.isscrewdriver()) diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 04df88d0bb3..0f0a9cb05b1 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -121,9 +121,9 @@ var/emagged = 0 var/teleporting = 0 -/obj/item/rcs/examine(mob/user) +/obj/item/rcs/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "There are [rcharges] charge\s left.") + . += "There are [rcharges] charge\s left." /obj/item/rcs/process() if(rcharges > 10) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index 33bce45b054..37a4912b720 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -38,9 +38,9 @@ inserted_gps = null return ..() -/obj/machinery/computer/telescience/examine(mob/user) +/obj/machinery/computer/telescience/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() - to_chat(user, "There are [crystals.len ? crystals.len : "no"] bluespace crystal\s in the crystal slots.") + . += "There are [crystals.len ? crystals.len : "no"] bluespace crystal\s in the crystal slots." /obj/machinery/computer/telescience/Initialize() . = ..() diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 4f3fee0da9c..a9cfb5c7dfc 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -248,16 +248,16 @@ else return ..() -/obj/vehicle/train/cargo/engine/examine(mob/user, distance) +/obj/vehicle/train/cargo/engine/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(distance > 1) return - if(!istype(usr, /mob/living/carbon/human)) + if(!ishuman(user)) return - to_chat(user, "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition.") - to_chat(user, "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%") + . += "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition." + . += "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%." /obj/vehicle/train/cargo/engine/CtrlClick(mob/user) if(load && load != user) diff --git a/code/modules/vehicles/train.dm b/code/modules/vehicles/train.dm index 6aa7fd72edf..24f678293e8 100644 --- a/code/modules/vehicles/train.dm +++ b/code/modules/vehicles/train.dm @@ -28,12 +28,12 @@ for(var/obj/vehicle/train/T in orange(1, src)) latch(T) -/obj/vehicle/train/examine(mob/user) +/obj/vehicle/train/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(lead) - to_chat(user, SPAN_NOTICE("It is being towed by \the [lead] in the [dir2text(get_dir(src, lead))].")) + . += SPAN_NOTICE("It is being towed by \the [lead] in the [dir2text(get_dir(src, lead))].") if(tow) - to_chat(user, SPAN_NOTICE("It towing \the [tow] in the [dir2text(get_dir(src, tow))].")) + . += SPAN_NOTICE("It towing \the [tow] in the [dir2text(get_dir(src, tow))].") /obj/vehicle/train/Move() var/old_loc = get_turf(src) diff --git a/html/changelogs/mattatlas-toil.yml b/html/changelogs/mattatlas-toil.yml new file mode 100644 index 00000000000..cbdcf413664 --- /dev/null +++ b/html/changelogs/mattatlas-toil.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Examining things now puts the examine text in a fancy box." + - tweak: "Some examines have been tweaked to look nicer." diff --git a/maps/away/ships/tajara/circus/adhomian_circus_items.dm b/maps/away/ships/tajara/circus/adhomian_circus_items.dm index 5892681d214..8ac0941a5aa 100644 --- a/maps/away/ships/tajara/circus/adhomian_circus_items.dm +++ b/maps/away/ships/tajara/circus/adhomian_circus_items.dm @@ -161,9 +161,9 @@ contained_sprite = TRUE var/weight = "10" -/obj/item/dumbbell/examine(mob/user) - ..() - to_chat(user,"It weights [weight] kilograms.") +/obj/item/dumbbell/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() + . += "It weighs [weight] kilograms." /obj/item/dumbbell/twenty weight = "20" diff --git a/maps/random_ruins/exoplanets/adhomai/adhomai_minefield.dm b/maps/random_ruins/exoplanets/adhomai/adhomai_minefield.dm index 10a77c2caf6..8dce5869c84 100644 --- a/maps/random_ruins/exoplanets/adhomai/adhomai_minefield.dm +++ b/maps/random_ruins/exoplanets/adhomai/adhomai_minefield.dm @@ -14,7 +14,7 @@ icon_state = "landmine_post" anchored = TRUE -/obj/structure/adhomai_minefield/examine(mob/user) +/obj/structure/adhomai_minefield/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(GLOB.all_languages[LANGUAGE_SIIK_MAAS] in user.languages) - to_chat(user, SPAN_WARNING("The sign says: \"WARNING: MINEFIELD\".")) + . += SPAN_WARNING("The sign says: \"WARNING: MINEFIELD\".") diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss index 47c586a750c..3df3eefdb36 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss @@ -607,3 +607,17 @@ em { color: #ee0000; font-weight: bold; } + +.examine_block { + background: #1b1c1e; + border: 1px solid #a4bad6; + margin: 0.5em; + padding: 0.5em 0.75em; +} + +.examine_block .icon { + width: 1.5em; + height: 1.5em; + margin: 0; + padding: 0; +} diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss index 22cd40292a1..c49bd1545a5 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss @@ -619,3 +619,17 @@ h2.alert { color: #ee0000; font-weight: bold; } + +.examine_block { + background: #f2f7fa; + border: 1px solid #111a27; + margin: 0.5em; + padding: 0.5em 0.75em; +} + +.examine_block .icon { + width: 1.5em; + height: 1.5em; + margin: 0; + padding: 0; +}