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.
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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 ..()
|
||||||
|
|
||||||
// ---------------------------------------
|
// ---------------------------------------
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 27 KiB |