diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 9c41d21706..c0feab272c 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -71,14 +71,14 @@ for(var/spoken_memory in target.say_log) if(recent_speech.len >= LING_ABSORB_RECENT_SPEECH) break - recent_speech += spoken_memory + recent_speech[spoken_memory] = target.say_log[spoken_memory] if(recent_speech.len) user.mind.store_memory("Some of [target]'s speech patterns, we should study these to better impersonate them!") user << "Some of [target]'s speech patterns, we should study these to better impersonate them!" for(var/spoken_memory in recent_speech) - user.mind.store_memory("\"[spoken_memory]\"") - user << "\"[spoken_memory]\"" + user.mind.store_memory("\"[recent_speech[spoken_memory]]\"") + user << "\"[recent_speech[spoken_memory]]\"" user.mind.store_memory("We have no more knowledge of [target]'s speech patterns.") user << "We have no more knowledge of [target]'s speech patterns." diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 1e31f0342a..bb7b35c48f 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -55,7 +55,7 @@ var/smoke_delay = 0 //used to prevent spam with smoke reagent reaction on mob. - var/list/say_log = list() //a log of what we've said, plain text, no spans or junk, essentially just each individual "message" + var/list/say_log = list() //a log of what we've said, with a timestamp as the key for each message var/bubble_icon = "default" //what icon the mob uses for speechbubbles diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index b108c7c47b..f580977738 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -98,8 +98,8 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) spans += get_spans() - //Log of what we've said, plain message, no spans or junk - say_log += message + //Log what we've said with an associated timestamp, using the list's len for safety/to prevent overwriting messages + say_log["[LAZYLEN(say_log) + 1]\[[time_stamp()]\]"] = message var/message_range = 7 var/radio_return = radio(message, message_mode, spans)