From 3000fd495f059e675aaf006684a222fff28852d0 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 8 Jan 2016 02:50:20 -0500 Subject: [PATCH 1/3] Positronic Brain Balance --- code/modules/mob/living/carbon/brain/posibrain.dm | 11 +++++++++++ code/modules/mob/living/carbon/brain/say.dm | 15 +++++---------- code/modules/organs/subtypes/machine.dm | 2 +- html/changelogs/posibrain-nerf-fox-mccloud.yml | 9 +++++++++ 4 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 html/changelogs/posibrain-nerf-fox-mccloud.yml diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index d76b7dea569..04e56e9e2fa 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -12,6 +12,7 @@ var/list/ghost_volunteers[0] req_access = list(access_robotics) mecha = null//This does not appear to be used outside of reference in mecha.dm. + var/silenced = 0 //if set to 1, they can't talk. /obj/item/device/mmi/posibrain/attack_self(mob/user as mob) @@ -28,6 +29,13 @@ if(check_observer(O)) transfer_personality(O) reset_search() + else + if(silenced) + silenced = 0 + user << "You toggle the speaker to 'on', on the [src]." + else + silenced = 1 + user << "You toggle the speaker to 'off', on the [src]." /obj/item/device/mmi/posibrain/proc/request_player() for(var/mob/dead/observer/O in player_list) @@ -184,3 +192,6 @@ var/turf/T = get_turf_or_move(src.loc) for (var/mob/M in viewers(T)) M.show_message("\blue The positronic brain pings softly.") + +/obj/item/device/mmi/posibrain/ipc + silenced = 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm index f2f2c1b15c3..1b5b3a78126 100644 --- a/code/modules/mob/living/carbon/brain/say.dm +++ b/code/modules/mob/living/carbon/brain/say.dm @@ -3,9 +3,13 @@ if (silent) return - if(!(container && (istype(container, /obj/item/device/mmi) || istype(container, /obj/item/device/mmi/posibrain)))) + if(!(container && istype(container, /obj/item/device/mmi))) return //No MMI, can't speak, bucko./N else + if(container && istype(container, /obj/item/device/mmi/posibrain)) + var/obj/item/device/mmi/posibrain/P = container + if(P && P.silenced) + return if(prob(emp_damage*4)) if(prob(10))//10% chane to drop the message entirely return @@ -14,15 +18,6 @@ ..(message) -/mob/living/carbon/brain/can_speak(var/datum/language/speaking) - if(speaking == all_languages["Robot Talk"] && (container && istype(container, /obj/item/device/mmi/posibrain))) //so posibrains can speak binary; less messy than adding the language - return 1 - - else return ..() - -/mob/living/carbon/brain/binarycheck() - return (container && istype(container, /obj/item/device/mmi/posibrain)) - /mob/living/carbon/brain/handle_message_mode(var/message_mode, var/message, var/verb, var/speaking, var/used_radios, var/alt_name) switch(message_mode) if("headset") diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm index 3e651613164..88f84b385b3 100644 --- a/code/modules/organs/subtypes/machine.dm +++ b/code/modules/organs/subtypes/machine.dm @@ -124,7 +124,7 @@ /obj/item/organ/mmi_holder/posibrain/New() robotize() - stored_mmi = new /obj/item/device/mmi/posibrain(src) + stored_mmi = new /obj/item/device/mmi/posibrain/ipc(src) ..() spawn(1) if(owner) diff --git a/html/changelogs/posibrain-nerf-fox-mccloud.yml b/html/changelogs/posibrain-nerf-fox-mccloud.yml new file mode 100644 index 00000000000..674050249fa --- /dev/null +++ b/html/changelogs/posibrain-nerf-fox-mccloud.yml @@ -0,0 +1,9 @@ + +author: Fox McCloud + +delete-after: True + +changes: + - tweak: "Positronic brains can no longer speak binary." + - tweak: "Positronic brains can be prevented from speaking (or allowed) by toggling their speaker on/off." + - tweak: "IPC's positronic brains start off toggled off." From 5cbaa5e8fd4d7ae39f741a0781aca58fbabf47a0 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 8 Jan 2016 03:06:51 -0500 Subject: [PATCH 2/3] beep-boop --- code/modules/mob/living/carbon/brain/posibrain.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 04e56e9e2fa..374acf13a3b 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -177,7 +177,6 @@ src.brainmob.real_name = src.brainmob.name src.brainmob.loc = src src.brainmob.container = src - src.brainmob.robot_talk_understand = 1 src.brainmob.stat = 0 src.brainmob.silent = 0 src.brainmob.brain_op_stage = 4.0 From a940a4ece1971e84ede0f2259bfafa1c4c8b5431 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 8 Jan 2016 15:01:40 -0500 Subject: [PATCH 3/3] tweaks --- code/modules/mob/living/carbon/brain/posibrain.dm | 9 ++++++++- code/modules/mob/living/carbon/brain/say.dm | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 374acf13a3b..174b582eec3 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -1,6 +1,6 @@ /obj/item/device/mmi/posibrain name = "positronic brain" - desc = "A cube of shining metal, four inches to a side and covered in shallow grooves." + desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. The speaker switch is set to 'on'." icon = 'icons/obj/assemblies.dmi' icon_state = "posibrain" w_class = 3 @@ -33,9 +33,15 @@ if(silenced) silenced = 0 user << "You toggle the speaker to 'on', on the [src]." + desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. The speaker switch is set to 'on'." + if(brainmob && brainmob.key) + brainmob << "Your internal speaker has been toggled to 'on'." else silenced = 1 user << "You toggle the speaker to 'off', on the [src]." + desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. The speaker switch is set to 'off'." + if(brainmob && brainmob.key) + brainmob << "Your internal speaker has been toggled to 'off'." /obj/item/device/mmi/posibrain/proc/request_player() for(var/mob/dead/observer/O in player_list) @@ -193,4 +199,5 @@ M.show_message("\blue The positronic brain pings softly.") /obj/item/device/mmi/posibrain/ipc + desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. The speaker switch is set to 'off'." silenced = 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm index 1b5b3a78126..367363ed2a1 100644 --- a/code/modules/mob/living/carbon/brain/say.dm +++ b/code/modules/mob/living/carbon/brain/say.dm @@ -9,6 +9,7 @@ if(container && istype(container, /obj/item/device/mmi/posibrain)) var/obj/item/device/mmi/posibrain/P = container if(P && P.silenced) + usr << "You cannot speak, as your internal speaker has been toggled to 'off'." return if(prob(emp_damage*4)) if(prob(10))//10% chane to drop the message entirely