diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index d5b2d222dd..ad5e18d3f7 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -20,6 +20,8 @@ GLOBAL_LIST_INIT(megacarp_first_names, world.file2list("strings/names/megacarp1. GLOBAL_LIST_INIT(megacarp_last_names, world.file2list("strings/names/megacarp2.txt")) GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) +GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) +GLOBAL_LIST_INIT(adverbs, world.file2list("strings/names/adverbs.txt")) GLOBAL_LIST_INIT(adjectives, world.file2list("strings/names/adjectives.txt")) GLOBAL_LIST_INIT(dream_strings, world.file2list("strings/dreamstrings.txt")) //loaded on startup because of " diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index bfbad559e1..e3c69f567e 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -1,22 +1,61 @@ -/mob/living/carbon/proc/dream() - set waitfor = 0 - var/list/dreams = GLOB.dream_strings.Copy() - for(var/obj/item/bedsheet/sheet in loc) - dreams += sheet.dream_messages - var/list/dream_images = list() - for(var/i in 1 to rand(3, rand(5, 10))) - dream_images += pick_n_take(dreams) - dreaming++ - for(var/i in 1 to dream_images.len) - addtimer(CALLBACK(src, .proc/experience_dream, dream_images[i]), ((i - 1) * rand(30,60))) - return 1 - /mob/living/carbon/proc/handle_dreams() - if(prob(5) && !dreaming) + if(prob(10) && !dreaming) dream() -/mob/living/carbon/proc/experience_dream(dream_image) - dreaming-- - if(stat != UNCONSCIOUS || InCritical()) +/mob/living/carbon/proc/dream() + set waitfor = FALSE + var/list/dream_fragments = list() + var/fragment = "" + + dream_fragments += "you see" + + //Subject + fragment += pick(GLOB.dream_strings) + if(prob(50)) + fragment = replacetext(fragment, "%ADJECTIVE%", pick(GLOB.adjectives)) + else + fragment = replacetext(fragment, "%ADJECTIVE% ", "") + if(findtext(fragment, "%A% ")) + fragment = "\a [replacetext(fragment, "%A% ", "")]" + dream_fragments += fragment + + //Verb + fragment = "" + if(prob(50)) + if(prob(35)) + fragment += "[pick(GLOB.adverbs)] " + fragment += pick(GLOB.ing_verbs) + else + fragment += "will " + fragment += pick(GLOB.verbs) + dream_fragments += fragment + + if(prob(25)) + dream_sequence(dream_fragments) return - to_chat(src, "... [dream_image] ...") + + //Object + fragment = "" + fragment += pick(GLOB.dream_strings) + if(prob(50)) + fragment = replacetext(fragment, "%ADJECTIVE%", pick(GLOB.adjectives)) + else + fragment = replacetext(fragment, "%ADJECTIVE% ", "") + if(findtext(fragment, "%A% ")) + fragment = "\a [replacetext(fragment, "%A% ", "")]" + dream_fragments += fragment + + dreaming = TRUE + dream_sequence(dream_fragments) + +/mob/living/carbon/proc/dream_sequence(list/dream_fragments) + if(stat != UNCONSCIOUS || InCritical()) + dreaming = FALSE + return + var/next_message = dream_fragments[1] + dream_fragments.Cut(1,2) + to_chat(src, "... [next_message] ...") + if(LAZYLEN(dream_fragments)) + addtimer(CALLBACK(src, .proc/dream_sequence, dream_fragments), rand(10,30)) + else + dreaming = FALSE diff --git a/strings/dreamstrings.txt b/strings/dreamstrings.txt index 72e0fe3764..3af4872b6c 100644 --- a/strings/dreamstrings.txt +++ b/strings/dreamstrings.txt @@ -1,61 +1,44 @@ -a familiar face -a crewmember -a security officer -a doctor -an engineer -a miner -a slime -an alien -a traitor -an ally -a scientist -a monkey -a loved one -a monster -the captain -a hat -an ID card -a bottle -a toolbox -a gun +%A% %ADJECTIVE% familiar face +%A% %ADJECTIVE% crewmember +%A% %ADJECTIVE% security officer +%A% %ADJECTIVE% doctor +%A% %ADJECTIVE% engineer +%A% %ADJECTIVE% miner +%A% %ADJECTIVE% slime +%A% %ADJECTIVE% alien +%A% %ADJECTIVE% traitor +%A% %ADJECTIVE% ally +%A% %ADJECTIVE% scientist +%A% %ADJECTIVE% monkey +%A% %ADJECTIVE% loved one +%A% %ADJECTIVE% monster +the %ADJECTIVE% captain +%A% %ADJECTIVE% hat +%A% %ADJECTIVE% ID card +%A% %ADJECTIVE% bottle +%A% %ADJECTIVE% toolbox +%A% %ADJECTIVE% gun the sun the engine the station -a planet +%A% %ADJECTIVE% planet the medical bay -the bridge -the brig -a shuttle -a laboratory +the %ADJECTIVE% bridge +the %ADJECTIVE% brig +%A% %ADJECTIVE% shuttle +%A% %ADJECTIVE% laboratory Nanotrasen the Syndicate the Wizard Federation -blood -plasma -air -warmth -freezing -wind -darkness -light -life -death -blinking lights -healing -power -respect -riches -space -time -deep space -a crash -a catastrophe -happiness -pride -a fall +%ADJECTIVE% blood +%ADJECTIVE% plasma +%ADJECTIVE% wind +%ADJECTIVE% darkness +%ADJECTIVE% light +%ADJECTIVE% death +%ADJECTIVE% blinking lights +%ADJECTIVE% power +%ADJECTIVE% riches water -flames -ice -melons -flying -voices from all around \ No newline at end of file +%ADJECTIVE% flames +some %ADJECTIVE% melons \ No newline at end of file diff --git a/strings/names/adverbs.txt b/strings/names/adverbs.txt new file mode 100644 index 0000000000..89153ff106 --- /dev/null +++ b/strings/names/adverbs.txt @@ -0,0 +1,135 @@ +accidentally +angrily +annually +anxiously +awkwardly +badly +blindly +boastfully +boldly +bravely +briefly +brightly +busily +calmly +carefully +carelessly +cautiously +cheerfully +clearly +correctly +courageously +crossly +cruelly +daily +defiantly +deliberately +doubtfully +easily +elegantly +enormously +enthusiastically +equally +eventually +exactly +faithfully +fatally +fiercely +fondly +foolishly +fortunately +frantically +gently +gladly +gracefully +greedily +happily +hastily +honestly +hourly +hungrily +innocently +inquisitively +irritably +irritatingly +joyously +justly +kindly +laughingly +lazily +loosely +loudly +madly +merrily +monthly +mortally +mysteriously +nakedly +nearly +neatly +nervously +never +noisily +obediently +obnoxiously +obnoxiously +often +painfully +perfectly +politely +poorly +powerfully +promptly +punctually +quickly +quietly +rapidly +rarely +really +recklessly +regularly +reluctantly +repeatedly +rightfully +roughly +rudely +sadly +safely +seldom +selfishly +seriously +shakily +sharply +shrilly +shyly +silently +sleepily +slowly +smoothly +softly +solemnly +sometimes +soon +speedily +stealthily +sternly +successfully +suddenly +suspiciously +swiftly +tenderly +tensely +thoughtfully +tightly +tomorrow +truthfully +underhandedly +unexpectedly +victoriously +violently +vivaciously +warmly +weakly +wearily +wildly +yearly \ No newline at end of file diff --git a/strings/names/ing_verbs.txt b/strings/names/ing_verbs.txt new file mode 100644 index 0000000000..5869e8a170 --- /dev/null +++ b/strings/names/ing_verbs.txt @@ -0,0 +1,929 @@ +abiding +acceding +accelerating +accepting +accomplishing +achieving +acquiring +activating +adapting +adding +addressing +administering +admiring +admitting +adopting +advising +affording +agreeing +alerting +alighting +allowing +altering +amusing +analyzing +announcing +annoying +answering +apologizing +appearing +applauding +appointing +appraising +appreciating +approving +arbitrating +arguing +arising +arranging +arresting +arriving +ascertaining +asking +assembling +assessing +assisting +assuring +attaching +attacking +attaining +attempting +attending +avoiding +awaking +baking +balancing +banging +banning +barring +bathing +bating +battling +beaming +bearing +beating +becoming +begging +beginning +behaving +beholding +being +belonging +besetting +betting +biding +binding +biting +bleaching +bleeding +blessing +blinding +blinking +blotting +blowing +blushing +boasting +boiling +bombing +booking +boring +borrowing +bouncing +bowing +boxing +braking +breaking +breathing +breeding +broadcasting +bruising +brushing +budgeting +building +bumping +burning +bursting +burying +busting +buying +buzzing +calculating +calling +camping +caring +carrying +carving +casting +cataloging +catching +causing +challenging +changing +charging +chasing +cheating +checking +cheering +chewing +choking +choosing +chopping +claiming +clarifying +classifying +cleaning +clearing +clinging +clipping +closing +clothing +coaching +coiling +collecting +coloring +combing +coming +commanding +communicating +comparing +competing +compiling +complaining +completing +composing +computing +conceiving +concentrating +concerning +concluding +conducting +confessing +confronting +confusing +connecting +conserving +considering +consisting +consolidating +constructing +containing +contracting +controlling +converting +coordinating +copying +correcting +correlating +costing +coughing +counseling +counting +covering +cracking +crashing +crawling +creating +creeping +critiquing +crossing +crushing +crying +curing +curling +curving +cutting +cycling +damaging +damming +dancing +dealing +decaying +deceiving +deciding +decorating +defining +delaying +delegating +delighting +delivering +demonstrating +depending +describing +deserting +deserving +designing +detailing +detecting +determining +developing +devising +diagnosing +digging +directing +disagreeing +disappearing +disapproving +discovering +disliking +dispensing +displaying +disproving +dissecting +distributing +diverting +dividing +diving +doing +doubling +doubting +drafting +dragging +draining +dramatizing +drawing +dreaming +dressing +drinking +dripping +driving +dropping +drowning +drumming +drying +dwelling +earning +eating +editing +educating +eliminating +embarrassing +employing +enacting +encouraging +ending +enduring +enforcing +engineering +enhancing +enjoying +enlisting +ensuring +entering +entertaining +establishing +estimating +evaluating +examining +exceeding +exciting +excusing +executing +exercising +exhibiting +existing +expanding +expecting +expediting +experimenting +explaining +exploding +expressing +extending +extracting +facilitating +facing +fading +fancying +fastening +faxing +fearing +feeding +feeling +fencing +fetching +fighting +filling +filming +finalizing +financing +finding +firing +fitting +fixing +flapping +flashing +fleeing +flinging +floating +flooding +flowering +flowing +flying +folding +following +fooling +forbidding +forcing +forecasting +foregoing +foreseeing +foretelling +forgetting +forgiving +forming +formulating +forsaking +framing +freezing +frightening +frying +gazing +generating +getting +giving +glowing +glueing +going +governing +grabbing +graduating +grating +greasing +greeting +grinding +grinning +griping +groaning +growing +guaranteeing +guarding +guessing +guiding +hammering +handling +handwriting +hanging +happening +harassing +harming +haunting +heading +healing +heaping +hearing +heating +helping +hiding +hitting +holding +hooking +hoping +hovering +hugging +humming +hunting +hurrying +hurting +hypothesizing +identifying +ignoring +imagining +implementing +impressing +improving +improvising +including +increasing +inducing +informing +initiating +injecting +injuring +innovating +inputing +inspecting +installing +instituting +instructing +insuring +integrating +intending +intensifying +interesting +interfering +interlaying +interpreting +interrupting +interviewing +introducing +inventing +inventorying +investigating +irritating +itching +jailing +jamming +jogging +joining +joking +judging +juggling +jumping +justifying +keeping +killing +kissing +kneeling +knitting +knocking +knotting +knowing +landing +lasting +laughing +launching +laying +leading +leaning +learning +leaving +lecturing +lending +letting +leveling +licensing +licking +lifting +lightening +lighting +liking +listing +living +loading +locking +logging +longing +looking +losing +loving +lying +maintaining +making +managing +manipulating +manning +manufacturing +mapping +marching +marketing +marrying +matching +mating +mattering +meaning +measuring +meddling +mediating +meeting +melting +memorizing +mending +mentoring +milking +mining +misleading +missing +mistaking +misunderstanding +mixing +moaning +modeling +modifying +monitoring +mooring +motivating +moving +muddling +mugging +multiplying +murdering +nailing +naming +navigating +needing +negotiating +nesting +nodding +nominating +normalizing +noticing +noting +numbering +obeying +objecting +observing +occurring +offending +offering +officiating +opening +operating +ordering +organizing +orienteering +originating +overcoming +overdoing +overdrawing +overflowing +overhearing +overtaking +overthrowing +owing +owning +packing +paddling +painting +parking +participating +parting +passing +pasting +patting +pecking +pedaling +peeling +peeping +perceiving +performing +permitting +phoning +photographing +picking +piloting +pinching +pining +pinpointing +planing +planting +pleading +pleasing +plugging +poking +polishing +possessing +posting +pouring +praising +praying +preaching +preceding +predicting +preferring +preparing +prescribing +presenting +presetting +presiding +pressing +pretending +preventing +pricking +processing +procuring +producing +professing +programming +progressing +projecting +promising +promoting +proofreading +proposing +protecting +providing +proving +publicizing +pulling +pumping +punching +puncturing +purchasing +pushing +putting +questioning +queueing +quitting +racing +radiating +raising +ranking +rating +reaching +reading +realigning +realizing +reasoning +receiving +recognizing +reconciling +recording +recruiting +reducing +referring +reflecting +regretting +regulating +reigning +reinforcing +rejecting +rejoicing +relating +relaxing +releasing +relying +remaining +remembering +reminding +removing +rendering +reorganizing +repairing +repeating +replacing +replying +representing +requesting +rescuing +researching +resolving +responding +restoring +restructuring +retiring +retrieving +returning +reviewing +revising +rhyming +riding +ringing +rinsing +rising +risking +robing +rocking +rolling +rotting +rubbing +ruining +ruling +running +rushing +sacking +satisfying +sawing +saying +scaring +scattering +scheduling +scolding +scorching +scraping +scratching +screaming +screwing +scribbling +scrubbing +sealing +searching +securing +seeing +seeking +selecting +selling +sending +sensing +separating +servicing +serving +setting +settling +sewing +shading +shaking +shaping +sharing +shearing +shedding +sheltering +shining +shivering +shocking +shoeing +shooting +shopping +showing +shrinking +shrugging +shutting +sighing +signaling +signing +simplifying +singing +sining +sinking +sipping +siting +sketching +skiing +skipping +slapping +slaying +sleeping +sliding +slinging +slinking +slipping +slitting +slowing +smashing +smelling +smiling +smiting +smoking +snatching +sneaking +sneezing +sniffing +snoring +snowing +soaking +solving +soothing +soothsaying +sorting +sowing +sparing +sparking +sparkling +speaking +speeding +spelling +spending +spilling +spinning +spiting +splitting +spoiling +spotting +spraying +spreading +springing +sprouting +squashing +squeaking +squealing +squeezing +staining +stamping +standing +staring +starting +stealing +stepping +sticking +stimulating +stinging +stinking +stirring +stitching +stoping +storing +strapping +streamlining +strengthening +striking +stringing +striping +striving +structuring +stuffing +subtracting +sucking +suffering +suggesting +summarizing +supplying +supposing +surprising +surrounding +suspecting +suspending +swearing +sweating +swelling +swimming +swinging +symbolizing +systemizing +tabulating +taking +taming +taping +targeting +tasting +teaching +teasing +telephoning +telling +tempting +testing +thanking +thriving +thrusting +ticking +tickling +timing +tipping +tiring +touching +touring +towing +tracing +trading +training +transferring +transforming +transporting +trapping +treading +treating +tricking +tripping +trotting +troubleshooting +trusting +trying +tugging +tumbling +tutoring +twisting +tying +typing +undergoing +understanding +undressing +unfastening +unifying +unlocking +unpacking +untidying +updating +upgrading +upholding +using +utilizing +verbalizing +vexing +visiting +wailing +waiting +waking +walking +wandering +wanting +warming +warning +washing +watching +watering +wearing +weighing +welcoming +wending +wetting +whirling +whispering +winding +winking +wiping +wishing +withholding +withstanding +wobbling +wondering +working +worrying +wrapping +wrecking +wrestling +wriggling +wringing +writing +x-raying +yawning +yelling +zipping +zooming \ No newline at end of file