diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index c2cfa133de1..f035e75c5da 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -1232,32 +1232,9 @@ if(istype(W, /obj/item/device/pipe_painter)) return - if(istype(W, /obj/item/device/analyzer) && in_range(user, src)) - for (var/mob/O in viewers(user, null)) - O << "\red [user] has used the analyzer on \icon[icon]" - - var/pressure = parent.air.return_pressure() - var/total_moles = parent.air.total_moles() - - user << "\blue Results of analysis of \icon[icon]" - if (total_moles>0) - var/o2_concentration = parent.air.oxygen/total_moles - var/n2_concentration = parent.air.nitrogen/total_moles - var/co2_concentration = parent.air.carbon_dioxide/total_moles - var/toxins_concentration = parent.air.toxins/total_moles - - var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+toxins_concentration) - - user << "\blue Pressure: [round(pressure,0.1)] kPa" - user << "\blue Nitrogen: [round(n2_concentration*100)]%" - user << "\blue Oxygen: [round(o2_concentration*100)]%" - user << "\blue CO2: [round(co2_concentration*100)]%" - user << "\blue Toxins: [round(toxins_concentration*100)]%" - if(unknown_concentration>0.01) - user << "\red Unknown: [round(unknown_concentration*100)]%" - user << "\blue Temperature: [round(parent.air.temperature-T0C)]°C" - else - user << "\blue Tank is empty!" + if(istype(W, /obj/item/device/analyzer)) + atmosanalyzer_scan(parent.air, user) + return /obj/machinery/atmospherics/pipe/tank/air name = "Pressure Tank (Air)" diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 9e2b19b17a5..17a35c9ba7d 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -331,7 +331,32 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/format_frequency(var/f) return "[round(f / 10)].[f % 10]" +/obj/proc/atmosanalyzer_scan(var/datum/gas_mixture/air_contents, mob/user, var/obj/target = src) + var/obj/icon = target + user.visible_message("[user] has used the analyzer on \icon[icon] [target].", "You use the analyzer on \icon[icon] [target].") + var/pressure = air_contents.return_pressure() + var/total_moles = air_contents.total_moles() + user << "Results of analysis of \icon[icon] [target]." + if(total_moles>0) + var/o2_concentration = air_contents.oxygen/total_moles + var/n2_concentration = air_contents.nitrogen/total_moles + var/co2_concentration = air_contents.carbon_dioxide/total_moles + var/plasma_concentration = air_contents.toxins/total_moles + + var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration) + + user << "Pressure: [round(pressure,0.1)] kPa" + user << "Nitrogen: [round(n2_concentration*100)] %" + user << "Oxygen: [round(o2_concentration*100)] %" + user << "CO2: [round(co2_concentration*100)] %" + user << "Plasma: [round(plasma_concentration*100)] %" + if(unknown_concentration>0.01) + user << "Unknown: [round(unknown_concentration*100)] %" + user << "Temperature: [round(air_contents.temperature-T0C)] °C" + else + user << "[target] is empty!" + return //This will update a mob's name, real_name, mind.name, data_core records, pda and id //Calling this proc without an oldname will only update the mob and skip updating the pda, id and records ~Carn diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 1be7ef4b3c3..1e6ce7e1253 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -91,7 +91,6 @@ return 1 /obj/machinery/portable_atmospherics/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params) - var/obj/icon = src if ((istype(W, /obj/item/weapon/tank) && !( src.destroyed ))) if (src.holding) return @@ -123,32 +122,6 @@ return else if ((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1) - visible_message("\red [user] has used [W] on \icon[icon]") - if(air_contents) - var/pressure = air_contents.return_pressure() - var/total_moles = air_contents.total_moles() - - user << "\blue Results of analysis of \icon[icon]" - if (total_moles>0) - var/o2_concentration = air_contents.oxygen/total_moles - var/n2_concentration = air_contents.nitrogen/total_moles - var/co2_concentration = air_contents.carbon_dioxide/total_moles - var/plasma_concentration = air_contents.toxins/total_moles - - var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration) - - user << "\blue Pressure: [round(pressure,0.1)] kPa" - user << "\blue Nitrogen: [round(n2_concentration*100)]%" - user << "\blue Oxygen: [round(o2_concentration*100)]%" - user << "\blue CO2: [round(co2_concentration*100)]%" - user << "\blue Plasma: [round(plasma_concentration*100)]%" - if(unknown_concentration>0.01) - user << "\red Unknown: [round(unknown_concentration*100)]%" - user << "\blue Temperature: [round(air_contents.temperature-T0C)]°C" - else - user << "\blue Tank is empty!" - else - user << "\blue Tank is empty!" - return + atmosanalyzer_scan(air_contents, user) return diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 388467ac607..2f23f8d47ba 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -296,9 +296,9 @@ REAGENT SCANNER w_class = 2.0 flags = CONDUCT slot_flags = SLOT_BELT - throwforce = 5 - throw_speed = 4 - throw_range = 20 + throwforce = 0 + throw_speed = 3 + throw_range = 7 m_amt = 30 g_amt = 20 origin_tech = "magnets=1;engineering=1" @@ -307,9 +307,6 @@ REAGENT SCANNER if (user.stat) return - if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") - usr << "\red You don't have the dexterity to do this!" - return var/turf/location = user.loc if (!( istype(location, /turf) )) @@ -320,11 +317,11 @@ REAGENT SCANNER var/pressure = environment.return_pressure() var/total_moles = environment.total_moles() - user.show_message("\blue Results:", 1) + user.show_message("Results:", 1) if(abs(pressure - ONE_ATMOSPHERE) < 10) - user.show_message("\blue Pressure: [round(pressure,0.1)] kPa", 1) + user.show_message("Pressure: [round(pressure,0.1)] kPa", 1) else - user.show_message("\red Pressure: [round(pressure,0.1)] kPa", 1) + user.show_message("Pressure: [round(pressure,0.1)] kPa", 1) if(total_moles) var/o2_concentration = environment.oxygen/total_moles var/n2_concentration = environment.nitrogen/total_moles @@ -333,27 +330,27 @@ REAGENT SCANNER var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration) if(abs(n2_concentration - N2STANDARD) < 20) - user.show_message("\blue Nitrogen: [round(n2_concentration*100)]%", 1) + user.show_message("Nitrogen: [round(n2_concentration*100)] %", 1) else - user.show_message("\red Nitrogen: [round(n2_concentration*100)]%", 1) + user.show_message("Nitrogen: [round(n2_concentration*100)] %", 1) if(abs(o2_concentration - O2STANDARD) < 2) - user.show_message("\blue Oxygen: [round(o2_concentration*100)]%", 1) + user.show_message("Oxygen: [round(o2_concentration*100)] %", 1) else - user.show_message("\red Oxygen: [round(o2_concentration*100)]%", 1) + user.show_message("Oxygen: [round(o2_concentration*100)] %", 1) if(co2_concentration > 0.01) - user.show_message("\red CO2: [round(co2_concentration*100)]%", 1) + user.show_message("CO2: [round(co2_concentration*100)] %", 1) else - user.show_message("\blue CO2: [round(co2_concentration*100)]%", 1) + user.show_message("CO2: [round(co2_concentration*100)] %", 1) if(plasma_concentration > 0.01) - user.show_message("\red Plasma: [round(plasma_concentration*100)]%", 1) + user.show_message("Plasma: [round(plasma_concentration*100)] %", 1) if(unknown_concentration > 0.01) - user.show_message("\red Unknown: [round(unknown_concentration*100)]%", 1) + user.show_message("Unknown: [round(unknown_concentration*100)] %", 1) - user.show_message("\blue Temperature: [round(environment.temperature-T0C)]°C", 1) + user.show_message("Temperature: [round(environment.temperature-T0C)] °C", 1) src.add_fingerprint(user) return diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 1df86de4c29..9e81b02d31c 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -112,31 +112,7 @@ return if(istype(W, /obj/item/device/analyzer) && ptank) - var/obj/item/weapon/icon = src - user.visible_message("[user] has used the analyzer on \icon[icon]") - var/pressure = ptank.air_contents.return_pressure() - var/total_moles = ptank.air_contents.total_moles() - - user << "\blue Results of analysis of \icon[icon]" - if(total_moles>0) - var/o2_concentration = ptank.air_contents.oxygen/total_moles - var/n2_concentration = ptank.air_contents.nitrogen/total_moles - var/co2_concentration = ptank.air_contents.carbon_dioxide/total_moles - var/plasma_concentration = ptank.air_contents.toxins/total_moles - - var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration) - - user << "\blue Pressure: [round(pressure,0.1)] kPa" - user << "\blue Nitrogen: [round(n2_concentration*100)]%" - user << "\blue Oxygen: [round(o2_concentration*100)]%" - user << "\blue CO2: [round(co2_concentration*100)]%" - user << "\blue Plasma: [round(plasma_concentration*100)]%" - if(unknown_concentration>0.01) - user << "\red Unknown: [round(unknown_concentration*100)]%" - user << "\blue Temperature: [round(ptank.air_contents.temperature-T0C)]°C" - else - user << "\blue Tank is empty!" - return + atmosanalyzer_scan(ptank.air_contents, user) ..() return diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 6a977006fb8..624c1c345c0 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -80,43 +80,17 @@ /obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob, params) ..() - var/obj/icon = src + src.add_fingerprint(user) if (istype(src.loc, /obj/item/assembly)) icon = src.loc if ((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1) - for (var/mob/O in viewers(user, null)) - O << "\red [user] has used [W] on \icon[icon] [src]" + atmosanalyzer_scan(air_contents, user) - var/pressure = air_contents.return_pressure() - - var/total_moles = air_contents.total_moles() - - user << "\blue Results of analysis of \icon[icon]" - if (total_moles>0) - var/o2_concentration = air_contents.oxygen/total_moles - var/n2_concentration = air_contents.nitrogen/total_moles - var/co2_concentration = air_contents.carbon_dioxide/total_moles - var/plasma_concentration = air_contents.toxins/total_moles - - var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration) - - user << "\blue Pressure: [round(pressure,0.1)] kPa" - user << "\blue Nitrogen: [round(n2_concentration*100)]%" - user << "\blue Oxygen: [round(o2_concentration*100)]%" - user << "\blue CO2: [round(co2_concentration*100)]%" - user << "\blue Plasma: [round(plasma_concentration*100)]%" - if(unknown_concentration>0.01) - user << "\red Unknown: [round(unknown_concentration*100)]%" - user << "\blue Temperature: [round(air_contents.temperature-T0C)]°C" - else - user << "\blue Tank is empty!" - src.add_fingerprint(user) else if (istype(W,/obj/item/latexballon)) var/obj/item/latexballon/LB = W LB.blow(src) - src.add_fingerprint(user) if(istype(W, /obj/item/device/assembly_holder)) bomb_assemble(W,user) diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 62dd0c0690e..8085fefd999 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -39,7 +39,7 @@ bombtank.master = null bombtank = null - del(src) + qdel(src) return if((istype(W, /obj/item/weapon/weldingtool) && W:welding)) if(!status) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 25df3769d72..c7e96dd4737 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -51,9 +51,11 @@ var/global/list/rad_collectors = list() /obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/analyzer)) - user << "\blue The [W.name] detects that [last_power]W were recently produced." + if(istype(W, /obj/item/device/multitool)) + user << "The [W.name] detects that [last_power]W were recently produced." return 1 + else if(istype(W, /obj/item/device/analyzer) && P) + atmosanalyzer_scan(P.air_contents, user) else if(istype(W, /obj/item/weapon/tank/plasma)) if(!src.anchored) user << "\red The [src] needs to be secured to the floor first."