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:
Spookerton
2023-12-29 23:44:21 +00:00
parent e3393dc87b
commit 978f4511a5
240 changed files with 524 additions and 551 deletions
+2 -2
View File
@@ -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
+4 -4
View File
@@ -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
+1 -1
View File
@@ -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."
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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)]"
+2 -2
View File
@@ -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.
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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>"
+1 -1
View File
@@ -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]" : ""]."
+1 -1
View File
@@ -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]" : ""]."
+19 -15
View File
@@ -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)
+2 -2
View File
@@ -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)
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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)
+4 -4
View File
@@ -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.
+1 -1
View File
@@ -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"]."
+1 -1
View File
@@ -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."
+1 -1
View File
@@ -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.")
+1 -1
View File
@@ -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]."
+3 -3
View File
@@ -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 ..()
+1 -1
View File
@@ -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."
+2 -2
View File
@@ -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."
+1 -1
View File
@@ -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))
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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.
+2 -2
View File
@@ -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 ..()
+1 -1
View File
@@ -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."
+1 -1
View File
@@ -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>"
+2 -2
View File
@@ -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."
+2 -2
View File
@@ -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")]."
+2 -2
View File
@@ -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>"
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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)
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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()
+1 -1
View File
@@ -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]\".")
+1 -1
View File
@@ -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>")
+2 -2
View File
@@ -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())
+4 -4
View File
@@ -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
+1 -1
View File
@@ -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>"
+3 -3
View File
@@ -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)
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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)
+3 -3
View File
@@ -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)
+9 -10
View File
@@ -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)
+2 -3
View File
@@ -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
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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>"
+1 -1
View File
@@ -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]."
+2 -3
View File
@@ -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