Split examine verb and function, and improve it (#17251)

* Split examine verb and function, and include adjacency and distance checking in examine function

* Fix various issues

* Update code/modules/mob/examinations.dm

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

* Add required define vars

* Update code/game/objects/items/stacks/wrap.dm

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

---------

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
This commit is contained in:
Cody Brittain
2023-09-09 08:07:36 +00:00
committed by GitHub
co-authored by SleepyGemmy
parent 39228d3a2c
commit ce5ac79e3c
241 changed files with 617 additions and 518 deletions
+1 -1
View File
@@ -45,7 +45,7 @@
add_overlay(lid)
/obj/item/reagent_containers/chem_disp_cartridge/examine(mob/user)
..()
. = ..()
to_chat(user, "It has a capacity of [volume] units.")
if(reagents.total_volume <= 0)
to_chat(user, "It is empty.")
@@ -40,7 +40,7 @@
add_cartridge(new type(src))
/obj/machinery/chemical_dispenser/examine(mob/user)
..()
. = ..()
to_chat(user, "It has [cartridges.len] cartridges installed, and has space for [DISPENSER_MAX_CARTRIDGES - cartridges.len] more.")
/obj/machinery/chemical_dispenser/proc/add_cartridge(obj/item/reagent_containers/chem_disp_cartridge/C, mob/user)
@@ -155,8 +155,9 @@
attached_mob = null
STOP_PROCESSING(SSprocessing, src)
/obj/item/reagent_containers/blood/examine(mob/user, distance = 2)
if (..() && vampire_marks)
/obj/item/reagent_containers/blood/examine(mob/user, distance, is_adjacent)
. = ..()
if (distance <= 2 && vampire_marks)
to_chat(user, SPAN_WARNING("There are teeth marks on it."))
return
@@ -126,8 +126,10 @@
to_chat(usr, SPAN_NOTICE("Synthesizer is now producing '[R.name]'."))
update_icon()
/obj/item/reagent_containers/hypospray/borghypo/examine(mob/user)
if(!..(user, 2))
/obj/item/reagent_containers/hypospray/borghypo/examine(mob/user, distance, is_adjacent)
. = ..()
if (distance > 2)
return
var/singleton/reagent/R = GET_SINGLETON(reagent_ids[mode])
@@ -103,7 +103,7 @@
update_held_icon()
/obj/item/reagent_containers/dropper/examine(mob/user)
..(user)
. = ..()
if(LAZYLEN(reagents.reagent_volumes))
to_chat(user, SPAN_NOTICE("\The [src] is holding [reagents.total_volume] units out of [volume]. Current transfer is [amount_per_transfer_from_this] units."))
else
@@ -83,8 +83,9 @@ If you add a drink with an empty icon sprite, ensure it is in the same folder, e
return 1
return ..()
/obj/item/reagent_containers/food/drinks/examine(mob/user)
if(!..(user, 1))
/obj/item/reagent_containers/food/drinks/examine(mob/user, distance, is_adjacent)
. = ..()
if (distance > 1)
return
if(!reagents || reagents.total_volume == 0)
to_chat(user, "<span class='notice'>\The [src] is empty!</span>")
@@ -69,6 +69,6 @@
return ..()
/obj/item/reagent_containers/food/snacks/csandwich/examine(mob/user)
..(user)
. = ..()
var/obj/item/O = pick(contents)
to_chat(user, SPAN_NOTICE("You think you can see [O.name] in there."))
@@ -142,8 +142,9 @@
return 1
/obj/item/reagent_containers/food/snacks/examine(mob/user)
if(!..(user, 1))
/obj/item/reagent_containers/food/snacks/examine(mob/user, distance)
. = ..()
if(distance > 1)
return
if (coating)
var/singleton/reagent/coating_reagent = GET_SINGLETON(coating)
@@ -24,8 +24,9 @@
. = ..()
AddComponent(/datum/component/base_name, name)
/obj/item/reagent_containers/glass/examine(var/mob/user)
if(!..(user, 2))
/obj/item/reagent_containers/glass/examine(mob/user, distance, is_adjacent)
. = ..()
if(distance > 2)
return
if(LAZYLEN(reagents.reagent_volumes))
to_chat(user, SPAN_NOTICE("It contains [round(reagents.total_volume, accuracy)] units of a reagent."))
@@ -188,7 +188,7 @@
update_held_icon()
/obj/item/reagent_containers/hypospray/autoinjector/examine(mob/user)
..(user)
. = ..()
if(LAZYLEN(reagents.reagent_volumes))
to_chat(user, SPAN_NOTICE("It is currently loaded."))
else
@@ -147,7 +147,7 @@
update_held_icon()
/obj/item/reagent_containers/inhaler/examine(mob/user)
..(user)
. = ..()
if(LAZYLEN(reagents.reagent_volumes))
to_chat(user, "<span class='notice'>It is currently loaded.</span>")
else
@@ -32,8 +32,10 @@
filling.color = reagents.get_color()
add_overlay(filling)
/obj/item/reagent_containers/personal_inhaler_cartridge/examine(var/mob/user)
if(!..(user, 2))
/obj/item/reagent_containers/personal_inhaler_cartridge/examine(mob/user, distance, is_adjacent)
. = ..()
if (distance > 2)
return
if(is_open_container())
@@ -99,8 +101,9 @@
origin_tech = list(TECH_BIO = 2, TECH_MATERIAL = 2)
var/eject_when_empty = FALSE
/obj/item/personal_inhaler/examine(var/mob/user)
if(!..(user, 2))
/obj/item/personal_inhaler/examine(mob/user, distance, is_adjacent)
. = ..()
if(distance > 2)
return
if(stored_cartridge)
to_chat(user,"<span class='notice'>\The [stored_cartridge] is attached to \the [src].</span>")
@@ -110,8 +110,8 @@
spray_size = next_in_list(spray_size, spray_sizes)
to_chat(user, SPAN_NOTICE("You adjusted the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray, with a [spray_size] lane spray."))
/obj/item/reagent_containers/spray/examine(mob/user)
if(..(user, 0) && loc == user)
/obj/item/reagent_containers/spray/examine(mob/user, distance, is_adjacent)
if(is_adjacent)
to_chat(user, "[round(reagents.total_volume)] units left.")
return
@@ -168,8 +168,9 @@
safety = 1
reagents_to_add = list(/singleton/reagent/capsaicin/condensed = 40)
/obj/item/reagent_containers/spray/pepper/examine(mob/user)
if(..(user, 1))
/obj/item/reagent_containers/spray/pepper/examine(mob/user, distance, is_adjacent)
. = ..()
if(distance <= 1)
to_chat(user, "The safety is [safety ? "on" : "off"].")
/obj/item/reagent_containers/spray/pepper/AltClick()
+7 -5
View File
@@ -21,8 +21,9 @@
src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
desc_info = ""
/obj/structure/reagent_dispensers/examine(mob/user)
if(!..(user, 2))
/obj/structure/reagent_dispensers/examine(mob/user, distance, is_adjacent)
. = ..()
if(distance > 2)
return
to_chat(user,"<span class='notice'>It contains [reagents.total_volume] units of reagents.</span>")
@@ -127,8 +128,9 @@
var/obj/item/device/assembly_holder/rig = null
reagents_to_add = list(/singleton/reagent/fuel = 1000)
/obj/structure/reagent_dispensers/fueltank/examine(mob/user)
if(!..(user, 2))
/obj/structure/reagent_dispensers/fueltank/examine(mob/user, distance, is_adjacent)
. = ..()
if(distance > 2)
return
if (is_leaking)
to_chat(user, "<span class='warning'>Fuel faucet is wrenched open, leaking the fuel!</span>")
@@ -424,4 +426,4 @@
desc = "A metal barrel containing radioactive waste."
icon_state = "chemical_barrel"
amount_per_transfer_from_this = 300
reagents_to_add = list(/singleton/reagent/radioactive_waste = 1000)
reagents_to_add = list(/singleton/reagent/radioactive_waste = 1000)