From 8ccce503a99ea201ef7badcb8317af1b60b91f13 Mon Sep 17 00:00:00 2001 From: Walter0o Date: Sat, 19 Jul 2014 23:00:20 +0200 Subject: [PATCH] streamlining dreams no calling by clientless mobs, this should save several thousand wasted calls. turning the massive string list that would be defined each call into a global list. the chance the same dream gets picked twice is negletable. --- code/modules/flufftext/Dreaming.dm | 40 ++++++++++++++++-------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index f48846c590..5e204987af 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -1,24 +1,25 @@ + +var/list/dreams = list( + "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", + "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", + "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", + "a hat","the Luna","a ruined station","a planet","phoron","air","the medical bay","the bridge","blinking lights", + "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", + "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money", + "the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer", + "the detective","the warden","a member of the internal affairs","a station engineer","the janitor","atmospheric technician", + "the quartermaster","a cargo technician","the botanist","a shaft miner","the psychologist","the chemist","the geneticist", + "the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian","a mouse","an ert member", + "a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell", + "a unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid", + ) + mob/living/carbon/proc/dream() dreaming = 1 - var/list/dreams = list( - "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", - "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", - "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", - "a hat","the Luna","a ruined station","a planet","phoron","air","the medical bay","the bridge","blinking lights", - "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", - "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money", - "the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer", - "the detective","the warden","a member of the internal affairs","a station engineer","the janitor","atmospheric technician", - "the quartermaster","a cargo technician","the botanist","a shaft miner","the psychologist","the chemist","the geneticist", - "the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian","a mouse","an ert member", - "a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell", - "a unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid", - ) + spawn(0) for(var/i = rand(1,4),i > 0, i--) - var/dream_image = pick(dreams) - dreams -= dream_image - src << "\blue ... [dream_image] ..." + src << "\blue ... [pick(dreams)] ..." sleep(rand(40,70)) if(paralysis <= 0) dreaming = 0 @@ -27,6 +28,7 @@ mob/living/carbon/proc/dream() return 1 mob/living/carbon/proc/handle_dreams() - if(prob(5) && !dreaming) dream() + if(client && !dreaming && prob(5)) + dream() -mob/living/carbon/var/dreaming = 0 \ No newline at end of file +mob/living/carbon/var/dreaming = 0