diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index a338f1a92c1..06227e64ccf 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -298,11 +298,10 @@
else
return ..()
-/obj/machinery/atmospherics/unary/vent_pump/examine()
- set src in oview(1)
+/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user)
..()
if(welded)
- usr << "It seems welded shut."
+ user << "It seems welded shut."
/obj/machinery/atmospherics/unary/vent_pump/power_change()
if(powered(power_channel))
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index f784638362a..94f8c73a33c 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -202,7 +202,7 @@
return
/atom/proc/ShiftClick(var/mob/user)
if(user.client && user.client.eye == user)
- examine()
+ user.examinate(src)
return
/*
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index deaec8acf8a..d067d49f4b2 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -55,7 +55,7 @@
// Oh by the way this didn't work with old click code which is why clicking shit didn't spam you
/atom/proc/attack_ghost(mob/dead/observer/user as mob)
if(user.client && user.client.inquisitive_ghost)
- examine()
+ user.examinate(src)
return
// ---------------------------------------
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index d8b0638b193..4502ff7675f 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -200,22 +200,30 @@ its easier to just keep the beam vertical.
//I've found that 3 ticks provided a nice balance for my use.
for(var/obj/effect/overlay/beam/O in orange(10,src)) if(O.BeamSource==src) qdel(O)
+/atom/proc/examine(mob/user)
+ //This reformat names to get a/an properly working on item descriptions when they are bloody
+ var/f_name = "\a [src]."
+ if(src.blood_DNA)
+ if(gender == PLURAL)
+ f_name = "some "
+ else
+ f_name = "a "
+ f_name += "blood-stained [name]!"
-//All atoms
-/atom/verb/examine()
- set name = "Examine"
- set category = "IC"
- set src in oview(12) //make it work from farther away
+ user << "\icon[src] That's [f_name]"
- if (!( usr ))
- return
- usr.face_atom(src)
- usr << "\icon[src]That's \a [src]." //changed to "That's" from "This is" because "This is some metal sheets" sounds dumb compared to "That's some metal sheets" ~Carn
if(desc)
- usr << desc
+ user << desc
// *****RM
- //usr << "[name]: Dn:[density] dir:[dir] cont:[contents] icon:[icon] is:[icon_state] loc:[loc]"
- return
+ //user << "[name]: Dn:[density] dir:[dir] cont:[contents] icon:[icon] is:[icon_state] loc:[loc]"
+
+ if(reagents && is_open_container()) //is_open_container() isn't really the right proc for this, but w/e
+ user << "It contains:"
+ if(reagents.reagent_list.len)
+ for(var/datum/reagent/R in reagents.reagent_list)
+ user << "[R.volume] units of [R.name]"
+ else
+ user << "Nothing."
/atom/proc/relaymove()
return
diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index 4e66a3d1ecc..33f9322f2f5 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -99,7 +99,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
/obj/effect/rune
- desc = ""
+ desc = "A strange collection of symbols drawn in blood."
anchored = 1
icon = 'icons/obj/rune.dmi'
icon_state = "1"
@@ -146,25 +146,11 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
for(var/mob/living/silicon/ai/AI in player_list)
AI.client.images += blood
-/obj/effect/rune/examine()
- set src in view(2)
+/obj/effect/rune/examine(mob/user)
+ ..()
+ if(iscultist(user))
+ user << "This spell circle reads: [word1] [word2] [word3]."
- if(!iscultist(usr))
- usr << "A strange collection of symbols drawn in blood."
- return
- /* Explosions... really?
- if(desc && !usr.stat)
- usr << "It reads: [desc]."
- sleep(30)
- explosion(src.loc, 0, 2, 5, 5)
- qdel(src)
- */
- if(!desc)
- usr << "A spell circle drawn in blood. It reads: [word1] [word2] [word3]."
- else
- usr << "Explosive Runes inscription in blood. It reads: [desc]."
-
- return
/obj/effect/rune/attackby(I as obj, user as mob)
@@ -349,6 +335,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
/obj/item/weapon/tome
name = "arcane tome"
+ desc = "An old, dusty tome with frayed edges and a sinister looking cover."
icon_state ="tome"
throw_speed = 2
throw_range = 5
@@ -695,13 +682,10 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
user << "You copy the translation notes from your tome."
-/obj/item/weapon/tome/examine()
- set src in usr
+/obj/item/weapon/tome/examine(mob/user)
..()
- if(!iscultist(usr))
- usr << "An old, dusty tome with frayed edges and a sinister looking cover."
- else
- usr << "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."
+ if(iscultist(user))
+ 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."
/obj/item/weapon/tome/imbued //admin tome, spawns working runes without waiting
w_class = 2.0
diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm
index 2417819e6ce..1fd9ea37360 100644
--- a/code/game/gamemodes/cult/talisman.dm
+++ b/code/game/gamemodes/cult/talisman.dm
@@ -3,13 +3,6 @@
var/imbue = null
var/uses = 0
-
- examine()
- set src in view(2)
- ..()
- return
-
-
attack_self(mob/living/user as mob)
if(iscultist(user))
var/delete = 1
diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm
index fb957f4c866..0b07f069680 100644
--- a/code/game/gamemodes/nuclear/pinpointer.dm
+++ b/code/game/gamemodes/nuclear/pinpointer.dm
@@ -54,12 +54,11 @@
the_disk = locate()
point_at(the_disk)
-/obj/item/weapon/pinpointer/examine()
+/obj/item/weapon/pinpointer/examine(mob/user)
..()
for(var/obj/machinery/nuclearbomb/bomb in world)
if(bomb.timing)
- usr << "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]"
-
+ user << "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]"
/obj/item/weapon/pinpointer/advpinpointer
name = "advanced pinpointer"
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 2e7ec9e798d..0467c3c3d62 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -917,7 +917,7 @@ FIRE ALARM
*/
/obj/machinery/firealarm
name = "fire alarm"
- desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever."
+ desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever."
icon = 'icons/obj/monitors.dmi'
icon_state = "fire0"
var/detecting = 1.0
diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm
index 2daf551c730..8758bb4aa8d 100644
--- a/code/game/machinery/atmoalter/meter.dm
+++ b/code/game/machinery/atmoalter/meter.dm
@@ -80,10 +80,9 @@
t += "The connect error light is blinking."
return t
-/obj/machinery/meter/examine()
- set src in view(3)
+/obj/machinery/meter/examine(mob/user)
..()
- usr << status()
+ user << status()
/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm
index 947bbe77df4..e800a4b9967 100644
--- a/code/game/machinery/bots/bots.dm
+++ b/code/game/machinery/bots/bots.dm
@@ -42,15 +42,15 @@
if(!locked && open)
emagged = 2
-/obj/machinery/bot/examine()
- set src in view()
+/obj/machinery/bot/examine(mob/user)
..()
if (src.health < maxhealth)
if (src.health > maxhealth/3)
- usr << "[src]'s parts look loose."
+ user << "[src]'s parts look loose."
else
- usr << "[src]'s parts look very loose!"
- return
+ user << "[src]'s parts look very loose."
+ else
+ user << "[src] is in pristine condition."
/obj/machinery/bot/attack_alien(var/mob/living/carbon/alien/user as mob)
user.changeNext_move(CLICK_CD_MELEE)
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 875f983fcbd..543516c36a7 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -26,12 +26,11 @@
else
overlays.Cut()
-/obj/machinery/cell_charger/examine()
- set src in oview(5)
+/obj/machinery/cell_charger/examine(mob/user)
..()
- usr << "There's [charging ? "a" : "no"] cell in the charger."
+ user << "There's [charging ? "a" : "no"] cell in the charger."
if(charging)
- usr << "Current charge: [charging.charge]"
+ user << "Current charge: [round(charging.percent(), 1)]%"
/obj/machinery/cell_charger/attackby(obj/item/weapon/W, mob/user)
if(stat & BROKEN)
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index dc12c7dec60..1a11545a0f0 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -85,11 +85,9 @@
read_only = !read_only
user << "You flip the write-protect tab to [src.read_only ? "protected" : "unprotected"]."
-/obj/item/weapon/disk/data/examine()
- set src in oview(5)
+/obj/item/weapon/disk/data/examine(mob/user)
..()
- usr << "The write-protect tab is set to [src.read_only ? "protected" : "unprotected"]."
- return
+ user << "The write-protect tab is set to [src.read_only ? "protected" : "unprotected"]."
//Health Tracker Implant
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index 0bffb385460..e5acc1ea5af 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -85,19 +85,16 @@
open_machine()
return
-/obj/machinery/atmospherics/unary/cryo_cell/examine()
+/obj/machinery/atmospherics/unary/cryo_cell/examine(mob/user)
..()
- if(in_range(usr, src))
- usr << "You can just about make out some loose objects floating in the murk:"
- for(var/obj/O in src)
- if(O != beaker)
- usr << O.name
- for(var/mob/M in src)
- if(M != occupant)
- usr << M.name
+ var/list/otherstuff = contents - beaker
+ if(otherstuff.len > 0)
+ user << "You can just about make out some loose objects floating in the murk:"
+ for(var/atom/movable/floater in otherstuff)
+ user << "\icon[floater] [floater.name]"
else
- usr << "Too far away to view contents."
+ user << "Seems empty."
/obj/machinery/atmospherics/unary/cryo_cell/attack_hand(mob/user)
if(stat & (NOPOWER|BROKEN))
diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm
index 05ca63b045c..ea104d8a86d 100644
--- a/code/game/machinery/lightswitch.dm
+++ b/code/game/machinery/lightswitch.dm
@@ -36,11 +36,9 @@
else
icon_state = "light0"
-/obj/machinery/light_switch/examine()
- set src in oview(1)
+/obj/machinery/light_switch/examine(mob/user)
..()
- if(usr && !usr.stat)
- usr << "It is [on? "on" : "off"]."
+ user << "It is [on? "on" : "off"]."
/obj/machinery/light_switch/attack_paw(mob/user)
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 5c7f1851bce..c58fe27df3f 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -19,12 +19,11 @@ var/const/SAFETY_COOLDOWN = 100
..()
update_icon()
-/obj/machinery/recycler/examine()
- set src in view()
+/obj/machinery/recycler/examine(mob/user)
..()
- usr << "The power light is [(stat & NOPOWER) ? "off" : "on"]."
- usr << "The safety-mode light is [safety_mode ? "on" : "off"]."
- usr << "The safety-sensors status light is [emagged ? "off" : "on"]."
+ user << "The power light is [(stat & NOPOWER) ? "off" : "on"]."
+ user << "The safety-mode light is [safety_mode ? "on" : "off"]."
+ user << "The safety-sensors status light is [emagged ? "off" : "on"]."
/obj/machinery/recycler/power_change()
..()
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index a9f62333726..08ee0a278b8 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -27,18 +27,14 @@
overlays += "sheater-open"
return
-/obj/machinery/space_heater/examine()
- set src in oview(12)
- if (!( usr ))
- return
- ..()
+/obj/machinery/space_heater/examine(mob/user)
- usr << "The heater is [on ? "on" : "off"] and the hatch is [open ? "open" : "closed"]."
+ ..()
+ user << "The heater is [on ? "on" : "off"] and the hatch is [open ? "open" : "closed"]."
if(open)
- usr << "The power cell is [cell ? "installed" : "missing"]."
+ user << "A power cell is [cell ? "installed" : "missing"]."
else
- usr << "The charge meter reads [cell ? round(cell.percent(),1) : 0]%"
- return
+ user << "The charge meter reads [cell ? round(cell.percent(),1) : 0]%."
/obj/machinery/space_heater/emp_act(severity)
if(stat & (BROKEN|NOPOWER))
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index 1e68c29d017..5ef5602e803 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -122,12 +122,11 @@
line1 = ""
update_display(line1, line2)
-/obj/machinery/status_display/examine()
- set src in view()
+/obj/machinery/status_display/examine(mob/user)
. = ..()
switch(mode)
if(1,2,4)
- usr << "The display says:
\t[message1]
\t[message2]"
+ user << "The display says:
\t[message1]
\t[message2]"
/obj/machinery/status_display/proc/set_message(m1, m2)
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index 65fd8b10523..c22f5980c5f 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -41,9 +41,9 @@
..()
-/obj/machinery/syndicatebomb/examine()
+/obj/machinery/syndicatebomb/examine(mob/user)
..()
- usr << "A digital display on it reads \"[timer]\"."
+ user << "A digital display on it reads \"[timer]\"."
/obj/machinery/syndicatebomb/update_icon()
icon_state = "[initial(icon_state)][active ? "-active" : "-inactive"][open_panel ? "-wires" : ""]"
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 22f292604e3..1096f5d5533 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -213,25 +213,24 @@
else
return 0
-/obj/mecha/examine()
- set src in view()
+/obj/mecha/examine(mob/user)
..()
var/integrity = health/initial(health)*100
switch(integrity)
if(85 to 100)
- usr << "It's fully intact."
+ user << "It's fully intact."
if(65 to 85)
- usr << "It's slightly damaged."
+ user << "It's slightly damaged."
if(45 to 65)
- usr << "It's badly damaged."
+ user << "It's badly damaged."
if(25 to 45)
- usr << "It's heavily damaged."
+ user << "It's heavily damaged."
else
- usr << "It's falling apart."
+ user << "It's falling apart."
if(equipment && equipment.len)
- usr << "It's equipped with:"
+ user << "It's equipped with:"
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
- usr << "\icon[ME] [ME]"
+ user << "\icon[ME] [ME]"
return
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index 4739bb01ddf..a35dbda9186 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -6,13 +6,6 @@
layer = 2.1
anchored = 1
-
-/obj/effect/decal/cleanable/crayon/examine()
- set src in view(2)
- ..()
- return
-
-
/obj/effect/decal/cleanable/crayon/New(location,main = "#FFFFFF", var/type = "rune")
..()
loc = location
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index c7818ed01ed..2c36dc9ca5b 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -86,9 +86,8 @@
src.loc = T
-/obj/item/examine()
- set src in view()
-
+/obj/item/examine(mob/user) //This might be spammy. Remove?
+ ..()
var/size
switch(src.w_class)
if(1.0)
@@ -106,25 +105,13 @@
else
//if ((CLUMSY in usr.mutations) && prob(50)) t = "funny-looking"
- //This reformat names to get a/an properly working on item descriptions when they are bloody
- var/f_name = "\a [src]"
- if(src.blood_DNA)
- f_name = "a bloody [name]"
-
- var/determiner
var/pronoun
if(src.gender == PLURAL)
- determiner = "These are"
pronoun = "They are"
else
- determiner = "This is"
pronoun = "It is"
- usr << "\icon[src][determiner] [f_name]. [pronoun] a [size] item." //e.g. These are some gloves. They are a small item. or This is a toolbox. It is a bulky item.
-
- if(src.desc)
- usr << src.desc
- return
+ user << "[pronoun] a [size] item." //e.g. They are a small item. or It is a bulky item.
/obj/item/attack_hand(mob/user as mob)
if (!user) return
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index e04b99cf265..f3d85bccb70 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -249,10 +249,6 @@
emp_cur_charges = min(emp_cur_charges+1, emp_max_charges)
return 1
-/obj/item/device/flashlight/emp/examine()
- ..()
- return
-
/obj/item/device/flashlight/emp/attack(mob/living/M as mob, mob/living/user as mob)
if(on && user.zone_sel.selecting == "eyes") // call original attack proc only if aiming at the eyes
..()
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 2b844aaa029..bd52904b789 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -66,10 +66,9 @@
failmsg = "The [name]'s refill light blinks red."
..()
-/obj/item/device/lightreplacer/examine()
- set src in view(2)
+/obj/item/device/lightreplacer/examine(mob/user)
..()
- usr << "It has [uses] lights remaining."
+ user << "It has [uses] light\s remaining."
/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/weapon/card/emag) && emagged == 0)
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index f279be66aed..e41c84f971f 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -443,16 +443,12 @@
return get_hearers_in_view(canhear_range, src)
-/obj/item/device/radio/examine()
- set src in view()
-
+/obj/item/device/radio/examine(mob/user)
..()
- if ((in_range(src, usr) || loc == usr))
- if (b_stat)
- usr.show_message("\the [src] can be attached and modified!")
- else
- usr.show_message("\the [src] can not be modified or attached!")
- return
+ if (b_stat)
+ user << "[name] can be attached and modified."
+ else
+ user << "[name] can not be modified or attached."
/obj/item/device/radio/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 094cbd93a40..02867db2e4d 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -26,10 +26,9 @@
update_icon()
-/obj/item/device/taperecorder/examine()
- set src in view(1)
+/obj/item/device/taperecorder/examine(mob/user)
..()
- usr << "The wire panel is [open_panel ? "opened" : "closed"]."
+ user << "The wire panel is [open_panel ? "opened" : "closed"]."
/obj/item/device/taperecorder/attackby(obj/item/I, mob/user)
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 9921a1ea472..38c95e33cfd 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -32,25 +32,23 @@
src.loc = null
..()
-/obj/item/stack/examine()
- set src in view(1)
+/obj/item/stack/examine(mob/user)
..()
if (is_cyborg)
if(src.singular_name)
- usr << "There is enough energy for [src.get_amount()] [src.singular_name]\s."
+ user << "There is enough energy for [src.get_amount()] [src.singular_name]\s."
else
- usr << "There is enough energy for [src.get_amount()]."
+ user << "There is enough energy for [src.get_amount()]."
return
if(src.singular_name)
if(src.get_amount()>1)
- usr << "There are [src.get_amount()] [src.singular_name]\s in the stack."
+ user << "There are [src.get_amount()] [src.singular_name]\s in the stack."
else
- usr << "There is [src.get_amount()] [src.singular_name] in the stack."
+ user << "There is [src.get_amount()] [src.singular_name] in the stack."
else if(src.get_amount()>1)
- usr << "There are [src.get_amount()] in the stack."
+ user << "There are [src.get_amount()] in the stack."
else
- usr << "There is [src.get_amount()] in the stack."
- return
+ user << "There is [src.get_amount()] in the stack."
/obj/item/stack/proc/get_amount()
if (is_cyborg)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 756a2884c77..df72dcfe7fd 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -109,7 +109,7 @@
*/
/obj/item/toy/gun
name = "cap gun"
- desc = "There are 0 caps left. Looks almost like the real thing! Ages 8 and up. Please recycle in an autolathe when you're out of caps!"
+ desc = "Looks almost like the real thing! Ages 8 and up. Please recycle in an autolathe when you're out of caps."
icon = 'icons/obj/gun.dmi'
icon_state = "revolver"
item_state = "gun"
@@ -121,12 +121,9 @@
attack_verb = list("struck", "pistol whipped", "hit", "bashed")
var/bullets = 7.0
-/obj/item/toy/gun/examine()
- set src in usr
-
- src.desc = text("There are [] cap\s left. Looks almost like the real thing! Ages 8 and up.", src.bullets)
+/obj/item/toy/gun/examine(mob/user)
..()
- return
+ user << "There [bullets == 1 ? "is" : "are"] [bullets] cap\s left."
/obj/item/toy/gun/attackby(obj/item/toy/ammo/gun/A as obj, mob/user as mob)
@@ -168,7 +165,7 @@
/obj/item/toy/ammo/gun
name = "ammo-caps"
- desc = "There are 7 caps left! Make sure to recyle the box in an autolathe when it gets empty."
+ desc = "Make sure to recyle the box in an autolathe when it gets empty."
icon = 'icons/obj/ammo.dmi'
icon_state = "357-7"
w_class = 1.0
@@ -178,8 +175,10 @@
/obj/item/toy/ammo/gun/update_icon()
src.icon_state = text("357-[]", src.amount_left)
- src.desc = text("There are [] cap\s left! Make sure to recycle the box in an autolathe when it gets empty.", src.amount_left)
- return
+
+/obj/item/toy/ammo/gun/examine(mob/user)
+ ..()
+ user << "There [amount_left == 1 ? "is" : "are"] [amount_left] cap\s left."
/*
* Toy crossbow
@@ -195,11 +194,10 @@
attack_verb = list("attacked", "struck", "hit")
var/bullets = 5
-/obj/item/toy/crossbow/examine()
- set src in view(2)
+/obj/item/toy/crossbow/examine(mob/user)
..()
if (bullets)
- usr << "It is loaded with [bullets] foam darts!"
+ user << "It is loaded with [bullets] foam dart\s."
/obj/item/toy/crossbow/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/toy/ammo/crossbow))
@@ -817,10 +815,9 @@ obj/item/toy/cards/singlecard
pixel_x = -5
-obj/item/toy/cards/singlecard/examine()
- set src in usr.contents
- if(ishuman(usr))
- var/mob/living/carbon/human/cardUser = usr
+obj/item/toy/cards/singlecard/examine(mob/user)
+ if(ishuman(user))
+ var/mob/living/carbon/human/cardUser = user
if(cardUser.get_item_by_slot(slot_l_hand) == src || cardUser.get_item_by_slot(slot_r_hand) == src)
cardUser.visible_message("[cardUser] checks \his card.", "The card reads: [src.cardname]")
else
diff --git a/code/game/objects/items/weapons/airlock_painter.dm b/code/game/objects/items/weapons/airlock_painter.dm
index fbf40592fb4..209ef6c386f 100644
--- a/code/game/objects/items/weapons/airlock_painter.dm
+++ b/code/game/objects/items/weapons/airlock_painter.dm
@@ -42,10 +42,10 @@
else
return 1
-/obj/item/weapon/airlock_painter/examine()
+/obj/item/weapon/airlock_painter/examine(mob/user)
..()
if(!ink)
- usr << "It doesn't have a toner cardridge installed."
+ user << "It doesn't have a toner cardridge installed."
return
var/ink_level = "high"
if(ink.charges < 1)
@@ -54,7 +54,8 @@
ink_level = "low"
else if((ink.charges/ink.max_charges) > 1) //Over 100% (admin var edit)
ink_level = "dangerously high"
- usr << "Its ink levels look [ink_level]."
+ user << "Its ink levels look [ink_level]."
+
/obj/item/weapon/airlock_painter/attackby(obj/item/weapon/W, mob/user)
..()
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 29e4534a1fe..83e8c61a90b 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -79,10 +79,10 @@
src.add_fingerprint(user)
return
-/obj/item/weapon/card/id/examine()
+/obj/item/weapon/card/id/examine(mob/user)
..()
if(mining_points)
- usr << "There's [mining_points] mining equipment redemption points loaded onto this card."
+ user << "There's [mining_points] mining equipment redemption point\s loaded onto this card."
/obj/item/weapon/card/id/GetAccess()
return access
diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index b4aa07a66bf..b6201fbefba 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -36,12 +36,6 @@
create_reagents(max_water)
reagents.add_reagent("water", max_water)
-/obj/item/weapon/extinguisher/examine()
- set src in usr
- ..()
- usr << "It contains [src.reagents.total_volume] units of water!"
- return
-
/obj/item/weapon/extinguisher/attack_self(mob/user as mob)
safety = !safety
src.icon_state = "[sprite_name][!safety]"
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 7d8a694085b..2078dfc93bf 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -21,8 +21,7 @@
name = "[initial(name)] casing" // By adding the " casing" part here we can use initial(name) to get the final name, making it nice to say "large grenade" when it is a large grenade.
-/obj/item/weapon/grenade/chem_grenade/examine()
- set src in usr
+/obj/item/weapon/grenade/chem_grenade/examine(mob/user)
display_timer = (stage == READY && !nadeassembly) //show/hide the timer based on assembly state
..()
diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm
index e2e203d9621..f76f605a17b 100644
--- a/code/game/objects/items/weapons/grenades/ghettobomb.dm
+++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm
@@ -97,8 +97,7 @@
explosion(src.loc,-1,-1,-1, flame_range = range) // no explosive damage, only a large fireball.
qdel(src)
-/obj/item/weapon/grenade/iedcasing/examine()
- set src in usr
+/obj/item/weapon/grenade/iedcasing/examine(mob/user)
..()
if(assembled == 3)
- usr << "You can't tell when it will explode!"
+ user << "You can't tell when it will explode!"
diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm
index 66f2a70d0e6..a049f4e795a 100644
--- a/code/game/objects/items/weapons/grenades/grenade.dm
+++ b/code/game/objects/items/weapons/grenades/grenade.dm
@@ -45,14 +45,13 @@
return*/
-/obj/item/weapon/grenade/examine()
- set src in usr
+/obj/item/weapon/grenade/examine(mob/user)
..()
if(display_timer)
if(det_time > 1)
- usr << "The timer is set to [det_time/10] seconds."
+ user << "The timer is set to [det_time/10] second\s."
else
- usr << "\The [src] is set for instant detonation."
+ user << "\The [src] is set for instant detonation."
/obj/item/weapon/grenade/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 f9558b784c8..1e0414ff121 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -24,19 +24,14 @@
src.icon_state = "[src.icon_type]box[total_contents]"
return
-/obj/item/weapon/storage/fancy/examine()
- set src in oview(1)
+/obj/item/weapon/storage/fancy/examine(mob/user)
..()
if(contents.len <= 0)
- usr << "There are no [src.icon_type]s left in the box."
+ user << "There are no [src.icon_type]s left in the box."
else if(contents.len == 1)
- usr << "There is one [src.icon_type] left in the box."
+ user << "There is one [src.icon_type] left in the box."
else
- usr << "There are [src.contents.len] [src.icon_type]s in the box."
-
- return
-
-
+ user << "There are [src.contents.len] [src.icon_type]s in the box."
/*
* Donut Box
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index 212a52cbf18..fee8cb5347a 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -27,10 +27,9 @@
max_w_class = 2
max_combined_w_class = 14
-/obj/item/weapon/storage/secure/examine()
- set src in oview(1)
+/obj/item/weapon/storage/secure/examine(mob/user)
..()
- usr << text("The service panel is [src.open ? "open" : "closed"].")
+ user << text("The service panel is [src.open ? "open" : "closed"].")
/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(locked)
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index cf6061596dd..99289eb3a1c 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -52,13 +52,12 @@
else
icon_state = "[initial(name)]"
-/obj/item/weapon/melee/baton/examine()
- set src in view(1)
+/obj/item/weapon/melee/baton/examine(mob/user)
..()
if(bcell)
- usr <<"The baton is [round(bcell.percent())]% charged."
+ user <<"The baton is [round(bcell.percent())]% charged."
if(!bcell)
- usr <<"The baton does not have a power source installed."
+ user <<"The baton does not have a power source installed."
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/weapon/stock_parts/cell))
diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm
index 56f1cc49056..6af3b539a8b 100644
--- a/code/game/objects/items/weapons/tanks/tank_types.dm
+++ b/code/game/objects/items/weapons/tanks/tank_types.dm
@@ -23,14 +23,6 @@
return
-/obj/item/weapon/tank/oxygen/examine()
- set src in usr
- ..()
- if(air_contents.oxygen < 10)
- usr << text("The meter on the [src.name] indicates you are almost out of air!")
- playsound(usr, 'sound/effects/alert.ogg', 50, 1)
-
-
/obj/item/weapon/tank/oxygen/yellow
desc = "A tank of oxygen, this one is yellow."
icon_state = "oxygen_f"
@@ -69,13 +61,6 @@
icon_state = "oxygen"
-/obj/item/weapon/tank/air/examine()
- set src in usr
- ..()
- if(air_contents.oxygen < 1 && loc==usr)
- usr << "The meter on the [src.name] indicates you are almost out of air!"
- usr << sound('sound/effects/alert.ogg')
-
/obj/item/weapon/tank/air/New()
..()
@@ -138,14 +123,6 @@
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
return
-
-/obj/item/weapon/tank/emergency_oxygen/examine()
- set src in usr
- ..()
- if(air_contents.oxygen < 0.2 && loc==usr)
- usr << text("The meter on the [src.name] indicates you are almost out of air!")
- usr << sound('sound/effects/alert.ogg')
-
/obj/item/weapon/tank/emergency_oxygen/engi
name = "extended-capacity emergency oxygen tank"
icon_state = "emergency_engi"
diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm
index cdb07a9e566..6540268103c 100644
--- a/code/game/objects/items/weapons/tanks/tanks.dm
+++ b/code/game/objects/items/weapons/tanks/tanks.dm
@@ -36,13 +36,13 @@
..()
-/obj/item/weapon/tank/examine()
+/obj/item/weapon/tank/examine(mob/user)
var/obj/icon = src
..()
if (istype(src.loc, /obj/item/assembly))
icon = src.loc
- if (!in_range(src, usr))
- if (icon == src) usr << "If you want any more information you'll need to get closer."
+ if (!in_range(src, user))
+ if (icon == src) user << "If you want any more information you'll need to get closer."
return
var/celsius_temperature = src.air_contents.temperature-T0C
@@ -61,9 +61,7 @@
else
descriptive = "furiously hot"
- usr << "It feels [descriptive]"
-
- return
+ user << "It feels [descriptive]."
/obj/item/weapon/tank/blob_act()
if(prob(50))
diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm
index 1df8270a496..b82ff3b8939 100644
--- a/code/game/objects/items/weapons/tanks/watertank.dm
+++ b/code/game/objects/items/weapons/tanks/watertank.dm
@@ -18,14 +18,6 @@
..()
create_reagents(volume)
noz = make_noz()
- return
-
-/obj/item/weapon/watertank/examine()
- set src in usr
- ..()
- for(var/datum/reagent/R in reagents.reagent_list)
- usr << "[round(R.volume)] units of [R.name] left."
- return
/obj/item/weapon/watertank/ui_action_click()
if (usr.get_item_by_slot(slot_back) == src)
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 0ff49f7cb63..e4bdb4cd5f2 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -151,10 +151,9 @@
reagents.add_reagent("fuel", max_fuel)
-/obj/item/weapon/weldingtool/examine()
- set src in usr
+/obj/item/weapon/weldingtool/examine(mob/user)
..()
- usr << "It contains [get_fuel()]/[max_fuel] units of fuel!"
+ user << "It contains [get_fuel()] unit\s of fuel out of [max_fuel]."
/obj/item/weapon/weldingtool/attackby(obj/item/I, mob/user)
@@ -445,4 +444,4 @@
throw_speed = 3
throw_range = 3
m_amt = 66
- icon_state = "crowbar_large"
\ No newline at end of file
+ icon_state = "crowbar_large"
diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm
index b78713e389f..a45dbf4e606 100644
--- a/code/game/objects/items/weapons/vending_items.dm
+++ b/code/game/objects/items/weapons/vending_items.dm
@@ -20,13 +20,12 @@
if(isnum(amt) && amt > -1)
charges = amt
-/obj/item/weapon/vending_refill/examine()
- set src in usr
+/obj/item/weapon/vending_refill/examine(mob/user)
..()
if(charges)
- usr << "It can restock [charges] item(s)."
+ user << "It can restock [charges] item(s)."
else
- usr << "It's empty!"
+ user << "It's empty!"
//NOTE I decided to go for about 1/3 of a machine's capacity
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 1f5b47a9e9d..289ecce7fd6 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -163,15 +163,14 @@ LINEN BINS
var/obj/item/hidden = null
-/obj/structure/bedsheetbin/examine()
+/obj/structure/bedsheetbin/examine(mob/user)
..()
if(amount < 1)
- usr << "There are no bed sheets in the bin."
- return
- if(amount == 1)
- usr << "There is one bed sheet in the bin."
- return
- usr << "There are [amount] bed sheets in the bin."
+ user << "There are no bed sheets in the bin."
+ else if(amount == 1)
+ user << "There is one bed sheet in the bin."
+ else
+ user << "There are [amount] bed sheets in the bin."
/obj/structure/bedsheetbin/update_icon()
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index 5fe1ebf7ca5..0e6416867dd 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -20,12 +20,6 @@
create_reagents(100)
-/obj/structure/janitorialcart/examine()
- set src in usr
- ..()
- usr << "It contains [reagents.total_volume] unit\s of liquid!"
- //everything else is visible, so doesn't need to be mentioned
-
/obj/structure/janitorialcart/proc/wet_mop(obj/item/weapon/mop, mob/user)
if(reagents.total_volume < 1)
user << "[src] is out of water!"
@@ -176,12 +170,10 @@
create_reagents(100)
-/obj/structure/stool/bed/chair/janicart/examine()
- set src in usr
+/obj/structure/stool/bed/chair/janicart/examine(mob/user)
..()
- usr << "It contains [reagents.total_volume] unit\s of water!"
if(mybag)
- usr << "\A [mybag] is hanging on the [callme]."
+ user << "\A [mybag] is hanging on \the [callme]."
/obj/structure/stool/bed/chair/janicart/attackby(obj/item/I, mob/user)
diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm
index 7a98605ce26..43975af4b0f 100644
--- a/code/game/objects/structures/mop_bucket.dm
+++ b/code/game/objects/structures/mop_bucket.dm
@@ -12,12 +12,6 @@
/obj/structure/mopbucket/New()
create_reagents(100)
-
-/obj/structure/mopbucket/examine()
- set src in usr
- ..()
- usr << "It contains [reagents.total_volume] unit\s of water!"
-
/obj/structure/mopbucket/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/mop))
if(reagents.total_volume < 1)
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 3097608333e..1dc4107d0a3 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -124,15 +124,12 @@
return
-/obj/item/device/assembly/examine()
- set src in view()
+/obj/item/device/assembly/examine(mob/user)
..()
- if((in_range(src, usr) || loc == usr))
- if(secured)
- usr << "\The [src] is ready!"
- else
- usr << "\The [src] can be attached!"
- return
+ if(secured)
+ user << "\The [src] is secured and ready to be used."
+ else
+ user << "\The [src] can be attached to other things."
/obj/item/device/assembly/attack_self(mob/user as mob)
diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm
index af2f1a73b59..9cbf195ef97 100644
--- a/code/modules/assembly/bomb.dm
+++ b/code/modules/assembly/bomb.dm
@@ -11,9 +11,9 @@
var/obj/item/device/assembly_holder/bombassembly = null //The first part of the bomb is an assembly holder, holding an igniter+some device
var/obj/item/weapon/tank/bombtank = null //the second part of the bomb is a plasma tank
-/obj/item/device/onetankbomb/examine()
+/obj/item/device/onetankbomb/examine(mob/user)
..()
- bombtank.examine()
+ user.examinate(bombtank)
/obj/item/device/onetankbomb/update_icon()
if(bombtank)
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index b2bde69df19..3bd27af3549 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -55,15 +55,13 @@
master.update_icon()
-/obj/item/device/assembly_holder/examine()
- set src in view()
+/obj/item/device/assembly_holder/examine(mob/user)
..()
- if ((in_range(src, usr) || src.loc == usr))
- if (src.secured)
- usr << "\The [src] is ready!"
- else
- usr << "\The [src] can be attached!"
- return
+ if(secured)
+ user << "\The [src] is secured and ready to be used."
+ else
+ user << "\The [src] can be attached to other things."
+
/obj/item/device/assembly_holder/HasProximity(atom/movable/AM as mob|obj)
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 130390dec5b..2e951f9f539 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -7,10 +7,10 @@
var/armed = 0
-/obj/item/device/assembly/mousetrap/examine()
+/obj/item/device/assembly/mousetrap/examine(mob/user)
..()
if(armed)
- usr << "It looks like it's armed."
+ user << "It looks like it's armed."
/obj/item/device/assembly/mousetrap/activate()
if(..())
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 8dae6424bb8..a1cce65e935 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -198,20 +198,19 @@ BLIND // can't see anything
return 1
-/obj/item/clothing/under/examine()
- set src in view()
+/obj/item/clothing/under/examine(mob/user)
..()
switch(src.sensor_mode)
if(0)
- usr << "Its sensors appear to be disabled."
+ user << "Its sensors appear to be disabled."
if(1)
- usr << "Its binary life sensors appear to be enabled."
+ user << "Its binary life sensors appear to be enabled."
if(2)
- usr << "Its vital tracker appears to be enabled."
+ user << "Its vital tracker appears to be enabled."
if(3)
- usr << "Its vital tracker and tracking beacon appear to be enabled."
+ user << "Its vital tracker and tracking beacon appear to be enabled."
if(hastie)
- usr << "\A [hastie] is attached to it."
+ user << "\A [hastie] is attached to it."
atom/proc/generate_uniform(index,t_color)
var/icon/female_uniform_icon = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_s")
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 0a35967a5c4..fba012bfee8 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -31,10 +31,9 @@
/obj/item/clothing/shoes/magboots/negates_gravity()
return flags & NOSLIP
-/obj/item/clothing/shoes/magboots/examine()
- set src in view()
+/obj/item/clothing/shoes/magboots/examine(mob/user)
..()
- usr << "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"]."
+ user << "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"]."
/obj/item/clothing/shoes/magboots/advance
@@ -48,4 +47,4 @@
desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders."
name = "blood-red magboots"
icon_state = "syndiemag0"
- magboot_state = "syndiemag"
\ No newline at end of file
+ magboot_state = "syndiemag"
diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm
index 7e15d10946a..aa1497767fa 100644
--- a/code/modules/events/ninja.dm
+++ b/code/modules/events/ninja.dm
@@ -2247,21 +2247,20 @@ ________________________________________________________________________________
U.drop_item()
return 0
-/obj/item/clothing/suit/space/space_ninja/examine()
- set src in view()
+/obj/item/clothing/suit/space/space_ninja/examine(mob/user)
..()
if(s_initialized)
- var/mob/living/carbon/human/U = affecting
- if(s_control)
- U << "All systems operational. Current energy capacity: [cell.charge]."
- if(!kamikaze)
- U << "The CLOAK-tech device is [s_active?"active":"inactive"]."
+ if(user == affecting)
+ if(s_control)
+ user << "All systems operational. Current energy capacity: [cell.charge]."
+ if(!kamikaze)
+ user << "The CLOAK-tech device is [s_active?"active":"inactive"]."
+ else
+ user << "KAMIKAZE MODE ENGAGED!"
+ user << "There are [s_bombs] smoke bomb\s remaining."
+ user << "There are [a_boost] adrenaline booster\s remaining."
else
- U << "KAMIKAZE MODE ENGAGED!"
- U << "There are [s_bombs] smoke bombs remaining."
- U << "There are [a_boost] adrenaline boosters remaining."
- else
- U << "�rr�R �a��a�� No-�-� f��N� 3RR�r"
+ user << "�rr�R �a��a�� No-�-� f��N� 3RR�r"
/*
===================================================================================
@@ -2506,12 +2505,10 @@ ________________________________________________________________________________
U << "You [candrain?"disable":"enable"] special interaction."
candrain=!candrain
-/obj/item/clothing/gloves/space_ninja/examine()
- set src in view()
+/obj/item/clothing/gloves/space_ninja/examine(mob/user)
..()
if(flags & NODROP)
- var/mob/living/carbon/human/U = loc
- U << "The energy drain mechanism is: [candrain?"active":"inactive"]."
+ user << "The energy drain mechanism is: [candrain?"active":"inactive"]."
/*
===================================================================================
@@ -2585,9 +2582,9 @@ ________________________________________________________________________________
voice = "Unknown"
return
-/obj/item/clothing/mask/gas/voice/space_ninja/examine()
+/obj/item/clothing/mask/gas/voice/space_ninja/examine(mob/user)
..()
- usr << "Voice mimicking algorithm is set [!vchange?"inactive":"active"]."
+ user << "Voice mimicking algorithm is set [!vchange?"inactive":"active"]."
/*
===================================================================================
diff --git a/code/modules/food&drinks/drinks/drinks.dm b/code/modules/food&drinks/drinks/drinks.dm
index b3ec99101bf..798ab613253 100644
--- a/code/modules/food&drinks/drinks/drinks.dm
+++ b/code/modules/food&drinks/drinks/drinks.dm
@@ -87,22 +87,6 @@
return
-/obj/item/weapon/reagent_containers/food/drinks/examine()
- set src in view()
- ..()
- if (!(usr in range(0)) && usr!=src.loc) return
- if(!reagents || reagents.total_volume==0)
- usr << "\The [src] is empty!"
- else if (reagents.total_volume<=src.volume/4)
- usr << "\The [src] is almost empty!"
- else if (reagents.total_volume<=src.volume*0.66)
- usr << "\The [src] is half full!"
- else if (reagents.total_volume<=src.volume*0.90)
- usr << "\The [src] is almost full!"
- else
- usr << "\The [src] is full!"
-
-
////////////////////////////////////////////////////////////////////////////////
/// Drinks. END
////////////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/food&drinks/food/snacks.dm b/code/modules/food&drinks/food/snacks.dm
index 34625cda3fc..07eb64cbe03 100644
--- a/code/modules/food&drinks/food/snacks.dm
+++ b/code/modules/food&drinks/food/snacks.dm
@@ -107,19 +107,16 @@
return
-/obj/item/weapon/reagent_containers/food/snacks/examine()
- set src in view()
+/obj/item/weapon/reagent_containers/food/snacks/examine(mob/user)
..()
- if(!(usr in range(1)) && usr != loc)
- return
if(bitecount == 0)
return
else if(bitecount == 1)
- usr << "[src] was bitten by someone!"
+ user << "[src] was bitten by someone!"
else if(bitecount <= 3)
- usr << "[src] was bitten [bitecount] times!"
+ user << "[src] was bitten [bitecount] times!"
else
- usr << "[src] was bitten multiple times!"
+ user << "[src] was bitten multiple times!"
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W, mob/user)
diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index 8aa2b1b019f..f9d34d489e5 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -392,9 +392,9 @@
user << "There's no points left on [src]."
..()
-/obj/item/weapon/card/mining_point_card/examine()
+/obj/item/weapon/card/mining_point_card/examine(mob/user)
..()
- usr << "There's [points] points on the card."
+ user << "There's [points] point\s on the card."
/**********************Jaunter**********************/
@@ -533,13 +533,10 @@
/obj/item/clothing/mask/facehugger/toy
desc = "A toy often used to play pranks on other miners by putting it in their beds. It takes a bit to recharge after latching onto something."
throwforce = 0
+ real = 0
sterile = 1
tint = 3 //Makes it feel more authentic when it latches on
-/obj/item/clothing/mask/facehugger/toy/examine()//So that giant red text about probisci doesn't show up.
- if(desc)
- usr << desc
-
/obj/item/clothing/mask/facehugger/toy/Die()
return
@@ -725,12 +722,12 @@
if(!malfunctioning)
malfunctioning = 1
-/obj/item/weapon/lazarus_injector/examine()
+/obj/item/weapon/lazarus_injector/examine(mob/user)
..()
if(!loaded)
- usr << "[src] is empty."
+ user << "[src] is empty."
if(malfunctioning)
- usr << "The display on [src] seems to be flickering."
+ user << "The display on [src] seems to be flickering."
/**********************Mining Scanner**********************/
/obj/item/device/t_scanner/mining_scanner
diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm
index 645dd8d9772..bb07bb2f569 100644
--- a/code/modules/mining/laborcamp/laborstacker.dm
+++ b/code/modules/mining/laborcamp/laborstacker.dm
@@ -148,8 +148,8 @@
density = 0
anchored = 1
-/obj/machinery/mineral/labor_points_checker/attack_hand(user as mob)
- examine(user)
+/obj/machinery/mineral/labor_points_checker/attack_hand(mob/user)
+ user.examinate(src)
/obj/machinery/mineral/labor_points_checker/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/card/id))
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index bac012618e0..a1e9c378f4e 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -111,10 +111,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
for(var/obj/effect/step_trigger/S in locate(x, y, z)) //<-- this is dumb
S.Crossed(src)
-/mob/dead/observer/examine()
- if(usr)
- usr << desc
-
/mob/dead/observer/can_use_hands() return 0
/mob/dead/observer/is_active() return 0
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index c59d83cd26e..fecd02cc271 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -22,7 +22,7 @@ var/const/MAX_ACTIVE_TIME = 400
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
var/sterile = 0
-
+ var/real = 1 //0 for the toy, 1 for real. Sure I could istype, but fuck that.
var/strength = 5
var/attached = 0
@@ -44,16 +44,17 @@ var/const/MAX_ACTIVE_TIME = 400
user.unEquip(src)
Attach(M)
-/obj/item/clothing/mask/facehugger/examine()
+/obj/item/clothing/mask/facehugger/examine(mob/user)
..()
+ if(!real)//So that giant red text about probisci doesn't show up.
+ return
switch(stat)
if(DEAD,UNCONSCIOUS)
- usr << "[src] is not moving."
+ user << "[src] is not moving."
if(CONSCIOUS)
- usr << "[src] seems to be active."
+ user << "[src] seems to be active!"
if (sterile)
- usr << "It looks like the proboscis has been removed."
- return
+ user << "It looks like the proboscis has been removed."
/obj/item/clothing/mask/facehugger/attackby(var/obj/item/O,var/mob/m)
if(O.force)
diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm
index 45c4ee7b62f..0c98d53c218 100644
--- a/code/modules/mob/living/carbon/brain/brain_item.dm
+++ b/code/modules/mob/living/carbon/brain/brain_item.dm
@@ -33,15 +33,12 @@
brainmob << "You feel slightly disoriented. That's normal when you're just a brain."
-/obj/item/organ/brain/examine()
- set src in oview(12)
- if(!usr) return
-
+/obj/item/organ/brain/examine(mob/user)
..()
if(brainmob && brainmob.client)
- usr << "You can feel the small spark of life still left in this one."
+ user << "You can feel the small spark of life still left in this one."
else
- usr << "This one seems particularly lifeless. Perhaps it will regain some of it's luster later.."
+ user << "This one seems particularly lifeless. Perhaps it will regain some of its luster later."
/obj/item/organ/brain/attack(mob/living/carbon/M, mob/user)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index d2249e11184..9ebc3a496e1 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -1,10 +1,4 @@
-/mob/living/carbon/human/examine()
- set src in view()
-
- if(!usr || !src) return
- if( usr.sdisabilities & BLIND || usr.blinded || usr.stat==UNCONSCIOUS )
- usr << "Something is there but you can't see it."
- return
+/mob/living/carbon/human/examine(mob/user)
var/list/obscured = check_obscured_slots()
var/skipface = 0
@@ -156,7 +150,7 @@
else if(istype(wear_id, /obj/item/weapon/card/id)) //just in case something other than a PDA/ID card somehow gets in the ID slot :[
var/obj/item/weapon/card/id/idcard = wear_id
id = idcard.registered_name
- if(id && (id != real_name) && (get_dist(src, usr) <= 1) && prob(10))
+ if(id && (id != real_name) && (get_dist(src, user) <= 1) && prob(10))
msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...\n"
else*/
msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id].\n"
@@ -233,7 +227,7 @@
if(nutrition < 100)
msg += "[t_He] [t_is] severely malnourished.\n"
else if(nutrition >= 500)
- if(usr.nutrition < 100)
+ if(user.nutrition < 100)
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
else
msg += "[t_He] [t_is] quite chubby.\n"
@@ -256,10 +250,10 @@
msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly inhuman manner.\n"
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
+ if(istype(user, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = user
if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/hud/security/sunglasses))
- if(!usr.stat && usr != src) //|| !usr.canmove || usr.restrained()) Fluff: Sechuds have eye-tracking technology and sets 'arrest' to people that the wearer looks and blinks at.
+ if(!user.stat && user != src) //|| !user.canmove || user.restrained()) Fluff: Sechuds have eye-tracking technology and sets 'arrest' to people that the wearer looks and blinks at.
var/criminal = "None"
var/perpname = get_face_name(get_id_name(""))
@@ -276,4 +270,4 @@
msg += "*---------*"
- usr << msg
+ user << msg
diff --git a/code/modules/mob/living/carbon/monkey/examine.dm b/code/modules/mob/living/carbon/monkey/examine.dm
index 6fc0a1d4772..a3686d7a478 100644
--- a/code/modules/mob/living/carbon/monkey/examine.dm
+++ b/code/modules/mob/living/carbon/monkey/examine.dm
@@ -1,11 +1,4 @@
-/mob/living/carbon/monkey/examine()
- set src in oview()
-
- if(!usr || !src) return
- if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
- usr << "Something is there but you can't see it."
- return
-
+/mob/living/carbon/monkey/examine(mob/user)
var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
if (src.handcuffed)
@@ -47,5 +40,4 @@
msg += "*---------*"
- usr << msg
- return
\ No newline at end of file
+ user << msg
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/slime/examine.dm b/code/modules/mob/living/carbon/slime/examine.dm
index e687e435637..609addde9f5 100644
--- a/code/modules/mob/living/carbon/slime/examine.dm
+++ b/code/modules/mob/living/carbon/slime/examine.dm
@@ -1,37 +1,31 @@
-/mob/living/carbon/slime/examine()
- set src in oview()
-
- if(!usr || !src) return
- if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
- usr << "Something is there but you can't see it."
- return
-
- var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
- if (src.stat == DEAD)
- msg += "It is limp and unresponsive.\n"
- else
- if (src.getBruteLoss())
- msg += ""
- if (src.getBruteLoss() < 40)
- msg += "It has some punctures in its flesh!"
- else
- msg += "It has severe punctures and tears in its flesh!"
- msg += "\n"
-
- switch(powerlevel)
-
- if(2 to 3)
- msg += "It is flickering gently with a little electrical activity.\n"
-
- if(4 to 5)
- msg += "It is glowing gently with moderate levels of electrical activity.\n"
-
- if(6 to 9)
- msg += "It is glowing brightly with high levels of electrical activity.\n"
-
- if(10)
- msg += "It is radiating with massive levels of electrical activity!\n"
-
- msg += "*---------*"
- usr << msg
+/mob/living/carbon/slime/examine(mob/user)
+
+ var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
+ if (src.stat == DEAD)
+ msg += "It is limp and unresponsive.\n"
+ else
+ if (src.getBruteLoss())
+ msg += ""
+ if (src.getBruteLoss() < 40)
+ msg += "It has some punctures in its flesh!"
+ else
+ msg += "It has severe punctures and tears in its flesh!"
+ msg += "\n"
+
+ switch(powerlevel)
+
+ if(2 to 3)
+ msg += "It is flickering gently with a little electrical activity.\n"
+
+ if(4 to 5)
+ msg += "It is glowing gently with moderate levels of electrical activity.\n"
+
+ if(6 to 9)
+ msg += "It is glowing brightly with high levels of electrical activity.\n"
+
+ if(10)
+ msg += "It is radiating with massive levels of electrical activity!\n"
+
+ msg += "*---------*"
+ user << msg
return
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm
index 1a36ce5a9b7..033a5bcd970 100644
--- a/code/modules/mob/living/silicon/ai/examine.dm
+++ b/code/modules/mob/living/silicon/ai/examine.dm
@@ -1,11 +1,4 @@
-/mob/living/silicon/ai/examine()
- set src in oview()
-
- if(!usr || !src) return
- if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
- usr << "Something is there but you can't see it."
- return
-
+/mob/living/silicon/ai/examine(mob/user)
var/msg = "*---------*\nThis is \icon[src] [src]!\n"
if (src.stat == DEAD)
msg += "It appears to be powered-down.\n"
@@ -27,5 +20,4 @@
msg += ""
msg += "*---------*"
- usr << msg
- return
\ No newline at end of file
+ user << msg
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/pai/examine.dm b/code/modules/mob/living/silicon/pai/examine.dm
index 26010d63535..79268c87673 100644
--- a/code/modules/mob/living/silicon/pai/examine.dm
+++ b/code/modules/mob/living/silicon/pai/examine.dm
@@ -1,27 +1,2 @@
/mob/living/silicon/pai/examine() //removed as it was pointless...moved to the pai-card instead.
- /* This is totaly pointless because this mob is contained inside a card!
- set src in oview()
-
- var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
- if (src.stat == DEAD)
- msg += "It appears to be offline.\n"
- else
- msg += ""
- if (src.getBruteLoss())
- if (src.getBruteLoss() < 30)
- msg += "It looks slightly dented.\n"
- else
- msg += "Its casing appears cracked and broken!\n"
- if (src.getFireLoss())
- if (src.getFireLoss() < 30)
- msg += "It looks slightly charred!\n"
- else
- msg += "Its casing is melted and heat-warped!\n"
- if (src.stat == UNCONSCIOUS)
- msg += "It doesn't seem to be responding and its text-output is lagging.\n"
- msg += ""
- msg += "*---------*"
-
- usr << msg
- */
return
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm
index 0b8521249ca..15457054fbc 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -1,11 +1,4 @@
-/mob/living/silicon/robot/examine()
- set src in oview()
-
- if(!usr || !src) return
- if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) )
- usr << "Something is there but you can't see it."
- return
-
+/mob/living/silicon/robot/examine(mob/user)
var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
var/obj/act_module = get_active_hand()
if(act_module)
@@ -41,5 +34,4 @@
if(DEAD) msg += "It looks like its system is corrupted and requires a reset.\n"
msg += "*---------*"
- usr << msg
- return
+ user << msg
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index 6b6e01220af..db36be554f2 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -43,9 +43,7 @@
qdel(src)
return
-/mob/living/simple_animal/construct/examine()
- set src in oview()
-
+/mob/living/simple_animal/construct/examine(mob/user)
var/msg = "*---------*\nThis is \icon[src] \a [src]!\n"
if (src.health < src.maxHealth)
msg += ""
@@ -56,8 +54,7 @@
msg += ""
msg += "*---------*"
- usr << msg
- return
+ user << msg
/mob/living/simple_animal/construct/Bump(atom/movable/AM as mob|obj, yes)
if ((!( yes ) || now_pushing))
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index 5ac42db3fe5..bbd5accf7e4 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -31,12 +31,12 @@
var/image/cap_living = null //Where we store our cap icons so we dont generate them constantly to update our icon
var/image/cap_dead = null
-/mob/living/simple_animal/hostile/mushroom/examine()
+/mob/living/simple_animal/hostile/mushroom/examine(mob/user)
..()
if(health >= maxHealth)
- usr << "It looks healthy."
+ user << "It looks healthy."
else
- usr << "It looks like it's been roughed up."
+ user << "It looks like it's been roughed up."
/mob/living/simple_animal/hostile/mushroom/Life()
..()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index eebe552a8d6..923eb6d42ba 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -285,6 +285,18 @@ var/list/slot_equipment_priority = list( \
user << browse(dat, "window=mob\ref[src];size=325x500")
onclose(user, "mob\ref[src]")
+//mob verbs are faster than object verbs. See http://www.byond.com/forum/?post=1326139&page=2#comment8198716 for why this isn't atom/verb/examine()
+/mob/verb/examinate(atom/A as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why
+ set name = "Examine"
+ set category = "IC"
+
+// if( (sdisabilities & BLIND || blinded || stat) && !istype(src,/mob/dead/observer) )
+ if(is_blind(src))
+ src << "Something is there but you can't see it."
+ return
+
+ face_atom(A)
+ A.examine(src)
/mob/verb/mode()
set name = "Activate Held Object"
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index d71b89782c6..78a8fe94662 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -103,7 +103,7 @@
if(href_list["read"])
var/obj/item/weapon/paper/P = locate(href_list["read"])
if(istype(P) && P.loc == src)
- P.examine()
+ usr.examinate(P)
if(href_list["top"])
var/obj/item/P = locate(href_list["top"])
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 529d6ce79db..a0ee5982c54 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -67,7 +67,7 @@
if(href_list["read"])
var/obj/item/I = locate(href_list["read"])
if(istype(I) && I.loc == src)
- I.examine()
+ usr.examinate(I)
//Update everything
attack_self(usr)
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index ca7439f8d12..0482bee113c 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -48,20 +48,17 @@
icon_state = "paper"
-/obj/item/weapon/paper/examine()
- set src in oview(1)
-
- if(is_blind(usr))
- return
- if(in_range(usr, src))
- if( !(ishuman(usr) || isobserver(usr) || issilicon(usr)) )
- usr << browse("[name][stars(info)]
[stamps]", "window=[name]")
- onclose(usr, "[name]")
+/obj/item/weapon/paper/examine(mob/user)
+ ..()
+ if(in_range(user, src))
+ if( !(ishuman(user) || isobserver(user) || issilicon(user)) )
+ user << browse("[name][stars(info)]
[stamps]", "window=[name]")
+ onclose(user, "[name]")
else
- usr << browse("[name][info]
[stamps]", "window=[name]")
- onclose(usr, "[name]")
+ user << browse("[name][info]
[stamps]", "window=[name]")
+ onclose(user, "[name]")
else
- usr << "It is too far away."
+ user << "It is too far away."
/obj/item/weapon/paper/verb/rename()
@@ -80,7 +77,7 @@
/obj/item/weapon/paper/attack_self(mob/user)
- examine()
+ user.examinate(src)
if(rigged && (events.holiday == "April Fool's Day"))
if(spam_flag == 0)
spam_flag = 1
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index 3d3bbbcf63c..6632e754829 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -74,13 +74,12 @@
update_icon()
-/obj/item/weapon/paper_bin/examine()
- set src in oview(1)
+/obj/item/weapon/paper_bin/examine(mob/user)
..()
if(amount)
- usr << "It contains " + (amount > 1 ? "[amount] papers" : " one paper")+"."
+ user << "It contains " + (amount > 1 ? "[amount] papers" : " one paper")+"."
else
- usr << "It doesn't contain anything."
+ user << "It doesn't contain anything."
/obj/item/weapon/paper_bin/update_icon()
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index 88fa0d37683..1586b5c6ae5 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -35,7 +35,7 @@
/obj/item/weapon/photo/attack_self(mob/user)
- examine()
+ user.examinate(src)
/obj/item/weapon/photo/attackby(obj/item/weapon/P, mob/user)
@@ -47,15 +47,13 @@
..()
-/obj/item/weapon/photo/examine()
- set src in oview(1)
- if(is_blind(usr)) return
+/obj/item/weapon/photo/examine(mob/user)
+ ..()
- if(in_range(usr, src))
- show(usr)
- usr << desc
+ if(in_range(user, src))
+ show(user)
else
- usr << "It is too far away."
+ user << "You need to get closer to get a good look at this photo."
/obj/item/weapon/photo/proc/show(mob/user)
@@ -150,9 +148,9 @@
..()
-/obj/item/device/camera/examine()
+/obj/item/device/camera/examine(mob/user)
..()
- usr << "It has [pictures_left] photos left."
+ user << "It has [pictures_left] photos left."
/obj/item/device/camera/proc/camera_get_icon(list/turfs, turf/center)
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 98d63f963a0..63d967b579d 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -184,31 +184,25 @@
spawn(5)
src.update()
-/obj/machinery/power/apc/examine()
- set src in oview(1)
-
- if(usr /*&& !usr.stat*/)
- ..()
- if(stat & BROKEN)
- usr << "Looks broken."
- return
- if(opened)
- if(has_electronics && terminal)
- usr << "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]."
- else if (!has_electronics && terminal)
- usr << "There are some wires but no any electronics."
- else if (has_electronics && !terminal)
- usr << "Electronics installed but not wired."
- else /* if (!has_electronics && !terminal) */
- usr << "There is no electronics nor connected wires."
-
+/obj/machinery/power/apc/examine(mob/user)
+ ..()
+ if(stat & BROKEN)
+ user << "Looks broken."
+ return
+ if(opened)
+ if(has_electronics && terminal)
+ user << "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]."
else
- if (stat & MAINT)
- usr << "The cover is closed. Something wrong with it: it doesn't work."
- else if (malfhack)
- usr << "The cover is broken. It may be hard to force it open."
- else
- usr << "The cover is closed."
+ user << "It's [!terminal?" not":""]wired up."
+ user << "The electronics are[!has_electronics?"n't":""] installed."
+
+ else
+ if (stat & MAINT)
+ user << "The cover is closed. Something is wrong with it. It doesn't work."
+ else if (malfhack)
+ user << "The cover is broken. It may be hard to force it open."
+ else
+ user << "The cover is closed."
// update the APC icon to show the three base states
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index ba869fce07f..dcdc62358c8 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -463,6 +463,7 @@ obj/structure/cable/proc/avail()
/obj/item/stack/cable_coil
name = "cable coil"
+ gender = NEUTER //That's a cable coil sounds better than that's some cable coils
icon = 'icons/obj/power.dmi'
icon_state = "coil_red"
item_state = "coil_red"
@@ -478,6 +479,7 @@ obj/structure/cable/proc/avail()
flags = CONDUCT
slot_flags = SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
+ singular_name = "cable piece"
/obj/item/stack/cable_coil/cyborg
is_cyborg = 1
@@ -533,20 +535,6 @@ obj/structure/cable/proc/avail()
name = "cable coil"
-/obj/item/stack/cable_coil/examine()
- set src in view(1)
-
- if (is_cyborg)
- usr << "A cable synthesizer. Currently has energy for [get_amount()] lengths of cable."
- else
- if(get_amount() == 1)
- usr << "A short piece of power cable."
- else if(get_amount() == 2)
- usr << "A piece of power cable."
- else
- usr << "A coil of power cable. There are [get_amount()] lengths of cable in the coil."
-
-
/obj/item/stack/cable_coil/verb/make_restraint()
set name = "Make Cable Restraints"
set category = "Object"
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 2b60ba46e4d..96a84396d35 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -5,9 +5,9 @@
/obj/item/weapon/stock_parts/cell/New()
..()
charge = maxcharge
+ desc = "This cell has a power rating of [maxcharge], and you should not swallow it."
- spawn(5)
- updateicon()
+ updateicon()
/obj/item/weapon/stock_parts/cell/proc/updateicon()
overlays.Cut()
@@ -50,13 +50,12 @@
return power_used
-/obj/item/weapon/stock_parts/cell/examine()
- set src in view(1)
+/obj/item/weapon/stock_parts/cell/examine(mob/user)
..()
- if(usr /*&& !usr.stat*/)
- usr << "This cell has a power rating of [maxcharge], and you should not swallow it.\nThe charge meter reads [round(src.percent() )]%."
- if(crit_fail)
- usr << "This power cell seems to be faulty."
+ if(crit_fail || rigged)
+ user << "This power cell seems to be faulty!"
+ else
+ user << "The charge meter reads [round(src.percent() )]%."
/obj/item/weapon/stock_parts/cell/attack_self(mob/user as mob)
src.add_fingerprint(user)
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 43551762fa9..6f2acec9a21 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -84,20 +84,15 @@
if (fixture_type == "bulb")
icon_state = "bulb-construct-stage1"
-/obj/machinery/light_construct/examine()
- set src in view()
+/obj/machinery/light_construct/examine(mob/user)
..()
- if (!(usr in view(2))) return
switch(src.stage)
if(1)
- usr << "It's an empty frame."
- return
+ user << "It's an empty frame."
if(2)
- usr << "It's wired."
- return
+ user << "It's wired."
if(3)
- usr << "The casing is closed."
- return
+ user << "The casing is closed."
/obj/machinery/light_construct/attackby(obj/item/weapon/W as obj, mob/user as mob)
src.add_fingerprint(user)
@@ -317,19 +312,17 @@
update()
// examine verb
-/obj/machinery/light/examine()
- set src in oview(1)
+/obj/machinery/light/examine(mob/user)
..()
- if(usr && !usr.stat)
- switch(status)
- if(LIGHT_OK)
- usr << "It is turned [on? "on" : "off"]."
- if(LIGHT_EMPTY)
- usr << "The [fitting] has been removed."
- if(LIGHT_BURNED)
- usr << "The [fitting] is burnt out."
- if(LIGHT_BROKEN)
- usr << "The [fitting] has been smashed."
+ switch(status)
+ if(LIGHT_OK)
+ user << "It is turned [on? "on" : "off"]."
+ if(LIGHT_EMPTY)
+ user << "The [fitting] has been removed."
+ if(LIGHT_BURNED)
+ user << "The [fitting] is burnt out."
+ if(LIGHT_BROKEN)
+ user << "The [fitting] has been smashed."
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 5bb5c072507..dc5a4cc8a06 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -31,7 +31,7 @@ tank [un]loading stuff
/obj/machinery/power/port_gen/attack_hand(mob/user)
turn on/off
-/obj/machinery/power/port_gen/examine()
+/obj/machinery/power/port_gen/examine(mob/user)
display round(lastgen) and plasmatank amount
*/
@@ -84,13 +84,9 @@ display round(lastgen) and plasmatank amount
if(!anchored)
return
-/obj/machinery/power/port_gen/examine()
- set src in oview(1)
+/obj/machinery/power/port_gen/examine(mob/user)
..()
- if(active)
- usr << "It is running."
- else
- usr << "It isn't running."
+ user << "It is[!active?"n't":""] running."
/obj/machinery/power/port_gen/pacman
name = "\improper P.A.C.M.A.N.-type portable generator"
@@ -142,10 +138,10 @@ display round(lastgen) and plasmatank amount
power_gen = round(initial(power_gen) * temp_rating * 2)
consumption = consumption_coeff
-/obj/machinery/power/port_gen/pacman/examine()
+/obj/machinery/power/port_gen/pacman/examine(mob/user)
..()
- usr << "The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle."
- if(crit_fail) usr << "The generator seems to have broken down."
+ user << "The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle."
+ if(crit_fail) user << "The generator seems to have broken down."
/obj/machinery/power/port_gen/pacman/HasFuel()
if(sheets >= 1 / (time_per_sheet / power_output) - sheet_left)
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 85684c8e756..41c8d44135f 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -110,7 +110,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.dir = turn(src.dir, 90)
return 1
-/obj/structure/particle_accelerator/examine()
+/obj/structure/particle_accelerator/examine(mob/user)
switch(src.construction_state)
if(0)
src.desc = text("A [name], looks like it's not attached to the flooring")
@@ -123,7 +123,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
if(powered)
src.desc = src.desc_holder
..()
- return
/obj/structure/particle_accelerator/attackby(obj/item/W, mob/user)
@@ -303,7 +302,7 @@ 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()
+/obj/machinery/particle_accelerator/examine(mob/user)
switch(src.construction_state)
if(0)
src.desc = text("A [name], looks like it's not attached to the flooring")
@@ -316,7 +315,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
if(powered)
src.desc = src.desc_holder
..()
- return
/obj/machinery/particle_accelerator/attackby(obj/item/W, mob/user)
diff --git a/code/modules/power/switch.dm b/code/modules/power/switch.dm
index 844c88a0b83..1a03f03de29 100644
--- a/code/modules/power/switch.dm
+++ b/code/modules/power/switch.dm
@@ -21,12 +21,12 @@
icon_state_off = "switch-up"
-/obj/structure/powerswitch/examine()
+/obj/structure/powerswitch/examine(mob/user)
..()
if(on)
- usr << "The switch is in the on position"
+ user << "The switch is in the on position"
else
- usr << "The switch is in the off position"
+ user << "The switch is in the off position"
/obj/structure/powerswitch/attack_ai(mob/user)
user << "\red You're an AI. This is a manual switch. It's not going to work."
diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm
index b6d5446ce0d..ad7246f8359 100644
--- a/code/modules/projectiles/guns/magic/wand.dm
+++ b/code/modules/projectiles/guns/magic/wand.dm
@@ -17,10 +17,9 @@
max_charges = Ceiling(max_charges / 2)
..()
-/obj/item/weapon/gun/magic/wand/examine()
+/obj/item/weapon/gun/magic/wand/examine(mob/user)
..()
- usr << "Has [charges] charge\s remaining."
- return
+ user << "Has [charges] charge\s remaining."
/obj/item/weapon/gun/magic/wand/update_icon()
icon_state = "[initial(icon_state)][charges ? "" : "-drained"]"
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index 71fed16e43c..01d1f6f354f 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -69,10 +69,9 @@
return
-/obj/item/weapon/gun/projectile/examine()
+/obj/item/weapon/gun/projectile/examine(mob/user)
..()
- usr << "Has [get_ammo()] round\s remaining."
- return
+ user << "Has [get_ammo()] round\s remaining."
/obj/item/weapon/gun/projectile/proc/get_ammo(var/countchambered = 1)
var/boolets = 0 //mature var names for mature people
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index d313deaa92b..b61923d6b44 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -45,9 +45,9 @@
boolets += magazine.ammo_count(countempties)
return boolets
-/obj/item/weapon/gun/projectile/revolver/examine()
+/obj/item/weapon/gun/projectile/revolver/examine(mob/user)
..()
- usr << "[get_ammo(0,0)] of those are live rounds."
+ user << "[get_ammo(0,0)] of those are live rounds."
/obj/item/weapon/gun/projectile/revolver/detective
desc = "A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-special rounds."
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index 73f77560692..019396875d7 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -47,10 +47,10 @@
update_icon() //I.E. fix the desc
return 1
-/obj/item/weapon/gun/projectile/shotgun/examine()
+/obj/item/weapon/gun/projectile/shotgun/examine(mob/user)
..()
if (chambered)
- usr << "A [chambered.BB ? "live" : "spent"] one is in the chamber."
+ user << "A [chambered.BB ? "live" : "spent"] one is in the chamber."
/obj/item/weapon/gun/projectile/shotgun/combat
name = "combat shotgun"
diff --git a/code/modules/reagents/grenade_launcher.dm b/code/modules/reagents/grenade_launcher.dm
index 986141ccda6..15e8f7ef51c 100644
--- a/code/modules/reagents/grenade_launcher.dm
+++ b/code/modules/reagents/grenade_launcher.dm
@@ -12,12 +12,9 @@
var/max_grenades = 3
m_amt = 2000
-/obj/item/weapon/gun/grenadelauncher/examine()
- set src in view()
+/obj/item/weapon/gun/grenadelauncher/examine(mob/user)
..()
- if(!(usr in view(2)) && usr != loc)
- return
- usr << "[grenades] / [max_grenades] grenades."
+ user << "[grenades] / [max_grenades] grenades loaded."
/obj/item/weapon/gun/grenadelauncher/attackby(obj/item/I 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 15ced044b95..6fe8b06f328 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -108,9 +108,10 @@ Borg Hypospray
user << "[src] is now dispensing '[R.name]'."
return
-/obj/item/weapon/reagent_containers/borghypo/examine()
+/obj/item/weapon/reagent_containers/borghypo/examine(mob/user)
+ usr = user
..()
- DescribeContents()
+ DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this
/obj/item/weapon/reagent_containers/borghypo/proc/DescribeContents()
var/empty = 1
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index d4d778451c4..8a194fd4e9d 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -32,15 +32,7 @@
/mob/living/simple_animal/hostile/retaliate/goat
)
-/obj/item/weapon/reagent_containers/glass/examine()
- set src in view()
- ..()
- if(!(usr in view(2)) && usr != loc)
- return
- if(reagents && reagents.reagent_list.len)
- usr << "It contains:"
- for(var/datum/reagent/R in reagents.reagent_list)
- usr << "[R.volume] units of [R.name]"
+
/obj/item/weapon/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
if(!proximity) return // not adjacent
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 92109b168f7..87b82950be1 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -76,14 +76,6 @@
spray_currentrange = (spray_currentrange == 1 ? spray_maxrange : 1)
user << "You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray."
-
-/obj/item/weapon/reagent_containers/spray/examine()
- set src in usr
- ..()
- for(var/datum/reagent/R in reagents.reagent_list)
- usr << "[round(R.volume)] units of [R.name] left."
- return
-
/obj/item/weapon/reagent_containers/spray/verb/empty()
set name = "Empty Spray Bottle"
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 2e24d578572..46a9dfa4da0 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -39,17 +39,6 @@
src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
..()
-/obj/structure/reagent_dispensers/examine()
- set src in view()
- ..()
- if (!(usr in view(2)) && usr!=src.loc) return
- usr << "It contains:"
- if(reagents && reagents.reagent_list.len)
- for(var/datum/reagent/R in reagents.reagent_list)
- usr << "[R.volume] units of [R.name]"
- else
- usr << "Nothing."
-
/obj/structure/reagent_dispensers/verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
set category = "Object"
diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm
index 83c5f3dcfb4..6e913260b32 100644
--- a/code/modules/reagents/syringe_gun.dm
+++ b/code/modules/reagents/syringe_gun.dm
@@ -39,10 +39,9 @@
newshot()
..()
-/obj/item/weapon/gun/syringe/examine()
+/obj/item/weapon/gun/syringe/examine(mob/user)
..()
- usr << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
- return
+ user << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
/obj/item/weapon/gun/syringe/attack_self(mob/living/user as mob)
if(!syringes.len)
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 351f83d1385..38ad69d80a1 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -161,11 +161,9 @@
return
-/obj/item/weapon/packageWrap/examine()
- if(src in usr)
- usr << "There are [amount] units of package wrap left."
+/obj/item/weapon/packageWrap/examine(mob/user)
..()
- return
+ user << "There are [amount] units of package wrap left."
/obj/item/device/destTagger
diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm
index e9873c7c732..3182d2030b7 100644
--- a/code/modules/telesci/telepad.dm
+++ b/code/modules/telesci/telepad.dm
@@ -120,9 +120,10 @@
/obj/item/weapon/rcs/New()
..()
processing_objects.Add(src)
-/obj/item/weapon/rcs/examine()
- desc = "Use this to send crates and closets to cargo telepads. There are [rcharges] charges left."
+
+/obj/item/weapon/rcs/examine(mob/user)
..()
+ user << "There are [rcharges] charge\s left."
/obj/item/weapon/rcs/Destroy()
processing_objects.Remove(src)
diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm
index edb9916eb06..82c0ae2a817 100644
--- a/code/modules/telesci/telesci_computer.dm
+++ b/code/modules/telesci/telesci_computer.dm
@@ -40,9 +40,9 @@
inserted_gps = null
..()
-/obj/machinery/computer/telescience/examine()
+/obj/machinery/computer/telescience/examine(mob/user)
..()
- usr << "There are [crystals.len ? crystals.len : "no"] bluespace crystals in the crystal slots."
+ user << "There are [crystals.len ? crystals.len : "no"] bluespace crystal\s in the crystal slots."
/obj/machinery/computer/telescience/initialize()
..()