From 2285f0e69befce15b9234f5cc4a3d6174f774f87 Mon Sep 17 00:00:00 2001 From: GunHog Date: Fri, 16 Jan 2015 16:37:20 -0600 Subject: [PATCH 1/4] Adds Cyborg data to AI's status screen Adds all useful data about a Cyborg's health to the AI's status screen. - Includes Cyborg name, health, cell charge, module, area name, lock, and stat data. - Strictly read-only. - Cyborgs slaved to an AI will have that AI's name displayed in its status screen. --- code/modules/mob/living/silicon/ai/ai.dm | 7 +++++++ code/modules/mob/living/silicon/robot/robot.dm | 2 ++ 2 files changed, 9 insertions(+) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 5455ab67e57..a1af4210b92 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -224,6 +224,13 @@ var/list/ai_list = list() if(!stat) stat(null, text("System integrity: [(health+100)/2]%")) + stat(null, text("Connected cyborgs: [connected_robots.len]")) + var/area/borg_area + for(var/mob/living/silicon/robot/R in connected_robots) + borg_area = get_area(R) + //Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies! + stat(null, text("[R.name] | S.Integrity: [R.health]% | Cell: [R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "Empty"] | \ + Module: [R.designation] | Loc: [borg_area.name] | Status: [R.stat ? "Offline" : R.lockcharge ? "Locked Down" : "Normal"]")) else stat(null, text("Systems nonfunctional")) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index de11fbb0601..9eebbb3a937 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -316,6 +316,8 @@ stat("Tank Pressure", internal.air_contents.return_pressure()) for (var/datum/robot_energy_storage/st in module.storages) stat("[st.name]: [st.energy]/[st.max_energy]") + if(connected_ai) + stat(null, text("Master AI: [connected_ai.name]")) /mob/living/silicon/robot/restrained() return 0 From 2d7348caf3c8ff0194e38a5026cc427e45b4d507 Mon Sep 17 00:00:00 2001 From: GunHog Date: Sat, 17 Jan 2015 00:07:25 -0600 Subject: [PATCH 2/4] Adds Station Time! --- code/modules/mob/living/silicon/ai/ai.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index a1af4210b92..72699be17c3 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -224,6 +224,7 @@ var/list/ai_list = list() if(!stat) stat(null, text("System integrity: [(health+100)/2]%")) + stat(null, "Station Time: [worldtime2text()]") stat(null, text("Connected cyborgs: [connected_robots.len]")) var/area/borg_area for(var/mob/living/silicon/robot/R in connected_robots) From a62c765de287f075cc71d409b59f2f93d2720ccd Mon Sep 17 00:00:00 2001 From: GunHog Date: Sat, 17 Jan 2015 00:13:10 -0600 Subject: [PATCH 3/4] Adds Station Time for borgies too --- code/modules/mob/living/silicon/robot/robot.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 9eebbb3a937..d851bd7f723 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -309,6 +309,7 @@ else stat(null, text("No Cell Inserted!")) + stat(null, "Station Time: [worldtime2text()]") if(module) internal = locate(/obj/item/weapon/tank/jetpack) in module.modules if(internal) From 8212923b49bfa23083e6edc2f84d3f05393c560a Mon Sep 17 00:00:00 2001 From: GunHog Date: Sat, 17 Jan 2015 12:46:19 -0600 Subject: [PATCH 4/4] Removes tracking of lockdown status, fixes counter A cyborg's lockdown status has been removed from the tracker. Cyborgs are now properly removed from the AIs borg list if they are destroyed. --- code/modules/mob/living/silicon/ai/ai.dm | 2 +- code/modules/mob/living/silicon/robot/robot.dm | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 72699be17c3..98c5347f8e5 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -231,7 +231,7 @@ var/list/ai_list = list() borg_area = get_area(R) //Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies! stat(null, text("[R.name] | S.Integrity: [R.health]% | Cell: [R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "Empty"] | \ - Module: [R.designation] | Loc: [borg_area.name] | Status: [R.stat ? "Offline" : R.lockcharge ? "Locked Down" : "Normal"]")) + Module: [R.designation] | Loc: [borg_area.name] | Status: [R.stat ? "Offline" : "Normal"]")) else stat(null, text("Systems nonfunctional")) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index d851bd7f723..21076a6cdad 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -129,6 +129,8 @@ ghostize() ERROR("A borg has been destroyed, but its MMI lacked a brainmob, so the mind could not be transferred. Player: [ckey].") mmi = null + if(connected_ai) + connected_ai.connected_robots -= src ..()