Hello everyone! A few years ago I got some help with a randomizer of mine and it made it into a wonderful little tool to play around with. Link to it here!

I’ve since expanded upon it, and come into a small problem with the more I add to it: unique outputs.

There are, in total, 4 outputs I’m concerned with the most (the types). Is there any way to make it so that the code keeps track of all 4 outputs and insures they are all unique?

I’ve looked over the documentation and I think it’s a touch out of my current skillset. Thank you to anyone who takes the time to help out!

  • BluePower
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    20 days ago

    Here’s my solution so far - create a variable that’ll hold the generated types in and then change the code of the sentence list to never use any of these already-generated types:

    // Create a new "takenTypes" array variable to store the already generated types
    takenTypes = [[]]
    
    sentence
      [takenTypes = [], ""]You find yourself in {a} [d=description.selectOne] [b=biome.selectOne].<br> As the area is [d.singularForm.lowerCase], [td = typesdescription.selectOne, uniqueReturn(td)] type 'mons are rather prolific. That is in addition to the [removeDups(others[b]).selectUnique(2).map(x => uniqueReturn(x)).join(" and ")] types that live in the [b] already. <br>Oddly enough, there also seem to be some [s=removeDups(stragglers).selectOne, uniqueReturn(s)] type 'mons in the area as well.
    
    // Returns a new list that does not contain the entries already shown in the output
    removeDups(list) => return list.selectAll.filter(x => !takenTypes.includes(x));
    // Adds the entry into the "takenTypes" variable so they never show up again in the same output
    uniqueReturn(i) => takenTypes.push(i); return i;