diff --git a/code/datums/mind/_mind.dm b/code/datums/mind/_mind.dm index 2d797090683..287503058af 100644 --- a/code/datums/mind/_mind.dm +++ b/code/datums/mind/_mind.dm @@ -167,8 +167,15 @@ set_current(null) /datum/mind/proc/get_language_holder() - if(!language_holder) - language_holder = new (src) + if(isnull(language_holder)) + if(iscarbon(current)) + var/mob/living/carbon/talker = current + // AHH WHY DO MINDS ALSO HAVE LANGUAGE HOLDERS WHAT'S THE POINT OF THE "MIND" LANGUAGE SOURCE IF WE STORE IT TWICE ANYWAYS + var/type_to_use = talker.dna?.species?.species_language_holder || talker.language_holder?.type || /datum/language_holder + language_holder = new type_to_use(src) + else + language_holder = new(src) + return language_holder /datum/mind/proc/transfer_to(mob/new_character, force_key_move = 0) diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index b6b17ebeac3..378c5f60808 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -288,10 +288,15 @@ Key procs selected_language = /datum/language/draconic /datum/language_holder/lizard/silver - understood_languages = list(/datum/language/uncommon = list(LANGUAGE_ATOM), - /datum/language/draconic = list(LANGUAGE_ATOM)) - spoken_languages = list(/datum/language/uncommon = list(LANGUAGE_ATOM), - /datum/language/draconic = list(LANGUAGE_ATOM)) + understood_languages = list( + /datum/language/common = list(LANGUAGE_ATOM), // yes we hear you, but we refuse to speak your peasant language + /datum/language/uncommon = list(LANGUAGE_ATOM), + /datum/language/draconic = list(LANGUAGE_ATOM), + ) + spoken_languages = list( + /datum/language/uncommon = list(LANGUAGE_ATOM), + /datum/language/draconic = list(LANGUAGE_ATOM), + ) selected_language = /datum/language/uncommon /datum/language_holder/monkey