diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index f3e14d0b291..acf60d5dd3c 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1153,7 +1153,7 @@ src.occupant.client.perspective = MOB_PERSPECTIVE */ src.occupant << browse(null, "window=exosuit") - if(istype(mob_container, /obj/item/device/mmi)) + if(istype(mob_container, /obj/item/device/mmi) || istype(mob_container, /obj/item/device/posibrain)) var/obj/item/device/mmi/mmi = mob_container if(mmi.brainmob) occupant.loc = mmi diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 189aad862a7..b9dc3170434 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -198,6 +198,7 @@ user.drop_item() + O.mmi = W O.invisibility = 0 O.custom_name = created_name O.updatename("Default") @@ -212,7 +213,6 @@ O.cell = chest.cell O.cell.loc = O W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. - O.mmi = W feedback_inc("cyborg_birth",1) diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 7ecd5370d1e..edd6a239333 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -57,14 +57,19 @@ src.brainmob.real_name = "PBU-[rand(100, 999)]" 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 src.brainmob.key = candidate.key - dead_mob_list -= src.brainmob living_mob_list += src.brainmob + src.brainmob << "You are a positronic brain, brought into existence on [station_name()]." + src.brainmob << "As a synthetic intelligence, you answer to all crewmembers, as well as the AI." + src.brainmob << "Use say :b to speak to other artificial intelligences on the station." + src.brainmob.mind.assigned_role = "Positronic Brain" + var/turf/T = get_turf_or_move(src.loc) for (var/mob/M in viewers(T)) M.show_message("\blue The positronic brain chimes quietly.") diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm index c4d9a865da2..de169087b44 100644 --- a/code/modules/mob/living/carbon/brain/say.dm +++ b/code/modules/mob/living/carbon/brain/say.dm @@ -5,6 +5,11 @@ if(!(container && (istype(container, /obj/item/device/mmi) || istype(container, /obj/item/device/posibrain)))) return //No MMI, can't speak, bucko./N else + if ((copytext(message, 1, 3) == ":b") || (copytext(message, 1, 3) == ":B") && (container && istype(container, /obj/item/device/posibrain))) + message = copytext(message, 3) + message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + robot_talk(message) + return if(prob(emp_damage*4)) if(prob(10))//10% chane to drop the message entirely return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 07660d1b1cb..0a7aa0874cb 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -53,7 +53,7 @@ var/lockcharge //Used when locking down a borg to preserve cell charge var/speed = 0 //Cause sec borgs gotta go fast //No they dont! var/scrambledcodes = 0 // Used to determine if a borg shows up on the robotics console. Setting to one hides them. - + var/braintype = "Cyborg" /mob/living/silicon/robot/New(loc,var/syndie = 0) spark_system = new /datum/effect/effect/system/spark_spread() @@ -195,11 +195,16 @@ /mob/living/silicon/robot/proc/updatename(var/prefix as text) + if(istype(mmi, /obj/item/device/posibrain)) + braintype = "Android" + else + braintype = "Cyborg" + var/changed_name = "" if(custom_name) changed_name = custom_name else - changed_name = "[(prefix ? "[prefix] " : "")]Cyborg-[num2text(ident)]" + changed_name = "[(prefix ? "[prefix] " : "")][braintype]-[num2text(ident)]" real_name = changed_name name = real_name