This was captivating :) I got a skele-girl at first, and the next time it gave me a slime boy and that was great :) I still don't know what competitive vibing or artistic apologizing is, though. There's some rough places for proofreading and a bunch of repeated generation (especially with the what do you talk about links; do they need to be generated, rather than just all listed?). You need to figure out a way to make sure that lists of things don't repeat, which is tough sometimes. You might look into making custom modifiers for Tracery that you can use to like get three exclusive traces from a grammar (which you could do by grabbing the rule into its own object and selecting one and removing the object, then tracing that one and repeat x times as needed, returning an array, or something like that).
Viewing post in An Evening With A Sprite comments
I figured that implementing no repetition would be difficult since no one else had done it. I took a shot at it last night and managed to rig up a traceMultiple() function in less than an hour. Joke's on me, I guess!
I wanted the conversations to be randomized to simulate an ebb and flow of conversation. Original plan was for there to be a dozen or so different conversation topics, so you'd get to cycle through them rather than go through a 12-item checklist. I only have four topics right now, but I'm gonna finally write out the other eight for v.13.