diff --git a/code/_onclick/observer_onclick.dm b/code/_onclick/observer_onclick.dm index 6f6692e0755..048120ad58c 100644 --- a/code/_onclick/observer_onclick.dm +++ b/code/_onclick/observer_onclick.dm @@ -91,3 +91,12 @@ /obj/effect/portal/attack_ghost(mob/user as mob) if(target) user.forceMove(get_turf(target)) + +/obj/machinery/atmospherics/attack_ghost(mob/dead/observer/user) + if(user.gas_analyzer) + if(istype(src, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/T = src + atmosanalyzer_scan(T.parent.air, user, T) + else if(istype(src, /obj/machinery/atmospherics/unary)) + var/obj/machinery/atmospherics/unary/T = src + atmosanalyzer_scan(T.air_contents, user, T) diff --git a/code/modules/mob/dead/observer/observer_base.dm b/code/modules/mob/dead/observer/observer_base.dm index 81efa5c8c9c..05bc4dbfec7 100644 --- a/code/modules/mob/dead/observer/observer_base.dm +++ b/code/modules/mob/dead/observer/observer_base.dm @@ -32,6 +32,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/list/data_hud_seen = list() var/ghost_orbit = GHOST_ORBIT_CIRCLE var/health_scan = FALSE //does the ghost have health scanner mode on? by default it should be off + ///toggle for ghost gas analyzer + var/gas_analyzer = FALSE var/datum/orbit_menu/orbit_menu /mob/dead/observer/New(mob/body=null, flags=1) @@ -528,6 +530,18 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(src, "Health scan enabled.") health_scan = TRUE +/mob/dead/observer/verb/toggle_gas_anaylzer() + set name = "Toggle Gas Analyzer" + set desc = "Toggles wether you can anaylze gas contents on click" + set category = "Ghost" + + if(gas_analyzer) + to_chat(src, "Gas Analyzer disabled.") + gas_analyzer = FALSE + else + to_chat(src, "Gas Analyzer enabled. Click on a pipe to analyze.") + gas_analyzer = TRUE + /mob/dead/observer/verb/analyze_air() set name = "Analyze Air" set category = "Ghost"