mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 13:30:42 +01:00
Split examine verb and function, and improve it (#17251)
* Split examine verb and function, and include adjacency and distance checking in examine function * Fix various issues * Update code/modules/mob/examinations.dm Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> * Add required define vars * Update code/game/objects/items/stacks/wrap.dm Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> --------- Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
This commit is contained in:
co-authored by
SleepyGemmy
parent
39228d3a2c
commit
ce5ac79e3c
@@ -92,9 +92,9 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/device/assembly/examine(mob/user)
|
||||
/obj/item/device/assembly/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(. && (in_range(src, user) || loc == user))
|
||||
if(distance <= 1 || loc == user)
|
||||
if(secured)
|
||||
to_chat(user, "\The [src] is ready!")
|
||||
else
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
var/obj/item/tank/bombtank = null //the second part of the bomb is a phoron tank
|
||||
|
||||
/obj/item/device/onetankbomb/examine(mob/user)
|
||||
..(user)
|
||||
user.examinate(bombtank)
|
||||
. = ..()
|
||||
examinate(user, bombtank)
|
||||
|
||||
/obj/item/device/onetankbomb/update_icon()
|
||||
if(bombtank)
|
||||
@@ -155,4 +155,4 @@
|
||||
var/turf/simulated/T = get_turf(src)
|
||||
if(!T)
|
||||
return
|
||||
T.assume_air(removed)
|
||||
T.assume_air(removed)
|
||||
|
||||
@@ -62,9 +62,9 @@
|
||||
if(master)
|
||||
master.update_icon()
|
||||
|
||||
/obj/item/device/assembly_holder/examine(mob/user)
|
||||
. = ..(user)
|
||||
if(. && (in_range(src, user) || src.loc == user))
|
||||
/obj/item/device/assembly_holder/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance <= 1 || src.loc == user)
|
||||
if (src.secured)
|
||||
to_chat(user, SPAN_NOTICE("\The [src] is ready!"))
|
||||
else
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/obj/item/device/assembly/mousetrap/examine(mob/user)
|
||||
. = ..()
|
||||
if(. && armed)
|
||||
if(armed)
|
||||
to_chat(user, "It looks like it's armed.")
|
||||
|
||||
/obj/item/device/assembly/mousetrap/update_icon()
|
||||
|
||||
@@ -182,6 +182,6 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/freezer/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(panel_open)
|
||||
to_chat(user, "The maintenance hatch is open.")
|
||||
|
||||
@@ -170,6 +170,6 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/heater/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(panel_open)
|
||||
to_chat(user, "The maintenance hatch is open.")
|
||||
|
||||
@@ -416,8 +416,9 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user)
|
||||
if(..(user, 1))
|
||||
/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
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")
|
||||
else
|
||||
to_chat(user, "You are too far away to read the gauge.")
|
||||
|
||||
@@ -369,8 +369,9 @@
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user)
|
||||
if(..(user, 1))
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
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")
|
||||
else
|
||||
to_chat(user, "You are too far away to read the gauge.")
|
||||
|
||||
@@ -325,5 +325,5 @@
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/atmospherics/valve/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
to_chat(user, "It is [open ? "open" : "closed"].")
|
||||
|
||||
@@ -164,9 +164,9 @@
|
||||
|
||||
transform = M
|
||||
|
||||
/obj/item/battle_monsters/card/examine(mob/user)
|
||||
/obj/item/battle_monsters/card/examine(mob/user, distance, is_adjacent)
|
||||
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
if(facedown && src.loc != user)
|
||||
to_chat(user, SPAN_NOTICE("You can't examine \the [src] while it's face down!"))
|
||||
@@ -197,4 +197,4 @@
|
||||
|
||||
/obj/item/battle_monsters/card/MouseExited(location, control, params)
|
||||
. = ..()
|
||||
closeToolTip(usr)
|
||||
closeToolTip(usr)
|
||||
|
||||
@@ -1200,8 +1200,8 @@
|
||||
M.update_inv_w_uniform()
|
||||
playsound(M, /singleton/sound_category/rustle_sound, 15, 1, -5)
|
||||
|
||||
/obj/item/clothing/under/examine(mob/user)
|
||||
..(user)
|
||||
/obj/item/clothing/under/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
switch(src.sensor_mode)
|
||||
if(0)
|
||||
to_chat(user, "Its sensors appear to be disabled.")
|
||||
|
||||
@@ -91,8 +91,8 @@
|
||||
return main_ear
|
||||
|
||||
|
||||
/obj/item/clothing/examine(var/mob/user)
|
||||
..(user)
|
||||
/obj/item/clothing/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(LAZYLEN(accessories))
|
||||
for(var/obj/item/clothing/accessory/A in accessories)
|
||||
to_chat(user, "\A [A] [A.gender == PLURAL ? "are" : "is"] attached to it.")
|
||||
|
||||
@@ -96,8 +96,8 @@
|
||||
else
|
||||
to_chat(usr, SPAN_NOTICE("Camera deactivated."))
|
||||
|
||||
/obj/item/clothing/head/helmet/space/examine(var/mob/user)
|
||||
if(..(user, 1) && camera)
|
||||
/obj/item/clothing/head/helmet/space/examine(mob/user, distance, is_adjacent)
|
||||
if((distance <= 1) && camera)
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("To toggle the helmet camera, right click the helmet and press <b>Toggle Helmet Camera</b>.")))
|
||||
to_chat(user, "This helmet has a built-in camera. It's [!ispath(camera) && camera.status ? "" : "in"]active.")
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
INVOKE_ASYNC(src, PROC_REF(update_wearer))
|
||||
|
||||
/obj/item/clothing/shoes/magboots/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
var/state = "disabled"
|
||||
if(item_flags & NOSLIP)
|
||||
state = "enabled"
|
||||
|
||||
@@ -224,7 +224,7 @@ var/global/list/breach_burn_descriptors = list(
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(can_breach && breaches && breaches.len)
|
||||
for(var/datum/breach/B in breaches)
|
||||
to_chat(user, "<span class='danger'>It has \a [B.descriptor].</span>")
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
var/category // Use for restricting modules for specific suits, to specialize
|
||||
|
||||
/obj/item/rig_module/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
switch(damage)
|
||||
if(0)
|
||||
to_chat(user, SPAN_NOTICE("It is undamaged."))
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
contained_sprite = TRUE
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/covert/examine(mob/user, distance)
|
||||
..()
|
||||
. = ..()
|
||||
if(distance <= 1)
|
||||
to_chat(user, SPAN_NOTICE("This helmet has extra armor compared to a normal softsuit helmet."))
|
||||
|
||||
|
||||
@@ -93,15 +93,15 @@
|
||||
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(user)
|
||||
..(user)
|
||||
/obj/item/clothing/suit/space/void/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
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.")
|
||||
if(tank && in_range(src,user))
|
||||
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]."))
|
||||
if (cooler && in_range(src,user))
|
||||
if (cooler && distance <= 1)
|
||||
to_chat(user, 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)
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/clothing/accessory/holster/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if (holstered)
|
||||
to_chat(user, "A [holstered] is holstered here.")
|
||||
else
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
/obj/item/clothing/wrists/watch/spy/checktime()
|
||||
to_chat(usr, "You check your watch. Unfortunately for you, it's not a real watch, dork.")
|
||||
|
||||
/obj/item/clothing/wrists/watch/examine(mob/user)
|
||||
..()
|
||||
if (get_dist(src, user) <= 1)
|
||||
/obj/item/clothing/wrists/watch/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if (distance <= 1)
|
||||
checktime()
|
||||
|
||||
/obj/item/clothing/wrists/watch/verb/checktime()
|
||||
|
||||
@@ -66,9 +66,9 @@
|
||||
qdel(CI)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/appliance/examine(var/mob/user)
|
||||
..()
|
||||
if(Adjacent(usr))
|
||||
/obj/machinery/appliance/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(is_adjacent)
|
||||
list_contents(user)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
var/temperature = T20C
|
||||
var/starts_with = list()
|
||||
|
||||
/obj/machinery/appliance/cooker/examine(var/mob/user)
|
||||
/obj/machinery/appliance/cooker/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if (.) //no need to duplicate adjacency check
|
||||
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."))
|
||||
|
||||
@@ -17,7 +17,7 @@ fundamental differences
|
||||
idle_power_usage = 50
|
||||
appliancetype = 0
|
||||
|
||||
/obj/machinery/appliance/mixer/examine(var/mob/user)
|
||||
/obj/machinery/appliance/mixer/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
to_chat(user, SPAN_NOTICE("It is currently set to make a [selected_option]"))
|
||||
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
var/datum/reagents/oil
|
||||
var/optimal_oil = 9000//90 litres of cooking oil
|
||||
|
||||
/obj/machinery/appliance/cooker/fryer/examine(var/mob/user)
|
||||
/obj/machinery/appliance/cooker/fryer/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if (.)//no need to duplicate adjacency check
|
||||
if (is_adjacent)
|
||||
to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]")
|
||||
|
||||
/obj/machinery/appliance/cooker/fryer/Initialize()
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
startgibbing(user)
|
||||
|
||||
/obj/machinery/gibber/examine()
|
||||
..()
|
||||
. = ..()
|
||||
to_chat(usr, "The safety guard is [emagged ? SPAN_DANGER("disabled") : "enabled"].")
|
||||
|
||||
/obj/machinery/gibber/emag_act(var/remaining_charges, var/mob/user)
|
||||
|
||||
@@ -162,8 +162,9 @@ 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)
|
||||
if(..(user, 1))
|
||||
/obj/item/clothing/mask/fluff/corvo_cigarette/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance <= 1)
|
||||
to_chat(user, "It is [active ? "on" : "off"].")
|
||||
|
||||
|
||||
@@ -473,8 +474,8 @@ 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)
|
||||
if(..(user, 1) && has_spear)
|
||||
/obj/item/fluff/tokash_spear/examine(mob/user, distance, is_adjacent)
|
||||
if(distance <= 1 && has_spear)
|
||||
to_chat(user, "It currently holds an old looking spearhead.")
|
||||
|
||||
/obj/item/fluff/tokash_spear/update_icon()
|
||||
@@ -1640,7 +1641,7 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
return ..()
|
||||
|
||||
/obj/item/fluff/nasira_burner/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(lit)
|
||||
to_chat(user, "\The [src] is currently lit.")
|
||||
|
||||
@@ -1853,8 +1854,9 @@ 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)
|
||||
if(..(user, 1))
|
||||
/obj/item/fluff/ielia_tarot/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
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].")
|
||||
|
||||
|
||||
@@ -96,8 +96,9 @@
|
||||
return
|
||||
|
||||
/obj/item/evidencebag/examine(mob/user)
|
||||
..(user)
|
||||
if (stored_item) user.examinate(stored_item)
|
||||
. = ..()
|
||||
if (stored_item)
|
||||
examinate(user, stored_item)
|
||||
|
||||
/obj/item/evidencebag/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(W.ispen() || istype(W, /obj/item/device/flashlight/pen))
|
||||
|
||||
@@ -175,9 +175,9 @@
|
||||
drop_sound = 'sound/items/drop/card.ogg'
|
||||
pickup_sound = 'sound/items/pickup/card.ogg'
|
||||
|
||||
/obj/item/spacecash/ewallet/examine(mob/user)
|
||||
..(user)
|
||||
if (!(user in view(2)) && user!=src.loc) return
|
||||
/obj/item/spacecash/ewallet/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if (distance > 2 && user!=src.loc) return
|
||||
to_chat(user, "<span class='notice'>Charge card's owner: [src.owner_name]. Credit chips remaining: [src.worth].</span>")
|
||||
|
||||
/obj/item/spacecash/ewallet/lotto
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
user.visible_message("\The [user] [concealed ? "conceals" : "reveals"] their hand.")
|
||||
|
||||
/obj/item/hand/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if((!concealed || src.loc == user) && cards.len)
|
||||
if(cards.len > 1)
|
||||
to_chat(user, "It contains: ")
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
mech_remote_network = REMOTE_PRISON_MECH
|
||||
hardpoint_lock = TRUE
|
||||
|
||||
/obj/item/remote_mecha/penal/examine(mob/user)
|
||||
/obj/item/remote_mecha/penal/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
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.")))
|
||||
|
||||
/obj/item/remote_mecha/ai
|
||||
name = "AI exosuit remote upgrade"
|
||||
desc = "A device that, when inserted into an exosuit, allows it to be remotely piloted by the artificial intelligence."
|
||||
mech_remote_network = REMOTE_AI_MECH
|
||||
dummy_path = /mob/living/simple_animal/spiderbot/ai
|
||||
dummy_path = /mob/living/simple_animal/spiderbot/ai
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
var/modifiers = params2list(params)
|
||||
if(modifiers["shift"])
|
||||
A.examine(user)
|
||||
examinate(user, A)
|
||||
return
|
||||
|
||||
if(modifiers["alt"])
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
var/mob/M = locate(href_list["examine"])
|
||||
if(!M)
|
||||
return
|
||||
usr.examinate(M, 1)
|
||||
examinate(usr, M)
|
||||
|
||||
/mob/living/heavy_vehicle/Initialize(mapload, var/obj/structure/heavy_vehicle_frame/source_frame)
|
||||
..()
|
||||
|
||||
@@ -46,10 +46,10 @@
|
||||
if(81 to 100)
|
||||
add_overlay("bees3")
|
||||
|
||||
/obj/machinery/beehive/examine(mob/user)
|
||||
..()
|
||||
/obj/machinery/beehive/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
to_chat(user, SPAN_NOTICE("\The [src] is holding <b>[frames]/[maxFrames]</b> frames."))
|
||||
if(user.Adjacent(src))
|
||||
if(is_adjacent)
|
||||
if(bee_count)
|
||||
if(closed)
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("You can hear buzzing from within \the [src].")))
|
||||
@@ -210,4 +210,4 @@
|
||||
B.icon_state = "bh_bees[B.strength]"
|
||||
B.feral = angry
|
||||
B.update_icon()
|
||||
bees_to_release = 0
|
||||
bees_to_release = 0
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/honey = 0
|
||||
|
||||
/obj/machinery/honey_extractor/examine(var/mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(contained_frame)
|
||||
to_chat(user, SPAN_NOTICE("It's holding \the <b>[contained_frame]</b>."))
|
||||
to_chat(user, SPAN_NOTICE("It contains <b>[honey]</b> units of honey for collection."))
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/feralbees
|
||||
|
||||
/obj/item/bee_net/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(caught_bees)
|
||||
to_chat(user, SPAN_NOTICE("It contains [caught_bees] bees."))
|
||||
else
|
||||
@@ -131,4 +131,4 @@
|
||||
B.update_icon()
|
||||
caught_bees = 0
|
||||
|
||||
feralbees = FALSE
|
||||
feralbees = FALSE
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
w_class = ITEMSIZE_LARGE
|
||||
var/max_fuel = 60
|
||||
|
||||
/obj/item/bee_smoker/examine(mob/user)
|
||||
..()
|
||||
if(user.Adjacent(src))
|
||||
/obj/item/bee_smoker/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(is_adjacent)
|
||||
to_chat(user, SPAN_NOTICE("It has <b>[get_fuel()]/[max_fuel]</b> welding fuel left."))
|
||||
|
||||
/obj/item/bee_smoker/Initialize()
|
||||
@@ -77,4 +77,4 @@
|
||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
||||
smoke.set_up(10, 0, T, direction)
|
||||
playsound(T, 'sound/effects/smoke.ogg', 20, 1, -3)
|
||||
smoke.start()
|
||||
smoke.start()
|
||||
|
||||
@@ -70,7 +70,7 @@ var/global/list/plant_seed_sprites = list()
|
||||
return sm
|
||||
|
||||
/obj/item/seeds/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(seed && !seed.roundstart)
|
||||
to_chat(user, "It's tagged as variety #[seed.uid].")
|
||||
|
||||
|
||||
@@ -622,9 +622,9 @@
|
||||
else if(dead)
|
||||
remove_dead(user)
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/examine()
|
||||
/obj/machinery/portable_atmospherics/hydroponics/examine(mob/user, distance, is_adjacent)
|
||||
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
if(!seed)
|
||||
to_chat(usr, "[src] is empty.")
|
||||
@@ -632,7 +632,7 @@
|
||||
|
||||
to_chat(usr, "<span class='notice'>[seed.display_name] are growing here.</span>")
|
||||
|
||||
if(!Adjacent(usr))
|
||||
if(!is_adjacent)
|
||||
return
|
||||
|
||||
to_chat(usr, "Water: [round(waterlevel,0.1)]/100")
|
||||
|
||||
@@ -182,9 +182,9 @@
|
||||
for(var/obj/item/integrated_circuit/part in contents)
|
||||
. |= part.GetAccess()
|
||||
|
||||
/obj/item/device/electronic_assembly/examine(mob/user)
|
||||
. = ..(user, 1)
|
||||
if(.)
|
||||
/obj/item/device/electronic_assembly/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance <= 1)
|
||||
for(var/obj/item/integrated_circuit/IC in contents)
|
||||
IC.external_examine(user)
|
||||
if(opened)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
I.do_work()
|
||||
|
||||
/obj/item/device/assembly/electronic_assembly/examine(mob/user)
|
||||
. = ..(user, 1)
|
||||
. = ..()
|
||||
if(EA)
|
||||
for(var/obj/item/integrated_circuit/IC in EA.contents)
|
||||
IC.external_examine(user)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
. = ..()
|
||||
|
||||
/obj/item/integrated_circuit/memory/storage/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
var/i
|
||||
for (i in 1 to outputs.len)
|
||||
var/datum/integrated_io/O = outputs[i]
|
||||
|
||||
@@ -176,8 +176,8 @@
|
||||
system_error("Resource field depleted.")
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/mining/drill/examine(mob/user)
|
||||
..(user)
|
||||
/obj/machinery/mining/drill/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(need_player_check)
|
||||
to_chat(user, SPAN_WARNING("The drill error light is flashing. The cell panel is [panel_open ? "open" : "closed"]."))
|
||||
else
|
||||
@@ -185,7 +185,7 @@
|
||||
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]%.")
|
||||
if(user.Adjacent(src))
|
||||
if(is_adjacent)
|
||||
if(attached_satchel)
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a [attached_satchel] attached to it.")))
|
||||
if(current_error)
|
||||
|
||||
@@ -843,7 +843,7 @@
|
||||
update_icon()
|
||||
|
||||
/obj/item/lazarus_injector/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(!loaded)
|
||||
to_chat(user, SPAN_INFO("\The [src] is empty."))
|
||||
if(malfunctioning || emagged)
|
||||
@@ -869,7 +869,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/card/mining_point_card/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
to_chat(user, SPAN_NOTICE("There's [points] point\s on the card."))
|
||||
|
||||
/**********************"Fultons"**********************/
|
||||
|
||||
@@ -93,7 +93,7 @@ var/list/mineral_can_smooth_with = list(
|
||||
return INITIALIZE_HINT_NORMAL
|
||||
|
||||
/turf/simulated/mineral/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(mineral)
|
||||
switch(mined_ore)
|
||||
if(0)
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
var/list/ore_names
|
||||
|
||||
/obj/item/ore_detector/examine(mob/user, distance)
|
||||
if(..(user, 1))
|
||||
. = ..()
|
||||
if(distance <= 1)
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("Alt-click to set the ore you wish to search for.")))
|
||||
|
||||
/obj/item/ore_detector/Destroy()
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
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)
|
||||
..()
|
||||
if(user.Adjacent(src) && linked_beacon)
|
||||
/obj/item/storage/bag/ore/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(is_adjacent && linked_beacon)
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a <b>warp extraction pack</b> inside.")))
|
||||
|
||||
/obj/item/storage/bag/ore/drone
|
||||
|
||||
@@ -71,12 +71,12 @@
|
||||
else
|
||||
stored_ore[O.name] = 1
|
||||
|
||||
/obj/structure/ore_box/examine(mob/user)
|
||||
..()
|
||||
/obj/structure/ore_box/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
// Borgs can now check contents too.
|
||||
if((!istype(user, /mob/living/carbon/human)) && (!istype(user, /mob/living/silicon/robot)))
|
||||
return
|
||||
if(!Adjacent(user)) //Can only check the contents of ore boxes if you can physically reach them.
|
||||
if(!is_adjacent) //Can only check the contents of ore boxes if you can physically reach them.
|
||||
return
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
airflow_speed = 0
|
||||
airflow_dest = null
|
||||
|
||||
/mob/abstract/eye/examinate()
|
||||
/mob/abstract/eye/ExaminateVerb()
|
||||
set popup_menu = 0
|
||||
set src = usr.contents
|
||||
return 0
|
||||
@@ -97,7 +97,7 @@
|
||||
/mob/abstract/eye/proc/setLoc(var/T)
|
||||
if(!owner)
|
||||
return FALSE
|
||||
|
||||
|
||||
T = get_turf(T)
|
||||
if(!T || T == loc)
|
||||
return FALSE
|
||||
@@ -108,7 +108,7 @@
|
||||
owner.client.eye = src
|
||||
if(owner_follows_eye)
|
||||
owner.forceMove(loc)
|
||||
|
||||
|
||||
visualnet.update_eye_chunks(src)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
/proc/examinate(mob/user, atom/target, show_extended = FALSE)
|
||||
if((user.is_blind() || user.stat) && isobserver(user))
|
||||
to_chat(user, SPAN_NOTICE("Something is there, but you cannot see it."))
|
||||
|
||||
user.face_atom(target)
|
||||
|
||||
var/distance = INFINITY
|
||||
var/is_adjacent = FALSE
|
||||
if(isobserver(user) || user.stat == DEAD)
|
||||
distance = 0
|
||||
is_adjacent = TRUE
|
||||
else
|
||||
var/turf/source_turf = get_turf(user)
|
||||
var/turf/target_turf = get_turf(target)
|
||||
if(source_turf && source_turf.z == target_turf?.z)
|
||||
distance = get_dist(source_turf, target_turf)
|
||||
is_adjacent = user.Adjacent(target)
|
||||
|
||||
SEND_SIGNAL(user, COMSIG_MOB_EXAMINATE, target)
|
||||
|
||||
if(!show_extended) //This won't last long. This will be passed into /examine later on
|
||||
if(!target.examine(user, distance, is_adjacent))
|
||||
crash_with("Improper /examine() override: [log_info_line(target)]")
|
||||
else
|
||||
if(!target.examine_fluff(user, distance, is_adjacent))
|
||||
crash_with("Improper /examine_fluff() override: [log_info_line(target)]")
|
||||
@@ -768,19 +768,19 @@
|
||||
var/obj/item/I = locate(href_list["lookitem"])
|
||||
if(!I)
|
||||
return
|
||||
src.examinate(I)
|
||||
examinate(src, I)
|
||||
|
||||
if (href_list["lookitem_desc_only"])
|
||||
var/obj/item/I = locate(href_list["lookitem_desc_only"])
|
||||
if(!I)
|
||||
return
|
||||
usr.examinate(I, 1)
|
||||
examinate(usr, I)
|
||||
|
||||
if (href_list["lookmob"])
|
||||
var/mob/M = locate(href_list["lookmob"])
|
||||
if(!M)
|
||||
return
|
||||
src.examinate(M)
|
||||
examinate(src, M)
|
||||
|
||||
if (href_list["flavor_change"])
|
||||
if(src != usr)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/carbon/slime/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
var/msg = ""
|
||||
if(src.stat == DEAD)
|
||||
msg += span("deadsay", "It is limp and unresponsive.\n")
|
||||
@@ -22,4 +22,4 @@
|
||||
|
||||
msg += "*---------*"
|
||||
to_chat(user, msg)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/silicon/pai/examine(mob/user)
|
||||
..(user, infix = ", personal AI")
|
||||
/mob/living/silicon/pai/examine(mob/user, distance, is_adjacent)
|
||||
. = ..(user, distance, is_adjacent, infix = ", personal AI")
|
||||
|
||||
var/msg = ""
|
||||
switch(src.stat)
|
||||
@@ -16,4 +16,4 @@
|
||||
pose = addtext(pose,".") //Makes sure all emotes end with a period.
|
||||
msg += "\nIt [pose]"
|
||||
|
||||
to_chat(user, msg)
|
||||
to_chat(user, msg)
|
||||
|
||||
@@ -577,7 +577,7 @@
|
||||
gib()
|
||||
|
||||
/mob/living/silicon/robot/drone/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
/mob/living/silicon/robot/drone/self_diagnosis()
|
||||
if(!is_component_functioning("diagnosis unit"))
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
visible_message(SPAN_NOTICE("\The [src] voices a strident beep, indicating a drone chassis is prepared."))
|
||||
|
||||
/obj/machinery/drone_fabricator/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(produce_drones && drone_progress >= 100 && istype(user,/mob/abstract) && config.allow_drone_spawn && count_drones() < config.max_maint_drones)
|
||||
to_chat(user, SPAN_NOTICE("<B>A drone is prepared. use 'Ghost Spawner' from the Ghost tab to spawn as a maintenance drone.</B>"))
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/silicon/robot/examine(mob/user)
|
||||
/mob/living/silicon/robot/examine(mob/user, distance, is_adjacent)
|
||||
var/custom_infix = custom_name ? ", [mod_type] [braintype]" : ""
|
||||
..(user, infix = custom_infix)
|
||||
. = ..(user, distance, is_adjacent, infix = custom_infix)
|
||||
|
||||
var/msg = ""
|
||||
|
||||
@@ -47,4 +47,4 @@
|
||||
msg += "\nIt [pose]"
|
||||
|
||||
to_chat(user, msg)
|
||||
user.showLaws(src)
|
||||
user.showLaws(src)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
var/force_holder
|
||||
|
||||
/obj/item/gripper/examine(var/mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(wrapped)
|
||||
to_chat(user, SPAN_NOTICE("It is holding \the [wrapped]"))
|
||||
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
. = ..()
|
||||
files = new /datum/research/techonly(src) //Setup the research data holder.
|
||||
|
||||
/obj/item/portable_destructive_analyzer/examine(mob/user, distance)
|
||||
/obj/item/portable_destructive_analyzer/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(loaded_item && Adjacent(user))
|
||||
if(loaded_item && is_adjacent)
|
||||
to_chat(user, SPAN_NOTICE("It is holding \a [loaded_item]."))
|
||||
|
||||
/obj/item/portable_destructive_analyzer/attack_self(mob/user)
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
stored_doors = max_doors
|
||||
|
||||
/obj/item/inflatable_dispenser/examine(mob/user)
|
||||
if(!..(user))
|
||||
return
|
||||
. = ..()
|
||||
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"]"))
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@
|
||||
else
|
||||
name = "robot [initial(name)]"
|
||||
|
||||
/obj/item/robot_parts/examine(mob/user, distance)
|
||||
/obj/item/robot_parts/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(is_adjacent)
|
||||
report_missing_parts(user)
|
||||
|
||||
/obj/item/robot_parts/proc/report_missing_parts(var/mob/user)
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/construct/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(health < maxHealth)
|
||||
if(health >= maxHealth / 2)
|
||||
to_chat(user, SPAN_WARNING("It looks slightly dented."))
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/capybara/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(stat == DEAD)
|
||||
to_chat(user, "How can someone kill such a friendly creature?")
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@
|
||||
holder_type = /obj/item/holder/cat/black
|
||||
|
||||
/mob/living/simple_animal/cat/fluff/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(stat == DEAD)
|
||||
to_chat(user, "Oh no, [name] is dead! What kind of monster would do this?")
|
||||
|
||||
@@ -306,7 +306,7 @@
|
||||
holder_type = /obj/item/holder/cat/kitten
|
||||
|
||||
/mob/living/simple_animal/cat/kitten/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(stat == DEAD)
|
||||
to_chat(user, "It's a dead kitten! What kind of monster would do this?")
|
||||
|
||||
@@ -353,6 +353,6 @@
|
||||
holder_type = /obj/item/holder/cat/crusher
|
||||
|
||||
/mob/living/simple_animal/cat/crusher/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(stat == DEAD)
|
||||
to_chat(user, "Crusher's dead. How could this have happened? She counted on you!")
|
||||
|
||||
@@ -312,7 +312,7 @@
|
||||
return 0
|
||||
|
||||
/mob/living/simple_animal/spiderbot/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(src.held_item)
|
||||
to_chat(user, "It is carrying [icon2html(src.held_item, user)] \a [src.held_item].")
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
qdel(src)
|
||||
|
||||
/mob/living/simple_animal/hostile/icarus_drone/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(malfunctioning)
|
||||
if(hostile_drone)
|
||||
to_chat(user, SPAN_WARNING("It's completely lit up, and its targetting vanes are deployed."))
|
||||
|
||||
@@ -99,10 +99,10 @@
|
||||
else
|
||||
see_invisible = SEE_INVISIBLE_NOLIGHTING
|
||||
|
||||
/mob/living/simple_animal/hostile/morph/examine(mob/user)
|
||||
/mob/living/simple_animal/hostile/morph/examine(mob/user, distance, is_adjacent)
|
||||
if(morphed)
|
||||
. = form.examine(user)
|
||||
if(get_dist(src, user) > 2)
|
||||
if(distance > 2)
|
||||
return
|
||||
to_chat(user, SPAN_WARNING("It doesn't look quite right..."))
|
||||
else
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
|
||||
// Because we can't perfectly duplicate some examine() output, we directly examine the AM it is copying. It's messy but
|
||||
// this is to prevent easy checks from the opposing force.
|
||||
/mob/living/simple_animal/illusion/examine(mob/user)
|
||||
/mob/living/simple_animal/illusion/examine(mob/user, distance, is_adjacent)
|
||||
if(copying)
|
||||
return copying.examine(user)
|
||||
return copying.examine(user, distance, is_adjacent)
|
||||
else
|
||||
return list("???")
|
||||
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
if (stat == DEAD)
|
||||
to_chat(user, "<span class='danger'>It looks dead.</span>")
|
||||
|
||||
+2
-10
@@ -360,19 +360,11 @@
|
||||
mob_win.open()
|
||||
|
||||
//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())
|
||||
/mob/verb/ExaminateVerb(atom/A as mob|obj|turf in view())
|
||||
set name = "Examine"
|
||||
set category = "IC"
|
||||
|
||||
if(!A)
|
||||
return
|
||||
|
||||
if((is_blind() || usr.stat) && !isobserver(src))
|
||||
to_chat(src, "<span class='notice'>Something is there but you can't see it.</span>")
|
||||
return 1
|
||||
|
||||
face_atom(A)
|
||||
A.examine(src)
|
||||
examinate(usr, A)
|
||||
|
||||
/mob/proc/can_examine()
|
||||
if(client?.eye == src)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/modular_computer/examine(mob/user)
|
||||
..()
|
||||
if(Adjacent(user))
|
||||
/obj/item/modular_computer/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(is_adjacent)
|
||||
to_chat(user, 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)]")))
|
||||
|
||||
@@ -337,8 +337,8 @@
|
||||
P.focused_conv.cl_send(P, text, M)
|
||||
registered_message = text
|
||||
|
||||
/obj/item/modular_computer/examine(mob/user)
|
||||
/obj/item/modular_computer/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
var/obj/item/card/id/id = GetID()
|
||||
if(istype(id) && Adjacent(user))
|
||||
if(istype(id) && is_adjacent)
|
||||
id.show(user)
|
||||
|
||||
@@ -207,8 +207,9 @@
|
||||
for(var/obj/O in src)
|
||||
O.hide(0)
|
||||
|
||||
/turf/simulated/open/examine(mob/user, distance, infix, suffix)
|
||||
if(..(user, 2))
|
||||
/turf/simulated/open/examine(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
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
callHook("debrain", list(brainmob))
|
||||
|
||||
/obj/item/organ/internal/brain/examine(mob/user) // -- TLE
|
||||
..(user)
|
||||
. = ..()
|
||||
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.")
|
||||
else
|
||||
@@ -228,4 +228,4 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/internal/brain/zombie
|
||||
relative_size = 100
|
||||
relative_size = 100
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
return
|
||||
|
||||
/obj/item/organ/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
if(status & ORGAN_DEAD)
|
||||
to_chat(user, "<span class='notice'>The decay has set in.</span>")
|
||||
|
||||
|
||||
@@ -154,9 +154,9 @@
|
||||
return //no eating the limb until everything's been removed
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/external/examine()
|
||||
..()
|
||||
if(in_range(usr, src) || istype(usr, /mob/abstract/observer))
|
||||
/obj/item/organ/external/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance <= 1)
|
||||
for(var/obj/item/I in contents)
|
||||
if(istype(I, /obj/item/organ))
|
||||
continue
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/internal/ipc_tag/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
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]"))
|
||||
@@ -246,7 +246,7 @@
|
||||
to_chat(user, SPAN_WARNING("\The [src] reads, \"Scanning failure, please submit scanner for repairs.\""))
|
||||
return
|
||||
if(!S.hacked)
|
||||
user.examinate(src)
|
||||
examinate(user, src)
|
||||
else
|
||||
user.visible_message(SPAN_WARNING("\The [user] starts fiddling with \the [src]..."), SPAN_NOTICE("You start fiddling with \the [src]..."))
|
||||
if(do_after(user, 30, TRUE, src))
|
||||
|
||||
@@ -163,9 +163,9 @@
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/internal/vaurca/preserve/examine(mob/user)
|
||||
. = ..(user, 0)
|
||||
if(.)
|
||||
/obj/item/organ/internal/vaurca/preserve/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance <= 0)
|
||||
var/celsius_temperature = air_contents.temperature - T0C
|
||||
var/descriptive
|
||||
switch(celsius_temperature)
|
||||
|
||||
@@ -53,10 +53,10 @@
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/ship_ammunition/examine(mob/user, distance)
|
||||
/obj/item/ship_ammunition/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(written_message)
|
||||
if(get_dist(user, src) > 3)
|
||||
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.")
|
||||
else
|
||||
to_chat(user, "It has a message written on the casing: <span class='notice'><i>[written_message]</i></span>")
|
||||
|
||||
@@ -95,14 +95,14 @@
|
||||
if(new_text)
|
||||
free_space -= length(strip_html_properly(new_text))
|
||||
|
||||
/obj/item/paper/examine(mob/user)
|
||||
/obj/item/paper/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
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."))
|
||||
return
|
||||
if(name != initial(name))
|
||||
to_chat(user,"It's titled '[name]'.")
|
||||
if(in_range(user, src) || isobserver(user) || in_slide_projector(user))
|
||||
if(distance <= 1)
|
||||
show_content(user)
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("You have to go closer if you want to read it."))
|
||||
@@ -200,7 +200,7 @@
|
||||
update_icon()
|
||||
return
|
||||
|
||||
user.examinate(src)
|
||||
examinate(user, src)
|
||||
if(rigged && (Holiday == "April Fool's Day"))
|
||||
if(last_honk <= world.time - 20) //Spam limiter.
|
||||
last_honk = world.time
|
||||
@@ -214,7 +214,7 @@
|
||||
if(target_zone == BP_EYES)
|
||||
user.visible_message(SPAN_NOTICE("You show \the [src] to [M]."), \
|
||||
SPAN_NOTICE("[user] holds up \the [src] and shows it to [M]."))
|
||||
M.examinate(src)
|
||||
examinate(M, src)
|
||||
|
||||
else if(target_zone == BP_MOUTH && paper_like) // lipstick wiping
|
||||
if(ishuman(M))
|
||||
|
||||
@@ -91,8 +91,9 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You must hold \the [P] steady to burn \the [src].</span>")
|
||||
|
||||
/obj/item/paper_bundle/examine(mob/user)
|
||||
if(..(user, 1))
|
||||
/obj/item/paper_bundle/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(is_adjacent)
|
||||
src.show_content(user)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>It is too far away.</span>")
|
||||
|
||||
@@ -93,8 +93,8 @@
|
||||
*/
|
||||
|
||||
|
||||
/obj/item/paper_bin/examine(mob/user)
|
||||
if(get_dist(src, user) <= 1)
|
||||
/obj/item/paper_bin/examine(mob/user, distance, is_adjacent)
|
||||
if(distance <= 1)
|
||||
if(amount)
|
||||
to_chat(user, "<span class='notice'>There " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin.</span>")
|
||||
else
|
||||
|
||||
@@ -44,7 +44,7 @@ var/global/photo_count = 0
|
||||
id = photo_count++
|
||||
|
||||
/obj/item/photo/attack_self(mob/user as mob)
|
||||
user.examinate(src)
|
||||
examinate(user, src)
|
||||
|
||||
/obj/item/photo/attackby(obj/item/P as obj, mob/user as mob)
|
||||
if(P.ispen())
|
||||
@@ -53,9 +53,9 @@ var/global/photo_count = 0
|
||||
scribble = txt
|
||||
..()
|
||||
|
||||
/obj/item/photo/examine(mob/user)
|
||||
/obj/item/photo/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(in_range(user, src) || isobserver(user) || in_slide_projector(user))
|
||||
if(distance <= 1)
|
||||
show(user)
|
||||
to_chat(user, "<span class='notice'>[picture_desc]</span>")
|
||||
else
|
||||
@@ -144,9 +144,9 @@ var/global/photo_count = 0
|
||||
var/icon_off = "camera_off"
|
||||
var/size = 3
|
||||
|
||||
/obj/item/device/camera/examine(mob/user, distance)
|
||||
..()
|
||||
if(Adjacent(user))
|
||||
/obj/item/device/camera/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(is_adjacent)
|
||||
to_chat(user, SPAN_NOTICE("It has <b>[pictures_left]</b> photos left."))
|
||||
|
||||
/obj/item/device/camera/verb/change_size()
|
||||
|
||||
@@ -535,8 +535,9 @@
|
||||
if (!mapload)
|
||||
addtimer(CALLBACK(src, PROC_REF(update)), 5, TIMER_UNIQUE)
|
||||
|
||||
/obj/machinery/power/apc/examine(mob/user)
|
||||
if(..(user, 1))
|
||||
/obj/machinery/power/apc/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance <= 1)
|
||||
if(stat & BROKEN)
|
||||
to_chat(user, "Looks broken.")
|
||||
return
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
set_state(1)
|
||||
|
||||
/obj/machinery/power/breakerbox/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(on)
|
||||
to_chat(user, SPAN_GOOD("It seems to be online."))
|
||||
else
|
||||
|
||||
@@ -656,7 +656,7 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
/obj/item/stack/cable_coil/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(!uses_charge)
|
||||
to_chat(user, "There [src.amount == 1 ? "is" : "are"] <b>[src.amount]</b> [src.singular_name]\s of cable in the coil.")
|
||||
else
|
||||
|
||||
@@ -81,10 +81,10 @@
|
||||
return amount_used
|
||||
|
||||
|
||||
/obj/item/cell/examine(mob/user)
|
||||
/obj/item/cell/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
|
||||
if(get_dist(src, user) > 1)
|
||||
if(distance > 1)
|
||||
return
|
||||
|
||||
if(maxcharge <= 2500)
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
QDEL_NULL(cell)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/light_construct/examine(mob/user)
|
||||
if(!..(user, 2))
|
||||
/obj/machinery/light_construct/examine(mob/user, distance, is_adjacent)
|
||||
if(distance > 2)
|
||||
return
|
||||
|
||||
switch(stage)
|
||||
|
||||
@@ -66,8 +66,8 @@
|
||||
icon_state = "[base_icon]_[active]"
|
||||
return ..()
|
||||
|
||||
/obj/machinery/power/portgen/examine(mob/user)
|
||||
if(!..(user, 1))
|
||||
/obj/machinery/power/portgen/examine(mob/user, distance, is_adjacent)
|
||||
if(distance > 1)
|
||||
return
|
||||
if(active)
|
||||
to_chat(user, SPAN_NOTICE("The generator is on."))
|
||||
@@ -160,8 +160,8 @@
|
||||
|
||||
power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2))
|
||||
|
||||
/obj/machinery/power/portgen/basic/examine(mob/user)
|
||||
..(user)
|
||||
/obj/machinery/power/portgen/basic/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
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."))
|
||||
@@ -490,7 +490,7 @@
|
||||
create_reagents(coolant_volume)
|
||||
..()
|
||||
|
||||
/obj/machinery/power/portgen/basic/fusion/examine(mob/user)
|
||||
/obj/machinery/power/portgen/basic/fusion/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
to_chat(user, "The auxilary tank shows [reagents.total_volume]u of liquid in it.")
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
|
||||
var/datum/effect_system/sparks/spark_system
|
||||
|
||||
/obj/machinery/power/emitter/examine(mob/user)
|
||||
..()
|
||||
/obj/machinery/power/emitter/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
switch(state)
|
||||
if(EMITTER_LOOSE)
|
||||
to_chat(user, SPAN_NOTICE("\The [src] isn't attached to anything and is not ready to fire."))
|
||||
@@ -44,7 +44,7 @@
|
||||
to_chat(user, 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."))
|
||||
if(Adjacent(user))
|
||||
if(is_adjacent)
|
||||
to_chat(user, SPAN_NOTICE("The shot counter display reads: [shot_counter]"))
|
||||
|
||||
/obj/machinery/power/emitter/Destroy()
|
||||
|
||||
@@ -95,7 +95,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
desc = "[initial(desc)] It seems completely assembled."
|
||||
if(powered)
|
||||
desc = initial(desc)
|
||||
..()
|
||||
. = ..()
|
||||
return
|
||||
|
||||
/obj/structure/particle_accelerator/attackby(obj/item/W, mob/user)
|
||||
@@ -249,7 +249,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
desc = "[initial(desc)] It seems completely assembled."
|
||||
if(powered)
|
||||
desc = initial(desc)
|
||||
..()
|
||||
. = ..()
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
var/ChargeCapacity = 5000000
|
||||
var/IOCapacity = 250000
|
||||
|
||||
/obj/item/smes_coil/examine(mob/user)
|
||||
/obj/item/smes_coil/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(is_adjacent)
|
||||
to_chat(user, "The label reads:\
|
||||
<div class='notice' style='padding-left:2rem'>Only certified professionals are allowed to handle and install this component.<br>\
|
||||
Charge capacity: [ChargeCapacity/1000000] MJ<br>\
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
..()
|
||||
|
||||
/obj/singularity/energy_ball/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(orbiting_balls.len)
|
||||
to_chat(user, "There are [orbiting_balls.len] energy balls orbiting \the [src].")
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
icon_state = spent_icon
|
||||
|
||||
/obj/item/ammo_casing/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if (!BB)
|
||||
to_chat(user, "This one is spent.")
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
recyclable = FALSE
|
||||
|
||||
/obj/item/ammo_magazine/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
to_chat(user, "There [(stored_ammo.len == 1)? "is" : "are"] [stored_ammo.len] round\s left!")
|
||||
|
||||
//magazine icon state caching (caching lists are in SSicon_cache)
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
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)
|
||||
/obj/item/ammo_pile/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(is_adjacent)
|
||||
to_chat(user, SPAN_NOTICE("It contains [length(ammo)] rounds."))
|
||||
|
||||
/obj/item/ammo_pile/attack()
|
||||
|
||||
@@ -664,9 +664,9 @@
|
||||
suppressor = null
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/examine(mob/user)
|
||||
..()
|
||||
if(get_dist(src, user) > 1)
|
||||
/obj/item/gun/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance > 1)
|
||||
return
|
||||
if(markings)
|
||||
to_chat(user, SPAN_NOTICE("It has [markings] [markings == 1 ? "notch" : "notches"] carved into the stock."))
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
if (spikes < max_spikes)
|
||||
addtimer(CALLBACK(src, PROC_REF(regen_spike)), spike_gen_time, TIMER_UNIQUE)
|
||||
|
||||
/obj/item/gun/launcher/spikethrower/examine(mob/user)
|
||||
..(user)
|
||||
if(get_dist(src, user) > 1)
|
||||
/obj/item/gun/launcher/spikethrower/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance > 1)
|
||||
return
|
||||
to_chat(user, "It has [spikes] spike\s remaining.")
|
||||
|
||||
|
||||
@@ -129,9 +129,9 @@
|
||||
|
||||
return null
|
||||
|
||||
/obj/item/gun/energy/examine(mob/user)
|
||||
..(user)
|
||||
if(get_dist(src, user) > 1)
|
||||
/obj/item/gun/energy/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(distance > 1)
|
||||
return
|
||||
var/shots_remaining = round(power_supply.charge / charge_cost)
|
||||
to_chat(user, "Has [shots_remaining] shot\s remaining.")
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
charge_cost = 666.66 // 15 shots on a high cap cell
|
||||
needspin = FALSE
|
||||
|
||||
/obj/item/gun/energy/plasmacutter/examine(mob/user)
|
||||
/obj/item/gun/energy/plasmacutter/examine(mob/user, distance, is_adjacent)
|
||||
..()
|
||||
if(user.Adjacent(src))
|
||||
if(is_adjacent)
|
||||
if(power_supply)
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a <b>[capitalize_first_letters(power_supply.name)]</b> installed as its power supply.")))
|
||||
else
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
var/named = 0
|
||||
var/described = 0
|
||||
|
||||
/obj/item/gun/energy/laser/prototype/examine(mob/user)
|
||||
..(user)
|
||||
if(get_dist(src, user) > 1)
|
||||
/obj/item/gun/energy/laser/prototype/examine(mob/user, distance, is_adjacent)
|
||||
. = ..(user)
|
||||
if(distance > 1)
|
||||
return
|
||||
if(gun_mods.len)
|
||||
for(var/obj/item/laser_components/modifier/modifier in gun_mods)
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
icon_state = "crossbowframe[buildstate]"
|
||||
|
||||
/obj/item/crossbowframe/examine(mob/user)
|
||||
..(user)
|
||||
. = ..()
|
||||
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.")
|
||||
@@ -370,5 +370,4 @@
|
||||
|
||||
/obj/item/gun/launcher/crossbow/RFD/examine(var/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
to_chat(user, "It currently holds <b>[stored_matter]/[max_stored_matter]</b> matter-units.")
|
||||
to_chat(user, "It currently holds <b>[stored_matter]/[max_stored_matter]</b> matter-units.")
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
to_chat(M, SPAN_WARNING("You pump [src], but the magazine is empty."))
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/launcher/grenade/examine(mob/user)
|
||||
/obj/item/gun/launcher/grenade/examine(mob/user, distance, is_adjacent)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(is_adjacent)
|
||||
to_chat(user, SPAN_NOTICE("It has [get_ammo()] grenade\s remaining."))
|
||||
if(chambered)
|
||||
to_chat(user, SPAN_NOTICE("\A [chambered] is chambered."))
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user