From ceedeca9ecfac223ced69dfeb301252f90136886 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Thu, 15 Aug 2019 14:25:55 -0400 Subject: [PATCH 1/3] Update paradise.dme --- paradise.dme | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/paradise.dme b/paradise.dme index 86eb2825b04..c75aefbb3c9 100644 --- a/paradise.dme +++ b/paradise.dme @@ -148,7 +148,6 @@ #include "code\_onclick\hud\radial.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" -#include "code\_onclick\hud\slime.dm" #include "code\_onclick\hud\swarmer.dm" #include "code\ATMOSPHERICS\atmospherics.dm" #include "code\ATMOSPHERICS\datum_icon_manager.dm" @@ -199,7 +198,6 @@ #include "code\controllers\master.dm" #include "code\controllers\subsystem.dm" #include "code\controllers\verbs.dm" -#include "code\controllers\subsystem\afk.dm" #include "code\controllers\subsystem\air.dm" #include "code\controllers\subsystem\alarm.dm" #include "code\controllers\subsystem\assets.dm" @@ -279,7 +277,6 @@ #include "code\datums\components\jestosterone.dm" #include "code\datums\components\material_container.dm" #include "code\datums\components\squeak.dm" -#include "code\datums\components\waddling.dm" #include "code\datums\diseases\_disease.dm" #include "code\datums\diseases\_MobProcs.dm" #include "code\datums\diseases\anxiety.dm" @@ -811,7 +808,6 @@ #include "code\game\objects\effects\effect_system\effects_smoke.dm" #include "code\game\objects\effects\effect_system\effects_sparks.dm" #include "code\game\objects\effects\effect_system\effects_water.dm" -#include "code\game\objects\effects\spawners\airlock_spawner.dm" #include "code\game\objects\effects\spawners\bombspawner.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\lootdrop.dm" @@ -1593,7 +1589,6 @@ #include "code\modules\hydroponics\grown\towercap.dm" #include "code\modules\karma\karma.dm" #include "code\modules\keybindings\bindings_admin.dm" -#include "code\modules\keybindings\bindings_ai.dm" #include "code\modules\keybindings\bindings_atom.dm" #include "code\modules\keybindings\bindings_carbon.dm" #include "code\modules\keybindings\bindings_client.dm" @@ -1927,7 +1922,6 @@ #include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" #include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" -#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\spaceworms.dm" @@ -2310,13 +2304,8 @@ #include "code\modules\ruins\ruin_areas.dm" #include "code\modules\ruins\lavalandruin_code\animal_hospital.dm" #include "code\modules\ruins\lavalandruin_code\ash_walker_den.dm" -#include "code\modules\ruins\lavalandruin_code\dead_ratvar.dm" -#include "code\modules\ruins\lavalandruin_code\fountain_hall.dm" #include "code\modules\ruins\lavalandruin_code\hermit.dm" -#include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" -#include "code\modules\ruins\lavalandruin_code\puzzle.dm" #include "code\modules\ruins\lavalandruin_code\seed_vault.dm" -#include "code\modules\ruins\lavalandruin_code\sin_ruins.dm" #include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" #include "code\modules\ruins\objects_and_mobs\gym.dm" #include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" From 43d50e96816e103768b611c6bc33985c6873cee4 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Thu, 15 Aug 2019 14:26:24 -0400 Subject: [PATCH 2/3] Revert "Update paradise.dme" This reverts commit ceedeca9ecfac223ced69dfeb301252f90136886. --- paradise.dme | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/paradise.dme b/paradise.dme index c75aefbb3c9..86eb2825b04 100644 --- a/paradise.dme +++ b/paradise.dme @@ -148,6 +148,7 @@ #include "code\_onclick\hud\radial.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\slime.dm" #include "code\_onclick\hud\swarmer.dm" #include "code\ATMOSPHERICS\atmospherics.dm" #include "code\ATMOSPHERICS\datum_icon_manager.dm" @@ -198,6 +199,7 @@ #include "code\controllers\master.dm" #include "code\controllers\subsystem.dm" #include "code\controllers\verbs.dm" +#include "code\controllers\subsystem\afk.dm" #include "code\controllers\subsystem\air.dm" #include "code\controllers\subsystem\alarm.dm" #include "code\controllers\subsystem\assets.dm" @@ -277,6 +279,7 @@ #include "code\datums\components\jestosterone.dm" #include "code\datums\components\material_container.dm" #include "code\datums\components\squeak.dm" +#include "code\datums\components\waddling.dm" #include "code\datums\diseases\_disease.dm" #include "code\datums\diseases\_MobProcs.dm" #include "code\datums\diseases\anxiety.dm" @@ -808,6 +811,7 @@ #include "code\game\objects\effects\effect_system\effects_smoke.dm" #include "code\game\objects\effects\effect_system\effects_sparks.dm" #include "code\game\objects\effects\effect_system\effects_water.dm" +#include "code\game\objects\effects\spawners\airlock_spawner.dm" #include "code\game\objects\effects\spawners\bombspawner.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\lootdrop.dm" @@ -1589,6 +1593,7 @@ #include "code\modules\hydroponics\grown\towercap.dm" #include "code\modules\karma\karma.dm" #include "code\modules\keybindings\bindings_admin.dm" +#include "code\modules\keybindings\bindings_ai.dm" #include "code\modules\keybindings\bindings_atom.dm" #include "code\modules\keybindings\bindings_carbon.dm" #include "code\modules\keybindings\bindings_client.dm" @@ -1922,6 +1927,7 @@ #include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" #include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" +#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\spaceworms.dm" @@ -2304,8 +2310,13 @@ #include "code\modules\ruins\ruin_areas.dm" #include "code\modules\ruins\lavalandruin_code\animal_hospital.dm" #include "code\modules\ruins\lavalandruin_code\ash_walker_den.dm" +#include "code\modules\ruins\lavalandruin_code\dead_ratvar.dm" +#include "code\modules\ruins\lavalandruin_code\fountain_hall.dm" #include "code\modules\ruins\lavalandruin_code\hermit.dm" +#include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" +#include "code\modules\ruins\lavalandruin_code\puzzle.dm" #include "code\modules\ruins\lavalandruin_code\seed_vault.dm" +#include "code\modules\ruins\lavalandruin_code\sin_ruins.dm" #include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" #include "code\modules\ruins\objects_and_mobs\gym.dm" #include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" From 3e7156e263e166e9757f4c3ce126eaf5f9575ba1 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sat, 17 Aug 2019 10:00:05 -0400 Subject: [PATCH 3/3] Ghost health/cyborg analyzer --- code/_onclick/observer.dm | 8 ++++++++ code/game/objects/items/devices/scanners.dm | 8 ++++++-- code/modules/mob/dead/observer/observer.dm | 14 ++++++++++++++ code/modules/mob/living/silicon/robot/component.dm | 10 +++++++--- code/modules/mob/living/silicon/robot/robot.dm | 2 ++ 5 files changed, 37 insertions(+), 5 deletions(-) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 797384b8336..8661a4662b5 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -58,6 +58,14 @@ /atom/proc/attack_ghost(mob/user as mob) return +// health + cyborg analyzer for ghosts +/mob/living/attack_ghost(mob/dead/observer/user) + if(user.client && user.health_scan) + if(issilicon(src) || ismachine(src)) + robot_healthscan(user, src) + else if(ishuman(src)) + healthscan(user, src, 1, TRUE) + // --------------------------------------- // And here are some good things for free: // Now you can click through portals, wormholes, gateways, and teleporters while observing. -Sayu diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index cad4ae25ac8..f6432d9b027 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -135,8 +135,13 @@ REAGENT SCANNER user.show_message("Key: Suffocation/Toxin/Burns/Brute", 1) user.show_message("Body Temperature: ???", 1) return - user.visible_message("[user] has analyzed [M]'s vitals."," You have analyzed [M]'s vitals.") + user.visible_message("[user] has analyzed [M]'s vitals."," You have analyzed [M]'s vitals.") + healthscan(user, M, mode, upgraded) + add_fingerprint(user) + + +proc/healthscan(mob/user, mob/living/M, mode = 1, upgraded = FALSE) if(!ishuman(M) || M.isSynthetic()) //these sensors are designed for organic life user.show_message("Analyzing Results for ERROR:\n\t Overall Status: ERROR") @@ -271,7 +276,6 @@ REAGENT SCANNER user.show_message("Subject's genes are showing minor signs of instability.") else user.show_message("Subject's genes are stable.") - add_fingerprint(user) /obj/item/healthanalyzer/verb/toggle_mode() diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 731f53c7838..dc2eca2b11e 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -29,6 +29,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/seedarkness = TRUE var/data_hud_seen = FALSE //this should one of the defines in __DEFINES/hud.dm var/ghost_orbit = GHOST_ORBIT_CIRCLE + var/health_scan = FALSE //does the ghost have health scanner mode on? by default it should be off /mob/dead/observer/New(var/mob/body=null, var/flags=1) set_invisibility(GLOB.observer_default_invisibility) @@ -537,6 +538,19 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set hidden = 1 to_chat(src, "You are dead! You have no mind to store memory!") + +/mob/dead/observer/verb/toggle_health_scan() + set name = "Toggle Health Scan" + set desc = "Toggles whether you health-scan living beings on click" + set category = "Ghost" + + if(health_scan) //remove old huds + to_chat(src, "Health scan disabled.") + health_scan = FALSE + else + to_chat(src, "Health scan enabled.") + health_scan = TRUE + /mob/dead/observer/verb/analyze_air() set name = "Analyze Air" set category = "Ghost" diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index d584d5a50f5..0750e4ea3ed 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -235,6 +235,12 @@ to_chat(user, "Body Temperature: ???") return + user.visible_message("[user] has analyzed [M]'s components.","You have analyzed [M]'s components.") + robot_healthscan(user, M) + add_fingerprint(user) + + +proc/robot_healthscan(mob/user, mob/living/M) var/scan_type if(istype(M, /mob/living/silicon/robot)) scan_type = "robot" @@ -244,7 +250,7 @@ to_chat(user, "You can't analyze non-robotic things!") return - user.visible_message("[user] has analyzed [M]'s components.","You have analyzed [M]'s components.") + switch(scan_type) if("robot") var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss() @@ -308,5 +314,3 @@ to_chat(user, "Internal Fluid Level:[H.blood_volume]/[H.max_blood]") if(H.bleed_rate) to_chat(user, "Warning:External component leak detected!") - - src.add_fingerprint(user) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index b9ed81f7180..900705733ba 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -885,6 +885,8 @@ var/list/robot_verbs_default = list( /mob/living/silicon/robot/attack_ghost(mob/user) if(wiresexposed) wires.Interact(user) + else + ..() //this calls the /mob/living/attack_ghost proc for the ghost health/cyborg analyzer /mob/living/silicon/robot/proc/allowed(obj/item/I) var/obj/dummy = new /obj(null) // Create a dummy object to check access on as to avoid having to snowflake check_access on every mob