mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-07-18 03:32:56 +01:00
examine signature changed to include distance
- distance is INFINITE, 0, or a positive integer based on get_dist() between the examiner and examinee's turfs when they are on the same Z. When the examiner is dead or a ghost, distance is always 0. - also updates /examine( implementations to use it! - adds w_class_to_name proc for reusing "It is a X item." examine behavior.
This commit is contained in:
@@ -81,9 +81,9 @@
|
||||
/obj/item/assembly/process()
|
||||
return PROCESS_KILL
|
||||
|
||||
/obj/item/assembly/examine(mob/user)
|
||||
/obj/item/assembly/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if((in_range(src, user) || loc == user))
|
||||
if(distance < 2)
|
||||
if(secured)
|
||||
. += "\The [src] is ready!"
|
||||
else
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
/obj/item/assembly_holder/proc/attach(var/obj/item/assembly/D, var/obj/item/assembly/D2, var/mob/user)
|
||||
if(!D || !D2)
|
||||
return FALSE
|
||||
|
||||
|
||||
if(!istype(D) || !istype(D2))
|
||||
return FALSE
|
||||
|
||||
if(D.secured || D2.secured)
|
||||
return FALSE
|
||||
|
||||
|
||||
if(user)
|
||||
user.remove_from_mob(D)
|
||||
user.remove_from_mob(D2)
|
||||
@@ -55,9 +55,9 @@
|
||||
if(master)
|
||||
master.update_icon()
|
||||
|
||||
/obj/item/assembly_holder/examine(mob/user)
|
||||
/obj/item/assembly_holder/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if ((in_range(src, user) || src.loc == user))
|
||||
if (distance < 2)
|
||||
if (src.secured)
|
||||
. += "\The [src] is ready!"
|
||||
else
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var/armed = 0
|
||||
|
||||
|
||||
/obj/item/assembly/mousetrap/examine(var/mob/user)
|
||||
/obj/item/assembly/mousetrap/examine(mob/user, distance, infix, suffix)
|
||||
. = ..(user)
|
||||
if(armed)
|
||||
. += "It looks like it's armed."
|
||||
|
||||
@@ -69,7 +69,7 @@ GLOBAL_LIST_EMPTY(all_blobs)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/blob/examine(mob/user)
|
||||
/obj/structure/blob/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(!overmind)
|
||||
. += "It seems inert." // Dead blob.
|
||||
|
||||
@@ -920,7 +920,7 @@ var/global/list/light_overlay_cache = list() //see get_worn_overlay() on helmets
|
||||
set_clothing_index()
|
||||
|
||||
|
||||
/obj/item/clothing/under/examine(mob/user)
|
||||
/obj/item/clothing/under/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
switch(src.sensor_mode)
|
||||
if(0)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
usr.put_in_l_hand(src)
|
||||
src.add_fingerprint(usr)
|
||||
|
||||
/obj/item/clothing/examine(var/mob/user)
|
||||
/obj/item/clothing/examine(mob/user, distance, infix, suffix)
|
||||
. = ..(user)
|
||||
if(LAZYLEN(accessories))
|
||||
. += "It has the following attached: [counting_english_list(accessories)]"
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
src.shoes = null
|
||||
wearer = null
|
||||
|
||||
/obj/item/clothing/shoes/magboots/examine(mob/user)
|
||||
/obj/item/clothing/shoes/magboots/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "Its mag-pulse traction system appears to be [item_flags & NOSLIP ? "enabled" : "disabled"]."
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
magpulse = 0
|
||||
canremove = 1
|
||||
|
||||
/obj/item/clothing/shoes/magboots/vox/examine(mob/user)
|
||||
/obj/item/clothing/shoes/magboots/vox/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(magpulse)
|
||||
. += "It would be hard to take these off without relaxing your grip first." // Theoretically this message should only be seen by the wearer when the claws are equipped.
|
||||
|
||||
@@ -223,7 +223,7 @@ var/global/list/breach_burn_descriptors = list(
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/examine(mob/user)
|
||||
/obj/item/clothing/suit/space/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(can_breach && breaches?.len)
|
||||
for(var/datum/breach/B in breaches)
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
var/list/stat_rig_module/stat_modules = new()
|
||||
|
||||
/obj/item/rig_module/examine()
|
||||
/obj/item/rig_module/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
switch(damage)
|
||||
if(0)
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
var/datum/mini_hud/rig/minihud
|
||||
|
||||
/obj/item/rig/examine()
|
||||
/obj/item/rig/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(wearer)
|
||||
for(var/obj/item/piece in list(helmet,gloves,chest,boots))
|
||||
|
||||
@@ -58,9 +58,9 @@
|
||||
camera.c_tag = usr.name
|
||||
to_chat(usr, "<font color='blue'>User scanned as [camera.c_tag]. Camera activated.</font>")
|
||||
|
||||
/obj/item/clothing/head/helmet/space/examine(mob/user)
|
||||
/obj/item/clothing/head/helmet/space/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(camera_networks && Adjacent(user))
|
||||
if(camera_networks && distance < 2)
|
||||
. += "This helmet has a built-in camera. It's [camera ? "" : "in"]active."
|
||||
|
||||
/obj/item/clothing/suit/space
|
||||
|
||||
@@ -70,11 +70,11 @@
|
||||
//Cycler settings
|
||||
var/no_cycle = FALSE //stop this item from being put in a cycler
|
||||
|
||||
/obj/item/clothing/suit/space/void/examine(user)
|
||||
/obj/item/clothing/suit/space/void/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
for(var/obj/item/I in list(helmet,boots,tank,cooler))
|
||||
. += "It has \a [I] installed."
|
||||
if(tank && in_range(src,user))
|
||||
if(tank && distance < 2)
|
||||
. += "<span class='notice'>The wrist-mounted pressure gauge reads [max(round(tank.air_contents.return_pressure()),0)] kPa remaining in \the [tank].</span>"
|
||||
|
||||
/obj/item/clothing/suit/space/void/refit_for_species(var/target_species)
|
||||
|
||||
@@ -575,9 +575,9 @@
|
||||
icon_state = "watch"
|
||||
slot_flags = SLOT_GLOVES | SLOT_TIE
|
||||
|
||||
/obj/item/clothing/accessory/watch/examine(mob/user)
|
||||
/obj/item/clothing/accessory/watch/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "The watch shows that the time is [stationtime2text()]."
|
||||
|
||||
/obj/item/clothing/accessory/watch/silver
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
holstered.emp_act(severity)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/accessory/holster/examine(mob/user)
|
||||
/obj/item/clothing/accessory/holster/examine(mob/user, distance, infix, suffix)
|
||||
. = ..(user)
|
||||
if(holstered)
|
||||
. += "A [holstered] is holstered here."
|
||||
@@ -165,4 +165,4 @@
|
||||
concealed_holster = 0
|
||||
|
||||
/obj/item/clothing/accessory/holster/leg/black
|
||||
icon_state = "holster_b_leg"
|
||||
icon_state = "holster_b_leg"
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
icon_state = "evidenceobj"
|
||||
return
|
||||
|
||||
/obj/item/evidencebag/examine(mob/user)
|
||||
/obj/item/evidencebag/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(stored_item)
|
||||
user.examinate(stored_item)
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
/obj/item/spacecash/ewallet/attackby() return //like actual
|
||||
/obj/item/spacecash/ewallet/update_icon() return //space cash
|
||||
|
||||
/obj/item/spacecash/ewallet/examine(mob/user)
|
||||
/obj/item/spacecash/ewallet/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "<span class='notice'>Charge card's owner: [src.owner_name]. Thalers remaining: [src.worth].</span>"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
transaction_devices += src // Global reference list to be properly set up by /proc/setup_economy()
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/cash_register/examine(mob/user as mob)
|
||||
/obj/machinery/cash_register/examine(mob/user, distance, infix, suffix)
|
||||
. = ..(user)
|
||||
if(transaction_amount)
|
||||
. += "It has a purchase of [transaction_amount] pending[transaction_purpose ? " for [transaction_purpose]" : ""]."
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
user.set_machine(src)
|
||||
interact(user)
|
||||
|
||||
/obj/item/retail_scanner/examine(mob/user as mob)
|
||||
/obj/item/retail_scanner/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(transaction_amount)
|
||||
. += "It has a purchase of [transaction_amount] pending[transaction_purpose ? " for [transaction_purpose]" : ""]."
|
||||
|
||||
@@ -76,25 +76,29 @@
|
||||
stat(null,"<font color='#8A0808'><b>[description_holders["antag"]]</b></font>") //Red, malicious antag-related text
|
||||
|
||||
//override examinate verb to update description holders when things are examined
|
||||
//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 _validate_atom(A))
|
||||
//mob verbs are faster than object verbs. See http://www.byond.com/forum/?post=1326139&page=2#comment8198716
|
||||
/mob/verb/examinate(atom/target as mob | obj | turf in _validate_atom(target))
|
||||
set name = "Examine"
|
||||
set category = "IC"
|
||||
|
||||
if((is_blind(src) || usr.stat) && !isobserver(src))
|
||||
to_chat(src, "<span class='notice'>Something is there but you can't see it.</span>")
|
||||
return 1
|
||||
|
||||
//Could be gone by the time they finally pick something
|
||||
if(!A)
|
||||
return 1
|
||||
|
||||
face_atom(A)
|
||||
var/list/results = A.examine(src)
|
||||
if(!results || !results.len)
|
||||
if ((is_blind(src) || usr.stat) && !isobserver(src))
|
||||
to_chat(src, SPAN_NOTICE("Something is there but you can't see it."))
|
||||
return TRUE
|
||||
if (!target)
|
||||
return TRUE
|
||||
var/distance = INFINITY
|
||||
if (usr.stat == DEAD || isobserver(usr))
|
||||
distance = 0
|
||||
else
|
||||
var/turf/turf1 = get_turf(src)
|
||||
var/turf/turf2 = get_turf(target)
|
||||
if(turf1 && turf1.z == turf2?.z)
|
||||
distance = get_dist(turf1, turf2)
|
||||
face_atom(target)
|
||||
var/list/results = target.examine(src, distance)
|
||||
if(!length(results))
|
||||
results = list("You were unable to examine that. Tell a developer!")
|
||||
to_chat(src, "<span class='filter_notice'>[jointext(results, "<br>")]</span>")
|
||||
update_examine_panel(A)
|
||||
update_examine_panel(target)
|
||||
|
||||
/mob/proc/update_examine_panel(var/atom/A)
|
||||
if(client)
|
||||
|
||||
@@ -32,11 +32,11 @@
|
||||
/obj/item/material/fishing_rod/built
|
||||
strung = FALSE
|
||||
|
||||
/obj/item/material/fishing_rod/examine(mob/user)
|
||||
/obj/item/material/fishing_rod/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Bait)
|
||||
. += "<span class='notice'>It has [Bait] hanging on its hook: </span>"
|
||||
. += Bait.examine(user)
|
||||
. += Bait.examine(user, distance, infix, suffix)
|
||||
|
||||
/obj/item/material/fishing_rod/CtrlClick(mob/user)
|
||||
if((src.loc == user || Adjacent(user)) && Bait)
|
||||
|
||||
@@ -27,7 +27,7 @@ var/global/const/DRINK_ICON_NOISY = "_noise"
|
||||
|
||||
matter = list("glass" = 60)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/glass2/examine(mob/M as mob)
|
||||
/obj/item/reagent_containers/food/drinks/glass2/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
for(var/I in extras)
|
||||
|
||||
@@ -94,9 +94,9 @@
|
||||
/obj/item/reagent_containers/food/drinks/feed_sound(var/mob/user)
|
||||
playsound(src, 'sound/items/drink.ogg', rand(10, 50), 1)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/examine(mob/user)
|
||||
/obj/item/reagent_containers/food/drinks/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
if(!reagents?.total_volume)
|
||||
. += "<span class='notice'>It is empty!</span>"
|
||||
else if (reagents.total_volume <= volume * 0.25)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
qdel(O)
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/csandwich/examine(mob/user)
|
||||
/obj/item/reagent_containers/food/snacks/csandwich/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(contents.len)
|
||||
var/obj/item/O = pick(contents)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
return "nearly cooked"
|
||||
return "cooked"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/examine(mob/user)
|
||||
/obj/item/reagent_containers/food/snacks/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(backyard_grilling_rawness > 0 && backyard_grilling_rawness != initial(backyard_grilling_rawness))
|
||||
. += "\The [src] is [get_backyard_grilling_text()]."
|
||||
@@ -225,9 +225,9 @@
|
||||
|
||||
return 0
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/examine(mob/user)
|
||||
/obj/item/reagent_containers/food/snacks/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
if(coating)
|
||||
. += "<span class='notice'>It's coated in [coating.name]!</span>"
|
||||
if(bitecount==0)
|
||||
@@ -7186,7 +7186,7 @@
|
||||
if(!sealed)
|
||||
unseal()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/canned/examine(mob/user)
|
||||
/obj/item/reagent_containers/food/snacks/canned/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
to_chat(user, "It is [sealed ? "" : "un"]sealed.")
|
||||
|
||||
|
||||
@@ -66,9 +66,9 @@
|
||||
qdel(CI)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/appliance/examine(var/mob/user)
|
||||
/obj/machinery/appliance/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += list_contents(user)
|
||||
|
||||
/obj/machinery/appliance/proc/list_contents(var/mob/user)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
mobdamagetype = BURN
|
||||
can_burn_food = TRUE
|
||||
|
||||
/obj/machinery/appliance/cooker/examine(var/mob/user)
|
||||
/obj/machinery/appliance/cooker/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(.) //no need to duplicate adjacency check
|
||||
if(!stat)
|
||||
@@ -143,4 +143,4 @@
|
||||
var/datum/cooking_item/CI = ..()
|
||||
if (CI && CI.combine_target)
|
||||
to_chat(user, "<span class='filter_notice'>\The [I] will be used to make a [selected_option]. Output selection is returned to default for future items.</span>")
|
||||
selected_option = null
|
||||
selected_option = null
|
||||
|
||||
@@ -15,9 +15,9 @@ fundamental differences
|
||||
idle_power_usage = 50
|
||||
var/datum/looping_sound/mixer/mixer_loop
|
||||
|
||||
/obj/machinery/appliance/mixer/examine(var/mob/user)
|
||||
/obj/machinery/appliance/mixer/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "<span class='notice'>It is currently set to make a [selected_option]</span>"
|
||||
|
||||
/obj/machinery/appliance/mixer/Initialize()
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
|
||||
|
||||
/obj/item/reagent_containers/cooking_container/examine(var/mob/user)
|
||||
/obj/item/reagent_containers/cooking_container/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if (contents.len)
|
||||
var/string = "It contains....</br>"
|
||||
|
||||
@@ -52,9 +52,9 @@
|
||||
QDEL_NULL(oil)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/appliance/cooker/fryer/examine(var/mob/user)
|
||||
/obj/machinery/appliance/cooker/fryer/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]")
|
||||
|
||||
/obj/machinery/appliance/cooker/fryer/update_icon() // We add our own version of the proc to use the special fryer double-lights.
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
else
|
||||
src.startgibbing(user)
|
||||
|
||||
/obj/machinery/gibber/examine()
|
||||
/obj/machinery/gibber/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "The safety guard is [emagged ? "<span class='danger'>disabled</span>" : "enabled"]."
|
||||
|
||||
|
||||
@@ -427,7 +427,7 @@
|
||||
update_icon()
|
||||
user.visible_message("<span class = 'notice'>\The [user] [concealed ? "conceals" : "reveals"] their hand.</span>")
|
||||
|
||||
/obj/item/cardhand/examine(mob/user)
|
||||
/obj/item/cardhand/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if((!concealed) && cards.len)
|
||||
. += "It contains: "
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
if(81 to 100)
|
||||
add_overlay("bees3")
|
||||
|
||||
/obj/machinery/beehive/examine(var/mob/user)
|
||||
/obj/machinery/beehive/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(!closed)
|
||||
. += "The lid is open."
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
. = ..()
|
||||
seeds = rand(1, 2)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/sif/examine(mob/user)
|
||||
/obj/item/reagent_containers/food/snacks/grown/sif/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(seeds)
|
||||
. += SPAN_NOTICE("You can see [seeds] seed\s in \the [src]. You might be able to extract them with a sharp object.")
|
||||
|
||||
@@ -61,7 +61,7 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds)
|
||||
src.name = "sample of [seed.seed_name] [seed.seed_noun]"
|
||||
src.desc = "It's labelled as coming from [seed.display_name]."
|
||||
|
||||
/obj/item/seeds/examine(mob/user)
|
||||
/obj/item/seeds/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(seed && !seed.roundstart)
|
||||
. += "It's tagged as variety #[seed.uid]."
|
||||
|
||||
@@ -635,7 +635,7 @@
|
||||
else if(dead)
|
||||
remove_dead(user)
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/examine(mob/user)
|
||||
/obj/machinery/portable_atmospherics/hydroponics/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
if(seed)
|
||||
@@ -643,8 +643,8 @@
|
||||
else
|
||||
. += "It is empty."
|
||||
|
||||
if(!Adjacent(user))
|
||||
return .
|
||||
if(distance > 2)
|
||||
return
|
||||
|
||||
. += "Water: [round(waterlevel,0.1)]/100"
|
||||
. += "Nutrient: [round(nutrilevel,0.1)]/10"
|
||||
|
||||
@@ -171,9 +171,9 @@
|
||||
if(id_card)
|
||||
return id_card
|
||||
|
||||
/obj/item/electronic_assembly/examine(mob/user)
|
||||
/obj/item/electronic_assembly/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
for(var/obj/item/integrated_circuit/IC in contents)
|
||||
. += IC.external_examine(user)
|
||||
if(opened)
|
||||
@@ -359,4 +359,4 @@
|
||||
|
||||
// Returns TRUE if I is something that could/should have a valid interaction. Used to tell circuitclothes to hit the circuit with something instead of the clothes
|
||||
/obj/item/electronic_assembly/proc/is_valid_tool(var/obj/item/I)
|
||||
return I.is_crowbar() || I.is_screwdriver() || istype(I, /obj/item/integrated_circuit) || istype(I, /obj/item/cell/device) || istype(I, /obj/item/integrated_electronics)
|
||||
return I.is_crowbar() || I.is_screwdriver() || istype(I, /obj/item/integrated_circuit) || istype(I, /obj/item/cell/device) || istype(I, /obj/item/integrated_electronics)
|
||||
|
||||
@@ -46,10 +46,10 @@
|
||||
IC.emp_act(severity)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/examine(mob/user)
|
||||
/obj/item/clothing/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(IC)
|
||||
. += IC.examine(user)
|
||||
. += IC.examine(user, distance, infix, suffix)
|
||||
|
||||
/obj/item/clothing/CtrlShiftClick(mob/user)
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -178,4 +178,4 @@
|
||||
|
||||
/obj/item/clothing/suit/circuitry/Initialize()
|
||||
setup_integrated_circuit(/obj/item/electronic_assembly/clothing/large)
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
I.do_work()
|
||||
return
|
||||
|
||||
/obj/item/assembly/electronic_assembly/examine(mob/user)
|
||||
/obj/item/assembly/electronic_assembly/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(EA)
|
||||
for(var/obj/item/integrated_circuit/IC in EA.contents)
|
||||
@@ -81,4 +81,3 @@
|
||||
if(!CanInteract(user, state = deep_inventory_state))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
a creative player the means to solve many problems. Circuits are held inside an electronic assembly, and are wired using special tools.
|
||||
*/
|
||||
|
||||
/obj/item/integrated_circuit/examine(mob/user)
|
||||
/obj/item/integrated_circuit/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += external_examine(user)
|
||||
interact(user)
|
||||
@@ -401,4 +401,4 @@ a creative player the means to solve many problems. Circuits are held inside an
|
||||
return
|
||||
|
||||
/obj/item/integrated_circuit/proc/on_unanchored()
|
||||
return
|
||||
return
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
complexity = number_of_pins
|
||||
. = ..()
|
||||
|
||||
/obj/item/integrated_circuit/memory/examine(mob/user)
|
||||
/obj/item/integrated_circuit/memory/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
var/i
|
||||
for(i = 1, i <= outputs.len, i++)
|
||||
@@ -121,4 +121,4 @@
|
||||
visible_message("<span class='notice'>[user] slides \a [src]'s over \the [target].</span>")
|
||||
to_chat(user, "<span class='notice'>You set \the [src]'s memory to a reference to [O.display_data(O.data)]. The ref scanner is \
|
||||
now off.</span>")
|
||||
accepting_refs = 0
|
||||
accepting_refs = 0
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
stacktype = "hide"
|
||||
no_variants = TRUE
|
||||
// This needs to be very clearly documented for players. Whether it should stay in the main description is up for debate.
|
||||
/obj/item/stack/animalhide/examine(var/mob/user)
|
||||
/obj/item/stack/animalhide/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += description_info
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
if(HS.amount < HS.max_amount)
|
||||
H = HS
|
||||
break
|
||||
|
||||
|
||||
// Either we found a valid stack, in which case increment amount,
|
||||
// Or we need to make a new stack
|
||||
if(istype(H))
|
||||
@@ -38,7 +38,7 @@
|
||||
// Increment the amount
|
||||
src.use(1)
|
||||
scraped++
|
||||
|
||||
|
||||
if(scraped)
|
||||
to_chat(user, SPAN_NOTICE("You scrape the hair off [scraped] hide\s."))
|
||||
else
|
||||
@@ -87,4 +87,4 @@
|
||||
desc = "The skin of a terrible creature."
|
||||
singular_name = "alien hide piece"
|
||||
icon_state = "sheet-xeno"
|
||||
stacktype = "hide-xeno"
|
||||
stacktype = "hide-xeno"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
max_amount = 20
|
||||
stacktype = "hairlesshide"
|
||||
|
||||
/obj/item/stack/hairlesshide/examine(var/mob/user)
|
||||
/obj/item/stack/hairlesshide/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += description_info
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/obj/item/stack/wetleather/get_drying_state(var/obj/rack)
|
||||
return (drying_wetness > 0 ? "leather_wet" : "leather_dry")
|
||||
|
||||
/obj/item/stack/wetleather/examine(var/mob/user)
|
||||
/obj/item/stack/wetleather/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += description_info
|
||||
. += "\The [src] is [get_dryness_text()]."
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
drying.forceMove(src)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/drying_rack/examine(var/mob/user)
|
||||
/obj/structure/drying_rack/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(drying)
|
||||
. += "\The [drying] is [drying.get_dryness_text()]."
|
||||
@@ -82,7 +82,7 @@
|
||||
update_icon()
|
||||
return ..()
|
||||
|
||||
/obj/structure/drying_rack/attack_robot(var/mob/user)
|
||||
/obj/structure/drying_rack/attack_robot(mob/user)
|
||||
if(Adjacent(user))
|
||||
return attack_hand(user)
|
||||
return ..()
|
||||
|
||||
@@ -12,7 +12,7 @@ var/global/list/total_extraction_beacons = list()
|
||||
var/can_use_indoors = FALSE
|
||||
var/safe_for_living_creatures = 1
|
||||
|
||||
/obj/item/extraction_pack/examine()
|
||||
/obj/item/extraction_pack/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "It has [uses_left] use\s remaining."
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
var/stored_ore
|
||||
|
||||
|
||||
/obj/structure/ore_box/examine(mob/user)
|
||||
/obj/structure/ore_box/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if (!Adjacent(user) && !isobserver(user))
|
||||
if (distance > 2 && !isobserver(user))
|
||||
return
|
||||
if (isliving(user))
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/card/mining_point_card/examine(mob/user)
|
||||
/obj/item/card/mining_point_card/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "There's [mine_points] excavation points on the card."
|
||||
. += "There's [survey_points] survey points on the card."
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
set_cached_examine_icon(src, I, 200 SECONDS)
|
||||
return I
|
||||
|
||||
/mob/observer/dead/examine(mob/user)
|
||||
/mob/observer/dead/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
if(is_admin(user))
|
||||
|
||||
@@ -416,7 +416,7 @@
|
||||
else if(prob(tipped_status * 0.2))
|
||||
playsound(src, 'sound/machines/warning-buzzer.ogg', 30, extrarange=-2)
|
||||
|
||||
/mob/living/bot/medbot/examine(mob/user)
|
||||
/mob/living/bot/medbot/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(tipped_status == MEDBOT_PANIC_NONE)
|
||||
return
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
/obj/item/mmi/digital/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
return //Doesn't do anything right now because none of the things that can be done to a regular MMI make any sense for these
|
||||
|
||||
/obj/item/mmi/digital/examine(mob/user)
|
||||
/obj/item/mmi/digital/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
if(src.brainmob && src.brainmob.key)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/mob/living/carbon/human/examine(mob/user)
|
||||
/mob/living/carbon/human/examine(mob/user, distance, infix, suffix)
|
||||
// . = ..() //Note that we don't call parent. We build the list by ourselves.
|
||||
|
||||
var/skip_gear = 0
|
||||
var/skip_body = 0
|
||||
|
||||
if(alpha <= EFFECTIVE_INVIS)
|
||||
return src.loc.examine(user) // Returns messages as if they examined wherever the human was
|
||||
return loc.examine(user, distance, infix, suffix) // Returns messages as if they examined wherever the human was
|
||||
|
||||
var/looks_synth = looksSynthetic()
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ var/global/const/MAX_ACTIVE_TIME = 400
|
||||
if(!config.aliens_allowed)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/item/clothing/mask/facehugger/examine(mob/user)
|
||||
/obj/item/clothing/mask/facehugger/examine(mob/user, distance, infix, suffix)
|
||||
..(user)
|
||||
switch(stat)
|
||||
if(DEAD,UNCONSCIOUS)
|
||||
@@ -217,4 +217,4 @@ var/global/const/MAX_ACTIVE_TIME = 400
|
||||
if(H.head && (H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL))
|
||||
return 0
|
||||
return 1
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/silicon/ai/examine(mob/user)
|
||||
/mob/living/silicon/ai/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
if (src.stat == DEAD)
|
||||
@@ -29,10 +29,10 @@
|
||||
. += "The wireless networking light is blinking."
|
||||
|
||||
. += "*---------*"
|
||||
|
||||
|
||||
if(hardware && (hardware.owner == src))
|
||||
. += hardware.get_examine_desc()
|
||||
|
||||
|
||||
user.showLaws(src)
|
||||
|
||||
/mob/proc/showLaws(var/mob/living/silicon/S)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/silicon/pai/examine(mob/user)
|
||||
. = ..(user, infix = ", personal AI")
|
||||
/mob/living/silicon/pai/examine(mob/user, distance, infix, suffix)
|
||||
. = ..(user, distance, ", personal AI", suffix)
|
||||
|
||||
switch(src.stat)
|
||||
if(CONSCIOUS)
|
||||
@@ -15,4 +15,3 @@
|
||||
if(!findtext(pose, regex("\[.?!]$"))) // Will be zero if the last character is not a member of [.?!]
|
||||
pose = addtext(pose,".") //Makes sure all emotes end with a period.
|
||||
. += "<br>It is [pose]" //Extra <br> intentional
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
|
||||
var/force_holder = null //
|
||||
|
||||
/obj/item/gripper/examine(mob/user)
|
||||
/obj/item/gripper/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(wrapped)
|
||||
. += "<span class='notice'>\The [src] is holding \the [wrapped].</span>"
|
||||
. += wrapped.examine(user)
|
||||
. += wrapped.examine(user, distance, infix, suffix)
|
||||
|
||||
/obj/item/gripper/CtrlClick(mob/user)
|
||||
drop_item()
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
if(drone_progress >= 100)
|
||||
visible_message("\The [src] voices a strident beep, indicating a drone chassis is prepared.")
|
||||
|
||||
/obj/machinery/drone_fabricator/examine(mob/user)
|
||||
/obj/machinery/drone_fabricator/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(produce_drones && drone_progress >= 100 && istype(user,/mob/observer/dead) && config.allow_drone_spawn && count_drones() < config.max_maint_drones)
|
||||
. += "<br><B>A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone.</B>"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/silicon/robot/examine(mob/user)
|
||||
var/custom_infix = custom_name ? ", [modtype] [braintype]" : ""
|
||||
. = ..(user, infix = custom_infix)
|
||||
/mob/living/silicon/robot/examine(mob/user, distance, infix, suffix)
|
||||
var/custom_infix = custom_name ? ", [modtype] [braintype]" : infix
|
||||
. = ..(user, distance, custom_infix, suffix)
|
||||
|
||||
if (src.getBruteLoss())
|
||||
if (src.getBruteLoss() < 75)
|
||||
|
||||
@@ -433,7 +433,7 @@
|
||||
max_walls = 10
|
||||
max_doors = 5
|
||||
|
||||
/obj/item/inflatable_dispenser/examine(var/mob/user)
|
||||
/obj/item/inflatable_dispenser/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "It has [stored_walls] wall segment\s and [stored_doors] door segment\s stored."
|
||||
. += "It is set to deploy [mode ? "doors" : "walls"]"
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
recharging = null
|
||||
. = ..()
|
||||
|
||||
/mob/living/silicon/robot/platform/examine(mob/user, distance)
|
||||
/mob/living/silicon/robot/platform/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(distance <= 3)
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
// Associative list of paths and their chances. path = straws in the lot
|
||||
var/list/harvest_results
|
||||
|
||||
/mob/living/simple_mob/examine(mob/user)
|
||||
/mob/living/simple_mob/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
if(user && (isobserver(user) || get_dist(user, src) <= 3))
|
||||
if(user && (isobserver(user) || distance <= 3))
|
||||
|
||||
var/datum/gender/G = gender_datums[get_visible_gender()]
|
||||
if(stat == DEAD)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
to_chat(src, span("warning", "\The [user] takes your [my_headset.name] away! How cruel!"))
|
||||
my_headset = null
|
||||
|
||||
/mob/living/simple_mob/animal/passive/bird/parrot/examine(mob/user)
|
||||
/mob/living/simple_mob/animal/passive/bird/parrot/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(my_headset)
|
||||
. += "It is wearing \a [my_headset]."
|
||||
@@ -250,4 +250,4 @@
|
||||
if(holder.stat || !holder.say_list || !message || speaker == holder)
|
||||
return
|
||||
var/datum/say_list/S = holder.say_list
|
||||
S.speak |= message
|
||||
S.speak |= message
|
||||
|
||||
@@ -163,7 +163,7 @@ You can eat glowing tree fruit to fuel your <b>ranged spitting attack</b> and <b
|
||||
reset_charisma()
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/examine(mob/living/user)
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if (istype(user, /mob/living/simple_mob/animal/sif/grafadreka) || isobserver(user))
|
||||
var/datum/gender/G = gender_datums[get_visible_gender()]
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// caps the amount drakes can heal with their sap wound tending interaction.
|
||||
sap_heal_threshold = min(sap_heal_threshold, (round(health / getMaxHealth() / scarification_period)+1) * scarification_period)
|
||||
|
||||
/mob/living/simple_mob/animal/sif/examine(mob/user)
|
||||
/mob/living/simple_mob/animal/sif/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(stat != DEAD)
|
||||
var/scarification = 1-sap_heal_threshold
|
||||
|
||||
@@ -39,9 +39,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_mob/illusion/examine(mob/user)
|
||||
/mob/living/simple_mob/illusion/examine(mob/user, distance, infix, suffix)
|
||||
if(copying)
|
||||
return copying.examine(user)
|
||||
return copying.examine(user, distance, infix, suffix)
|
||||
else
|
||||
return list("???")
|
||||
|
||||
@@ -113,4 +113,4 @@
|
||||
|
||||
/mob/living/simple_mob/illusion/get_catalogue_delay()
|
||||
if(copying)
|
||||
return copying.get_catalogue_delay()
|
||||
return copying.get_catalogue_delay()
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/construct/examine(mob/user)
|
||||
/mob/living/simple_mob/construct/examine(mob/user, distance, infix, suffix)
|
||||
. = ..(user)
|
||||
var/max = getMaxHealth()
|
||||
if (health < max)
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/slime/xenobio/examine(mob/user)
|
||||
/mob/living/simple_mob/slime/xenobio/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(hat)
|
||||
. += "It is wearing \a [hat]."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/modular_computer/examine(var/mob/user)
|
||||
/obj/item/modular_computer/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(damage > broken_damage)
|
||||
. += "<span class='danger'>It is heavily damaged!</span>"
|
||||
@@ -52,4 +52,4 @@
|
||||
if(HALLOSS)
|
||||
take_damage(Proj.damage, Proj.damage / 3, 0)
|
||||
if(BURN)
|
||||
take_damage(Proj.damage, Proj.damage / 1.5)
|
||||
take_damage(Proj.damage, Proj.damage / 1.5)
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
// Good to go.
|
||||
return 1
|
||||
|
||||
/obj/item/computer_hardware/examine(var/mob/user)
|
||||
/obj/item/computer_hardware/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(damage > damage_failure)
|
||||
. += "<span class='danger'>It seems to be severely damaged!</span>"
|
||||
@@ -85,4 +85,3 @@
|
||||
/obj/item/computer_hardware/take_damage(var/amount)
|
||||
damage += round(amount) // We want nice rounded numbers here.
|
||||
damage = between(0, damage, max_damage) // Clamp the value.
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
/turf/simulated/open/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
var/depth = 1
|
||||
for(var/T = GetBelow(src); isopenspace(T); T = GetBelow(T))
|
||||
depth += 1
|
||||
@@ -189,4 +189,4 @@
|
||||
for(var/obj/O in contents)
|
||||
if(!O.CanFallThru(L, GetBelow(src)))
|
||||
return TRUE // Can't fall through this, like lattice or catwalk.
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
@@ -122,7 +122,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
to_chat(brainmob, "<span class='notice'>You feel slightly disoriented. That's normal when you're just \a [initial(src.name)].</span>")
|
||||
callHook("debrain", list(brainmob))
|
||||
|
||||
/obj/item/organ/internal/brain/examine(mob/user) // -- TLE
|
||||
/obj/item/organ/internal/brain/examine(mob/user, distance, infix, suffix) // -- TLE
|
||||
. = ..()
|
||||
if(brainmob && brainmob.client)//if thar be a brain inside... the brain.
|
||||
. += "You can feel the small spark of life still left in this one."
|
||||
|
||||
@@ -191,7 +191,7 @@ var/global/list/organ_cache = list()
|
||||
handle_rejection()
|
||||
handle_germ_effects()
|
||||
|
||||
/obj/item/organ/examine(mob/user)
|
||||
/obj/item/organ/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(status & ORGAN_DEAD)
|
||||
. += "<span class='notice'>Decay appears to have set in.</span>"
|
||||
|
||||
@@ -148,9 +148,9 @@
|
||||
return //no eating the limb until everything's been removed
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/external/examine()
|
||||
/obj/item/organ/external/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(in_range(usr, src) || istype(usr, /mob/observer/dead))
|
||||
if(distance < 2 || istype(usr, /mob/observer/dead))
|
||||
for(var/obj/item/I in contents)
|
||||
if(istype(I, /obj/item/organ))
|
||||
continue
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
icon_state = "sensors_off"
|
||||
..()
|
||||
|
||||
/obj/machinery/shipsensors/examine(mob/user)
|
||||
/obj/machinery/shipsensors/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(health <= 0)
|
||||
. += "<span class='danger'>It is wrecked.</span>"
|
||||
@@ -226,4 +226,4 @@
|
||||
|
||||
/obj/machinery/shipsensors/weak
|
||||
heat_reduction = 0.2
|
||||
desc = "Miniaturized gravity scanner with various other sensors, used to detect irregularities in surrounding space. Can only run in vacuum to protect delicate quantum bluespace elements."
|
||||
desc = "Miniaturized gravity scanner with various other sensors, used to detect irregularities in surrounding space. Can only run in vacuum to protect delicate quantum bluespace elements."
|
||||
|
||||
@@ -191,9 +191,9 @@
|
||||
icon_state = "envelope_empty"
|
||||
|
||||
|
||||
/obj/item/folder/envelope/examine(mob/user)
|
||||
/obj/item/folder/envelope/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if (get_dist(src, user) > 3 && !isobserver(user))
|
||||
if (distance > 3 && !isobserver(user))
|
||||
return
|
||||
if (envelope_seal)
|
||||
. += "It has an [SPAN_NOTICE("intact [envelope_seal] seal")]."
|
||||
|
||||
@@ -149,9 +149,9 @@
|
||||
|
||||
free_space -= length(strip_html_properly(new_text))
|
||||
|
||||
/obj/item/paper/examine(mob/user)
|
||||
/obj/item/paper/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(in_range(user, src) || istype(user, /mob/observer/dead))
|
||||
if(distance < 2 || istype(user, /mob/observer/dead))
|
||||
show_content(usr)
|
||||
else
|
||||
. += "<span class='notice'>You have to go closer if you want to read it.</span>"
|
||||
|
||||
@@ -96,9 +96,9 @@
|
||||
else
|
||||
to_chat(user, "<font color='red'>You must hold \the [P] steady to burn \the [src].</font>")
|
||||
|
||||
/obj/item/paper_bundle/examine(mob/user)
|
||||
/obj/item/paper_bundle/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
show_content(user)
|
||||
else
|
||||
. += "<span class='notice'>It is too far away.</span>"
|
||||
@@ -243,4 +243,4 @@
|
||||
if(photo)
|
||||
desc += "\nThere is a photo attached to it."
|
||||
add_overlay(image('icons/obj/bureaucracy.dmi', "clip"))
|
||||
return
|
||||
return
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/sticky_pad/examine(var/mob/user)
|
||||
/obj/item/sticky_pad/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(.)
|
||||
to_chat(user, SPAN_NOTICE("It has [papers] [papername]\s left in the stack."))
|
||||
@@ -150,4 +150,4 @@
|
||||
if(dir_offset & NORTH)
|
||||
pixel_y += 32
|
||||
else if(dir_offset & SOUTH)
|
||||
pixel_y -= 32
|
||||
pixel_y -= 32
|
||||
|
||||
@@ -95,9 +95,9 @@
|
||||
amount++
|
||||
|
||||
|
||||
/obj/item/paper_bin/examine(mob/user)
|
||||
/obj/item/paper_bin/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
if(amount)
|
||||
. += "<span class='notice'>There " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin.</span>"
|
||||
else
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
. = ..()
|
||||
default_apply_parts()
|
||||
|
||||
/obj/machinery/photocopier/examine(mob/user as mob)
|
||||
/obj/machinery/photocopier/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "The screen shows there's [toner ? "[toner]" : "no"] toner left in the printer."
|
||||
|
||||
/obj/machinery/photocopier/attack_ai(mob/user as mob)
|
||||
|
||||
@@ -51,9 +51,9 @@ var/global/photo_count = 0
|
||||
scribble = txt
|
||||
..()
|
||||
|
||||
/obj/item/photo/examine(mob/user)
|
||||
/obj/item/photo/examine(mob/user, distance, infix, suffix)
|
||||
//This is one time we're not going to call parent, because photos are 'secret' unless you're close enough.
|
||||
if(in_range(user, src))
|
||||
if(distance < 2)
|
||||
show(user)
|
||||
return list(desc)
|
||||
else
|
||||
|
||||
@@ -62,9 +62,9 @@ var/global/list/obj/item/pda/PDAs = list()
|
||||
var/list/notifying_programs = list()
|
||||
var/retro_mode = 0
|
||||
|
||||
/obj/item/pda/examine(mob/user)
|
||||
/obj/item/pda/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "The time [stationtime2text()] is displayed in the corner of the screen."
|
||||
|
||||
/obj/item/pda/CtrlClick()
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
SSpersistence.forget_value(src, /datum/persistent/graffiti)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/writing/examine(mob/user)
|
||||
/obj/effect/decal/writing/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
to_chat(user, "It reads \"[message]\".")
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
/obj/structure/noticeboard/attack_hand(var/mob/user)
|
||||
examine(user)
|
||||
|
||||
/obj/structure/noticeboard/examine(var/mob/user)
|
||||
/obj/structure/noticeboard/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/list/dat = list("<table>")
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
to_chat(usr, "You set the tracker tag to '[tag_id]'.")
|
||||
return TRUE
|
||||
|
||||
/obj/item/specimen_tagger/examine(mob/user)
|
||||
/obj/item/specimen_tagger/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "Use this on a living animal on help intent to read an existing tracker, grab intent to tag an animal with a tracker, and any other intent to remove an existing tracker."
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
return
|
||||
|
||||
// Mob helpers/overrides.
|
||||
/mob/living/examine(mob/user, infix, suffix)
|
||||
/mob/living/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
var/obj/item/gps/specimen_tag/xenotag = locate() in src
|
||||
if(istype(xenotag) && xenotag.has_been_implanted())
|
||||
|
||||
@@ -134,7 +134,7 @@ GLOBAL_LIST_EMPTY(apcs)
|
||||
var/static/list/status_overlays_lighting
|
||||
var/static/list/status_overlays_environ
|
||||
var/alarms_hidden = FALSE //If power alarms from this APC are visible on consoles
|
||||
|
||||
|
||||
var/nightshift_lights = FALSE
|
||||
var/nightshift_setting = NIGHTSHIFT_AUTO
|
||||
var/last_nightshift_switch = 0
|
||||
@@ -271,9 +271,9 @@ GLOBAL_LIST_EMPTY(apcs)
|
||||
spawn(5)
|
||||
update()
|
||||
|
||||
/obj/machinery/power/apc/examine(mob/user)
|
||||
/obj/machinery/power/apc/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
if(stat & BROKEN)
|
||||
. += "This APC is broken."
|
||||
|
||||
@@ -1387,4 +1387,4 @@ GLOBAL_LIST_EMPTY(apcs)
|
||||
|
||||
#undef APC_HAS_ELECTRONICS_NONE
|
||||
#undef APC_HAS_ELECTRONICS_WIRED
|
||||
#undef APC_HAS_ELECTRONICS_SECURED
|
||||
#undef APC_HAS_ELECTRONICS_SECURED
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
..()
|
||||
set_state(1)
|
||||
|
||||
/obj/machinery/power/breakerbox/examine(mob/user)
|
||||
/obj/machinery/power/breakerbox/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(on)
|
||||
. += "<span class='notice'>It seems to be online.</span>"
|
||||
|
||||
@@ -110,7 +110,7 @@ var/global/list/possible_cable_coil_colours = list(
|
||||
cable_list -= src //remove it from global cable list
|
||||
return ..() // then go ahead and delete the cable
|
||||
|
||||
/obj/structure/cable/examine(mob/user)
|
||||
/obj/structure/cable/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(isobserver(user))
|
||||
. += "<span class='warning'>[powernet?.avail > 0 ? "[DisplayPower(powernet.avail)] in power network." : "The cable is not powered."]</span>"
|
||||
@@ -966,10 +966,10 @@ var/global/list/possible_cable_coil_colours = list(
|
||||
/obj/item/stack/cable_coil/alien/update_wclass()
|
||||
return 0
|
||||
|
||||
/obj/item/stack/cable_coil/alien/examine(mob/user)
|
||||
/obj/item/stack/cable_coil/alien/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "It doesn't seem to have a beginning, or an end."
|
||||
|
||||
/obj/item/stack/cable_coil/alien/attack_hand(mob/user as mob)
|
||||
|
||||
@@ -155,9 +155,9 @@
|
||||
return amount_used
|
||||
|
||||
|
||||
/obj/item/cell/examine(mob/user)
|
||||
/obj/item/cell/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "It has a power rating of [maxcharge]."
|
||||
. += "The charge meter reads [round(src.percent() )]%."
|
||||
|
||||
@@ -270,4 +270,4 @@
|
||||
if (1000 to 50000-1)
|
||||
return min(rand(10,20),rand(10,20))
|
||||
else
|
||||
return 0
|
||||
return 0
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
density = 1
|
||||
var/show_extended_information = 1 // Set to 0 to disable extra information on examining (for example, when used on admin events)
|
||||
|
||||
/obj/machinery/power/debug_items/examine(mob/user)
|
||||
/obj/machinery/power/debug_items/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(show_extended_information)
|
||||
. += show_info(user)
|
||||
|
||||
@@ -55,9 +55,9 @@ var/global/list/light_type_cache = list()
|
||||
if(3)
|
||||
icon_state = "tube-empty"
|
||||
|
||||
/obj/machinery/light_construct/examine(mob/user)
|
||||
/obj/machinery/light_construct/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(get_dist(user, src) <= 2)
|
||||
if(distance <= 2)
|
||||
switch(stage)
|
||||
if(1)
|
||||
. += "It's an empty frame."
|
||||
@@ -459,7 +459,7 @@ var/global/list/light_type_cache = list()
|
||||
return cell
|
||||
|
||||
// examine verb
|
||||
/obj/machinery/light/examine(mob/user)
|
||||
/obj/machinery/light/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
var/fitting = get_fitting_name()
|
||||
switch(status)
|
||||
|
||||
@@ -57,13 +57,12 @@
|
||||
if(!anchored)
|
||||
return
|
||||
|
||||
/obj/machinery/power/port_gen/examine(mob/user)
|
||||
/obj/machinery/power/port_gen/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user)) //It literally has a light on the sprite, are you sure this is necessary?
|
||||
if(active)
|
||||
. += "<span class='notice'>The generator is on.</span>"
|
||||
else
|
||||
. += "<span class='notice'>The generator is off.</span>"
|
||||
if(active)
|
||||
. += "<span class='notice'>The generator is on.</span>"
|
||||
else
|
||||
. += "<span class='notice'>The generator is off.</span>"
|
||||
|
||||
/obj/machinery/power/port_gen/emp_act(severity)
|
||||
var/duration = 6000 //ten minutes
|
||||
@@ -125,7 +124,7 @@
|
||||
default_apply_parts()
|
||||
if(anchored)
|
||||
connect_to_network()
|
||||
|
||||
|
||||
/obj/machinery/power/port_gen/pacman/Destroy()
|
||||
DropFuel()
|
||||
return ..()
|
||||
@@ -145,7 +144,7 @@
|
||||
|
||||
power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2))
|
||||
|
||||
/obj/machinery/power/port_gen/pacman/examine(mob/user)
|
||||
/obj/machinery/power/port_gen/pacman/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "It appears to be producing [power_gen*power_output] W."
|
||||
. += "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper."
|
||||
@@ -312,7 +311,7 @@
|
||||
if(!ui)
|
||||
ui = new(user, src, "PortableGenerator", name)
|
||||
ui.open()
|
||||
|
||||
|
||||
/obj/machinery/power/port_gen/pacman/tgui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
@@ -324,7 +323,7 @@
|
||||
data["is_ai"] = TRUE
|
||||
else
|
||||
data["is_ai"] = FALSE
|
||||
|
||||
|
||||
data["sheet_name"] = capitalize(sheet_name)
|
||||
data["fuel_stored"] = round((sheets * 1000) + (sheet_left * 1000))
|
||||
data["fuel_capacity"] = round(max_sheets * 1000, 0.1)
|
||||
|
||||
@@ -102,9 +102,9 @@ var/global/list/rad_collectors = list()
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/machinery/power/rad_collector/examine(mob/user)
|
||||
/obj/machinery/power/rad_collector/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(get_dist(user, src) <= 3)
|
||||
if(distance <= 3)
|
||||
. += "The meter indicates that it is collecting [last_power] W."
|
||||
|
||||
/obj/machinery/power/rad_collector/ex_act(severity)
|
||||
@@ -157,4 +157,3 @@ var/global/list/rad_collectors = list()
|
||||
flick("ca_deactive", src)
|
||||
update_icons()
|
||||
return
|
||||
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
if(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/power/emitter/examine(mob/user)
|
||||
/obj/machinery/power/emitter/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
var/integrity_percentage = round((integrity / initial(integrity)) * 100)
|
||||
switch(integrity_percentage)
|
||||
@@ -288,4 +288,4 @@
|
||||
return burst_delay
|
||||
|
||||
/obj/machinery/power/emitter/proc/get_emitter_beam()
|
||||
return new /obj/item/projectile/beam/emitter(get_turf(src))
|
||||
return new /obj/item/projectile/beam/emitter(get_turf(src))
|
||||
|
||||
@@ -111,9 +111,9 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
src.set_dir(turn(src.dir, 90))
|
||||
return 1
|
||||
|
||||
/obj/structure/particle_accelerator/examine(mob/user)
|
||||
/obj/structure/particle_accelerator/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
|
||||
switch(construction_state)
|
||||
if(0)
|
||||
. += "Looks like it's not attached to the flooring."
|
||||
@@ -290,9 +290,9 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
/obj/machinery/particle_accelerator/update_icon()
|
||||
return
|
||||
|
||||
/obj/machinery/particle_accelerator/examine(mob/user)
|
||||
/obj/machinery/particle_accelerator/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
|
||||
switch(construction_state)
|
||||
if(0)
|
||||
. += "Looks like it's not attached to the flooring."
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
recipes.Cut()
|
||||
..()
|
||||
|
||||
/obj/machinery/particle_smasher/examine(mob/user)
|
||||
/obj/machinery/particle_smasher/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(distance < 2)
|
||||
. += "<span class='notice'>\The [src] contains:</span>"
|
||||
for(var/obj/item/I in contents)
|
||||
. += "<span class='notice'>\the [I]</span>"
|
||||
@@ -378,4 +378,4 @@
|
||||
|
||||
required_atmos_temp_min = 3000
|
||||
required_atmos_temp_max = 10000
|
||||
probability = 1
|
||||
probability = 1
|
||||
|
||||
@@ -468,7 +468,7 @@ GLOBAL_LIST_EMPTY(smeses)
|
||||
// Given the SMES creates another explosion on it's destruction it sounds fairly reasonable.
|
||||
take_damage(250 / severity)
|
||||
|
||||
/obj/machinery/power/smes/examine(var/mob/user)
|
||||
/obj/machinery/power/smes/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "<span class='filter_notice'>The service hatch is [panel_open ? "open" : "closed"].</span>"
|
||||
if(!damage)
|
||||
@@ -482,4 +482,4 @@ GLOBAL_LIST_EMPTY(smeses)
|
||||
if(25 to 49)
|
||||
. += "<span class='filter_notice'><span class='notice'>It's casing is quite seriously damaged.</span></span>"
|
||||
if(0 to 24)
|
||||
. += "<span class='filter_notice'>It's casing has some minor damage.</span>"
|
||||
. += "<span class='filter_notice'>It's casing has some minor damage.</span>"
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
else
|
||||
energy = 0 // ensure we dont have miniballs of miniballs
|
||||
|
||||
/obj/singularity/energy_ball/examine(mob/user)
|
||||
/obj/singularity/energy_ball/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if(orbiting_balls.len)
|
||||
. += "The amount of orbiting mini-balls is [orbiting_balls.len]."
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
if(!BB)
|
||||
icon_state = "[initial(icon_state)]-spent"
|
||||
|
||||
/obj/item/ammo_casing/examine(mob/user)
|
||||
/obj/item/ammo_casing/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
if (!BB)
|
||||
. += "This one is spent."
|
||||
@@ -217,7 +217,7 @@
|
||||
break
|
||||
icon_state = (new_state)? new_state : initial(icon_state)
|
||||
|
||||
/obj/item/ammo_magazine/examine(mob/user)
|
||||
/obj/item/ammo_magazine/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "There [(stored_ammo.len == 1)? "is" : "are"] [stored_ammo.len] round\s left!"
|
||||
|
||||
@@ -245,4 +245,3 @@
|
||||
|
||||
magazine_icondata_keys["[M.type]"] = icon_keys
|
||||
magazine_icondata_states["[M.type]"] = ammo_states
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/remaining = 9
|
||||
preserve_item = 1
|
||||
|
||||
/obj/item/magnetic_ammo/examine(mob/user)
|
||||
/obj/item/magnetic_ammo/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
. += "There [(remaining == 1)? "is" : "are"] [remaining] flechette\s left!"
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
last_production_time = world.time
|
||||
produce()
|
||||
|
||||
/obj/item/ammo_magazine/smart/examine(mob/user)
|
||||
/obj/item/ammo_magazine/smart/examine(mob/user, distance, infix, suffix)
|
||||
. = ..()
|
||||
|
||||
if(attached_cell)
|
||||
@@ -223,4 +223,4 @@
|
||||
ammo_type = null
|
||||
production_cost = null
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user