From 3e4cb4c25a21e7bd2b4d0c273f319ee5ad2c8f1b Mon Sep 17 00:00:00 2001
From: Bjamcham <107899953+Bjamcham@users.noreply.github.com>
Date: Mon, 30 Oct 2023 15:09:37 -0400
Subject: [PATCH] Expanded ghost gas analyzer (#22914)
* Please don't shoot me this time
* Added descriptor
* This one actually works, please don't shoot me
* Spacing fix
* proper documentation
---
code/_onclick/observer_onclick.dm | 9 +++++++++
code/modules/mob/dead/observer/observer_base.dm | 14 ++++++++++++++
2 files changed, 23 insertions(+)
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"