From ccece63d0b75e4af9b25cdeb5ea83106e9ca9e86 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 26 Dec 2014 11:26:07 +0000 Subject: [PATCH 1/3] Fix brain languages --- code/modules/mob/living/carbon/brain/brain.dm | 5 ++++- code/modules/mob/living/carbon/brain/say.dm | 11 ++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index e700c6fad4..c705e71866 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -55,4 +55,7 @@ canmove = 1 use_me = 1 //If it can move, let it emote else canmove = 0 - return canmove \ No newline at end of file + return canmove + +/mob/living/carbon/brain/binarycheck() + return istype(loc, /obj/item/device/mmi) diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm index ecfb825684..e602916d8c 100644 --- a/code/modules/mob/living/carbon/brain/say.dm +++ b/code/modules/mob/living/carbon/brain/say.dm @@ -2,8 +2,8 @@ /mob/living/carbon/brain/say(var/message) if (silent) return - - if(!(container && istype(container, /obj/item/device/mmi))) + + if(!(container && istype(container, /obj/item/device/mmi))) return //No MMI, can't speak, bucko./N else var/datum/language/speaking = parse_language(message) @@ -24,8 +24,13 @@ return else message = Gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher + + if(speaking && speaking.flags & HIVEMIND) + speaking.broadcast(src,trim(message)) + return + if(istype(container, /obj/item/device/mmi/radio_enabled)) var/obj/item/device/mmi/radio_enabled/R = container if(R.radio) spawn(0) R.radio.hear_talk(src, trim(sanitize(message)), verb, speaking) - ..() \ No newline at end of file + ..(trim(message), speaking, verb) From ccaf9a4edfab57d6718cc90ed1ed9cd2a7f495da Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 26 Dec 2014 14:18:01 +0000 Subject: [PATCH 2/3] Change fleshbrains in MMIs to not be able to use :b --- code/modules/mob/living/carbon/brain/brain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index c705e71866..230b7736f2 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -58,4 +58,4 @@ return canmove /mob/living/carbon/brain/binarycheck() - return istype(loc, /obj/item/device/mmi) + return istype(loc, /obj/item/device/mmi/digital) From 7c65de3e341d76dfc7d70e7b211b239035a20168 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 26 Dec 2014 16:51:15 -0500 Subject: [PATCH 3/3] Improves power monitor UI Improves power monitor sensor list UI. Fixes #7449 --- .../power/sensors/sensor_monitoring.dm | 59 +++++++++++++------ 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/code/modules/power/sensors/sensor_monitoring.dm b/code/modules/power/sensors/sensor_monitoring.dm index 353eb76115..9e6d4e2d88 100644 --- a/code/modules/power/sensors/sensor_monitoring.dm +++ b/code/modules/power/sensors/sensor_monitoring.dm @@ -15,8 +15,9 @@ anchored = 1.0 circuit = /obj/item/weapon/circuitboard/powermonitor var/list/grid_sensors = null - var/update_counter = 0 // Next icon update when this reaches 5 (ie every 5 ticks) - var/active_sensor = null + var/list/sensors_by_powernet = null + var/update_counter = 0 // Next icon update when this reaches 5 (ie every 5 ticks) + var/active_sensor = null //name_tag of the currently selected sensor use_power = 1 idle_power_usage = 300 active_power_usage = 300 @@ -34,12 +35,19 @@ /obj/machinery/computer/power_monitor/proc/refresh_sensors() grid_sensors = list() + sensors_by_powernet = list() for(var/obj/machinery/power/sensor/S in machines) if((S.loc.z == src.loc.z) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels. if(S.name_tag == "#UNKN#") // Default name. Shouldn't happen! error("Powernet sensor with unset ID Tag! [S.x]X [S.y]Y [S.z]Z") else - grid_sensors += S + grid_sensors[S.name_tag] = S + + var/pnet = (S.powernet)? S.powernet : "none" + if (pnet in sensors_by_powernet) + sensors_by_powernet[pnet] += S + else + sensors_by_powernet[pnet] = list(S) /obj/machinery/computer/power_monitor/attack_ai(mob/user) @@ -75,13 +83,10 @@ t += "
Close

" if(!grid_sensors) - t += "Unable to connect to sensor!" + t += "No sensors available." else - var/obj/machinery/power/sensor/OKS = null - for(var/obj/machinery/power/sensor/S in grid_sensors) - if(S.name_tag == active_sensor) - OKS = S - if(OKS) + if (active_sensor in grid_sensors) + var/obj/machinery/power/sensor/OKS = grid_sensors[active_sensor] t += "[OKS.name_tag] - Sensor Reading
" t += OKS.ReturnReading() else @@ -91,20 +96,36 @@ else t += "
Refresh" t += "
Close

" - if((!grid_sensors) || (!grid_sensors.len)) - t += "ERROR - No Active Sensors Detected!" - else - for(var/obj/machinery/power/sensor/S in grid_sensors) // Show all data from current Z level. - if(S.check_grid_warning()) // Display grids with active alarms in bold text - t += "[S.name]
" - else - t += "[S.name]
" - - + + t += render_sensor_list() user << browse(t, "window=powcomp;size=600x900") onclose(user, "powcomp") +/obj/machinery/computer/power_monitor/proc/render_sensor_list() + if((!grid_sensors) || (!grid_sensors.len)) + return "ERROR - No Active Sensors Detected!" + + var/html = "" + for (var/pnet in sensors_by_powernet) + if (pnet && pnet != "none") + html += "" + + if ("none" in sensors_by_powernet) + html += "" + html += "
Power NetworkSensors
[uppertext("\ref[pnet]")]" + for(var/obj/machinery/power/sensor/S in sensors_by_powernet[pnet]) + //really, if one of them has a warning, they all should - but the interface doesn't guarantee that so whatever + if(S.check_grid_warning()) // Display grids with active alarms in bold text + html += "[S.name]
" + else + html += "[S.name]
" + html += "
\[N/A\]" + for(var/obj/machinery/power/sensor/S in sensors_by_powernet["none"]) + html += "[S.name]
" + html += "
" + + return html /obj/machinery/computer/power_monitor/Topic(href, href_list) ..()