I have been working on this generator so I can choose a place with the drop down level and then be able to have random loot generated from that certain place, I have managed to get it to do what I want, my issue is I am unable to find a way to make sure the outcome doesn’t have any repeats

  • VioneTM
    link
    English
    1
    edit-2
    3 days ago

    One of the quirks in Perchance is that [listname] isn’t a reference to the variable, meaning it doesn’t return the whole list, it would only return a random item from that list.

    Thus, on the line output.selectOne.selectUnique(1,2,3) here is what happens:

    1. output.selectOne would select an item from the output. For example, it would return [Object1] since the dropdown is set to ‘Zero’.
    2. Doing .selectUnique(1,2,3) would randomize the number of selection, however since the returned item is [Object1] and not Object1 itself, it would not return unique values since you only have [Object1] as the item and not all Good, hood, Bood.

    Best thing you could do is to create a variable and set that variable to the list to be used like so:

    output
      [list = Object1] ^[Level == "Zero"]
      [list = Object2] ^[Level == "One"]
      [list = Object3] ^[Level == "Two"]
    
    GroupSelectPrompt
      You find [pack] [output.evaluateItem, list.selectUnique(1,2,3).joinItems(" and ")]
    

    We use output.evaluateItem to ‘run’ the function in the square bracket on the selected item, which would set the value of list to the actual list that we need. Then we use the list and use .selectUnique to it to get the unique items.

    Another way is to use the random-select-plugin like so:

    GroupSelectPrompt
      You find [pack] [select(Object1, Object2, Object3, null, Level == "Zero", Level == "One", Level == "Two").selectUnique(1,2,3).joinItems(" and ")]