Brain transplants, synthetics, and languages

Brains now retain languages from the mob they were removed from, rather than forgetting them. Languages are also retained when a brain is transplanted into a new body.

AIs, as well as cyborgs/robots/drones, will load languages from your currently-active preferences when they spawn (just like humanoid mobs do). Brains removed from cyborgs/robots/drones will retain their original languages regardless of the current module.

Brains in MMIs can now speak EAL if they know it, and additionally fixes #2832 - sign language will no longer be usable when lacking both hands. Also fixes silicons being told the wrong language prefix by the known languages window, as it was still showing ':', leading to much confusion among new borg players.

Known issues:
AIs who can use sign language can use it even without a holopad - I'm not sure how to have it check for that. This could be seen as a non-issue, as signs could conceivably be displayed on the AI's screen.

AIs signing over holopad will also have the language verbs overridden by the synth speech verbs (states/queries/declares). I'm pretty sure this has something to do with the already-existing bug that all languages can be understood by everyone when an AI speaks them over holopad.
This commit is contained in:
PrismaticGynoid
2017-09-06 20:14:17 -07:00
parent 7198ea086e
commit 9c1bb56522
13 changed files with 48 additions and 4 deletions
+2
View File
@@ -82,6 +82,8 @@
if(H.mind)
H.mind.transfer_to(brainmob)
brainmob.languages = H.languages
brainmob << "<span class='notice'>You feel slightly disoriented. That's normal when you're just \a [initial(src.name)].</span>"
callHook("debrain", list(brainmob))
+7 -1
View File
@@ -62,6 +62,8 @@
stored_mmi.icon_state = "mmi_full"
icon_state = stored_mmi.icon_state
stored_mmi.brainmob.languages = owner.languages
if(owner && owner.stat == DEAD)
owner.stat = 0
dead_mob_list -= owner
@@ -91,6 +93,8 @@
stored_mmi.icon_state = "posibrain-occupied"
icon_state = stored_mmi.icon_state
stored_mmi.brainmob.languages = owner.languages
/obj/item/organ/internal/mmi_holder/robot
name = "digital brain interface"
brain_type = /obj/item/device/mmi/digital/robot
@@ -99,4 +103,6 @@
/obj/item/organ/internal/mmi_holder/robot/update_from_mmi()
..()
stored_mmi.icon_state = "mainboard"
icon_state = stored_mmi.icon_state
icon_state = stored_mmi.icon_state
stored_mmi.brainmob.languages = owner.languages