Adds Nanite & Wound scans to ghost; Adds Med/Chem/nanite/Wound Scan UI Elements (#15932)

* kill me

* Why do the geneva convention prevent us from having anything red and plus shaped.
This commit is contained in:
Redmoogle
2022-10-01 08:15:30 -04:00
committed by GitHub
parent 7761f18e53
commit 8fe552108f
10 changed files with 98 additions and 10 deletions

View File

@@ -193,3 +193,7 @@
#define ui_ghost_spawners "SOUTH: 6, CENTER+1:24" #define ui_ghost_spawners "SOUTH: 6, CENTER+1:24"
#define ui_ghost_language_menu "SOUTH: 22,CENTER+2:8" #define ui_ghost_language_menu "SOUTH: 22,CENTER+2:8"
#define ui_ghost_pai "SOUTH: 6,CENTER+2:8" #define ui_ghost_pai "SOUTH: 6,CENTER+2:8"
#define ui_ghost_med "SOUTH: 6,CENTER+3:-8"
#define ui_ghost_chem "SOUTH: 22,CENTER+3:-8"
#define ui_ghost_nanite "SOUTH: 6,CENTER+3:8"
#define ui_ghost_wound "SOUTH: 22,CENTER+3:8"

View File

@@ -68,6 +68,22 @@
using.screen_loc = ui_ghost_spawners using.screen_loc = ui_ghost_spawners
static_inventory += using static_inventory += using
using = new /obj/screen/ghost/med_scan()
using.screen_loc = ui_ghost_med
static_inventory += using
using = new /obj/screen/ghost/chem_scan()
using.screen_loc = ui_ghost_chem
static_inventory += using
using = new /obj/screen/ghost/nanite_scan()
using.screen_loc = ui_ghost_nanite
static_inventory += using
using = new /obj/screen/ghost/wound_scan()
using.screen_loc = ui_ghost_wound
static_inventory += using
using = new /obj/screen/ghost/pai() using = new /obj/screen/ghost/pai()
using.screen_loc = ui_ghost_pai using.screen_loc = ui_ghost_pai
static_inventory += using static_inventory += using

View File

@@ -102,6 +102,46 @@
var/mob/dead/observer/G = usr var/mob/dead/observer/G = usr
G.register_pai() G.register_pai()
/obj/screen/ghost/med_scan
name = "Toggle Medical Scan"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "med_scan"
screen_loc = ui_ghost_med
/obj/screen/ghost/med_scan/Click()
var/mob/dead/observer/G = usr
G.toggle_health_scan()
/obj/screen/ghost/chem_scan
name = "Toggle Chemical Scan"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "chem_scan"
screen_loc = ui_ghost_chem
/obj/screen/ghost/chem_scan/Click()
var/mob/dead/observer/G = usr
G.toggle_chemical_scan()
/obj/screen/ghost/nanite_scan
name = "Toggle Nanite Scan"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "nanite_scan"
screen_loc = ui_ghost_nanite
/obj/screen/ghost/nanite_scan/Click()
var/mob/dead/observer/G = usr
G.toggle_nanite_scan()
/obj/screen/ghost/wound_scan
name = "Toggle Wound Scan"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "wound_scan"
screen_loc = ui_ghost_wound
/obj/screen/ghost/wound_scan/Click()
var/mob/dead/observer/G = usr
G.toggle_wound_scan()
/obj/screen/language_menu/ghost /obj/screen/language_menu/ghost
screen_loc = ui_ghost_language_menu screen_loc = ui_ghost_language_menu

View File

@@ -1,3 +1,8 @@
#define SCAN_CHEM (1<<0)
#define SCAN_HEALTH (1<<1)
#define SCAN_NANITE (1<<2)
#define SCAN_WOUND (1<<3)
/mob/dead/observer/DblClickOn(atom/A, params) /mob/dead/observer/DblClickOn(atom/A, params)
if(check_click_intercept(params, A)) if(check_click_intercept(params, A))
return return
@@ -58,10 +63,17 @@
return FALSE return FALSE
/mob/living/attack_ghost(mob/dead/observer/user) /mob/living/attack_ghost(mob/dead/observer/user)
if(user.client && user.health_scan) if(user?.client)
healthscan(user, src, 1, TRUE) if(user.scanmode & SCAN_HEALTH)
if(user.client && user.chem_scan) healthscan(user, src, TRUE)
chemscan(user, src) if(user.scanmode & SCAN_CHEM)
chemscan(user, src)
if(user.scanmode & SCAN_NANITE)
var/response = SEND_SIGNAL(src, COMSIG_NANITE_SCAN, user, TRUE)
if(!response)
to_chat(user, span_info("No nanites detected in the subject."))
if(user.scanmode & SCAN_WOUND)
woundscan(user, src)
return ..() return ..()
// --------------------------------------- // ---------------------------------------

View File

@@ -31,8 +31,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
var/mob/observetarget = null //The target mob that the ghost is observing. Used as a reference in logout() var/mob/observetarget = null //The target mob that the ghost is observing. Used as a reference in logout()
var/ghost_hud_enabled = TRUE //did this ghost disable the on-screen HUD? var/ghost_hud_enabled = TRUE //did this ghost disable the on-screen HUD?
var/data_huds_on = FALSE //Are data HUDs currently enabled? var/data_huds_on = FALSE //Are data HUDs currently enabled?
var/health_scan = FALSE //Are health scans currently enabled?
var/chem_scan = FALSE // Are chemical scans currently enabled var/scanmode = 0
var/list/datahuds = list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED) //list of data HUDs shown to ghosts. var/list/datahuds = list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED) //list of data HUDs shown to ghosts.
var/ghost_orbit = GHOST_ORBIT_CIRCLE var/ghost_orbit = GHOST_ORBIT_CIRCLE
@@ -742,16 +742,32 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set desc = "Toggles whether you health-scan living beings on click" set desc = "Toggles whether you health-scan living beings on click"
set category = "Ghost" set category = "Ghost"
health_scan = !health_scan scanmode ^= SCAN_HEALTH
to_chat(src, span_notice("Health scan [health_scan ? "enabled" : "disabled"].")) to_chat(src, span_notice("Health scan [scanmode & SCAN_HEALTH ? "enabled" : "disabled"]."))
/mob/dead/observer/verb/toggle_chemical_scan() /mob/dead/observer/verb/toggle_chemical_scan()
set name = "Toggle Chemical Scan" set name = "Toggle Chemical Scan"
set desc = "Toggles whether you chem-scan living beings on click" set desc = "Toggles whether you chem-scan living beings on click"
set category = "Ghost" set category = "Ghost"
chem_scan = !chem_scan scanmode ^= SCAN_CHEM
to_chat(src, span_notice("Chemical scan [chem_scan ? "enabled" : "disabled"].")) to_chat(src, span_notice("Chemical scan [scanmode & SCAN_CHEM ? "enabled" : "disabled"]."))
/mob/dead/observer/verb/toggle_nanite_scan()
set name = "Toggle Nanite Scan"
set desc = "Toggles scanning of nanites"
set category = "Ghost"
scanmode ^= SCAN_NANITE
to_chat(src, span_notice("Nanite scan [scanmode & SCAN_NANITE ? "enabled" : "disabled"]."))
/mob/dead/observer/verb/toggle_wound_scan()
set name = "Toggle Wound Scan"
set desc = "Toggles scanning of wounds"
set category = "Ghost"
scanmode ^= SCAN_WOUND
to_chat(src, span_notice("Wound scan [scanmode & SCAN_WOUND ? "enabled" : "disabled"]."))
/mob/dead/observer/verb/restore_ghost_appearance() /mob/dead/observer/verb/restore_ghost_appearance()
set name = "Restore Ghost Character" set name = "Restore Ghost Character"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 27 KiB